/** * 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 */ public function __construct($req = "", $reqMsh = null) { parent::__construct(); 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)); } }
public function test() { $msh = new Net_HL7_Segments_MSH(); $msh->setField(1, "*"); $this->assertTrue($msh->getField(1) == "*", "MSH Field sep field (MSH(1))"); $msh->setField(1, "xx"); $this->assertTrue($msh->getField(1) == "*", "MSH Field sep field (MSH(1))"); $msh->setField(2, "xxxxx"); # Should have had no effect $this->assertTrue($msh->getField(2) == "^~\\&", "Special fields not changed"); # Should have had the effect of changing some separator fields $msh->setField(2, "abcd"); $this->assertTrue($msh->getField(2) == "abcd", "Encoding characters field set (MSH(2))"); }
<?php require_once "Net/HL7/Segment.php"; require_once "Net/HL7/Segments/MSH.php"; require_once "test_base.php"; $msh = new Net_HL7_Segments_MSH(); $msh->setField(1, "*"); ok($msh->getField(1) == "*", "MSH Field sep field (MSH(1))<br>"); $msh->setField(1, "xx"); ok($msh->getField(1) == "*", "MSH Field sep field (MSH(1))<br>"); $msh->setField(2, "xxxxx"); # Should have had no effect ok($msh->getField(2) == "^~\\&", "Special fields not changed<br>"); # Should have had the effect of changing some separator fields $msh->setField(2, "abcd"); ok($msh->getField(2) == "abcd", "Encoding characters field set (MSH(2))<br>");