HL7 V2 Standard Inbound Message Mode Data Flow over MLLPV2 —
Part 3
If no exception occurs, validateHL7Message() is called, which validates the message to
determine whether to ACK or NAK the message. Other helper methods are also called to
validate the HL7 message.
If the HL7 message does not pass validation, the Collaboration calls makeNak() and
sendHL7Nak() to create and send the NAK to the external system. The HL7 message, with the
NAK, is archived to the error queue. If the number of consecutive NAKs sent surpasses the
maximum number of retries, the associated recourse action is taken.
If the HL7 message passes validation, the Collaboration calls makeAck() and sendHL7Ack() to
create and send the ACK to the external system. The HL7 ACK/NAK messages are stored in the
persistent database. This ACK/NAK is stored against the inbound HL7 message received.
After the ACK is sent, the HL7 message and the ACK are journaled to the JMS queue journal
destination. If the message fails to journal the associated recourse action is taken.
If sequencing numbering is enabled, the processAckNakSequenceNumbering method calculates
the next sequence number and stores the number in the sequence number le by calling the
updateSequenceNumberFile method to persist the next sequence number.
MLLPV2andthe SampleProjects
SunAdapterforTCP/IPHL7User's Guide 149