You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 3 Next »

HL7 DataFormat

This component ships with a HL7 dataformat that can be used to format between String and HL7 model objects.

  • marshal = from Message to byte stream (can be used when returning as response using the HL7 MLLP codec)
  • unmarshal = from byte stream to Message (can be used when receiving streamed data from the HL7 MLLP

To use the data format simply instantiate an instance and invoke the marhsal or unmarshl operation in the route builder:

  DataFormat hl7 = new HL7DataFormat();
  ...
  from("direct:hl7in").marshal(hl7).to("jms:queue:hl7out");

In the sample above the HL7 is marshalled from a HAPI Message object to a byte stream and put on a JMS queue.
The next example is the opposite:

  DataFormat hl7 = new HL7DataFormat();
  ...
  from("jms:queue:hl7out").unmarshal(hl7).to("patientLookupService");

Here we unmarshal the byte stream into a HAPI Message object that is passed to our patient lookup service.

The unmarshal operation adds these MSH fields as headers on the Camel message:

Key

MSH field

Example

hl7.msh.sendingApplication

MSH-3

MYSERVER

hl7.msh.sendingFacility

MSH-4

MYSERVERAPP

hl7.msh.receivingApplication

MSH-5

MYCLIENT

hl7.msh.receivingFacility

MSH-6

MYCLIENTAPP

hl7.msh.timestamp

MSH-7

20071231235900

hl7.msh.security

MSH-8

 

hl7.msh.messageType

MSH-9-1

ADT (ADT^A01)

hl7.msh.triggerEvent

MSH-9-2

A01 (ADT^A01)

hl7.msh.messageControl

MSH-10

1234

hl7.msh.processingId

MSH-11

P

hl7.msh.versionId

MSH-12

2.4

All headers are String types.

  • No labels