$users = $user->loadList($where); $praticiens = CStoredObject::massLoadFwdRef($_sejours, "praticien_id"); CStoredObject::massLoadFwdRef($praticiens, "function_id"); CStoredObject::massCountBackRefs($affectations, "affectations_enfant"); $_operations = CStoredObject::massLoadBackRefs($sejours, "operations", "date ASC"); CStoredObject::massLoadFwdRef($_operations, "plageop_id"); loadVueTempo($sejours, $suivi_affectation, null, $operations, $date_min, $date_max, $period, $prestation_id, $functions_filter, $filter_function, $sejours_non_affectes); if (CAppUI::conf("dPadmissions show_deficience")) { CStoredObject::massLoadBackRefs($patients, "dossier_medical"); $dossiers = CMbArray::pluck($sejours, "_ref_patient", "_ref_dossier_medical"); CDossierMedical::massCountAntecedentsByType($dossiers, "deficience"); } loadVueTempo($affectations, $suivi_affectation, null, $operations, $date_min, $date_max, $period, $prestation_id, $functions_filter, $filter_function, $sejours_non_affectes); if (count($affectations) && CAppUI::conf("dPadmissions show_deficience")) { $dossiers = CMbArray::pluck($affectations, "_ref_sejour", "_ref_patient", "_ref_dossier_medical"); CDossierMedical::massCountAntecedentsByType($dossiers, "deficience"); } ksort($sejours_non_affectes, SORT_STRING); $_sejour = new CSejour(); $_sejour->_type_admission = $_type_admission; $smarty = new CSmartyDP(); $smarty->assign("sejours_non_affectes", $sejours_non_affectes); $smarty->assign("_sejour", $_sejour); $smarty->assign("triAdm", $triAdm); $smarty->assign("functions_filter", $functions_filter); $smarty->assign("filter_function", $filter_function); $smarty->assign("granularite", $granularite); $smarty->assign("date", $date); $smarty->assign("date_min", $date_min); $smarty->assign("date_max", $date_max); $smarty->assign("nb_ticks", $nb_ticks);
// Chargement de l'affectation $affectation = $sejour->loadRefFirstAffectation(); // Chargement des interventions $whereOperations = array("annulee" => "= '0'"); $operations = $sejour->loadRefsOperations($whereOperations); // Chargement optimisée des prestations CSejour::massCountPrestationSouhaitees(array($sejour)); foreach ($operations as $operation) { $operation->loadRefsActes(); $dossier_anesth = $operation->loadRefsConsultAnesth(); $consultation = $dossier_anesth->loadRefConsultation(); $consultation->loadRefPlageConsult(); $dossier_anesth->_date_consult = $consultation->_date; } if (CAppUI::conf("dPadmissions show_deficience")) { CDossierMedical::massCountAntecedentsByType(array($dossier_medical), "deficience"); } $list_mode_entree = array(); if (CAppUI::conf("dPplanningOp CSejour use_custom_mode_entree")) { $mode_entree = new CModeEntreeSejour(); $where = array("actif" => "= '1'"); $list_mode_entree = $mode_entree->loadGroupList($where); } $smarty = new CSmartyDP(); $smarty->assign("_sejour", $sejour); $smarty->assign("date_min", $date_min); $smarty->assign("date_max", $date_max); $smarty->assign("date_actuelle", $date_actuelle); $smarty->assign("date_demain", $date_demain); $smarty->assign("list_mode_entree", $list_mode_entree); $smarty->assign("prestations", CPrestation::loadCurrentList());
/** * Chargement des affectations dans les couloirs */ function loadAffectationsCouloirs($where, $order = null, $praticien_id = null, $prestation_id = null) { $group_id = CGroups::loadCurrent()->_id; $systeme_presta = CAppUI::conf("dPhospi prestations systeme_prestations", "CGroups-{$group_id}"); $ljoin = array("sejour" => "affectation.sejour_id = sejour.sejour_id", "patients" => "sejour.patient_id = patients.patient_id", "users_mediboard" => "sejour.praticien_id = users_mediboard.user_id", "users" => "users.user_id = users_mediboard.user_id"); if ($praticien_id) { $where["sejour.praticien_id"] = " = '{$praticien_id}'"; } if ($order == null) { $order = "users_mediboard.function_id, sejour.entree_prevue, patients.nom, patients.prenom"; } $where["affectation.lit_id"] = " IS NULL"; $affectation = new CAffectation(); /* @var CAffectation[] $affectations*/ $affectations = $affectation->loadList($where, $order, null, null, $ljoin); $sejours = CMbObject::massLoadFwdRef($affectations, "sejour_id"); CMbObject::massLoadFwdRef($sejours, "praticien_id"); CMbObject::massLoadFwdRef($sejours, "patient_id"); $tab_affectations = array(); foreach ($affectations as $affectation) { $affectation->loadRefsAffectations(); $affectation->loadRefSejour()->loadRefPatient(); $affectation->_ref_prev->loadRefLit(); $affectation->_ref_next->loadRefLit(); $sejour =& $affectation->_ref_sejour; $sejour->loadRefPrestation(); $sejour->loadRefsOperations(); $sejour->loadNDA(); $sejour->loadRefPraticien(); $sejour->loadRefPatient(); $sejour->_ref_patient->loadRefDossierMedical(false); if ($systeme_presta == "expert" && $prestation_id) { $sejour->loadLiaisonsForPrestation($prestation_id); } // Chargement des droits CMU $sejour->getDroitsCMU(); foreach ($sejour->_ref_operations as $operation_id => $curr_operation) { $sejour->_ref_operations[$operation_id]->loadExtCodesCCAM(); } $tab_affectations[$affectation->service_id][] = $affectation; } $dossiers = CMbArray::pluck($affectations, "_ref_sejour", "_ref_patient", "_ref_dossier_medical"); CDossierMedical::massCountAntecedentsByType($dossiers, "deficience"); return $tab_affectations; }