November 14, 2013

Example QRDA Category 3 XML for Meaningful Use Stage 2 Clinical Quality Measure Reporting

I have been preparing to lead a summit in D.C. tomorrow to discuss versioning of the various Meaningful Use Clinical Quality Measure (CQM) standards.  During final preparation for the summit, I have been digging into the QRDA Category 3 XML specification.  As I detailed a few months ago, the QRDA Category 3 XML is used for reporting aggregate data for reporting CQMs.  The more that I go spelunking into the QRDA Category 3 standard, the more I understand the complexities associated with it.  I am hoping that providing an example QRDA Category 3 XML will be helpful to the broader community.

Detailed below is a (verbose) example QRDA Category 3 XML file for expressing the Meaningful Use Stage 2 Clinical Quality Measure for expressing the results for "NQF 0018 Controlling High Blood Pressure".  Assume that this CQM is being considered against a population of patients that would generate aggregate section results that would look like this:
  • Initial Patient Population (IPP): 3
  • Denominator: 3
  • Numerator: 1
  • Exceptions: 1
  • Exclusions: 0
Additionally, Electronic Health Record (EHR) systems are required to report on the supplemental data for sex, ethnicity, race and payer.  So for this data set, assume that there are two males that meet the IPP and only one female.  Then, assume only one of the males meets the numerator requirement.  For simplicity, assume that we do not have any information on race, ethnicity, or payers… so assume "unknown" for all the patients on those dimensions.

Scrolling below, I enumerate a valid example QRDA Category 3 XML file and the sections used to report the aggregate results via CQM QRDA Category 3.  I highlighting the aggregate section results with a yellow background, and the supplemental data with a violet background.

Similar to the QRDA Category 1, it is really difficult to understand why there is so much XML bloat here.  For expressing the CQM results I enumerated after the third paragraph of this blog entry, it takes 679 lines of XML to express these results in the QRDA Category 3!  It is a real struggle to attempt to explain why so much verbose XML is needed to convey such little aggregate information.

With a more detailed understanding of the QRDA Category 3 specification, I think it is finally time to seriously question the ongoing use of the HL7 Clinical Document Architecture (CDA) and the HL7 Reference Implementation Model (RIM) for expressing any type of healthcare data in XML.  While I appreciate what the leaders at HL7 are attempting to do, the QRDA Category 3 XML bloat is probably the best (worst?) example I have seen to support use of a simpler and less complex standard that deviates from the CDA and RIM.

Steve Jobs quote that needs to be considered here “Simple can be harder than complex.  You have to work hard to get your thinking clean to make it simple. But it’s worth it in the end because once you get there, you can move mountains.”  See the evidence of the need for this type of change below:

<?xml version="1.0" encoding="utf-8"?>
<ClinicalDocument xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xmlns="urn:hl7-org:v3" xmlns:cda="urn:hl7-org:v3">
<realmCode code="US"/>
<typeId root="2.16.840.1.113883.1.3" extension="POCD_HD000040"/>
<templateId root="2.16.840.1.113883.10.20.27.1.1"/>
<id root="9c9762c0-2ac3-0131-4e2f-0050560100a9"/>
<code code="55184-6" codeSystem="2.16.840.1.113883.6.1"
 codeSystemName="LOINC"
 displayName="QRDA Category 3 Summary Report"/>
<title>QRDA Category 3 Calculated Summary Report</title>
<effectiveTime value="20131108164909"/>
<confidentialityCode codeSystem="2.16.840.1.113883.5.25" code="N"/>
<languageCode code="en-US"/>
<versionNumber value="1"/>
<recordTarget>
  <patientRole>
    <id nullFlavor="NA"/>
  </patientRole>
</recordTarget>
<author>
  <time value="20131108164909"/>
  <assignedAuthor>
    <id extension="Foo" root="Bar"/>
    <assignedAuthoringDevice>
      <softwareName/>
    </assignedAuthoringDevice>
    <representedOrganization>
      <id root="root" extension="ext"/>
      <name/>
    </representedOrganization>
  </assignedAuthor>
</author>
<custodian>
  <assignedCustodian>
    <representedCustodianOrganization>
      <id root="root"/>
      <name>Some Custodian Name</name>
    </representedCustodianOrganization>
  </assignedCustodian>
</custodian>
<legalAuthenticator>
  <time value="20131108164909"/>
  <signatureCode code="S"/>
  <assignedEntity>
    <id root="root"/>
    <representedOrganization>
      <id root="root"/>
    </representedOrganization>
  </assignedEntity>
