Id2.16.840.1.113883.10.12.1000Effective Date2014‑04‑14
Statusdraft DraftVersion Label
NameHL7CDAR2BasicRequirementsDisplay NameHL7 CDA R2 Basic Requirements
DescriptionAdditional co-constraints for HL7 CDA R2 based on a paper by Abderrazek Boufahja from the Gazelle team/IHE-Europe on April 14, 2014
ContextPathname hl7:ClinicalDocument
Open/ClosedOpen (other than defined elements are allowed)
ItemDTCardConfDescriptionLabel
 Variable letNamerim001 
 Value.//hl7:*[hl7:id[@nullFlavor]][hl7:id[not(@nullFlavor)]] 
 Schematron reportrolered error 
 test$rim001 
 Message[RIM-001] <value-of select="string-join($rim001/name(), ', ')"/> SHALL NOT have id element with nullFlavor, if there are other ids elements which are not null (3.1.1, [4]) 
 Variable letNamerim002 
 Value.//hl7:*[hl7:id[string-join((@nullFlavor, @root, @extension), ' ') = preceding-sibling::hl7:id/string-join((@nullFlavor, @root, @extension), ' ')]] 
 Schematron reportrolered error 
 test$rim002 
 Message[RIM-002] The id elements of <value-of select="string-join($rim002/name(), ', ')"/> SHALL be distinct (3.1.1, [4]) 
 Schematron assertrolered error 
 testtrue() 
 MessageNot checked here. See basic template set. Act: [RIM-003] The statusCode if presents SHALL be from the valueSet ActStatus 
 Variable letNamerim004 
 Value.//hl7:*[hl7:interpretationCode[@nullFlavor]][hl7:interpretationCode[not(@nullFlavor)]] 
 Schematron reportrolered error 
 test$rim004 
 Message[RIM-004] <value-of select="string-join($rim004/name(), ', ')"/> SHALL NOT have interpretationCode element with nullFlavor, if there are other interpretationCode elements which are not null 
 Variable letNamerim005 
 Value.//hl7:*[hl7:interpretationCode[string-join((@nullFlavor, @code, @codeSystem), ' ') = preceding-sibling::hl7:interpretationCode/string-join((@nullFlavor, @code, @codeSystem), ' ')]] 
 Schematron reportrolered error 
 test$rim005 
 Message[RIM-005] The interpretationCode elements of <value-of select="string-join($rim005/name(), ', ')"/> SHALL be distinct (3.1.1, [4]) 
 Variable letNamerim006 
 Value.//hl7:*[hl7:methodCode[@nullFlavor]][hl7:methodCode[not(@nullFlavor)]] 
 Schematron reportrolered error 
 test$rim006 
 Message[RIM-006] <value-of select="string-join($rim006/name(), ', ')"/> SHALL NOT have methodCode element with nullFlavor, if there are other methodCode elements which are not null 
 Variable letNamerim007 
 Value.//hl7:*[hl7:methodCode[string-join((@nullFlavor, @code, @codeSystem), ' ') = preceding-sibling::hl7:methodCode/string-join((@nullFlavor, @code, @codeSystem), ' ')]] 
 Schematron reportrolered error 
 test$rim007 
 Message[RIM-007] The methodCode elements of <value-of select="string-join($rim007/name(), ', ')"/> SHALL be distinct (3.1.1, [4]) 
 Variable letNamerim008 
 Value.//hl7:*[hl7:targetSiteCode[@nullFlavor]][hl7:targetSiteCode[not(@nullFlavor)]] 
 Schematron reportrolered error 
 test$rim008 
 Message[RIM-008] <value-of select="string-join($rim008/name(), ', ')"/> SHALL NOT have targetSiteCode element with nullFlavor, if there are other targetSiteCode elements which are not null 
 Variable letNamerim009 
 Value.//hl7:*[hl7:targetSiteCode[string-join((@nullFlavor, @code, @codeSystem), ' ') = preceding-sibling::hl7:targetSiteCode/string-join((@nullFlavor, @code, @codeSystem), ' ')]] 
 Schematron reportrolered error 
 test$rim009 
 Message[RIM-009] The targetSiteCode elements of <value-of select="string-join($rim009/name(), ', ')"/> SHALL be distinct (3.1.1, [4]) 
 Variable letNamerim010 
 Value.//hl7:*[hl7:signatureCode[not(@nullFlavor or @code = ('X', 'S'))]] 
 Schematron reportrolered error 
 test$rim010 
 Message[RIM-010] The signatureCode elements of Participation <value-of select="string-join($rim010/name(), ', ')"/> SHALL be from the valueSet ParticipationSignature. The signatureCode is of type CNE. For CDA, this list of value contains only two values : X, S (the I is not used) 
 Schematron reportrolered error 
 test.//hl7:recordTarget[not(@nullFlavor)]/patientRole[not(@nullFlavor)][not(hl7:patient | hl7:providerOrganization)] 
 Message[RMIM-080] If patientRole has not a null of flavor and its enclosing recordTarget has not a null of flavor, it SHALL have a patient entity, or a providerOrganization