Thursday, April 28, 2011

XLST is a fine tool for Comparing CDA Schematrons used by the sIframework

One of the challenges with the CDA consolidation project is how difficult it is to compare the old against the new. I've just finished the first half of a tool that should make this easier.  I developed it using XSLT, existing schematrons for the CCD and C32, and a drafty schematron that is generated from the Template Database tool and which was generously provided by the Lantana Group.

Results can be downloaded from the SI Framework website.  The spreadsheet has 9 columns.  The middle column is what makes it cool.  It contains, as best as I was able to determine using some pretty rough heuristics, what CDA element or attribute was being constrained.  The left hand and right hand sides are different sides of the mirror.  On the left is the new, on the right the old. 

Templates are sorted alphabetically by the new template name, and also show the LOINC code for the section.

The first column for each section shows the context used for any of the tests (this is rule/@context in the schematron). 

The second column indicates the level of error reporting/testing detail.  An E in this column indicates that the failure is an error, a W indicates that it is a warning.  M indicates that manual testing is required.

The third column is the XPath assertion that must be true.  The assertions on the left hand side are part of an incomplete schematron generated by the Template Database.  These schematrons need manual tweaking before they really work.  On the right hand side, they come from the NIST C32 Validator and HL7 CCD (These two together SHOULD include all necessary rules.  The downloadable NIST validator rule set does NOT include the CCD rules in the schematrons).

The fourth column provides the narrative detail on what that Schematron is trying to do.

So, now you can start comparing sections to see what is different, while I'm working on the entries tomorrow.

Signup for this ballot closes on Monday, and voting on May 9th.

After having completed this part of the effort, I'm getting a new feel for the template meta model that I was griping about yesterday.


Post a Comment