Receive HL7 over MLLP
An MLLP listener gives a sending system its own TCP port. The system connects, sends HL7 v2 messages framed with MLLP, and gets an HL7 acknowledgement (ACK) back for each one on the same connection. This is how most patient administration systems and interface engines send ADT.
Before you begin
Have the following ready:
- The IP address (or address range) the sending system connects from. MLLP has no sign-in, so NEEV only accepts connections from the addresses you list.
- The feed the messages should go into, for example HL7 ADT -> FHIR Bundle (Scenario 1) for admissions, transfers and discharges.
- The admin role in the workspace.
1. Add the listener
- Open Sources and select New source.
- Select MLLP listener.
- Enter a Name the team will recognise, for example
Hospital PAS – ADT. - Under Send messages into, choose the feed.
- Leave Port empty to get the next free port. If the sending system must use a particular port, enter it; NEEV checks it is free and allowed.
- Under Allowed senders, enter the sending system's IP address, or a
range such as
10.20.4.0/24, one per line. - Select Add source.
New MLLP listener with two allowed senders
The source is added switched off, with its port reserved.
Outside a local test environment, a listener must have at least one allowed sender. A connection from any other address is closed before anything is read, and the attempt is recorded in Logs as a security event.
2. Switch it on and check it
- In the Sources list, switch the new source on.
- Wait a few seconds. The Listener line on the right changes from starting to listening, with "Listening on port 2575."
- Select Test connection. It connects to the port the same way the sending system will and answers "The listener answers on port 2575. The sending system can connect."
- Select Send a test message. NEEV sends one sample admission over MLLP and shows the ACK it got back, for example "Sent one admission to port 2575. The listener answered AA: accepted."
The listener is on, and a test admission was accepted
The test message is a real message: it appears in Messages with Transport MLLP and Arrived through Hospital PAS – ADT.
3. Set up the sending system
Under Set up the clinic's interface engine the panel lists everything the sending system needs. Select Copy and send it to whoever configures the interface engine.
Connection details for the interface engine
| Setting | Value |
|---|---|
| Host | The address shown on the panel |
| Port | The source's port |
| Protocol | MLLP over TCP: start block 0x0B, end block 0x1C 0x0D |
| Acknowledgement | Original mode. Wait for each ACK before sending the next message |
What the sending system gets back
Every message gets an HL7 ACK on the same connection. The ACK's control ID
(MSA-2) is the control ID of the message it answers (MSH-10).
| ACK | Meaning | What the sender should do |
|---|---|---|
AA | Accepted. The message is stored and on its way. | Send the next message. |
AE | Received and stored, but the pipeline could not process it. The reason is in the ERR segment, for example Unsupported ADT trigger A02. | Do not resend unchanged. Look at the message in Messages. |
AR | Refused, for example because the feed is switched off. Nothing is stored. | Hold the message and send it again later. |
MSH|^~\&|NEEV|LENIA|HOSPITAL-PAS|NEEV-GENERAL|20261021102246||ACK|ACKDOCX20261021202246|P|2.5
MSA|AE|DOCX20261021202246
ERR||207^HL70357^2.5|E|||Unsupported ADT trigger A02|Unsupported ADT trigger A02
The same reason is shown on the message in Messages, so the person looking at it there sees what the sending system was told.
Change or move the listener
- Select the source, then Change.
- Edit the name, the feed, the port or the allowed senders.
- Select Save changes.
Changing the port moves the listener: the old port stops answering and the new one starts within a few seconds. Tell the sending system first.
Listener status
| Status | Meaning |
|---|---|
| listening | The port is open and taking connections. |
| starting | The source was just switched on; the listener opens the port within a few seconds. |
| port in use | Another program already holds the port. Choose another port with Change, or stop the other program. Counts under Need a look. |
| not listening | The listener service is not running. Contact your NEEV administrator. |
Limits
- One port per source. No two sources, in any workspace, share a port.
- A single message can be up to 5 MB. A larger stream is cut off and the connection closed.
- Several connections can be open at once, and one connection can carry many messages, one after another.