static function getMinDate() { $op = new COperation(); $op->loadObject(array('date' => ' IS NOT NULL'), "date ASC"); return max($op->date, "2000-01-01"); }
/** * Return a object concern praticien and a patient in date * * @param Date $date Date * @param String $praticien_id Praticien id * @param String $patient_id Patient id * * @return CConsultation|COperation|null */ function getObject($date, $praticien_id, $patient_id) { $intervention = new COperation(); $where = array("plagesop.date" => "= '{$date}'", "operations.chir_id" => "= '{$praticien_id}'", "sejour.patient_id" => "= '{$patient_id}'"); $leftjoin = array("plagesop" => "operations.plageop_id = plagesop.plageop_id", "sejour" => "operations.sejour_id = sejour.sejour_id"); $intervention->loadObject($where, "plagesop.debut DESC", null, $leftjoin); $object = $intervention; if (!$object->_id) { $consultation = new CConsultation(); $where = array("plageconsult.date" => "= '{$date}'", "plageconsult.chir_id" => "= '{$praticien_id}'", "consultation.patient_id" => "= '{$patient_id}'"); $leftjoin = array("plageconsult" => "consultation.plageconsult_id = plageconsult.plageconsult_id"); $consultation->loadObject($where, "consultation.heure DESC", null, $leftjoin); $object = $consultation; if (!$object->_id) { return null; } } return $object; }
/** * Return the object for attach the document * * @param String $date date * @param CPatient $patient patient * @param String $praticien_id praticien id * @param CSejour $sejour sejour * * @return CConsultation|COperation|CSejour */ function getObjectWithDate($date, $patient, $praticien_id, $sejour) { //Recherche de la consutlation dans le séjour $date = CMbDT::date($date); $date_before = CMbDT::date("- 2 DAY", $date); $consultation = new CConsultation(); $where = array("patient_id" => "= '{$patient->_id}'", "annule" => "= '0'", "plageconsult.date" => "BETWEEN '{$date_before}' AND '{$date}'", "plageconsult.chir_id" => "= '{$praticien_id}'", "sejour_id" => "= '{$sejour->_id}'"); $leftjoin = array("plageconsult" => "consultation.plageconsult_id = plageconsult.plageconsult_id"); $consultation->loadObject($where, "plageconsult.date DESC", null, $leftjoin); //Recherche d'une consultation qui pourrait correspondre if (!$consultation->_id) { unset($where["sejour_id"]); $consultation->loadObject($where, "plageconsult.date DESC", null, $leftjoin); } //Consultation trouvé dans un des deux cas if ($consultation->_id) { return $consultation; } //Recherche d'une opération dans le séjour $where = array("sejour.patient_id" => "= '{$patient->_id}'", "plagesop.date" => "BETWEEN '{$date_before}' AND '{$date}'", "operations.annulee" => "= '0'", "sejour.sejour_id" => "= '{$sejour->_id}'"); if ($praticien_id) { $where["operations.chir_id"] = "= '{$praticien_id}'"; } $leftjoin = array("plagesop" => "operations.plageop_id = plagesop.plageop_id", "sejour" => "operations.sejour_id = sejour.sejour_id"); $operation = new COperation(); $operation->loadObject($where, "plagesop.date DESC", null, $leftjoin); if ($operation->_id) { return $operation; } /*if (!$sejour) { $where = array( "patient_id" => "= '$patient->_id'", "annule" => "= '0'", ); $sejours = CSejour::loadListForDate($date, $where, null, 1); $sejour = reset($sejours); if (!$sejour) { return null; } }*/ return $sejour; }