/** * Constructor * * @param CExchangeHprimSante $exchange Exchange * @param String $type_error Error type * @param String $code_error Error code * @param String[] $address Error address * @param String $field Error field * @param String $comment Comment */ function CHPrimSanteError($exchange, $type_error, $code_error, $address, $field, $comment = null) { $this->type_error = $type_error; $this->code_error = $code_error; $this->address = $address; $this->field = $field; $this->type = $exchange->type; $this->sous_type = $exchange->sous_type; $this->exchange = $exchange; $this->comment = CMbString::removeAllHTMLEntities($comment); }
/** * @see parent::build */ function build(CHPREvent $event) { parent::build($event); $error = $this->error; $acknowledgment = $this->acknowledgment; $exchange_hpr = $event->_exchange_hpr; $data = array(); if ($error instanceof CHL7v2Error) { // ERR-1: Segment Row $data[] = $acknowledgment->_row; // ERR-2: Filename $data[] = $exchange_hpr->nom_fichier; // ERR-3: Date / Time of receipt $data[] = $exchange_hpr->date_production; // ERR-4: Severity $data[] = null; // ERR-5: Line number $data[] = null; // ERR-6: Error Location $data[] = null; // ERR-7: Field Position $data[] = null; // ERR-8: Error value $data[] = null; // ERR-9: Error type $data[] = null; // ERR-10: Original Text $data[] = null; } else { // ERR-1 $data[] = $acknowledgment->_row; // ERR-2 $data[] = $exchange_hpr->nom_fichier; // ERR-3 $data[] = $exchange_hpr->date_production; // ERR-4 $data[] = $error[0]; // ERR-5 $data[] = null; // ERR-6 $data[] = array(array($error[2][0], $error[2][1], $error[2][2])); // ERR-7 $data[] = null; // ERR-8 $data[] = $error[4]; // ERR-9 $data[] = $error[5]; // ERR-10 $data[] = CMbString::removeAllHTMLEntities($error[6]); } $this->fill($data); }
/** * Generate acknowledgment * * @param string $ack_code Acknowledgment code * @param string $mb_error_codes Mediboard error code * @param null $hl7_error_code HL7 error code * @param string $severity Severity * @param null $comments Comments * @param null $object Object * * @return null|string */ function generateAcknowledgment($ack_code, $mb_error_codes, $hl7_error_code = null, $severity = "E", $comments = null, $object = null) { $this->ack_code = $ack_code; $this->mb_error_codes = $mb_error_codes; $this->hl7_error_code = $hl7_error_code; $this->severity = $severity; $this->comments = CMbString::removeAllHTMLEntities($comments); $this->object = $object; $this->event->_exchange_hl7v2 = $this->_ref_exchange_hl7v2; $this->event_ack = new CHL7v2EventORR($this->event); $this->event_ack->build($this); $this->event_ack->flatten(); $this->event_ack->msg_hl7 = utf8_encode($this->event_ack->msg_hl7); return $this->event_ack->msg_hl7; }
/** * Ajout des erreurs et des avertissements dans l'acquittement * * @param string $statut Statut de l'acquittement * @param array $codes Codes d'erreurs * @param string $commentaires Commentaire * @param CMbObject $mbObject Object * * @return void */ function addErreursAvertissements($statut, $codes, $commentaires = null, $mbObject = null) { $commentaires = CMbString::removeAllHTMLEntities($commentaires); $acquittementsPatients = $this->documentElement; $erreursAvertissements = $this->addElement($acquittementsPatients, "erreursAvertissements"); if (is_array($codes)) { foreach ($codes as $code) { $translate = CAppUI::tr("hprimxml-error-{$code}"); $this->addErreurAvertissement($erreursAvertissements, $statut, $code, $translate, $commentaires, $mbObject); } } else { $translate = CAppUI::tr("hprimxml-error-{$codes}"); $this->addErreurAvertissement($erreursAvertissements, $statut, $codes, $translate, $commentaires, $mbObject); } }
function addReponse($elParent, $statut, $codes, $mbObject = null, $commentaires = null) { if ($statut == "ok") { return; } $erreur = $this->addElement($elParent, "erreur"); $libelle = null; if (is_array($codes)) { $code = implode("", $codes); foreach ($codes as $_code) { $libelle .= CAppUI::tr("hprimxml-error-{$_code}"); } } else { $code = $codes; $libelle = CAppUI::tr("hprimxml-error-{$code}"); } $this->addElement($erreur, "code", substr($code, 0, 17)); $this->addElement($erreur, "libelle", substr($libelle, 0, 80)); if ($commentaires) { $commentaires = CMbString::removeAllHTMLEntities($commentaires); $this->addElement($erreur, "commentaire", substr("{$libelle} : \"{$commentaires}\"", 0, 4000)); } }
/** * Store the file * * @param String $prefix Prefix for the name of file * @param String $file_name Name of file * @param String $file_type Type file * @param CSejour $sejour Sejour * @param Array &$erreur Error * * @return bool */ function storeFile($prefix, $file_name, $file_type, $sejour, &$erreur) { /** @var CInteropSender $sender */ $sender = $this->_ref_sender; $exchange_hpr = $this->_ref_exchange_hpr; $file = false; $object_links = $sender->loadRefsObjectLinks(); foreach ($object_links as $_object_link) { /** @var CInteropSender $sender_link */ $sender_link = $_object_link->loadRefObject(); $sender_link->loadRefsExchangesSources(); foreach ($sender_link->_ref_exchanges_sources as $_source) { $path = $_source->getFullPath($file_name); /** @var CExchangeSource $_source */ $data = $_source->getData($path); if (!$data) { continue; } $file = new CFile(); $file->file_name = "{$prefix} {$file_name}"; $file->file_type = $file_type; $file->fillFields(); $file->setObject($sejour); $file->putContent($data); if ($msg = $file->store()) { $erreur[] = new CHPrimSanteError($exchange_hpr, "P", "17", array("OBX", $this->loop, $this->identifier_patient), "10.6", CMbString::removeAllHTMLEntities($msg)); continue; } } } if (!$file) { $erreur[] = new CHPrimSanteError($exchange_hpr, "P", "18", array("OBX", $this->loop, $this->identifier_patient), "10.6"); return false; } return true; }