Tag Archives: Oracle B2B

Oracle SOA Suite 11g B2B HL7 v2 Inbound to WebLogic JMS Queue

I notice that people used to the eGate/Java CAPS way of doing things, when looking at migrating to the SOA Suite for HL7 messaging, are trying to reproduce the pattern “HL7v2Adapter?JMS Queue”. This is not necessary when using SOA Suite but can be done if one insists. This article walks through the process of implementing this pattern using Oracle SOA Suite 11g R1 PS3.

The process will follow these steps:
1. Obtain and configure the QBrowser tool for JMS browsing
2. Obtain and configure the HL7 Sender tool
3. Create two WebLogic JMS Queues to be used in the solution
4. Create and deploy a HL7 v2 Inbound Trading Partnership Agreement
5. Submit HL7 v2 messages and inspect them in the corresponding JMS Queue
6. Repeat steps 4 and 5 for another inbound stream

The cmplete article, which can be found at http://blogs.czapski.id.au/wp-content/uploads/2011/05/SOASuite_HL7v2_Inbound_to_JMS.pdf, will demonstrate that Oracle SOA Suite B2B HL7 infrastructure can be configured to receive message streams over multiple inbound MLLP channels and deliver each stream to a distinct JMS destination, much as eGate and Java CAPS solutions used to do.

Oracle SOA Suite 11g R1 PS3 HL7 Messaging – HL7 v2.3.1 A19 Query Processor

The Oracle SOA Suite 11g R1 B2B functionality can be used for HL7 v2.x delimited messaging, both inbound and outbound. I have a series of articles which provide step-by-step instructions for developing HL7 v2.x delimited messaging solutions for processing inbound and outbound messages, with varying ACK patterns – http://blogs.czapski.id.au/?s=hl7+soa+suite.

This article discusses how an A19 Query processing solution can be implemented using the SOA Suite 11g R1 PS3.
We have a client sending a HL7 v2.3.1 A19 QRY request, asking for demographic details for a patient specified by an ID. The HL7 v2.3.1 A19 ADR response will carry a PID segment with basic demographics. The client identifies itself with MSH-3 (Application ID) of “A19QRY” and MSH-4 (Facility ID) of “CLI1”. The query processor is identified by the client with MSH-5 (Application ID) of “A19ADR” and MSH-6 (Facility ID) of “GWYQ”.

The complete article is to be found at http://blogs.czapski.id.au/wp-content/uploads/2011/04/09_SOASuite11gR1PS3_HL7_A19_Processor_v1.0.0.pdf



Healthcare Enterprise – IT Architecture Building Blocks – Canonical Message Model for a HL7 Enterprise

In any but the simplest of HL7 messaging environments there will be multiple sources and multiple destinations of HL7 messages. It is very unlikely that all, or even a majority of these, will use exactly the same HL7 message structures in terms of versions, optional/mandatory segments, extension Z segments, and so on. A sensible approach to dealing with these kinds of issues, and a key component of the HL7 Enterprise Architecture, is the so called Canonical (or Common) Message Model (CMM). The CMM works hand-in-glove with the enterprise architecture in which transformation to/from the CMM is performed at the edges of the integration domain. This article discusses major considerations and works through the mechanics of deriving a Canonical Message Model for a fictitious Healthcare Enterprise and implementing it using the Oracle SOA Suite 11g HL7 tooling as an example. The article will also discuss and illustrate a mechanism for injecting arbitrary metadata into the canonical message, generated by the B2B Document Editor, in such a way that it is ignored by the Edge-dwelling B2B infrastructure but is significant to the SOA infrastructure.

The text of the article is available at http://blogs.czapski.id.au/wp-content/uploads/2010/10/HB01_OSS11g_HL7CannonicalMessageModel_v1.0.1.pdf

Migrating Java CAPS 5/6 Assets to Oracle SOA Suite 11g – HL7 JCD to Spring Component Migration

This article is of potential interest to these Sun/SeeBeyond customers who have an investment in moderate and large Java Collaboration Definition-based transformation and mapping rules, and who are looking for ways to reuse as much as possible of the Java code involved, when migrating to the Oracle SOA Suite. The example developed in this article comes from the healthcare domain and uses the HL7 OTDs (Object Type Definitions). This is a deliberate choice because all but the most trivial HL7 transformations will involve hundreds of lines of Java code, therefore are a good candidates for migrating to the SOA Suite Spring Component as means of preserving the code and the effort invested in developing it. This does not make the method domain-specific. On the contrary, the method is applicable to all other domains where JCDs with significant transformation and mapping rules content are used.

