if (!$sejour->_NDA) { $nda = new CIdSante400(); //Paramétrage de l'id 400 $nda->object_class = "CSejour"; $nda->object_id = $nda->_id; $nda->tag = $dest_hprim->_tag_sejour; $nda->loadMatchingObject(); $sejour->_NDA = $nda->id400; } if (CAppUI::conf("sip send_sej_pa") && $sejour->_etat != "preadmission") { continue; } if (CAppUI::conf("sip sej_no_numdos") && $sejour->_NDA && $sejour->_NDA != "-") { continue; } $domEvenement = new CHPrimXMLVenuePatient(); $domEvenement->emetteur = CAppUI::conf('mb_id'); $domEvenement->destinataire = $dest_hprim->nom; $domEvenement->group_id = $dest_hprim->group_id; $messageEvtPatient = $domEvenement->generateTypeEvenement($sejour); $doc_valid = $domEvenement->schemaValidate(); if (!$doc_valid) { $errors++; trigger_error("Création de l'événement séjour impossible.", E_USER_WARNING); CAppUI::stepAjax("Import de '{$sejour->_view}' échoué", UI_MSG_WARNING); } if ($sejour->_ref_patient->code_regime) { $domEvenement = new CHPrimXMLDebiteursVenue(); $domEvenement->emetteur = CAppUI::conf('mb_id'); $domEvenement->destinataire = $dest_hprim->nom; $domEvenement->group_id = $dest_hprim->group_id;
/** * Fusion and recording a stay with an num_dos in the system * * @param CHPrimXMLAcquittementsPatients $dom_acq Acquittement * @param CPatient $newPatient Patient * @param array $data Data * * @return string acquittement **/ function mouvementPatient(CHPrimXMLAcquittementsPatients $dom_acq, CPatient $newPatient, $data) { $echg_hprim = $this->_ref_echange_hprim; $sender = $echg_hprim->_ref_sender; $sender->loadConfigValues(); $this->_ref_sender = $sender; // Traitement de la venue $newVenue = new CSejour(); $domVenuePatient = new CHPrimXMLVenuePatient(); $domVenuePatient->_ref_echange_hprim = $echg_hprim; $msgAcq = $domVenuePatient->venuePatient($dom_acq, $newPatient, $data, $newVenue); if ($echg_hprim->statut_acquittement != "OK") { return $msgAcq; } $dom_acq = new CHPrimXMLAcquittementsPatients(); $dom_acq->_identifiant_acquitte = $data['identifiantMessage']; $dom_acq->_sous_type_evt = $this->sous_type; $dom_acq->_ref_echange_hprim = $echg_hprim; // Mapping venue - création impossible if (!$this->admitFound($newVenue, $data)) { return $echg_hprim->setAckError($dom_acq, "E014", null, $newVenue); } $codes = array(); $avertissement = $comment = null; if (!CAppUI::conf("hprimxml mvtComplet") || CAppUI::conf('smp server')) { return $echg_hprim->setAck($dom_acq, $codes, $avertissement, $comment, $newVenue); } // Mapping des mouvements $msgMovement = $this->mappingMouvements($data['mouvements'], $newVenue); // Notifier les autres destinataires $newVenue->_eai_sender_guid = $sender->_guid; $newVenue->store(); $codes = array($msgMovement ? "A301" : "I301"); if ($msgMovement) { $avertissement = $msgMovement . " "; } $comment = CEAISejour::getComment($newVenue); return $echg_hprim->setAck($dom_acq, $codes, $avertissement, $comment, $newVenue); }