Print Page

Monday, April 20, 2009

Friday, April 17, 2009

Sending HL7 Messages using MLLP

What is MLLP ?
The Minimal Lower Layer Protocol (MLLP) is the most common mechanism for exchanging the HL7 data. MLLP uses the TCP/IP protocol to transfer the data in continuous stream of bytes. MLLP delimiters is used to recognize the start and the end of message,

The structure of an MLLP message is given below
<SB> + <Message> + <EB> + <CR>

<SB> = Start Block. Messages are prefixed with start byte charcter <SB>
<Message> = HL7 Message
<EB> = End Block. Messages are terminated with end byte character <EB>
<CR> = Carriage Return.

Overriding HL7 MLLP delimiter in Oracle B2B
In Oracle B2B,these parameters are available as part of Document Exchange parameter.
MLLP parameter can be overridden as part of the endpoint configuration in the delivery channel. These values must be given in hexadecimal format.

Default hexadecimal values of MLLP delimiters are
<SB> = 0x0B (VT)
<EB> = 0x1C (FS)
<CR> =Carriage Return

Types of MLLP connection
There are two types of MLLP connection
1. Permanent Connection : In this case, only one connection is used to exchange all the messages between two endpoints.

2. Transient Connection : In this mode a new socket is created for each message. When a message is sent the sender waits for the ACK and once it is received socket is closed.

In Oracle B2B, the mode can be set in the transport protocol parameter in Delivery channel.

Wednesday, April 8, 2009

Filename Preserve Feature - Enhanced on MLR9

It has been enhanced and made available at the Delivery channel level. This feature ensures to preserve the filename of the payload while processing the message in B2B. Users can now configure this feature at the delivery channel level, using "Preserve Filename" attribute in transport parameter. The possible values are true/false, with the default value as false.

This applies to both outbound and inbound scenario, which uses File/FTP/SFTP transport protocols as external/internal delivery channels.

The tip.properties entry "oracle.tip.adapter.b2b.FilenamePreserve" is no longer needed.

Monday, April 6, 2009

Functional Acknowledgement in HL7 and how to override.

Functional Acknowledgement in HL7 are used to indicate a state of Accpetance by the Application layer. It can be used for sending the translation, validation status. Typical business message in HL7 is

MSH|^~\&|ACME APP|ACME FAC|GC APP|GC FAC|20050804162010||ADT^A01|13463138|P|2.3.1|||AL|AL|US|ASCII|ENG
PID|1||A0000010||TEST, Patient 01_10||20001001|F
PV1|1||||||||||||||||||10010


typical Acknowledgement in HL7 is

MSH|^~\&|app HL7|| ||20010508150310||MSA|567890|P|2.3|||

MSA|AE|12345678|Error


Functional Acknowledgement need to be configured in the Document layer. The flag isFunctionalAck required controls whether an FA is needed are not. Make sure to define a Document Type with the name and revision of ACK_A01/2.3.1(as that of business message) attached Business action in the agreement.

It is possible to override the "isFunctionalAck" flag by sending MSH.15 with following values.

AA - Application Accept
AE - Application Error
AR - Application Reject
CA - Commit Accept
CE - Commit Error
CR - Commit Reject


How to override MSH.15

OracleAS Integration B2B checks the payload (MSH.15) of an incoming message to check if an acknowledgment must be generated. However, in some HL7 systems, MSH.15 is not sent in the payload, although an acknowledgment is still expected to be sent. To enable OracleAS Integration B2B to handle this case, set the following flag in

tip.properties:
oracle.tip.adapter.b2b.hl7.acceptAcknowledgement=AL

When this flag is set, OracleAS Integration B2B uses the value, AL, as the value for MSH.15 in the payload.