The Lower Layer Protocol (LLP), sometimes referred to as the Minimal Lower Layer Protocol (MLLP), is the absolute standard for transmitting HL7 messages via TCP/IP. Since TCP/IP is a continuous stream of bytes, a wrapping protocol is required for communications code to be able to recognize the start and the end of each message.
The Lower Layer Protocol is the most common HL7 transport mechanism for sending unencrypted HL7 via TCP/IP over a local area network, such as those found in a hospital.
When using LLP, an HL7 message must be wrapped using a header and trailer (also called a footer) to signify the beginning and end of a message. These headers and footers are usually non-printable characters that would not be shown in the actual content of an HL7 message.
The typical structure of an HL7 message being sent via LLP is described in the table below. It contains four parts:
Header | HL7 Message | Trailer | Carriage Return |
---|---|---|---|
Vertical tab character (0x0B) | The HL7 message is wrapped using a header and trailer (immediately followed by a carriage return): MSH|^~\&||.|||199908180016||ADT^A04|ADT.1.1698593|P|2.5
PID|1||000395122||LEVERKUHN^ADRIAN^C^^^||19880517180606|M| |
Field separator character (0x1C) | Carriage return (0x0D) |
Moreover, you must also ensure that each segment is terminated by an 0x0D (carriage return) character. This is mandated by the standard, but often HL7 log data can be received via FTP or email where the segment separators have been transformed into 0x0A characters.
There are various methods to secure data traffic via LLP:
The Hybrid Lower Layer Protocol (HLLP) is a variation of the more widely used Lower Layer Protocol. Like LLP, HLLP uses TCP/IP as its transport but incorporates error detection and verification via the use of checksums at the end of messages. The checksums are used to verify that no data was corrupted. Checksums are typically computed for each block of data that is sent for the sending application and then verified for accuracy at the receiving application.
The checksums used in HLLP are non-standard, meaning they may vary from implementation to implementation.
A common type of checksum used in HLLP is called BCC (Block Character Check), which is the sum of all characters in a block. The BCC checksum is considered a weak checksum since it may be easy to find different blocks that generate the same block checksum. Although the BCC checksum is relatively easy to implement, it may not meet the communication standards of most companies.
In practice, most vendors choose to use TCP/IP over LLP, rather than HLLP. LLP is a very simple protocol to incorporate and can be used instead of HLLP since the TCP/IP channel provides all of the services necessary for the error-free delivery of HL7 messages. This includes:
1. Connection Handshaking
The process by which two systems initiate communication. Start and end control characters are used to start/stop the transmission of data.
2. Full Duplex Data Transfer
The process by which a system transmits and bi-directionally receives data simultaneously.
3. Error Detection and Retransmission
The process by which the transport layer detects segments that fail transmission and retransmits them, if necessary.
4. Flow Control
The process by which the flow of messages between systems is managed by TCP through the use of ACKs and NACKs. Through the use of ACKs/NACKs and other built-in mechanisms in an HL7 application, you can manage the flow of data to ensure that messages are transferred efficiently and reliably.
5. Connection Termination
The process by which a connection is ended independently by each system via a handshake.
In most cases, HLLP is an unnecessary requirement as long as the two communicating health systems are using a reliable Open Systems Interconnection (OSI) transport layer since the transmission of messages, as well as the integrity of messages, is already verified by the underlying OSI protocols.
Hybrid LLP is only used for unreliable transports (e.g. transporting messages via a serial cable) and is considered unnecessary by most vendors.
With TCP/IP, checksums over data and headers are already inherent to the protocol. This means that the protocol will detect checksum errors and request the retransmission of data, if necessary. What this means is that a secondary checksum associated with HLLP will not further guarantee data delivery but just adds to transport overheads.
As one of the most commonly used protocols for transporting HL7, it can be helpful to know how to properly set up an LLP client or server for sending and receiving messages.
Developed by iNTERFACEWARE, Iguana is a data integration platform, and the only tool you need to send HL7 data via LLP (or any other transport protocol) quickly and reliably. Iguana comes with pre-built components, featuring an easy to use front-end interface that leads you through the process of setting up an LLP client or server for real-time data transfer.
Fill out the form and we'll be in touch.