Renovate HL7 version 3
Publication date: Aug 03, 2012
It's time to renovate HL7 version 3 in such a manner that it is optimized for the kind of HL7 v3 implementations that we actually see in use today.
It's time to renovate HL7 version 3 because its original goals haven’t been achieved. It was the intent of HL7 v3 to tackle the very same EDI-messaging space as HL7 version 2 (at which it has failed), but to add object oriented modeling principles to achieve a much higher degree of consistency between the various message structures (at which it has succeeded).
HL7 v3 has been implemented in a sizable number of projects. Most of the software implementations of HL7 v3 either focus on something that originally wasn’t envisioned (CDA documents), or they choose to go for a full model driven software development approach, thereby moving away from the EDI-messaging concept that the model for interoperability is a different one than the business data model as used by the application.
HL7 should “follow the implementers” and renovate the HL7 v3 standard in such a manner that it is optimized for the kind of HL7 v3 implementations that we actually see in use today.
HL7 v3: Refinement by Constraint
The HL7 v3 methodology is based on refinement by constraint; all models (various layers thereof, e.g. DIM, SIM) are specializations of the Reference Information Model (RIM). However, refinement by constraint has it problems. Amongst other things it leads to 1000s of different models, some of which are much more granular than others.
HL7 v3: Re-use
HL7 version 3, using the XML ITS which exposes clone class names in the on the wire format, causes models that are semantically the same to have different XML element names. On hindsight the XML ITS was a terrible choice - mind you: not that we should blame its developers, way back in 1998 (when XML was still quite new) there was simply no way of knowing how XML schema would be used today, e.g. for code generation. The choices as made in the XML ITS lead to a very low re-use factor at the XML schema level.
Whereas the main element of re-use (from an implementers perspective) in HL7 v2 is the segment there is no such element of re-use in HL7 v3. Data type definitions are re-usable, as are RIM classes, but there is nothing in between. The Hl7 v3 methodology (refinement by constraint) leads to 100s of different message types .. without any re-usable component.
HL7 v3: Scalability
In the Message Types per system blogpost I argued that there are two peaks in the diagram: most applications are either used to support a smallish part of the workflow (and support relatively few message types) or they provide some kind of EHR-like functionality (a large number of message types). The implementers of HL7 v3, depending on the number of message types they initially have to support, typcially choose a dramatically different architectural approach to their implementations.
The ‘just another XML format’ approach is implicitly suggested by the HL7 version 3 publication - all examples are XML based (and XML ITS based), and a set of XML schema has been published. The use of XML techniques and tools (XML schema, Schematron, Schema based code generation) is therefore a logical one - however one that doesn't scale up to a large number of message types.
- Low number of message types: use a HL7 v3 XML is ‘just another XML format’ approach (see also Grahame Grieve's blogpost v3 has succeeded). This doesn't scale - it typically just gets 'too painful' when there are more than just a couple of message types.
- High number of message types: fully embrace the HL7 version 3 modeling stack and use a MDD approach. To fully embrace the HL7 version 3 model stack one has to let go of one of the basic principles underlying EDI-messaging: the Model for interoperability is separate from the data model as used internally within the application (see section 2.1 of the RIM history whitepaper).
The latter approach, whilst most beneficial when one has to deal with a high number of message types, also works for a low number of message types. Effectively this leads to the conclusion that currently the only viable implementation strategy, the one that scales up and down, is to fully embrace the HL7 v3 models and to use MDD. That approach however implies a steep learning curve and a serious investment of time and money.
If we look at CDA implementations, which have to support just 1 message type we tend to see the same kind of architectural approaches: deal with CDA as 'just another XML document', or use MDD to deal with template validation (see the Software Implementation of CDA whitepaper.)
HL7 is very much aware of most of the issues listed above. Grahame Grieve, as an active HL7 member and HL7 v3 implementer, has written a number of blogposts about the need for a Fresh Look when it comes to HL7 v3, ultimately leading up to him suggesting the core principles of a new standard (FHIR). FHIR tackles all of the issues identified above, and combines the best features of HL7 v3 with a modern cross industry architrecture - but could we renovate HL7 v3 as well, using similar principles?
So how could we renovate HL7 version 3 to be much more successful and easier to implement ? I see a couple of options:
I've been working on the HL7 version 3 standard for about 10 years - but based on experiences gained during consultancy projects with implementers, and based on experiences of implementers as detailed during presentations in the HL7 RIMBAA Workgroup, I see no other way forward for HL7 v3 then to embark on a renovation project.
- Renovate HL7 v3 by adding three new key principles:
- Increase re-use of the wire format: the wire format for model 1, which is a specialization of model 2, SHALL be compatible with the wire format of model 2. Given that the RIM is the most abstract model in the hierarchy the RIM ITS is an obvious candidate. The XML ITS should cease to be a normative standard and be obsoleted sooner rather than later. Migration can be facilitated by providing automatically generated transformations of XML ITS based instances to RIM ITS based instances.
- Add a layer of re-usable elements (i.e. re-usable for the implementer) to HL7 v3, getting rid of the 100s of different R-MIMs. The aim is to create a list of mandatory modeling elements that can't be redefined/constrained. This is mostly an issue of governance, and there will be resistance to it - this will require tough decisions, and it will get rid of some models that some groups within HL7 regard as absolutely essential. Choosing not to create such re-usable elements efectively means having to rely on MDD (as an implementation architecture) even more.
- Change the published artefacts so they can be directly used for MDD using standard tools. If we regard MDD (as I do) as the only viable way to implement HL7 v3 then it follows that MDD style implementations should be facilitated.
- Renovate HL7 v3 by moving everything to CDA R3, and to cease development related to HL7 v3 messaging. This is effectively what the US seems to be doing. The wire format issue is solved by the fact that CDA is based on one single normative schema. Re-usable elements have been defined in the form of a series of 'consolidated templates' (part of C-CDA specification). MDD processing has been enabled by there being a couple of tools that allow for code generation based on CDA template definitions.
- Innovate by moving everything to FHIR, and to cease development of HL7 v3. FHIR can be implemented by the 'Just another XML format' approach, which does scale in the FHIR context. Re-usable components exist in the form of a limited set of Resource definitions.
- "Step #1 probably isn't sufficient" - well, it probably isn't, but it would already make life as an implementer a lot easier.
- FWIW, one of Barry Smith's HL7 Watch blogposts refers to this one.
PermaLink to this page: http://www.ringholm.com/column/Renovate_HL7_v3.htm
Index of columns:
- News from the FHIR DevDays in Amsterdam (Dec 15, 2016)
- Next XDS Release (Oct 27, 2016)
- Five years of FHIR (Aug 11, 2016)
- Interoperability projects in Ireland - FHIReland (Mar 14, 2016)
- 2016 FHIR Jedi Calendar (Jan 06, 2016)
- Top 10 HL7 videos watched in 2015 (Dec 24, 2015)
- Update from the trenches on CDA R2.1/R3 and HL7v2. (Oct 15, 2015)
- FHIR DevDays - UK GP System APIs (Sep 16, 2015)
- IHE XDS - testing and implementation tools (Aug 25, 2015)
- Most often implemented IHE Profiles (Jun 08, 2015)
- Why we sponsor the HL7 WGM (May 10, 2015)
- FHIR in Paris (Apr 21, 2015)
- Mapping HL7v2 messages to FHIR. (Apr 13, 2015)
- Analysis of CDA R2 testing tools - most requirements are neither tested nor respected. (Feb 13, 2015)
- HL7 and IHE in Sweden (Feb 08, 2015)
- 2015 FHIR Chiefs Calendar (Jan 07, 2015)
- The Merry FHIR Choir caroling the 12 Days of Christmas (Dec 09, 2014)
- Chicago FHIR Update (Oct 13, 2014)
- Internationalization of HL7 (Sep 25, 2014)
- New XDS Advanced training course on offer by IHE Services and IHE Academy (Jul 14, 2014)
- Recent and Future developments of the DICOM standard (Mar 06, 2014)
- Top 10 HL7 videos watched in 2013 (Jan 02, 2014)
- Report from the HL7 WGM in Cambridge (Oct 16, 2013)
- Documenting the history of HL7 (Sep 03, 2013)
- Histology Lab Device Automation using HL7 version 2 (Jul 23, 2013)
- HL7 FHIR Elevator Pitch (Jul 15, 2013)
- Interoperability Standards - the no-sales pitch (Jul 09, 2013)
- HL7 UK - new landscape, new opportunities (Jun 26, 2013)
- Validation and error correction at the IHE Connectathon (Apr 25, 2013)
- CDA Implementation Guides - (not) invented here (Apr 17, 2013)
- Usage of IHE Profiles (Feb 25, 2013)
- 10 year anniversary - Dutch Ringholm HL7 v2 training courses. (Feb 19, 2013)
- About IHE Academy and new IHE training courses (Jan 12, 2013)
- CDA implementation experiences in the UK (Dec 04, 2012)
- Musings on free HL7 IP (Oct 01, 2012)
- HL7 Connectathons (Sep 09, 2012)
- Renovate HL7 version 3 (Aug 03, 2012)
- Frequency of use of HL7 message types (Jul 24, 2012)
- Lighting the FHIR, HL7s new major interoperability standard (Jun 15, 2012)
- Reflections on the HL7 membership model - the affiliate life cycle (Dec 28, 2011)
- Thinking like an OWL reasoner (Sep 17, 2011)
- RFH (Resources for Health): HL7 version 3 taken to the next step (Aug 18, 2011)
- What's so great about the HL7 organization? (Aug 04, 2011)
- Kerndossier: een Nederlandse versie van CCD (Dutch, May 03, 2011)
- A HL7 RIMBAA update (Apr 21, 2011)
- Timezone Hotel (Mar 29, 2011)
- HL7 and openEHR are cooperating (finally) (Jan 21, 2011)
- Increasing demand for IHE training courses (Dec 18, 2010)
- Context issues with the IHE QED profile (Dec 15, 2010)
- The changing role of HL7 country organizations (Jul 16, 2010)
- Implementing HL7 version 3 - the book (May 06, 2010)
- Adding openness to a closed world (Feb 09, 2010)
- How to lower the hurdle for HL7 v3 implementers (Jan 21, 2010)
- HL7 v3 deployment statistics (Dec 17, 2009)
- There's Trouble in Paradigm (Sep 25, 2009)
- Internationalization of HL7 (Sep 24, 2009)
- HL7 UK signs deal with Ringholm to deliver HL7 v2/v3 training courses in London (Sep 17, 2009)
- The use of HL7 in South Africa (Aug 20, 2009)
- The Next Web Conference in Amsterdam (Apr 17, 2009)
- The HL7 UK AGM and RIMBAA (Apr 16, 2009)
- The HL7 Wiki reaches 2000 pages (Mar 02, 2009)
- The HL7 roadmap for CDA R3 and the CCD (Jan 17, 2009)
- HL7 Affiliates Meeting in Orlando (Jan 11, 2009)
- Swiss and Dutch HL7 News (Dec 31, 2008)
- Devices and Prizes (Nov 22, 2008)
- HL7 in Norway: a situation report (Sep 02, 2008)
- Russian whitepaper (Jul 09, 2008)
- The HL7 Interoperability Conference - IHIC 2008 (May 30, 2008)
- HL7 creates a RIM Based Application Architecture (RIMBAA) group (May 18, 2008)
- Notes from the HL7 WGM in Phoenix (May 08, 2008)
- Germany embraces CDA eReferral document specification (May 02, 2008)
- HL7 v3 RIM based applications: an unintended side effect (Jan 19, 2008)
- Collaborative Tools (Jun 21, 2007)
- HL7 ist Pflicht in der deutschen Telematikinfrastruktur (German, Mar 16, 2007)
- HL7 based Tree inventory system (Jan 30, 2007)
- The link between HL7 and Open Source Software (Jan 06, 2007)
- Workflow Bribery (Sep 15, 2006)
- Timezones in HL7 (Jan 23, 2004)
- Controlled vocabularies: "@*%!!!" ? (Sep 01, 2003)
- Trusting the other Party (Nov 01, 2002)
About Ringholm bv
Ringholm bv is a group of European experts in the field of messaging standards and systems integration in healthcare IT.
We provide the industry's most advanced training courses and consulting on healthcare information exchange standards.
See http://www.ringholm.com or call +31 33 7 630 636 for additional information.
Rene is the Tutor-in-chief of Ringholm.