/**
  * 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");
     }
 }