cqm-validators 0.1.0 → 2.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. checksums.yaml +5 -5
  2. data/.github/PULL_REQUEST_TEMPLATE.md +23 -0
  3. data/.gitignore +3 -1
  4. data/.overcommit.yml +18 -0
  5. data/.rubocop.yml +68 -0
  6. data/.simplecov +12 -0
  7. data/.travis.yml +20 -0
  8. data/Gemfile +11 -3
  9. data/README.md +20 -6
  10. data/Rakefile +8 -6
  11. data/config/mongoid.yml +6 -0
  12. data/cqm_validators.gemspec +23 -14
  13. data/lib/base_validator.rb +20 -20
  14. data/lib/cqm_validators.rb +4 -2
  15. data/lib/cqm_validators/version.rb +3 -1
  16. data/lib/data_validator.rb +74 -79
  17. data/lib/measure_validator.rb +104 -107
  18. data/lib/performance_rate_validator.rb +43 -63
  19. data/lib/qrda_qdm_template_validator.rb +164 -311
  20. data/lib/reported_result_extractor.rb +137 -139
  21. data/lib/schema_validator.rb +20 -19
  22. data/lib/schematron/c_processor.rb +19 -19
  23. data/lib/schematron/java_processor.rb +66 -68
  24. data/lib/schematron/qrda/{cat_1_r4/HL7 QRDA Category I STU 4.sch → cat_1_r5_1/HL7 QRDA Category I STU 5.1.sch } +1684 -2082
  25. data/lib/schematron/qrda/{cat_1_r3_1 → cat_1_r5_1}/voc.xml +1223 -1228
  26. data/lib/schematron_validator.rb +31 -32
  27. data/lib/validation_error.rb +11 -9
  28. data/lib/validators.rb +40 -106
  29. data/notice.md +9 -0
  30. metadata +97 -36
  31. data/lib/schematron/qrda/cat_1/HL7_CDAR2_QRDA_Category_I_2_12_16.sch +0 -4693
  32. data/lib/schematron/qrda/cat_1/voc.xml +0 -1177
  33. data/lib/schematron/qrda/cat_1_r2/QRDA Category I Release 2.sch +0 -4069
  34. data/lib/schematron/qrda/cat_1_r2/voc.xml +0 -1065
  35. data/lib/schematron/qrda/cat_1_r3_1/HL7 QRDA Category I STU 3.1.sch +0 -3573
  36. data/lib/schematron/qrda/cat_1_r3_1/HL7 QRDA Category III STU 1.1.sch +0 -464
  37. data/lib/schematron/qrda/cat_1_r3_1/QRDA Category I STU Release 3.1.sch +0 -5394
  38. data/lib/schematron/qrda/cat_1_r4/voc.xml +0 -1186
  39. data/lib/schematron/qrda/cat_3/QRDA Category III.sch +0 -675
  40. data/lib/schematron/qrda/cat_3/voc.xml +0 -21
  41. data/lib/schematron/qrda/cat_3_r1_1/HL7 QRDA Category III STU 1.1.sch +0 -528
  42. data/lib/schematron/qrda/cat_3_r1_1/voc.xml +0 -8
  43. data/lib/schematron/qrda/cat_3_r2/HL7 QRDA Category III STU 2.sch +0 -677
  44. data/lib/schematron/qrda/cat_3_r2/voc.xml +0 -1186