</legalAuthenticator>
<component>
  <structuredBody>
    <component>
      <section>
        <templateId root="2.16.840.1.113883.10.20.17.2.1"/>
        <templateId root="2.16.840.1.113883.10.20.27.2.2"/>
        <code code="55187-9" codeSystem="2.16.840.1.113883.6.1"/>
        <title>Reporting Parameters</title>
        <text>
          <list>
            <item>Reporting period Dec 31 2011 - 
                  Dec 31 2012</item>
          </list>
        </text>
        <entry typeCode="DRIV">
          <act classCode="ACT" moodCode="EVN">
            <templateId root="2.16.840.1.113883.10.20.17.3.8"/>
            <code code="252116004"
             codeSystem="2.16.840.1.113883.6.96"
             displayName="Observation Parameters"/>
            <effectiveTime>
              <low value="20111231120000"/>
              <high value="20121231120000"/>
            </effectiveTime>
          </act>
        </entry>
      </section>
    </component>
    <component>
      <section>
        <templateId root="2.16.840.1.113883.10.20.24.2.2"/>
        <templateId root="2.16.840.1.113883.10.20.27.2.1"/>
        <code code="55186-1" codeSystem="2.16.840.1.113883.6.1"/>
        <title>Measure Section</title>
        <text></text>
        <entry>
          <organizer classCode="CLUSTER" moodCode="EVN">
            <templateId root="2.16.840.1.113883.10.20.24.3.98"/>
            <templateId root="2.16.840.1.113883.10.20.27.3.1"/>
            <statusCode code="completed"/>
            <reference typeCode="REFR">
              <externalDocument classCode="DOC" moodCode="EVN">
                <id root="40280381-3D61-56A7-013E-66BC02DA4DEE"/>
                <text>Controlling High Blood Pressure</text>
                <setId
                 root="ABDC37CC-BAC6-4156-9B91-D1BE2C8B7268"/>
                <versionNumber value="1"/>
              </externalDocument>
            </reference>
            <component>
              <observation classCode="OBS" moodCode="EVN">
                <templateId
                 root="2.16.840.1.113883.10.20.27.3.14"/>
                <code code="72510-1"
                 codeSystem="2.16.840.1.113883.6.1"
                 displayName="Performance Rate"
                 codeSystemName="2.16.840.1.113883.6.1"/>
                <statusCode code="completed"/>
                <value xsi:type="REAL" value="0.5"/>
                <reference typeCode="REFR">
                  <externalObservation classCode="OBS" 
                   moodCode="EVN">
                    <id 
                     root="5EE417A9-32DB-452F-BAA0-74C5831A4457"/>
                    <code code="NUMER" displayName="Numerator"
                     codeSystem="2.16.840.1.113883.5.1063"
                     codeSystemName="ObservationValue"/>
                  </externalObservation>
                </reference>
              </observation>
            </component>
            <component>
              <!-- DATA FOR IPP B936D6B5-151F-47FB-97D8-A5AB9AB00656 -->
              <observation classCode="OBS" moodCode="EVN">
                <templateId root="2.16.840.1.113883.10.20.27.3.5"/>
                <code code="ASSERTION" codeSystem="2.16.840.1.113883.5.4"
                 displayName="Assertion" codeSystemName="ActCode"/>
                <statusCode code="completed"/>
                <value xsi:type="CD" code="IPP"
                 codeSystem="2.16.840.1.113883.5.1063"
                 codeSystemName="ObservationValue"/>
                <entryRelationship typeCode="SUBJ" inversionInd="true">
                  <observation classCode="OBS" moodCode="EVN">
                    <templateId root="2.16.840.1.113883.10.20.27.3.3"/>
                      <code code="MSRAGG" displayName="rate aggregation"
                       codeSystem="2.16.840.1.113883.5.4"
                       codeSystemName="ActCode"/>
                      <value xsi:type="INT" value="3"/>
                      <methodCode code="COUNT" displayName="Count"
                       codeSystem="2.16.840.1.113883.5.84"
                       codeSystemName="ObservationMethod"/>
                  </observation>
                </entryRelationship>
                <!-- SEX Supplemental Data for IPP
                     B936D6B5-151F-47FB-97D8-A5AB9AB00656 -->
                <entryRelationship typeCode="COMP">
                  <observation classCode="OBS" moodCode="EVN">
                    <templateId
                root="2.16.840.1.113883.10.20.27.3.6"/>
                    <id nullFlavor="NA"/>
                    <code code="184100006"
                     codeSystem="2.16.840.1.113883.6.96"/>
                    <statusCode code="completed"/>
                    <value xsi:type="CD" code="F"
                     codeSystem="2.16.840.1.113883.5.1"/>
                    <entryRelationship typeCode="SUBJ"
                     inversionInd="true">
                      <observation classCode="OBS" moodCode="EVN">
                        <templateId root="2.16.840.1.113883.10.20.27.3.3"/>
                        <code code="MSRAGG" displayName="rate aggregation"
                         codeSystem="2.16.840.1.113883.5.4"
                         codeSystemName="ActCode"/>
                        <value xsi:type="INT" value="1"/>
                        <methodCode code="COUNT" displayName="Count"
                         codeSystem="2.16.840.1.113883.5.84"
                         codeSystemName="ObservationMethod"/>
                      </observation>
                    </entryRelationship>
                  </observation>
                </entryRelationship>
                <!-- SEX Supplemental Data Reporting for IPP
                     B936D6B5-151F-47FB-97D8-A5AB9AB00656 -->
                <entryRelationship typeCode="COMP">
                  <observation classCode="OBS" moodCode="EVN">
                    <templateId root="2.16.840.1.113883.10.20.27.3.6"/>
                    <id nullFlavor="NA"/>
                    <code code="184100006"
                     codeSystem="2.16.840.1.113883.6.96"/>
                    <statusCode code="completed"/>
                    <value xsi:type="CD" code="M"
                     codeSystem="2.16.840.1.113883.5.1"/>
                    <entryRelationship typeCode="SUBJ" inversionInd="true">
                      <observation classCode="OBS" moodCode="EVN">
                        <templateId root="2.16.840.1.113883.10.20.27.3.3"/>
                        <code code="MSRAGG" displayName="rate aggregation"
                         codeSystem="2.16.840.1.113883.5.4"
                         codeSystemName="ActCode"/>
                        <value xsi:type="INT" value="2"/>
                        <methodCode code="COUNT" displayName="Count"
                         codeSystem="2.16.840.1.113883.5.84"
                         codeSystemName="ObservationMethod"/>
                      </observation>
                    </entryRelationship>
                  </observation>
                </entryRelationship>
                <!-- ETHNICITY Supplemental Data Reporting for IPP
                     B936D6B5-151F-47FB-97D8-A5AB9AB00656 -->
                <entryRelationship typeCode="COMP">
                  <observation classCode="OBS" moodCode="EVN">
                    <templateId root="2.16.840.1.113883.10.20.27.3.7"/>
                    <id nullFlavor="NA"/>
                    <code code="364699009"
                     codeSystem="2.16.840.1.113883.6.96"/>
                    <statusCode code="completed"/>
                    <value xsi:type="CD" nullFlavor="UNK"/>
                    <entryRelationship typeCode="SUBJ" inversionInd="true">
                      <observation classCode="OBS" moodCode="EVN">
                        <templateId root="2.16.840.1.113883.10.20.27.3.3"/>
                        <code code="MSRAGG" displayName="rate aggregation"
                         codeSystem="2.16.840.1.113883.5.4"
                         codeSystemName="ActCode"/>
                        <value xsi:type="INT" value="3"/>
                        <methodCode code="COUNT" displayName="Count"
                         codeSystem="2.16.840.1.113883.5.84"
                         codeSystemName="ObservationMethod"/>
                      </observation>
                    </entryRelationship>
                  </observation>
                </entryRelationship>
                <!-- RACE Supplemental Data Reporting for IPP
                     B936D6B5-151F-47FB-97D8-A5AB9AB00656 -->
                <entryRelationship typeCode="COMP">
                  <observation classCode="OBS" moodCode="EVN">
                    <templateId root="2.16.840.1.113883.10.20.27.3.8"/>
                    <id nullFlavor="NA"/>
                    <code code="103579009"
                     codeSystem="2.16.840.1.113883.6.96"/>
                    <statusCode code="completed"/>
                    <value xsi:type="CD" nullFlavor="UNK"/>
                    <entryRelationship typeCode="SUBJ" inversionInd="true">
                      <observation classCode="OBS" moodCode="EVN">
                        <templateId root="2.16.840.1.113883.10.20.27.3.3"/>
                        <code code="MSRAGG" displayName="rate aggregation"
                         codeSystem="2.16.840.1.113883.5.4"
                         codeSystemName="ActCode"/>
                        <value xsi:type="INT" value="3"/>
                        <methodCode code="COUNT" displayName="Count"
                         codeSystem="2.16.840.1.113883.5.84"
                         codeSystemName="ObservationMethod"/>
                      </observation>
                    </entryRelationship>
                  </observation>
                </entryRelationship>
                <!-- PAYER Supplemental Data Reporting for IPP
                     B936D6B5-151F-47FB-97D8-A5AB9AB00656 -->
                <entryRelationship typeCode="COMP">
                  <observation classCode="OBS" moodCode="EVN">
                    <templateId root="2.16.840.1.113883.10.20.27.3.9"/>
                    <id nullFlavor="NA"/>
                    <code code="48768-6" codeSystem="2.16.840.1.113883.6.1"/>
                    <statusCode code="completed"/>
                    <value xsi:type="CD" nullFlavor="UNK"/>
                    <entryRelationship typeCode="SUBJ" inversionInd="true">
                      <observation classCode="OBS" moodCode="EVN">
                        <templateId root="2.16.840.1.113883.10.20.27.3.3"/>
                        <code code="MSRAGG" displayName="rate aggregation"
                         codeSystem="2.16.840.1.113883.5.4"
                         codeSystemName="ActCode"/>
                        <value xsi:type="INT" value="3"/>
                        <methodCode code="COUNT" displayName="Count"
                         codeSystem="2.16.840.1.113883.5.84"
                         codeSystemName="ObservationMethod"/>
                      </observation>
                    </entryRelationship>
                  </observation>
                </entryRelationship>
                <reference typeCode="REFR">
                  <externalObservation classCode="OBS" moodCode="EVN">
                    <id root="B936D6B5-151F-47FB-97D8-A5AB9AB00656"/>
                  </externalObservation>
                </reference>
              </observation>
            </component>
            <component>
              <!-- MEASURE DATA REPORTING FOR DENOM
                   2A53CBF0-510A-429D-814D-CBCA4DC0E2A8 -->
              <observation classCode="OBS" moodCode="EVN">
                <templateId root="2.16.840.1.113883.10.20.27.3.5"/>
                <code code="ASSERTION" codeSystem="2.16.840.1.113883.5.4"
                 displayName="Assertion" codeSystemName="ActCode"/>
                <statusCode code="completed"/>
                <value xsi:type="CD" code="DENOM"
                 codeSystem="2.16.840.1.113883.5.1063"
                 codeSystemName="ObservationValue"/>
                <entryRelationship typeCode="SUBJ" inversionInd="true">
                  <observation classCode="OBS" moodCode="EVN">
                    <templateId root="2.16.840.1.113883.10.20.27.3.3"/>
                    <code code="MSRAGG" displayName="rate aggregation"
                     codeSystem="2.16.840.1.113883.5.4"
                     codeSystemName="ActCode"/>
                    <value xsi:type="INT" value="3"/>
                    <methodCode code="COUNT" displayName="Count"
                     codeSystem="2.16.840.1.113883.5.84"
                     codeSystemName="ObservationMethod"/>
                  </observation>
                </entryRelationship>
                <!-- SEX Supplemental Data Reporting for DENOM
                     2A53CBF0-510A-429D-814D-CBCA4DC0E2A8 -->
                <entryRelationship typeCode="COMP">
                  <observation classCode="OBS" moodCode="EVN">
                    <templateId root="2.16.840.1.113883.10.20.27.3.6"/>
                    <id nullFlavor="NA"/>
                    <code code="184100006"
                     codeSystem="2.16.840.1.113883.6.96"/>
                    <statusCode code="completed"/>
                    <value xsi:type="CD" code="F"
                     codeSystem="2.16.840.1.113883.5.1"/>
                    <entryRelationship typeCode="SUBJ" inversionInd="true">
                      <observation classCode="OBS" moodCode="EVN">
                        <templateId root="2.16.840.1.113883.10.20.27.3.3"/>
                        <code code="MSRAGG" displayName="rate aggregation"
                         codeSystem="2.16.840.1.113883.5.4"
                         codeSystemName="ActCode"/>
                        <value xsi:type="INT" value="1"/>
                        <methodCode code="COUNT" displayName="Count"
                         codeSystem="2.16.840.1.113883.5.84"
                         codeSystemName="ObservationMethod"/>
                      </observation>
                    </entryRelationship>
                  </observation>
                </entryRelationship>
                <!-- SEX Supplemental Data Reporting for DENOM
                     2A53CBF0-510A-429D-814D-CBCA4DC0E2A8 -->
                <entryRelationship typeCode="COMP">
                  <observation classCode="OBS" moodCode="EVN">
                    <templateId root="2.16.840.1.113883.10.20.27.3.6"/>
                    <id nullFlavor="NA"/>
                    <code code="184100006"
                     codeSystem="2.16.840.1.113883.6.96"/>
                    <statusCode code="completed"/>
                    <value xsi:type="CD" code="M"
                     codeSystem="2.16.840.1.113883.5.1"/>
                    <entryRelationship typeCode="SUBJ" inversionInd="true">
                      <observation classCode="OBS" moodCode="EVN">
                        <templateId root="2.16.840.1.113883.10.20.27.3.3"/>
                        <code code="MSRAGG" displayName="rate aggregation"
                         codeSystem="2.16.840.1.113883.5.4"
                         codeSystemName="ActCode"/>
                        <value xsi:type="INT" value="2"/>
                        <methodCode code="COUNT" displayName="Count"
                         codeSystem="2.16.840.1.113883.5.84"
                         codeSystemName="ObservationMethod"/>
                      </observation>
                    </entryRelationship>
                  </observation>
                </entryRelationship>
                <!-- ETHNICITY Supplemental Data Reporting for DENOM
                     2A53CBF0-510A-429D-814D-CBCA4DC0E2A8 -->
                <entryRelationship typeCode="COMP">
                  <observation classCode="OBS" moodCode="EVN">
                    <templateId root="2.16.840.1.113883.10.20.27.3.7"/>
                    <id nullFlavor="NA"/>
                    <code code="364699009"
                     codeSystem="2.16.840.1.113883.6.96"/>
                    <statusCode code="completed"/>
                    <value xsi:type="CD" nullFlavor="UNK"/>
                    <entryRelationship typeCode="SUBJ" inversionInd="true">
                      <observation classCode="OBS" moodCode="EVN">
                        <templateId root="2.16.840.1.113883.10.20.27.3.3"/>
                        <code code="MSRAGG" displayName="rate aggregation"
                         codeSystem="2.16.840.1.113883.5.4"
                         codeSystemName="ActCode"/>
                        <value xsi:type="INT" value="3"/>
                        <methodCode code="COUNT" displayName="Count"
                         codeSystem="2.16.840.1.113883.5.84"
                         codeSystemName="ObservationMethod"/>
                      </observation>
                    </entryRelationship>
                  </observation>
                </entryRelationship>
                <!-- RACE Supplemental Data Reporting for DENOM
                     2A53CBF0-510A-429D-814D-CBCA4DC0E2A8 -->
                <entryRelationship typeCode="COMP">
                  <observation classCode="OBS" moodCode="EVN">
                    <templateId root="2.16.840.1.113883.10.20.27.3.8"/>
                    <id nullFlavor="NA"/>
                    <code code="103579009"
                     codeSystem="2.16.840.1.113883.6.96"/>
                    <statusCode code="completed"/>
                    <value xsi:type="CD" nullFlavor="UNK"/>
                    <entryRelationship typeCode="SUBJ" inversionInd="true">
                      <observation classCode="OBS" moodCode="EVN">
                        <templateId root="2.16.840.1.113883.10.20.27.3.3"/>
                        <code code="MSRAGG" displayName="rate aggregation"
                         codeSystem="2.16.840.1.113883.5.4"
                         codeSystemName="ActCode"/>
                        <value xsi:type="INT" value="3"/>
                        <methodCode code="COUNT" displayName="Count"
                         codeSystem="2.16.840.1.113883.5.84"
                         codeSystemName="ObservationMethod"/>
                      </observation>
                    </entryRelationship>
                  </observation>
                </entryRelationship>
                <!-- PAYER Supplemental Data for DENOM
                     2A53CBF0-510A-429D-814D-CBCA4DC0E2A8 -->
                <entryRelationship typeCode="COMP">
                  <observation classCode="OBS" moodCode="EVN">
                    <templateId root="2.16.840.1.113883.10.20.27.3.9"/>
                    <id nullFlavor="NA"/>
                    <code code="48768-6" codeSystem="2.16.840.1.113883.6.1"/>
                    <statusCode code="completed"/>
                    <value xsi:type="CD" nullFlavor="UNK"/>
                    <entryRelationship typeCode="SUBJ" inversionInd="true">
                      <observation classCode="OBS" moodCode="EVN">
                        <templateId root="2.16.840.1.113883.10.20.27.3.3"/>
                        <code code="MSRAGG" displayName="rate aggregation"
                         codeSystem="2.16.840.1.113883.5.4"
                         codeSystemName="ActCode"/>
                        <value xsi:type="INT" value="3"/>
                        <methodCode code="COUNT" displayName="Count"
                         codeSystem="2.16.840.1.113883.5.84"
                         codeSystemName="ObservationMethod"/>
                      </observation>
                    </entryRelationship>
                  </observation>
                </entryRelationship>
                <reference typeCode="REFR">
                  <externalObservation classCode="OBS" moodCode="EVN">
                    <id root="2A53CBF0-510A-429D-814D-CBCA4DC0E2A8"/>
                  </externalObservation>
                </reference>
              </observation>
            </component>
            <component>
              <!-- MEASURE DATA FOR NUMER
                   5EE417A9-32DB-452F-BAA0-74C5831A4457 -->
              <observation classCode="OBS" moodCode="EVN">
                <templateId root="2.16.840.1.113883.10.20.27.3.5"/>
                <code code="ASSERTION" codeSystem="2.16.840.1.113883.5.4"
                 displayName="Assertion" codeSystemName="ActCode"/>
                <statusCode code="completed"/>
                <value xsi:type="CD" code="NUMER"
                 codeSystem="2.16.840.1.113883.5.1063"
                 codeSystemName="ObservationValue"/>
                <entryRelationship typeCode="SUBJ" inversionInd="true">
                  <observation classCode="OBS" moodCode="EVN">
                    <templateId root="2.16.840.1.113883.10.20.27.3.3"/>
                    <code code="MSRAGG" displayName="rate aggregation"
                     codeSystem="2.16.840.1.113883.5.4"
                     codeSystemName="ActCode"/>
                    <value xsi:type="INT" value="1"/>
                    <methodCode code="COUNT" displayName="Count"
                     codeSystem="2.16.840.1.113883.5.84"
                     codeSystemName="ObservationMethod"/>
                  </observation>
                </entryRelationship>
                <!-- SEX Supplemental Data for NUMER
                     5EE417A9-32DB-452F-BAA0-74C5831A4457 -->
                <entryRelationship typeCode="COMP">
                  <observation classCode="OBS" moodCode="EVN">
                    <templateId root="2.16.840.1.113883.10.20.27.3.6"/>
                    <id nullFlavor="NA"/>
                    <code code="184100006"
                     codeSystem="2.16.840.1.113883.6.96"/>
                    <statusCode code="completed"/>
                    <value xsi:type="CD" code="M"
                     codeSystem="2.16.840.1.113883.5.1"/>
                    <entryRelationship typeCode="SUBJ" inversionInd="true">
                      <observation classCode="OBS" moodCode="EVN">
                        <templateId root="2.16.840.1.113883.10.20.27.3.3"/>
                        <code code="MSRAGG" displayName="rate aggregation"
                         codeSystem="2.16.840.1.113883.5.4"
                         codeSystemName="ActCode"/>
                        <value xsi:type="INT" value="1"/>
                        <methodCode code="COUNT" displayName="Count"
                         codeSystem="2.16.840.1.113883.5.84"
                         codeSystemName="ObservationMethod"/>
                      </observation>
                    </entryRelationship>
                  </observation>
                </entryRelationship>
                <!-- ETHNICITY Supplemental Data for NUMER
                     5EE417A9-32DB-452F-BAA0-74C5831A4457 -->
                <entryRelationship typeCode="COMP">
                  <observation classCode="OBS" moodCode="EVN">
                    <templateId root="2.16.840.1.113883.10.20.27.3.7"/>
                    <id nullFlavor="NA"/>
                    <code code="364699009"
                     codeSystem="2.16.840.1.113883.6.96"/>
                    <statusCode code="completed"/>
                    <value xsi:type="CD" nullFlavor="UNK"/>
                    <entryRelationship typeCode="SUBJ" inversionInd="true">
                      <observation classCode="OBS" moodCode="EVN">
                        <templateId root="2.16.840.1.113883.10.20.27.3.3"/>
                        <code code="MSRAGG" displayName="rate aggregation"
                         codeSystem="2.16.840.1.113883.5.4"
                         codeSystemName="ActCode"/>
                        <value xsi:type="INT" value="1"/>
                        <methodCode code="COUNT" displayName="Count"
                         codeSystem="2.16.840.1.113883.5.84"
                         codeSystemName="ObservationMethod"/>
                      </observation>
                    </entryRelationship>
                  </observation>
                </entryRelationship>
                <!-- RACE Supplemental Data for NUMER
                     5EE417A9-32DB-452F-BAA0-74C5831A4457 -->
                <entryRelationship typeCode="COMP">
                  <observation classCode="OBS" moodCode="EVN">
                    <templateId root="2.16.840.1.113883.10.20.27.3.8"/>
                    <id nullFlavor="NA"/>
                    <code code="103579009"
                     codeSystem="2.16.840.1.113883.6.96"/>
                    <statusCode code="completed"/>
                    <value xsi:type="CD" nullFlavor="UNK"/>
                    <entryRelationship typeCode="SUBJ" inversionInd="true">
                      <observation classCode="OBS" moodCode="EVN">
                        <templateId root="2.16.840.1.113883.10.20.27.3.3"/>
                        <code code="MSRAGG" displayName="rate aggregation"
                         codeSystem="2.16.840.1.113883.5.4"
                         codeSystemName="ActCode"/>
                        <value xsi:type="INT" value="1"/>
                        <methodCode code="COUNT" displayName="Count"
                         codeSystem="2.16.840.1.113883.5.84"
                         codeSystemName="ObservationMethod"/>
                      </observation>
                    </entryRelationship>
                  </observation>
                </entryRelationship>
                <!-- PAYER Supplemental Data for NUMER
                     5EE417A9-32DB-452F-BAA0-74C5831A4457 -->
                <entryRelationship typeCode="COMP">
                  <observation classCode="OBS" moodCode="EVN">
                    <templateId root="2.16.840.1.113883.10.20.27.3.9"/>
                    <id nullFlavor="NA"/>
                    <code code="48768-6" codeSystem="2.16.840.1.113883.6.1"/>
                    <statusCode code="completed"/>
                    <value xsi:type="CD" nullFlavor="UNK"/>
                    <entryRelationship typeCode="SUBJ" inversionInd="true">
                      <observation classCode="OBS" moodCode="EVN">
                        <templateId root="2.16.840.1.113883.10.20.27.3.3"/>
                        <code code="MSRAGG" displayName="rate aggregation"
                         codeSystem="2.16.840.1.113883.5.4"
                         codeSystemName="ActCode"/>
                        <value xsi:type="INT" value="1"/>
                        <methodCode code="COUNT" displayName="Count"
                         codeSystem="2.16.840.1.113883.5.84"
                         codeSystemName="ObservationMethod"/>
                      </observation>
                    </entryRelationship>
                  </observation>
                </entryRelationship>
                <reference typeCode="REFR">
                    <externalObservation classCode="OBS" moodCode="EVN">
                        <id root="5EE417A9-32DB-452F-BAA0-74C5831A4457"/>
                    </externalObservation>
                </reference>
              </observation>
            </component>
            <component>
              <!-- MEASURE DATA REPORTING FOR DENEX
                   57F3D1D7-F9FA-437F-A2B9-406A1498E8C0 -->
              <observation classCode="OBS" moodCode="EVN">
                <templateId root="2.16.840.1.113883.10.20.27.3.5"/>
                <code code="ASSERTION" codeSystem="2.16.840.1.113883.5.4"
                 displayName="Assertion" codeSystemName="ActCode"/>
                <statusCode code="completed"/>
                <value xsi:type="CD" code="DENEX"
                 codeSystem="2.16.840.1.113883.5.1063"
                 codeSystemName="ObservationValue"/>
                <entryRelationship typeCode="SUBJ" inversionInd="true">
                  <observation classCode="OBS" moodCode="EVN">
                    <templateId root="2.16.840.1.113883.10.20.27.3.3"/>
                    <code code="MSRAGG" displayName="rate aggregation"
                     codeSystem="2.16.840.1.113883.5.4"
                     codeSystemName="ActCode"/>
                    <value xsi:type="INT" value="1"/>
                    <methodCode code="COUNT" displayName="Count"
                     codeSystem="2.16.840.1.113883.5.84"
                     codeSystemName="ObservationMethod"/>
                  </observation>
                </entryRelationship>
                <!-- SEX Supplemental Data Reporting for DENEX
                     57F3D1D7-F9FA-437F-A2B9-406A1498E8C0 -->
                <entryRelationship typeCode="COMP">
                  <observation classCode="OBS" moodCode="EVN">
                    <templateId root="2.16.840.1.113883.10.20.27.3.6"/>
                    <id nullFlavor="NA"/>
                    <code code="184100006"
                     codeSystem="2.16.840.1.113883.6.96"/>
                    <statusCode code="completed"/>
                    <value xsi:type="CD" code="F"
                     codeSystem="2.16.840.1.113883.5.1"/>
                    <entryRelationship typeCode="SUBJ" inversionInd="true">
                      <observation classCode="OBS" moodCode="EVN">
                        <templateId root="2.16.840.1.113883.10.20.27.3.3"/>
                        <code code="MSRAGG" displayName="rate aggregation"
                         codeSystem="2.16.840.1.113883.5.4"
                         codeSystemName="ActCode"/>
                        <value xsi:type="INT" value="1"/>
                        <methodCode code="COUNT" displayName="Count"
                         codeSystem="2.16.840.1.113883.5.84"
                         codeSystemName="ObservationMethod"/>
                      </observation>
                    </entryRelationship>
                  </observation>
                </entryRelationship>
                <!-- ETHNICITY Supplemental Data Reporting for
                     DENEX 57F3D1D7-F9FA-437F-A2B9-406A1498E8C0 -->
                <entryRelationship typeCode="COMP">
                  <observation classCode="OBS" moodCode="EVN">
                    <templateId root="2.16.840.1.113883.10.20.27.3.7"/>
                    <id nullFlavor="NA"/>
                    <code code="364699009"
                     codeSystem="2.16.840.1.113883.6.96"/>
                    <statusCode code="completed"/>
                    <value xsi:type="CD" nullFlavor="UNK"/>
                    <entryRelationship typeCode="SUBJ" inversionInd="true">
                      <observation classCode="OBS" moodCode="EVN">
                        <templateId root="2.16.840.1.113883.10.20.27.3.3"/>
                        <code code="MSRAGG" displayName="rate aggregation"
                         codeSystem="2.16.840.1.113883.5.4"
                         codeSystemName="ActCode"/>
                        <value xsi:type="INT" value="1"/>
                        <methodCode code="COUNT" displayName="Count"
                         codeSystem="2.16.840.1.113883.5.84"
                         codeSystemName="ObservationMethod"/>
                      </observation>
                    </entryRelationship>
                  </observation>
                </entryRelationship>
                <!-- RACE Supplemental Data for DENEX
                     57F3D1D7-F9FA-437F-A2B9-406A1498E8C0 -->
                <entryRelationship typeCode="COMP">
                  <observation classCode="OBS" moodCode="EVN">=
                    <templateId root="2.16.840.1.113883.10.20.27.3.8"/>
                    <id nullFlavor="NA"/>
                    <code code="103579009"
                     codeSystem="2.16.840.1.113883.6.96"/>
                    <statusCode code="completed"/>
                    <value xsi:type="CD" nullFlavor="UNK"/>
                    <entryRelationship typeCode="SUBJ" inversionInd="true">
                      <observation classCode="OBS" moodCode="EVN">
                        <templateId root="2.16.840.1.113883.10.20.27.3.3"/>
                        <code code="MSRAGG" displayName="rate aggregation"
                         codeSystem="2.16.840.1.113883.5.4"
                         codeSystemName="ActCode"/>
                        <value xsi:type="INT" value="1"/>
                        <methodCode code="COUNT" displayName="Count"
                         codeSystem="2.16.840.1.113883.5.84"
                         codeSystemName="ObservationMethod"/>
                      </observation>
                    </entryRelationship>
                  </observation>
                </entryRelationship>
                <!-- PAYER Supplemental Data for DENEX
                     57F3D1D7-F9FA-437F-A2B9-406A1498E8C0 -->
                <entryRelationship typeCode="COMP">
                  <observation classCode="OBS" moodCode="EVN">
                    <templateId root="2.16.840.1.113883.10.20.27.3.9"/>
                    <id nullFlavor="NA"/>
                    <code code="48768-6" codeSystem="2.16.840.1.113883.6.1"/>
                    <statusCode code="completed"/>
                    <value xsi:type="CD" nullFlavor="UNK"/>
                    <entryRelationship typeCode="SUBJ" inversionInd="true">
                      <observation classCode="OBS" moodCode="EVN">
                        <templateId root="2.16.840.1.113883.10.20.27.3.3"/>
                        <code code="MSRAGG" displayName="rate aggregation"
                         codeSystem="2.16.840.1.113883.5.4"
                         codeSystemName="ActCode"/>
                        <value xsi:type="INT" value="1"/>
                        <methodCode code="COUNT" displayName="Count"
                         codeSystem="2.16.840.1.113883.5.84"
                         codeSystemName="ObservationMethod"/>
                      </observation>
                    </entryRelationship>
                  </observation>
                </entryRelationship>
                <reference typeCode="REFR">
                  <externalObservation classCode="OBS" moodCode="EVN">
                    <id root="57F3D1D7-F9FA-437F-A2B9-406A1498E8C0"/>
                  </externalObservation>
                </reference>
              </observation>
            </component>
          </organizer>
        </entry>
      </section>
    </component>
  </structuredBody>
