Monday, May 14, 2012

Starting a FHIR under HL7

I'm at the HL7 Working Group meeting in Vancouver, and Sunday I usually spend at the International Council Meeting, but today in the second half of the morning session, Lloyd McKenzie and Grahame Grieve presented a free tutorial on Fast Healthcare Interoperability Resources that was too promising to pass up.  I needed to see what all the excitement was about.  The tutorial provided a great overview of what FHIR is trying to accomplish, and was readily comprehensible.  The room was upgraded in size twice, and even so, it was filled to the rim (pun intended).

What follows is a summary of what I learned (gleaned from my twitter notes on #FHIR), and a quick prediction at the end.

First of all, you need to understand that this is something that Grahame Grieve started nearly a year ago in response to outcomes from the HL7 Fresh Look task force.  He has donated his original ideas to HL7 with the proviso that they be freely available to all through the first normative release, in part to encourage adoption of the specification by folks who are and are not members of HL7.  The current project is being run by the HL7 Modeling and Methodology workgroup.  The specifications are still in draft form, and actually, were already out of date 20 minutes before the tutorial started, so it appears to be moving pretty quickly.

FHIR is intended to address the most common (80%) interoperability needs of implementers, and consciously delegates the remaining 20% to extensions which must still fit within the structure of the standard, but which will not be addressed in the core parts of the standard. After getting rid of the stuff that deals with all the exceptional cases, it turns out that the core can be much simpler (some have estimated that it is 20% of the original, fully encompassed modeling that we currently do in HL7).

You really need to see the slides, which I will post here as soon as they become available, as they tell the story of what FHIR is really well.

The project team anticipates that upon completion, FHIR will provide specifications for 100 to 150 healthcare resources, the fundamental components needed in an interoperable healthcare exchange.
These will include things like people, problems, allergies, prescriptions, etc.  While still being based on the RIM, Datatypes and vocabulary, it won't put the necessities of the RIM and its infrastructure in the face of developers.  There will be no confusing mood codes or class codes.  Instead, everything will be an addressable resource, an atomic component of a healthcare related transaction.   Even the ISO datatypes (HL7 Datatypes Release 2.0) are simplified for developers.  In fact, the datatypes UML diagram fits in one slide easily readable from the back of the room.  FHIR is much more like "Green CDA" for all of version 3, (in fact you could even call it HL7 Version 4, but HL7 isn't marketing it this way).

Assuming at most 30 data elements per resource, this could be 3000 data elements total, across the EHR.  There is still a place for vocabulary in FHIR to capture the necessary detail (especially in extensions).  The project team notes that Vocabulary is still hard, and that they'd love to see someone tackle it the way that FHIR is tackling other problems.

FHIR is designed for, and supports RESTful approaches, thus Resources is part of the name of the specification.  Because of this, it gets the basic Create, Read, Update and Delete operations for free because they come with HTTP, one of the most common transports used with RESTful approaches.

