此内容没有您所选择的语言版本。
Chapter 106. MLLP
MLLP Component
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:
- A Camel consumer using a TCP Server
- A Camel producer using a TCP Client
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
.