if ($sejour->_id) { // Cas des urgences $rpu = $sejour->loadRefRPU(); } $isPrescriptionInstalled = CModule::getActive("dPprescription"); // Création du template $smarty = new CSmartyDP(); $smarty->assign("consult", $consult); $smarty->assign("isPrescriptionInstalled", $isPrescriptionInstalled); $smarty->assign("listPrats", $listPrats); if ($isPrescriptionInstalled) { $smarty->assign("line", new CPrescriptionLineMedicament()); CPrescription::$_load_lite = true; $consult->_ref_sejour->loadRefPrescriptionSejour(); $consultAnesth->loadRefSejour()->loadRefPrescriptionSejour(); CPrescription::$_load_lite = false; } $smarty->assign("represcription", CValue::get("represcription", 0)); $smarty->assign("date", $date); $smarty->assign("hour", $hour); $smarty->assign("vue", $vue); $smarty->assign("today", $today); $smarty->assign("now", $now); $smarty->assign("_is_anesth", $consult->_is_anesth); $smarty->assign("consult_anesth", $consultAnesth); $smarty->assign("_is_dentiste", $consult->_is_dentiste); $smarty->assign("current_m", $current_m); $smarty->assign("userSel", $userSel); $smarty->assign("dossier_medical", $dossier_medical); $smarty->assign("antecedents", $dossier_medical->_ref_antecedents_by_type); $smarty->assign("tabs_count", CConsultation::makeTabsCount($consult, $dossier_medical, $consultAnesth, $sejour, $list_etat_dents));
/** * @param CConsultation $consult * @param CDossierMedical $dossier_medical * @param CConsultAnesth $consultAnesth * @param CSejour $sejour * @param array $list_etat_dents * * @return array */ static function makeTabsCount($consult, $dossier_medical, $consultAnesth, $sejour, $list_etat_dents) { $tabs_count = array("AntTrait" => 0, "Constantes" => 0, "prescription_sejour" => 0, "facteursRisque" => 0, "Examens" => 0, "Exams" => 0, "ExamsComp" => 0, "Intub" => 0, "InfoAnesth" => 0, "dossier_traitement" => 0, "dossier_suivi" => 0, "Actes" => 0, "fdrConsult" => 0, "reglement" => 0); if (CModule::getActive("dPprescription")) { CPrescription::$_load_lite = true; } foreach ($tabs_count as $_tab => $_count) { $count = 0; switch ($_tab) { case "AntTrait": $prescription = $dossier_medical->loadRefPrescription(); $count_meds = 0; if (CModule::getActive("dPprescription")) { $count_meds = $prescription->countBackRefs("prescription_line_medicament"); } $dossier_medical->countTraitements(); $dossier_medical->countAntecedents(false); $dossier_medical->countAllergies(); $tabs_count[$_tab] = $dossier_medical->_count_antecedents + $dossier_medical->_count_allergies + $dossier_medical->_count_traitements + $count_meds + count($dossier_medical->_ext_codes_cim); break; case "Constantes": if ($sejour->_ref_rpu && $sejour->_ref_rpu->_id) { $tabs_count[$_tab] = $sejour->countBackRefs("contextes_constante"); } else { $tabs_count[$_tab] = $consult->countBackRefs("contextes_constante"); } break; case "prescription_sejour": $_sejour = $sejour; if ($consultAnesth->_id && $consultAnesth->operation_id) { $_sejour = $consultAnesth->loadRefOperation()->loadRefSejour(); } if ($_sejour->_id) { $_sejour->loadRefsPrescriptions(); foreach ($_sejour->_ref_prescriptions as $key => $_prescription) { if (!$_prescription->_id) { unset($_sejour->_ref_prescriptions[$key]); continue; } $_sejour->_ref_prescriptions[$_prescription->_id] = $_prescription; unset($_sejour->_ref_prescriptions[$key]); } if (count($_sejour->_ref_prescriptions)) { $prescription = new CPrescription(); $prescription->massCountMedsElements($_sejour->_ref_prescriptions); foreach ($_sejour->_ref_prescriptions as $_prescription) { $count += array_sum($_prescription->_counts_by_chapitre); } } } $tabs_count[$_tab] = $count; break; case "facteursRisque": if (!$consultAnesth) { break; } if ($dossier_medical->_id) { $fields = array("risque_antibioprophylaxie", "risque_MCJ_chirurgie", "risque_MCJ_patient", "risque_prophylaxie", "risque_thrombo_chirurgie", "risque_thrombo_patient"); foreach ($fields as $_field) { if ($dossier_medical->{$_field} != "NR") { $count++; } } if ($dossier_medical->facteurs_risque) { $count++; } } $tabs_count[$_tab] = $count; break; case "Examens": if ($consultAnesth->_id) { break; } $fields = array("motif", "rques", "examen", "histoire_maladie", "conclusion"); foreach ($fields as $_field) { if ($consult->{$_field}) { $count++; } } $count += $consult->countBackRefs("examaudio"); $count += $consult->countBackRefs("examnyha"); $count += $consult->countBackRefs("exampossum"); $tabs_count[$_tab] = $count; break; case "Exams": if (!$consultAnesth->_id) { break; } $fields = array("examenCardio", "examenPulmo", "examenDigest", "examenAutre"); foreach ($fields as $_field) { if ($consultAnesth->{$_field}) { $count++; } } if ($consult->examen != "") { $count++; } $count += $consult->countBackRefs("examaudio"); $count += $consult->countBackRefs("examnyha"); $count += $consult->countBackRefs("exampossum"); $tabs_count[$_tab] = $count; break; case "ExamsComp": if (!$consultAnesth->_id) { break; } $count += $consult->countBackRefs("examcomp"); if ($consultAnesth->result_ecg) { $count++; } if ($consultAnesth->result_rp) { $count++; } $tabs_count[$_tab] = $count; break; case "Intub": if (!$consultAnesth->_id) { break; } $fields = array("mallampati", "bouche", "distThyro", "mob_cervicale", "etatBucco", "conclusion", "plus_de_55_ans", "edentation", "barbe", "imc_sup_26", "ronflements", "piercing"); foreach ($fields as $_field) { if ($consultAnesth->{$_field}) { $count++; } } $count += count(array_filter($list_etat_dents)); $tabs_count[$_tab] = $count; break; case "InfoAnesth": if (!$consultAnesth->_id) { break; } $op = $consultAnesth->loadRefOperation(); $fields_anesth = array("prepa_preop", "premedication", "apfel_femme", "apfel_non_fumeur", "apfel_atcd_nvp", "apfel_morphine"); $fields_op = array("passage_uscpo", "type_anesth", "ASA", "position"); foreach ($fields_anesth as $_field) { if ($consultAnesth->{$_field}) { $count++; } } if ($op->_id) { foreach ($fields_op as $_field) { if ($op->{$_field}) { $count++; } } } if ($consult->rques) { $count++; } $count += $consultAnesth->countBackRefs("techniques"); $tabs_count[$_tab] = $count; break; case "dossier_traitement": break; case "dossier_suivi": break; case "Actes": $consult->countActes(); $tabs_count[$_tab] = $consult->_count_actes; if ($sejour->_id) { if ($sejour->DP) { $tabs_count[$_tab]++; } if ($_sejour->DR) { $tabs_count[$_tab]++; } $sejour->loadDiagnosticsAssocies(); $tabs_count[$_tab] += count($sejour->_diagnostics_associes); } break; case "fdrConsult": $consult->_docitems_from_dossier_anesth = false; $consult->countDocs(); $consult->countFiles(); $consult->loadRefsPrescriptions(); $tabs_count[$_tab] = $consult->_nb_docs + $consult->_nb_files; if (isset($consult->_ref_prescriptions["externe"])) { $tabs_count[$_tab]++; } if ($sejour->_id) { $sejour->countDocs(); $sejour->countFiles(); $tabs_count[$_tab] += $sejour->_nb_docs + $sejour->_nb_files; } break; case "reglement": $consult->loadRefFacture()->loadRefsReglements(); $tabs_count[$_tab] = count($consult->_ref_facture->_ref_reglements); } } if (CModule::getActive("dPprescription")) { CPrescription::$_load_lite = false; } return $tabs_count; }