$listSalles = $salle->loadListWithPerms(PERM_READ, $where, null, null, null, $ljoin); // Chargement des Chirurgiens $chir = new CMediusers(); $listChirs = $chir->loadPraticiens(PERM_READ); // Listes des interventions hors plage $operation = new COperation(); $ljoin = array(); $ljoin["sejour"] = "operations.sejour_id = sejour.sejour_id"; $ljoin["grossesse"] = "sejour.grossesse_id = grossesse.grossesse_id"; $where = array(); // Interv ou travail qui commence le jour choisi et n'a pas terminé d'accoucher $where[] = "operations.date = '{$date}' OR (\n grossesse.datetime_debut_travail IS NOT NULL AND\n DATE(grossesse.datetime_debut_travail) < '{$date}' AND\n grossesse.datetime_accouchement IS NULL\n)"; $where["operations.chir_id"] = CSQLDataSource::prepareIn(array_keys($listChirs)); $where["sejour.grossesse_id"] = "IS NOT NULL"; /** @var CStoredObject[] $urgences */ $urgences = $operation->loadGroupList($where, "salle_id, chir_id", null, null, $ljoin); $reservation_installed = CModule::getActive("reservation"); $diff_hour_urgence = CAppUI::conf("reservation diff_hour_urgence"); $sejours = CStoredObject::massLoadFwdRef($urgences, "sejour_id"); $patients = CStoredObject::massLoadFwdRef($sejours, "patient_id"); CStoredObject::massLoadFwdRef($sejours, "grossesse_id"); $plage = new CPlageOp(); /** @var COperation[] $urgences */ foreach ($urgences as &$urgence) { $urgence->loadRefsFwd(); $urgence->loadRefAnesth(); $urgence->_ref_chir->loadRefsFwd(); $sejour = $urgence->_ref_sejour; $patient = $sejour->loadRefPatient(); $sejour->loadRefGrossesse(); $dossier_medical = $patient->loadRefDossierMedical();
$group = CGroups::loadCurrent(); $listBlocs = $group->loadBlocs(PERM_READ); // Les salles autorisées $salle = new CSalle(); $listSalles = $salle->loadListWithPerms(PERM_READ); // Chargement des Chirurgiens $chir = new CMediusers(); $listChirs = $chir->loadPraticiens(PERM_READ); // Listes des interventions hors plage $operation = new COperation(); $where = array(); $where["date"] = "= '{$date}'"; $where["plageop_id"] = "IS NULL"; $where["operations.chir_id"] = CSQLDataSource::prepareIn(array_keys($listChirs)); /** @var COperation[] $urgences */ $urgences = $operation->loadGroupList($where, "salle_id, date, time_operation, chir_id"); $reservation_installed = CModule::getActive("reservation"); $diff_hour_urgence = CAppUI::conf("reservation diff_hour_urgence"); foreach ($urgences as &$urgence) { $urgence->loadRefsFwd(); $urgence->loadRefAnesth(); $patient = $urgence->_ref_sejour->loadRefPatient(); $dossier_medical = $patient->loadRefDossierMedical(); $dossier_medical->loadRefsAntecedents(); $dossier_medical->countAntecedents(); $dossier_medical->countAllergies(); $urgence->_ref_chir->loadRefsFwd(); if ($reservation_installed) { $first_log = $urgence->loadFirstLog(); if (abs(CMbDT::hoursRelative($urgence->_datetime_best, $first_log->date)) <= $diff_hour_urgence) { $urgence->_is_urgence = true;