Beispiel #1
0
 /**
  * Usage:
  * <code>
  * $ack = new Net_HL7_Messages_ACK($request);
  * </code>
  *
  * Convenience module implementing an acknowledgement (ACK) message. This
  * can be used in HL7 servers to create an acknowledgement for an
  * incoming message.
  *
  * @version    0.10
  * @author     D.A.Dokter <*****@*****.**>
  * @access     public
  * @category   Networking
  * @package    Net_HL7
  * @license    http://www.php.net/license/3_0.txt  PHP License 3.0
  */
 function Net_HL7_Messages_ACK($req = "")
 {
     parent::Net_HL7_Message();
     if ($req) {
         $msh =& $req->getSegmentByIndex(0);
         if ($msh) {
             $msh =& new Net_HL7_Segments_MSH($msh->getFields(1));
         } else {
             $msh =& new Net_HL7_Segments_MSH();
         }
     } else {
         $msh =& new Net_HL7_Segments_MSH();
     }
     $msa =& new Net_HL7_Segment("MSA");
     // Determine acknowledge mode: normal or enhanced
     //
     if ($req && ($msh->getField(15) || $msh->getField(16))) {
         $this->_ACK_TYPE = "E";
         $msa->setField(1, "CA");
     } else {
         $this->_ACK_TYPE = "N";
         $msa->setField(1, "AA");
     }
     $this->addSegment($msh);
     $this->addSegment($msa);
     $msh->setField(9, "ACK");
     // Construct an ACK based on the request
     if ($req && $reqMsh) {
         $msh->setField(3, $reqMsh->getField(5));
         $msh->setField(4, $reqMsh->getField(6));
         $msh->setField(5, $reqMsh->getField(3));
         $msh->setField(6, $reqMsh->getField(4));
         $msa->setField(2, $reqMsh->getField(10));
     }
 }