@@ -1,675 +0,0 @@
1
- <?xml version="1.0" encoding="utf-8" standalone="yes"?>
2
- <!-- Schematron generated from Trifolia on 12/23/2014 -->
3
- <sch:schema xmlns:voc="http://www.lantanagroup.com/voc" xmlns:svs="urn:ihe:iti:svs:2008" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:sdtc="urn:hl7-org:sdtc" xmlns="urn:hl7-org:v3" xmlns:cda="urn:hl7-org:v3" xmlns:sch="http://purl.oclc.org/dsdl/schematron">
4
- <sch:ns prefix="voc" uri="http://www.lantanagroup.com/voc" />
5
- <sch:ns prefix="svs" uri="urn:ihe:iti:svs:2008" />
6
- <sch:ns prefix="xsi" uri="http://www.w3.org/2001/XMLSchema-instance" />
7
- <sch:ns prefix="sdtc" uri="urn:hl7-org:sdtc" />
8
- <sch:ns prefix="cda" uri="urn:hl7-org:v3" />
9
- <sch:phase id="errors">
10
- <sch:active pattern="document-errors" />
11
- <sch:active pattern="p-DOCUMENT-TEMPLATE" />
12
- <sch:active pattern="p-urn-oid-2.16.840.1.113883.10.20.17.3.8-errors" />
13
- <sch:active pattern="p-urn-oid-2.16.840.1.113883.10.20.17.2.1-errors" />
14
- <sch:active pattern="p-urn-oid-2.16.840.1.113883.10.20.24.3.55-errors" />
15
- <sch:active pattern="p-urn-oid-2.16.840.1.113883.10.20.24.2.2-errors" />
16
- <sch:active pattern="p-urn-oid-2.16.840.1.113883.10.20.24.3.98-errors" />
17
- <sch:active pattern="p-urn-oid-2.16.840.1.113883.10.20.27.1.1-errors" />
18
- <sch:active pattern="p-urn-oid-2.16.840.1.113883.10.20.27.2.1-errors" />
19
- <sch:active pattern="p-urn-oid-2.16.840.1.113883.10.20.27.3.3-errors" />
20
- <sch:active pattern="p-urn-oid-2.16.840.1.113883.10.20.27.3.2-errors" />
21
- <sch:active pattern="p-urn-oid-2.16.840.1.113883.10.20.27.3.4-errors" />
22
- <sch:active pattern="p-urn-oid-2.16.840.1.113883.10.20.27.3.5-errors" />
23
- <sch:active pattern="p-urn-oid-2.16.840.1.113883.10.20.27.3.1-errors" />
24
- <sch:active pattern="p-urn-oid-2.16.840.1.113883.10.20.27.3.10-errors" />
25
- <sch:active pattern="p-urn-oid-2.16.840.1.113883.10.20.27.3.9-errors" />
26
- <sch:active pattern="p-urn-oid-2.16.840.1.113883.10.20.27.3.8-errors" />
27
- <sch:active pattern="p-urn-oid-2.16.840.1.113883.10.20.27.3.7-errors" />
28
- <sch:active pattern="p-urn-oid-2.16.840.1.113883.10.20.27.3.6-errors" />
29
- <sch:active pattern="p-urn-oid-2.16.840.1.113883.10.20.27.3.11-errors" />
30
- <sch:active pattern="p-urn-oid-2.16.840.1.113883.10.20.27.2.2-errors" />
31
- <sch:active pattern="p-urn-oid-2.16.840.1.113883.10.20.27.3.14-errors" />
32
- <sch:active pattern="p-urn-oid-2.16.840.1.113883.10.20.27.3.15-errors" />
33
- </sch:phase>
34
- <sch:phase id="warnings">
35
- <sch:active pattern="p-urn-oid-2.16.840.1.113883.10.20.17.3.8-warnings" />
36
- <sch:active pattern="p-urn-oid-2.16.840.1.113883.10.20.17.2.1-warnings" />
37
- <sch:active pattern="p-urn-oid-2.16.840.1.113883.10.20.24.3.55-warnings" />
38
- <sch:active pattern="p-urn-oid-2.16.840.1.113883.10.20.24.2.2-warnings" />
39
- <sch:active pattern="p-urn-oid-2.16.840.1.113883.10.20.24.3.98-warnings" />
40
- <sch:active pattern="p-urn-oid-2.16.840.1.113883.10.20.27.1.1-warnings" />
41
- <sch:active pattern="p-urn-oid-2.16.840.1.113883.10.20.27.2.1-warnings" />
42
- <sch:active pattern="p-urn-oid-2.16.840.1.113883.10.20.27.3.3-warnings" />
43
- <sch:active pattern="p-urn-oid-2.16.840.1.113883.10.20.27.3.2-warnings" />
44
- <sch:active pattern="p-urn-oid-2.16.840.1.113883.10.20.27.3.4-warnings" />
45
- <sch:active pattern="p-urn-oid-2.16.840.1.113883.10.20.27.3.5-warnings" />
46
- <sch:active pattern="p-urn-oid-2.16.840.1.113883.10.20.27.3.1-warnings" />
47
- <sch:active pattern="p-urn-oid-2.16.840.1.113883.10.20.27.3.10-warnings" />
48
- <sch:active pattern="p-urn-oid-2.16.840.1.113883.10.20.27.3.9-warnings" />
49
- <sch:active pattern="p-urn-oid-2.16.840.1.113883.10.20.27.3.8-warnings" />
50
- <sch:active pattern="p-urn-oid-2.16.840.1.113883.10.20.27.3.7-warnings" />
51
- <sch:active pattern="p-urn-oid-2.16.840.1.113883.10.20.27.3.6-warnings" />
52
- <sch:active pattern="p-urn-oid-2.16.840.1.113883.10.20.27.3.11-warnings" />
53
- <sch:active pattern="p-urn-oid-2.16.840.1.113883.10.20.27.2.2-warnings" />
54
- <sch:active pattern="p-urn-oid-2.16.840.1.113883.10.20.27.3.14-warnings" />
55
- <sch:active pattern="p-urn-oid-2.16.840.1.113883.10.20.27.3.15-warnings" />
56
- </sch:phase>
57
- <sch:pattern id="document-errors">
58
- <sch:rule context="cda:ClinicalDocument">
59
- <sch:assert test="count(cda:templateId[@root='2.16.840.1.113883.10.20.27.1.1'])=1">This document SHALL conform to template "QRDA Category III Report" (templateId: 2.16.840.1.113883.10.20.27.1.1).</sch:assert>
60
- </sch:rule>
61
- </sch:pattern>
62
- <sch:pattern id="p-DOCUMENT-TEMPLATE">
63
- <sch:rule id="r-errors-DOC-abstract" abstract="true">
64
- <sch:assert id="a-IG-77-DOC" test="cda:templateId[@root='2.16.840.1.113883.10.20.27.1.1']">The document must contain at least 1 of the document level templates for this schematron to be applicable.</sch:assert>
65
- </sch:rule>
66
- <sch:rule id="r-errors-DOC" context="cda:ClinicalDocument">
67
- <sch:extends rule="r-errors-DOC-abstract" />
68
- </sch:rule>
69
- </sch:pattern>
70
- <sch:pattern id="p-urn-oid-2.16.840.1.113883.10.20.17.3.8-errors">
71
- <sch:rule id="r-urn-oid-2.16.840.1.113883.10.20.17.3.8-errors-abstract" abstract="true">
72
- <sch:assert id="a-23-3269" test="@classCode='ACT'">SHALL contain exactly one [1..1] @classCode="ACT" (CodeSystem: HL7ActClass 2.16.840.1.113883.5.6 STATIC) (CONF:3269).</sch:assert>
73
- <sch:assert id="a-23-3270" test="@moodCode='EVN'">SHALL contain exactly one [1..1] @moodCode="EVN" Event (CodeSystem: ActMood 2.16.840.1.113883.5.1001 STATIC) (CONF:3270).</sch:assert>
74
- <sch:assert id="a-23-3272" test="count(cda:code[@code='252116004'][@codeSystem='2.16.840.1.113883.6.96' or @nullFlavor])=1">SHALL contain exactly one [1..1] code="252116004" Observation Parameters (CodeSystem: SNOMED CT 2.16.840.1.113883.6.96 STATIC) (CONF:3272).</sch:assert>
75
- <sch:assert id="a-23-3273" test="count(cda:effectiveTime)=1">SHALL contain exactly one [1..1] effectiveTime (CONF:3273).</sch:assert>
76
- <sch:assert id="a-23-3274" test="cda:effectiveTime[count(cda:low)=1]">This effectiveTime SHALL contain exactly one [1..1] low (CONF:3274).</sch:assert>
77
- <sch:assert id="a-23-3275" test="cda:effectiveTime[count(cda:high)=1]">This effectiveTime SHALL contain exactly one [1..1] high (CONF:3275).</sch:assert>
78
- <sch:assert id="a-23-18098" test="count(cda:templateId[@root='2.16.840.1.113883.10.20.17.3.8'])=1">SHALL contain exactly one [1..1] templateId (CONF:18098) such that it SHALL contain exactly one [1..1] @root="2.16.840.1.113883.10.20.17.3.8" (CONF:18099).</sch:assert>
79
- <sch:assert id="a-23-26549" test="count(cda:id) &gt; 0">SHALL contain at least one [1..*] id (CONF:26549).</sch:assert>
80
- </sch:rule>
81
- <sch:rule id="r-urn-oid-2.16.840.1.113883.10.20.17.3.8-errors" context="cda:act[cda:templateId[@root='2.16.840.1.113883.10.20.17.3.8']]">
82
- <sch:extends rule="r-urn-oid-2.16.840.1.113883.10.20.17.3.8-errors-abstract" />
83
- </sch:rule>
84
- </sch:pattern>
85
- <sch:pattern id="p-urn-oid-2.16.840.1.113883.10.20.17.2.1-errors">
86
- <sch:rule id="r-urn-oid-2.16.840.1.113883.10.20.17.2.1-errors-abstract" abstract="true">
87
- <sch:assert id="a-23-3277" test="count(cda:entry[@typeCode='DRIV'][count(cda:act[cda:templateId[@root='2.16.840.1.113883.10.20.17.3.8']])=1])=1">SHALL contain exactly one [1..1] entry (CONF:3277) such that it SHALL contain exactly one [1..1] @typeCode="DRIV" Is derived from (CodeSystem: HL7ActRelationshipType 2.16.840.1.113883.5.1002 STATIC) (CONF:3278). SHALL contain exactly one [1..1] Reporting Parameters Act (identifier: urn:oid:2.16.840.1.113883.10.20.17.3.8) (CONF:17496).</sch:assert>
88
- <sch:assert id="a-23-4142" test="count(cda:title[translate(text(), 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz')='reporting parameters'])=1">SHALL contain exactly one [1..1] title="Reporting Parameters" (CONF:4142).</sch:assert>
89
- <sch:assert id="a-23-4143" test="count(cda:text)=1">SHALL contain exactly one [1..1] text (CONF:4143).</sch:assert>
90
- <sch:assert id="a-23-14611" test="count(cda:templateId[@root='2.16.840.1.113883.10.20.17.2.1'])=1">SHALL contain exactly one [1..1] templateId (CONF:14611) such that it SHALL contain exactly one [1..1] @root="2.16.840.1.113883.10.20.17.2.1" (CONF:14612).</sch:assert>
91
- <sch:assert id="a-23-18191-c" test="count(cda:code[@code='55187-9'][@codeSystem='2.16.840.1.113883.6.1'])">SHALL contain exactly one [1..1] code (CONF:18191).</sch:assert>
92
- <sch:assert id="a-23-19229" test="cda:code[@code='55187-9' and @codeSystem='2.16.840.1.113883.6.1']">This code SHALL contain exactly one [1..1] @code="55187-9" Reporting Parameters (CodeSystem: LOINC 2.16.840.1.113883.6.1 STATIC) (CONF:19229).</sch:assert>
93
- </sch:rule>
94
- <sch:rule id="r-urn-oid-2.16.840.1.113883.10.20.17.2.1-errors" context="cda:section[cda:templateId[@root='2.16.840.1.113883.10.20.17.2.1']]">
95
- <sch:extends rule="r-urn-oid-2.16.840.1.113883.10.20.17.2.1-errors-abstract" />
96
- </sch:rule>
97
- </sch:pattern>
98
- <sch:pattern id="p-urn-oid-2.16.840.1.113883.10.20.24.3.55-errors">
99
- <sch:rule id="r-urn-oid-2.16.840.1.113883.10.20.24.3.55-errors-abstract" abstract="true">
100
- <sch:assert id="a-67-12561" test="count(cda:templateId[@root='2.16.840.1.113883.10.20.24.3.55'])=1">SHALL contain exactly one [1..1] templateId (CONF:12561) such that it SHALL contain exactly one [1..1] @root="2.16.840.1.113883.10.20.24.3.55" (CONF:12562).</sch:assert>
101
- <sch:assert id="a-67-12564" test="count(cda:id) &gt; 0">SHALL contain at least one [1..*] id (CONF:12564).</sch:assert>
102
- <sch:assert id="a-67-12565" test="count(cda:code)=1">SHALL contain exactly one [1..1] code (CONF:12565).</sch:assert>
103
- <sch:assert id="a-67-14029" test="cda:code[@code='48768-6' and @codeSystem='2.16.840.1.113883.6.1']">This code SHALL contain exactly one [1..1] @code="48768-6" Payment source (CodeSystem: LOINC 2.16.840.1.113883.6.1 STATIC) (CONF:14029).</sch:assert>
104
- <sch:assert id="a-67-14213" test="@classCode='OBS'">SHALL contain exactly one [1..1] @classCode="OBS" (CodeSystem: HL7ActClass 2.16.840.1.113883.5.6 STATIC) (CONF:14213).</sch:assert>
105
- <sch:assert id="a-67-14214" test="@moodCode='EVN'">SHALL contain exactly one [1..1] @moodCode="EVN" (CodeSystem: ActMood 2.16.840.1.113883.5.1001 STATIC) (CONF:14214).</sch:assert>
106
- <sch:assert id="a-67-16710" test="count(cda:value[@xsi:type='CD'])=1">SHALL contain exactly one [1..1] value with @xsi:type="CD", where the code SHALL be selected from ValueSet Source of Payment Typology (PHDSC) 2.16.840.1.114222.4.11.3591 DYNAMIC (CONF:16710).</sch:assert>
107
- <sch:assert id="a-67-26933" test="count(cda:effectiveTime)=1">SHALL contain exactly one [1..1] effectiveTime (CONF:26933).</sch:assert>
108
- <sch:assert id="a-67-26934" test="cda:effectiveTime[count(cda:low)=1]">This effectiveTime SHALL contain exactly one [1..1] low (CONF:26934).</sch:assert>
109
- </sch:rule>
110
- <sch:rule id="r-urn-oid-2.16.840.1.113883.10.20.24.3.55-errors" context="cda:observation[cda:templateId[@root='2.16.840.1.113883.10.20.24.3.55']]">
111
- <sch:extends rule="r-urn-oid-2.16.840.1.113883.10.20.24.3.55-errors-abstract" />
112
- </sch:rule>
113
- </sch:pattern>
114
- <sch:pattern id="p-urn-oid-2.16.840.1.113883.10.20.24.2.2-errors">
115
- <sch:rule id="r-urn-oid-2.16.840.1.113883.10.20.24.2.2-errors-abstract" abstract="true">
116
- <sch:assert id="a-67-12798" test="count(cda:code)=1">SHALL contain exactly one [1..1] code (CONF:12798).</sch:assert>
117
- <sch:assert id="a-67-12799" test="count(cda:title[translate(text(), 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz')='measure section'])=1">SHALL contain exactly one [1..1] title="Measure Section" (CONF:12799).</sch:assert>
118
- <sch:assert id="a-67-12800" test="count(cda:text)=1">SHALL contain exactly one [1..1] text (CONF:12800).</sch:assert>
119
- <sch:assert id="a-67-12801" test="count(cda:templateId[@root='2.16.840.1.113883.10.20.24.2.2'])=1">SHALL contain exactly one [1..1] templateId (CONF:12801) such that it SHALL contain exactly one [1..1] @root="2.16.840.1.113883.10.20.24.2.2" (CONF:12802).</sch:assert>
120
- <sch:assert id="a-67-13003" test="count(cda:entry) &gt; 0">SHALL contain at least one [1..*] entry (CONF:13003).</sch:assert>
121
- <sch:assert id="a-67-19230" test="cda:code[@code='55186-1' and @codeSystem='2.16.840.1.113883.6.1']">This code SHALL contain exactly one [1..1] @code="55186-1" Measure Section (CodeSystem: LOINC 2.16.840.1.113883.6.1 STATIC) (CONF:19230).</sch:assert>
122
- </sch:rule>
123
- <sch:rule id="r-urn-oid-2.16.840.1.113883.10.20.24.2.2-errors" context="cda:section[cda:templateId[@root='2.16.840.1.113883.10.20.24.2.2']]">
124
- <sch:extends rule="r-urn-oid-2.16.840.1.113883.10.20.24.2.2-errors-abstract" />
125
- </sch:rule>
126
- </sch:pattern>
127
- <sch:pattern id="p-urn-oid-2.16.840.1.113883.10.20.24.3.98-errors">
128
- <sch:rule id="r-urn-oid-2.16.840.1.113883.10.20.24.3.98-errors-abstract" abstract="true">
129
- <sch:assert id="a-67-12979" test="@classCode='CLUSTER'">SHALL contain exactly one [1..1] @classCode="CLUSTER" cluster (CodeSystem: HL7ActClass 2.16.840.1.113883.5.6 STATIC) (CONF:12979).</sch:assert>
130
- <sch:assert id="a-67-12980" test="@moodCode='EVN'">SHALL contain exactly one [1..1] @moodCode="EVN" event (CodeSystem: ActMood 2.16.840.1.113883.5.1001 STATIC) (CONF:12980).</sch:assert>
131
- <sch:assert id="a-67-12981" test="count(cda:statusCode[@code='completed'])=1">SHALL contain exactly one [1..1] statusCode="completed" completed (CodeSystem: ActStatus 2.16.840.1.113883.5.14 STATIC) (CONF:12981).</sch:assert>
132
- <sch:assert id="a-67-12982" test="count(cda:reference[@typeCode='REFR'][count(cda:externalDocument)=1])=1">SHALL contain exactly one [1..1] reference (CONF:12982) such that it SHALL contain exactly one [1..1] @typeCode="REFR" refers to (CodeSystem: HL7ActRelationshipType 2.16.840.1.113883.5.1002 STATIC) (CONF:12983). SHALL contain exactly one [1..1] externalDocument (CONF:12984).</sch:assert>
133
- <sch:assert id="a-67-26992" test="count(cda:id) &gt; 0">SHALL contain at least one [1..*] id (CONF:26992).</sch:assert>
134
- </sch:rule>
135
- <sch:rule id="r-urn-oid-2.16.840.1.113883.10.20.24.3.98-errors" context="cda:organizer[cda:templateId[@root='2.16.840.1.113883.10.20.24.3.98']]">
136
- <sch:extends rule="r-urn-oid-2.16.840.1.113883.10.20.24.3.98-errors-abstract" />
137
- <sch:assert id="a-67-19532" test="count(cda:templateId[@root='2.16.840.1.113883.10.20.24.3.98'])=1">SHALL contain exactly one [1..1] templateId (CONF:19532) such that it SHALL contain exactly one [1..1] @root="2.16.840.1.113883.10.20.24.3.98" (CONF:19533).</sch:assert>
138
- </sch:rule>
139
- <sch:rule id="r-urn-oid-2.16.840.1.113883.10.20.24.3.98-12982-branch-12982-errors-abstract" abstract="true">
140
- <sch:assert id="a-67-12985-branch-12982" test="cda:externalDocument[count(cda:id[@root]) &gt; 0]">This externalDocument SHALL contain at least one [1..*] id (CONF:12985) such that it SHALL contain exactly one [1..1] @root (CONF:12986).</sch:assert>
141
- <sch:assert id="a-67-12998-branch-12982-c" test="not(testable)">This text is the title of the eMeasure (CONF:12998).</sch:assert>
142
- <sch:assert id="a-67-19534-branch-12982" test="cda:externalDocument[@classCode='DOC']">This externalDocument SHALL contain exactly one [1..1] @classCode="DOC" Document (CodeSystem: HL7ActClass 2.16.840.1.113883.5.6) (CONF:19534).</sch:assert>
143
- </sch:rule>
144
- <sch:rule id="r-urn-oid-2.16.840.1.113883.10.20.24.3.98-12982-branch-12982-errors" context="cda:organizer[cda:templateId[@root='2.16.840.1.113883.10.20.24.3.98']]/cda:reference[@typeCode='REFR'][cda:externalDocument]">
145
- <sch:extends rule="r-urn-oid-2.16.840.1.113883.10.20.24.3.98-12982-branch-12982-errors-abstract" />
146
- </sch:rule>
147
- <sch:rule id="r-urn-oid-2.16.840.1.113883.10.20.24.3.98-12985-branch-12985-errors-abstract" abstract="true">
148
- <sch:assert id="a-67-27008-branch-12985-c" test=".">This ID references an ID of the Quality Measure (CONF:27008).</sch:assert>
149
- </sch:rule>
150
- <sch:rule id="r-urn-oid-2.16.840.1.113883.10.20.24.3.98-12985-branch-12985-errors" context="cda:organizer[cda:templateId[@root='2.16.840.1.113883.10.20.24.3.98']]/cda:reference[@typeCode='REFR'][cda:externalDocument][cda:id[@root]]">
151
- <sch:extends rule="r-urn-oid-2.16.840.1.113883.10.20.24.3.98-12985-branch-12985-errors-abstract" />
152
- </sch:rule>
153
- </sch:pattern>
154
- <sch:pattern id="p-urn-oid-2.16.840.1.113883.10.20.27.1.1-errors">
155
- <sch:rule id="r-urn-oid-2.16.840.1.113883.10.20.27.1.1-errors-abstract" abstract="true">
156
- <sch:assert id="a-77-17208" test="count(cda:templateId[@root='2.16.840.1.113883.10.20.27.1.1'])=1">SHALL contain exactly one [1..1] templateId (CONF:17208) such that it SHALL contain exactly one [1..1] @root="2.16.840.1.113883.10.20.27.1.1" (CONF:17209).</sch:assert>
157
- <sch:assert id="a-77-17210" test="count(cda:code[@codeSystem='2.16.840.1.113883.6.1' or @nullFlavor])=1">SHALL contain exactly one [1..1] code (CodeSystem: LOINC 2.16.840.1.113883.6.1 STATIC) (CONF:17210).</sch:assert>
158
- <sch:assert id="a-77-17211" test="count(cda:title)=1">SHALL contain exactly one [1..1] title (CONF:17211).</sch:assert>
159
- <sch:assert id="a-77-17212" test="count(cda:recordTarget)=1">QRDA III is an aggregate summary report. Therefore CDA's required recordTarget/id is nulled. The recordTarget element is designed for single patient data and is required in all CDA documents. In this case, the document does not contain results for a single patient, but rather for groups of patients, and thus the recordTarget ID in QRDA Category III documents contains a nullFlavor attribute (is nulled).
160
- SHALL contain exactly one [1..1] recordTarget (CONF:17212).</sch:assert>
161
- <sch:assert id="a-77-17213" test="count(cda:custodian)=1">SHALL contain exactly one [1..1] custodian (CONF:17213).</sch:assert>
162
- <sch:assert id="a-77-17214" test="cda:custodian[count(cda:assignedCustodian)=1]">This custodian SHALL contain exactly one [1..1] assignedCustodian (CONF:17214).</sch:assert>
163
- <sch:assert id="a-77-17215" test="cda:custodian/cda:assignedCustodian[count(cda:representedCustodianOrganization)=1]">This assignedCustodian SHALL contain exactly one [1..1] representedCustodianOrganization (CONF:17215).</sch:assert>
164
- <sch:assert id="a-77-17217" test="count(cda:component)=1">A QRDA Category III document contains a Reporting Parameters Section and a Measure section.
165
- SHALL contain exactly one [1..1] component (CONF:17217).</sch:assert>
166
- <sch:assert id="a-77-17225" test="count(cda:legalAuthenticator)=1">SHALL contain exactly one [1..1] legalAuthenticator (CONF:17225).</sch:assert>
167
- <sch:assert id="a-77-17226" test="count(cda:realmCode)=1">SHALL contain exactly one [1..1] realmCode (CONF:17226).</sch:assert>
168
- <sch:assert id="a-77-17227" test="cda:realmCode[@code='US']">This realmCode SHALL contain exactly one [1..1] @code="US" (CONF:17227).</sch:assert>
169
- <sch:assert id="a-77-17232" test="cda:recordTarget[count(cda:patientRole[count(cda:id[@nullFlavor='NA'])=1])=1]">This recordTarget SHALL contain exactly one [1..1] patientRole (CONF:17232) such that it SHALL contain exactly one [1..1] id (CONF:17233). This id SHALL contain exactly one [1..1] @nullFlavor="NA" (CONF:17234).</sch:assert>
170
- <sch:assert id="a-77-17235" test="cda:component[count(cda:structuredBody)=1]">This component SHALL contain exactly one [1..1] structuredBody (CONF:17235).</sch:assert>
171
- <sch:assert id="a-77-17236" test="count(cda:id)=1">SHALL contain exactly one [1..1] id (CONF:17236).</sch:assert>
172
- <sch:assert id="a-77-17237" test="count(cda:effectiveTime)=1">SHALL contain exactly one [1..1] effectiveTime (CONF:17237).</sch:assert>
173
- <sch:assert id="a-77-17238" test="count(cda:confidentialityCode)=1">SHALL contain exactly one [1..1] confidentialityCode, which SHOULD be selected from ValueSet HL7 BasicConfidentialityKind 2.16.840.1.113883.1.11.16926 STATIC 2010-04-21 (CONF:17238).</sch:assert>
174
- <sch:assert id="a-77-17239" test="count(cda:languageCode)=1">SHALL contain exactly one [1..1] languageCode (CONF:17239).</sch:assert>
175
- <sch:assert id="a-77-17281" test="cda:component/cda:structuredBody[count(cda:component[count(cda:section[cda:templateId[@root='2.16.840.1.113883.10.20.27.2.2']])=1])=1]">This structuredBody SHALL contain exactly one [1..1] component (CONF:17281) such that it SHALL contain exactly one [1..1] QRDA Category III Reporting Parameters Section (identifier: urn:oid:2.16.840.1.113883.10.20.27.2.2) (CONF:17282).</sch:assert>
176
- <sch:assert id="a-77-17283" test="cda:component/cda:structuredBody[count(cda:component[count(cda:section[cda:templateId[@root='2.16.840.1.113883.10.20.27.2.1']])=1])=1]">This structuredBody SHALL contain exactly one [1..1] component (CONF:17283) such that it SHALL contain exactly one [1..1] QRDA Category III Measure Section (identifier: urn:oid:2.16.840.1.113883.10.20.27.2.1) (CONF:17301).</sch:assert>
177
- <sch:assert id="a-77-18156" test="count(cda:author[count(cda:assignedAuthor[count(cda:representedOrganization[count(cda:name) &gt; 0])=1])=1][count(cda:time)=1]) &gt; 0">The CDA standard requires an author with an identifier. In addition, the QRDA Category III document type requires that the author be declared as a person or a device. The document can be authored solely by a person or by a device, or the document could be authored by a combination of one or more devices and/or one or more people.
178
- SHALL contain at least one [1..*] author (CONF:18156) such that it SHALL contain exactly one [1..1] assignedAuthor (CONF:18157). This assignedAuthor SHALL contain exactly one [1..1] representedOrganization (CONF:18163). This representedOrganization SHALL contain at least one [1..*] name (CONF:18265). SHALL contain exactly one [1..1] time (CONF:18158).</sch:assert>
179
- <sch:assert id="a-77-18165" test="cda:custodian/cda:assignedCustodian/cda:representedCustodianOrganization[count(cda:id) &gt; 0]">This representedCustodianOrganization SHALL contain at least one [1..*] id (CONF:18165).</sch:assert>
180
- <sch:assert id="a-77-18167" test="cda:legalAuthenticator[count(cda:time)=1]">This legalAuthenticator SHALL contain exactly one [1..1] time (CONF:18167).</sch:assert>
181
- <sch:assert id="a-77-18168" test="cda:legalAuthenticator[count(cda:signatureCode)=1]">This legalAuthenticator SHALL contain exactly one [1..1] signatureCode (CONF:18168).</sch:assert>
182
- <sch:assert id="a-77-18169" test="cda:legalAuthenticator/cda:signatureCode[@code='S']">This signatureCode SHALL contain exactly one [1..1] @code="S" (CONF:18169).</sch:assert>
183
- <sch:assert id="a-77-18171" test="not(cda:documentationOf) or cda:documentationOf[count(cda:serviceEvent)=1]">The documentationOf, if present, SHALL contain exactly one [1..1] serviceEvent (CONF:18171).</sch:assert>
184
- <sch:assert id="a-77-18172" test="not(cda:documentationOf/cda:serviceEvent) or cda:documentationOf/cda:serviceEvent[@classCode='PCPR']">This serviceEvent SHALL contain exactly one [1..1] @classCode="PCPR" Care Provision (CodeSystem: HL7ActClass 2.16.840.1.113883.5.6 STATIC) (CONF:18172).</sch:assert>
185
- <sch:assert id="a-77-18173" test="not(cda:documentationOf/cda:serviceEvent) or cda:documentationOf/cda:serviceEvent[count(cda:performer) &gt; 0]">This serviceEvent SHALL contain at least one [1..*] performer (CONF:18173).</sch:assert>
186
- <sch:assert id="a-77-18174" test="not(cda:documentationOf/cda:serviceEvent/cda:performer) or cda:documentationOf/cda:serviceEvent/cda:performer[@typeCode='PRF']">Such performers SHALL contain exactly one [1..1] @typeCode="PRF" Performer (CodeSystem: HL7ParticipationType 2.16.840.1.113883.5.90 STATIC) (CONF:18174).</sch:assert>
187
- <sch:assert id="a-77-18176" test="not(cda:documentationOf/cda:serviceEvent/cda:performer) or cda:documentationOf/cda:serviceEvent/cda:performer[count(cda:assignedEntity)=1]">Such performers SHALL contain exactly one [1..1] assignedEntity (CONF:18176).</sch:assert>
188
- <sch:assert id="a-77-18177" test="not(cda:documentationOf/cda:serviceEvent/cda:performer/cda:assignedEntity) or cda:documentationOf/cda:serviceEvent/cda:performer/cda:assignedEntity[count(cda:id)=1]">This assignedEntity id/@root coupled with the id/@extension can be used to represent the individual provider's National Provider Identification number (NPI). Other assignedEntity ids may be present.
189
- This assignedEntity SHALL contain exactly one [1..1] id (CONF:18177) such that it</sch:assert>
190
- <sch:assert id="a-77-18180" test="not(cda:documentationOf/cda:serviceEvent/cda:performer/cda:assignedEntity) or cda:documentationOf/cda:serviceEvent/cda:performer/cda:assignedEntity[count(cda:representedOrganization)=1]">This assignedEntity SHALL contain exactly one [1..1] representedOrganization (CONF:18180).</sch:assert>
191
- <sch:assert id="a-77-18186" test="count(cda:typeId)=1">SHALL contain exactly one [1..1] typeId (CONF:18186).</sch:assert>
192
- <sch:assert id="a-77-18187" test="cda:typeId[@root='2.16.840.1.113883.1.3']">This typeId SHALL contain exactly one [1..1] @root="2.16.840.1.113883.1.3" (CONF:18187).</sch:assert>
193
- <sch:assert id="a-77-18188" test="cda:typeId[@extension='POCD_HD000040']">This typeId SHALL contain exactly one [1..1] @extension="POCD_HD000040" (CONF:18188).</sch:assert>
194
- <sch:assert id="a-77-18189-c" test="cda:effectiveTime[string-length(@value)&gt;=8]">The content SHALL be a conformant US Realm Date and Time (DTM.US.FIELDED) (2.16.840.1.113883.10.20.22.5.4) (CONF:18189).</sch:assert>
195
- <sch:assert id="a-77-18265-c" test="cda:author/cda:assignedAuthor/cda:representedOrganization[count(cda:name) &lt; 2]">This representedOrganization SHALL contain at least one [1..*] name (CONF:18265).</sch:assert>
196
- <sch:assert id="a-77-18360" test="not(cda:authorization) or cda:authorization[count(cda:consent)=1]">The authorization, if present, SHALL contain exactly one [1..1] consent (CONF:18360).</sch:assert>
197
- <sch:assert id="a-77-18361" test="not(cda:authorization/cda:consent) or cda:authorization/cda:consent[count(cda:id)=1]">The consent/id is the identifier of the consent given by the eligible provider.
198
- This consent SHALL contain exactly one [1..1] id (CONF:18361).</sch:assert>
199
- <sch:assert id="a-77-18363" test="not(cda:authorization/cda:consent) or cda:authorization/cda:consent[count(cda:code[@codeSystem='2.16.840.1.113883.6.96' or @nullFlavor])=1]">This consent SHALL contain exactly one [1..1] code (CodeSystem: SNOMED CT 2.16.840.1.113883.6.96 STATIC) (CONF:18363).</sch:assert>
200
- <sch:assert id="a-77-18364" test="not(cda:authorization/cda:consent) or cda:authorization/cda:consent[count(cda:statusCode)=1]">This consent SHALL contain exactly one [1..1] statusCode (CONF:18364).</sch:assert>
201
- <sch:assert id="a-77-19474" test="not(cda:documentationOf/cda:serviceEvent/cda:performer/cda:assignedEntity) or cda:documentationOf/cda:serviceEvent/cda:performer/cda:assignedEntity[count(cda:id) &gt; 0]">This assignedEntity SHALL contain at least one [1..*] id (CONF:19474).</sch:assert>
202
- <sch:assert id="a-77-19549" test="cda:code[@code='55184-6' and @codeSystem='2.16.840.1.113883.6.1']">This code SHALL contain exactly one [1..1] @code="55184-6" " Quality Reporting Document Architecture Calculated Summary Report (CodeSystem: LOINC 2.16.840.1.113883.6.1) (CONF:19549).</sch:assert>
203
- <sch:assert id="a-77-19550" test="not(cda:authorization/cda:consent/cda:code) or cda:authorization/cda:consent/cda:code[@code='425691002' and @codeSystem='2.16.840.1.113883.6.96']">This code SHALL contain exactly one [1..1] @code="425691002" Consent given for electronic record sharing (CodeSystem: SNOMED CT 2.16.840.1.113883.6.96) (CONF:19550).</sch:assert>
204
- <sch:assert id="a-77-19551" test="not(cda:authorization/cda:consent/cda:statusCode) or cda:authorization/cda:consent/cda:statusCode[@code='completed']">This statusCode SHALL contain exactly one [1..1] @code="completed" Completed (CodeSystem: ActStatus 2.16.840.1.113883.5.14) (CONF:19551).</sch:assert>
205
- <sch:assert id="a-77-19667-c" test="cda:author/cda:assignedAuthor[count(cda:assignedPerson)=1 or count(cda:assignedAuthoringDevice)=1]">There SHALL be exactly one assignedAuthor/assignedPerson or exactly one assignedAuthor/assignedAuthoringDevice (CONF:19667).</sch:assert>
206
- <sch:assert id="a-77-19669" test="cda:languageCode[@code]">This languageCode SHALL contain exactly one [1..1] @code, which SHALL be selected from ValueSet Language 2.16.840.1.113883.1.11.11526 DYNAMIC (CONF:19669).</sch:assert>
207
- <sch:assert id="a-77-19670" test="cda:legalAuthenticator[count(cda:assignedEntity)=1]">This legalAuthenticator SHALL contain exactly one [1..1] assignedEntity (CONF:19670).</sch:assert>
208
- <sch:assert id="a-77-19672" test="not(cda:legalAuthenticator/cda:assignedEntity/cda:representedOrganization) or cda:legalAuthenticator/cda:assignedEntity/cda:representedOrganization[count(cda:id) &gt; 0]">The representedOrganization, if present, SHALL contain at least one [1..*] id (CONF:19672).</sch:assert>
209
- </sch:rule>
210
- <sch:rule id="r-urn-oid-2.16.840.1.113883.10.20.27.1.1-errors" context="cda:ClinicalDocument[cda:templateId[@root='2.16.840.1.113883.10.20.27.1.1']]">
211
- <sch:extends rule="r-urn-oid-2.16.840.1.113883.10.20.27.1.1-errors-abstract" />
212
- </sch:rule>
213
- </sch:pattern>
214
- <sch:pattern id="p-urn-oid-2.16.840.1.113883.10.20.27.2.1-errors">
215
- <sch:rule id="r-urn-oid-2.16.840.1.113883.10.20.27.2.1-errors-abstract" abstract="true">
216
- <sch:extends rule="r-urn-oid-2.16.840.1.113883.10.20.24.2.2-errors-abstract" />
217
- <sch:assert id="a-77-17284" test="count(cda:templateId[@root='2.16.840.1.113883.10.20.27.2.1'])=1">SHALL contain exactly one [1..1] templateId (CONF:17284) such that it SHALL contain exactly one [1..1] @root="2.16.840.1.113883.10.20.27.2.1" (CONF:17285).</sch:assert>
218
- <sch:assert id="a-77-17906" test="count(cda:entry[count(cda:organizer[cda:templateId[@root='2.16.840.1.113883.10.20.27.3.1']])=1]) &gt; 0">SHALL contain at least one [1..*] entry (CONF:17906) such that it SHALL contain exactly one [1..1] Measure Reference and Results (identifier: urn:oid:2.16.840.1.113883.10.20.27.3.1) (CONF:17907).</sch:assert>
219
- </sch:rule>
220
- <sch:rule id="r-urn-oid-2.16.840.1.113883.10.20.27.2.1-errors" context="cda:section[cda:templateId[@root='2.16.840.1.113883.10.20.27.2.1']]">
221
- <sch:extends rule="r-urn-oid-2.16.840.1.113883.10.20.27.2.1-errors-abstract" />
222
- </sch:rule>
223
- </sch:pattern>
224
- <sch:pattern id="p-urn-oid-2.16.840.1.113883.10.20.27.3.3-errors">
225
- <sch:rule id="r-urn-oid-2.16.840.1.113883.10.20.27.3.3-errors-abstract" abstract="true">
226
- <sch:assert id="a-77-17563" test="@classCode='OBS'">SHALL contain exactly one [1..1] @classCode="OBS" (CodeSystem: HL7ActClass 2.16.840.1.113883.5.6 STATIC) (CONF:17563).</sch:assert>
227
- <sch:assert id="a-77-17564" test="@moodCode='EVN'">SHALL contain exactly one [1..1] @moodCode="EVN" (CodeSystem: ActMood 2.16.840.1.113883.5.1001 STATIC) (CONF:17564).</sch:assert>
228
- <sch:assert id="a-77-17565" test="count(cda:templateId[@root='2.16.840.1.113883.10.20.27.3.3'])=1">SHALL contain exactly one [1..1] templateId (CONF:17565) such that it SHALL contain exactly one [1..1] @root="2.16.840.1.113883.10.20.27.3.3" (CONF:18095).</sch:assert>
229
- <sch:assert id="a-77-17566" test="count(cda:code)=1">SHALL contain exactly one [1..1] code (CONF:17566).</sch:assert>
230
- <sch:assert id="a-77-17567" test="count(cda:value[@xsi:type='INT'])=1">SHALL contain exactly one [1..1] value with @xsi:type="INT" (CONF:17567).</sch:assert>
231
- <sch:assert id="a-77-17568" test="cda:value[@xsi:type='INT'][@value]">This value SHALL contain exactly one [1..1] @value (CONF:17568).</sch:assert>
232
- <sch:assert id="a-77-18393" test="not(cda:referenceRange) or cda:referenceRange[count(cda:observationRange)=1]">The referenceRange, if present, SHALL contain exactly one [1..1] observationRange (CONF:18393).</sch:assert>
233
- <sch:assert id="a-77-18394" test="not(cda:referenceRange/cda:observationRange) or cda:referenceRange/cda:observationRange[count(cda:value[@xsi:type='INT'])=1]">This observationRange SHALL contain exactly one [1..1] value with @xsi:type="INT" (CONF:18394).</sch:assert>
234
- <sch:assert id="a-77-19508" test="cda:code[@code='MSRAGG' and @codeSystem='2.16.840.1.113883.5.4']">This code SHALL contain exactly one [1..1] @code="MSRAGG" rate aggregation (CodeSystem: ActCode 2.16.840.1.113883.5.4) (CONF:19508).</sch:assert>
235
- <sch:assert id="a-77-19509" test="count(cda:methodCode)=1">SHALL contain exactly one [1..1] methodCode (CONF:19509).</sch:assert>
236
- <sch:assert id="a-77-19510" test="cda:methodCode[@code='COUNT']">This methodCode SHALL contain exactly one [1..1] @code="COUNT" Count (CodeSystem: ObservationMethod 2.16.840.1.113883.5.84) (CONF:19510).</sch:assert>
237
- </sch:rule>
238
- <sch:rule id="r-urn-oid-2.16.840.1.113883.10.20.27.3.3-errors" context="cda:observation[cda:templateId[@root='2.16.840.1.113883.10.20.27.3.3']]">
239
- <sch:extends rule="r-urn-oid-2.16.840.1.113883.10.20.27.3.3-errors-abstract" />
240
- </sch:rule>
241
- </sch:pattern>
242
- <sch:pattern id="p-urn-oid-2.16.840.1.113883.10.20.27.3.2-errors">
243
- <sch:rule id="r-urn-oid-2.16.840.1.113883.10.20.27.3.2-errors-abstract" abstract="true">
244
- <sch:assert id="a-77-17569" test="@classCode='OBS'">SHALL contain exactly one [1..1] @classCode="OBS" (CodeSystem: HL7ActClass 2.16.840.1.113883.5.6 STATIC) (CONF:17569).</sch:assert>
245
- <sch:assert id="a-77-17570" test="@moodCode='EVN'">SHALL contain exactly one [1..1] @moodCode="EVN" (CodeSystem: ActMood 2.16.840.1.113883.5.1001 STATIC) (CONF:17570).</sch:assert>
246
- <sch:assert id="a-77-17571" test="count(cda:code)=1">SHALL contain exactly one [1..1] code (CONF:17571).</sch:assert>
247
- <sch:assert id="a-77-17572" test="count(cda:value)=1">SHALL contain exactly one [1..1] value (CONF:17572).</sch:assert>
248
- <sch:assert id="a-77-18096" test="count(cda:templateId[@root='2.16.840.1.113883.10.20.27.3.2'])=1">SHALL contain exactly one [1..1] templateId (CONF:18096) such that it SHALL contain exactly one [1..1] @root="2.16.840.1.113883.10.20.27.3.2" (CONF:18097).</sch:assert>
249
- <sch:assert id="a-77-18242" test="count(cda:methodCode[@code=document('voc.xml')/voc:systems/voc:system[@valueSetOid='2.16.840.1.113883.1.11.20450']/voc:code/@value])=1">SHALL contain exactly one [1..1] methodCode, which SHALL be selected from ValueSet ObservationMethodAggregate 2.16.840.1.113883.1.11.20450 STATIC (CONF:18242).</sch:assert>
250
- <sch:assert id="a-77-18243" test="count(cda:reference)=1">SHALL contain exactly one [1..1] reference (CONF:18243).</sch:assert>
251
- <sch:assert id="a-77-18244" test="cda:reference[count(cda:externalObservation)=1]">This reference SHALL contain exactly one [1..1] externalObservation (CONF:18244).</sch:assert>
252
- <sch:assert id="a-77-18245" test="cda:reference/cda:externalObservation[count(cda:id)=1]">This externalObservation SHALL contain exactly one [1..1] id (CONF:18245).</sch:assert>
253
- <sch:assert id="a-77-18390" test="not(cda:referenceRange) or cda:referenceRange[count(cda:observationRange)=1]">The referenceRange, if present, SHALL contain exactly one [1..1] observationRange (CONF:18390).</sch:assert>
254
- <sch:assert id="a-77-18391" test="not(cda:referenceRange/cda:observationRange) or cda:referenceRange/cda:observationRange[count(cda:value)=1]">This observationRange SHALL contain exactly one [1..1] value (CONF:18391).</sch:assert>
255
- </sch:rule>
256
- <sch:rule id="r-urn-oid-2.16.840.1.113883.10.20.27.3.2-errors" context="cda:observation[cda:templateId[@root='2.16.840.1.113883.10.20.27.3.2']]">
257
- <sch:extends rule="r-urn-oid-2.16.840.1.113883.10.20.27.3.2-errors-abstract" />
258
- </sch:rule>
259
- </sch:pattern>
260
- <sch:pattern id="p-urn-oid-2.16.840.1.113883.10.20.27.3.4-errors">
261
- <sch:rule id="r-urn-oid-2.16.840.1.113883.10.20.27.3.4-errors-abstract" abstract="true">
262
- <sch:assert id="a-77-17575" test="@classCode='OBS'">SHALL contain exactly one [1..1] @classCode="OBS" (CodeSystem: HL7ActClass 2.16.840.1.113883.5.6 STATIC) (CONF:17575).</sch:assert>
263
- <sch:assert id="a-77-17576" test="@moodCode='EVN'">SHALL contain exactly one [1..1] @moodCode="EVN" (CodeSystem: ActMood 2.16.840.1.113883.5.1001 STATIC) (CONF:17576).</sch:assert>
264
- <sch:assert id="a-77-17577" test="count(cda:code)=1">SHALL contain exactly one [1..1] code (CONF:17577).</sch:assert>
265
- <sch:assert id="a-77-17578" test="cda:code[@code='ASSERTION' and @codeSystem='2.16.840.1.113883.5.4']">This code SHALL contain exactly one [1..1] @code="ASSERTION" Assertion (CodeSystem: ActCode 2.16.840.1.113883.5.4 STATIC) (CONF:17578).</sch:assert>
266
- <sch:assert id="a-77-17579" test="count(cda:statusCode)=1">SHALL contain exactly one [1..1] statusCode (CONF:17579).</sch:assert>
267
- <sch:assert id="a-77-17581" test="count(cda:entryRelationship[@typeCode='SUBJ'][@inversionInd='true'][count(cda:observation[cda:templateId[@root='2.16.840.1.113883.10.20.27.3.3']])=1])=1">SHALL contain exactly one [1..1] entryRelationship (CONF:17581) such that it SHALL contain exactly one [1..1] @typeCode="SUBJ" (CONF:17582). SHALL contain exactly one [1..1] @inversionInd="true" (CONF:17583). SHALL contain exactly one [1..1] Aggregate Count (identifier: urn:oid:2.16.840.1.113883.10.20.27.3.3) (CONF:17584).</sch:assert>
268
- <sch:assert id="a-77-18093" test="count(cda:templateId[@root='2.16.840.1.113883.10.20.27.3.4'])=1">SHALL contain exactly one [1..1] templateId (CONF:18093) such that it SHALL contain exactly one [1..1] @root="2.16.840.1.113883.10.20.27.3.4" (CONF:18094).</sch:assert>
269
- <sch:assert id="a-77-18201" test="cda:statusCode[@code='completed']">This statusCode SHALL contain exactly one [1..1] @code="completed" Completed (CodeSystem: ActStatus 2.16.840.1.113883.5.14 STATIC) (CONF:18201).</sch:assert>
270
- <sch:assert id="a-77-18204" test="count(cda:reference)=1">SHALL contain exactly one [1..1] reference (CONF:18204).</sch:assert>
271
- <sch:assert id="a-77-18205" test="cda:reference[@typeCode='REFR']">This reference SHALL contain exactly one [1..1] @typeCode="REFR" (CodeSystem: HL7ActRelationshipType 2.16.840.1.113883.5.1002 STATIC) (CONF:18205).</sch:assert>
272
- <sch:assert id="a-77-18206" test="cda:reference[count(cda:externalObservation)=1]">This reference SHALL contain exactly one [1..1] externalObservation (CONF:18206).</sch:assert>
273
- <sch:assert id="a-77-18207" test="cda:reference/cda:externalObservation[count(cda:id)=1]">If this reference is to an eMeasure, this id equals the referenced stratification id defined in the eMeasure.
274
- This externalObservation SHALL contain exactly one [1..1] id (CONF:18207).</sch:assert>
275
- <sch:assert id="a-77-18259-c" test="not(testable)">If this Reporting Stratum references an eMeasure, and the value of externalObservation/id equals the reference stratification id defined in the eMeasure, then this value SHALL be the same as the contents of the observation/code element in the eMeasure that is defined along with the observation/id element (CONF:18259).</sch:assert>
276
- </sch:rule>
277
- <sch:rule id="r-urn-oid-2.16.840.1.113883.10.20.27.3.4-errors" context="cda:observation[cda:templateId[@root='2.16.840.1.113883.10.20.27.3.4']]">
278
- <sch:extends rule="r-urn-oid-2.16.840.1.113883.10.20.27.3.4-errors-abstract" />
279
- </sch:rule>
280
- </sch:pattern>
281
- <sch:pattern id="p-urn-oid-2.16.840.1.113883.10.20.27.3.5-errors">
282
- <sch:rule id="r-urn-oid-2.16.840.1.113883.10.20.27.3.5-errors-abstract" abstract="true">
283
- <sch:assert id="a-77-17615" test="@classCode='OBS'">SHALL contain exactly one [1..1] @classCode="OBS" (CodeSystem: HL7ActClass 2.16.840.1.113883.5.6 STATIC) (CONF:17615).</sch:assert>
284
- <sch:assert id="a-77-17616" test="@moodCode='EVN'">SHALL contain exactly one [1..1] @moodCode="EVN" (CodeSystem: ActMood 2.16.840.1.113883.5.1001 STATIC) (CONF:17616).</sch:assert>
285
- <sch:assert id="a-77-17617" test="count(cda:code)=1">SHALL contain exactly one [1..1] code (CONF:17617).</sch:assert>
286
- <sch:assert id="a-77-17618" test="count(cda:value[@xsi:type='CD'])=1">SHALL contain exactly one [1..1] value with @xsi:type="CD", where the code SHOULD be selected from ValueSet ObservationPopulationInclusion 2.16.840.1.113883.1.11.20369 DYNAMIC (CONF:17618).</sch:assert>
287
- <sch:assert id="a-77-17619" test="count(cda:entryRelationship[@typeCode='SUBJ'][@inversionInd='true'][count(cda:observation[cda:templateId[@root='2.16.840.1.113883.10.20.27.3.3']])=1])=1">SHALL contain exactly one [1..1] entryRelationship (CONF:17619) such that it SHALL contain exactly one [1..1] Aggregate Count (identifier: urn:oid:2.16.840.1.113883.10.20.27.3.3) (CONF:17620). SHALL contain exactly one [1..1] @typeCode="SUBJ" (CONF:17910). SHALL contain exactly one [1..1] @inversionInd="true" (CONF:17911).</sch:assert>
288
- <sch:assert id="a-77-17912" test="count(cda:templateId[@root='2.16.840.1.113883.10.20.27.3.5'])=1">SHALL contain exactly one [1..1] templateId (CONF:17912) such that it SHALL contain exactly one [1..1] @root="2.16.840.1.113883.10.20.27.3.5" (CONF:17913).</sch:assert>
289
- <sch:assert id="a-77-18198" test="cda:code[@code='ASSERTION' and @codeSystem='2.16.840.1.113883.5.4']">This code SHALL contain exactly one [1..1] @code="ASSERTION" Assertion (CodeSystem: ActCode 2.16.840.1.113883.5.4 STATIC) (CONF:18198).</sch:assert>
290
- <sch:assert id="a-77-18199" test="count(cda:statusCode)=1">SHALL contain exactly one [1..1] statusCode (CodeSystem: ActStatus 2.16.840.1.113883.5.14 STATIC) (CONF:18199).</sch:assert>
291
- <sch:assert id="a-77-18239" test="count(cda:reference[count(cda:externalObservation[count(cda:id)=1])=1])=1">SHALL contain exactly one [1..1] reference (CONF:18239) such that it SHALL contain exactly one [1..1] externalObservation (CONF:18240). This externalObservation SHALL contain exactly one [1..1] id (CONF:18241).</sch:assert>
292
- <sch:assert id="a-77-19555" test="cda:statusCode[@code='completed']">This statusCode SHALL contain exactly one [1..1] @code="completed" Completed (CodeSystem: ActStatus 2.16.840.1.113883.5.14) (CONF:19555).</sch:assert>
293
- </sch:rule>
294
- <sch:rule id="r-urn-oid-2.16.840.1.113883.10.20.27.3.5-errors" context="cda:observation[cda:templateId[@root='2.16.840.1.113883.10.20.27.3.5']]">
295
- <sch:extends rule="r-urn-oid-2.16.840.1.113883.10.20.27.3.5-errors-abstract" />
296
- </sch:rule>
297
- </sch:pattern>
298
- <sch:pattern id="p-urn-oid-2.16.840.1.113883.10.20.27.3.1-errors">
299
- <sch:rule id="r-urn-oid-2.16.840.1.113883.10.20.27.3.1-errors-abstract" abstract="true">
300
- <sch:extends rule="r-urn-oid-2.16.840.1.113883.10.20.24.3.98-errors-abstract" />
301
- <sch:assert id="a-77-17887" test="@classCode='CLUSTER'">SHALL contain exactly one [1..1] @classCode="CLUSTER" (CodeSystem: HL7ActClass 2.16.840.1.113883.5.6 STATIC) (CONF:17887).</sch:assert>
302
- <sch:assert id="a-77-17888" test="@moodCode='EVN'">SHALL contain exactly one [1..1] @moodCode="EVN" (CodeSystem: ActMood 2.16.840.1.113883.5.1001 STATIC) (CONF:17888).</sch:assert>
303
- <sch:assert id="a-77-17889" test="count(cda:statusCode)=1">SHALL contain exactly one [1..1] statusCode (CONF:17889).</sch:assert>
304
- <sch:assert id="a-77-17890" test="count(cda:reference[@typeCode='REFR'][count(cda:externalDocument[@classCode='DOC'])=1])=1">SHALL contain exactly one [1..1] reference (CONF:17890) such that it SHALL contain exactly one [1..1] @typeCode="REFR" (CONF:17891). SHALL contain exactly one [1..1] externalDocument (CodeSystem: HL7ActClass 2.16.840.1.113883.5.6 STATIC) (CONF:17892). This externalDocument SHALL contain exactly one [1..1] @classCode="DOC" Document (CodeSystem: HL7ActClass 2.16.840.1.113883.5.6) (CONF:19548).</sch:assert>
305
- <sch:assert id="a-77-17908" test="count(cda:templateId[@root='2.16.840.1.113883.10.20.27.3.1'])=1">SHALL contain exactly one [1..1] templateId (CONF:17908) such that it SHALL contain exactly one [1..1] @root="2.16.840.1.113883.10.20.27.3.1" (CONF:17909).</sch:assert>
306
- <sch:assert id="a-77-18354-c" test="not(cda:reference/cda:externalObservation) or cda:reference/cda:externalObservation">SHALL contain exactly one [1..1] externalObservation (CONF:18354). This externalObservation SHALL contain at least one [1..*] id (CONF:18355). This externalObservation SHALL contain exactly one [1..1] code (CodeSystem: LOINC 2.16.840.1.113883.6.1 STATIC) (CONF:18357). This code SHALL contain exactly one [1..1] @code="55185-3" measure set (CodeSystem: LOINC 2.16.840.1.113883.6.1) (CONF:19554). This externalObservation SHALL contain exactly one [1..1] text (CONF:18358).</sch:assert>
307
- <sch:assert id="a-77-18355-c" test="count(cda:reference/cda:externalObservation) = count(cda:reference/cda:externalObservation[cda:id])">This externalObservation SHALL contain at least one [1..*] id (CONF:18355).</sch:assert>
308
- <sch:assert id="a-77-18356-c" test="not(testable)">This id SHALL equal the id of the corresponding measure set definition within the eMeasure (CONF:18356).</sch:assert>
309
- <sch:assert id="a-77-18357-c" test="not(cda:reference/cda:externalObservation) or cda:reference/cda:externalObservation[cda:code[@code='55185-3'][@codeSystem='2.16.840.1.113883.6.1']]">This externalObservation SHALL contain exactly one [1..1] code (CodeSystem: LOINC 2.16.840.1.113883.6.1 STATIC) (CONF:18357). This code SHALL contain exactly one [1..1] @code="55185-3" measure set (CodeSystem: LOINC 2.16.840.1.113883.6.1) (CONF:19554).</sch:assert>
310
- <sch:assert id="a-77-18358-c" test="not(cda:reference/cda:externalObservation) or cda:reference/cda:externalObservation[count(cda:text)=1]">This externalObservation SHALL contain exactly one [1..1] text (CONF:18358).</sch:assert>
311
- <sch:assert id="a-77-18425" test="count(cda:component[count(cda:observation[cda:templateId[@root='2.16.840.1.113883.10.20.27.3.5']])=1]) &gt; 0">SHALL contain at least one [1..*] component (CONF:18425) such that it SHALL contain exactly one [1..1] Measure Data (identifier: urn:oid:2.16.840.1.113883.10.20.27.3.5) (CONF:18426).</sch:assert>
312
- <sch:assert id="a-77-19552" test="cda:statusCode[@code='completed']">This statusCode SHALL contain exactly one [1..1] @code="completed" Completed (CodeSystem: ActStatus 2.16.840.1.113883.5.14) (CONF:19552).</sch:assert>
313
- <sch:assert id="a-77-19554-c" test="not(tested)">This code SHALL contain exactly one [1..1] @code="55185-3" measure set (CodeSystem: LOINC 2.16.840.1.113883.6.1) (CONF:19554).</sch:assert>
314
- </sch:rule>
315
- <sch:rule id="r-urn-oid-2.16.840.1.113883.10.20.27.3.1-errors" context="cda:organizer[cda:templateId[@root='2.16.840.1.113883.10.20.27.3.1']]">
316
- <sch:extends rule="r-urn-oid-2.16.840.1.113883.10.20.27.3.1-errors-abstract" />
317
- </sch:rule>
318
- <sch:rule id="r-urn-oid-2.16.840.1.113883.10.20.27.3.1-17890-branch-17890-errors-abstract" abstract="true">
319
- <sch:assert id="a-77-18192-branch-17890" test="cda:externalDocument[count(cda:id[@root='2.16.840.1.113883.4.738'][@extension])=1]">This externalDocument SHALL contain exactly one [1..1] id (CONF:18192) such that it SHALL contain exactly one [1..1] @root="2.16.840.1.113883.4.738" (CONF:18193).
320
- Note: This OID indicates that the @extension contains the version specific identifier for the eMeasure SHALL contain exactly one [1..1] @extension (CONF:21159).
321
- Note: This @extension SHALL equal the version specific identifier for eMeasure (i.e. QualityMeasureDocument/id)</sch:assert>
322
- <sch:assert id="a-77-19553-branch-17890" test="not(cda:externalDocument/cda:code) or cda:externalDocument/cda:code[@code='57024-2' and @codeSystem='2.16.840.1.113883.6.1']">The code, if present, SHALL contain exactly one [1..1] @code="57024-2" Health Quality Measure Document (CodeSystem: LOINC 2.16.840.1.113883.6.1) (CONF:19553).</sch:assert>
323
- </sch:rule>
324
- <sch:rule id="r-urn-oid-2.16.840.1.113883.10.20.27.3.1-17890-branch-17890-errors" context="cda:organizer[cda:templateId[@root='2.16.840.1.113883.10.20.27.3.1']]/cda:reference[@typeCode='REFR'][cda:externalDocument[@classCode='DOC']]">
325
- <sch:extends rule="r-urn-oid-2.16.840.1.113883.10.20.27.3.1-17890-branch-17890-errors-abstract" />
326
- </sch:rule>
327
- </sch:pattern>
328
- <sch:pattern id="p-urn-oid-2.16.840.1.113883.10.20.27.3.10-errors">
329
- <sch:rule id="r-urn-oid-2.16.840.1.113883.10.20.27.3.10-errors-abstract" abstract="true">
330
- <sch:assert id="a-77-18100" test="count(cda:statusCode)=1">SHALL contain exactly one [1..1] statusCode (CONF:18100).</sch:assert>
331
- <sch:assert id="a-77-18101" test="cda:statusCode[@code='completed']">This statusCode SHALL contain exactly one [1..1] @code="completed" Completed (CodeSystem: ActStatus 2.16.840.1.113883.5.14 STATIC) (CONF:18101).</sch:assert>
332
- <sch:assert id="a-77-18102" test="count(cda:entryRelationship[@typeCode='SUBJ'][@inversionInd='true'][count(cda:observation[cda:templateId[@root='2.16.840.1.113883.10.20.27.3.3']])=1])=1">SHALL contain exactly one [1..1] entryRelationship (CONF:18102) such that it SHALL contain exactly one [1..1] @typeCode="SUBJ" Has Subject (CodeSystem: HL7ActRelationshipType 2.16.840.1.113883.5.1002 STATIC) (CONF:18103). SHALL contain exactly one [1..1] @inversionInd="true" (CONF:18104). SHALL contain exactly one [1..1] Aggregate Count (identifier: urn:oid:2.16.840.1.113883.10.20.27.3.3) (CONF:18105).</sch:assert>
333
- <sch:assert id="a-77-18209" test="@classCode='OBS'">SHALL contain exactly one [1..1] @classCode="OBS" (CodeSystem: HL7ActClass 2.16.840.1.113883.5.6 STATIC) (CONF:18209).</sch:assert>
334
- <sch:assert id="a-77-18210" test="@moodCode='EVN'">SHALL contain exactly one [1..1] @moodCode="EVN" (CodeSystem: ActMood 2.16.840.1.113883.5.1001 STATIC) (CONF:18210).</sch:assert>
335
- <sch:assert id="a-77-18211" test="count(cda:templateId[@root='2.16.840.1.113883.10.20.27.3.10'])=1">SHALL contain exactly one [1..1] templateId (CONF:18211) such that it SHALL contain exactly one [1..1] @root="2.16.840.1.113883.10.20.27.3.10" (CONF:18212).</sch:assert>
336
- <sch:assert id="a-77-18213" test="count(cda:code)=1">SHALL contain exactly one [1..1] code (CONF:18213).</sch:assert>
337
- <sch:assert id="a-77-18214" test="cda:code[@code='184102003' and @codeSystem='2.16.840.1.113883.6.96']">This code SHALL contain exactly one [1..1] @code="184102003" Patient postal code (CodeSystem: SNOMED CT 2.16.840.1.113883.6.96 STATIC) (CONF:18214).</sch:assert>
338
- <sch:assert id="a-77-18215" test="count(cda:value[@xsi:type='ST'])=1">SHALL contain exactly one [1..1] value with @xsi:type="ST" (CONF:18215).</sch:assert>
339
- </sch:rule>
340
- <sch:rule id="r-urn-oid-2.16.840.1.113883.10.20.27.3.10-errors" context="cda:observation[cda:templateId[@root='2.16.840.1.113883.10.20.27.3.10']]">
341
- <sch:extends rule="r-urn-oid-2.16.840.1.113883.10.20.27.3.10-errors-abstract" />
342
- </sch:rule>
343
- </sch:pattern>
344
- <sch:pattern id="p-urn-oid-2.16.840.1.113883.10.20.27.3.9-errors">
345
- <sch:rule id="r-urn-oid-2.16.840.1.113883.10.20.27.3.9-errors-abstract" abstract="true">
346
- <sch:extends rule="r-urn-oid-2.16.840.1.113883.10.20.24.3.55-errors-abstract" />
347
- <sch:assert id="a-77-18106" test="count(cda:statusCode)=1">SHALL contain exactly one [1..1] statusCode (CONF:18106).</sch:assert>
348
- <sch:assert id="a-77-18107" test="cda:statusCode[@code='completed']">This statusCode SHALL contain exactly one [1..1] @code="completed" Completed (CodeSystem: ActStatus 2.16.840.1.113883.5.14 STATIC) (CONF:18107).</sch:assert>
349
- <sch:assert id="a-77-18108" test="count(cda:entryRelationship[@typeCode='SUBJ'][@inversionInd='true'][count(cda:observation[cda:templateId[@root='2.16.840.1.113883.10.20.27.3.3']])=1])=1">SHALL contain exactly one [1..1] entryRelationship (CONF:18108) such that it SHALL contain exactly one [1..1] @typeCode="SUBJ" Has Subject (CodeSystem: HL7ActRelationshipType 2.16.840.1.113883.5.1002 STATIC) (CONF:18109). SHALL contain exactly one [1..1] @inversionInd="true" (CONF:18110). SHALL contain exactly one [1..1] Aggregate Count (identifier: urn:oid:2.16.840.1.113883.10.20.27.3.3) (CONF:18111).</sch:assert>
350
- <sch:assert id="a-77-18237" test="count(cda:templateId[@root='2.16.840.1.113883.10.20.27.3.9'])=1">SHALL contain exactly one [1..1] templateId (CONF:18237) such that it SHALL contain exactly one [1..1] @root="2.16.840.1.113883.10.20.27.3.9" (CONF:18238).</sch:assert>
351
- <sch:assert id="a-77-18250" test="count(cda:value[@xsi:type='CD'])=1">SHALL contain exactly one [1..1] value with @xsi:type="CD", where the code SHALL be selected from ValueSet Source of Payment Typology (PHDSC) 2.16.840.1.114222.4.11.3591 DYNAMIC (CONF:18250).</sch:assert>
352
- <sch:assert id="a-77-21155" test="@classCode='OBS'">SHALL contain exactly one [1..1] @classCode="OBS" (CodeSystem: HL7ActClass 2.16.840.1.113883.5.6 STATIC) (CONF:21155).</sch:assert>
353
- <sch:assert id="a-77-21156" test="@moodCode='EVN'">SHALL contain exactly one [1..1] @moodCode="EVN" (CodeSystem: ActMood 2.16.840.1.113883.5.1001 STATIC) (CONF:21156).</sch:assert>
354
- </sch:rule>
355
- <sch:rule id="r-urn-oid-2.16.840.1.113883.10.20.27.3.9-errors" context="cda:observation[cda:templateId[@root='2.16.840.1.113883.10.20.27.3.9']]">
356
- <sch:extends rule="r-urn-oid-2.16.840.1.113883.10.20.27.3.9-errors-abstract" />
357
- </sch:rule>
358
- </sch:pattern>
359
- <sch:pattern id="p-urn-oid-2.16.840.1.113883.10.20.27.3.8-errors">
360
- <sch:rule id="r-urn-oid-2.16.840.1.113883.10.20.27.3.8-errors-abstract" abstract="true">
361
- <sch:assert id="a-77-18112" test="count(cda:statusCode)=1">SHALL contain exactly one [1..1] statusCode (CONF:18112).</sch:assert>
362
- <sch:assert id="a-77-18113" test="cda:statusCode[@code='completed']">This statusCode SHALL contain exactly one [1..1] @code="completed" Completed (CodeSystem: ActStatus 2.16.840.1.113883.5.14 STATIC) (CONF:18113).</sch:assert>
363
- <sch:assert id="a-77-18114" test="count(cda:entryRelationship[@typeCode='SUBJ'][@inversionInd='true'][count(cda:observation[cda:templateId[@root='2.16.840.1.113883.10.20.27.3.3']])=1])=1">SHALL contain exactly one [1..1] entryRelationship (CONF:18114) such that it SHALL contain exactly one [1..1] @typeCode="SUBJ" Has Subject (CodeSystem: HL7ActRelationshipType 2.16.840.1.113883.5.1002 STATIC) (CONF:18115). SHALL contain exactly one [1..1] @inversionInd="true" (CONF:18116). SHALL contain exactly one [1..1] Aggregate Count (identifier: urn:oid:2.16.840.1.113883.10.20.27.3.3) (CONF:18117).</sch:assert>
364
- <sch:assert id="a-77-18223" test="@classCode='OBS'">SHALL contain exactly one [1..1] @classCode="OBS" (CodeSystem: HL7ActClass 2.16.840.1.113883.5.6 STATIC) (CONF:18223).</sch:assert>
365
- <sch:assert id="a-77-18224" test="@moodCode='EVN'">SHALL contain exactly one [1..1] @moodCode="EVN" (CodeSystem: ActMood 2.16.840.1.113883.5.1001 STATIC) (CONF:18224).</sch:assert>
366
- <sch:assert id="a-77-18225" test="count(cda:templateId[@root='2.16.840.1.113883.10.20.27.3.8'])=1">SHALL contain exactly one [1..1] templateId (CONF:18225) such that it SHALL contain exactly one [1..1] @root="2.16.840.1.113883.10.20.27.3.8" (CONF:18226).</sch:assert>
367
- <sch:assert id="a-77-18227" test="count(cda:code)=1">SHALL contain exactly one [1..1] code (CONF:18227).</sch:assert>
368
- <sch:assert id="a-77-18228" test="cda:code[@code='103579009' and @codeSystem='2.16.840.1.113883.6.96']">This code SHALL contain exactly one [1..1] @code="103579009" Race (CodeSystem: SNOMED CT 2.16.840.1.113883.6.96) (CONF:18228).</sch:assert>
369
- <sch:assert id="a-77-18229" test="count(cda:value[@xsi:type='CD'])=1">SHALL contain exactly one [1..1] value with @xsi:type="CD", where the code SHALL be selected from ValueSet RaceCategory 2.16.840.1.114222.4.11.836 DYNAMIC (CONF:18229).</sch:assert>
370
- </sch:rule>
371
- <sch:rule id="r-urn-oid-2.16.840.1.113883.10.20.27.3.8-errors" context="cda:observation[cda:templateId[@root='2.16.840.1.113883.10.20.27.3.8']]">
372
- <sch:extends rule="r-urn-oid-2.16.840.1.113883.10.20.27.3.8-errors-abstract" />
373
- </sch:rule>
374
- </sch:pattern>
375
- <sch:pattern id="p-urn-oid-2.16.840.1.113883.10.20.27.3.7-errors">
376
- <sch:rule id="r-urn-oid-2.16.840.1.113883.10.20.27.3.7-errors-abstract" abstract="true">
377
- <sch:assert id="a-77-18118" test="count(cda:statusCode)=1">SHALL contain exactly one [1..1] statusCode (CONF:18118).</sch:assert>
378
- <sch:assert id="a-77-18119" test="cda:statusCode[@code='completed']">This statusCode SHALL contain exactly one [1..1] @code="completed" Completed (CodeSystem: ActStatus 2.16.840.1.113883.5.14 STATIC) (CONF:18119).</sch:assert>
379
- <sch:assert id="a-77-18120" test="count(cda:entryRelationship[@typeCode='SUBJ'][@inversionInd='true'][count(cda:observation[cda:templateId[@root='2.16.840.1.113883.10.20.27.3.3']])=1])=1">SHALL contain exactly one [1..1] entryRelationship (CONF:18120) such that it SHALL contain exactly one [1..1] @typeCode="SUBJ" Has Subject (CodeSystem: HL7ActRelationshipType 2.16.840.1.113883.5.1002 STATIC) (CONF:18121). SHALL contain exactly one [1..1] @inversionInd="true" (CONF:18122). SHALL contain exactly one [1..1] Aggregate Count (identifier: urn:oid:2.16.840.1.113883.10.20.27.3.3) (CONF:18123).</sch:assert>
380
- <sch:assert id="a-77-18216" test="@classCode='OBS'">SHALL contain exactly one [1..1] @classCode="OBS" (CodeSystem: HL7ActClass 2.16.840.1.113883.5.6 STATIC) (CONF:18216).</sch:assert>
381
- <sch:assert id="a-77-18217" test="@moodCode='EVN'">SHALL contain exactly one [1..1] @moodCode="EVN" (CodeSystem: ActMood 2.16.840.1.113883.5.1001 STATIC) (CONF:18217).</sch:assert>
382
- <sch:assert id="a-77-18220" test="count(cda:code)=1">SHALL contain exactly one [1..1] code (CONF:18220).</sch:assert>
383
- <sch:assert id="a-77-18221" test="cda:code[@code='364699009' and @codeSystem='2.16.840.1.113883.6.96']">This code SHALL contain exactly one [1..1] @code="364699009" Ethnic Group (CodeSystem: SNOMED CT 2.16.840.1.113883.6.96) (CONF:18221).</sch:assert>
384
- <sch:assert id="a-77-18222" test="count(cda:value[@xsi:type='CD'])=1">SHALL contain exactly one [1..1] value with @xsi:type="CD", where the code SHALL be selected from ValueSet EthnicityGroup 2.16.840.1.114222.4.11.837 DYNAMIC (CONF:18222).</sch:assert>
385
- </sch:rule>
386
- <sch:rule id="r-urn-oid-2.16.840.1.113883.10.20.27.3.7-errors" context="cda:observation[cda:templateId[@root='2.16.840.1.113883.10.20.27.3.7']]">
387
- <sch:extends rule="r-urn-oid-2.16.840.1.113883.10.20.27.3.7-errors-abstract" />
388
- <sch:assert id="a-77-18218" test="count(cda:templateId[@root='2.16.840.1.113883.10.20.27.3.7'])=1">SHALL contain exactly one [1..1] templateId (CONF:18218) such that it SHALL contain exactly one [1..1] @root="2.16.840.1.113883.10.20.27.3.7" (CONF:18219).</sch:assert>
389
- </sch:rule>
390
- </sch:pattern>
391
- <sch:pattern id="p-urn-oid-2.16.840.1.113883.10.20.27.3.6-errors">
392
- <sch:rule id="r-urn-oid-2.16.840.1.113883.10.20.27.3.6-errors-abstract" abstract="true">
393
- <sch:assert id="a-77-18124" test="count(cda:statusCode)=1">SHALL contain exactly one [1..1] statusCode (CONF:18124).</sch:assert>
394
- <sch:assert id="a-77-18125" test="cda:statusCode[@code='completed']">This statusCode SHALL contain exactly one [1..1] @code="completed" Completed (CodeSystem: ActStatus 2.16.840.1.113883.5.14 STATIC) (CONF:18125).</sch:assert>
395
- <sch:assert id="a-77-18126" test="count(cda:entryRelationship[@typeCode='SUBJ'][@inversionInd='true'][count(cda:observation[cda:templateId[@root='2.16.840.1.113883.10.20.27.3.3']])=1])=1">SHALL contain exactly one [1..1] entryRelationship (CONF:18126) such that it SHALL contain exactly one [1..1] @typeCode="SUBJ" Has Subject (CodeSystem: HL7ActRelationshipType 2.16.840.1.113883.5.1002 STATIC) (CONF:18127). SHALL contain exactly one [1..1] @inversionInd="true" (CONF:18128). SHALL contain exactly one [1..1] Aggregate Count (identifier: urn:oid:2.16.840.1.113883.10.20.27.3.3) (CONF:18129).</sch:assert>
396
- <sch:assert id="a-77-18230" test="@classCode='OBS'">SHALL contain exactly one [1..1] @classCode="OBS" (CodeSystem: HL7ActClass 2.16.840.1.113883.5.6 STATIC) (CONF:18230).</sch:assert>
397
- <sch:assert id="a-77-18231" test="@moodCode='EVN'">SHALL contain exactly one [1..1] @moodCode="EVN" (CodeSystem: ActMood 2.16.840.1.113883.5.1001 STATIC) (CONF:18231).</sch:assert>
398
- <sch:assert id="a-77-18232" test="count(cda:templateId[@root='2.16.840.1.113883.10.20.27.3.6'])=1">SHALL contain exactly one [1..1] templateId (CONF:18232) such that it SHALL contain exactly one [1..1] @root="2.16.840.1.113883.10.20.27.3.6" (CONF:18233).</sch:assert>
399
- <sch:assert id="a-77-18234" test="count(cda:code)=1">SHALL contain exactly one [1..1] code (CONF:18234).</sch:assert>
400
- <sch:assert id="a-77-18235" test="cda:code[@code='184100006' and @codeSystem='2.16.840.1.113883.6.96']">This code SHALL contain exactly one [1..1] @code="184100006" Patient sex (CodeSystem: SNOMED CT 2.16.840.1.113883.6.96 STATIC) (CONF:18235).</sch:assert>
401
- <sch:assert id="a-77-18236" test="count(cda:value[@xsi:type='CD'])=1">SHALL contain exactly one [1..1] value with @xsi:type="CD", where the code SHALL be selected from ValueSet Administrative Gender (HL7 V3) 2.16.840.1.113883.1.11.1 DYNAMIC (CONF:18236).</sch:assert>
402
- </sch:rule>
403
- <sch:rule id="r-urn-oid-2.16.840.1.113883.10.20.27.3.6-errors" context="cda:observation[cda:templateId[@root='2.16.840.1.113883.10.20.27.3.6']]">
404
- <sch:extends rule="r-urn-oid-2.16.840.1.113883.10.20.27.3.6-errors-abstract" />
405
- </sch:rule>
406
- </sch:pattern>
407
- <sch:pattern id="p-urn-oid-2.16.840.1.113883.10.20.27.3.11-errors">
408
- <sch:rule id="r-urn-oid-2.16.840.1.113883.10.20.27.3.11-errors-abstract" abstract="true">
409
- <sch:assert id="a-77-18312" test="@classCode='ENC'">SHALL contain exactly one [1..1] @classCode="ENC" (CodeSystem: HL7ActClass 2.16.840.1.113883.5.6 STATIC) (CONF:18312).</sch:assert>
410
- <sch:assert id="a-77-18314" test="count(cda:effectiveTime)=1">SHALL contain exactly one [1..1] effectiveTime (CONF:18314).</sch:assert>
411
- <sch:assert id="a-77-18369" test="count(cda:templateId[@root='2.16.840.1.113883.10.20.27.3.11'])=1">SHALL contain exactly one [1..1] templateId (CONF:18369) such that it SHALL contain exactly one [1..1] @root="2.16.840.1.113883.10.20.27.3.11" (CONF:18370).</sch:assert>
412
- <sch:assert id="a-77-21154" test="@moodCode='EVN'">SHALL contain exactly one [1..1] @moodCode="EVN" (CodeSystem: ActMood 2.16.840.1.113883.5.1001 STATIC) (CONF:21154).</sch:assert>
413
- </sch:rule>
414
- <sch:rule id="r-urn-oid-2.16.840.1.113883.10.20.27.3.11-errors" context="cda:encounter[cda:templateId[@root='2.16.840.1.113883.10.20.27.3.11']]">
415
- <sch:extends rule="r-urn-oid-2.16.840.1.113883.10.20.27.3.11-errors-abstract" />
416
- </sch:rule>
417
- </sch:pattern>
418
- <sch:pattern id="p-urn-oid-2.16.840.1.113883.10.20.27.2.2-errors">
419
- <sch:rule id="r-urn-oid-2.16.840.1.113883.10.20.27.2.2-errors-abstract" abstract="true">
420
- <sch:extends rule="r-urn-oid-2.16.840.1.113883.10.20.17.2.1-errors-abstract" />
421
- <sch:assert id="a-77-18323" test="count(cda:templateId[@root='2.16.840.1.113883.10.20.27.2.2'])=1">SHALL contain exactly one [1..1] templateId (CONF:18323) such that it SHALL contain exactly one [1..1] @root="2.16.840.1.113883.10.20.27.2.2" (CONF:18324).</sch:assert>
422
- <sch:assert id="a-77-18325" test="count(cda:entry[@typeCode='DRIV'][count(cda:act[cda:templateId[@root='2.16.840.1.113883.10.20.17.3.8']])=1])=1">SHALL contain exactly one [1..1] entry (CONF:18325) such that it SHALL contain exactly one [1..1] @typeCode="DRIV" Is derived from (CodeSystem: HL7ActRelationshipType 2.16.840.1.113883.5.1002 STATIC) (CONF:18427). SHALL contain exactly one [1..1] Reporting Parameters Act (identifier: urn:oid:2.16.840.1.113883.10.20.17.3.8) (CONF:18428).</sch:assert>
423
- </sch:rule>
424
- <sch:rule id="r-urn-oid-2.16.840.1.113883.10.20.27.2.2-errors" context="cda:section[cda:templateId[@root='2.16.840.1.113883.10.20.27.2.2']]">
425
- <sch:extends rule="r-urn-oid-2.16.840.1.113883.10.20.27.2.2-errors-abstract" />
426
- </sch:rule>
427
- </sch:pattern>
428
- <sch:pattern id="p-urn-oid-2.16.840.1.113883.10.20.27.3.14-errors">
429
- <sch:rule id="r-urn-oid-2.16.840.1.113883.10.20.27.3.14-errors-abstract" abstract="true">
430
- <sch:assert id="a-77-18395" test="@classCode='OBS'">SHALL contain exactly one [1..1] @classCode="OBS" Observation (CodeSystem: HL7ActClass 2.16.840.1.113883.5.6 STATIC) (CONF:18395).</sch:assert>
431
- <sch:assert id="a-77-18396" test="@moodCode='EVN'">SHALL contain exactly one [1..1] @moodCode="EVN" Event (CodeSystem: ActMood 2.16.840.1.113883.5.1001 STATIC) (CONF:18396).</sch:assert>
432
- <sch:assert id="a-77-18397" test="count(cda:code)=1">SHALL contain exactly one [1..1] code (CONF:18397).</sch:assert>
433
- <sch:assert id="a-77-18398" test="cda:code[@code='72510-1' and @codeSystem='2.16.840.1.113883.6.1']">This code SHALL contain exactly one [1..1] @code="72510-1" Performance Rate (CodeSystem: LOINC 2.16.840.1.113883.6.1 STATIC) (CONF:18398).</sch:assert>
434
- <sch:assert id="a-77-18399" test="count(cda:value[@xsi:type='REAL'])=1">SHALL contain exactly one [1..1] value with @xsi:type="REAL" (CONF:18399).</sch:assert>
435
- <sch:assert id="a-77-18401" test="not(cda:referenceRange) or cda:referenceRange[count(cda:observationRange)=1]">The referenceRange, if present, SHALL contain exactly one [1..1] observationRange (CONF:18401).</sch:assert>
436
- <sch:assert id="a-77-18402" test="not(cda:referenceRange/cda:observationRange) or cda:referenceRange/cda:observationRange[count(cda:value[@xsi:type='REAL'])=1]">This observationRange SHALL contain exactly one [1..1] value with @xsi:type="REAL" (CONF:18402).</sch:assert>
437
- <sch:assert id="a-77-18421" test="count(cda:statusCode)=1">SHALL contain exactly one [1..1] statusCode (CONF:18421).</sch:assert>
438
- <sch:assert id="a-77-18422" test="cda:statusCode[@code='completed']">This statusCode SHALL contain exactly one [1..1] @code="completed" completed (CodeSystem: ActStatus 2.16.840.1.113883.5.14 STATIC) (CONF:18422).</sch:assert>
439
- <sch:assert id="a-77-19649" test="count(cda:templateId[@root='2.16.840.1.113883.10.20.27.3.14'])=1">SHALL contain exactly one [1..1] templateId (CONF:19649) such that it SHALL contain exactly one [1..1] @root="2.16.840.1.113883.10.20.27.3.14" (CONF:19650).</sch:assert>
440
- <sch:assert id="a-77-19652" test="not(cda:reference) or cda:reference[@typeCode='REFR']">The reference, if present, SHALL contain exactly one [1..1] @typeCode="REFR" refers to (CodeSystem: HL7ActRelationshipType 2.16.840.1.113883.5.1002) (CONF:19652).</sch:assert>
441
- <sch:assert id="a-77-19653" test="not(cda:reference) or cda:reference[count(cda:externalObservation)=1]">The reference, if present, SHALL contain exactly one [1..1] externalObservation (CONF:19653).</sch:assert>
442
- <sch:assert id="a-77-19654" test="not(cda:reference/cda:externalObservation) or cda:reference/cda:externalObservation[@classCode]">This externalObservation SHALL contain exactly one [1..1] @classCode (CodeSystem: HL7ActClass 2.16.840.1.113883.5.6) (CONF:19654).</sch:assert>
443
- <sch:assert id="a-77-19655-c" test="not(tested)">The externalObservationID contains the ID of the numerator in the referenced eMeasure.
444
- This externalObservation SHALL contain exactly one [1..1] id (CONF:19655).</sch:assert>
445
- <sch:assert id="a-77-19656" test="not(cda:reference/cda:externalObservation/cda:id) or cda:reference/cda:externalObservation/cda:id[@root]">This id SHALL contain exactly one [1..1] @root (CONF:19656).</sch:assert>
446
- <sch:assert id="a-77-19657" test="not(cda:reference/cda:externalObservation) or cda:reference/cda:externalObservation[count(cda:code)=1]">This externalObservation SHALL contain exactly one [1..1] code (CONF:19657).</sch:assert>
447
- <sch:assert id="a-77-19658" test="not(cda:reference/cda:externalObservation/cda:code) or cda:reference/cda:externalObservation/cda:code[@code='NUMER' and @codeSystem='2.16.840.1.113883.5.1063']">This code SHALL contain exactly one [1..1] @code="NUMER" Numerator (CodeSystem: ObservationValue 2.16.840.1.113883.5.1063) (CONF:19658).</sch:assert>
448
- </sch:rule>
449
- <sch:rule id="r-urn-oid-2.16.840.1.113883.10.20.27.3.14-errors" context="cda:observation[cda:templateId[@root='2.16.840.1.113883.10.20.27.3.14']]">
450
- <sch:extends rule="r-urn-oid-2.16.840.1.113883.10.20.27.3.14-errors-abstract" />
451
- </sch:rule>
452
- </sch:pattern>
453
- <sch:pattern id="p-urn-oid-2.16.840.1.113883.10.20.27.3.15-errors">
454
- <sch:rule id="r-urn-oid-2.16.840.1.113883.10.20.27.3.15-errors-abstract" abstract="true">
455
- <sch:assert id="a-77-18411" test="@classCode='OBS'">SHALL contain exactly one [1..1] @classCode="OBS" Observation (CodeSystem: HL7ActClass 2.16.840.1.113883.5.6 STATIC) (CONF:18411).</sch:assert>
456
- <sch:assert id="a-77-18412" test="@moodCode='EVN'">SHALL contain exactly one [1..1] @moodCode="EVN" Event (CodeSystem: ActMood 2.16.840.1.113883.5.1001 STATIC) (CONF:18412).</sch:assert>
457
- <sch:assert id="a-77-18413" test="count(cda:code)=1">SHALL contain exactly one [1..1] code (CONF:18413).</sch:assert>
458
- <sch:assert id="a-77-18414" test="cda:code[@code='72509-3' and @codeSystem='2.16.840.1.113883.6.1']">This code SHALL contain exactly one [1..1] @code="72509-3" Reporting Rate (CodeSystem: LOINC 2.16.840.1.113883.6.1 STATIC) (CONF:18414).</sch:assert>
459
- <sch:assert id="a-77-18415" test="count(cda:value[@xsi:type='REAL'])=1">SHALL contain exactly one [1..1] value with @xsi:type="REAL" (CONF:18415).</sch:assert>
460
- <sch:assert id="a-77-18417" test="not(cda:referenceRange) or cda:referenceRange[count(cda:observationRange)=1]">The referenceRange, if present, SHALL contain exactly one [1..1] observationRange (CONF:18417).</sch:assert>
461
- <sch:assert id="a-77-18418" test="not(cda:referenceRange/cda:observationRange) or cda:referenceRange/cda:observationRange[count(cda:value[@xsi:type='REAL'])=1]">This observationRange SHALL contain exactly one [1..1] value with @xsi:type="REAL" (CONF:18418).</sch:assert>
462
- <sch:assert id="a-77-18419" test="count(cda:statusCode)=1">SHALL contain exactly one [1..1] statusCode (CONF:18419).</sch:assert>
463
- <sch:assert id="a-77-18420" test="cda:statusCode[@code='completed']">This statusCode SHALL contain exactly one [1..1] @code="completed" completed (CodeSystem: ActStatus 2.16.840.1.113883.5.14 STATIC) (CONF:18420).</sch:assert>
464
- <sch:assert id="a-77-21157" test="count(cda:templateId[@root='2.16.840.1.113883.10.20.27.3.15'])=1">SHALL contain exactly one [1..1] templateId (CONF:21157) such that it SHALL contain exactly one [1..1] @root="2.16.840.1.113883.10.20.27.3.15" (CONF:21158).</sch:assert>
465
- </sch:rule>
466
- <sch:rule id="r-urn-oid-2.16.840.1.113883.10.20.27.3.15-errors" context="cda:observation[cda:templateId[@root='2.16.840.1.113883.10.20.27.3.15']]">
467
- <sch:extends rule="r-urn-oid-2.16.840.1.113883.10.20.27.3.15-errors-abstract" />
468
- </sch:rule>
469
- </sch:pattern>
470
- <sch:pattern id="p-urn-oid-2.16.840.1.113883.10.20.17.3.8-warnings">
471
- <sch:rule id="r-urn-oid-2.16.840.1.113883.10.20.17.3.8-warnings-abstract" abstract="true">
472
- <sch:assert test="."></sch:assert>
473
- </sch:rule>
474
- <sch:rule id="r-urn-oid-2.16.840.1.113883.10.20.17.3.8-warnings" context="cda:act[cda:templateId[@root='2.16.840.1.113883.10.20.17.3.8']]">
475
- <sch:extends rule="r-urn-oid-2.16.840.1.113883.10.20.17.3.8-warnings-abstract" />
476
- </sch:rule>
477
- </sch:pattern>
478
- <sch:pattern id="p-urn-oid-2.16.840.1.113883.10.20.17.2.1-warnings">
479
- <sch:rule id="r-urn-oid-2.16.840.1.113883.10.20.17.2.1-warnings-abstract" abstract="true">
480
- <sch:assert test="."></sch:assert>
481
- </sch:rule>
482
- <sch:rule id="r-urn-oid-2.16.840.1.113883.10.20.17.2.1-warnings" context="cda:section[cda:templateId[@root='2.16.840.1.113883.10.20.17.2.1']]">
483
- <sch:extends rule="r-urn-oid-2.16.840.1.113883.10.20.17.2.1-warnings-abstract" />
484
- </sch:rule>
485
- </sch:pattern>
486
- <sch:pattern id="p-urn-oid-2.16.840.1.113883.10.20.24.3.55-warnings">
487
- <sch:rule id="r-urn-oid-2.16.840.1.113883.10.20.24.3.55-warnings-abstract" abstract="true">
488
- <sch:assert id="a-67-26935" test="cda:effectiveTime[count(cda:high)=1]">This effectiveTime SHOULD contain zero or one [0..1] high (CONF:26935).</sch:assert>
489
- </sch:rule>
490
- <sch:rule id="r-urn-oid-2.16.840.1.113883.10.20.24.3.55-warnings" context="cda:observation[cda:templateId[@root='2.16.840.1.113883.10.20.24.3.55']]">
491
- <sch:extends rule="r-urn-oid-2.16.840.1.113883.10.20.24.3.55-warnings-abstract" />
492
- </sch:rule>
493
- </sch:pattern>
494
- <sch:pattern id="p-urn-oid-2.16.840.1.113883.10.20.24.2.2-warnings">
495
- <sch:rule id="r-urn-oid-2.16.840.1.113883.10.20.24.2.2-warnings-abstract" abstract="true">
496
- <sch:assert test="."></sch:assert>
497
- </sch:rule>
498
- <sch:rule id="r-urn-oid-2.16.840.1.113883.10.20.24.2.2-warnings" context="cda:section[cda:templateId[@root='2.16.840.1.113883.10.20.24.2.2']]">
499
- <sch:extends rule="r-urn-oid-2.16.840.1.113883.10.20.24.2.2-warnings-abstract" />
500
- </sch:rule>
501
- </sch:pattern>
502
- <sch:pattern id="p-urn-oid-2.16.840.1.113883.10.20.24.3.98-warnings">
503
- <sch:rule id="r-urn-oid-2.16.840.1.113883.10.20.24.3.98-warnings-abstract" abstract="true">
504
- <sch:assert test="."></sch:assert>
505
- </sch:rule>
506
- <sch:rule id="r-urn-oid-2.16.840.1.113883.10.20.24.3.98-warnings" context="cda:organizer[cda:templateId[@root='2.16.840.1.113883.10.20.24.3.98']]">
507
- <sch:extends rule="r-urn-oid-2.16.840.1.113883.10.20.24.3.98-warnings-abstract" />
508
- </sch:rule>
509
- <sch:rule id="r-urn-oid-2.16.840.1.113883.10.20.24.3.98-12982-branch-12982-warnings-abstract" abstract="true">
510
- <sch:assert id="a-67-12997-branch-12982" test="cda:externalDocument[count(cda:text)=1]">This externalDocument SHOULD contain zero or one [0..1] text (CONF:12997).</sch:assert>
511
- </sch:rule>
512
- <sch:rule id="r-urn-oid-2.16.840.1.113883.10.20.24.3.98-12982-branch-12982-warnings" context="cda:organizer[cda:templateId[@root='2.16.840.1.113883.10.20.24.3.98']]/cda:reference[@typeCode='REFR'][cda:externalDocument]">
513
- <sch:extends rule="r-urn-oid-2.16.840.1.113883.10.20.24.3.98-12982-branch-12982-warnings-abstract" />
514
- </sch:rule>
515
- </sch:pattern>
516
- <sch:pattern id="p-urn-oid-2.16.840.1.113883.10.20.27.1.1-warnings">
517
- <sch:rule id="r-urn-oid-2.16.840.1.113883.10.20.27.1.1-warnings-abstract" abstract="true">
518
- <sch:assert id="a-77-18166" test="cda:custodian/cda:assignedCustodian/cda:representedCustodianOrganization[count(cda:name)=1]">This representedCustodianOrganization SHOULD contain zero or one [0..1] name (CONF:18166).</sch:assert>
519
- <sch:assert id="a-77-18260" test="count(cda:versionNumber)=1">SHOULD contain zero or one [0..1] versionNumber (CONF:18260).</sch:assert>
520
- <sch:assert id="a-77-19659" test="not(cda:documentationOf/cda:serviceEvent/cda:performer/cda:assignedEntity/cda:representedOrganization) or cda:documentationOf/cda:serviceEvent/cda:performer/cda:assignedEntity/cda:representedOrganization[count(cda:name) &gt; 0]">This representedOrganization SHOULD contain zero or more [0..*] name (CONF:19659).</sch:assert>
521
- <sch:assert id="a-77-19673" test="not(cda:legalAuthenticator/cda:assignedEntity/cda:representedOrganization) or cda:legalAuthenticator/cda:assignedEntity/cda:representedOrganization[count(cda:name)=1]">The representedOrganization, if present, SHOULD contain zero or one [0..1] name (CONF:19673).</sch:assert>
522
- <sch:assert id="a-77-17238-v" test="count(cda:confidentialityCode[@code=document('voc.xml')/voc:systems/voc:system[@valueSetOid='2.16.840.1.113883.1.11.16926']/voc:code/@value])=1">SHALL contain exactly one [1..1] confidentialityCode, which SHOULD be selected from ValueSet HL7 BasicConfidentialityKind 2.16.840.1.113883.1.11.16926 STATIC 2010-04-21 (CONF:X).</sch:assert>
523
- </sch:rule>
524
- <sch:rule id="r-urn-oid-2.16.840.1.113883.10.20.27.1.1-warnings" context="cda:ClinicalDocument[cda:templateId[@root='2.16.840.1.113883.10.20.27.1.1']]">
525
- <sch:extends rule="r-urn-oid-2.16.840.1.113883.10.20.27.1.1-warnings-abstract" />
526
- </sch:rule>
527
- </sch:pattern>
528
- <sch:pattern id="p-urn-oid-2.16.840.1.113883.10.20.27.2.1-warnings">
529
- <sch:rule id="r-urn-oid-2.16.840.1.113883.10.20.27.2.1-warnings-abstract" abstract="true">
530
- <sch:extends rule="r-urn-oid-2.16.840.1.113883.10.20.24.2.2-warnings-abstract" />
531
- <sch:assert test="."></sch:assert>
532
- </sch:rule>
533
- <sch:rule id="r-urn-oid-2.16.840.1.113883.10.20.27.2.1-warnings" context="cda:section[cda:templateId[@root='2.16.840.1.113883.10.20.27.2.1']]">
534
- <sch:extends rule="r-urn-oid-2.16.840.1.113883.10.20.27.2.1-warnings-abstract" />
535
- </sch:rule>
536
- </sch:pattern>
537
- <sch:pattern id="p-urn-oid-2.16.840.1.113883.10.20.27.3.3-warnings">
538
- <sch:rule id="r-urn-oid-2.16.840.1.113883.10.20.27.3.3-warnings-abstract" abstract="true">
539
- <sch:assert test="."></sch:assert>
540
- </sch:rule>
541
- <sch:rule id="r-urn-oid-2.16.840.1.113883.10.20.27.3.3-warnings" context="cda:observation[cda:templateId[@root='2.16.840.1.113883.10.20.27.3.3']]">
542
- <sch:extends rule="r-urn-oid-2.16.840.1.113883.10.20.27.3.3-warnings-abstract" />
543
- </sch:rule>
544
- </sch:pattern>
545
- <sch:pattern id="p-urn-oid-2.16.840.1.113883.10.20.27.3.2-warnings">
546
- <sch:rule id="r-urn-oid-2.16.840.1.113883.10.20.27.3.2-warnings-abstract" abstract="true">
547
- <sch:assert test="."></sch:assert>
548
- </sch:rule>
549
- <sch:rule id="r-urn-oid-2.16.840.1.113883.10.20.27.3.2-warnings" context="cda:observation[cda:templateId[@root='2.16.840.1.113883.10.20.27.3.2']]">
550
- <sch:extends rule="r-urn-oid-2.16.840.1.113883.10.20.27.3.2-warnings-abstract" />
551
- </sch:rule>
552
- </sch:pattern>
553
- <sch:pattern id="p-urn-oid-2.16.840.1.113883.10.20.27.3.4-warnings">
554
- <sch:rule id="r-urn-oid-2.16.840.1.113883.10.20.27.3.4-warnings-abstract" abstract="true">
555
- <sch:assert id="a-77-17580" test="count(cda:value)=1">SHOULD contain zero or one [0..1] value (CONF:17580).</sch:assert>
556
- </sch:rule>
557
- <sch:rule id="r-urn-oid-2.16.840.1.113883.10.20.27.3.4-warnings" context="cda:observation[cda:templateId[@root='2.16.840.1.113883.10.20.27.3.4']]">
558
- <sch:extends rule="r-urn-oid-2.16.840.1.113883.10.20.27.3.4-warnings-abstract" />
559
- </sch:rule>
560
- </sch:pattern>
561
- <sch:pattern id="p-urn-oid-2.16.840.1.113883.10.20.27.3.5-warnings">
562
- <sch:rule id="r-urn-oid-2.16.840.1.113883.10.20.27.3.5-warnings-abstract" abstract="true">
563
- <sch:assert id="a-77-17618-v" test="count(cda:value[@xsi:type='CD'])=1">SHALL contain exactly one [1..1] value with @xsi:type="CD", where the code SHOULD be selected from ValueSet ObservationPopulationInclusion 2.16.840.1.113883.1.11.20369 DYNAMIC (CONF:X).</sch:assert>
564
- </sch:rule>
565
- <sch:rule id="r-urn-oid-2.16.840.1.113883.10.20.27.3.5-warnings" context="cda:observation[cda:templateId[@root='2.16.840.1.113883.10.20.27.3.5']]">
566
- <sch:extends rule="r-urn-oid-2.16.840.1.113883.10.20.27.3.5-warnings-abstract" />
567
- </sch:rule>
568
- <sch:rule id="r-urn-oid-2.16.840.1.113883.10.20.27.3.5-18239-branch-18239-warnings-abstract" abstract="true">
569
- <sch:assert id="a-77-18258-branch-18239-c" test="not(testable)">If this reference is to an eMeasure, this id SHALL equal the id defined in the corresponding eMeasure population criteria section (CONF:18258).</sch:assert>
570
- </sch:rule>
571
- <sch:rule id="r-urn-oid-2.16.840.1.113883.10.20.27.3.5-18239-branch-18239-warnings" context="cda:observation[cda:templateId[@root='2.16.840.1.113883.10.20.27.3.5']]/cda:reference[cda:externalObservation[cda:id]]">
572
- <sch:extends rule="r-urn-oid-2.16.840.1.113883.10.20.27.3.5-18239-branch-18239-warnings-abstract" />
573
- </sch:rule>
574
- </sch:pattern>
575
- <sch:pattern id="p-urn-oid-2.16.840.1.113883.10.20.27.3.1-warnings">
576
- <sch:rule id="r-urn-oid-2.16.840.1.113883.10.20.27.3.1-warnings-abstract" abstract="true">
577
- <sch:extends rule="r-urn-oid-2.16.840.1.113883.10.20.24.3.98-warnings-abstract" />
578
- <sch:assert id="a-77-18353-c" test="not(cda:reference[cda:externalObservation[cda:code[@code='55185-3'][@codeSystem='2.16.840.1.113883.6.1']]]) or (count(cda:reference[cda:externalObservation[cda:id][cda:code[@code='55185-3'][@codeSystem='2.16.840.1.113883.6.1']][cda:text]])=1)">In the case that an eMeasure is part of a measure set or group, the following reference is used to identify that set or group. If the eMeasure is not part of a measure set, the following reference element should not be defined.
579
- SHOULD contain exactly one [1..1] reference (CONF:18353) such that it SHALL contain exactly one [1..1] externalObservation (CONF:18354). This externalObservation SHALL contain at least one [1..*] id (CONF:18355). This externalObservation SHALL contain exactly one [1..1] code (CodeSystem: LOINC 2.16.840.1.113883.6.1 STATIC) (CONF:18357). This code SHALL contain exactly one [1..1] @code="55185-3" measure set (CodeSystem: LOINC 2.16.840.1.113883.6.1) (CONF:19554). This externalObservation SHALL contain exactly one [1..1] text (CONF:18358).</sch:assert>
580
- </sch:rule>
581
- <sch:rule id="r-urn-oid-2.16.840.1.113883.10.20.27.3.1-warnings" context="cda:organizer[cda:templateId[@root='2.16.840.1.113883.10.20.27.3.1']]">
582
- <sch:extends rule="r-urn-oid-2.16.840.1.113883.10.20.27.3.1-warnings-abstract" />
583
- </sch:rule>
584
- <sch:rule id="r-urn-oid-2.16.840.1.113883.10.20.27.3.1-17890-branch-17890-warnings-abstract" abstract="true">
585
- <sch:assert id="a-77-17896-branch-17890" test="cda:externalDocument[count(cda:code[@codeSystem='2.16.840.1.113883.6.1' or @nullFlavor])=1]">This externalDocument SHOULD contain zero or one [0..1] code (CodeSystem: LOINC 2.16.840.1.113883.6.1 STATIC) (CONF:17896).</sch:assert>
586
- <sch:assert id="a-77-17897-branch-17890" test="cda:externalDocument[count(cda:text)=1]">This text is the title and optionally a brief description of the Quality Measure.
587
- This externalDocument SHOULD contain zero or one [0..1] text (CONF:17897).</sch:assert>
588
- <sch:assert id="a-77-17900-branch-17890-c" test="not(testable)">If this reference is to an eMeasure, this setId SHALL equal the QualityMeasureDocument/setId which is the eMeasure version neutral id (CONF:17900).</sch:assert>
589
- <sch:assert id="a-77-17902-branch-17890-c" test="not(testable)">If this reference is to an eMeasure this version number SHALL equal the sequential eMeasure Version number (CONF:17902).</sch:assert>
590
- </sch:rule>
591
- <sch:rule id="r-urn-oid-2.16.840.1.113883.10.20.27.3.1-17890-branch-17890-warnings" context="cda:organizer[cda:templateId[@root='2.16.840.1.113883.10.20.27.3.1']]/cda:reference[@typeCode='REFR'][cda:externalDocument[@classCode='DOC']]">
592
- <sch:extends rule="r-urn-oid-2.16.840.1.113883.10.20.27.3.1-17890-branch-17890-warnings-abstract" />
593
- </sch:rule>
594
- <sch:rule id="r-urn-oid-2.16.840.1.113883.10.20.27.3.1-18353-branch-18353-warnings-abstract" abstract="true">
595
- <sch:assert id="a-77-18359-branch-18353-c" test="not(testable)">This text SHOULD be the title of the corresponding measure set (CONF:18359).</sch:assert>
596
- </sch:rule>
597
- <sch:rule id="r-urn-oid-2.16.840.1.113883.10.20.27.3.1-18353-branch-18353-warnings" context="cda:organizer[cda:templateId[@root='2.16.840.1.113883.10.20.27.3.1']]/cda:reference[cda:externalObservation[cda:id][cda:code[@code='55185-3']][cda:text]]">
598
- <sch:extends rule="r-urn-oid-2.16.840.1.113883.10.20.27.3.1-18353-branch-18353-warnings-abstract" />
599
- </sch:rule>
600
- </sch:pattern>
601
- <sch:pattern id="p-urn-oid-2.16.840.1.113883.10.20.27.3.10-warnings">
602
- <sch:rule id="r-urn-oid-2.16.840.1.113883.10.20.27.3.10-warnings-abstract" abstract="true">
603
- <sch:assert test="."></sch:assert>
604
- </sch:rule>
605
- <sch:rule id="r-urn-oid-2.16.840.1.113883.10.20.27.3.10-warnings" context="cda:observation[cda:templateId[@root='2.16.840.1.113883.10.20.27.3.10']]">
606
- <sch:extends rule="r-urn-oid-2.16.840.1.113883.10.20.27.3.10-warnings-abstract" />
607
- </sch:rule>
608
- </sch:pattern>
609
- <sch:pattern id="p-urn-oid-2.16.840.1.113883.10.20.27.3.9-warnings">
610
- <sch:rule id="r-urn-oid-2.16.840.1.113883.10.20.27.3.9-warnings-abstract" abstract="true">
611
- <sch:extends rule="r-urn-oid-2.16.840.1.113883.10.20.24.3.55-warnings-abstract" />
612
- <sch:assert test="."></sch:assert>
613
- </sch:rule>
614
- <sch:rule id="r-urn-oid-2.16.840.1.113883.10.20.27.3.9-warnings" context="cda:observation[cda:templateId[@root='2.16.840.1.113883.10.20.27.3.9']]">
615
- <sch:extends rule="r-urn-oid-2.16.840.1.113883.10.20.27.3.9-warnings-abstract" />
616
- </sch:rule>
617
- </sch:pattern>
618
- <sch:pattern id="p-urn-oid-2.16.840.1.113883.10.20.27.3.8-warnings">
619
- <sch:rule id="r-urn-oid-2.16.840.1.113883.10.20.27.3.8-warnings-abstract" abstract="true">
620
- <sch:assert test="."></sch:assert>
621
- </sch:rule>
622
- <sch:rule id="r-urn-oid-2.16.840.1.113883.10.20.27.3.8-warnings" context="cda:observation[cda:templateId[@root='2.16.840.1.113883.10.20.27.3.8']]">
623
- <sch:extends rule="r-urn-oid-2.16.840.1.113883.10.20.27.3.8-warnings-abstract" />
624
- </sch:rule>
625
- </sch:pattern>
626
- <sch:pattern id="p-urn-oid-2.16.840.1.113883.10.20.27.3.7-warnings">
627
- <sch:rule id="r-urn-oid-2.16.840.1.113883.10.20.27.3.7-warnings-abstract" abstract="true">
628
- <sch:assert test="."></sch:assert>
629
- </sch:rule>
630
- <sch:rule id="r-urn-oid-2.16.840.1.113883.10.20.27.3.7-warnings" context="cda:observation[cda:templateId[@root='2.16.840.1.113883.10.20.27.3.7']]">
631
- <sch:extends rule="r-urn-oid-2.16.840.1.113883.10.20.27.3.7-warnings-abstract" />
632
- </sch:rule>
633
- </sch:pattern>
634
- <sch:pattern id="p-urn-oid-2.16.840.1.113883.10.20.27.3.6-warnings">
635
- <sch:rule id="r-urn-oid-2.16.840.1.113883.10.20.27.3.6-warnings-abstract" abstract="true">
636
- <sch:assert test="."></sch:assert>
637
- </sch:rule>
638
- <sch:rule id="r-urn-oid-2.16.840.1.113883.10.20.27.3.6-warnings" context="cda:observation[cda:templateId[@root='2.16.840.1.113883.10.20.27.3.6']]">
639
- <sch:extends rule="r-urn-oid-2.16.840.1.113883.10.20.27.3.6-warnings-abstract" />
640
- </sch:rule>
641
- </sch:pattern>
642
- <sch:pattern id="p-urn-oid-2.16.840.1.113883.10.20.27.3.11-warnings">
643
- <sch:rule id="r-urn-oid-2.16.840.1.113883.10.20.27.3.11-warnings-abstract" abstract="true">
644
- <sch:assert test="."></sch:assert>
645
- </sch:rule>
646
- <sch:rule id="r-urn-oid-2.16.840.1.113883.10.20.27.3.11-warnings" context="cda:encounter[cda:templateId[@root='2.16.840.1.113883.10.20.27.3.11']]">
647
- <sch:extends rule="r-urn-oid-2.16.840.1.113883.10.20.27.3.11-warnings-abstract" />
648
- </sch:rule>
649
- </sch:pattern>
650
- <sch:pattern id="p-urn-oid-2.16.840.1.113883.10.20.27.2.2-warnings">
651
- <sch:rule id="r-urn-oid-2.16.840.1.113883.10.20.27.2.2-warnings-abstract" abstract="true">
652
- <sch:extends rule="r-urn-oid-2.16.840.1.113883.10.20.17.2.1-warnings-abstract" />
653
- <sch:assert test="."></sch:assert>
654
- </sch:rule>
655
- <sch:rule id="r-urn-oid-2.16.840.1.113883.10.20.27.2.2-warnings" context="cda:section[cda:templateId[@root='2.16.840.1.113883.10.20.27.2.2']]">
656
- <sch:extends rule="r-urn-oid-2.16.840.1.113883.10.20.27.2.2-warnings-abstract" />
657
- </sch:rule>
658
- </sch:pattern>
659
- <sch:pattern id="p-urn-oid-2.16.840.1.113883.10.20.27.3.14-warnings">
660
- <sch:rule id="r-urn-oid-2.16.840.1.113883.10.20.27.3.14-warnings-abstract" abstract="true">
661
- <sch:assert test="."></sch:assert>
662
- </sch:rule>
663
- <sch:rule id="r-urn-oid-2.16.840.1.113883.10.20.27.3.14-warnings" context="cda:observation[cda:templateId[@root='2.16.840.1.113883.10.20.27.3.14']]">
664
- <sch:extends rule="r-urn-oid-2.16.840.1.113883.10.20.27.3.14-warnings-abstract" />
665
- </sch:rule>
666
- </sch:pattern>
667
- <sch:pattern id="p-urn-oid-2.16.840.1.113883.10.20.27.3.15-warnings">
668
- <sch:rule id="r-urn-oid-2.16.840.1.113883.10.20.27.3.15-warnings-abstract" abstract="true">
669
- <sch:assert test="."></sch:assert>
670
- </sch:rule>
671
- <sch:rule id="r-urn-oid-2.16.840.1.113883.10.20.27.3.15-warnings" context="cda:observation[cda:templateId[@root='2.16.840.1.113883.10.20.27.3.15']]">
672
- <sch:extends rule="r-urn-oid-2.16.840.1.113883.10.20.27.3.15-warnings-abstract" />
673
- </sch:rule>
674
- </sch:pattern>
675
- </sch:schema>