--- title: "ixml QRDA Appendix 2" slug: "ixml-qrda-iii" updated: 2025-11-19T00:20:07Z published: 2025-11-19T00:20:07Z canonical: "docs.imat.io/ixml-qrda-iii" --- > ## Documentation Index > Fetch the complete documentation index at: https://docs.imat.io/llms.txt > Use this file to discover all available pages before exploring further. # IXML QRDA III | POJO Classes | IXML Elements | | --- | --- | | [Address](/docs/ixml-qrda-iii#Address) | [<address>](/docs/ixml-qrda-iii#Address) | | [Ethnicity](/docs/ixml-qrda-iii#Ethnicity) | [<ethnicity>](/docs/ixml-qrda-iii#Ethnicity) | | [Gender](/docs/ixml-qrda-iii#Sex) | [<sex>](/docs/ixml-qrda-iii#Sex) | | [Measure](/docs/ixml-qrda-iii#Measure) | [<measure>](/docs/ixml-qrda-iii#Measure) | | [Participant](/docs/ixml-qrda-iii#Participant) | [<participant>](/docs/ixml-qrda-iii#Participant) | | [Payer](/docs/ixml-qrda-iii#Payer) | [<payer>](/docs/ixml-qrda-iii#Payer) | | [PerformerEntity](/docs/ixml-qrda-iii#PerformerEntity) | [<performerentity>](/docs/ixml-qrda-iii#PerformerEntity) | | [Race](/docs/ixml-qrda-iii#Race) | [<race>](/docs/ixml-qrda-iii#Race) | | [ReportingPeriod](/docs/ixml-qrda-iii#ReportingPeriod) | [<reportingperiod>](/docs/ixml-qrda-iii#ReportingPeriod) | | [Sex](/docs/ixml-qrda-iii#Sex) | [<sex>](/docs/ixml-qrda-iii#Sex) | | [Stratum](/docs/ixml-qrda-iii#Stratum) | [<stratum>](/docs/ixml-qrda-iii#Stratum) | | Population Inclusion POJOs: | | [Denex](/docs/ixml-qrda-iii#Denex) | [<denex>](/docs/ixml-qrda-iii#Denex) | | [Denexcep](/docs/ixml-qrda-iii#Denexcep) | [<denexcep>](/docs/ixml-qrda-iii#Denexcep) | | [Denom](/docs/ixml-qrda-iii#Denom) | [<denom>](/docs/ixml-qrda-iii#Denom) | | [Ipop](/docs/ixml-qrda-iii#Ipop) | [<ipop>](/docs/ixml-qrda-iii#Ipop) | | [Ippop](/docs/ixml-qrda-iii#Ippop) | [<ippop>](/docs/ixml-qrda-iii#Ippop) | | [Msrpopl](/docs/ixml-qrda-iii#Msrpopl) | [<msrpopl>](/docs/ixml-qrda-iii#Msrpopl) | | [Msrpoplex](/docs/ixml-qrda-iii#Msrpoplex) | [<msrpoplex>](/docs/ixml-qrda-iii#Msrpoplex) | | [Numer](/docs/ixml-qrda-iii#Numer) | [<numer>](/docs/ixml-qrda-iii#Numer) | | [Numex](/docs/ixml-qrda-iii#Numex) | [<numex>](/docs/ixml-qrda-iii#Numex) | Intermediate XML is used in the process of creating CCDs. It's what mdht-restlet needs to generate on-demand CCDs, QRDA I, QRDA III, and FHIR records. This document covers QRDA III and is an appendage to the larger [*IXML Documentation*](/ixml) which contains definitions common to both CCDA and QRDA. ## Documents (Implementation Guides) These are used primarily in creating the POJOs and populating the CCD using MDHT APIs. | Title | ***HL7 Implementation Guide for CDA® Release 2: Quality Reporting Document Architecture—Category III, STU Release 2.1—(US Realm) Standard for Trial Use June 2017*** | | --- | --- | | Filename | ***CDAR2_IG_QRDAIII_R1_STU_R2.1_2017JUL.pdf***, 147 pages | | | | Title | ***CMS Implementation Guide for Quality Reporting Document Architecture Category III Eligible Clinicians and Eligible Professionals Programs Implementation Guide for 2022 Version 1.1 12/16/2021*** | | Filename | ***2022-CMS-QRDA-III-Eligible-Clinicians-and-EP-IG-V1.1-508.pdf***, 94 pages | ## Simple POJOs For **Pojo** see [*IXML Documentation*](/docs/ixml.html). [**Address**](/docs/ixml-qrda-iii#Address) is used occasionally in the QRDA III header. [**PerformerEntity**](/docs/ixml-qrda-iii#PerformerEntity) provides information to the <assignedEntity ... /> and <representedOrganization ... /> elements of the <documentationOf ... /> section of the QRDA III header. There may be as many of those as desired in [**Header**](/docs/ixml.html#Header). | Source Code | IXML Sample | | --- | --- | | Address | | ``` class Address extends Pojo { String use; List< String > line; String city; String state; String zipcode; String country; } ``` | ```
5242 Broadway Avenue #538 New York NY 10001 US
``` | | Location Participant | | PerformerEntity | | ``` class PerformerEntity extends Pojo { String name; String npi; String tin; } ``` | ```
... ...
``` | | ReportingPeriod | | ``` class ReportingPeriod extends Pojo { String name; // optional String startdate; String enddate; } ``` | ```
... ...
``` | | Reporting Parameters | ## Common (evolved) POJOs For **CommonPojo** see [*IXML Documentation*](/ixml). | Source Code | IXML Sample | | --- | --- | | Measure | | ``` class Measure extends CommonPojo { String measurename; String version; String performancerate; List< Denex > denexList; List< Denexcep > denexcepList; List< Denom > denomList; List< Ipop > ipopList; List< Ippop > ippopList; List< Msrpopl > msrpoplList; List< Msrpoplex > msrpoplexList; List< Numer > numerList; List< Numex > numexList; } ``` | ``` ... ``` | | Measure Section Measure Reference | ## Specialized POJOs (including **AdminPojo**s) Note:To pass QRDA III validation, you must provide every ethnicity, every race, both genders and every payer method on every population identifier (IPOP, DENEX, NUMER, etc.) even if the count for one or more of the methods was 0. For each of these, there is a count which you must use in generating QRDA III. | Source Code | IXML Sample | | --- | --- | | Ethnicity | | ``` class Ethnicity extends AdminPojo { } ``` | ``` ``` | | Race & Ethnicity | | Participant | | ``` class Participant extends CommonPojo { String typecode; // "LOC", "DEV", etc. String classcode; String idroot; String idextension; Address address; } ``` | ```
``` | | Participant Location Participant | | Payer | | ``` class Payer extends AdminPojo { EffectiveTime effectivetime; } ``` | ``` ``` | | Payer Supplemental Data Element (V2) Aggregate Count | | Race | | ``` class Race extends AdminPojo { } ``` | ``` ``` | | Race & Ethnicity | | Sex | | ``` class Sex extends AdminPojo { } ``` | ``` ``` | | Administrative Sex | | Stratum | | ``` class Stratum extends Pojo { String count; String referenceid; String statuscode; } ``` | ``` // (if missing, a default is calculated) ``` | | Reporting Stratum | ## Measures POJO (Not to be confused with **Measure**.) MeasuresPojo doesn't appear in the IXML, but its instance variable, count, appears as an attribute on XML elements. Its other instance variables (races, ethnicities, etc.) appear as XML elements with plural names to create repeating collections of subordinate XML elements (in the singular). See example for **Denex**. | MeasuresPojo | | --- | | ``` class MeasuresPojo extends Pojo { String count; // attribute String referenceid; // ibid, from IXML List< Race > races; // subelement collection List< Ethnicity > ethnicities; // ibid List< Sex > genders; // ibid List< Payer > payers; // ibid List< Stratum > strata; // ibid } ``` | ## Population-identifier POJOs | Denex | IXML Sample | | --- | --- | | ``` class Denex extends MeasuresPojo { } ``` | ``` ``` | | Population Inclusion Observation Type | | The following all work just as the example for **Denex** above: | | ``` class Denexcep extends MeasuresPojo { } class Denom extends MeasuresPojo { } class Ipop extends MeasuresPojo { } class Ippop extends MeasuresPojo { } class Msrpopl extends MeasuresPojo { } class Msrpoplex extends MeasuresPojo { } class Numer extends MeasuresPojo { } class Numex extends MeasuresPojo { } ``` | ## Appendix: sample IXML file (QRDA III) and format templates Note:While the ability for multiple measures is provided, in practice, there likely never will be more than one. Also, the field values depicted here are randomly invented and, as such, meaningless. ```
QRDA III Acme 2018 Continuity of Care Document Good Health QRDA III Report Mockingbird Heights Clinic tel:+1(213) 666-9032 2.16.840.1.113883.3.5785
13 Boulevard of the Stars Suite 1A Mockingbird Heights CA 90210 US
CDAC_HQR_EHR
5242 Broadway Avenue #538 New York NY 10001 US
``` ## Appendix: IXML format templates Here are some sample "railroad tracks." Note:The header contents are mandatory. ```
QRDA III Acme <informationrecipientid /> <participant /> </header> <measures> <!-- {0,1,+} --> <measure ...> <ipop ...> <strata> <!-- {0,1,+} --> <stratum /> </strata> <payers ...> <payer /> <!-- {0,1,+} --> </payers> <races> <race /> <!-- {0,1,+} --> </races> <sexes> <sex /> <!-- {0,1,+} --> </sexes> <ethnicities> <ethnicity /> <!-- {0,1,+} --> </ethnicities> </ipop> <ippop ... /> <!-- as went <ipop>, so go all of these --> <msrpopl ... /> <msrpoplex ... /> <denom ... /> <denex /> <denexcep /> <numer /> <numex /> </measure> </measures> </cdadoc> ``` Plain Old Java Object. It is an ordinary Java object, not bound by any special restriction other than those forced by the Java Language Specification and not requiring any classpath. POJOs are used for increasing the readability and re-usability of a program. --https://www.geeksforgeeks.org/pojo-vs-java-beans/#