Wednesday, April 8, 2009

Introduction to HL7

As part of my new role and job, I am getting up-to-speed with health care information systems. A few backs during our TechMasters' meeting, I spoke briefly about HL7, but could not find enough material to summarize what it is. As I researched more, I found more material. So what is HL7?

HL7 stands for Health Level Seven(7). Why is seven? Accordingly the network protocol, if you have ever studied computer networks, the OSI (Open System Interconnection) model is typically conceived with seven layers. The seventh layer correlates to the application layer. Hence the HL7 focuses on the issues occur at the seventh layer.

The standard deals with interfaces between systems that send/receive patient admissions/registrations, admission, discharge or transfer (ADT) data, queries, resource and patient scheduling, orders, results, and clinical observations, billing, master file update information, medical records, scheduling, patient referral and patient care. It's an effort to let disparate applications and data architectures in heterogeneous system environments operate and communicate with each other.

A typical hospital today have its own (proprietary, from a specific vendor) computer systems for admission, discharge and transfer, billing and accounts receivable applications. These systems may have been designed in a centralized or a distributed architecture. Overtime, these applications are re-written or patched to meet current computing needs. Remember Windows 95? The security model which was perceived then is not what we use today. Now think Windows Vista's security model. If you put this in terms of health information systems, you will see a similar progression. However, often the application development cycles are not well-defined, lots of patching and updating have to occur. Having many vendors with their own protocols and applications, there raises a big need for interoperability.

A framework is needed to minimize incompatibility and maximize information exchange between systems. HL7 is deemed as a superstructure in this environment to facilitate a common specification and specifications methodology.

So far, there has been three versions of HL7. The first version was created in 1987 and subsequently the second version came out in 1988, but version 2 had a few revisions. HL7 version 3 came later (time frame?), and it's XML based. I plan to blog more about HL7 versions separately later on.

To summarize HL7 and what it tries to accomplish, here are some bullet points:
  1. HL7 is not a "complete solution", rather it provides a common framework for implementing interfaces between disparate vendors
  2. Protection of Health care information
  3. Roles and relationships, such as patients, physicians, providers.
  4. Accountability, audit trails
  5. Uniform data definition and data architecture
  6. Integration of health record
  7. Interface engines
  8. Rules engines
Obviously there is a big need for standardization of communication protocols. I am looking forward to learning more about HL7 and share my findings in this blog and other avenues.

After the initial posting of this blog, I have been followed by "HL7-Tools", and it was mentioned that a link to their resources can be added. Certainly. Here is another resource for learning and practicing HL7 Tools, Utilities and Resources. Thanks for following.


  1. Version 2 has had (and is still subject to) revisions, HL7 is currently working on version 2.7.

    It has to be stated that HL7 version 2 has quite a different aim than version 3, and that they are based on totally different principles. HL7 version 2 aims to support *hospital* workflows, HL7 version has the aim to support all healthcare workflows, inclusing those that convey complex medical information.

    HL7 version 2 (from a syntax/modelling perspective) is based on EDI principles (the standard way of structureing messages that was used prior to the creation of XML), HL7 version 3 is 100% model driven, object oriented, and XML based.

    Examples of both probably work best to show the difference 'on the wire': ; for additional links see

  2. Thank you for the comments. I will be focusing more on HL7 ver. 3 going forward. Links are quite useful.