Monday, 19 January 2009

Healthcare ESB Approach

This post defines an approach which can be used for development of Enterprise Service Bus to enable communication using both HL7V2.x and HL7V3.0. The approach is based on Service-Oriented Architecture (SOA) to better align the solution with the business. Enterprise Service Bus (ESB) has emerged as the best proven, fastest and simplest way to implement SOA and offers dramatic productivity and ROI improvements over traditional integration technologies. Figure below a schematic representation of proposed ESB involving applications communicating using both HL7V2.x and HL7V3.0.

ESB Model

SOA simplifies the complexity in integration by the provision of a common infrastructure for service communication, mediation, transformation, and integration. ESB serves as the backbone for an SOA implementation. The ESB will provide the following services

Transport Services: The transport services need to support multiple communication protocols to support both local and national communication. The relevant communication protocols for the current scenario that will be supported are TCP-IP/MLLP, HTTP(S) and JMS.

Message Type: The solution need to support multiple messaging models such as synchronous, asynchronous, publish, subscribe and store and forward. The message types supported with these messaging models are JMS with headers, XML, SOAP and ebXML.

Validation Services: The messages come in different formats varying from string delimited for HL7 v2.x, XML for V3.0 and proprietary formats for existing systems. The validation components will vary from using standard XSD’s to custom XSD’s.

Transformation Services: The transformation service is required to transform currently one version of HL7v2.X to other versions of HL7V2.x and some custom format. The functionality supported by transformation service is
Ø Transforms messages based on the target service
Ø Transforms messages based on XQuery or XSLT
Ø Supports transformations on both XML and string delimited messages

Routing Services: The routing services need toallow routing of messages to existing systems and national applications based on the message content or message headers. The routing services will be based on XQuery-based policies or callouts to external Web services. The routing policies apply to both point-to-point and one-to-many routing scenarios.

Service Management: The service management services need to help handle logging, monitoring and error handling variety of message errors. The logging and monitoring will support logging messages for both systems operations and business auditing purposes, search capabilities, and others. Both business services and ESB services are monitored, as are response times, message counts, and error counts. The error handling components allows configuring of systems to format and send error messages, and return messages for consumers of services who expect a synchronous response.

Common Wrapper: The differences in transport mechanisms used by HL7V2.x and HL7V3.0 will hinder the ESB. The development of a common wrapper with elements of MLLP wrapper and SOAP/ebXML wrapper is crucial for successful deployment of this model.