/**
  * 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;
 }
 /**
  * Generate acknowledgment
  *
  * @param CHPrimSanteAcknowledgment $dom_acq Acknowledgment
  * @param CHPrimSanteError[]        $errors  hprim sante errors
  * @param CMbObject                 $object  Object
  *
  * @return CHPrimSanteAcknowledgment
  */
 function setAck(CHPrimSanteAcknowledgment $dom_acq, $errors, CMbObject $object = null)
 {
     $acq = $dom_acq->generateAcknowledgment($errors, $object);
     return $this->populateExchangeACK($acq, $object);
 }