Versions Compared

Key

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

The HL7 Transport transport (New new in Carbon version 4.0) allows you to handle Health Level 7 International (HL7) messages. The following sections describe how to install, enable, and configure the HL7 transport:

Table of Contents
maxLevel3
minLevel3

Installing the HL7 feature

The HL7 transport is available as an installable feature in WSO2 products. The user can simply plug it in if necessity, through the installation of the relevant feature. For instructions to install HL7 transport and adding a proxy service, refer to

Child pages (Children Display)

The HL7 transport configuration is as follows

...

 

Enabling the HL7 transport 

You enable the HL7 transport in the <ESB_HOME>/repository/conf/axis2/axis2.xml file as follows:

Code Block
<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 Transport feature supports the following in "Axis2 Transport HL7" feature improvements from version 4.0.0 onwards.

Creating an HL7 proxy service

You can add a proxy service with HL7 transport after enabling it. 

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 mention the implementation class is "transport.hl7.MessagePreprocessorClass".

Non-MLLP Transport and ACK/NACK Generation

When using a transport like HTTP, if you want

Capability to Enable/Disable Automatic ACK/NACK at Suitable Times

Supports disabling or enabling 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 automatic message acknowledgement is disabled, 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.

Some example usage scenarios are given below:

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. It 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 to be generated, the message context properties "HL7_RESULT_MODE" and "HL7_NACK_MESSAGE" have to be used.

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

Synchronization with Builder/Formatter

The transport listener/sender, message builder/formatter uses a common implementation of parsing/validation logic of HL7 messages

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’, following property can be used to give a custom description of the error message.

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

5. The property "HL7_RAW_MESSAGE" in the axis2 scope can be used to retrieve the original raw EDI format HL7 message in an ESB sequence. As the user doesn't have to again convert from XML to EDI, 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 messages. More information about this configuration will be coming up soon.

Excerpt
hiddentrue

Instructions on how to install the HL7 Transport in the WSO2 ESB.