If you are starting out in health information technology, it can be very overwhelming in terms of the sheer number and complexity of the standards that are out there.
Having been active in this space for more than 15 years, I have come to realise that the issue is not about standards or applications as such, but how we think about them and use them. The current approach to solving the EHR interoperability problem is to go out and build or buy an application. This is easy and people often suggest that open source applications are the answer but open source applications don’t solve the problem of interoperability.
Why? Because the problem is not the applications, (over 7,800 clinical apps in the USA alone), but the DATA. Even open source health applications use a data specification that is unique and the data is captured in a non standard way that is not shareable with any other systems.
The approach to this to date has been to treat all of these applications as ‘black boxes’, where the content is not important. The energy has been spent on messaging between them and this has been going on for 25 years or more. In terms of interoperability of complex clinical data, it has been a major failure and we are almost no further ahead with a messaging approach than we were before.
Why? Because really you can think of each of these systems as having their own ‘health language’ – designed to capture the data required for the particular clinical purpose that it was built for. Even systems that are built for exactly the same purpose, will have different ways of structuring the data (the information model). There are many systems that allow you to structure data on an implementation basis, so that even between different implementations of the same system, there is no interoperability. A lot of data that is captured by applications, relies on the user interface of the particular application for the semantics of the data i.e. the data captured is relatively meaningless unless displayed in the context that it was created in on the screen. Messaging data like this requires a constant translation of the information from one system to another and when you add a third system, you need to do the translation again for each of the other systems because the language is different.
So how do we solve this problem ?
- We could use only one application from a single vendor everywhere…and there are some vendors who would advocate this approach!
- We could rewrite every application to use a common data model – ideal, but not realistic in the short term.
- We could try to invent a messaging system that was able to be translated automatically – this is the HL7v3 approach and has been unsuccessful so far.
- We could create a ‘lingua franca’ that allows a single translation to a universal interoperability language so that any translation only had to happen once – this is the openEHR approach.

So – its the DATA, not the application that’s important and until we can get data that is universal, shareable, flexible, completely open and able to cope with the fractal complexity of health data, we are not going to be able to solve it. There is a very nice report on semantic interoperability from the European Commission called the semantic health report that suggested that three things were essential for interoperability to occur – a shared information model (such as the openEHR reference model), terminology (such as SNOMED CT) and content models to bring these together (such as openEHR archetypes). You can read the report here: Semantic Health Report
…and if you don’t have a way of clinicians (domain experts) being able to contribute to what the content of an EHR should be, then you won’t get there either.