I appologize.. Newbie here to the open source/project world. Long time programmer in other realms.
I have a base64 encoded pdf that will be sent to me via HL7 in the OBX-5-5 field of this message body that I need to decode and create an actual pdf file on a filesystem. I have tried various themes of attempting to access the unmarshalled structure, but that's where the trail gets cold.
I haven't attached any "code" since it is more representative of thrashing to get some sort of result rather than intelligent design. I created two maven archetypes (Camel java DSL and Camel spring) and attempted to re-engineer the sample file read-decision-log-write route and take this one step at a time. Currently I can receive HL7, ACK, unmarshal, log the message body, marshal, and write to entire HL7 message to a file. I wish to receive the HL7, ACK, unmarshal, isolate OBX-5-5, decode it's contents back to binary, and write this to a new file on the file system with a filename and .pdf extension, and dispose of the HL7 message (end the route here).
I've owned :"Camel in Action" for years now, but have not been able yet to apply it's wisdom to my situations. Perhaps a little hand-holding will help me see the landscape of this technology. I am missing something, as to what exactly, I've been struggling to figure out.
So I've been parallel developing two maven projects, one Java DSL and one Spring. Here's the latest skeleton I have for the Spring version:
<?xml version="1.0" encoding="UTF-8"?>
<!-- Configures the Camel Context-->
<beans xmlns="http://www.springframework.org/schema/beans&quot;
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance&quot;
xsi:schemaLocation="
http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://camel.apache.org/schema/springhttp://camel.apache.org/schema/spring/camel-spring.xsd&quot;>
<bean id="hl7decoder" class="org.apache.camel.component.hl7.HL7MLLPNettyDecoderFactory"/>
<bean id="hl7encoder" class="org.apache.camel.component.hl7.HL7MLLPNettyEncoderFactory"/>
<!--<bean id="hl7codec" class="org.apache.camel.component.hl7.HL7MLLPCodec"/> -->
<camelContext xmlns="http://camel.apache.org/schema/spring&quot;>
<endpoint id="hl7listener" uri="mllp://10.105.13.206:8888" />
<route>
<from uri="hl7listener"/>
<convertBodyTo type="java.lang.String" />
<unmarshal>
<hl7 validate = "false" />
</unmarshal>
<log message="${body}" />
<marshal><hl7 /> </marshal>
<log message="Other message"/>
<!-- <convertBodyTo type="java.lang.String"/> -->
<to uri="file:target/messages/others"/>
</route>
</camelContext>
</beans>
Ideas? Thanks!