} } // On supprime les correspondants $correspondants_courrier = $do->_obj->loadRefsCorrespondantsCourrier(); /** @var $_corres CCorrespondantCourrier */ foreach ($correspondants_courrier as $_corres) { if ($msg = $_corres->delete()) { CAppUI::setMsg($msg, UI_MSG_ERROR); } } // Gestion des CCorrespondantCourrier if (!$do_merge && !intval(CValue::post("del")) && strpos($do->_obj->_source, "[Courrier -")) { // On stocke les correspondants cochés $object = new $_POST["object_class"](); $object->load($_POST["object_id"]); CDestinataire::makeAllFor($object); $allDest = CDestinataire::$destByClass; foreach ($allDest as $class => $_dest_by_class) { foreach ($_dest_by_class as $i => $_dest) { if (!isset($_POST["_dest_{$class}_{$i}"])) { continue; } list($object_class, $object_id) = split("-", $_dest->_guid_object); $corres = new CCorrespondantCourrier(); $corres->compte_rendu_id = $do->_obj->_id; $corres->tag = $_dest->tag; $corres->object_id = $object_id; $corres->object_class = $object_class; $corres->quantite = $_POST["_count_{$class}_{$i}"]; if ($msg = $corres->store()) { CAppUI::setMsg($msg, UI_MSG_ERROR);
function fillLimitedTemplate(&$template) { CDestinataire::makeAllFor($this); $destinataires = CDestinataire::$destByClass; foreach ($destinataires as $_destinataires_by_class) { foreach ($_destinataires_by_class as $_destinataire) { if (!isset($_destinataire->nom) || strlen($_destinataire->nom) == 0 || $_destinataire->nom === " ") { continue; } $template->destinataires[] = array("nom" => $_destinataire->nom, "email" => $_destinataire->email, "tag" => $_destinataire->tag); } } $this->loadRefsFwd(); $this->loadRefLatestConstantes(null, array(), null, false); $this->loadIPP(); $this->loadLastINS(); $this->notify("BeforeFillLimitedTemplate", $template); $template->addProperty("Patient - article", $this->_civilite); $template->addProperty("Patient - article long", ucfirst($this->_civilite_long)); $template->addProperty("Patient - article long (minuscule)", strtolower($this->_civilite_long)); $template->addProperty("Patient - nom", $this->nom); $template->addProperty("Patient - nom jeune fille", $this->nom_jeune_fille); $template->addProperty("Patient - prénom", $this->prenom); $template->addProperty("Patient - adresse", $this->adresse); $template->addProperty("Patient - ville", $this->ville); $template->addProperty("Patient - cp", $this->cp); $template->addProperty("Patient - années", $this->_annees); $template->addProperty("Patient - âge", $this->_age); $template->addProperty("Patient - date de naissance", $this->getFormattedValue("naissance")); $template->addProperty("Patient - lieu de naissance", $this->lieu_naissance); $template->addProperty("Patient - sexe", strtolower($this->getFormattedValue("sexe"))); $template->addProperty("Patient - sexe court", substr(strtolower($this->getFormattedValue("sexe")), 0, 1)); $template->addProperty("Patient - numéro d'assuré", $this->getFormattedValue("matricule")); $template->addProperty("Patient - téléphone", $this->getFormattedValue("tel")); $template->addProperty("Patient - mobile", $this->getFormattedValue("tel2")); $template->addProperty("Patient - téléphone autre", $this->tel_autre); $template->addProperty("Patient - profession", $this->profession); $template->addProperty("Patient - IPP", $this->_IPP); $template->addProperty("Patient - Qualité bénéficiaire", $this->qual_beneficiaire); $this->guessExoneration(); $template->addProperty("Patient - Qualité bénéficiaire - Libellé", $this->libelle_exo); $template->addProperty("Patient - Numéro de sécurité sociale", $this->getFormattedValue("matricule")); $template->addBarcode("Patient - Code barre ID", $this->_id); $template->addBarcode("Patient - Code barre IPP", $this->_IPP); $template->addBarcode("Patient - Code barre INS", $this->_ref_last_ins ? $this->_ref_last_ins->ins : ""); if ($this->sexe === "m") { $template->addProperty("Patient - il/elle", "il"); $template->addProperty("Patient - Il/Elle (majuscule)", "Il"); $template->addProperty("Patient - le/la", "le"); $template->addProperty("Patient - Le/La (majuscule)", "Le"); $template->addProperty("Patient - du/de la", "du"); $template->addProperty("Patient - au/à la", "au"); $template->addProperty("Patient - accord genre", ""); } else { $template->addProperty("Patient - il/elle", "elle"); $template->addProperty("Patient - Il/Elle (majuscule)", "Elle"); $template->addProperty("Patient - le/la", "la"); $template->addProperty("Patient - Le/La (majuscule)", "La"); $template->addProperty("Patient - du/de la", "de la"); $template->addProperty("Patient - au/à la", "à la"); $template->addProperty("Patient - accord genre", "e"); } $medecin = $this->_ref_medecin_traitant->_id ? $this->_ref_medecin_traitant : new CMedecin(); $template->addProperty("Patient - médecin traitant", "{$medecin->nom} {$medecin->prenom}"); $template->addProperty("Patient - médecin traitant - Nom Prénom", "{$medecin->nom} {$medecin->prenom}"); $template->addProperty("Patient - médecin traitant - nom", $medecin->nom); $template->addProperty("Patient - médecin traitant - prenom", $medecin->prenom); $template->addProperty("Patient - médecin traitant - adresse", "{$medecin->adresse} \n {$medecin->cp} {$medecin->ville}"); $template->addProperty("Patient - médecin traitant - voie", $medecin->adresse); $template->addProperty("Patient - médecin traitant - cp", $medecin->cp); $template->addProperty("Patient - médecin traitant - ville", $medecin->ville); $template->addProperty("Patient - médecin traitant - confraternité", $medecin->_confraternite); $template->addProperty("Patient - médecin traitant - tel", $medecin->getFormattedValue("tel")); $template->addProperty("Patient - médecin traitant - fax", $medecin->getFormattedValue("fax")); if ($medecin->sexe == "f") { $template->addProperty("Patient - médecin traitant - accord genre", "e"); $template->addProperty("Patient - médecin traitant - article long", "Mme le docteur"); } elseif ($medecin->sexe == "m") { $template->addProperty("Patient - médecin traitant - accord genre", ""); $template->addProperty("Patient - médecin traitant - article long", "Mr le docteur"); } else { $template->addProperty("Patient - médecin traitant - accord genre", ""); $template->addProperty("Patient - médecin traitant - article long", "le docteur"); } // Employeur $this->loadRefsCorrespondantsPatient(); $correspondants = $this->_ref_cp_by_relation; foreach ($correspondants as $relation => $_correspondants) { $_correspondant = @reset($_correspondants); // Dans le cas d'un modèle, création d'un correspondant pour chaque type de relation if (!count($_correspondants)) { $_correspondant = new CCorrespondantPatient(); $_correspondant->relation = $relation; } switch ($_correspondant->relation) { case "employeur": $template->addProperty("Patient - employeur - nom", $_correspondant->nom); $template->addProperty("Patient - employeur - adresse", $_correspondant->adresse); $template->addProperty("Patient - employeur - cp", $_correspondant->cp); $template->addProperty("Patient - employeur - ville", $_correspondant->ville); $template->addProperty("Patient - employeur - tel", $_correspondant->getFormattedValue("tel")); $template->addProperty("Patient - employeur - mobile", $_correspondant->getFormattedValue("mob")); $template->addProperty("Patient - employeur - urssaf", $_correspondant->urssaf); break; case "prevenir": $template->addProperty("Patient - prévenir - nom", $_correspondant->nom); $template->addProperty("Patient - prévenir - prénom", $_correspondant->prenom); $template->addProperty("Patient - prévenir - adresse", $_correspondant->adresse); $template->addProperty("Patient - prévenir - cp", $_correspondant->cp); $template->addProperty("Patient - prévenir - ville", $_correspondant->ville); $template->addProperty("Patient - prévenir - tel", $_correspondant->getFormattedValue("tel")); $template->addProperty("Patient - prévenir - mobile", $_correspondant->getFormattedValue("mob")); $template->addProperty("Patient - prévenir - parente", $_correspondant->parente); break; case "confiance": $template->addProperty("Patient - confiance - nom", $_correspondant->nom); $template->addProperty("Patient - confiance - nom de jeune fille", $_correspondant->nom_jeune_fille); $template->addProperty("Patient - confiance - prénom", $_correspondant->prenom); $template->addProperty("Patient - confiance - date de naissance", $_correspondant->getFormattedValue("naissance")); $template->addProperty("Patient - confiance - adresse", $_correspondant->adresse); $template->addProperty("Patient - confiance - cp", $_correspondant->cp); $template->addProperty("Patient - confiance - ville", $_correspondant->ville); $template->addProperty("Patient - confiance - tel", $_correspondant->getFormattedValue("tel")); $template->addProperty("Patient - confiance - mobile", $_correspondant->getFormattedValue("mob")); $template->addProperty("Patient - confiance - parente", $_correspondant->parente); } } // Vider les anciens holders for ($i = 1; $i < 4; $i++) { $template->addProperty("Patient - médecin correspondant {$i}"); $template->addProperty("Patient - médecin correspondant {$i} - adresse"); $template->addProperty("Patient - médecin correspondant {$i} - spécialité"); } $this->loadRefsCorrespondants(); $i = 0; $noms = array(); foreach ($this->_ref_medecins_correspondants as $corresp) { $i++; $corresp->loadRefsFwd(); $medecin = $corresp->_ref_medecin; $nom = "{$medecin->nom} {$medecin->prenom}"; $noms[] = $nom; $template->addProperty("Patient - médecin correspondant {$i}", $nom); $template->addProperty("Patient - médecin correspondant {$i} - adresse", "{$medecin->adresse}\n{$medecin->cp} {$medecin->ville}"); $template->addProperty("Patient - médecin correspondant {$i} - spécialité", CMbString::htmlEntities($medecin->disciplines)); } $template->addProperty("Patient - médecins correspondants", implode(" - ", $noms)); //Liste des séjours du patient $this->loadRefsSejours(); if (is_array($this->_ref_sejours)) { foreach ($this->_ref_sejours as $_sejour) { $_sejour->loadRefPraticien(); } $smarty = new CSmartyDP("modules/dPpatients"); $smarty->assign("sejours", $this->_ref_sejours); $sejours = $smarty->fetch("print_closed_sejours.tpl", '', '', 0); $sejours = preg_replace('`([\\n\\r])`', '', $sejours); } else { $sejours = CAppUI::tr("CSejour.none"); } $template->addProperty("Patient - liste des séjours", $sejours, '', false); $const_med = $this->_ref_constantes_medicales; $const_dates = $this->_latest_constantes_dates; $grid_complet = CConstantesMedicales::buildGridLatest($const_med, $const_dates, true); $grid_minimal = CConstantesMedicales::buildGridLatest($const_med, $const_dates, false); $grid_valued = CConstantesMedicales::buildGridLatest($const_med, $const_dates, false, true); $smarty = new CSmartyDP("modules/dPpatients"); // Horizontal $smarty->assign("constantes_medicales_grid", $grid_complet); $constantes_complet_horiz = $smarty->fetch("print_constantes.tpl", '', '', 0); $constantes_complet_horiz = preg_replace('`([\\n\\r])`', '', $constantes_complet_horiz); $smarty->assign("constantes_medicales_grid", $grid_minimal); $constantes_minimal_horiz = $smarty->fetch("print_constantes.tpl", '', '', 0); $constantes_minimal_horiz = preg_replace('`([\\n\\r])`', '', $constantes_minimal_horiz); $smarty->assign("constantes_medicales_grid", $grid_valued); $constantes_valued_horiz = $smarty->fetch("print_constantes.tpl", '', '', 0); $constantes_valued_horiz = preg_replace('`([\\n\\r])`', '', $constantes_valued_horiz); // Vertical $smarty->assign("constantes_medicales_grid", $grid_complet); $constantes_complet_vert = $smarty->fetch("print_constantes_vert.tpl", '', '', 0); $constantes_complet_vert = preg_replace('`([\\n\\r])`', '', $constantes_complet_vert); $smarty->assign("constantes_medicales_grid", $grid_minimal); $constantes_minimal_vert = $smarty->fetch("print_constantes_vert.tpl", '', '', 0); $constantes_minimal_vert = preg_replace('`([\\n\\r])`', '', $constantes_minimal_vert); $smarty->assign("constantes_medicales_grid", $grid_valued); $constantes_valued_vert = $smarty->fetch("print_constantes_vert.tpl", '', '', 0); $constantes_valued_vert = preg_replace('`([\\n\\r])`', '', $constantes_valued_vert); // Liste des fichiers $this->loadRefsFiles(); $list = CMbArray::pluck($this->_ref_files, "file_name"); $template->addListProperty("Patient - Liste des fichiers", $list); // Identité $identite = $this->loadNamedFile("identite.jpg"); $template->addImageProperty("Patient - Photo d'identite", $identite->_id); $template->addProperty("Patient - Constantes - mode complet horizontal", $constantes_complet_horiz, '', false); $template->addProperty("Patient - Constantes - mode minimal horizontal", $constantes_minimal_horiz, '', false); $template->addProperty("Patient - Constantes - mode avec valeurs horizontal", $constantes_valued_horiz, '', false); $template->addProperty("Patient - Constantes - mode complet vertical", $constantes_complet_vert, '', false); $template->addProperty("Patient - Constantes - mode minimal vertical", $constantes_minimal_vert, '', false); $template->addProperty("Patient - Constantes - mode avec valeurs vertical", $constantes_valued_vert, '', false); $template->addProperty("Patient - poids", "{$const_med->poids} kg"); $template->addProperty("Patient - taille", "{$const_med->taille} cm"); $template->addProperty("Patient - Pouls", $const_med->pouls); $template->addProperty("Patient - IMC", $const_med->_imc); $template->addProperty("Patient - VST", $const_med->_vst); $template->addProperty("Patient - température", $const_med->temperature . "°"); $template->addProperty("Patient - TA", $const_med->ta ? "{$const_med->_ta_systole} / {$const_med->_ta_diastole}" : ""); $template->addProperty("Patient - Saturation (spo2)", $const_med->spo2); // Assuré social $template->addProperty("Patient - Assuré social - nom", $this->assure_nom); $template->addProperty("Patient - Assuré social - nom jeune fille", $this->assure_nom_jeune_fille); $template->addProperty("Patient - Assuré social - prénom", $this->assure_prenom); $template->addProperty("Patient - Assuré social - date de naissance", $this->getFormattedValue("assure_naissance")); $template->addProperty("Patient - Assuré social - article", $this->_assure_civilite); $template->addProperty("Patient - Assuré social - article long", $this->_assure_civilite_long); $template->addProperty("Patient - Assuré social - adresse", $this->assure_adresse); $template->addProperty("Patient - Assuré social - ville", $this->assure_ville); $template->addProperty("Patient - Assuré social - cp", $this->assure_cp); $template->addProperty("Patient - Assuré social - pays", $this->assure_pays); $template->addProperty("Patient - Assuré social - téléphone", $this->assure_tel); $template->addProperty("Patient - Assuré social - mobile", $this->assure_tel2); $template->addProperty("Patient - Assuré social - cp naissance", $this->assure_cp_naissance); $template->addProperty("Patient - Assuré social - lieu de naissance", $this->assure_lieu_naissance); $template->addProperty("Patient - Assuré social - profession", $this->assure_profession); // Bénéficiaire de soins $template->addProperty("Patient - Bénéficiaire de soin - code régime", $this->code_regime); $template->addProperty("Patient - Bénéficiaire de soin - caisse gest", $this->caisse_gest); $template->addProperty("Patient - Bénéficiaire de soin - centre gest", $this->centre_gest); $template->addProperty("Patient - Bénéficiaire de soin - code gest", $this->code_gestion); $template->addProperty("Patient - Bénéficiaire de soin - régime santé", $this->regime_sante); $template->addDateProperty("Patient - Bénéficiaire de soin - début période", $this->deb_amo); $template->addDateProperty("Patient - Bénéficiaire de soin - fin période", $this->fin_amo); $template->addProperty("Patient - Bénéficiaire de soin - régime am", $this->getFormattedValue("regime_am")); $template->addProperty("Patient - Bénéficiaire de soin - ald", $this->getFormattedValue("ald")); $template->addProperty("Patient - Bénéficiaire de soin - incapable majeur", $this->getFormattedValue("incapable_majeur")); $template->addProperty("Patient - Bénéficiaire de soin - cmu", $this->getFormattedValue("cmu")); $template->addProperty("Patient - Bénéficiaire de soin - ATNC", $this->getFormattedValue("ATNC")); $template->addDateProperty("Patient - Bénéficiaire de soin - validité vitale", $this->fin_validite_vitale); $template->addProperty("Patient - Bénéficiaire de soin - médecin traitant déclaré", $this->getFormattedValue("medecin_traitant_declare")); $template->addProperty("Patient - Bénéficiaire de soin - types contrat mutuelle", addslashes($this->mutuelle_types_contrat)); $template->addProperty("Patient - Bénéficiaire de soin - notes amo", addslashes($this->notes_amo)); $template->addProperty("Patient - Bénéficiaire de soin - libellé exo", addslashes($this->libelle_exo)); $template->addProperty("Patient - Bénéficiaire de soin - notes amc", addslashes($this->notes_amc)); if (CModule::getActive("maternite")) { $allaitement = $this->loadLastAllaitement(); $template->addDateProperty("Patient - Allaitement - Début", $allaitement->date_debut); $template->addDateProperty("Patient - Allaitement - Fin", $allaitement->date_fin); $grossesse = $this->loadLastGrossesse(); $template->addDateProperty("Patient - Grossesse - Terme prévu", $grossesse->terme_prevu); $template->addDateProperty("Patient - Grossesse - Date des dernières règles", $grossesse->date_dernieres_regles); $template->addProperty("Patient - Grossesse - En cours", $grossesse->getFormattedValue("active")); $template->addProperty("Patient - Grossesse - Multiple", $grossesse->getFormattedValue("multiple")); $template->addProperty("Patient - Grossesse - Allaitement maternel", $grossesse->getFormattedValue("allaitement_maternel")); $template->addProperty("Patient - Grossesse - Fausse couche", $grossesse->getFormattedValue('fausse_couche'), null, false); $template->addProperty("Patient - Grossesse - Lieu d'accouchement", $grossesse->getFormattedValue("lieu_accouchement")); $template->addProperty("Patient - Grossesse - Remarques", $grossesse->rques); } if (CModule::getActive("forms")) { CExObject::addFormsToTemplate($template, $this, "Patient"); } $this->notify("AfterFillLimitedTemplate", $template); }
/** * Construit les destinataires pour un MbObject et ses dépendances * * @param CMbObject &$mbObject L'objet en question * * @return void */ static function makeAllFor(CMbObject &$mbObject) { self::$destByClass = array(); if ($mbObject instanceof CPatient) { $patient = $mbObject; // Garder une référence vers le patient pour l'ajout de correspondants // en modale dans la popup d'édition de document self::$_patient = $patient; self::makeFor($patient); $patient->loadRefsCorrespondants(); self::makeFor($patient->_ref_medecin_traitant, "traitant"); foreach ($patient->_ref_medecins_correspondants as &$corresp) { self::makeFor($corresp->_ref_medecin, "correspondant"); } } if ($mbObject instanceof CConsultation) { $consult = $mbObject; $consult->loadRefPatient(); self::makeAllFor($consult->_ref_patient); } if ($mbObject instanceof CConsultAnesth) { $consultAnesth = $mbObject; $consultAnesth->loadRefConsultation(); self::makeAllFor($consultAnesth->_ref_consultation); } if ($mbObject instanceof CSejour) { $sejour = $mbObject; $sejour->loadRefPatient(); self::makeAllFor($sejour->_ref_patient); $chir = $sejour->loadRefPraticien(); $dest = new CDestinataire("praticien"); $dest->nom = "Dr " . $chir->_user_last_name . " " . $chir->_user_first_name; $dest->email = $chir->_user_email; $dest->_guid_object = "CMedecin-{$chir->_id}"; self::$destByClass[$sejour->_class][] = $dest; } if ($mbObject instanceof COperation) { $operation = $mbObject; $operation->loadRefSejour(); self::makeAllFor($operation->_ref_sejour); } }