* $Id: httpreq_get_last_refs.php 24199 2014-07-29 09:13:46Z aurelie17 $ * * @package Mediboard * @subpackage Patients * @author SARL OpenXtrem <*****@*****.**> * @license GNU General Public License, see http://www.gnu.org/licenses/gpl.html * @version $Revision: 24199 $ */ $patient_id = CValue::get("patient_id", 0); $consultation_id = CValue::get("consultation_id", 0); $is_anesth = CValue::get("is_anesth", 1); $group = CGroups::loadCurrent(); $patient = new CPatient(); $patient->load($patient_id); $where = array("group_id" => "= '" . $group->_id . "'", "annule" => "= '0'"); foreach ($patient->loadRefsSejours($where) as $_sejour) { foreach ($_sejour->loadRefsOperations(array("annulee" => "= '0'")) as $_operation) { $_operation->loadRefChir()->loadRefFunction(); $_operation->loadRefPatient(); $_operation->loadRefPlageOp(); } } foreach ($patient->loadRefsConsultations() as $_consult) { $_consult->getType(); $_consult->loadRefPlageConsult(); $function = $_consult->loadRefPraticien()->loadRefFunction(); if ($_consult->sejour_id) { unset($patient->_ref_consultations[$_consult->_id]); if (isset($patient->_ref_sejours[$_consult->sejour_id])) { $patient->_ref_sejours[$_consult->sejour_id]->_ref_consultations[$_consult->_id] = $_consult; }
// Chargement du praticien $chir = new CMediusers(); if ($chir_id) { $testChir = new CMediusers(); $testChir->load($chir_id); if ($testChir->isPraticien()) { $chir = $testChir; } } $chir->loadRefFunction(); $prat = $chir; // Chargement du patient $patient = new CPatient(); if ($patient_id && !$operation_id && !$sejour_id) { $patient->load($patient_id); $patient->loadRefsSejours(); } // On récupère le séjour $sejour = new CSejour(); if ($sejour_id && !$operation_id) { $sejour->load($sejour_id); CAccessMedicalData::checkForSejour($sejour); $sejour->loadRefsFwd(); $sejour->loadRefCurrAffectation()->loadRefService(); if (!$chir_id) { $chir = $sejour->_ref_praticien; } // On ne change a priori pas le praticien du séjour $sejour->_ref_praticien->canDo(); $prat = $sejour->_ref_praticien; $patient = $sejour->_ref_patient;
/** * Cherche les différentes collisions au séjour courant * * @return CSejour[] */ function getCollisions() { $collisions = array(); // Ne concerne pas les annulés $this->completeField("annule", "type", "group_id", "patient_id"); if ($this->annule || in_array($this->type, $this->_not_collides)) { return $collisions; } // Données incomplètes if (!$this->entree || !$this->sortie) { return $collisions; } // Test de colision avec un autre sejour $patient = new CPatient(); $patient->load($this->patient_id); if (!$patient->_id) { return $collisions; } // Chargement des autres séjours $where["annule"] = " = '0'"; $where["group_id"] = " = '" . $this->group_id . "'"; foreach ($this->_not_collides as $_type_not_collides) { $where[] = "type != '{$_type_not_collides}'"; } $patient->loadRefsSejours($where); $sejours = $patient->_ref_sejours; // Collision sur chacun des autres séjours foreach ($sejours as $sejour) { if ($sejour->_id != $this->_id && $this->collides($sejour)) { $collisions[$sejour->_id] = $sejour; } } return $this->_collisions = $collisions; }