Tuesday, October 17, 2023

#991 OIC Healthcare

OIC 23.10 includes the first release of OIC Healthcare. Initially, this is feature flag driven, but should be generally available soon. Thanks to my colleague Steve T. - the real Healthcare SME - for his support here!

The above screenshot shows the Healthcare-> Documents page, where you can create your entries for HL7 documents, such as patient registration etc. The UI is very intuitive - 

The document standard supported is HL7V2.

The Document Versions supported range from 2.3.1 to 2.9.

Finally, the Document type list - this includes an exhaustive list of HL7 docTypes -

I will use the following in the example integration below -

Within Healthcare, you can also create your own schemas - 

These are useful when you need to deviate from the standard HL7 definitions. This is probably very much the case, as with B2B. There is a standard but many users have their own custom segments/ fields etc. 

Here I have created a schema for Patient Registration based on the standard ADT_A04 definition, note how easy it is to add custom entries etc.

Maybe now is a good point to look at the message structure - I'm new to HL7 but there is plenty of collateral out there on how these messages are structured.

I will not go through each individual fields but let's look at the segments - 

MSH - Header - this contains sender and receiver information, dateTime, message type etc.

EVN - Event Type
PID - Patient Identification 
NK1 - Next of kin
PV1 - Patient Visit
PV2 - Patient Visit (Additional Info) 
OBX - Observation / Result
AL1 - Allergy Information 
DG1 - Diagnosis Information
PR1 - Procedures
ROL - Role (from a personnel perspective e.g. Recorder/Registrar
GT1 - Guarantor information (from a financial perspective)
IN1... - Insurance information

It's good to have an appreciation of the document, before we start processing it.

Now to the OIC Healthcare action - this provides the following functionality - 

Let's go through these operations, pardon the pun.

Match and Translate inbound message - this is the inbound pre-processor, so to speak. It validates if the incoming document adheres to the type specified, e.g. is this a valid ADT_A04? 

Convert message reference to document - One of the outputs of the previous operation is a healthcare message reference. This convert operation takes that reference and extracts the payload data into xml format.

Translate to outbound message - this converts the xml format into HL7 for outbound processing.

My demo will be an inbound use case so I will be using the first 2 operations.
The integration is simple - a scheduled integration that downloads HL7 files from the OIC file server, via the ftp adapter.

ftp download action is configured as follows - 

Healthcare - match and translate configured as follows - 

The output of this action is shown below; as you can see, it includes the healthcare message reference.

The input to this action is the File Reference from the FTP Download action -

The next action is Healthcare - Convert message reference to document - it is configured as follows - 

The input is the healthcare-message-reference from the previous Healthcare action

Let's test this!

I check the output of the convert action -

One would probably adopt the following pattern, when implementing such integrations -

Integration 1 - Dispatcher Router (match and translate)

Integration 2 - Message Processor - (Convert message reference to document + downstream processing).  

Summa Summarum

OIC Healthcare is another compelling offering within the OIC toolkit. As you have seen, OIC supports HL7 today. We support FHIR (Fast Healthcare Interoperability Resources) via the OIC REST adapter. OIC also ships an MLLP adapter - 

The Minimal Lower Layer Protocol is commonly used in HL7 document exchanges.  
For those interested, Steve has created a more detailed post here. So check it out!


No comments: