/** * @see parent::fillLimitedTemplate() */ function fillLimitedTemplate(&$template) { // Ajout du praticien pour les destinataires possibles (dans l'envoi d'un email) $chir = $this->loadRefPraticien(); $template->destinataires[] = array("nom" => "Dr " . $chir->_user_last_name . " " . $chir->_user_first_name, "email" => $chir->_user_email, "tag" => "Praticien"); $this->notify("BeforeFillLimitedTemplate", $template); $this->loadRefsOperations(); $template->addLongDateProperty("Admission - Date longue", $this->entree_prevue); $template->addDateProperty("Admission - Date", $this->entree_prevue); $template->addTimeProperty("Admission - Heure", $this->entree_prevue); $template->addProperty("Admission - Type", $this->getFormattedValue("type")); $template->addProperty("Hospitalisation - Durée", $this->_duree_prevue); $template->addDateProperty("Hospitalisation - Date sortie", $this->sortie_prevue); $template->addProperty("Hospitalisation - Date sortie longue", $this->getFormattedValue("sortie_prevue")); $this->loadNDA(); $template->addProperty("Sejour - Numéro de dossier", $this->_NDA); $template->addProperty("Sejour - Concerné par l'ALD", $this->getFormattedValue("ald")); $template->addBarcode("Sejour - Code barre ID", $this->_id); $template->addBarcode("Sejour - Code barre NDOS", $this->_NDA); $template->addDateProperty("Sejour - Date entrée", $this->entree); $template->addLongDateProperty("Sejour - Date entrée (longue)", $this->entree); $template->addTimeProperty("Sejour - Heure entrée", $this->entree); $template->addDateProperty("Sejour - Date sortie", $this->sortie); $template->addLongDateProperty("Sejour - Date sortie (longue)", $this->sortie); $template->addTimeProperty("Sejour - Heure sortie", $this->sortie); $template->addDateProperty("Sejour - Date entrée réelle", $this->entree_reelle); $template->addTimeProperty("Sejour - Heure entrée réelle", $this->entree_reelle); $template->addDateProperty("Sejour - Date sortie réelle", $this->sortie_reelle); $template->addTimeProperty("Sejour - Heure sortie réelle", $this->sortie_reelle); $template->addProperty("Sejour - Mode d'entrée", $this->getFormattedValue("mode_entree")); $template->addProperty("Sejour - Mode de sortie", $this->getFormattedValue("mode_sortie")); $template->addProperty("Sejour - Service de sortie", $this->getFormattedValue("service_sortie_id")); $template->addProperty("Sejour - Etablissement de sortie", $this->getFormattedValue("etablissement_sortie_id")); $template->addProperty("Sejour - Commentaires de sortie", $this->getFormattedValue("commentaires_sortie")); $template->addProperty("Sejour - Libelle", $this->getFormattedValue("libelle")); $template->addProperty("Sejour - Transport", $this->getFormattedValue("transport")); /** @var CExamIgs $last_exam_igs */ $last_exam_igs = $this->loadLastBackRef("exams_igs"); $template->addProperty("Sejour - Score IGS", $last_exam_igs->_id ? $last_exam_igs->scoreIGS : ""); $template->addProperty("Sejour - Score IGS Simplifié", $last_exam_igs->_id ? $last_exam_igs->simplified_igs : ""); $consult_anesth = $this->loadRefsConsultAnesth(); $consult = $consult_anesth->loadRefConsultation(); $consult->loadRefPlageConsult(); $cpa_datetime = $consult->_id ? $consult->_datetime : ""; $template->addDateProperty("Sejour - Consultation anesthésie - Date", $cpa_datetime); $template->addLongDateProperty("Sejour - Consultation anesthésie - Date (longue)", $cpa_datetime); $template->addLongDateProperty("Sejour - Consultation anesthésie - Date (longue, minuscule)", $cpa_datetime); $template->addTimeProperty("Sejour - Consultation anesthésie - Heure", $cpa_datetime); $this->loadRefsFiles(); $list = CMbArray::pluck($this->_ref_files, "file_name"); $template->addListProperty("Sejour - Liste des fichiers", $list); if (CAppUI::conf("dPurgences old_rpu") == "1") { if (CModule::getActive("sherpa")) { $rpu = $this->loadRefRPU(); $template->addProperty("Sejour - Provenance", $rpu->_id ? $rpu->getFormattedValue("urprov") : ""); } } else { $template->addProperty("Sejour - Provenance", $this->getFormattedValue("provenance")); $template->addProperty("Sejour - Destination", $this->getFormattedValue("destination")); } $this->loadRefPraticien(); $template->addProperty("Hospitalisation - Praticien", "Dr " . $this->_ref_praticien->_view); $this->loadRefsAffectations(); $this->_ref_last_affectation->loadView(); $last_affectation = $this->_ref_last_affectation; $template->addProperty("Hospitalisation - Dernière affectation", $last_affectation->_view); $template->addProperty("Hospitalisation - Dernière affectation (Service)", $last_affectation->loadRefService()->_view); $template->addProperty("Hospitalisation - Dernière affectation (Secteur)", $last_affectation->_ref_service->loadRefSecteur()->nom); $affectations = array(); if (count($this->_ref_affectations)) { foreach ($this->_ref_affectations as $_aff) { $affectations[] = "{$_aff->_view} du " . CMbDT::format($_aff->entree, CAppUI::conf("datetime")) . " au " . CMbDT::format($_aff->sortie, CAppUI::conf("datetime")); } } $template->addListProperty("Sejour - Affectations", $affectations); // Diagnostics $this->loadExtDiagnostics(); $diag = $this->DP ? "{$this->DP}: {$this->_ext_diagnostic_principal->libelle}" : null; $template->addProperty("Sejour - Diagnostic Principal", $diag); $diag = $this->DR ? "{$this->DR}: {$this->_ext_diagnostic_relie->libelle}" : null; $template->addProperty("Sejour - Diagnostic Relié", $diag); $template->addProperty("Sejour - Remarques", $this->rques); // Chargement du suivi medical (transmissions, observations, prescriptions) $this->loadSuiviMedical(); // Transmissions $transmissions = array(); if (isset($this->_back["transmissions"])) { foreach ($this->_back["transmissions"] as $_trans) { $datetime = CMbDT::format($_trans->date, CAppUI::conf('datetime')); $transmissions["{$_trans->date} {$_trans->_guid}"] = "{$_trans->text}, le {$datetime}, {$_trans->_ref_user->_view}"; } } $template->addListProperty("Sejour - Transmissions", $transmissions); $this->loadRefsTransmissions(false, true, false); $transmissions_hautes = array(); foreach ($this->_ref_transmissions as $_trans) { $_trans->loadRefUser(); $datetime = CMbDT::format($_trans->date, CAppUI::conf('datetime')); $transmissions_hautes["{$_trans->date} {$_trans->_guid}"] = "{$_trans->text}, le {$datetime}, {$_trans->_ref_user->_view}"; } $template->addListProperty("Sejour - Transmissions - importance haute", $transmissions_hautes); $this->loadRefsTransmissions(true, false, true); $transmissions_macro = array(); foreach ($this->_ref_transmissions as $_trans) { $_trans->loadRefUser(); $datetime = CMbDT::format($_trans->date, CAppUI::conf('datetime')); $transmissions_macro["{$_trans->date} {$_trans->_guid}"] = "{$_trans->text}, le {$datetime}, {$_trans->_ref_user->_view}"; } $template->addListProperty("Sejour - Transmissions - macrocible", $transmissions_macro); // Observations $observations = array(); if (isset($this->_back["observations"])) { foreach ($this->_back["observations"] as $_obs) { $datetime = CMbDT::format($_obs->date, CAppUI::conf('datetime')); $observations["{$_obs->date} {$_obs->_guid}"] = "{$_obs->text}, le {$datetime}, {$_obs->_ref_user->_view}"; } ksort($observations); } $template->addListProperty("Sejour - Observations", $observations); // Observation d'entrée /** @var CConsultation $obs_entree */ $obs_entree = $this->loadRefObsEntree(); $template->addProperty("Sejour - Observation entrée - Motif", $obs_entree->getFormattedValue("motif")); $template->addProperty("Sejour - Observation entrée - Examen clinique", $obs_entree->getFormattedValue("examen")); $template->addProperty("Sejour - Observation entrée - Remarques", $obs_entree->getFormattedValue("rques")); $template->addProperty("Sejour - Observation entrée - Traitements", $obs_entree->getFormattedValue("traitement")); $template->addProperty("Sejour - Observation entrée - Histoire de la maladie", $obs_entree->getFormattedValue("histoire_maladie")); $template->addProperty("Sejour - Observation entrée - Au total", $obs_entree->getFormattedValue("conclusion")); // Prescriptions $lines = array(); if (CModule::getActive('dPprescription')) { $prescription = $this->loadRefPrescriptionSejour(); $prescription->loadRefsLinesAllComments(); $prescription->loadRefsLinesElement(); if (isset($prescription->_ref_prescription_lines_all_comments)) { foreach ($prescription->_ref_prescription_lines_all_comments as $_comment) { $datetime = CMbDT::format("{$_comment->debut} {$_comment->time_debut}", CAppUI::conf('datetime')); $lines["{$_comment->debut} {$_comment->time_debut} {$_comment->_guid}"] = "{$_comment->_view}, {$datetime}, {$_comment->_ref_praticien->_view}"; } } if (isset($prescription->_ref_prescription_lines_element)) { foreach ($prescription->_ref_prescription_lines_element as $_line_element) { $datetime = CMbDT::format("{$_line_element->debut} {$_line_element->time_debut}", CAppUI::conf('datetime')); $view = "{$_line_element->_view}"; if ($_line_element->commentaire) { $view .= " ({$_line_element->commentaire})"; } $view .= ", {$datetime}, " . $_line_element->_ref_praticien->_view; $lines["{$_line_element->debut} {$_line_element->time_debut} {$_line_element->_guid}"] = $view; } } krsort($lines); $template->addListProperty("Sejour - Prescription light", $lines); } // Suivi médical: transmissions, observations, prescriptions $suivi_medical = $transmissions + $observations + $lines; krsort($suivi_medical); $template->addListProperty("Sejour - Suivi médical", $suivi_medical); // Interventions $operations = array(); foreach ($this->_ref_operations as $_operation) { $_operation->loadRefPlageOp(true); $datetime = $_operation->getFormattedValue("_datetime"); $chir = $_operation->loadRefChir(true); $operations[] = "le {$datetime}, par {$chir->_view}" . ($_operation->libelle ? " : {$_operation->libelle}" : ""); } $template->addListProperty("Sejour - Intervention - Liste", $operations); // Dernière intervention $this->_ref_last_operation->fillLimitedTemplate($template); // Consultations $consults = array(); foreach ($this->loadRefsConsultations() as $_consult) { $_consult->loadRefsDossiersAnesth(); if (count($_consult->_refs_dossiers_anesth)) { foreach ($_consult->_refs_dossiers_anesth as $_dossier_anesth) { if ($_dossier_anesth->conclusion) { $consults[] = $_dossier_anesth->conclusion; } } } else { if ($_consult->conclusion) { $consults[] = $_consult->conclusion; } } } $template->addListProperty("Sejour - Conclusions des consultations", $consults); if (CAppUI::conf("dPhospi prestations systeme_prestations", CGroups::loadCurrent()) == "expert") { $items_liaisons = $this->loadBackRefs("items_liaisons", "date"); CStoredObject::massLoadFwdRef($items_liaisons, "item_souhait_id"); CStoredObject::massLoadFwdRef($items_liaisons, "sous_item_id"); $souhaits = array(); $ponctuelles = array(); foreach ($items_liaisons as $_liaison) { $item_souhait = $_liaison->loadRefItem(); if ($item_souhait->object_class == "CPrestationPonctuelle") { $ponctuelles[] = $item_souhait->nom; continue; } $sous_item = $_liaison->loadRefSousItem(); $nom = $item_souhait; if ($sous_item->_id) { $nom = $sous_item->nom; } $souhaits[] = $nom; } $template->addListProperty("Sejour - Prestations souhaitées", $souhaits); $template->addListProperty("Sejour - Prestations ponctuelles", $ponctuelles); } // Régime $regimes = array(); if ($this->hormone_croissance) { $regimes[] = CAppUI::tr("CSejour-hormone_croissance"); } if ($this->repas_sans_sel) { $regimes[] = CAppUI::tr("CSejour-repas_sans_sel"); } if ($this->repas_sans_porc) { $regimes[] = CAppUI::tr("CSejour-repas_sans_porc"); } if ($this->repas_diabete) { $regimes[] = CAppUI::tr("CSejour-repas_diabete"); } if ($this->repas_sans_residu) { $regimes[] = CAppUI::tr("CSejour-repas_sans_residu"); } if (!count($regimes)) { $template->addProperty("Sejour - Régime", CAppUI::tr("CSejour-no_diet_specified")); } else { $template->addListProperty("Sejour - Régime", $regimes); } if (CAppUI::conf("dPhospi prestations systeme_prestations", CGroups::loadCurrent()) == "expert") { $liaisons_j = $dates = $list_souhaits = array(); self::getIntervallesPrestations($liaisons_j, $dates); foreach ($liaisons_j as $prestation_id => $_liaisons) { foreach ($_liaisons as $date => $_liaison) { if (!$_liaison->item_souhait_id) { continue; } $_item_souhait = $_liaison->loadRefItem(); $_sous_item = $_liaison->loadRefSousItem(); $dates_liaison = $dates[$_liaison->_id]; $list_souhaits[] = "Du " . CMbDT::dateToLocale($dates_liaison["debut"]) . " au " . CMbDT::dateToLocale($dates_liaison["fin"]) . " : " . ($_sous_item->_id ? $_sous_item->nom : $_item_souhait->nom); } } $template->addListProperty("Sejour - Prestations souhaitées", $list_souhaits); } if (CModule::getActive("forms")) { CExObject::addFormsToTemplate($template, $this, "Sejour"); } if (CModule::getActive("dPfacturation") && CAppUI::conf("dPplanningOp CFactureEtablissement use_facture_etab")) { $this->loadRefsFactureEtablissement(); $this->loadNRA(); $this->_ref_last_facture->fillLimitedTemplate($template); $template->addProperty("Sejour - Nature du séjour", $this->getFormattedValue("_type_sejour")); $template->addProperty("Sejour - Remarques base", $this->getFormattedValue("_rques_assurance_maladie")); $template->addProperty("Sejour - Remarques compl.", $this->getFormattedValue("_rques_assurance_accident")); $template->addProperty("Sejour - Numéro de cas", $this->_ref_NRA && $this->_ref_NRA->_id ? $this->_ref_NRA->id400 : "-"); } if (CModule::getActive("mvsante")) { CMVSante::fillLimitedTemplate($template, $this); } if (CModule::getActive("maternite")) { $grossesse = $this->loadRefGrossesse(); $naissance = new CNaissance(); $enfant = new CPatient(); $constantes_enfant = new CConstantesMedicales(); if ($this->grossesse_id && count($grossesse->loadRefsNaissances())) { /** @var CNaissance $naissance */ $naissance = reset($grossesse->_ref_naissances); $enfant = $naissance->loadRefSejourEnfant()->loadRefPatient(); $constantes_enfant = reset($enfant->loadRefLatestConstantes(null, array("poids"))); } $template->addProperty("Sejour - Accouchement - Heure de naissance", $naissance->getFormattedValue("_heure")); $date_naiss = $naissance->date_time; $date_naiss_word = CMbDT::format($date_naiss, "%A") . " " . CMbString::toWords(CMbDT::format($date_naiss, "%d")) . " " . CMbDT::format($date_naiss, "%B") . " " . CMbString::toWords(CMbDT::format($date_naiss, "%Y")); $heure_naiss_word = CMbString::toWords(CMbDT::format($date_naiss, "%H")) . " heures " . CMbString::toWords(CMbDT::format($date_naiss, "%M")) . " minutes"; $template->addProperty("Sejour - Accouchement - Date de naissance (lettre)", $date_naiss_word); $template->addProperty("Sejour - Accouchement - Heure de naissance (lettre)", $heure_naiss_word); $template->addProperty("Sejour - Accouchement - Sexe de l'enfant", $enfant->getFormattedValue("sexe")); $template->addProperty("Sejour - Accouchement - Poids (kg)", $constantes_enfant->poids . " kg"); $template->addProperty("Sejour - Accouchement - Poids (g)", $constantes_enfant->_poids_g . " g"); $template->addProperty("Sejour - Accouchement - Prénom de l'enfant", $enfant->prenom); $template->addProperty("Sejour - Accouchement - Nom de l'enfant", $enfant->nom); } $this->notify("AfterFillLimitedTemplate", $template); }