Discussion in this article addresses a subset of technologies available in the Java CAPS and in the SOA Suite. Specifically, the Java Collaboration Definitions supported in Java CAPS 5.x and in Java CAPS 6/Repository, and the Spring Component supported in the SOA Suite 11g R1 PS2. Both use the Java programming language and related runtime environment to implement processing logic.  There is no discussion pertaining to JBI-based technologies or Java CAPS BPEL-based technologies. There is no discussion about other ways in which Java logic can be deployed as part of a Oracle SOA Suite solution.

The HL7 eWay and JCD based Java CAPS solution will be ported to the Oracle SOA Suite 11g B2B and Mediator-based environment. HL7 Adapters will be replaced with the Oracle “Healthcare Adapters”, provided by the SOA Suite B2B HL7 support infrastructure. Routing will be provided by the Mediator component and transformation logic will be ported to the Spring Component.

This article walks through the process of “extracting” JCD source and related archives from Java CAPS, developing a stand-alone Java application which uses the JCD source, encapsulating JCD source in a Spring component and finally reproducing Java CAPS HL7 solution functionality in an equivalent SOA Suite solution.

The complete article is available at http://blogs.czapski.id.au/wp-content/uploads/2010/10/08_HL7JCD2SpringComponentMigration_v1.3.pdf

Oracle SOA Suite 11g R2 B2B – Receiving a Stream of Multiple HL7 v2 Message Types

In this article I discuss and illustrate a “SOA-less” solution in which the Oracle SOA Suite 11g R2 B2B receives a stream of different HL7 v2 delimited messages types (A01 and A03) using a single inbound adapter. The messages are converted into their “equivalent” HL7 v2 XML messages. I say “SOA-less” because all the work is done entirely within the B2B part of the SOA Suite – no OSB or SOA Composites are involved.

This article demonstrates one way in which different message types can be accepted through one inbound adapter.

The complete text of the article is availabloe at http://blogs.czapski.id.au/wp-content/uploads/2010/08/07_Oracle_SOA_Suite_B2B_Receiving_Stream_of_Multiple_HL7_v2_Message_Types_v1.0.2.pdf.

Oracle SOA Suite 11g R2 B2B Quick HL7 v2 Delimited to HL7 v2 XML Conversion

In this article I discuss and illustrate a “SOA-less” solution which uses the Oracle SOA Suite 11g R2 B2B functionality to convert HL7 v2 delimited messages into their equivalent HL7 v2 XML messages. I say “SOA-less” because all the work is done entirely within the B2B part of the SOA Suite – no OSB or SOA Composites are involved.

The article text is available at http://blogs.czapski.id.au/wp-content/uploads/2010/08/06_Oracle_SOA_Suite_B2B_Quick_HL7v2_Delimited_to_HL7v2_XML_Conversion_v1.0.0.pdf

Oracle SOA Suite 11g HL7 Inbound Example – Functional ACK Addendum

This article is a follow on to the “Oracle SOA Suite 11g HL7 Inbound Example”, at http://blogs.czapski.id.au/2010/06/oracle-soa-suite-11g-hl7-inbound-example. In that article the B2B infrastructure was configured to return the “immediate ack” as soon as it received each message. The ACK was always a positive ACK, regardless of whether the message was valid or not and whether it was successfully processed.

In this article I expand on the previous post by adding the Functional ACK, an explicit ACK message, which is returned after a message is parsed and validated, if validation is required. This means that rather than always returning an ACK the receiver will return a NAK if the message is invalid.

The article, 02_Oracle_SOA_Suite_HL7_inbound_example_ACK_Addendum_v0.2.3.pdf, is available at http://blogs.czapski.id.au/wp-content/uploads/2010/06/02_Oracle_SOA_Suite_HL7_inbound_example_ACK_Addendum_v0.2.3.pdf

Installing Oracle SOA Suite 11g for HL7 Exploration

As Sun Microsystems, and SeeBeyond before it, Oracle provides support for integration of systems which use HL7 v2.x messaging. Unlike Sun, and SeeBeyond before it, Oracle treats HL7 messaging as Business to Business exchanges (B2B) and uses the B2B part of the Oracle SOA Suite to accomplish the task [1].

There are numerous articles on Oracle SOA Suite and on Oracle B2B. To wade through this material to get to a concise set of steps needed to get started with HL7 messaging is a chore precisely because there is so much material about the SOA Suite and so little on how to deal with HL7 suing it. I set off to work out what it takes to do HL7 messaging and to document it for myself and others.

This article walks through the installation and configuration of all Oracle software necessary to implement HL7 v2.x messaging as development / experimentation environment. It assumes a single machine with limited resources.

I expect that there will be subsequent articles in this series which will use this infrastructure to implement specific HL7 v2.x examples.

The complete article, 01_Installing_Oracle_SOA_Suite_for_HL7_exploration_v1.1.pdf, can be found at http://blogs.czapski.id.au/wp-content/uploads/2010/06/01_Installing_Oracle_SOA_Suite_for_HL7_exploration_v1.1.pdf.