* $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;
示例#3
0
 /**
  * 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;
 }