Each of the resource specifications will be published in several formats, including UML diagrams, tables, a sample instance, an XML Schema.  Every resource will have a sample instance (it is one of the governing principles of the specification).  The sample instance presented for person in XML also fit into one slide, and if your eyesight was still good (e.g., you aren't an aging nearsighted geek like me), you could read it from the back of the room as well.  The normative definition includes three things I like:  An easy to understand written syntax for what is required (almost like a Microdata schema), written definitions for all resources, and most importantly, a rationale for each data element in the resource (tying it back to requirements!).

Squishing down in one place (as FHIR does on the basic models) pushes requirements elsewhere.  Some requirements will move out to the compositions of resources used in a message.  Message exchange using FHIR uses message profiles.  A message profile is a composition of FHIR resources put together in a certain way (we didn't get into the technical details).  Message profiles can be created by anyone, HL7, its affiliates, organizations like IHE, national programs, etc.

FHIR Resources map pretty well into HL7 Version 2 segments.  But you wouldn't build a Health IT Architecture around Version 2.  FHIR still retains the RIM as a core component, but it is used as an architectural artifact that ensures appropriate semantic mapping, not something that defines how classes are constructed or refined.  In fact, modeling by restriction (a "feature" of current RIM-based approaches in HL7) is eliminated in FHIR.  Because FHIR is based on RIM modeling, you still get the benefits of the RIM as the backbone.  That means that round trip exchange from V3 and CDA is also reasonably possible; it's just a matter of writing the transformation ;-)

There is also significant interest from OpenEHR to harmonize with FHIR datatypes.  Both the FHIR project team and the CIMI initiative understand that the two groups will need to coordinate.  They haven't established yet the how or why, because it is still to early to tell what they will need to accomplish.

There was some discussion about the tooling and underlying model representation that FHIR will be based upon.  The current MIF is not applicable, nor are many existing HL7 tools.  There are certainly things that can be done using open source tools like MDHT, but the present tool-set for creation of the specifications is an Excel spreadsheet.  Simplicity is very much a driving factor here.

FHIR will need to spend considerable amounts of time figuring out governance.  We won't be able to just approve any element that we want to in a resource, instead, we'll have to figure out what it means to be within the 80% of needed stuff in the core.  That may require answering different questions, such as:  "If we put in X in this resource, will you implement it?" to the audience approving its inclusion, rather than "Should we put X in this resource?".

We'll also need to look at how extensions are vetted and published (e.g., a registry).  The former is needed to ensure good mapping back to the RIM.  The latter is necessary because an extension is useless if you cannot find it.

I'm hearing a couple of different viewpoints on timing about FHIR.  This can be implemented quickly, and we need it yesterday, and should get it published as soon as possible is one view.  Another view is that we'll have a draft for comment this summer (for the fall HL7 ballot), and that it may take a few cycles to pass thereafter, so 2 years is not an unreasonable time frame.  From my own viewpoint, FHIR is strategic, not tactical.  We need to do it right, but we should also build fail fast into the program.

The project team plans on issuing FHIR as a complete standard, not separate chunks where this chunk comes from Pharamacy, and that one from Patient Care, and that one from O&O over a particular time period.  I'm very happy with this approach, as it brings us back to the original V2 roots where you could actually get the entire standard in one document.  However, I think that core components may need to be prioritized so that key things are done first, and iterations address lower priorities in later stages.

No matter how it is done, neither I nor the project team expects to see massive migration to FHIR next year.  In fact, V2 will probably be with us for decades while it is still up to the demands being placed upon it.  Where FHIR will shine is in green fields, and I note an especial interest from the mHealth community in where it is going.  I don't think we need to drop everything and take up FHIR for Meaningful Use Stage 3 (rushing this kind innovation is not a good idea), but I do think we need to be paying attention.

What I Like
It's simple.  It requires few tools to create.  It has some rules about how the XML looks that make sense.  It focuses on implementers.  It explains why something appears in a resource, linking requirements to specifications.

What I Don't Like
It's new.  It has people excited.  It will change Healthcare IT.  I didn't think of it.

Actually, I don't know what I don't like because I haven't been involved deeply, yet.  That's about to change because no matter what happens...

A Prediction and a Prehumous Award
FHIR will emerge as a new standard, and will be very dangerous.  It applies many of the lessons of Christensen's "The Innovators Dilemma" to Health IT Standards.  Pay it no attention to your own peril.

This certifies that 
Grahame Grieve, Health Intersections

Has hereby been recognized for outstanding contributions to the forwarding of Healthcare Standardization by setting a FHIR under HL7

These awards aren't given out lightly, and to give one of these out in advance of the work being completed should mean something.  Listen up.


  1. Thanks for a much needed step to a lighter weight protocol for the 21 century. I haven't got into the deep dive but... FHIR looking good. I passed it on the the mHIMSS task force for review.

    thanks again for the post

  2. Question: Why all of the accolades to FHIR and I have never heard any of the same from you about hData, already an HL7 DTSU, which is very similar? It is avery interesting that REST gets brought up by a number of people outside or on the fringe of HL7 and it gets down played and shoved into a corner. But now that something that looks amazingly like a standard that already exists but is put forward by someone in the HL7 inner circle it's an amazing technology . Instead of FHIR , why didn't you guys over at HL7 work on hData to improve the spec that already existed? It has a very "not invented here" sort of dirty feeling to this.

    So I challenge you Mr Boone to give the same sort of critique to the hData record format and hData transport specs.

    1. Johhny T,

      I'll take your nomination and your challenge under advisement, because that's a reasonable ask. If you are concerned about a lack of outsider influence in HL7, why don't you come on in. HL7 needs more "outsiders".


    2. Clearly that never happened, and frankly, I can tell you it probably won't at this point. FHIR is here to stay. hData was part of the formative input, but it's pretty much gone.

  3. Has FHIR been abandoned? There is no activity at

  4. The gforge forum has never been used. If you look at the gForge Activity graph, you'll see we're averaging around 5 commits/day. Discussions generally happen on the FHIR list server (on the HL7 website select "Resources", "Listservs" - you can find the FHIR one listed under Technical Steering Committee.) In addition, there are several skype threads - for implementers, committers, toolsmiths, etc. which often hit 100+ posts/day. You can also look at the FHIR wiki ( for hot topics discussions as well as the minutes of the FHIR Governance Board and FHIR Management Group which each meet weekly. Finally we have a tag on Stack Overflow, where some implementers are starting to raise questions (

    In terms of current activity, we're in a short-term freeze for QA prior to the first DSTU (Draft Standard for Trial Use) ballot opening in early August. The expectation is we'll publish the final DSTU no later than January 2014. The fhir spec ( is updated a couple of times a week (except when we're in a freeze) and presently has about 50 resources defined contributed by 6+ work groups, all very close to ballot (and implementation) readiness.

    We'll be holding our third connectathon at the May WGM in Cambridge. You'd be most welcome to come along and see just how alive and well FHIR is :>

  5. Hi,

    Could you please give me steps where in I can use XSLT and transform xml document to FHIR XML document in Mirth Connect

  6. Question: Hi Keith, I've downloaded all the FHIR components and tools, and have MS Visual Studio for C#. I just want to do a simple build of FHIR. I'm not sure where to start. Any suggestions? I've read through most of the resources and watched several developer vids.

    1. If you grabbed the build from SVN in the HL7 GForge site, all you need do is run publish.bat in the root directory of the downloaded files.