/** * Récupération du séjour par le numéro de visite * * @param CSejour $newVenue Admit * @param array $data Datas * * @return bool */ function getSejourByVisitNumber(CSejour $newVenue, $data) { $sender = $this->_ref_sender; $venueVN = CValue::read($data['admitIdentifiers'], "VN"); $where = $ljoin = array(); $where["id_sante400.tag"] = " = '{$sender->_tag_visit_number}'"; $where["id_sante400.id400"] = " = '{$venueVN}'"; switch ($this->queryTextNode("PV1.2", $data["PV1"])) { // Identifie la venue pour actes et consultation externe case 'O': $consultation = new CConsultation(); $ljoin["id_sante400"] = "id_sante400.object_id = consultation.consultation_id"; $where["id_sante400.object_class"] = " = 'CConsultation'"; $where["consultation.type"] = " != 'chimio'"; $consultation->loadObject($where, null, null, $ljoin); // Nécessaire pour savoir quel objet créé en cas de besoin $this->_object_found_by_vn = $consultation; if (!$consultation->_id) { return false; } $newVenue->load($consultation->sejour_id); return true; // Identifie une séance // Identifie une séance case 'R': $consultation = new CConsultation(); $ljoin["id_sante400"] = "id_sante400.object_id = consultation.consultation_id"; $where["id_sante400.object_class"] = " = 'CConsultation'"; $where["consultation.type"] = " = 'chimio'"; $consultation->loadObject($where, null, null, $ljoin); // Nécessaire pour savoir quel objet créé en cas de besoin $this->_object_found_by_vn = $consultation; if (!$consultation->_id) { return false; } $newVenue->load($consultation->sejour_id); return true; // Identifie le n° de passage aux urgences // Identifie le n° de passage aux urgences case 'E': $rpu = new CRPU(); $ljoin["id_sante400"] = "id_sante400.object_id = rpu.rpu_id"; $where["id_sante400.object_class"] = " = 'CRPU'"; $rpu->loadObject($where, null, null, $ljoin); // Nécessaire pour savoir quel objet créé en cas de besoin $this->_object_found_by_vn = $rpu; if (!$rpu->_id) { return false; } $newVenue->load($rpu->sejour_id); return true; // Identifie le séjour ou hospitalisation à domicile // Identifie le séjour ou hospitalisation à domicile default: $idexVisitNumber = CIdSante400::getMatch("CSejour", $sender->_tag_visit_number, $venueVN); $this->_object_found_by_vn = $newVenue; if (!$idexVisitNumber->_id) { return false; } $newVenue->load($idexVisitNumber->object_id); $this->_object_found_by_vn = $newVenue; return true; } }