if ($all_prats && !$date_min) { $limit = "{$start}, {$step}"; /** @var CPatient[] $patients */ $patients = $patient->loadList(null, $order, $limit); $patient_count = count($patients); $patient_total = $patient->countList(); } else { $ljoin_consult = array("consultation" => "consultation.patient_id = patients.patient_id", "plageconsult" => "plageconsult.plageconsult_id = consultation.plageconsult_id"); $where_consult = array(); if (!$all_prats) { $where_consult["plageconsult.chir_id"] = $ds->prepareIn($praticien_id); } if ($date_min) { $where_consult["plageconsult.date"] = $ds->prepare(">= ?", $date_min); } $patient_ids_consult = $patient->loadIds($where_consult, $order, null, "patients.patient_id", $ljoin_consult); $ljoin_sejour = array("sejour" => "sejour.patient_id = patients.patient_id"); $where_sejour = array(); if (!$all_prats) { $where_sejour["sejour.praticien_id"] = $ds->prepareIn($praticien_id); } if ($date_min) { $where_sejour["sejour.sortie"] = $ds->prepare(">= ?", $date_min); } $patient_ids_sejour = $patient->loadIds($where_sejour, $order, null, "patients.patient_id", $ljoin_sejour); $patient_ids = array_merge($patient_ids_consult, $patient_ids_sejour); $patient_ids = array_unique($patient_ids); $patient_total = count($patient_ids); $patient_ids = array_slice($patient_ids, $start, $step); $where = array("patient_id" => $patient->getDS()->prepareIn($patient_ids)); /** @var CPatient[] $patients */