/** * 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)); } }