Wednesday Jan 27, 2010
Wednesday Jan 13, 2010
By Michael.Czapski on Jan 13, 2010
This Note walks through development of two BPEL Module-based solutions that cooperate in generating and processing Enhanced Accept Acknowledgements using HL7 v2.3.1 messages. This discussion should apply to any v2.x, greater then v2.2, where the Enhanced Mode acknowledgements were introduced. In addition, the solutions are used to illustrate receiving HL7 BC ACK generation, when receiving an invalid HL7 message.
The blog article and the related material are available at http://blogs.czapski.id.au/2010/01/glassfish-esb-v2-2-processing-explicit-hl7-v2-accept-acknowledgements
Tuesday Jan 05, 2010
GlassFish ESB v2.2 Field Notes - Exercising Load Balanced, Highly Available, Horizontally Scalable HL7 v2 Processing Solutions
By Michael.Czapski on Jan 05, 2010
In this Note a heterogeneous, non-clustered collection of hosts will be used to implement and exercise three load balanced, highly available GlassFish ESB-based solutions. The environment consists of a number of independent “machines”, which are not a part of an Operating System Cluster. Each “machine” hosts a GlassFish Application Server. Application Servers are independent of one another and are not clustered. This is to demonstrate that load balanced, highly available, horizontally scalable solutions, based on the GlassFish ESB software alone, can be designed and implemented.
The specific class of solutions to which this discussion applies is the class of solutions which:
1. are exposed as request/reply services
a. HL7 messaging with explicit Application Acknowledgment2. implement business logic as short lived processes
b. Request/Reply Web Services
c. JMS in Request/Reply mode
a. atomicClasses of solutions with characteristics different from these named above require different approaches to high availability and horizontal scalability, and are not discussed here.
b. are idempotent
c. tolerant of duplicate messages
In this Note only high availability and scalability of receiver solutions is addressed. This aspect is the focus because a failure to process a message by a receiver may result in message loss –generally a bad thing.
Paradoxical as it may sound; senders are special cases of receivers. Just as a receiver is triggered by arrival of a message so too is a sender. Making sure that the sender trigger message does not get lost is much the same as making sure the message a receiver receives does not get lost. This means that the same considerations apply to senders and to receivers.
This note discusses an exercise involving an example load balanced, highly available, horizontally scalable healthcare environment, processing HL7 v2 messages. Discussion includes customization of generic GlassFish ESB v2.2 VMware Virtual Appliances for a specific Load Balancing and High Availability exercise and deploying ready-made GlassFish ESB solutions. The exercise for HL7 BC-based, Web Service-based and JMS-based highly available, load balanced, and horizontally scalable receivers, processing HL7 v2.3.1 messages, will be conducted and discussed.
At the end of the Note we will have three GlassFish ESB VMware Appliances with GlassFish ESB v2.2 Runtime infrastructure, ready to use for further GlassFish ESB Load Balancing and High Availability exercises.
The reader will be convinced, one hopes, that for the applicable class of GlassFish ESB-based solutions, load balancing and dynamic failover without message loss work. For that class of solutions this provides for high availability and horizontal scalability without resorting to Application Server or Operating System clustering.
The article is available at http://blogs.czapski.id.au/2010/01/glassfish-esb-v2-2-field-notes-exercising-load-balanced-highly-available-horizontally-scalable-hl7-v2-processing-solutions
Friday Jul 03, 2009
GlassFish ESB v2.1, MySQL v5.1 - Make HL7 v2.3.1 Delimited Messages from Custom Delimited Records with HL7 Encoder and HL7 BC
By Michael.Czapski on Jul 03, 2009
“Progress” notwithstanding, Healthcare environments still extensively use the HL7 v2.x Delimited messages for conveyance of patient and patient-related information between applications. The GlassFish ESB provides support for HL7 v2.x messaging in the form of the HL7 Encoder, which allows conversion between HL7 v2 Delimited and HL7 v2 XML message formats, and in the form of the HL7 Binding Component, which allow connectivity between the GlassFish ESB-based healthcare solutions and healthcare applications that support HL7 over TCP connectivity.
In this document I will walk through the process of generating HL7 v2.3.1 delimited messages from pipe-delimited records containing patient information, sending and receiving HL7 v2.3.1 delimited messages using the HL7 Binding Component, parsing HL7 v2.3.1 delimited messages and writing HL7 v2 delimited messages to a file. To create and process HL7 messages I show how create a custom ADT A04 XML Schema and a custom “any HL7 v2 message” XML Schema. This gives me an opportunity to use the File Binding Component (File BC), the HL7 BC, the HL7 Encoder, the Custom Encoder and the BPEL Service Engine (BPEL SE). This also gives me an opportunity to demonstrate a HL7 v2.3.1 delimited message sender solution and to demonstrate a HL7 v2.3.1 delimited message receiver solution. At the end of the process we will have a file containing HL7 v2 delimited ADT A04 messages, which we will use in related writeups.The article and referenced materials are available at http://blogs.czapski.id.au/2009/07/glassfish-esb-v2-1-mysql-v5-1-make-hl7-v2-3-1-delimited-messages-from-custom-delimited-records-with-hl7-encoder-and-hl7-bc
In this Blog I post abstracts of articles / writeups / notes on various aspects of Java CAPS and SOA Suite including solutions, discussions and screencasts. The links to the referenced material are included in the bodies of the abstracts.
- Using QBrowser v2 with WebLogic JMS for 10.3
- Oracle SOA Suite 11g B2B HL7 v2 Inbound to WebLogic JMS Queue
- Healthcare Enterprise – IT Architecture Building Blocks - Canonical Message Model for a HL7 Enterprise
- Migrating Java CAPS 5/6 Assets to Oracle SOA Suite 11g - HL7 JCD to Spring Component Migration
- Oracle SOA Suite 11g R2 B2B - Receiving a Stream of Multiple HL7 v2 Message Types
- Oracle SOA Suite 11g R2 B2B Quick HL7 v2 Delimited to HL7 v2 XML Conversion
- Oracle SOA Suite 11g HL7 Inbound Example - Back End-constructed Functional ACK Addendum
- Oracle SOA Suite 11g HL7 Inbound - Customized HL7 Message Structure and Data Validation
- Oracle SOA Suite 11g HL7 Outbound Example
- Oracle SOA Suite 11g HL7 Inbound Example - Functional ACK Addendum