Friday, February 7, 2014

Open Source APIs for CCDA Generation

This blog is a continuation of my previous blog post: How To Generate CCDA/CCD XML Docouments for MU 2014.

Here we evaluate five 3rd party open source APIs for CCDA generation that comply (as claimed by the APIs themselves) with MU 2014 standards. 

The objective is to assess the fitment and ease of integration with an existing EHR system so as to enable the latter to achieve 2014 EHR Certification for objectives such as:
170.314(b)(2) - Transitions of care - create and transmit transition of care/referral summaries
170.314(b)(1) - Transitions of care - receive, display and incorporate transition of care/referral summaries
170.314(e)(1) - View, download, and transmit to 3rd party

The comparison brings out the benefits/shortfalls of each of the products, and also makes recommendations. This blog also provides the ground work for further research that may need to be done keeping business priorities of the service provider.

So, Which API?

I sat down to do an evaluation in similar lines as what NHS Networks has done. I examined 5 products available in the market today and came up with these findings. 

Note: This evaluation is done keeping a .net based EHR system in mind. 

Model-Driven Health Tools (MDHT)

Technology: Java
  • The most popular and mature product available in the market today.
  • Being Java based, doesn’t lend itself easily for use inside a .net library. 
  • The generated sample XML available here fails validation by NIST. (MDHT, you listening???)

Everest Framework

Technology: .net
  • Extensive API. Can be used for various other things than just CCD generation. 
  • The generated sample XML passes validation by NIST.
  • There is a bit of a learning curve using the API because of lack of documentation.
  • If the XML changes in future, then we need to rely on the API to update as well. This is a potential risk. A possible way to mitigate this is to maintain the source code of the API and extend it ourselves.
  • It doesn’t lend itself to make CCD+ complaint XMLs.


Technology: .net
  • Wasn’t easily usable for a quick evaluation. 
  • Lack of documentation. User forum not very active.


Technology: .net
  • Emerging, not rich enough yet.
  • Targeted towards NHS, UK.
  • Makes use of components of the Everest Framework previously mentioned.


Technology: .net
  • Confirms only to HL7 2.x.
  • Old API, not updated actively.


As of the time of writing this blog, Everest seems to be best choice available. In a later blog post I will cover how to use Everest API to generate CCDA documents with code samples. 


Wesley said...

Thank you for enumerating these resources for HL7 CDA for .net developers. I had come to a similar conclusion after my search which included an even less helpful which cost $125 only to find out later they wanted a great deal more for the modifiable code. In fact I had resigned to creating the XML by hand with objects that wrote to XMLWriter rather than the Serialization process that XSD.exe uses. However after your useful article in Code Project, "CCDA Generation using Everest API" I think I'll go back and give Everest a second try.

If you are interested, you are welcome to browse my .net code for the electronic medical record program Mountain Meadow which is open source. See said...

Thank you for the kind words Wesley. I had a quick look at M and I find it very interesting. I may get in touch with you soon with a potential situation where my organization may find M suitable.

geo joseph said...

Nice work.. I was planning to use MDHT API's for a project of mine. But now I am trying to include some sections that shows gaps in care for the patient(preventive care). But I am not sure of the API's that include methods for these details.Are there API's that helps us to add new sections that are not there in the standard format of CCD?

Coder Panda said...

Thanks Geo.

I didn't actually try out MDHT and my observation is they are pretty quick to add new standards into their library and are also well-extensible.

If you are on .net then everest has a good forum and their team helps out promptly if you have any need to extend the API.

Anonymous said...

I Am new to CCDA generation. Working with .net framework. Can any one help me on which one is best for .net and also How to generate CCDA and what are the prerequisites.

Coder Panda said...

Hi Ravi Panjabi,

Have you tried reading my other blog post:

That should get you started. Please let me know.

* * @nil jain * * said...

Is these mentioned APIs are free or paid ?
I want to code in to generate CCDA file that comply MU 2015 standards, so will you please help me into this or share any link where i can get help to generate CCDA.XML file.

Also as per MU 2015, along with CCDA.XML file we need to generate METADATA.XML also to create XDM package. Is there anyone who can help me into this.