Rubric NameRubric IDRubric TypeRubric CategoryGuidance /intent text (if needed)RubricModified xPath(s)Sample xml element(s)Link to C-CDA Examples Task Force Example(s)
effectiveTime and time time zoneRTimeIf dates/times are more precise than to the day, a time zone offset shall be included.When effectiveTime or Time element is present and is more precise than (has more digits than) YYYYMMDD, the time zone offset SHALL be present and SHALL be a valid time zone offset prepended with - or + and XXxx where XXxx is not all zeros unless in time zone offset Z which is 0000 (Principal cities: London, Dublin, Lisbon, Abidjan, Accra, Dakar)any /effectiveTime/@value or time/@value<effectiveTime> <low value="201102190100-0800"/> <time value="201308011235-0800"/>See almost any example
effectiveTime and time lifespanITimeEffectiveTime for patient events should be less than one year prior to the patient's date of birth and less than 90 days post mortumeffectiveTime and time element values SHALL be less than one year prior to recordTarget/patientRole/patient/birthTime/value and less than 90 days before: 1) recordTarget/patientRole/patient/sdtc:deceasedTime value OR 2)Deceased Observation templateId root="2.16.840.1.113883."]/observation/effectiveTime/low @value/ClinicalDocument/recordTarget/patientRole/patient/birthTime/@value /ClinicalDocument/recordTarget/patientRole/patient[/stdc:deceasedTime/@value /ClinicalDocument/component/structuredBody/component/section/entry[Deceased Observation templateId root="2.16.840.1.113883."]/observation/effectiveTime/low @value<birthTime value="19521022"/> <sdtc:deceasedTime value="20180315" /> <observation classCode="OBS" moodCode="EVN"> <templateId root="2.16.840.1.113883." extension="2015-08-01" /> <id root="6898fae0-5c8a-11db-b0de-0800200c9a77" /> <code code="ASSERTION" codeSystem="2.16.840.1.113883.5.4" /> <statusCode code="completed" /> <effectiveTime> <low value="20100303" /> </effectiveTime> <value xsi:type="CD" code="419099009" codeSystem="2.16.840.1.113883.6.96" displayName="Dead" />See almost any example Patient Deceased example:
effectiveTime and time precisionITimeWhen specifying dates and times, care should be taken to only capture data with as much precision as is known. The timestamp format allows for partial dates and partial times to be specifiedIf more than 1 instance of effectiveTimes or Time is present where there are all zeros in the hours, minutes, and seconds locations (and/or more) then a warning SHALL be issuedany /effectiveTime/@value or time/@value<effectiveTime> <low value="201102190000-0000"/> <time value="201308010000-0000"/>See almost any example for proper examples of effectiveTime and Time)
Display name and code alignmentRDisplayNameIf code's DisplayName is present and it conflicts with the codeSystem's preferred display name then a tool should throw an error. If a DisplayName isn't present then a tool should not throw an error If an @displayName is present with an @code then the text of the @displayName SHALL be the text of the code systems preferred name.../code/@code and …/code/@displayName .../value/@code and …/code/@displayName.../code/@code and …/code/@displayName .../value/@code and …/code/@displayNameSee almost any example. Refer to the code system's source of truth. This Rubric will require at least a basic terminology service.
entryTextReferenceRText ReferenceThe use of code/originalText/reference and value/originalText/reference SHALL be used where appropriate to point to the human readable information associated with the discrete entries. The text element of the primary (outer-most) act in an entry should point, by reference, to the portion of the narrative text corresponding to the meaning of the entire entry. The intent of this rubric is to encourage referencing between narrative and the coded entry to enable validation and comparison of the accuracy of narrative that is read by humans and the contained computer processable encoded data that the human may not see. NOTE: THE METHOD/testing TO DO THIS WILL VARY BY SECTION. MAY NEED TO MAKE A VERSION FOR EACH SECTION. BUT THERE ARE EXAMPLE TASK FORCE EXAMPLES FOR EACH TYPEIn each outermost act in each entry When entry/xx/code exits, there SHALL be a code/originalText/reference OR When entry/xx/value exist, there SHALL be value/originalText/referenceentry/act/text/reference/@value="#xxx" section/text/xx/@ID="xxx"<text> <reference value="#Problem7Concern"/> </text> <tr ID="Problem7Concern" styleCode="normRow"> Supply: Procedure: Organizer: Substance Administration: Act: Encounter: Observation:
entryTextReference alignmentRText ReferenceIntent is to compare the accuracy of narrative that is read by humans and the contained computer processable encoded data that the human may not see.Where a link between the narrative (section.text), identified with section/text/(any)/@ID="xxx" and coded clinical data (entry) exists, identified with entry/act/text/reference/@value="#xxx", the section.text must conceptually align with the meaning of the code it links with.” (aka, the code system display name).entry/act/text/reference/@value="#xxx" section/text/xx/@ID="xxx"<text> <reference value="#Problem7Concern"/> </text> <tr ID="Problem7Concern" styleCode="normRow">This Rubric will require at least a basic terminology service and text processing. Plus parsing of: Supply: Procedure: Organizer: Substance Administration: Act: Encounter: Observation:
Organizers and effectiveTimeRTimeThe EffectiveDate/Time elements in an Organizer act must encompass the underlying observations. Each /organizer/component/observation/effectiveTime/@value SHALL be within it organizer's /organizer/effectiveTime/low/@value and it's organizers /organizer/effectiveTime/high/@value <organizer classCode="BATTERY" moodCode="EVN"> <!-- ** Result organizer ** --> <templateId root="2.16.840.1.113883." extension="2015-08-01"/> <templateId root="2.16.840.1.113883."/> <id root="122ed3ae-6d9e-43d0-bfa2-434ea34b1426"/> <code code="166312007" displayName="Blood chemistry test" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT"/> <statusCode code="active"/> <effectiveTime> <low value="200803200930-0800"/> <high value="200803200930-0800"/> </effectiveTime> <component> <observation classCode="OBS" moodCode="EVN"> <!-- ** Result observation ** --> <templateId root="2.16.840.1.113883." extension="2015-08-01"/> <templateId root="2.16.840.1.113883."/> <id root="aed821af-3330-4138-97f0-e84dfe5f3c35"/> <code code="3094-0" displayName="Urea nitrogen, Serum" codeSystem="2.16.840.1.113883.6.1" codeSystemName="LOINC"/> <statusCode code="active"/> <effectiveTime value="200803200930-0800"/> <value xsi:type="PQ" nullFlavor="NI"/>Result Section Examples: Vital Sign section examples:
C-CDA R2.1 Template IDsITemplateIDsThe intent of this rubric is to encourage use of the correct C-CDA R2.1 template IDs and the correct format of those IDs (with the version extension). However, additional template IDs are permitted in open templates.When validating a C-CDA R2.1 document, at least one the templateIDs is asserted at /ClinicalDocument/templateId, SHALL have a /ClinicalDocument/templateId/@extension indicating the version, represented with "YYYY-MM-DD". AND, all template IDs that are defined in C-CDA R2.1 templates or C-CDA R2.1 supplmental templates contained in that document must have at least one template ID with a templateId/@extension indicating the version, represented with "YYYY-MM-DD". Additional templates identified by templateIDs MAY be present.<templateId root="2.16.840.1.113883." extension="2015-08-01"/>NA
Valid C-CDA R2.1RValidation A C-CDA R2.1 file must pass the baseCDA schema and C-CDA R2.1 schematron without ERRORS Validation against C-CDA R2.1 Schematron SHALL occur as the first step in tooling that supports Rubric assessmentNANA
Valid C-CDA R2.1 and gradingRValidationAssign a grade only to documents that pass base schema and C-CDA R2.1 schematron without ERRORSXML documents that do not pass pass base schema and C-CDA R2.1 schematron without ERRORS SHALL not receive a gradeNANA
Unique Identifiers within C-CDARIdentifiersIdentifiers (e.g. <id/>) in a CDA document on clinicalStatements are used to provide unique identification to each statement. These can be used to aid in secondary use of data, auditing, etc.. These generally must be unique across a single document instance. But there are exceptions; Entry references ids must = the id of another entry in the document. An encompassing encounter will have the same id as ONE encounter in the section. It is also permitted that one id is the same as another id IF it is a repeated instance of that clinical statement residing elsewhere intentionally.If Instance Identfiers (IDs) are duplicate in a document Instance, then the attributes of that class, when present, SHALL have the same values OR must be the id in an Entry Reference template [act: identifier urn:oid:2.16.840.1.113883. OR must be the encompassingEncounter/ID and ONE encounterEntry/id that refer to one anotherNANA