Sunday, 8 February 2009

EHR and Open Source Software

One of the major obstacles in deploying Electronic Health Records (EHR) apart from the usual political and technical reasons is the huge outrageous economic costs associated with the product suites involved in the deployment of EHR. So one option to reduce the costs might be looking at using Open Source software (OSS) to improve the financial viability of the implementations. Gartner has predicted that

· By 2010, 90 percent of Global 2000 organizations will have formal open-source acquisition and management strategies.
· By 2008, OSS solutions will directly compete with closed-source products in all software infrastructure markets.
· By 2010, open source will be included in mission-critical software portfolios within 75 percent of Global 2000 enterprises.
· By 2010, Global 2000 IT organizations will consider open-source products in 80 percent of their infrastructure-focused software investments and 25 percent of business software investments
In this post I will look at the main features of Electronic Health Records and the commercial software available for implementing these features and the open source alternatives for them. At a high level the features of Electronic Health Records are

Patient / Person Registries

One of the important feature required for the successful implementation of a EHR is the establishment of a patient/person registry and the identifies associated with them. This will allow the correct identification of patient’s identification and subsequent association of care records with them. The issues associated with the establishment of such a registry are

• Management of local identifiers and national identifiers
• Migration of data; resolution of duplicates and confusions
• Synchronization mechanism between local and national records
The commercial software for the establishment of registry are
• SUN SeeBeyond eView
• QuadraMed EMPI Solutions
• Initiate Identity Hub™ software
• The MPI software associated with Product Vendors such as IDX, Cerner, Eclipsys, McKesson,
The alternative OSS for the registry are
• Record Locator Service (RLS) – openhre
• Part of Medsphere OpenVista
• Eclipse OHF - Patient Identifier Cross-Referencing (PIX)
• High Available Open Source Database Solution using MySQL for Enterprise Registry Application with advance features.

Exchange of HealthCare data –Application Interoperability

One of the major features of EHR is the ability to feed a central health repository healthcare data associated with key events and at the same time exchange the data with different clinical systems. The issues associated with exchange of clinical data are

• Level and Granularity of clinical data
• Quality of data and existing data
• Choosing the right standards
• Legacy Systems Compliance
The commercial software available for the exchange of clinical data are
• Sun SeeBeyond e*Gate
• Oracle HTB
• ORION Rhapsody
• Microsoft BizTalk
• IBM Websphere

The alternative OSS available for exchange of clinical data are
• Mirth
• Eclipse OHF Bridge
• JBOSS, Hibernate, Web Services,
• Enterprise Service Bus, Messaging

Appointment Bookings

Though Appointment bookings are not itself a part of the EHR the ability to provide options to referrals and allow appointments to be made between different care settings by clinicians and even by patients themselves is emerging as the part of different nation’s healthcare IT infrastructure. The issues associated with appointment bookings are

• Problems with departmental system slots
• Definition of Resources
• Category of appointments –Inpatient/Outpatient

The commercial software available for providing appointment bookings are

• Cerner Enterprise Wide Scheduling
• Isoft Revive
• Epic Cadence Scheduling

The alternative OSS available for appointment bookings are
• OpenVistA Scheduling
Healthcare Portal

Healthcare Portals are a crucial component in the infrastructure of EHR not only from the perspective of content management of the data that can be made available to clinicians available in the repositories associated with EHR but also access to services like appointment booking which is a part of the EHR. The issues associated with Healthcare portals are

• Security controls for data visible to citizens over Internet
• Clinically safe to use with relevant data made visible
The commercial software available for building of Healthcare Portals are
• McKesson Physician Portal
• ORION Concerto™ Medical Applications Portal

