Healthcare Interoperability Blog

interfaceware.com
  • Iguana Integration Engine
  • Resource Center
  • Blog
Home FHIR in the Hole!

FHIR in the Hole!

There are lots of places where FHIR shows underlying problems in it’s conception.

One of the areas is in how to handle database transactions. It’s a big topic of discussion within the FHIR team of how to handle this. I tried to think of a few constructive ways to solve the problem – maybe flattening out resources and allowing composite updates to be made in a single envelope.

Nope.

Didn’t smell right.

Real world RESTful interfaces don’t have this problem. Real world RESTful interfaces closely mirror the underlying data model of the application they are exposing and so decisions about how transactions are implemented is something which is very specific to the application.Why You Need A Modern Integration Engine

You don’t see 37Signals explaining how their RESTful API handles database transactions because they have grouped the data in their API calls that makes sense for transactions in their application.  This simply isn’t a problem that you have to think when you use real world RESTful APIs.

The problem shows up because FHIR is trying to do something which is a flawed idea to begin with. No one has ever tried to make a general purpose vertical RESTful API which covers as wide a range of disparate data as FHIR.

Why?

Because it’s a bad idea!

What bites FHIR in the butt is the whole principle of leaky abstraction. FHIR has negative value because it confuses the integrator with as to the nature of how the underlying application actually works.

Look at the patient resource:

http://www.hl7.org/implement/standards/fhir/patient.htm

and imagine putting this on top of real EMR system.  Some EMRs are really flexible – they have the concept of a person table.  Others represent a patient using a flat record with say HomePhone, BusinessPhone and OtherPhone implemented as columns in a single table.

How the application stores data inevitably leaks through into it’s interface.  Having a generalized interface like FHIR makes each integration harder work. It will take more time per interface because as an integrator you have to figure out the underlying limitations of each system. This is same problem as Version 2.0 HL7 – HL7 interfaces – HL7 interfaces are invariably a thin wrapper around the underlying data-structure of the application.

Why?  Because there is no other way.  

This is what makes HL7 integration hard. It’s easy enough to consume HL7 data. But it’s hard work figuring out what parts of the HL7 standard that a vendor has implemented and what data fields to populate because invariably you have to figure out the right ones to populate to get the data in the right spot to display in the right part of the GUI that the user needs in their work flow.

A native RESTful API that is fits like a glove on to a real application is going to be a lot easier to use than HL7, and a lot less costly to integrate with than FHIR.

Welcome to the real world.  Deal with it. 🙂


Why You Need A Modern Integration Engine

May 14, 2013Eliot
  • Email
  • LinkedIn
  • More
  • Facebook
  • Twitter

Related

Back in Toronto Enjoying a Morning CoffeeAnyone Who Doesn't Do this Will be FHIRed. Thank You; Have a Nice Day!
May 14, 2013 FHIR, HL7, NewsFHIR, healthcare integration, HL7
Enjoying this blog?

Sign up to receive healthcare integration news, just like this, from iNTERFACEWARE Inc.

iNTERFACEWARE needs the contact information you provide to us to contact you about our products and services. You may unsubscribe from these communications at any time. For information on how to unsubscribe, as well as our privacy practices and commitment to protecting your privacy, please review our Privacy Policy.

Resources

Integration Resources & Guides

HL7 Resources

Iguana Case Studies

Iguana Integration Engine

Overview: Integration Engine

Features: Building HL7 Interfaces

Benefits: Why Choose Iguana

Company

About Us

Integration Services

Contact Us

Connect

LinkedIn

Twitter

YouTube

© - iNTERFACEWARE Inc.