available as of Camel 2.17

The MLLP component is specifically designed to handle the nuances of the MLLP protocol and provide the functionality required by Healthcare providers to communicate with other systems using the MLLP protocol.  The MLLP component  provides a simple configuration URI, automated HL7 acknowledgment generation and automatic acknowledgement interrogation.

The MLLP protocol does not typically use a large number of concurrent TCP connections - a single active TCP connection is the normal case.  Therefore, the MLLP component uses a simple thread-per-connection model based an standard Java Sockets. This keeps the implementation simple and eliminates the dependencies other than Camel itself.

The component supports the following:

The MLLP component uses byte[] payloads, and relies on Camel Type Conversion to convert byte[] to other types.  

Maven users will need to add the following dependency to their pom.xml for this component:

<dependency>

    <groupId>org.apache.camel</groupId>

    <artifactId>camel-mllp</artifactId>

    <version>x.x.x</version>

    <!-- use the same version as your Camel core version -->

</dependency>

MLLP Consumer

The MLLP Consumer supports receiving MLLP-framed messages and sending HL7 Acknowledgements.  The MLLP Consumer can automatically generate the HL7 Acknowledgement (HL7 Application Acknowledgements only - AA, AE and AR), or the acknowledgement can be specified using the CamelMllpAcknowledgement exchange property.  Additionally, the type of acknowledgement that will be generated can be controlled by setting the CamelMllpAcknowledgementType exchange property.

Message Headers

The MLLP Consumer adds these headers on the Camel message:

Key

MSH field

Example

CamelMllpLocalAddress

  

CamelMllpRemoteAddress

  

CamelMllpSendingApplication

MSH-3

APPA

CamelMllpSendingFacility

MSH-4

FACA

CamelMllpReceivingApplication

MSH-5

CAMEL

CamelMllpReceivingFacility

MSH-6

FACB

CamelMllpTimestamp

MSH-7

20150106235900

CamelMllpSecurity

MSH-8

 

CamelMllpMessageType

MSH-9

ADT^A04

CamelMllpEventType

MSH-9-1

AD4

CamelMllpTriggerEvent

MSH-9-2

A04

CamelMllpMessageControlId

MSH-10

12345

CamelMllpProcessingId

MSH-11

P

CamelMllpVersionId

MSH-12

2.3.1

CamelMllpCharset

MSH-18

 

All headers are String types. If a header value is missing, its value is null.

Exchange Properties

The type of acknowledgment the MLLP Consumer generates can be controlled by these properties on the Camel exchange:

Key

 

Example

CamelMllpAcknowledgement

  

CamelMllpAcknowledgementType

  AR

All headers are String types. If a header value is missing, its value is null.

Consumer Configuration

MLLP Producer

The MLLP Producer supports sending MLLP-framed messages and receiving HL7 Acknowledgements.  The MLLP Producer interrogates the HL7 Acknowledgments and raises exceptions if a negative acknowledgement is received.  The received acknowledgement is interrogated and an exception is raised in the event of a negative acknowledgement.

Message Headers

The MLLP Producer adds these headers on the Camel message:

Key

MSH field

Example

CamelMllpLocalAddress

  

CamelMllpRemoteAddress

  

CamelMllpAcknowledgement

  

CamelMllpAcknowledgementType

 

AA

All headers are String types. If a header value is missing, its value is null.

Producer Configuration