---
title: "ixml QRDA Appendix 1"
slug: "ixml-qrda-1"
updated: 2025-11-19T00:15:16Z
published: 2025-11-19T00:15:16Z
canonical: "docs.imat.io/ixml-qrda-1"
---
> ## 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 I
| Table of POJO Classes | By IXML Element |
| --- | --- |
| [Assessment](/docs/ixml-qrda-1#Assessment) | [<assessment>](/docs/ixml-qrda-1#Assessment) |
| [DeviceOrder](/docs/ixml-qrda-1#DeviceOrder) | [<deviceorder>](/docs/ixml-qrda-1#DeviceOrder) |
| [DeviceRecommended](/docs/ixml-qrda-1#DeviceRecommended) | [<devicerecommended>](/docs/ixml-qrda-1#DeviceRecommended) |
| [Diagnosis](/docs/ixml-qrda-1#Diagnosis) | [<diagnosis>](/docs/ixml-qrda-1#Diagnosis) |
| [DiagnosticStudy](/docs/ixml-qrda-1#DiagnosticStudy) | [<diagnosticstudy>](/docs/ixml-qrda-1#DiagnosticStudy) |
| [Encounter](/docs/ixml-qrda-1#Encounter) | [<encounter>](/docs/ixml-qrda-1#Encounter) |
| [Immunization](/docs/ixml-qrda-1#Immunization) | [<immunization>](/docs/ixml-qrda-1#Immunization) |
| [Intervention](/docs/ixml-qrda-1#Intervention) | [<intervention>](/docs/ixml-qrda-1#Intervention) |
| [Lab](/docs/ixml-qrda-1#Lab) | [<lab>](/docs/ixml-qrda-1#Lab) |
| [LabResult](/docs/ixml-qrda-1#LabResult) | [<labresult>](/docs/ixml-qrda-1#LabResult) |
| [Measure](/docs/ixml-qrda-1#Measure) | [<measure>](/docs/ixml-qrda-1#Measure) |
| [Medication](/docs/ixml-qrda-1#Medication) | [<medication>](/docs/ixml-qrda-1#Medication) |
| [PatientAssertion](/docs/ixml-qrda-1#PatientAssertion) | [<patientassertion>](/docs/ixml-qrda-1#PatientAssertion) |
| [PatientData](/docs/ixml-qrda-1#PatientData) | [<patientdata>](/docs/ixml-qrda-1#PatientData) |
| [PatientPayer](/docs/ixml-qrda-1#PatientPayer) | [<patientpayer>](/docs/ixml-qrda-1#PatientPayer) |
| [PhysicalExam](/docs/ixml-qrda-1#PhysicalExam) | [<physicalexam>](/docs/ixml-qrda-1#PhysicalExam) |
| [Procedure](/docs/ixml-qrda-1#Procedure) | [<procedure>](/docs/ixml-qrda-1#Procedure) |
| [ReportingParameter](/docs/ixml-qrda-1#ReportingParameter) | [<reportingparameter>](/docs/ixml-qrda-1#ReportingParameter) |
| [Symptom](/docs/ixml-qrda-1#Symptom) | [<symptom>](/docs/ixml-qrda-1#Symptom) |
Intermediate XML is used in conveying reported data out of SearchServer to the *mdht-restlet* which generates on-demand QRDAs. This document covers QRDA I and is an appendage to the larger [*IXML Documentation*](/v1/docs/ixml) which contains definitions common to both CCDA and QRDA.
## Documents (Implementation Guide)
The document below was used primarily in creating the POJOs and populating the CCD using MDHT APIs.
| Title | ***HL7 CDA® R2 Implementation Guide: Quality Reporting Document Architecture Category I (QRDA I), Release 1, STU Release 5.2—US Realm HL7 Standard for Trial Use February 2020 (with June 2020 errata)*** |
| --- | --- |
| Filename | ***CDAR2_IG_QRDA_I_R1_STU5.2_2020FEB_Vol2_2020JUN_with_errata.pdf***, 834 pages |
## Common (evolved) POJOs
For **CommonPojo** see [*IXML Documentation*](/docs/ixml).
| Source Code | IXML Sample |
| --- | --- |
| Assessment |
| ``` class Assessment extends CommonPojo { String moodcode; // determines -recommended (INT) vs. -performed (EVN) String value; String unit; // alternatively to value and unit just above, the following: String valuecode; String valuecodesystem; Striyg valuecodesystemname; String valuedisplayname; } ``` | ``` ... ``` |
| Assessment Performed (V2) Assessment Recommended (V2) |
| DeviceOrder |
| ``` class DeviceOrder extends CommonPojo { Author author; } ``` | ``` ... ``` |
| Device Order Act (V4) |
| DeviceRecommended |
| ``` class DeviceRecommended extends CommonPojo { Author author; } ``` | ``` ... ``` |
| Device Recommended Act (V4) |
| Diagnosis |
| ``` class Diagnosis extends CommonPojo { String messagetimestamp; // date/time of (original, e.g.: HL7 v2) message List< Translation > problemtranslations; } ``` | ``` ... ``` |
| Diagnosis Concern Act (V4) Diagnosis (V3) Severity Observation (V2) |
| DiagnosticStudy |
| ``` class DiagnosticStudy extends CommonPojo { String messagetimestamp; // date/time of (original, e.g.: HL7 v2) message } ``` | ``` ... ``` |
| Diagnostic Study Performed (V5) |
| Encounter |
| ``` class Encounter extends CommonPojo { // Encounter Performed (V5) String valueccode; // Encounter Diagnosis (V3) String valueccodesystem; String valueccodesystemname; String valueccodedisplayname; String ddcode; // (sdtc:dischargeDispositionCode) String ddcodesystem; String ddcodesystemname; String dddisplayname; } ``` | ``` ... ``` |
| Encounter Performed Act (V3) Encounter Performed (V5) Encounter Activity (V3) Encounter Diagnosis (V3) |
| Immunization |
| ``` class Immunization extends CommonPojo { } ``` | ``` ... ``` |
| Immunization Activity (V3) Immunization Medication Information (V2) Immunization Administrered (V3) |
| Intervention |
| ``` class Intervention extends CommonPojo { String moodcode; // determines -order vs. -performed String messagetimestamp; // date/time of (original, e.g.: HL7 v2) message } ``` | ``` ... ``` |
| Intervention Performed (V5) Intervention Order (V5) |
| Lab |
| ``` class Lab extends CommonPojo { String moodcode; // determines -order vs. -performed String value; String unit; List< LabResult > results; } ``` | ``` ... ``` |
| Laboratory Test Order (V5) Laboratory Test Performed (V4/5) |
| LabResult |
| ``` class LabResult extends CommonPojo { String moodcode; String root; String extension; String root2; String extension2; String value; String unit; // alternatively to value and unit, the following: String valuecode; String valuecodesystem; String valuecodesystemname; String valuedisplayname; } ``` | ``` ... ``` |
| Measure |
| ``` class Measure extends CommonPojo { String measurename; // attribute String measuresetid; // attribute String version; // ibid String count; // ibid } ``` | ``` ... ``` |
| Measure Section Measure Section QDM |
| Medication |
| ``` class Medication extends CommonPojo { String dosage; } ``` | ``` ... ``` |
| Medication Active (V4) Medication Administered (V5) Medication Order (V6) Medication Dispensed Act (V4) Medication Dispense (V2) Medication Information (V2) |
| PatientAssertion |
| ``` class PatientAssertion extends CommonPojo { Author author; // optional } ``` | ``` ``` |
| Patient Characteristic Observation Assertion (V5) |
| PatientDatum |
| ``` class PatientDatum extends CommonPojo { String title; String text; List< Allergy > allergies; List< Assessment > assessments; List< DeviceOrder > deviceorders; List< DeviceRecommended > devicerecommendeds; List< Diagnosis > diagnoses; List< DiagnosticStudy > studies; List< Encounter > encounters; List< Immunization > immunizations; List< Intervention > interventions; List< Lab > labs; List< Medication > medications; List< PhysicalExam > exams; List< PatientPayer > patientpayers; List< Payer > payers; List< Procedure > procedures; List< Symptom > symptoms; } ``` | ``` ``` |
| Patient Data Section (V5) Patient Data Section QDM (V8) |
| PatientPayer |
| ``` class PatientPayer extends CommonPojo { String valuecode; String valuecodesystem; String valuecodesystemname; String valuedisplayname; } ``` | ``` valuecode="29" valuecodesystem="2.16.840.1.113883.3.221.5" valuecodesystemname="SOP" valuedisplayname="Medicaid Other" /> ... ``` |
| Patient Characteristic Payer |
| PhysicalExam |
| ``` class PhysicalExam extends CommonPojo { String value; String unit; } ``` | ``` ... ``` |
| Physical Exam Performed (V5) |
| Procedure |
| ``` class Procedure extends CommonPojo { } ``` | ``` ... ``` |
| Procedure Performed (V6) Procedure Order (V6) |
| ReportingParameter |
| ``` class ReportingParameter extends CommonPojo { String text; // (required) } ``` | ``` ``` |
| Reporting Parameters Section Reporting Parameters Act |
| Symptom |
| ``` class Symptom extends CommonPojo { } ``` | ``` code="R63.6" codesystem="2.16.840.1.113883.6.90" codesystemname="ICD10CM" displayname="Underweight" /> ... ``` |
| Symptom Concern Act (V5) Symptom (V4) |
## Specialized POJOs
### Appendix: sample IXML files and format templates
Beside <diagnosis>, <lab>, etc., there can exist other elements (which also imply POJOs) created as new measures handled will require. A recent example is physicalexam.
```
QRDA I
Acme
2018
Continuity of Care Document
Good Health QRDA I Report
2.16.840.1.113883.3.6452
665892
Herman
Munster
18561031000000+0000
M
2106-3
2186-5
1313 Mockingbird Lane
Mockingbird Heights
CA
90210
US
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
BBY
GUAR
123456
Reliance eHealth Collaborative
tel:+1(999)999-9999
2.16.840.1.113883.3.5785
3264 East Longbourne Avenue
#53
Westinghouse
MA
01001
US
```
### Appendix: IXML format templates
Here are some sample "railroad tracks" for IXMLs for QRDA I.
Note:The header contents are mandatory. Depending on the measure (there is only one), the content of <patientdata> will vary.
```
```
### Execution
An example of how CCDA documents are generated:
1. The JUnit test or Tomcat servlet code passes the IXML input as a stream to a SAX parser.
2. ParseIncoming.parse( InputStream inputStream ) invokes SAX parsing.
3. IncomingDataHandler, this is the SAX parser user code, calls...
4. ...various IncomingDataHandler.method()s until, having reached the IXML document's end...
5. ...IncomingDataHandler.endDocument() winds up the parsing, then calls for MDHT generators.
6. Depending on the type of document being generated, CCDA, QRDA I or QRDA III, a generator is called.
7. Generate.generateDocument() refines the POJOs, then calls generators on all parsed POJOs.
8. GenerateQrdaI.generate()* creates the ClinicalDocument,then the items below
1. PopulateHeader generates the header
2. PopulateMeasures adds the measures section
3. PopulateReportingParameters adds reporting parameters section
4. PopulatePatientData adds the patient-data section subsuming sections for (as of March 2021)
1. allergies
2. assessments
3. devices
4. diagnoses
5. encounters
6. exams
7. interventions
8. labs
9. medications
10. immunizations
11. patient payers
12. procedures
13. studies
14. symptoms
9. Bottles up the (MDHT-generated) document and returns it as a String to the bottom of the SAX parser handler, endDocument(), thence to the bottom of the SAX parser and finally to the invoking code in JUnit test or Tomcat servlet.
* Or GenerateCcd.generate() or GenerateQrdaIII.generate().