Supported data types in HL7v3-based IPF IHE components

XML strings

HL7v3-based IPF components do not mandate any special data model. Web Service metadata (WSDL documents) reflects this by defining all message parts as xsd:anyType.

What the components deliver to a Camel route, is always an HL7 v3 message as String. Groovy XML processing mechanisms can be efficiently used to parse and create request and response messages.

What the components expect to obtain from a Camel route (e.g. outgoing requests on producer side and outgoing responses on consumer side) is an XML String containing an HL7 v3 message, or something that can be transformed into such String by the means of Camel type converters — e.g. byte array, input stream, stream reader, DOM document, XSLT source, model class instance, etc.

Java model classes

Starting with the version 4.1.0, IPF contains model classes for requests and responses of selected HL7v3 transactions, divided into two categories:

  • stub classes (originating from Gazelle), whose structures resemble generic HL7v3 definitions and whose names correspond to root XML elements of HL7v3 messages, e.g. PRPAIN201309UV02Type for ITI-45 request.
  • simplified model classes tailored to a particular IHE transaction, e.g. PixV3QueryRequest for ITI-45 request.

For the conversion between these two categories of model classes, as well as between them and XML strings, IPF provides corresponding Camel type converters.

Currently, the following stub model classes are available:

Message Model class
ITI-44 request (create) net.ihe.gazelle.hl7v3.prpain201301UV02.PRPAIN201301UV02Type
ITI-44 request (update)
ITI-46 request
net.ihe.gazelle.hl7v3.prpain201302UV02.PRPAIN201302UV02Type
ITI-44 request (merge) net.ihe.gazelle.hl7v3.prpain201304UV02.PRPAIN201304UV02Type
ITI-44 response
ITI-46 response
ITI-47 continuation cancel response
net.ihe.gazelle.hl7v3.mcciin000002UV01.MCCIIN000002UV01Type
ITI-45 request net.ihe.gazelle.hl7v3.prpain201309UV02.PRPAIN201309UV02Type
ITI-45 response net.ihe.gazelle.hl7v3.prpain201310UV02.PRPAIN201310UV02Type
ITI-47 request
ITI-55 request
net.ihe.gazelle.hl7v3.prpain201305UV02.PRPAIN201305UV02Type
ITI-47 continuation request net.ihe.gazelle.hl7v3.quqiin000003UV01.QUQIIN000003UV01Type
ITI-47 continuation cancel request net.ihe.gazelle.hl7v3.quqiin000003UV01.QUQIIN000003UV01CancelType
ITI-47 response
ITI-47 continuation response
ITI-55 response
net.ihe.gazelle.hl7v3.prpain201306UV02.PRPAIN201306UV02Type

Simplified model classes:

Message Model class
ITI-45 request org.openehealth.ipf.commons.ihe.hl7v3.core.requests.PixV3QueryRequest
ITI-45 response org.openehealth.ipf.commons.ihe.hl7v3.core.responses.PixV3QueryResponse

Both the model classes and the converters are contained in the following Maven artifact:

    <dependency>
        <groupId>org.openehealth.ipf.commons</groupId>
        <artifactId>ipf-commons-ihe-hl7v3model</artifactId>
        <version>${ipf-version}</version>
    </dependency>