The alternative OSS available for Healthcare Portals are
• iPath - Open Source Telemedicine Platform
• Liferay Portal Enterprise and Professional
• Akaza OpenClinica
• Integrated Portal and Enterprise Content Management system (Alfresco/OpenCMS/

Information Governance – Access Control

Another crucial aspect in the management of portals is the management of access and the provision of role based access. The issues associated with access control are

• Definition of RBAC Activities
• Smart Card access for operators and normal for citizens
• Agreed definition of roles

The commercial software available for providing access based control are

• Microsoft Active Directory

The alternative OSS available for access based control are
• Centralized Authentication & Authorization using Open LDAP


One of the main outputs of EHR is the ability to generate reports and provide the ability to allow clinical and administrative governance. The issues associated with reporting are

• Lack of transparency of system schemas to reporters
• Lack of LDMs for operational / departmental systems, data warehouses
• Lack of data pedigrees for reported data elements
• Lack of comprehensive data dictionaries for systems
The commercial software available for providing reporting are
• Informatica
• Business Objects

The alternative OSS available for reporting are
• Jasper Suite

Tuesday, 3 February 2009

The Verbose HL7V3- Part 1

In Mid-2006 Gartner in a note on HL7V3 stated that HL7V3.0 messages are quite verbose and applications require considerable effect to understand and process the message. Gartner suggested that HL7V3 messages need a critical midcourse correction and suggested to HL7 Inc to act vigorously to make HL7V3 messages easier to use and more compact.

In the next couple of posts I would look into the reasons and complications behind the verbose nature of HL7V3 and conclude by presenting the solutions on offer to overcome the problems associated with this verbose nature of HL7V3. This post will also help you to some extent to understand how to browse through an R-MIM.

Why are HL7V3 Messages Verbose?

HL7V3 messages are XML messages which are model driven and model driven XML are usually verbose in nature compared to custom written bespoke XML messages designed to convey the same information.

Why do we need Model driven messages?

Currently in the healthcare industry point-to-point messaging is common and non-standardised data exchange is the norm leading to data quality issues, confusions and processing errors sometimes with grave consequences affecting patient care. So it’s absolutely necessary to have a common understanding of the data that is being exchanged to eliminate the misinterpretations. To facilitate this, a level of semantic interoperability is required.

Semantic interoperability can be achieved using a common information exchange reference model so that data is shared and defined unambiguously. XML schema models are derived from this reference model and used to generate run time schemas which cannot be modified directly unless the model itself is modified. As different applications build XML messages sourced from the reference model they end up having the same content and construct facilitating meaningful data exchange. HL7 Inc produced a global semantic model for healthcare called Reference Information Model (RIM) which is the basis for HL7V3 messages [Refer to the HL7V3 Primer post dated January 2008 at

So what’s the issue?

Well, let’s take a sample example and see what exactly the issue is. The following is an extract from XML instance to represent author of a clinical document based on the discharge summary CDA schema taken from CFH-MIM6.3 available on HL7-UK Website

Now let’s look in detail at the representation of the author. The R-MIM representation of the first part is shown below

The author representation starts with the author as participant. It contains the following attributes

1. “typecode” with a fixed value of “AUT” – Indicating this class is that of author

2. “functioncode" to indicate the function of document author from a pre-defined vocabulary. In this case it has a fixed value of “OA” indicating originating author.
3. “contextControlCode” - Specifies how the author contributes to the context of the discharge report and whether it may be propagated to descendent acts whose association allows such propagation.

4. “contentId” - An identifier for a template which constrains the classes and attributes which follow. This is more of a structural navigational aid and not an indicator of semantic meaning. In this case it is the AssignedAuthorSDS template.

5. “time” - The time at which the author authored the clinical document.

The XML representation of the above is shown below

The AuthorChoice leads to template for the author who is in a directory called SDS-Spine Directory of Services. The R-MIM representation of author in SDS is shown below

The AssignedAuthorSDS identifies a person playing the role of author. The role information includes the user identifier and role profile information of the author along with the job role.The AssignedAuthorSDS contains the following attributes.

1.“classCode” - A fixed value of “Assigned” indicating that this role is assigned

2.“id” – it has a cardinality of [1..2] with two identifiers one to identify the user id and one to identify the role profile of the person to whom the role is assigned

3.“code” - A code from a vocabulary which defines the person’s job role and with displayname associated with code

4.“templateId” - fixed value of this attribute provides a unique identifier for the template and the class name within that template. In this case that of the AssignedAuthor template.

The XML representation of the above is shown below

The role AssignedAuthorSDS has links to person entity which is playing the role of the author. The attributes within the person entity are given below

1. “classCode” - A fixed value of “PSN” indicating that this entity is a person

2. “determinerCode” – A fixed value of “INSTANCE” to indicate this is a instance of person
Name – Name of the person

3. “templateId” - fixed value of this attribute provides a unique identifier for the template and the class name within that template. In this case that of the AssignedPerson template.
The XML representation of the above is shown below

The role AssignedAuthorSDS has links to the represented organisation to which the author belongs to. The attributes within the organisation entity are given below.

1. “classCode” - A fixed value of “ORG” indicating that this entity is a organisation

2.“determinerCode” – A fixed value of “INSTANCE” to indicate this is a instance of an organisation

3.“id” – A unique identifier which identifies the organisation nationally

4.“name” – name of the organisation

5.“templateId” - fixed value of this attribute provides a unique identifier for the template and the class name within that template. In this case that of the representedOrganisation template.

The XML representation of the above is shown below

Still not clear on what’s the issue here?

Well a simple XML representation of the author as described above would have probably looked something like this

But is it that not the price you pay for using a model to provide semantic interoperability?

Yes it is but the verbose nature of the HL7V3 problems are creating huge problems as mentioned above regarding the effect to understand and process the message correctly apart from hogging the network bandwidth and destroying one of the unique the advantage of XML messages- “Readability” which is critical for developers and testers.

So what can we do?
There is a huge debate going on if we can take an alternative path to provide semantic interoperability with simpler XML messages. We will discuss those options in our next post.

Acknowledgements and Copyrights
1. HL7-UK / CFH - MIM 6.3 - Copyrights for R-MIM

2. Acknowledgements - Is it Possible to be Simple Without being Stupid?
Exploring the Semantics of Model-driven XML - Ann Wrightson