Skip to main content

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:

  1. 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.
  2. The feed the messages should go into, for example HL7 ADT -> FHIR Bundle (Scenario 1) for admissions, transfers and discharges.
  3. The admin role in the workspace.

1. Add the listener​

  1. Open Sources and select New source.
  2. Select MLLP listener.
  3. Enter a Name the team will recognise, for example Hospital PAS – ADT.
  4. Under Send messages into, choose the feed.
  5. 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.
  6. Under Allowed senders, enter the sending system's IP address, or a range such as 10.20.4.0/24, one per line.
  7. Select Add source.

New MLLP listener with two allowed senders

The source is added switched off, with its port reserved.

Allowed senders is required

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​

  1. In the Sources list, switch the new source on.
  2. Wait a few seconds. The Listener line on the right changes from starting to listening, with "Listening on port 2575."
  3. 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."
  4. 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

SettingValue
HostThe address shown on the panel
PortThe source's port
ProtocolMLLP over TCP: start block 0x0B, end block 0x1C 0x0D
AcknowledgementOriginal 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).

ACKMeaningWhat the sender should do
AAAccepted. The message is stored and on its way.Send the next message.
AEReceived 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.
ARRefused, for example because the feed is switched off. Nothing is stored.Hold the message and send it again later.
An AE answer, with the reason
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​

  1. Select the source, then Change.
  2. Edit the name, the feed, the port or the allowed senders.
  3. 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​

StatusMeaning
listeningThe port is open and taking connections.
startingThe source was just switched on; the listener opens the port within a few seconds.
port in useAnother program already holds the port. Choose another port with Change, or stop the other program. Counts under Need a look.
not listeningThe 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.