--- 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. ```
QRDA I Acme <patient /> <hieinfo /> <informationrecipientid /> <custodianinfo /> </header> <measure ... /> <!-- {1} --> <reportingparameter ... /> <!-- {1} --> <patientdata> <diagnoses> <!-- {0,1,+} --> <diagnosis ... /> </diagnoses> <encounters> <!-- {0,1,+} --> <encounter ...> <status .../> <!-- {0,1} --> </encounter> </encounters> <labs> <!-- {0,1,+} --> <lab startdate="20180620133152+0000" enddate="" code="4544-3" codesystem="2.16.840.1.113883.6.1" codesystemname="LOINC" displayname="Hematocrit" /> </labs> <physicalexams> <!-- {0,1,+} --> <physicalexam startdate="201909200800" enddate="201909200800" code="8480-6" codesystemname="LOINC" displayname="Intravascular systolic Pressure Point in time Arterial system Quantitative" value="91" unit="mmHg" /> </physicalexams> <procedures> <!-- {0,1,+} --> <procedure .../> </procedures> </patientdata> </cdadoc> ``` ### 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. <samp>ParseIncoming.parse( InputStream inputStream )</samp> invokes SAX parsing. 3. <samp>IncomingDataHandler</samp>, this is the SAX parser user code, calls... 4. ...various <samp>IncomingDataHandler.<em>method</em>()</samp>s until, having reached the IXML document's end... 5. ...<samp>IncomingDataHandler.endDocument()</samp> 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. <samp>Generate.generateDocument()</samp> refines the POJOs, then calls generators on all parsed POJOs. 8. <samp>GenerateQrdaI.generate()</samp>* creates the <samp>ClinicalDocument,</samp>then the items below 1. <samp>PopulateHeader</samp> generates the header 2. <samp>PopulateMeasures</samp> adds the measures section 3. <samp>PopulateReportingParameters</samp> adds reporting parameters section 4. <samp>PopulatePatientData</samp>  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 <samp>String</samp> to the bottom of the SAX parser handler, <samp>endDocument()</samp>, thence to the bottom of the SAX parser and finally to the invoking code in JUnit test or Tomcat servlet. * Or <samp>GenerateCcd.generate()</samp> or <samp>GenerateQrdaIII.generate()</samp>.