/** * @see parent::countDocs() */ function countDocs() { $nbDocs = parent::countDocs(); if (!$this->_docitems_from_consult) { // Ajout des documents des dossiers d'anesthésie if (!$this->_ref_consultation) { $this->loadRefConsultation(); } $this->_ref_consultation->_docitems_from_dossier_anesth = true; $nbDocs += $this->_ref_consultation->countDocs(); } return $this->_nb_docs = $nbDocs; }
/** * @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; }