HL7 Plug and Play
A commonly used notion in the IT industry today is the notion of "plug and play". The idea is that a software component is
able to "plug" into one or more existing systems and immediately (and correctly) "play". In a health interfacing
context HL7 plug and play suggests that an application that conforms to the
HL7 Standard
should be able to be installed into an existing customer environment and faultlessly inter operate with existing applications.
Sadly this is not generally true.
The plug and play expectation is fostered by everyday experiences where other tools we use are increasingly plug and play. Examples include:
- mobile phones (plug in a SIMM card and battery and then play on the phone by making calls)
- USB memory key (plug into a USB port on your PC and play by copying files to and from the memory key
- PC applications such as Virus scanning software (plug into your PC by a simple installation
and immediately play by scanning for viruses and synchronizing virus signature files with a server on the other side of the world
Reasons that two
HL7 standard
based applications are not plug and play might include:
- Vendors implement different versions of the HL7 standard. While backwards compatibility is the general goal of the
several HL7 standards currently in use, the difference between version may cause problems.
- Vendors state HL7 conformance, however ambiguity in the HL7 standard and different interpretations
of the HL7 standard result in incompatibilities between implementations
- The design of a particular application means that certain application architecture requirements effect the HL7 interface.
The application idiosyncrasies may cause incompatibilities.
- Customer requirements do not fit the HL7 exactly. Examples include:
- application events for which no standard HL7 messages exist
- data items in use in a particular application that care not explicitly captured in a particular HL7 segment
- Use of HL7 'Z' segments - a method to add additional data items to existing HL7 messages
Despite the silver bullet of HL7 interface plug and play not existing, a number of approaches can be used to mitigate
interface compatibility issues.
These include:
- Use of an interface engine to mask differences between application interfaces
- HL7 planning and
testing
to identify issues and ensure their resolution.
- Waiting for the next big thing in interface standards (such as HL7 Version 3 or OpenEHR) which may magically solve interface compatibility issues.