/** * The message contains a collection of administrative notifications of events occurring to patients in a healthcare * facility. * * @param CHPrimXMLEvenementsPatients $dom_evt DOM event PMSI * @param CHPrimXMLAcquittementsPatients $dom_acq DOM acquittement PMSI * @param CEchangeHprim $echg_hprim Exchange H'XML * @param array &$data Data * * @return string Acquittement **/ static function eventPatient(CHPrimXMLEvenementsPatients $dom_evt, CHPrimXMLAcquittementsPatients $dom_acq, CEchangeHprim $echg_hprim, &$data = array()) { $newPatient = new CPatient(); $newPatient->_eai_exchange_initiator_id = $echg_hprim->_id; $data = array_merge($data, $dom_evt->getContentsXML()); if ($msgAcq = $dom_evt->isActionValide($data['action'], $dom_acq, $echg_hprim)) { return $msgAcq; } // Un événement concernant un patient appartient à l'une des six catégories suivantes : switch (get_class($dom_evt)) { // Enregistrement d'un patient avec son identifiant (ipp) dans le système case "CHPrimXMLEnregistrementPatient": /** @var CHPrimXMLEnregistrementPatient $dom_evt */ $echg_hprim->id_permanent = $data['idSourcePatient']; return $dom_evt->enregistrementPatient($dom_acq, $newPatient, $data); // Fusion de deux ipp // Fusion de deux ipp case "CHPrimXMLFusionPatient": /** @var CHPrimXMLFusionPatient $dom_evt */ $echg_hprim->id_permanent = $data['idSourcePatient']; return $dom_evt->fusionPatient($dom_acq, $newPatient, $data); // Venue d'un patient dans l'établissement avec son numéro de venue // Venue d'un patient dans l'établissement avec son numéro de venue case "CHPrimXMLVenuePatient": /** @var CHPrimXMLVenuePatient $dom_evt */ $echg_hprim->id_permanent = $data['idSourceVenue']; return $dom_evt->venuePatient($dom_acq, $newPatient, $data); // Fusion de deux venues // Fusion de deux venues case "CHPrimXMLFusionVenue": /** @var CHPrimXMLFusionVenue $dom_evt */ $echg_hprim->id_permanent = $data['idSourceVenue']; return $dom_evt->fusionVenue($dom_acq, $newPatient, $data); // Mouvement du patient dans une unité fonctionnelle ou médicale // Mouvement du patient dans une unité fonctionnelle ou médicale case "CHPrimXMLMouvementPatient": /** @var CHPrimXMLMouvementPatient $dom_evt */ $echg_hprim->id_permanent = $data['idSourceVenue']; return $dom_evt->mouvementPatient($dom_acq, $newPatient, $data); // Gestion des débiteurs d'une venue de patient // Gestion des débiteurs d'une venue de patient case "CHPrimXMLDebiteursVenue": /** @var CHPrimXMLDebiteursVenue $dom_evt */ $echg_hprim->id_permanent = $data['idSourcePatient']; return $dom_evt->debiteursVenue($dom_acq, $newPatient, $data); default: return $dom_acq->generateAcquittements("erreur", "E007"); } }