Installing Upgrading Designing Configuring Deploying Monitoring Administering Troubleshooting Reference JBI Components
Close Print View
Designing: Inbound HL7 V2 Collaboration Overview
 

Classic Java CAPS

Developing Java CAPS Projects

Using SOAP Message Handlers

Creating a Runtime Environment

Designing Business Processes in the Sun Business Process Manager

Working with TCP/IP HL7 Collaborations

TCP/IP HL7 Adapter Collaborations Overview

TCP/IP HL7 Adapter Task Overview

TCP/IP HL7 V2 Adapter Collaborations

Inbound HL7 V2 Collaboration Overview

Outbound HL7 V2 Collaboration Overview

Limitations of Version 2.x

Creating a Copy of an HL7 V2 Project

To Export a Project

Customizing Predefined Collaborations for HL7 V2

Creating Copies of an HL7 V2 Collaborations

To Create Copies of an HL7 V2 Collaborations

Adding HL7 V2 OTD to an Existing Collaboration

To Add HL7 V2 OTD to an Existing Collaboration

TCP/IP HL7 V3 Adapter Collaborations

Introducing the Methodology

What's New with HL7 V3

Artifact Identification System

HL7 V3 Message Development Process

Artifact Codes

Transmission Wrapper and Control Act Wrapper

Comparison between HL7 V2.x and HL7 V3

Benefits of V3 to HL7

Inbound HL7 V3 Collaboration

Inbound HL7 V3 Immediate Collaboration Overview

Inbound HL7 V3 Deferred Collaboration Overview

Outbound HL7 V3 Collaboration

Outbound HL7 V3 Collaboration Overview

Creating a Copy of an HL7 V3 Project

Customizing Predefined Collaborations for HL7 V3

Creating Copies of an HL7 V3 Collaborations

Adding HL7 V3 OTD to an Existing Collaboration

To Add HL7 V3 OTD to an Existing Collaboration

MLLP V2

MLLP V2 Content Exchange Model

Standard Inbound HL7 V2 Collaboration Overview over MLLPV2

Developing Sun Master Indexes (Repository)

Developing Sun Master Patient Indexes

Developing OTDs for Application Adapters

Developing OTDs for Communication Adapters

Developing OTDs for Database Adapters

Developing OTDs for Web Server Adapters

Designing with Application Adapters

Designing with Communication Adapters

Designing with Web Server Adapters

SWIFT Integration Projects

Java EE Based Components

Designing with Sun JCA Adapters

About the TCP/IP JCA Adapter

Defining Constants and Variables

Using Database Operations

Developing Sun Master Indexes

Using the JMS JCA Wizard

Using the JAXB Wizard and Code-Seeder Pallete

Inbound HL7 V2 Collaboration Overview

The Inbound HL7 V2 Collaboration, jcdHL7inbound, contains OTDs for the HL7 Resource Adapter, JMS Data, HL7 ACK, JMS Journal, and JMS Error, as well as the Generic HL7 Event. The Collaboration works with its own internal code and the Properties Configuration files.

Inbound HL7 V2 Collaboration - Part 1

The inbound Collaboration is triggered by an HL7 V2 message received from an external system or an outbound HL7 V2 Client. The Collaboration calls the HL7 V2 User Collaboration Rule by executing receive().

The receive method is the entry point to the HL7 V2 User Collaboration, with the following signature:

public void

receive(com.stc.connector.appconn.tcpip.hl7.HL7ServerApplication input,

com.stc.connectors.jms.JMS otdJMS_DATA,

com.stc.SeeBeyond.OTD_Library.HL7.Generic.HL7_GENERIC_EVT.GENERIC_EVT

otdHL7_GENERIC_EVT_1,

com.stc.SeeBeyond.OTD_Library.HL7.Generic.HL7_ACK.ACK

otdHL7_ACK_1,com.stc.connectors.jms.JMS otdJMS_JOURNAL,

com.stc.connectors.jms.JMS otdJMS_ERROR) throws Throwable.

Once the message is received, the Collaboration determines whether the message needs to be validated. The HL7 V2 message is then validated making sure that the message structure is correct. Various fields in the MSH segment of the message are also validated, such as Version ID and Sending Facility. If these fields do not match the configuration, a NAK is returned.

If sequence numbering is enabled the Collaboration checks to see if the messages sequence number is valid. If the sequence number is not valid, the adapter sends a NAK.

The validated HL7 V2 message moves on to processInitialHandshake() and the sequence numbers are synchronized. The sequence number within the message is checked against the expected sequence number. If the numbers match, the Collaboration sends an ACK, if not it sends a NAK. The ACK or NAK includes information from various fields of the incoming MSH segment. The ACKs level of acknowledgement is set to A (acknowledgement is sent after the message is successfully processed) , or C (acknowledgement is sent when the message is successfully received).

Figure 1 Inbound HL7 V2 Collaboration - Part 1
Inbound Collaboration — Part 1
Inbound HL7 V2 Collaboration - Part 2

The Collaboration receives the HL7 V2 message from the external using receiveHL7message(). If an exception occurs due to incomplete data, and the adapter fails to read the data within the configured number of retries, the associated recourse action is taken. If the exception is due to no response, the associated recourse action is taken.

If no exception occurs, validateHL7Message() is called, which validates the message to determine whether to ACK or NAK the message. Other helper methods are also called to validate the HL7 V2 message.

If the HL7 V2 message does not pass validation, the Collaboration calls makeNak() and sendHL7Nak() to create and send the NAK to the external. The HL7 V2 message, with the NAK, is archived to the Error Queue. If the number of consecutive NAKs sent surpasses the maximum number of retries, the associated recourse action is taken.

If the HL7 V2 message passes validation, the Collaboration calls makeAck() and sendHL7Ack() to create and send the ACK to the external.

Figure 2 Inbound HL7 V2 Collaboration - Part 2
Inbound HL7 V2 Collaboration - Part 2
Inbound HL7 V2 Collaboration - Part 3

After the ACK is sent, the HL7 V2 message and the ACK are journaled to the JMS Queue Journal destination. If the message fails to journal the associated recourse action is taken.

If Sequence Numbering is enabled, the processAckNakSequenceNumbering method calculates the next sequence number and stores the number in the sequence number file by calling the updateSequenceNumberFile method to persist the next sequence number.

Figure 3 Inbound HL7 V2 Collaboration - Part 3
Inbound Collaboration - Part 3