Exemplo n.º 1
0
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 */