Monday, August 15, 2011

Using HL7v2 in SOA

I am involved in HL7 Singapore technical committee, during one of the discussions about the topic for technical sharing, we discussed within the committee members what are the topics that are most relevant for Singapore. One of the member said that they would like to see how they can use HL7v2 message in their SOA service, the primary reason is that they feel comfortable with HL7v2, and possibly a lot of existing IT capabilities are built on HL7v2 message.

My initial reaction and response to them is that probably they can put the whole HL7v2 message within CDA R2 element, and extract out patient information from the V2 message and include it in CDA header. Essentially what is it doing is to transmit HL7v2 over HTTP protocol instead of MLLP protocol (interestingly, Australia seems thinking the other way round,see "Implementing CDA in a V2.x World" Forum )

But wait again, when application is processing v2 message, it still needs to transform the raw HL7v2 message to some form of object format or XML , so why not then just transform the v2 message to CDA R2 and expose new service using CDA r2 as payload, at the same time the existing v2 infrastructure is still in use. I really do not see it is that hard to get familiar with CDA R2.

What's your view?


  1. After verifying with the member, what he really concerned about is the reusing of HL7v2 message. they have both HL7v2 infrastructure and SOA infrastructure, he would like to have is a standard based XML as SOA payload that serves both SOA services and also ability for transforming the HL7v2 messages to that XML, since they do not have any knowledge or have access to the COS application internal object format, what they can do is to transform its external HL7v2 message to XML.

    So hope the above clarifies, so CDA R2 is one of the option I think.

  2. If it is just about xml serialization of HL7 v2 message, there is already an approach that is readily available, even tools to generate them.

  3. No, it is not XML encoded HL7v2 message.