user3616159
user3616159

Reputation: 31

Transforming HL7 v2 to XML using apache camel routes

I am new to HL7 .I have to convert the HL7v2 to XML using apache camel routes.I am extracting the HL7 message from file. Can any one help me how to convert HL7 to XML

Upvotes: 3

Views: 1134

Answers (1)

knt
knt

Reputation: 46

There is an HL7 component for unmarshalling the file into a HAPI message. The HAPI api also includes an XMLParser that will convert the message into xml. So you should be able to combine the two into a simple camel route like the following:

<bean id="hl7XmlConverter" class="example.Hl7XmlConverter" />

<bean id="hl7FileFilter"
    class="org.apache.camel.component.file.AntPathMatcherGenericFileFilter">
    <property name="includes" value="*.hl7" />
</bean>

<camelContext xmlns="http://camel.apache.org/schema/spring">

    <route id="hl7FileRoute">
        <from
            uri="file:///tmp/test/?delete=true&amp;moveFailed=.error&amp;filter=#hl7FileFilter" />
        <convertBodyTo type="java.lang.String" />
        <log message="HL7 Request: ${body}" />
        <unmarshal>
            <hl7 validate="true" />
        </unmarshal>
        <bean ref="hl7XmlConverter"/>
        <log message="HL7 Response: ${body}" />
    </route>
</camelContext>

Where the bean is just a simple method:

public String convertMessage(Message message) throws HL7Exception{
    XMLParser parser = new DefaultXMLParser();
    return parser.encode(message);
}

Depending on your desired xml format, you could also add an xslt after the bean.

Upvotes: 3

Related Questions