|TCP/IP Interface Specifications|
This document describes the Minimal Lower Layer Protocol (MLLP) implemented by HL7Connect. HL7Connect uses a single duplex connection, with a request/response mechanism as described in the HL7 Standard (Control and Query chapter).
The underlying code used for the TCP/IP implementation of the Lower Layer Protocol is open source. It has been donated to Indy and is expected to be part of the next Indy Release. Indy is an open source network library for Delphi, CBuilder on Windows, and Kylix on Linux.
|Remote System||The system to which HL7Connect is interfacing|
|Outgoing Interface||The system that initiates messages|
|Incoming Interface||The system that responds to messages|
|Client||The system that initiates the TCP/IP connection|
|Server||The system that waits for the TCP/IP Connection to be made|
Note: In HL7Connect, there is a requirement to have one system initiating messaging by sending a message (outgoing Interface), to which the other system responds (incoming Interface). Although, at the communications level, the connection is full duplex mode, it is not actually used as such.
HL7Connect MLLP Interfaces use a TCP/IP connection. The connection may be established by either the outgoing or incoming interface. NOTE: Usually the outgoing interface is the client - for more details refer to Troubleshooting below.
When an interface is setup to be a "client", once the interface is started it will attempt to connect to the nominated IP Address (or a DNS resolvable PC name) and port. If the connection fails, the interface will wait for 30 seconds before trying to reconnect.
When an interface is a "server", the interface will open a socket in listening mode. The remote system must open the connection by connecting to the specified port, then the initiating system is able to send messages.
HL7Connect will refuse to accept connections when:
Once a connection has been established, the connection will only be dropped if the following circumstances:
Messages are sent in ER/7, or XML format, with 0x0B before the message and 0x1C0D after the message.
Once the connection is established, HL7Connect will start sending messages. There may be a few seconds delay before messages are sent. HL7Connect will wait for a user configured amount of time for an answer. If there is no answer, the connection will be dropped.
When a message is received, HL7Connect will process the message and respond with a standard HL7 acknowledgement. HL7Connect only processes one message at a time.
It is possible for HL7Connect to mistakenly believe that it has a connection. This can happen in the following circumstances:
In these circumstances, HL7Connect does not realise it does not have a valid connection with the TCP Server - it is waiting to receive information from an external system and is not aware that the connection is lost. Because of this problem, the interface can be configured to automatically restart if there are no messages for more than a specified period.