Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

The HL7 Transport (New in Carbon 4.0) allows you to handle Health Level 7 International (HL7) messages. It is available when you install the Axis2 Transport HL7 feature. For instructions on installing the HL7 transport and adding a proxy service that enables connection with an HL7 server, see the following topics:

Child pages (Children Display)
When After you install the HL7 transport, it is configured in <ESB_HOME>/repository/conf/axis2/axis2.xml as follows:

Code Block
<transportConfig>
    <transportReceiver name="hl7" class="org.wso2.carbon.business.messaging.hl7.transport.HL7TransportListener">
        <parameter name="port">9292</parameter>
    </transportReceiver>
    <transportSender name="hl7" class="org.wso2.carbon.business.messaging.hl7.transport.HL7TransportSender">
        <!--parameter name="non-blocking">true</parameter-->
    </transportSender>
</transportConfig>

The Axis2 Transport HL7 feature supports the following improvements from version 4.0.0 onwards.

HL7 conformance profile support

The service-level parameter "transport.hl7.ConformanceProfilePath" points to a URL where the conformance profile XML can be found.

HL7 message pre-processing

An implementation of the interface "org.wso2.carbon.business.messaging.hl7.common.HL7MessagePreprocessor" can be used to process raw HL7 messages before parsing them, so that potential errors in the messages can be rectified using it. The service-level parameter used to specify the implementation class is "transport.hl7.MessagePreprocessorClass".

Capability to enable/disable automatic ACK/NACK

You can enable or disable automatic message acknowledgement and validation. When automatic message acknowledgement is enabled, an ACK is immediately sent back to the client after receiving a message. When it is disabled, the user is given control to send back an ACK/NACK message from an ESB sequence after any message validations or related tasks. Different types of message validations done at the message builder are removed for behavioral consistency of the message builder with the transport.

Following are some example usage scenarios:

1. When using a transport such as HTTP, to create an ACK/NACK message from an HL7 message in the flow, specify an axis2 scope message context property "HL7_GENERATE_ACK", and set its value to true. This ensures that an ACK/NACK message is created automatically when a message is sent out (using the HL7 formatter). By default, an ACK message is created. If a NACK message is required instead, use the message context properties "HL7_RESULT_MODE" and "HL7_NACK_MESSAGE".

2. Adding two new service-level parameters to be used by a proxy service.

Code Block
languagehtml/xml
<proxy>...
   <parameter name="transport.hl7.AutoAck">true|false</parameter> <!-- default is true -->
   <parameter name="transport.hl7.ValidateMessage">true|false</parameter> <!-- default is true -->
</proxy> 

3. When ‘AutoAck’ is false, the following properties can be set inside an ESB sequence.

Code Block
languagehtml/xml
<property name="HL7_RESULT_MODE" value="ACK|NACK" scope="axis2" /> <!-- notice the properties should be in axis2 scope --> 

4. When the result mode is ‘NACK’, you can use the following property to provide a custom description of the error message.

Code Block
languagehtml/xml
<property name="HL7_NACK_MESSAGE" value="<ERROR MESSAGE>" scope="axis2" />

5. You can use the property "HL7_RAW_MESSAGE" in the axis2 scope to retrieve the original raw EDI format HL7 message in an ESB sequence. The user doesn't have to convert from XML to EDI again, so this usage may be particularly helpful inside a custom mediator.

6. Set the Java system property "ca.uhn.hl7v2.llp.charset" to control the encoding type of incoming messagesFor information on creating a proxy service that uses the HL7 transport, see Creating an HL7 Proxy Service.

Excerpt
hiddentrue

Information about the HL7 Transport in WSO2 ESB.