/** * @see parent::build() */ function build($object) { parent::build($object); if ($object instanceof CPatient) { $patient = $object; } else { $patient = $object->loadRefPatient(); } $this->addP($patient); $this->addL(); }
/** * Send en event * * @param CHPrimSanteEvent $evenement evenement * @param CMbObject $mbObject object * * @return null|String * @throws CMbException */ function sendEvent($evenement, CMbObject $mbObject) { $evenement->_receiver = $this; $this->loadConfigValues(); $evenement->build($mbObject); if (!($msg = $evenement->flatten())) { return null; } /** @var CExchangeHprimSante $exchange */ $exchange = $evenement->_exchange_hpr; if (!$exchange->message_valide) { return null; } if (!$this->synchronous) { return null; } $source = CExchangeSource::get("{$this->_guid}-{$evenement->type}"); if (!$source->_id || !$source->active) { return null; } $source->setData($msg, null, $exchange); try { $source->send(); } catch (Exception $e) { throw new CMbException("CExchangeSource-no-response"); } $exchange->date_echange = CMbDT::dateTime(); $ack_data = $source->getACQ(); if (!$ack_data) { $exchange->store(); return null; } /** @var CHPrimSanteEvent $data_format */ $data_format = CHPrimSante::getEvent($exchange); $ack = new CHPrimSanteAcknowledgment($data_format); $ack->handle($ack_data); $exchange->date_echange = CMbDT::dateTime(); $exchange->statut_acquittement = $ack->getStatutAcknowledgment(); $exchange->acquittement_valide = $ack->message->isOK(CHL7v2Error::E_ERROR) ? 1 : 0; $exchange->_acquittement = $ack_data; $exchange->store(); return $ack_data; }
/** * @see parent::build() */ function build($object) { parent::build($object); /* @todo Pas de création de message pour le moment */ }