Skip to main content


abstract class EnsLib.HL7.Operation.AckOutStandard extends EnsLib.HL7.Operation.ReplyStandard

A specialized HL7 TCP Operation that sends out ACKs on behalf of a paired HL7 TCP Service. It also depends on this partner Service to collect ACKs on its behalf, for example to send messages to a dual-channel iSoft iCM application.

Property Inventory

Method Inventory


parameter SETTINGS = PartnerAckTimeout;
Inherited description: List of properties can be set as settings in the configuration file format is a comma separated list of property names


property PartnerAckTimeout as %Numeric [ InitialExpression = 600 ];
The amount of time to wait for our partner Service to forward us an ACK corresponding to a normal outbound message we sent.
Property methods: PartnerAckTimeoutDisplayToLogical(), PartnerAckTimeoutGet(), PartnerAckTimeoutIsValid(), PartnerAckTimeoutLogicalToDisplay(), PartnerAckTimeoutNormalize(), PartnerAckTimeoutSet()
property ReplyCodeActions as %String (MAXLEN = 1000);
A comma-separated list of codes specifying what action this Operation will take on receipt of various types of ACK response messages and other reply status conditions.
The format of the list is: <code>=<action>,<code>=<action>,...
A <code> value starting with a colon - e.g. :<char><char> represents a literal value found in field MSA:1 of the response message.
Also, the following special code values may be used:
:?A - matches AA or CA values (Accept)
:?E - matches AE or CE values (Error)
:?R - matches AR or CR values (Reject)
:_ - matches replies with an empty MSA:1 field
:* - matches any MSA:1 value not matched otherwise (default=F)
:~ - matches replies that do not contain an MSA segment
:T? - matches where the reply MSH:9 Type name does not match the schema's declared reply type for the original message

Also, the following standard status conditions may be used:
E - Error status returned from message handler
E#<statuscode> - Error status returned from message handler has status code equal to <statuscode>
E*<text> - Error status returned from message handler contains text string <text>
X - there is no reply message at all
Note: an empty or whitespace code value is the same as :_.

The following values for <action> may be used alone or in combinations:
C - Treat the message as Completed OK.
W - Log a warning but treat the message as Completed OK.
R - Retry the message according to the configured RetryInterval and FailureTimeout; finally Fail unless a different action is also specified
S - Suspend the message, log an error, and move on to try the next message
D - Disable the Operation, log an error and restore the outbound message to the front of the Operation's queue
F - Fail with an error and move on to try the next message
Note: F is the default action if no other is given, except for code ?A where the default action is C

The default behavior is ':?R=RF,:?E=S,:~=S,:?A=C,:*=S,:T?=C'
This means for NACKs received with error code AR or CR retry, while codes AE or CE suspend the current outbound message and move on to the next.

All codes where the <actions> consists of only 'W' (for 'log a Warning') will be evaluated and warnings generated if they trigger. Other codes will be evaluated in left-to-right order, executing the first one that triggers that has a non-warning <actions> value.
Property methods: ReplyCodeActionsDisplayToLogical(), ReplyCodeActionsGet(), ReplyCodeActionsIsValid(), ReplyCodeActionsLogicalToDisplay(), ReplyCodeActionsLogicalToOdbc(), ReplyCodeActionsNormalize(), ReplyCodeActionsSet()


method OnInit() as %Status
Inherited description: This user callback method is called via initConfig() from %OnNew() or in the case of SOAP Services from OnPreSOAP()
method OnMessage(pRequest As EnsLib.HL7.Message, Output pResponse As EnsLib.HL7.Message) as %Status
Upon dequeueing each message, send it and wait for Commit ACK. If recieved, dequeue for Application ACK from PartnerService using PartnerAckTimeout. While waiting, loop to send ACKs from Service if any Upon dequeueing ACK originating from PartnerService send it and wait for Commit ACK.

Inherited Members

Inherited Properties

Inherited Methods


FeedbackOpens in a new tab