</component>
</ClinicalDocument> 

This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License. © Rob McCready, 2013.
Creative Commons License

19 comments:

  1. Hi Rob

    Thanks for nice explanation on QRDA 3 .

    Where do we find the population id for example in sample qrda3 you posted IPP GUID is
    B936D6B5-151F-47FB-97D8-A5AB9AB00656 , is there any list availble anywhere which lists GUID for all NQF ?

    ReplyDelete
    Replies
    1. Well, the authoritative HQMF files are available from the CMS site here: http://www.cms.gov/Regulations-and-Guidance/Legislation/EHRIncentivePrograms/eCQM_Library.html

      They contain all the GUID values you need. I'm not aware of a simple webpage that enumerates them. But to answer your question about a list enumerating all the GUIDs, "not that I am aware of".

      I am tempted to put that list together here, but every time the CQMs change in the Measure Authoring Tool (MAT) the GUID values are all re-assigned.

      There are discussions underway to fix this, but I do not know when.

      Delete
    2. Hi Rob,

      Thanks for the post.

      In the Cypress test procedure we have the following requirements for which Cypress will validate the CQMs in QRDA Category III:

      "The Tester reviews the Cypress test details page (see Figure 16), which will
      display a dashboard of the denominator, numerator, and exclusions for each
      tested CQM."

      So out of the following Heads under CQM reporting which heads are a part of Cypress QRDA III validation:

      1) Initial Population --- Yes
      2) Denominator --- Yes
      3) Numerator --- Yes
      4) Denominator Exclusions ???
      5) Numerator Exclusions ???
      6) Exceptions ???

      Delete
    3. Avinash, you should just send your question about the Cypress test procedure to the Cypress email list talk@projectcypress.org. They will get back to you within one business day (ie. next Monday). I was the leader for the Cypress project, and while this is an easy question... I do not want to provide guidance around the ONC test procedure on my personal blog. Hope you understand.

      Delete
  2. Hi Rob,

    I am trying to validate a QRDA Category III document via the Cypress validation tool.
    The error I am receiving is:

    CMS131v2/0055 - Diabetes: Eye Exam: HQFM_ID: 40280381-3D61-56A7-013E-62237D5D24E1
    • expected supplemental data for IPP PAYER 349 value [4] does not match reported supplemental data value []
    • expected supplemental data for DENOM PAYER 349 value [4] does not match reported supplemental data value []
    • expected supplemental data for NUMER PAYER 349 value [2] does not match reported supplemental data value []

    Here is my xml for that section:

    -->

    I tried setting the count value to 4 and 2 for the respective values above.
    Would you happen to know or advise me as to why my document is creating this error.

    Thanks for your help,

    Rajesh

    ReplyDelete
    Replies
    1. The Cypress team has an email list where questions relating to testing and certification can be posed: http://projectcypress.org/faq.html#contact If you are having a Cypress-specific issue, I suggest you contact the team via the email lists they have provided.

      Delete
  3. Hi Rob,

    I am having problem in xml file of measures with reporting stratums. can you please provide a sample xml of any measure involving reporting stratum.

    ReplyDelete
    Replies
    1. Sorry. I was able to develop this QRDA Category 3 XML, but it took quite a bit of time.

      Delete
    2. The category 3 xml file (NQF0496) which comes with the QRDA HL7 implementation package 2012 is generating error in cypress testing tool.
      it seems that the format which cypress asks is different. Is it a problem with cypress tool or the file format is now changed

      Delete
    3. You should just send your question about the Cypress test procedure to the Cypress email list talk@projectcypress.org. They will get back to you within one business day.

      Delete
  4. Hi Rob,

    I have one question for you, I am working on developing of QRDA Category III document for below quality measure "Use of appropriate Medications for Asthma"

    But when i generate tests for that in cypress, i am getting 5 Reporting Stratum.
    RS : 5 - 64
    RS1: 5 - 11
    RS2: 12 - 18
    RS3: 19 - 50
    RS4: 51 - 64

    So how to consider this Reporting Stratum in developement of Category III doc, can you please help me with these one ?

    If you have QRDA III sample for this measure please provide.

    ReplyDelete
    Replies
    1. The Cypress team has an email list where questions relating to testing and certification can be posed: http://projectcypress.org/faq.html#contact If you are having a Cypress-specific issue with the QRDA Category 3 that you are uploading, I suggest you contact the team via the email lists they have.

      Delete
  5. Hi Rob, Great information here. Thanks.

    One question I have is about the Exception of 1. In the guide for 0018 it shows No Exceptions. Am I not understanding how exceptions work, or is it just an issue with your example?

    Brad

    ReplyDelete
  6. Hi Rob.

    Looking for some clarification when it comes to electronically submitting CQM results for MU Stage 2 CQM attestation:

    1) Are EPs and EHs able to just submit QRDA Cat 1 files, only QRDA cat 3 files, or must they submit both
    - It looks like EPs have the option and EHs must submit Cat 1 - can you verify?

    ReplyDelete
  7. Vinod Kumar SutharOctober 18, 2014 at 4:11 PM

    Hi Rob,

    Thanks for your valuable post.
    i am uploading my qrda result file in cypress, it gives me the following error: CMS65v3/HypertensionImprovement - Hypertension: Improvement in Blood Pressure: HQFM_ID: 40280381-3E93-D1AF-013E-A4CAFFEF4684

    Could not find entry for measure 40280381-3E93-D1AF-013E-A4CAFFEF4684 with the following population ids {"IPP"=>"AB6A281D-5384-4513-952E-822967D05266", "DENOM"=>"36BC9276-BC35-491C-A8C7-6E24E72CB3C1", "NUMER"=>"4A363CEA-5B8E-4A13-9EC7-E467E46FA5A1", "DENEX"=>"F3934210-6389-40BC-A330-80EF44850A9D"}

    Please suggest.

    ReplyDelete
    Replies
    1. This error can be caused by a number of issues. These issues include (but are not limited to) invalid document format, invalid template ids, incorrect/missing population identifiers, or incorrect stratification template ids. Please refer to the QRDA Cat III specification, sections 5.4, 5.5.1 and 5.12 for more information.

      Additionally, you can download the eCQM specifications from the following link:
      http://www.cms.gov/Regulations-and-Guidance/Legislation/EHRIncentivePrograms/eCQM_Library.html

      If you are using the wrong population ID, each CQM Specification has an XML part to it along with the HTML version. Within the XML version there is a section where these populations are defined. You need to check and ensure that they match.

      And yes... this is really dumb that you have to do all of this... but that is the way that the specification was designed. Again, I am not a fan of the QRDA Cat 3...

      Delete
    2. Hello Sir,

      As i am uploading the QRDA category 3 file in cypress for quality measure test.
      There is no XML warning.
      But it is getting the XML error as following:.


      4 files expected but was 1
      Records for patients ["MARIO GLOVER", "DONALD HAYES", "KYLE LYONS", "GABRIEL VALDEZ"] not found in archive as expected

      qrda3.xml
      Patient name ' ' declared in file not found in test records'

      I am not getting what exactly this tool required to meet the requirement.

      Please guide me.
      Thanks

      Delete
  8. Love it! Thank you so much for sharing this one really well defined all peaceful info regarding Health app,I Really like it,Love it-

    ReplyDelete