I have implemented CDA R2 from “the ground up” and I can honestly say that it is a real mess. The real problem is that it feels like it was designed by people who haven’t done much information designing in their careers; people who are experts in health care domains, but not in information design. Software people coming to the CDA for the first time are utterly baffled by its ornate, labyrinthine structures and quirky vocabulary.
I have also looked at all of the proposed replacements and none of them fix the inherent problems with the whole system. Any replacement needs to be completely modular, consistent, and without the arbitrary, almost random restrictions of the current model (why CAN’T you have a status element in the header for the whole report?). Modules need to be decoupled; none of these massive trees of schemas for each message. Vocab and schema structures need to be simplified and streamlined. All possible vocabulary should be included with the XML schemas for each module (or at least links to all the lookups), and the modules should be packaged separately (although a basic set can be package together as a “quick start”). I know, you’ll probably say FHIR is all this, but have you had non healthcare information designers look at it? You know, database designers. Business intelligence experts. Those folks. What did they say?
I am an “Implementer” and could not agree more with everything in Grahame’s post.
HL7 v3 (and by extension CCD/CDA) is overly complex, unintuitive and seems bent on maintaining an abstract data structure at the expense solving real world problems easily and quickly.
The incredible paucity of example CDA example documents from HL7 seems to indicate that even the standards developers have a hard time generating CDA documents.
Although I would hate to have to redo all the CCD/CDA development work we have already done, it seems like the best way to proceed if we can get something that is a better solution for the long term. I have very limited exposure to FHIR, but maybe this is what we have been waiting for.