本文整理汇总了PHP中CIdSante400::getMbObject方法的典型用法代码示例。如果您正苦于以下问题:PHP CIdSante400::getMbObject方法的具体用法?PHP CIdSante400::getMbObject怎么用?PHP CIdSante400::getMbObject使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CIdSante400
的用法示例。
在下文中一共展示了CIdSante400::getMbObject方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: CPatient
/**
* Handle event A45 - move visit information - visit number
*
* @param CHL7Acknowledgment $ack Acknowledgment
* @param CPatient $newPatient Person
* @param array $data Datas
*
* @return string
*/
function handleA45(CHL7Acknowledgment $ack, CPatient $newPatient, $data)
{
$exchange_hl7v2 = $this->_ref_exchange_hl7v2;
$sender = $exchange_hl7v2->_ref_sender;
// On considère que l'on a qu'un changement à faire
if (count($data["merge"]) > 1) {
return $exchange_hl7v2->setAckAR($ack, "E701", null, $newPatient);
}
$merge = CValue::read($data["merge"], 0);
$keep_patient = new CPatient();
$patientPI = CValue::read($data['personIdentifiers'], "PI");
// Acquittement d'erreur : identifiants RI et PI non fournis
if (!$patientPI) {
return $exchange_hl7v2->setAckAR($ack, "E100", null, $newPatient);
}
// Chargement du patient
$idexPatient = CIdSante400::getMatch("CPatient", $sender->_tag_patient, $patientPI);
$keep_patient->load($idexPatient->object_id);
if (!$keep_patient->_id) {
return $exchange_hl7v2->setAckAR($ack, "E702", null, $keep_patient);
}
// MRG-1 Ancien numéro du patient
// Chargement du séjour pour ce patient
$MRG_1 = $this->queryTextNode("MRG.1/CX.1", $merge["MRG"]);
$idex = new CIdSante400();
$idex->object_class = "CPatient";
$idex->id400 = $MRG_1;
$idex->tag = $sender->_tag_patient;
/** @var CPatient $patient_removing */
$patient_removing = $idex->getMbObject();
if (!$patient_removing || !$patient_removing->_id) {
return $exchange_hl7v2->setAckAR($ack, "E703", null, $newPatient);
}
// MRG-5 Numéro de dossier
// Chargement du dossier par le numéro de séjour
$MRG_5 = $this->queryTextNode("MRG.5/CX.1", $merge["MRG"]);
$idex = new CIdSante400();
$idex->object_class = "CSejour";
$idex->id400 = $MRG_5;
$idex->tag = $sender->_tag_sejour;
/** @var CSejour $venue */
$venue = $idex->getMbObject();
if (!$venue || !$venue->_id) {
return $exchange_hl7v2->setAckAR($ack, "E704", null, $newPatient);
}
// Si le patient du séjour retrouvé est différent de celui que l'on doit "supprimer"
if ($venue->patient_id != $patient_removing->_id) {
return $exchange_hl7v2->setAckAR($ack, "E705", null, $venue);
}
// Réattribution du patient_id sur le séjour
// Impossibilité dans Mediboard de modifier le patient d'un séjour ayant une entrée réelle
if (CAppUI::conf("dPplanningOp CSejour patient_id") == 2 && $venue->entree_reelle) {
return $exchange_hl7v2->setAckAR($ack, "E706", null, $venue);
}
$venue->patient_id = $keep_patient->_id;
// Notifier les autres destinataires autre que le sender
$venue->_eai_sender_guid = $sender->_guid;
if ($msg = $venue->store()) {
return $exchange_hl7v2->setAckAR($ack, "E707", $msg, $venue);
}
$comment = CEAISejour::getComment($venue);
return $exchange_hl7v2->setAckAA($ack, "I700", $comment, $venue);
}