HIMSS Digital Healthcare Week 2013- The journey from HL7v2 to HL7 FHIR
-
Upload
victor-chai -
Category
Education
-
view
668 -
download
1
description
Transcript of HIMSS Digital Healthcare Week 2013- The journey from HL7v2 to HL7 FHIR
The Benefits and Challenges of implementing HL7v2 in SOAVictor CHAIMember of Technical Sub-committeeHL7 Singapore
Why I want to talk about this topic
• It all started with a question I received during one of the HL7 technical sub-committee meeting where one member asked
– “… a standard based XML payload for SOA services and the ability for easy transformation of HL7v2 messages to that XML”
– That was also one of the reasons that I started my own blog to share my knowledge and experience in healthcare interoperability
http://healthinterconnect.blogspot.sg/2011/08/using-hl7v2-in-soa.html
Gist of the Question
• Shared SOA service that is able to process/consume both HL7v2 message and XML based message
• Standards based payload for SOA service
Is this topic still relevant today
• HL7v2 is still widely used here and abroad
Source: http://www.corepointhealth.com/sites/default/files/whitepapers/hl7-v2-v3-evolution.pdf
US Meaningful Use Requirements on Content Exchange - Both HL7v2.5
and HL7 CDA
What concrete example I will use here
• The EHR product I have personally architected and implemented 7 years ago
• The intent is to share what is still useful and relevant today
• “New” challenges surfaced and the improvement
Key Architecture Requirements 1/2
• A unified multi-purpose health record platform for rapid application development– PHR– EHR– Health Assessment– Health Tracker (Adobe
Flex)
Key Architecture Requirements 2/2
• Supports standards based exchange format– HL7v2 and HL7 CDA
• Different protocols– MLLP for HL7v2– SOAP Web Service– Restful Service– HTTP
• Also needs to support proprietary format
Challenges of HL7v2 in SOA
• There is no or limited out-of-box programming support for parsing and composing HL7v2 message
• A special TCP based protocol – MLLP - Minimal Lower Layer Protocol (MLLP)
• And others such as Sequencing and Threading
HL7v2 Integration Engine was used• Use HL7v2 Integration
Engine
• Validates and parses incoming HL7v2 message and transform to XML encoded HL7v2
• OracleAQ was used between B2B and Integration Layer
HL7v2B2B
Gateway
Service Integration Layer
HL7v2 Message
Message Control and
Transformation
Oracle AQ
What was used for service payload
• Standards based service payload?– Such as HL7 CDA,
adopt and adapt?
• Or others?
B2B Control Layer
Message Control and
TransformationOracle
AQ
HL7v2 Message
XML encoded HL7v2
Message
Service Integration Layer
?
A simplified CDA based payload
• Based on HL7v2 CDA R2 as shown on the right
• Simplify underlying data type and structure for more flexible parsing and processing
How to support HL7v2 wire format
• XLST transforms the parsed XML encoded HL7v2 message to Service payload format
How to support HL7 CDA R2 wire format
• Transform different types of records to corresponding section in HL7 CDA R2
My past architecture design recap
• Standards-based Service Payload
• One shared service supports multiple client friendly format & protocol– HL7v2 message– HL7 CDA – Or proprietary format
The ‘new’ challenge
• Do we copy and paste the external content into our site page, or we simply use URL link to reference the external content when we build a web site?
• Why it is important?– Prevent information proliferation, and avoid obsolete information
– There is no need to fetch all at one go, the requester can ‘follow’ the path to navigate to the needed information
– Each app can focus on managing its own information, and relies on reference to build up network of information
The new approach – RESTful design
• Treat each data entity as a native resource which behaves likes a web page, users can create/update/delete a resource
• Each resource has a unique identifier, and reference to other dependent resources
HL7 FHIR – Why?
• Strong foundation in Web standards– XML, JSON, HTTP, Atom, OAuth, etc.
• Support for RESTful architecture style and also seamless exchange of information using messages or documents
Source: http://www.hl7.org/implement/standards/fhir/summary.htm
HL7 FHIR – Fast Health Interoperable Resources
• “Resource “ is unit of transactional data such as patient and MedicationPrescription that is stored or exchanged
• Easily accessible - http://server.org/resources/patient/S1234567H
endpoint
resource type
identifier
HL7 FHIR - A network of resources
MedicationPrescription
Patient
Medication
PrescriberEncounter
How FHIR improves the design
• Use HL7 FHIR as straight-through resource API and internal object model
• There is no intermediate transformation
HL7 FHIR – A Sample Resource Definition
HL7 FHIR – How to implement
• Step 1 – Download Resources classes from HL7 site– http://www.hl7.org/implement/standards/fhir/– Download either Java, C# or Delphi
• Use your favorite IDE and RESTful Web Services framework e.g. Jersey– Implement RESTful resource
HL7 FHIR – A few lines of code only!
These are just for validation only
FHIR enabled architecture
Lightweight Restful Service
Messaging and Document based
Integration
Summary
• “ If you want to go fast, go alone. If you want to go far, go together”
• Learn from standards, adopt and adapt!– http://www.hl7.org.sg/– http://www.hl7.org/fhir