1 | <!-- HL7 QRDA Category I Header (Section 2) -->
|
---|
2 | <!-- This document provides errors and edits pertinent to the header section of the QRDA files. It is assumed that the QRDA files are VALID CDA release 2 files.-->
|
---|
3 | <!-- errors -->
|
---|
4 | <pattern id="p-2.16.840.1.113883.10.20.12-errors">
|
---|
5 | <title>HL7 QRDA Category I Header (Section 2) - errors validation phase</title>
|
---|
6 | <rule context='/'>
|
---|
7 | <assert test='.//cda:realmCode[@code = "US"]'>
|
---|
8 | Error: CONF-QRDA1-I: The realmCode element SHALL be present where the value of @code is US.
|
---|
9 | </assert>
|
---|
10 | <assert test='.//cda:typeId[@root = "2.16.840.1.113883.1.3" and @extension = "POCD_HD000040"]'>
|
---|
11 | Error: CONF-QRDA1-2: The value of typeId/@root SHALL be 2.16.840.1.113883.1.3 and value of
|
---|
12 | typeId/@extension SHALL be POCD_HD000040.
|
---|
13 | </assert>
|
---|
14 | <assert test='not(cda:ClinicalDocument/cda:templateId) = 0'>
|
---|
15 | Error: CONF-QRDA1-3 The CMS EHR QRDA Report SHALL contain at least one ClincalDocument/templateId element
|
---|
16 | </assert>
|
---|
17 | <assert test='.//cda:templateId/@root="2.16.840.1.113883.10.20.12" and .//cda:templateId/@root="2.16.840.1.113883.3.249.11.100.1"'>
|
---|
18 | Error: CONF-QRDA-I-4: The value of one ClinicalDocument/templateId/@root SHALL be
|
---|
19 | 2.16.840.1.113883.10.20.12 and PQRI QRDA category I templateId 'root' value SHALL be 2.16.840.1.113883.3.249.11.100.1.
|
---|
20 | </assert>
|
---|
21 | </rule>
|
---|
22 |
|
---|
23 | <!-- <assert test='.//cda:templateId/@root="2.16.840.1.113883.10.20.12"'>
|
---|
24 | Error: CONF-QRDA-I-5: The value of one ClinicalDocument/templateId/@root SHALL be
|
---|
25 | 2.16.840.1.113883.10.20.12 representing conformance to the generic
|
---|
26 | QRDA Category I framework constraints.
|
---|
27 | </assert>
|
---|
28 | </rule> -->
|
---|
29 |
|
---|
30 | <rule context='*[cda:templateId/@root="2.16.840.1.113883.10.20.12"]'>
|
---|
31 | <assert test='count(cda:code) = 1 and cda:code[@code="55182-0" and @codeSystem="2.16.840.1.113883.6.1"]'>
|
---|
32 | Error: CONF-QRDA1-7: A QRDA Category I report SHALL contain exactly one
|
---|
33 | ClinicalDocument/code with a value of 55182-0 2.16.840.1.113883.6.1
|
---|
34 | LOINC STATIC.
|
---|
35 | </assert>
|
---|
36 | <assert test="contains(translate(cda:title,'QWERTYUIOPASDFGHJKLZXCVBNM','qwertyuiopasdfghjklzxcvbnm'),'qrda incidence report') or
|
---|
37 | contains(translate(cda:title,'QWERTYUIOPASDFGHJKLZXCVBNM','qwertyuiopasdfghjklzxcvbnm'),'quality measure report')">
|
---|
38 | Error: CONF-QRDA1-8: A QRDA Category I report SHALL contain exactly one
|
---|
39 | ClinicalDocument/title element valued with a case-insensitive, text
|
---|
40 | string containing "QRDA Incidence Report" or "Quality measure
|
---|
41 | Report".
|
---|
42 | </assert>
|
---|
43 | <assert test='string-length(cda:effectiveTime/@value) >= 8'>
|
---|
44 | Error: CONF-QRDA1-10 The effectiveTime value attribute value SHALL be at least precise to the day YYYYMMDD.
|
---|
45 | </assert>
|
---|
46 | <assert test='cda:confidentialityCode[@code="N" and @codeSystem="2.16.840.1.113883.5.25"]'>
|
---|
47 | Error: CONF-QRDA1-12: The confidentialityCode 'codeSystem' attribute value SHALL be '2.16.840.1.113883.5.25. The confidentialityCode 'codeSystem' attribute value SHALL be '2.16.840.1.113883.5.25
|
---|
48 | </assert>
|
---|
49 | <assert test='not(cda:setId) = 0'>
|
---|
50 | Error: CONF-QRDA1-13: setId element is missing. The 'setId' element SHALL be present.
|
---|
51 | </assert>
|
---|
52 | <assert test='not(cda:versionNumber) = 0'>
|
---|
53 | Error: CONF-QRDA1-16 versionNumber element is missing. The 'versionNumber' element SHALL be present.
|
---|
54 | </assert>
|
---|
55 |
|
---|
56 | <assert test='cda:versionNumber/@value castable as xs:integer' >
|
---|
57 | Error: CONF-QRDA1-17: versionNumber/@value SHALL be an integer
|
---|
58 | </assert>
|
---|
59 | <!-- This did not work with type xsi or type xsd
|
---|
60 | <assert test='cda:versionNumber/value/@xsi:type = "int"' >
|
---|
61 | Error: CONF-QRDA1-17: versionNumber/@value SHALL be an integer
|
---|
62 | </assert> -->
|
---|
63 | <!-- 2010 entry below -->
|
---|
64 |
|
---|
65 | <assert test='count(cda:recordTarget/cda:patientRole) = 1'>
|
---|
66 | Error: CONF-QRDA1-18: A QRDA Category I report SHALL contain exactly one
|
---|
67 | ClinicalDocument/recordTarget/PatientRole.
|
---|
68 | </assert>
|
---|
69 |
|
---|
70 | <assert test='cda:recordTarget/cda:patientRole/cda:id[@root = "2.16.840.1.113883.4.1" or @root = "2.16.840.1.113883.4.2" or @root = "2.16.840.1.113883.4.3.40" or @root = "2.16.840.1.113883.4.3.49" or @root = "2.16.840.1.113883.4.3.38" or @root = "2.16.840.1.113883.4.3.37" or @root = "2.16.840.1.113883.4.3.36" or @root = "2.16.840.1.113883.4.3.35" or @root = "2.16.840.1.113883.4.3.34" or @root = "2.16.840.1.113883.4.3.48" or @root = "2.16.840.1.113883.4.3.32" or @root = "2.16.840.1.113883.4.3.39" or @root = "2.16.840.1.113883.4.3.15" or @root = "2.16.840.1.113883.4.3.51" or @root = "2.16.840.1.113883.4.3.53" or @root = "2.16.840.1.113883.4.3.54" or @root = "2.16.840.1.113883.4.3.55" or @root = "2.16.840.1.113883.4.3.56" or @root = "2.16.840.1.113883.4.3.42" or @root = "2.16.840.1.113883.4.3.47" or @root = "2.16.840.1.113883.4.3.41" or @root = "2.16.840.1.113883.4.3.46" or @root = "2.16.840.1.113883.4.3.45" or @root = "2.16.840.1.113883.4.3.31" or @root = "2.16.840.1.113883.4.3.50" or @root = "2.16.840.1.113883.4.3.30" or @root = "2.16.840.1.113883.4.3.44" or @root = "2.16.840.1.113883.4.3.16" or @root = "2.16.840.1.113883.4.3.5" or @root = "2.16.840.1.113883.4.3.9" or @root = "2.16.840.1.113883.4.3.8" or @root = "2.16.840.1.113883.4.3.6" or @root = "2.16.840.1.113883.4.3.33" or @root = "2.16.840.1.113883.4.3.11" or @root = "2.16.840.1.113883.4.3.10" or @root = "2.16.840.1.113883.4.3.12" or @root = "2.16.840.1.113883.4.3.4" or @root = "2.16.840.1.113883.4.3.2" or @root = "2.16.840.1.113883.4.3.1" or @root = "2.16.840.1.113883.4.3" or @root = "2.16.840.1.113883.4.3.17" or @root = "2.16.840.1.113883.4.3.26" or @root = "2.16.840.1.113883.4.3.29" or @root = "2.16.840.1.113883.4.3.18" or @root = "2.16.840.1.113883.4.3.28" or @root = "2.16.840.1.113883.4.3.25" or @root = "2.16.840.1.113883.4.3.24" or @root = "2.16.840.1.113883.4.3.23" or @root = "2.16.840.1.113883.4.3.13" or @root = "2.16.840.1.113883.4.3.22" or @root = "2.16.840.1.113883.4.3.21" or @root = "2.16.840.1.113883.4.3.20" or @root = "2.16.840.1.113883.4.3.19" or @root = "2.16.840.1.113883.4.3.27" or @root = "2.16.840.1.113883.4.4" or @root = "2.16.840.1.113883.4.5" and @extension = "*"]'>
|
---|
71 | Error: CONF-QRDA1-19 @root contains OID for the coding system used to identify the patient. The value of @extension is the unique patient identifier the EHR sysetm uses fo record activity on a patient. Commonly used OIDs for entries to identify patient sucha as SSN, TIN, DLN, etc. are available at Appendix_L-OIDs tab of the Downloadable Resources table.
|
---|
72 | </assert>
|
---|
73 | <!--<assert test='count(cda:recordTarget/cda:patientRole/cda:patient) = 1'>
|
---|
74 | Error: CONF-QRDA1-22 patientRole 'patient' element is missing. The 'patient' element SHALL be submitted exactly once.
|
---|
75 | </assert> -->
|
---|
76 | <!--<assert test='cda:recordTarget/cda:patientRole/cda:patient/id' >
|
---|
77 | Error: CONF-QRDA1-19 @root contains OID for the coding system used to identify the patient. The value of @extension is the unique patient identifier the EHR sysetm uses fo record activity on a patient. Commoly used OIDs for entries to identify patient sucha as SSN, TIN, DLN, etc. are avaialbe at Appendix_L-OIDs tab of the Downloadable Resources table.
|
---|
78 | </assert> -->
|
---|
79 | <assert test='count(cda:recordTarget/cda:patientRole/cda:patient/cda:name) >= 1'>
|
---|
80 | Error: CONF-QRDA1-23 patient's legal 'name' element is expected at least once. The patient's legal 'name' element SHALL be submitted at least exactly once.
|
---|
81 | </assert>
|
---|
82 | <assert test='count(cda:recordTarget/cda:patientRole/cda:patient/cda:name/cda:given) >= 1'>
|
---|
83 | Error: CONF-QRDA1-24 patient's legal name 'given' (first name) element is expected at least once. The patient's legal 'given' (first name) element SHALL be submitted at least exactly once.
|
---|
84 | </assert>
|
---|
85 | <!-- This restriction for length is not in the specification, only in the error table.-->
|
---|
86 | <assert test='string-length(cda:recordTarget/cda:patientRole/cda:patient/cda:name/cda:given/@value) <= 30'>
|
---|
87 | Error: CONF-QRDA1-24 patient's legal name 'given' (first name) element value length SHALL not be more than 30 characters. patient's legal name 'given' (first name) element value length SHALL not be more than 30 characters.
|
---|
88 | </assert>
|
---|
89 | <!-- This restriction for length is not in the specification, only in the error table.-->
|
---|
90 | <assert test='count(cda:recordTarget/cda:patientRole/cda:patient/cda:name/cda:family) >= 1'>
|
---|
91 | Error: CONF-QRDA1-25 patient's legal name 'family' (last name) element is expected at least once. The patient's legal 'family' (last name) element SHALL be submitted at least exactly once.
|
---|
92 | </assert>
|
---|
93 |
|
---|
94 | <assert test='string-length(cda:recordTarget/cda:patientRole/cda:patient/cda:name/cda:family/@value) <= 30'>
|
---|
95 | Error: CONF-QRDA1-25 patient's legal name 'family' (last name) element value length SHALL not be more than 30 characters. patient's legal name 'family' (last name) element value length SHALL not be more than 30 characters.
|
---|
96 | </assert>
|
---|
97 | <assert test='cda:recordTarget/cda:patientRole/cda:patient/cda:ethnicGroupCode[@codeSystem="2.16.840.1.113883.5.50"]'>
|
---|
98 | Error: CONF-QRDA1-26 The patient's ethnic group code 'codeSystem' attribute value SHALL be '2.16.840.1.113883.5.50'.
|
---|
99 | </assert>
|
---|
100 | <assert test='cda:recordTarget/cda:patientRole/cda:patient/cda:ethnicGroupCode[@code = "2135-2" or @code = "2137-8" or @code = "2138-6" or @code = "2139-4" or @code = "2140-2" or @code = "2141-0" or @code = "2142-8" or @code = "2143-6" or @code = "2144-4" or @code = "2145-1" or @code = "2146-9" or @code = "2148-5" or @code = "2149-3" or @code = "2150-1" or @code = "2151-9" or @code = "2152-7" or @code = "2153-5" or @code = "2155-0" or @code = "2156-8" or @code = "2157-6" or @code = "2158-4" or @code = "2159-2" or @code = "2160-0" or @code = "2161-8" or @code = "2162-6" or @code = "2163-4" or @code = "2165-9" or @code = "2166-7" or @code = "2167-5" or @code = "2168-3" or @code = "2169-1" or @code = "2170-9" or @code = "2171-7" or @code = "2172-5" or @code = "2173-3" or @code = "2174-1" or @code = "2175-8" or @code = "2176-6" or @code = "2178-2" or @code = "2180-8" or @code = "2182-4" or @code = "2184-0" or @code = "2186-5"]'>
|
---|
101 | Error: CONF-QRDA1-26 The patient's ethnic group 'code' value SHALL be valid according to Appendix_M-Ethnicity in the posted Downloadable Resource table.
|
---|
102 | </assert>
|
---|
103 | <!-- above two asserts combined into one. It is separate in the error sheets
|
---|
104 | <assert test='cda:recordTarget/cda:patientRole/cda:patient/cda:ethnicGroupCode[@codeSystem="2.16.840.1.113883.5.50" and @code = "2135-2" or @code = "2137-8" or @code = "2138-6" or @code = "2139-4" or @code = "2140-2" or @code = "2141-0" or @code = "2142-8" or @code = "2143-6" or @code = "2144-4" or @code = "2145-1" or @code = "2146-9" or @code = "2148-5" or @code = "2149-3" or @code = "2150-1" or @code = "2151-9" or @code = "2152-7" or @code = "2153-5" or @code = "2155-0" or @code = "2156-8" or @code = "2157-6" or @code = "2158-4" or @code = "2159-2" or @code = "2160-0" or @code = "2161-8" or @code = "2162-6" or @code = "2163-4" or @code = "2165-9" or @code = "2166-7" or @code = "2167-5" or @code = "2168-3" or @code = "2169-1" or @code = "2170-9" or @code = "2171-7" or @code = "2172-5" or @code = "2173-3" or @code = "2174-1" or @code = "2175-8" or @code = "2176-6" or @code = "2178-2" or @code = "2180-8" or @code = "2182-4" or @code = "2184-0" or @code = "2186-5"]'>
|
---|
105 | Error: CONF-QRDA1-26 The patient's ethnic group code 'codeSystem' attribute value SHALL be '2.16.840.1.113883.5.50'. The patient's ethnic group 'code' value SHALL be valid according to Appendix_M-Ethnicity in the posted Downloadable Resource table.
|
---|
106 | </assert> -->
|
---|
107 | <assert test='(cda:recordTarget/cda:patientRole/cda:patient/cda:administrativeGenderCode)'>
|
---|
108 | Error: CONF-QRDA1-27 The 'administrativeGenderCode' element SHALL be present.
|
---|
109 | </assert>
|
---|
110 | <assert test='(cda:recordTarget/cda:patientRole/cda:patient/cda:administrativeGenderCode[@codeSystem = "2.16.840.1.113883.5.1"])'>
|
---|
111 | Error: CONF-QRDA1-27 The patient's administrativeGenderCode 'codeSystem' attribute value SHALL be '2.16.840.1.113883.5.1'.
|
---|
112 | </assert>
|
---|
113 | <assert test='(cda:recordTarget/cda:patientRole/cda:patient/cda:administrativeGenderCode[@code="M" or @code="F" or @code="UN"])'>
|
---|
114 | Error: CONF-QRDA1-27 The patient's administrative gender 'code' value SHALL be valid according to Appendix_N-Gender in the posted Downloadable Resource table.
|
---|
115 | </assert>
|
---|
116 | <!-- Combining the previous three asserts and using language from the specs document
|
---|
117 | <assert test='(cda:recordTarget/cda:patientRole/cda:patient/cda:administrativeGenderCode[@codeSystem = "2.16.840.1.113883.5.1" and @code="M" or @code="F" or @code="UN"])'>
|
---|
118 | Error: CONF-QRDA1-27 Code element SHALL be present where the value of the @codeSystem SHALL be 2.16.840.1.113883.5.1 and the value of @code SHALL be from the Appendix_N-Gender tab of the Downloadable Resources Table.
|
---|
119 | </assert> -->
|
---|
120 | <assert test='(cda:recordTarget/cda:patientRole/cda:patient/cda:raceCode)'>
|
---|
121 | Error: CONF-QRDA1-28 The 'raceCode' element SHALL be present.
|
---|
122 | </assert>
|
---|
123 | <assert test='(cda:recordTarget/cda:patientRole/cda:patient/cda:raceCode[@codeSystem = "2.16.840.1.113883.5.104"])'>
|
---|
124 | Error: CONF-QRDA1-28 The patient's raceCode 'codeSystem' attribute value SHALL be '2.16.840.1.113883.5.104'.
|
---|
125 | </assert>
|
---|
126 | <assert test='(cda:recordTarget/cda:patientRole/cda:patient/cda:raceCode[@code = "1002-5" or @code = "1004-1" or @code = "1006-6" or @code = "1008-2" or @code = "1010-8" or @code = "1011-6" or @code = "1012-4" or @code = "1013-2" or @code = "1014-0" or @code = "1015-7" or @code = "1016-5" or @code = "1017-3" or @code = "1018-1" or @code = "1019-9" or @code = "1021-5" or @code = "1022-3" or @code = "1023-1" or @code = "1024-9" or @code = "1026-4" or @code = "1028-0" or @code = "1030-6" or @code = "1031-4" or @code = "1033-0" or @code = "1035-5" or @code = "1037-1" or @code = "1039-7" or @code = "1041-3" or @code = "1042-1" or @code = "1044-7" or @code = "1045-4" or @code = "1046-2" or @code = "1047-0" or @code = "1048-8" or @code = "1049-6" or @code = "1050-4" or @code = "1051-2" or @code = "1053-8" or @code = "1054-6" or @code = "1055-3" or @code = "1056-1" or @code = "1057-9" or @code = "1058-7" or @code = "1059-5" or @code = "1060-3" or @code = "1061-1" or @code = "1062-9" or @code = "1063-7" or @code = "1064-5" or @code = "1065-2" or @code = "1066-0" or @code = "1068-6" or @code = "1069-4" or @code = "1070-2" or @code = "1071-0" or @code = "1072-8" or @code = "1073-6" or @code = "1074-4" or @code = "1076-9" or @code = "1078-5" or @code = "1080-1" or @code = "1082-7" or @code = "1083-5" or @code = "1084-3" or @code = "1086-8" or @code = "1088-4" or @code = "1089-2" or @code = "1090-0" or @code = "1091-8" or @code = "1092-6" or @code = "1093-4" or @code = "1094-2" or @code = "1095-9" or @code = "1096-7" or @code = "1097-5" or @code = "1098-3" or @code = "1100-7" or @code = "1102-3" or @code = "1103-1" or @code = "1104-9" or @code = "1106-4" or @code = "1108-0" or @code = "1109-8" or @code = "1110-6" or @code = "1112-2" or @code = "1114-8" or @code = "1115-5" or @code = "1116-3" or @code = "1117-1" or @code = "1118-9" or @code = "1119-7" or @code = "1120-5" or @code = "1121-3" or @code = "1123-9" or @code = "1124-7" or @code = "1125-4" or @code = "1126-2" or @code = "1127-0" or @code = "1128-8" or @code = "1129-6" or @code = "1130-4" or @code = "1131-2" or @code = "1132-0" or @code = "1133-8" or @code = "1134-6" or @code = "1135-3" or @code = "1136-1" or @code = "1137-9" or @code = "1138-7" or @code = "1139-5" or @code = "1140-3" or @code = "1141-1" or @code = "1142-9" or @code = "1143-7" or @code = "1144-5" or @code = "1145-2" or @code = "1146-0" or @code = "1147-8" or @code = "1148-6" or @code = "1150-2" or @code = "1151-0" or @code = "1153-6" or @code = "1155-1" or @code = "1156-9" or @code = "1157-7" or @code = "1158-5" or @code = "1159-3" or @code = "1160-1" or @code = "1162-7" or @code = "1163-5" or @code = "1165-0" or @code = "1167-6" or @code = "1169-2" or @code = "1171-8" or @code = "1173-4" or @code = "1175-9" or @code = "1176-7" or @code = "1178-3" or @code = "1180-9" or @code = "1182-5" or @code = "1184-1" or @code = "1186-6" or @code = "1187-4" or @code = "1189-0" or @code = "1191-6" or @code = "1193-2" or @code = "1194-0" or @code = "1195-7" or @code = "1196-5" or @code = "1197-3" or @code = "1198-1" or @code = "1199-9" or @code = "1200-5" or @code = "1201-3" or @code = "1202-1" or @code = "1203-9" or @code = "1204-7" or @code = "1205-4" or @code = "1207-0" or @code = "1209-6" or @code = "1211-2" or @code = "1212-0" or @code = "1214-6" or @code = "1215-3" or @code = "1216-1" or @code = "1217-9" or @code = "1218-7" or @code = "1219-5" or @code = "1220-3" or @code = "1222-9" or @code = "1223-7" or @code = "1224-5" or @code = "1225-2" or @code = "1226-0" or @code = "1227-8" or @code = "1228-6" or @code = "1229-4" or @code = "1230-2" or @code = "1231-0" or @code = "1233-6" or @code = "1234-4" or @code = "1235-1" or @code = "1236-9" or @code = "1237-7" or @code = "1238-5" or @code = "1239-3" or @code = "1240-1" or @code = "1241-9" or @code = "1242-7" or @code = "1243-5" or @code = "1244-3" or @code = "1245-0" or @code = "1246-8" or @code = "1247-6" or @code = "1248-4" or @code = "1250-0" or @code = "1252-6" or @code = "1254-2" or @code = "1256-7" or @code = "1258-3" or @code = "1260-9" or @code = "1262-5" or @code = "1264-1" or @code = "1265-8" or @code = "1267-4" or @code = "1269-0" or @code = "1271-6" or @code = "1272-4" or @code = "1273-2" or @code = "1275-7" or @code = "1277-3" or @code = "1279-9" or @code = "1281-5" or @code = "1282-3" or @code = "1283-1" or @code = "1285-6" or @code = "1286-4" or @code = "1287-2" or @code = "1288-0" or @code = "1289-8" or @code = "1290-6" or @code = "1291-4" or @code = "1292-2" or @code = "1293-0" or @code = "1294-8" or @code = "1295-5" or @code = "1297-1" or @code = "1299-7" or @code = "1301-1" or @code = "1303-7" or @code = "1305-2" or @code = "1306-0" or @code = "1307-8" or @code = "1309-4" or @code = "1310-2" or @code = "1312-8" or @code = "1313-6" or @code = "1314-4" or @code = "1315-1" or @code = "1317-7" or @code = "1319-3" or @code = "1321-9" or @code = "1323-5" or @code = "1325-0" or @code = "1326-8" or @code = "1327-6" or @code = "1328-4" or @code = "1329-2" or @code = "1331-8" or @code = "1332-6" or @code = "1333-4" or @code = "1334-2" or @code = "1335-9" or @code = "1336-7" or @code = "1337-5" or @code = "1338-3" or @code = "1340-9" or @code = "1342-5" or @code = "1344-1" or @code = "1345-8" or @code = "1346-6" or @code = "1348-2" or @code = "1350-8" or @code = "1352-4" or @code = "1354-0" or @code = "1356-5" or @code = "1358-1" or @code = "1359-9" or @code = "1360-7" or @code = "1361-5" or @code = "1363-1" or @code = "1365-6" or @code = "1366-4" or @code = "1368-0" or @code = "1370-6" or @code = "1372-2" or @code = "1374-8" or @code = "1376-3" or @code = "1378-9" or @code = "1380-5" or @code = "1382-1" or @code = "1383-9" or @code = "1384-7" or @code = "1385-4" or @code = "1387-0" or @code = "1389-6" or @code = "1391-2" or @code = "1392-0" or @code = "1393-8" or @code = "1394-6" or @code = "1395-3" or @code = "1396-1" or @code = "1397-9" or @code = "1398-7" or @code = "1399-5" or @code = "1400-1" or @code = "1401-9" or @code = "1403-5" or @code = "1405-0" or @code = "1407-6" or @code = "1409-2" or @code = "1411-8" or @code = "1412-6" or @code = "1413-4" or @code = "1414-2" or @code = "1416-7" or @code = "1417-5" or @code = "1418-3" or @code = "1419-1" or @code = "1420-9" or @code = "1421-7" or @code = "1422-5" or @code = "1423-3" or @code = "1424-1" or @code = "1425-8" or @code = "1426-6" or @code = "1427-4" or @code = "1428-2" or @code = "1429-0" or @code = "1430-8" or @code = "1431-6" or @code = "1432-4" or @code = "1433-2" or @code = "1434-0" or @code = "1435-7" or @code = "1436-5" or @code = "1437-3" or @code = "1439-9" or @code = "1441-5" or @code = "1442-3" or @code = "1443-1" or @code = "1445-6" or @code = "1446-4" or @code = "1448-0" or @code = "1450-6" or @code = "1451-4" or @code = "1453-0" or @code = "1454-8" or @code = "1456-3" or @code = "1457-1" or @code = "1458-9" or @code = "1460-5" or @code = "1462-1" or @code = "1464-7" or @code = "1465-4" or @code = "1466-2" or @code = "1467-0" or @code = "1468-8" or @code = "1469-6" or @code = "1470-4" or @code = "1471-2" or @code = "1472-0" or @code = "1474-6" or @code = "1475-3" or @code = "1476-1" or @code = "1478-7" or @code = "1479-5" or @code = "1480-3" or @code = "1481-1" or @code = "1482-9" or @code = "1483-7" or @code = "1484-5" or @code = "1485-2" or @code = "1487-8" or @code = "1489-4" or @code = "1490-2" or @code = "1491-0" or @code = "1492-8" or @code = "1493-6" or @code = "1494-4" or @code = "1495-1" or @code = "1496-9" or @code = "1497-7" or @code = "1498-5" or @code = "1499-3" or @code = "1500-8" or @code = "1501-6" or @code = "1502-4" or @code = "1503-2" or @code = "1504-0" or @code = "1505-7" or @code = "1506-5" or @code = "1507-3" or @code = "1508-1" or @code = "1509-9" or @code = "1510-7" or @code = "1511-5" or @code = "1512-3" or @code = "1513-1" or @code = "1514-9" or @code = "1515-6" or @code = "1516-4" or @code = "1518-0" or @code = "1519-8" or @code = "1520-6" or @code = "1521-4" or @code = "1522-2" or @code = "1523-0" or @code = "1524-8" or @code = "1525-5" or @code = "1526-3" or @code = "1527-1" or @code = "1528-9" or @code = "1529-7" or @code = "1530-5" or @code = "1531-3" or @code = "1532-1" or @code = "1533-9" or @code = "1534-7" or @code = "1535-4" or @code = "1536-2" or @code = "1537-0" or @code = "1538-8" or @code = "1539-6" or @code = "1541-2" or @code = "1543-8" or @code = "1545-3" or @code = "1547-9" or @code = "1549-5" or @code = "1551-1" or @code = "1552-9" or @code = "1553-7" or @code = "1554-5" or @code = "1556-0" or @code = "1558-6" or @code = "1560-2" or @code = "1562-8" or @code = "1564-4" or @code = "1566-9" or @code = "1567-7" or @code = "1568-5" or @code = "1569-3" or @code = "1570-1" or @code = "1571-9" or @code = "1573-5" or @code = "1574-3" or @code = "1576-8" or @code = "1578-4" or @code = "1579-2" or @code = "1580-0" or @code = "1582-6" or @code = "1584-2" or @code = "1586-7" or @code = "1587-5" or @code = "1588-3" or @code = "1589-1" or @code = "1590-9" or @code = "1591-7" or @code = "1592-5" or @code = "1593-3" or @code = "1594-1" or @code = "1595-8" or @code = "1596-6" or @code = "1597-4" or @code = "1598-2" or @code = "1599-0" or @code = "1600-6" or @code = "1602-2" or @code = "1603-0" or @code = "1604-8" or @code = "1605-5" or @code = "1607-1" or @code = "1609-7" or @code = "1610-5" or @code = "1611-3" or @code = "1612-1" or @code = "1613-9" or @code = "1614-7" or @code = "1615-4" or @code = "1616-2" or @code = "1617-0" or @code = "1618-8" or @code = "1619-6" or @code = "1620-4" or @code = "1621-2" or @code = "1622-0" or @code = "1623-8" or @code = "1624-6" or @code = "1625-3" or @code = "1626-1" or @code = "1627-9" or @code = "1628-7" or @code = "1629-5" or @code = "1630-3" or @code = "1631-1" or @code = "1632-9" or @code = "1633-7" or @code = "1634-5" or @code = "1635-2" or @code = "1636-0" or @code = "1637-8" or @code = "1638-6" or @code = "1639-4" or @code = "1640-2" or @code = "1641-0" or @code = "1643-6" or @code = "1645-1" or @code = "1647-7" or @code = "1649-3" or @code = "1651-9" or @code = "1653-5" or @code = "1654-3" or @code = "1655-0" or @code = "1656-8" or @code = "1657-6" or @code = "1659-2" or @code = "1661-8" or @code = "1663-4" or @code = "1665-9" or @code = "1667-5" or @code = "1668-3" or @code = "1670-9" or @code = "1671-7" or @code = "1672-5" or @code = "1673-3" or @code = "1675-8" or @code = "1677-4" or @code = "1679-0" or @code = "1680-8" or @code = "1681-6" or @code = "1683-2" or @code = "1685-7" or @code = "1687-3" or @code = "1688-1" or @code = "1689-9" or @code = "1690-7" or @code = "1692-3" or @code = "1694-9" or @code = "1696-4" or @code = "1697-2" or @code = "1698-0" or @code = "1700-4" or @code = "1702-0" or @code = "1704-6" or @code = "1705-3" or @code = "1707-9" or @code = "1709-5" or @code = "1711-1" or @code = "1712-9" or @code = "1713-7" or @code = "1715-2" or @code = "1717-8" or @code = "1718-6" or @code = "1719-4" or @code = "1720-2" or @code = "1722-8" or @code = "1724-4" or @code = "1725-1" or @code = "1726-9" or @code = "1727-7" or @code = "1728-5" or @code = "1729-3" or @code = "1730-1" or @code = "1731-9" or @code = "1732-7" or @code = "1733-5" or @code = "1735-0" or @code = "1737-6" or @code = "1739-2" or @code = "1740-0" or @code = "1741-8" or @code = "1742-6" or @code = "1743-4" or @code = "1744-2" or @code = "1745-9" or @code = "1746-7" or @code = "1747-5" or @code = "1748-3" or @code = "1749-1" or @code = "1750-9" or @code = "1751-7" or @code = "1752-5" or @code = "1753-3" or @code = "1754-1" or @code = "1755-8" or @code = "1756-6" or @code = "1757-4" or @code = "1758-2" or @code = "1759-0" or @code = "1760-8" or @code = "1761-6" or @code = "1762-4" or @code = "1763-2" or @code = "1764-0" or @code = "1765-7" or @code = "1766-5" or @code = "1767-3" or @code = "1768-1" or @code = "1769-9" or @code = "1770-7" or @code = "1771-5" or @code = "1772-3" or @code = "1773-1" or @code = "1774-9" or @code = "1775-6" or @code = "1776-4" or @code = "1777-2" or @code = "1778-0" or @code = "1779-8" or @code = "1780-6" or @code = "1781-4" or @code = "1782-2" or @code = "1783-0" or @code = "1784-8" or @code = "1785-5" or @code = "1786-3" or @code = "1787-1" or @code = "1788-9" or @code = "1789-7" or @code = "1790-5" or @code = "1791-3" or @code = "1792-1" or @code = "1793-9" or @code = "1794-7" or @code = "1795-4" or @code = "1796-2" or @code = "1797-0" or @code = "1798-8" or @code = "1799-6" or @code = "1800-2" or @code = "1801-0" or @code = "1802-8" or @code = "1803-6" or @code = "1804-4" or @code = "1805-1" or @code = "1806-9" or @code = "1807-7" or @code = "1808-5" or @code = "1809-3" or @code = "1811-9" or @code = "1813-5" or @code = "1814-3" or @code = "1815-0" or @code = "1816-8" or @code = "1817-6" or @code = "1818-4" or @code = "1819-2" or @code = "1820-0" or @code = "1821-8" or @code = "1822-6" or @code = "1823-4" or @code = "1824-2" or @code = "1825-9" or @code = "1826-7" or @code = "1827-5" or @code = "1828-3" or @code = "1829-1" or @code = "1830-9" or @code = "1831-7" or @code = "1832-5" or @code = "1833-3" or @code = "1834-1" or @code = "1835-8" or @code = "1837-4" or @code = "1838-2" or @code = "1840-8" or @code = "1842-4" or @code = "1844-0" or @code = "1845-7" or @code = "1846-5" or @code = "1847-3" or @code = "1848-1" or @code = "1849-9" or @code = "1850-7" or @code = "1851-5" or @code = "1852-3" or @code = "1853-1" or @code = "1854-9" or @code = "1855-6" or @code = "1856-4" or @code = "1857-2" or @code = "1858-0" or @code = "1859-8" or @code = "1860-6" or @code = "1861-4" or @code = "1862-2" or @code = "1863-0" or @code = "1864-8" or @code = "1865-5" or @code = "1866-3" or @code = "1867-1" or @code = "1868-9" or @code = "1869-7" or @code = "1870-5" or @code = "1871-3" or @code = "1872-1" or @code = "1873-9" or @code = "1874-7" or @code = "1875-4" or @code = "1876-2" or @code = "1877-0" or @code = "1878-8" or @code = "1879-6" or @code = "1880-4" or @code = "1881-2" or @code = "1882-0" or @code = "1883-8" or @code = "1884-6" or @code = "1885-3" or @code = "1886-1" or @code = "1887-9" or @code = "1888-7" or @code = "1889-5" or @code = "1891-1" or @code = "1892-9" or @code = "1893-7" or @code = "1894-5" or @code = "1896-0" or @code = "1897-8" or @code = "1898-6" or @code = "1899-4" or @code = "1900-0" or @code = "1901-8" or @code = "1902-6" or @code = "1903-4" or @code = "1904-2" or @code = "1905-9" or @code = "1906-7" or @code = "1907-5" or @code = "1908-3" or @code = "1909-1" or @code = "1910-9" or @code = "1911-7" or @code = "1912-5" or @code = "1913-3" or @code = "1914-1" or @code = "1915-8" or @code = "1916-6" or @code = "1917-4" or @code = "1918-2" or @code = "1919-0" or @code = "1920-8" or @code = "1921-6" or @code = "1922-4" or @code = "1923-2" or @code = "1924-0" or @code = "1925-7" or @code = "1926-5" or @code = "1927-3" or @code = "1928-1" or @code = "1929-9" or @code = "1930-7" or @code = "1931-5" or @code = "1932-3" or @code = "1933-1" or @code = "1934-9" or @code = "1935-6" or @code = "1936-4" or @code = "1937-2" or @code = "1938-0" or @code = "1939-8" or @code = "1940-6" or @code = "1941-4" or @code = "1942-2" or @code = "1943-0" or @code = "1944-8" or @code = "1945-5" or @code = "1946-3" or @code = "1947-1" or @code = "1948-9" or @code = "1949-7" or @code = "1950-5" or @code = "1951-3" or @code = "1952-1" or @code = "1953-9" or @code = "1954-7" or @code = "1955-4" or @code = "1956-2" or @code = "1957-0" or @code = "1958-8" or @code = "1959-6" or @code = "1960-4" or @code = "1961-2" or @code = "1962-0" or @code = "1963-8" or @code = "1964-6" or @code = "1966-1" or @code = "1968-7" or @code = "1969-5" or @code = "1970-3" or @code = "1972-9" or @code = "1973-7" or @code = "1974-5" or @code = "1975-2" or @code = "1976-0" or @code = "1977-8" or @code = "1978-6" or @code = "1979-4" or @code = "1980-2" or @code = "1981-0" or @code = "1982-8" or @code = "1984-4" or @code = "1985-1" or @code = "1986-9" or @code = "1987-7" or @code = "1988-5" or @code = "1990-1" or @code = "1992-7" or @code = "1993-5" or @code = "1994-3" or @code = "1995-0" or @code = "1996-8" or @code = "1997-6" or @code = "1998-4" or @code = "1999-2" or @code = "2000-8" or @code = "2002-4" or @code = "2004-0" or @code = "2006-5" or @code = "2007-3" or @code = "2008-1" or @code = "2009-9" or @code = "2010-7" or @code = "2011-5" or @code = "2012-3" or @code = "2013-1" or @code = "2014-9" or @code = "2015-6" or @code = "2016-4" or @code = "2017-2" or @code = "2018-0" or @code = "2019-8" or @code = "2020-6" or @code = "2021-4" or @code = "2022-2" or @code = "2023-0" or @code = "2024-8" or @code = "2025-5" or @code = "2026-3" or @code = "2028-9" or @code = "2029-7" or @code = "2030-5" or @code = "2031-3" or @code = "2032-1" or @code = "2033-9" or @code = "2034-7" or @code = "2035-4" or @code = "2036-2" or @code = "2037-0" or @code = "2038-8" or @code = "2039-6" or @code = "2040-4" or @code = "2041-2" or @code = "2042-0" or @code = "2043-8" or @code = "2044-6" or @code = "2045-3" or @code = "2046-1" or @code = "2047-9" or @code = "2048-7" or @code = "2049-5" or @code = "2050-3" or @code = "2051-1" or @code = "2052-9" or @code = "2054-5" or @code = "2056-0" or @code = "2058-6" or @code = "2060-2" or @code = "2061-0" or @code = "2062-8" or @code = "2063-6" or @code = "2064-4" or @code = "2065-1" or @code = "2066-9" or @code = "2067-7" or @code = "2068-5" or @code = "2069-3" or @code = "2070-1" or @code = "2071-9" or @code = "2072-7" or @code = "2073-5" or @code = "2074-3" or @code = "2075-0" or @code = "2076-8" or @code = "2078-4" or @code = "2079-2" or @code = "2080-0" or @code = "2081-8" or @code = "2082-6" or @code = "2083-4" or @code = "2085-9" or @code = "2086-7" or @code = "2087-5" or @code = "2088-3" or @code = "2089-1" or @code = "2090-9" or @code = "2091-7" or @code = "2092-5" or @code = "2093-3" or @code = "2094-1" or @code = "2095-8" or @code = "2096-6" or @code = "2097-4" or @code = "2098-2" or @code = "2100-6" or @code = "2101-4" or @code = "2102-2" or @code = "2103-0" or @code = "2104-8" or @code = "2106-3" or @code = "2108-9" or @code = "2109-7" or @code = "2110-5" or @code = "2111-3" or @code = "2112-1" or @code = "2113-9" or @code = "2114-7" or @code = "2115-4" or @code = "2116-2" or @code = "2118-8" or @code = "2119-6" or @code = "2120-4" or @code = "2121-2" or @code = "2122-0" or @code = "2123-8" or @code = "2124-6" or @code = "2125-3" or @code = "2126-1" or @code = "2127-9" or @code = "2129-5" or @code = "2131-1" or @code = "2500-7"])'>
|
---|
127 | Error: CONF-QRDA1-28 The patient's race 'code' attribute value SHALL be valid according to Appendix_O-Race in the posted Downloadable Resource table.
|
---|
128 | </assert>
|
---|
129 | <!-- Combining the previous three asserts and using language from the specs document. If the 88 page document is normative, I think we should use this instead of the three above
|
---|
130 |
|
---|
131 | <assert test='(cda:recordTarget/cda:patientRole/cda:patient/cda:raceCode[@codeSystem = "2.16.840.1.113883.5.104" and @code = "1002-5" or @code = "1004-1" or @code = "1006-6" or @code = "1008-2" or @code = "1010-8" or @code = "1011-6" or @code = "1012-4" or @code = "1013-2" or @code = "1014-0" or @code = "1015-7" or @code = "1016-5" or @code = "1017-3" or @code = "1018-1" or @code = "1019-9" or @code = "1021-5" or @code = "1022-3" or @code = "1023-1" or @code = "1024-9" or @code = "1026-4" or @code = "1028-0" or @code = "1030-6" or @code = "1031-4" or @code = "1033-0" or @code = "1035-5" or @code = "1037-1" or @code = "1039-7" or @code = "1041-3" or @code = "1042-1" or @code = "1044-7" or @code = "1045-4" or @code = "1046-2" or @code = "1047-0" or @code = "1048-8" or @code = "1049-6" or @code = "1050-4" or @code = "1051-2" or @code = "1053-8" or @code = "1054-6" or @code = "1055-3" or @code = "1056-1" or @code = "1057-9" or @code = "1058-7" or @code = "1059-5" or @code = "1060-3" or @code = "1061-1" or @code = "1062-9" or @code = "1063-7" or @code = "1064-5" or @code = "1065-2" or @code = "1066-0" or @code = "1068-6" or @code = "1069-4" or @code = "1070-2" or @code = "1071-0" or @code = "1072-8" or @code = "1073-6" or @code = "1074-4" or @code = "1076-9" or @code = "1078-5" or @code = "1080-1" or @code = "1082-7" or @code = "1083-5" or @code = "1084-3" or @code = "1086-8" or @code = "1088-4" or @code = "1089-2" or @code = "1090-0" or @code = "1091-8" or @code = "1092-6" or @code = "1093-4" or @code = "1094-2" or @code = "1095-9" or @code = "1096-7" or @code = "1097-5" or @code = "1098-3" or @code = "1100-7" or @code = "1102-3" or @code = "1103-1" or @code = "1104-9" or @code = "1106-4" or @code = "1108-0" or @code = "1109-8" or @code = "1110-6" or @code = "1112-2" or @code = "1114-8" or @code = "1115-5" or @code = "1116-3" or @code = "1117-1" or @code = "1118-9" or @code = "1119-7" or @code = "1120-5" or @code = "1121-3" or @code = "1123-9" or @code = "1124-7" or @code = "1125-4" or @code = "1126-2" or @code = "1127-0" or @code = "1128-8" or @code = "1129-6" or @code = "1130-4" or @code = "1131-2" or @code = "1132-0" or @code = "1133-8" or @code = "1134-6" or @code = "1135-3" or @code = "1136-1" or @code = "1137-9" or @code = "1138-7" or @code = "1139-5" or @code = "1140-3" or @code = "1141-1" or @code = "1142-9" or @code = "1143-7" or @code = "1144-5" or @code = "1145-2" or @code = "1146-0" or @code = "1147-8" or @code = "1148-6" or @code = "1150-2" or @code = "1151-0" or @code = "1153-6" or @code = "1155-1" or @code = "1156-9" or @code = "1157-7" or @code = "1158-5" or @code = "1159-3" or @code = "1160-1" or @code = "1162-7" or @code = "1163-5" or @code = "1165-0" or @code = "1167-6" or @code = "1169-2" or @code = "1171-8" or @code = "1173-4" or @code = "1175-9" or @code = "1176-7" or @code = "1178-3" or @code = "1180-9" or @code = "1182-5" or @code = "1184-1" or @code = "1186-6" or @code = "1187-4" or @code = "1189-0" or @code = "1191-6" or @code = "1193-2" or @code = "1194-0" or @code = "1195-7" or @code = "1196-5" or @code = "1197-3" or @code = "1198-1" or @code = "1199-9" or @code = "1200-5" or @code = "1201-3" or @code = "1202-1" or @code = "1203-9" or @code = "1204-7" or @code = "1205-4" or @code = "1207-0" or @code = "1209-6" or @code = "1211-2" or @code = "1212-0" or @code = "1214-6" or @code = "1215-3" or @code = "1216-1" or @code = "1217-9" or @code = "1218-7" or @code = "1219-5" or @code = "1220-3" or @code = "1222-9" or @code = "1223-7" or @code = "1224-5" or @code = "1225-2" or @code = "1226-0" or @code = "1227-8" or @code = "1228-6" or @code = "1229-4" or @code = "1230-2" or @code = "1231-0" or @code = "1233-6" or @code = "1234-4" or @code = "1235-1" or @code = "1236-9" or @code = "1237-7" or @code = "1238-5" or @code = "1239-3" or @code = "1240-1" or @code = "1241-9" or @code = "1242-7" or @code = "1243-5" or @code = "1244-3" or @code = "1245-0" or @code = "1246-8" or @code = "1247-6" or @code = "1248-4" or @code = "1250-0" or @code = "1252-6" or @code = "1254-2" or @code = "1256-7" or @code = "1258-3" or @code = "1260-9" or @code = "1262-5" or @code = "1264-1" or @code = "1265-8" or @code = "1267-4" or @code = "1269-0" or @code = "1271-6" or @code = "1272-4" or @code = "1273-2" or @code = "1275-7" or @code = "1277-3" or @code = "1279-9" or @code = "1281-5" or @code = "1282-3" or @code = "1283-1" or @code = "1285-6" or @code = "1286-4" or @code = "1287-2" or @code = "1288-0" or @code = "1289-8" or @code = "1290-6" or @code = "1291-4" or @code = "1292-2" or @code = "1293-0" or @code = "1294-8" or @code = "1295-5" or @code = "1297-1" or @code = "1299-7" or @code = "1301-1" or @code = "1303-7" or @code = "1305-2" or @code = "1306-0" or @code = "1307-8" or @code = "1309-4" or @code = "1310-2" or @code = "1312-8" or @code = "1313-6" or @code = "1314-4" or @code = "1315-1" or @code = "1317-7" or @code = "1319-3" or @code = "1321-9" or @code = "1323-5" or @code = "1325-0" or @code = "1326-8" or @code = "1327-6" or @code = "1328-4" or @code = "1329-2" or @code = "1331-8" or @code = "1332-6" or @code = "1333-4" or @code = "1334-2" or @code = "1335-9" or @code = "1336-7" or @code = "1337-5" or @code = "1338-3" or @code = "1340-9" or @code = "1342-5" or @code = "1344-1" or @code = "1345-8" or @code = "1346-6" or @code = "1348-2" or @code = "1350-8" or @code = "1352-4" or @code = "1354-0" or @code = "1356-5" or @code = "1358-1" or @code = "1359-9" or @code = "1360-7" or @code = "1361-5" or @code = "1363-1" or @code = "1365-6" or @code = "1366-4" or @code = "1368-0" or @code = "1370-6" or @code = "1372-2" or @code = "1374-8" or @code = "1376-3" or @code = "1378-9" or @code = "1380-5" or @code = "1382-1" or @code = "1383-9" or @code = "1384-7" or @code = "1385-4" or @code = "1387-0" or @code = "1389-6" or @code = "1391-2" or @code = "1392-0" or @code = "1393-8" or @code = "1394-6" or @code = "1395-3" or @code = "1396-1" or @code = "1397-9" or @code = "1398-7" or @code = "1399-5" or @code = "1400-1" or @code = "1401-9" or @code = "1403-5" or @code = "1405-0" or @code = "1407-6" or @code = "1409-2" or @code = "1411-8" or @code = "1412-6" or @code = "1413-4" or @code = "1414-2" or @code = "1416-7" or @code = "1417-5" or @code = "1418-3" or @code = "1419-1" or @code = "1420-9" or @code = "1421-7" or @code = "1422-5" or @code = "1423-3" or @code = "1424-1" or @code = "1425-8" or @code = "1426-6" or @code = "1427-4" or @code = "1428-2" or @code = "1429-0" or @code = "1430-8" or @code = "1431-6" or @code = "1432-4" or @code = "1433-2" or @code = "1434-0" or @code = "1435-7" or @code = "1436-5" or @code = "1437-3" or @code = "1439-9" or @code = "1441-5" or @code = "1442-3" or @code = "1443-1" or @code = "1445-6" or @code = "1446-4" or @code = "1448-0" or @code = "1450-6" or @code = "1451-4" or @code = "1453-0" or @code = "1454-8" or @code = "1456-3" or @code = "1457-1" or @code = "1458-9" or @code = "1460-5" or @code = "1462-1" or @code = "1464-7" or @code = "1465-4" or @code = "1466-2" or @code = "1467-0" or @code = "1468-8" or @code = "1469-6" or @code = "1470-4" or @code = "1471-2" or @code = "1472-0" or @code = "1474-6" or @code = "1475-3" or @code = "1476-1" or @code = "1478-7" or @code = "1479-5" or @code = "1480-3" or @code = "1481-1" or @code = "1482-9" or @code = "1483-7" or @code = "1484-5" or @code = "1485-2" or @code = "1487-8" or @code = "1489-4" or @code = "1490-2" or @code = "1491-0" or @code = "1492-8" or @code = "1493-6" or @code = "1494-4" or @code = "1495-1" or @code = "1496-9" or @code = "1497-7" or @code = "1498-5" or @code = "1499-3" or @code = "1500-8" or @code = "1501-6" or @code = "1502-4" or @code = "1503-2" or @code = "1504-0" or @code = "1505-7" or @code = "1506-5" or @code = "1507-3" or @code = "1508-1" or @code = "1509-9" or @code = "1510-7" or @code = "1511-5" or @code = "1512-3" or @code = "1513-1" or @code = "1514-9" or @code = "1515-6" or @code = "1516-4" or @code = "1518-0" or @code = "1519-8" or @code = "1520-6" or @code = "1521-4" or @code = "1522-2" or @code = "1523-0" or @code = "1524-8" or @code = "1525-5" or @code = "1526-3" or @code = "1527-1" or @code = "1528-9" or @code = "1529-7" or @code = "1530-5" or @code = "1531-3" or @code = "1532-1" or @code = "1533-9" or @code = "1534-7" or @code = "1535-4" or @code = "1536-2" or @code = "1537-0" or @code = "1538-8" or @code = "1539-6" or @code = "1541-2" or @code = "1543-8" or @code = "1545-3" or @code = "1547-9" or @code = "1549-5" or @code = "1551-1" or @code = "1552-9" or @code = "1553-7" or @code = "1554-5" or @code = "1556-0" or @code = "1558-6" or @code = "1560-2" or @code = "1562-8" or @code = "1564-4" or @code = "1566-9" or @code = "1567-7" or @code = "1568-5" or @code = "1569-3" or @code = "1570-1" or @code = "1571-9" or @code = "1573-5" or @code = "1574-3" or @code = "1576-8" or @code = "1578-4" or @code = "1579-2" or @code = "1580-0" or @code = "1582-6" or @code = "1584-2" or @code = "1586-7" or @code = "1587-5" or @code = "1588-3" or @code = "1589-1" or @code = "1590-9" or @code = "1591-7" or @code = "1592-5" or @code = "1593-3" or @code = "1594-1" or @code = "1595-8" or @code = "1596-6" or @code = "1597-4" or @code = "1598-2" or @code = "1599-0" or @code = "1600-6" or @code = "1602-2" or @code = "1603-0" or @code = "1604-8" or @code = "1605-5" or @code = "1607-1" or @code = "1609-7" or @code = "1610-5" or @code = "1611-3" or @code = "1612-1" or @code = "1613-9" or @code = "1614-7" or @code = "1615-4" or @code = "1616-2" or @code = "1617-0" or @code = "1618-8" or @code = "1619-6" or @code = "1620-4" or @code = "1621-2" or @code = "1622-0" or @code = "1623-8" or @code = "1624-6" or @code = "1625-3" or @code = "1626-1" or @code = "1627-9" or @code = "1628-7" or @code = "1629-5" or @code = "1630-3" or @code = "1631-1" or @code = "1632-9" or @code = "1633-7" or @code = "1634-5" or @code = "1635-2" or @code = "1636-0" or @code = "1637-8" or @code = "1638-6" or @code = "1639-4" or @code = "1640-2" or @code = "1641-0" or @code = "1643-6" or @code = "1645-1" or @code = "1647-7" or @code = "1649-3" or @code = "1651-9" or @code = "1653-5" or @code = "1654-3" or @code = "1655-0" or @code = "1656-8" or @code = "1657-6" or @code = "1659-2" or @code = "1661-8" or @code = "1663-4" or @code = "1665-9" or @code = "1667-5" or @code = "1668-3" or @code = "1670-9" or @code = "1671-7" or @code = "1672-5" or @code = "1673-3" or @code = "1675-8" or @code = "1677-4" or @code = "1679-0" or @code = "1680-8" or @code = "1681-6" or @code = "1683-2" or @code = "1685-7" or @code = "1687-3" or @code = "1688-1" or @code = "1689-9" or @code = "1690-7" or @code = "1692-3" or @code = "1694-9" or @code = "1696-4" or @code = "1697-2" or @code = "1698-0" or @code = "1700-4" or @code = "1702-0" or @code = "1704-6" or @code = "1705-3" or @code = "1707-9" or @code = "1709-5" or @code = "1711-1" or @code = "1712-9" or @code = "1713-7" or @code = "1715-2" or @code = "1717-8" or @code = "1718-6" or @code = "1719-4" or @code = "1720-2" or @code = "1722-8" or @code = "1724-4" or @code = "1725-1" or @code = "1726-9" or @code = "1727-7" or @code = "1728-5" or @code = "1729-3" or @code = "1730-1" or @code = "1731-9" or @code = "1732-7" or @code = "1733-5" or @code = "1735-0" or @code = "1737-6" or @code = "1739-2" or @code = "1740-0" or @code = "1741-8" or @code = "1742-6" or @code = "1743-4" or @code = "1744-2" or @code = "1745-9" or @code = "1746-7" or @code = "1747-5" or @code = "1748-3" or @code = "1749-1" or @code = "1750-9" or @code = "1751-7" or @code = "1752-5" or @code = "1753-3" or @code = "1754-1" or @code = "1755-8" or @code = "1756-6" or @code = "1757-4" or @code = "1758-2" or @code = "1759-0" or @code = "1760-8" or @code = "1761-6" or @code = "1762-4" or @code = "1763-2" or @code = "1764-0" or @code = "1765-7" or @code = "1766-5" or @code = "1767-3" or @code = "1768-1" or @code = "1769-9" or @code = "1770-7" or @code = "1771-5" or @code = "1772-3" or @code = "1773-1" or @code = "1774-9" or @code = "1775-6" or @code = "1776-4" or @code = "1777-2" or @code = "1778-0" or @code = "1779-8" or @code = "1780-6" or @code = "1781-4" or @code = "1782-2" or @code = "1783-0" or @code = "1784-8" or @code = "1785-5" or @code = "1786-3" or @code = "1787-1" or @code = "1788-9" or @code = "1789-7" or @code = "1790-5" or @code = "1791-3" or @code = "1792-1" or @code = "1793-9" or @code = "1794-7" or @code = "1795-4" or @code = "1796-2" or @code = "1797-0" or @code = "1798-8" or @code = "1799-6" or @code = "1800-2" or @code = "1801-0" or @code = "1802-8" or @code = "1803-6" or @code = "1804-4" or @code = "1805-1" or @code = "1806-9" or @code = "1807-7" or @code = "1808-5" or @code = "1809-3" or @code = "1811-9" or @code = "1813-5" or @code = "1814-3" or @code = "1815-0" or @code = "1816-8" or @code = "1817-6" or @code = "1818-4" or @code = "1819-2" or @code = "1820-0" or @code = "1821-8" or @code = "1822-6" or @code = "1823-4" or @code = "1824-2" or @code = "1825-9" or @code = "1826-7" or @code = "1827-5" or @code = "1828-3" or @code = "1829-1" or @code = "1830-9" or @code = "1831-7" or @code = "1832-5" or @code = "1833-3" or @code = "1834-1" or @code = "1835-8" or @code = "1837-4" or @code = "1838-2" or @code = "1840-8" or @code = "1842-4" or @code = "1844-0" or @code = "1845-7" or @code = "1846-5" or @code = "1847-3" or @code = "1848-1" or @code = "1849-9" or @code = "1850-7" or @code = "1851-5" or @code = "1852-3" or @code = "1853-1" or @code = "1854-9" or @code = "1855-6" or @code = "1856-4" or @code = "1857-2" or @code = "1858-0" or @code = "1859-8" or @code = "1860-6" or @code = "1861-4" or @code = "1862-2" or @code = "1863-0" or @code = "1864-8" or @code = "1865-5" or @code = "1866-3" or @code = "1867-1" or @code = "1868-9" or @code = "1869-7" or @code = "1870-5" or @code = "1871-3" or @code = "1872-1" or @code = "1873-9" or @code = "1874-7" or @code = "1875-4" or @code = "1876-2" or @code = "1877-0" or @code = "1878-8" or @code = "1879-6" or @code = "1880-4" or @code = "1881-2" or @code = "1882-0" or @code = "1883-8" or @code = "1884-6" or @code = "1885-3" or @code = "1886-1" or @code = "1887-9" or @code = "1888-7" or @code = "1889-5" or @code = "1891-1" or @code = "1892-9" or @code = "1893-7" or @code = "1894-5" or @code = "1896-0" or @code = "1897-8" or @code = "1898-6" or @code = "1899-4" or @code = "1900-0" or @code = "1901-8" or @code = "1902-6" or @code = "1903-4" or @code = "1904-2" or @code = "1905-9" or @code = "1906-7" or @code = "1907-5" or @code = "1908-3" or @code = "1909-1" or @code = "1910-9" or @code = "1911-7" or @code = "1912-5" or @code = "1913-3" or @code = "1914-1" or @code = "1915-8" or @code = "1916-6" or @code = "1917-4" or @code = "1918-2" or @code = "1919-0" or @code = "1920-8" or @code = "1921-6" or @code = "1922-4" or @code = "1923-2" or @code = "1924-0" or @code = "1925-7" or @code = "1926-5" or @code = "1927-3" or @code = "1928-1" or @code = "1929-9" or @code = "1930-7" or @code = "1931-5" or @code = "1932-3" or @code = "1933-1" or @code = "1934-9" or @code = "1935-6" or @code = "1936-4" or @code = "1937-2" or @code = "1938-0" or @code = "1939-8" or @code = "1940-6" or @code = "1941-4" or @code = "1942-2" or @code = "1943-0" or @code = "1944-8" or @code = "1945-5" or @code = "1946-3" or @code = "1947-1" or @code = "1948-9" or @code = "1949-7" or @code = "1950-5" or @code = "1951-3" or @code = "1952-1" or @code = "1953-9" or @code = "1954-7" or @code = "1955-4" or @code = "1956-2" or @code = "1957-0" or @code = "1958-8" or @code = "1959-6" or @code = "1960-4" or @code = "1961-2" or @code = "1962-0" or @code = "1963-8" or @code = "1964-6" or @code = "1966-1" or @code = "1968-7" or @code = "1969-5" or @code = "1970-3" or @code = "1972-9" or @code = "1973-7" or @code = "1974-5" or @code = "1975-2" or @code = "1976-0" or @code = "1977-8" or @code = "1978-6" or @code = "1979-4" or @code = "1980-2" or @code = "1981-0" or @code = "1982-8" or @code = "1984-4" or @code = "1985-1" or @code = "1986-9" or @code = "1987-7" or @code = "1988-5" or @code = "1990-1" or @code = "1992-7" or @code = "1993-5" or @code = "1994-3" or @code = "1995-0" or @code = "1996-8" or @code = "1997-6" or @code = "1998-4" or @code = "1999-2" or @code = "2000-8" or @code = "2002-4" or @code = "2004-0" or @code = "2006-5" or @code = "2007-3" or @code = "2008-1" or @code = "2009-9" or @code = "2010-7" or @code = "2011-5" or @code = "2012-3" or @code = "2013-1" or @code = "2014-9" or @code = "2015-6" or @code = "2016-4" or @code = "2017-2" or @code = "2018-0" or @code = "2019-8" or @code = "2020-6" or @code = "2021-4" or @code = "2022-2" or @code = "2023-0" or @code = "2024-8" or @code = "2025-5" or @code = "2026-3" or @code = "2028-9" or @code = "2029-7" or @code = "2030-5" or @code = "2031-3" or @code = "2032-1" or @code = "2033-9" or @code = "2034-7" or @code = "2035-4" or @code = "2036-2" or @code = "2037-0" or @code = "2038-8" or @code = "2039-6" or @code = "2040-4" or @code = "2041-2" or @code = "2042-0" or @code = "2043-8" or @code = "2044-6" or @code = "2045-3" or @code = "2046-1" or @code = "2047-9" or @code = "2048-7" or @code = "2049-5" or @code = "2050-3" or @code = "2051-1" or @code = "2052-9" or @code = "2054-5" or @code = "2056-0" or @code = "2058-6" or @code = "2060-2" or @code = "2061-0" or @code = "2062-8" or @code = "2063-6" or @code = "2064-4" or @code = "2065-1" or @code = "2066-9" or @code = "2067-7" or @code = "2068-5" or @code = "2069-3" or @code = "2070-1" or @code = "2071-9" or @code = "2072-7" or @code = "2073-5" or @code = "2074-3" or @code = "2075-0" or @code = "2076-8" or @code = "2078-4" or @code = "2079-2" or @code = "2080-0" or @code = "2081-8" or @code = "2082-6" or @code = "2083-4" or @code = "2085-9" or @code = "2086-7" or @code = "2087-5" or @code = "2088-3" or @code = "2089-1" or @code = "2090-9" or @code = "2091-7" or @code = "2092-5" or @code = "2093-3" or @code = "2094-1" or @code = "2095-8" or @code = "2096-6" or @code = "2097-4" or @code = "2098-2" or @code = "2100-6" or @code = "2101-4" or @code = "2102-2" or @code = "2103-0" or @code = "2104-8" or @code = "2106-3" or @code = "2108-9" or @code = "2109-7" or @code = "2110-5" or @code = "2111-3" or @code = "2112-1" or @code = "2113-9" or @code = "2114-7" or @code = "2115-4" or @code = "2116-2" or @code = "2118-8" or @code = "2119-6" or @code = "2120-4" or @code = "2121-2" or @code = "2122-0" or @code = "2123-8" or @code = "2124-6" or @code = "2125-3" or @code = "2126-1" or @code = "2127-9" or @code = "2129-5" or @code = "2131-1" or @code = "2500-7"])'>
|
---|
132 | Error: CONF-QRDA1-28 The raceCode element SHALL be 2.16.840.1.113883.5.104 and the value of the @code SHALL be from Appendix_O-Race tab of the Downloadabel Resources table.
|
---|
133 | </assert> -->
|
---|
134 | <!-- <include href="templates/2.16.840.113883.5.104.ent" /> -->
|
---|
135 | <assert test='(cda:recordTarget/cda:patientRole/cda:patient/cda:birthTime)'>
|
---|
136 | Error: CONF-QRDA1-29 The 'birthTime' element SHALL be present.
|
---|
137 | </assert>
|
---|
138 | <assert test='string-length(cda:recordTarget/cda:patientRole/cda:patient/cda:birthTime/@value) >= 8'>
|
---|
139 | Error: CONF-QRDA1-30 The birthTime value attribute value SHALL be at least precise to the day (YYYYMMDD).
|
---|
140 | </assert>
|
---|
141 | <assert test='count(cda:recordTarget/cda:patientRole/cda:providerOrganization) = 1'>
|
---|
142 | Error: CONF-QRDA1-31 The report SHALL contain exactly one /recordTarget/patientRole/providerOrganization.
|
---|
143 | </assert>
|
---|
144 | <assert test='(cda:recordTarget/cda:patientRole/cda:providerOrganization/cda:id[@root="2.16.840.1.113883.4.6"])'>
|
---|
145 | Error: CONF-QRDA1-32 The id 'root' attribute value SHALL be '2.16.840.1.113883.4.6'.
|
---|
146 | </assert>
|
---|
147 | <!-- NPI validation -->
|
---|
148 | <let name="npi" value="cda:recordTarget/cda:patientRole/cda:providerOrganization/cda:id/@extension" />
|
---|
149 | <assert test="((sum(for $j in (for $i in
|
---|
150 | reverse(string-to-codepoints($npi))[position() mod 2 = 0] return ($i - 48) *
|
---|
151 | 2, for $i in reverse(string-to-codepoints($npi))[position() mod 2 = 1]
|
---|
152 | return ($i - 48)) return ($j mod 10, $j idiv 10)) + 24) mod 10) = 0">
|
---|
153 | Error: CONF-QRDA1-32 cda:recordTarget/cda:patientRole/cda:providerOrganization/cda:id[@extension that containst the NPI Failed the NPI validation test!!
|
---|
154 | </assert>
|
---|
155 | <assert test='(cda:recordTarget/cda:patientRole/cda:providerOrganization/cda:name)'>
|
---|
156 | Warning: CONF-QRDA1-33 recordTarget/patientRole/providerOrganization/name element SHOULD be present
|
---|
157 | </assert>
|
---|
158 | <assert test='count(cda:recordTarget/cda:patientRole/cda:providerOrganization/cda:addr) >= 1'>
|
---|
159 | Error: CONF-QRDA1-34 At least one recordTarget/patientRole/providerOrganization/name element SHALL be present
|
---|
160 | </assert>
|
---|
161 | <assert test='(cda:recordTarget/cda:patientRole/cda:providerOrganization/cda:addr/cda:streetAddressLine)'>
|
---|
162 | Warning: CONF-QRDA1-35 recordTarget/patientRole/providerOrganization/addr/streetAddressLine) element MAY be present
|
---|
163 | </assert>
|
---|
164 | <assert test='(cda:recordTarget/cda:patientRole/cda:providerOrganization/cda:addr/cda:city)'>
|
---|
165 | Warning: CONF-QRDA1-36 recordTarget/patientRole/providerOrganization/addr/city) element MAY be present
|
---|
166 | </assert>
|
---|
167 | <assert test='contains("AL AK AZ AR AS CA CO CT DE DC FL GA GU HI ID IL IN IA KS KY LA ME MD MA MI MN MS MO MT NE NV NH NJ NM NY NC MP ND OH OK OR PA PR RI SC SD TN TX UT VT VI VA WA WV WI WY",cda:recordTarget/cda:patientRole/cda:providerOrganization/cda:addr/cda:state)'>
|
---|
168 | Error: CONF-QRDA1-37 recordTarget/patientRole/providerOrganization/addr/state) element SHALL be present and shall be one of the states in the Appendix_V-States Downloadable Resource
|
---|
169 | </assert>
|
---|
170 | <assert test='(cda:recordTarget/cda:patientRole/cda:providerOrganization/cda:addr/cda:postalCode)'>
|
---|
171 | Warning: CONF-QRDA1-38 recordTarget/patientRole/providerOrganization/addr/postalCode) element MAY be present
|
---|
172 | </assert>
|
---|
173 | <assert test='count(cda:recordTarget/cda:patientRole/cda:providerOrganization/cda:asOrganizationPartOf) = 1'>
|
---|
174 | Error: CONF-QRDA1-39 Report SHALL contain exactly one recordTarget/patientRole/providerOrganization/asOrganizationPartOf element.
|
---|
175 | </assert>
|
---|
176 | <assert test='count(cda:recordTarget/cda:patientRole/cda:providerOrganization/cda:asOrganizationPartOf/cda:wholeOrganization) = 1'>
|
---|
177 | Error: CONF-QRDA1-40 Report SHALL contain exactly one recordTarget/patientRole/providerOrganization/asOrganizationPartOf/wholeOrganization element.
|
---|
178 | </assert>
|
---|
179 | <assert test='cda:recordTarget/cda:patientRole/cda:providerOrganization/cda:asOrganizationPartOf/cda:wholeOrganization/cda:id[@root = "2.16.840.1.113883.4.2"]'>
|
---|
180 | Error: CONF-QRDA1-41 The id 'root' attribute value SHALL be '2.16.840.1.113883.4.2'.
|
---|
181 | </assert>
|
---|
182 | <!--<let name="tin" value="cda:recordTarget/cda:patientRole/cda:providerOrganization/cda:asOrganizationPartOf/cda:wholeOrganization/@extension"/>-->
|
---|
183 | <assert test='string-length(cda:recordTarget/cda:patientRole/cda:providerOrganization/cda:asOrganizationPartOf/cda:wholeOrganization/cda:id/@extension) = "9"'>
|
---|
184 | Error: CONF-QRDA1-41 The patient's provider's organization's id 'extension' attribute value SHALL be present as the provider's TIN (nine-digit value in XXXXXXXXX format).
|
---|
185 | </assert>
|
---|
186 | <assert test='count(cda:author)= 1'>
|
---|
187 | CONF-QRDA1-42 Report SHALL contain exactly one /clinicalDocument/author.
|
---|
188 | </assert>
|
---|
189 | <assert test='cda:author/cda:time'>
|
---|
190 | Error: CONF-QRDA1-43 The /clinicalDocument/author/time element shall be present.
|
---|
191 | </assert>
|
---|
192 | <assert test='string-length(cda:author/cda:time/@value) >= 8'>
|
---|
193 | Error: CONF-QRDA1-44 The effectiveTime value attribute value SHALL be at least precise to the day YYYYMMDD.
|
---|
194 | </assert>
|
---|
195 | <assert test='cda:author/cda:assignedAuthor'>
|
---|
196 | Error: CONF-QRDA1-45 clinicalDocument/author/assignedAuthor element SHALL be present.
|
---|
197 | </assert>
|
---|
198 | <assert test='cda:author/cda:assignedAuthor/cda:id[@root="2.16.840.1.113883.249.6"]'>
|
---|
199 | Error: CONF-QRDA1-46 clinicalDocument/author/assignedAuthor/id element SHALL be present. The id @root SHALL be 2.16.840.1.113883.249.6 and the @extension SHALL be the CMS Approved Qualified Software Version.
|
---|
200 | </assert>
|
---|
201 | <assert test='count(cda:author/cda:assignedAuthor/cda:assignedPerson) <= 1'>
|
---|
202 | Warning: CONF-QRDA1-47 and 48: A QRDA Category I report MAY contain a ClinicalDocument/author/assignedAuthor/assignedPerson element and if present may contain exactly one.
|
---|
203 | </assert>
|
---|
204 | <assert test='count(cda:author/cda:assignedAuthor/cda:assignedPerson/name) >= 0'>
|
---|
205 | Error: CONF-QRDA1-49: A QRDA Category I report MAY contain at least one legal name ClinicalDocument/author/assignedAuthor/assignedPerson/name.
|
---|
206 | </assert>
|
---|
207 | <assert test='count(cda:author/cda:assignedAuthor/cda:assignedPerson/cda:name/cda:given) >= 0'>
|
---|
208 | Error: CONF-QRDA1-50: A QRDA Category I report MAY contain at least one ClinicalDocument/author/assignedAuthor/assignedPerson/name/given.
|
---|
209 | </assert>
|
---|
210 | <assert test='count(cda:author/cda:assignedAuthor/cda:assignedPerson/cda:name/cda:family) >= 0'>
|
---|
211 | Error: CONF-QRDA1-51: A QRDA Category I report MAY contain at least one ClinicalDocument/author/assignedAuthor/assignedPerson/name/family.
|
---|
212 | </assert>
|
---|
213 | <assert test='count(cda:author/cda:assignedAuthor/cda:representedOrganization) <= 1'>
|
---|
214 | Error: CONF-QRDA1-52: A QRDA Category I report MAY contain one ClinicalDocument/author/assignedAuthor/representedOrganization.
|
---|
215 | </assert>
|
---|
216 | <assert test='count(cda:author/cda:assignedAuthor/cda:representeOrganization/cda:id[@root="*"]) >= 0'>
|
---|
217 | Error: CONF-QRDA1-53: A QRDA Category I report MAY contain a ClinicalDocument/author/assignedAuthor/representedOrganization/id element with @root containing the OID of the authoring organization.
|
---|
218 | </assert>
|
---|
219 | <assert test='count(cda:author/cda:assignedAuthor/cda:representeOrganization/name) >= 0'>
|
---|
220 | Error: CONF-QRDA1-54: A QRDA Category I report MAY contain a ClinicalDocument/author/assignedAuthor/representedOrganization/name element.
|
---|
221 | </assert>
|
---|
222 | <assert test='count(cda:informant) = 1'>
|
---|
223 | Error: CONF-QRDA-I-10: A QRDA Category I report SHALL contain exactly one
|
---|
224 | ClinicalDocument/informant, which represents the reporting facility.
|
---|
225 | CONF-QRDA-I-11: An organization source of information SHALL be represented with
|
---|
226 | informant.
|
---|
227 | </assert>
|
---|
228 | <assert test='cda:custodian/cda:assignedCustodian/cda:representedCustodianOrganization/cda:id/@root or
|
---|
229 | cda:custodian/cda:assignedCustodian/cda:representedCustodianOrganization/cda:id[@nullFlavor="MSK"]'>
|
---|
230 | Error: CONF-QRDA-I-12: A QRDA Category I report SHALL contain exactly one
|
---|
231 | custodian/assignedCustodian/representedCustodianOrganization/
|
---|
232 | id element.
|
---|
233 | CONF-QRDA-I-13: The value of custodian/assignedCustodian/
|
---|
234 | representedCustodianOrganization/id element @root SHALL be the id
|
---|
235 | root of the custodian organization.
|
---|
236 | </assert>
|
---|
237 | <assert test='not(cda:legalAuthenticator) or count(cda:legalAuthenticator/cda:time) = 1'>
|
---|
238 | Error: CONF-QRDA-I-15: If present, a QRDA Category I report legalAuthenticator SHALL
|
---|
239 | contain exactly one ClinicalDocument/legalAuthenticator/time element.
|
---|
240 | </assert>
|
---|
241 | <assert test='not(cda:legalAuthenticator) or count(cda:legalAuthenticator/cda:signatureCode) = 1'>
|
---|
242 | Error: CONF-QRDA-I-16: If present, a QRDA Category I report legalAuthenticator SHALL
|
---|
243 | contain exactly one signatureCode element.
|
---|
244 | </assert>
|
---|
245 | <assert test='not(cda:legalAuthenticator) or
|
---|
246 | cda:legalAuthenticator/cda:signatureCode[@code="S"] or
|
---|
247 | cda:legalAuthenticator/cda:signatureCode[@nullFlavor="MSK"]'>
|
---|
248 | Error: CONF-QRDA-I-17: The value of a QRDA ClinicalDocument/signatureCode/@code
|
---|
249 | SHALL be S.
|
---|
250 | </assert>
|
---|
251 | <assert test='not(cda:legalAuthenticator) or
|
---|
252 | cda:legalAuthenticator/cda:assignedEntity'>
|
---|
253 | Error: CONF-QRDA-I-18: If present, a QRDA Category I report legalAuthenticator SHALL
|
---|
254 | contain exactly one assignedEntity element that represents the legal
|
---|
255 | authenticator of the document.
|
---|
256 | </assert>
|
---|
257 | <assert test='not(cda:legalAuthenticator) or
|
---|
258 | cda:legalAuthenticator/cda:assignedEntity/cda:id'>
|
---|
259 | Error: CONF-QRDA-I-19: The ClinicalDocument/legalAuthenticator/assigned entity
|
---|
260 | SHALL contain an id element.
|
---|
261 | </assert>
|
---|
262 | <assert test='cda:component/cda:structuredBody'>
|
---|
263 | Error: CONF-QRDA-I-20: A QRDA Category I report SHALL contain exactly one
|
---|
264 | ClinicalDocument/component/structuredBody.
|
---|
265 | </assert>
|
---|
266 |
|
---|
267 | <!--
|
---|
268 |
|
---|
269 | Changed as per email discussion between Len Gallagher and Liora Alschuler
|
---|
270 |
|
---|
271 | <assert test='count(cda:component/cda:structuredBody/cda:component/cda:section/cda:code[@code="55186-1" and @codeSystem="2.16.840.1.113883.6.1"]) > 0'>
|
---|
272 | Error: CONF-QRDA-I-21: A QRDA Category I report SHALL contain at least one and MAY contain
|
---|
273 | more than one non-nested top-level Measure section each containing
|
---|
274 | information about a single measure.
|
---|
275 | </assert>
|
---|
276 | -->
|
---|
277 |
|
---|
278 | <assert test='count(.//cda:section/cda:code[@code="55186-1" and @codeSystem="2.16.840.1.113883.6.1"]) > 0'>
|
---|
279 | Error: CONF-QRDA-I-21: A QRDA Category I report SHALL contain at least one and MAY contain
|
---|
280 | more than one Measure section each containing information about a single measure.
|
---|
281 | </assert>
|
---|
282 |
|
---|
283 | </rule>
|
---|
284 |
|
---|
285 |
|
---|
286 | <!-- Measure Section -->
|
---|
287 |
|
---|
288 | <rule context='*[cda:code[@code="55186-1" and @codeSystem="2.16.840.1.113883.6.1"]]'>
|
---|
289 | <!--
|
---|
290 | <assert test='self::/cda:ClinicalDocument/cda:component/cda:structuredBody/cda:component/cda:section or
|
---|
291 | parent::cda:section[@code="55185-3" and @codeSystem="2.16.840.1.113883.6.1"]/cda:component'>
|
---|
292 | Error: CONF-QRDA-I-22: The Measure section SHALL be a top-level section if it is not part of a
|
---|
293 | measure set.
|
---|
294 | </assert>
|
---|
295 | -->
|
---|
296 | <assert test='self::cda:section[parent::cda:component[parent::cda:structuredBody[parent::cda:component[parent::cda:ClinicalDocument]]]] or
|
---|
297 | parent::cda:section[@code="55185-3" and @codeSystem="2.16.840.1.113883.6.1"]/cda:component'>
|
---|
298 | Error: CONF-QRDA-I-22: The Measure section SHALL be a top-level section if it is not part of a
|
---|
299 | measure set.
|
---|
300 | </assert>
|
---|
301 |
|
---|
302 | <assert test='cda:templateId'>
|
---|
303 | Error: CONF-QRDA-I-33: The Measure section SHALL contain at least one templateId uniquely
|
---|
304 | identifying each Measure name and version
|
---|
305 | </assert>
|
---|
306 | <assert test='not(parent::cda:section[@code="55185-3" and @codeSystem="2.16.840.1.113883.6.1"]/cda:entry) or
|
---|
307 | contains(translate(cda:title,"QWERTYUIOPASDFGHJKLZXCVBNM","qwertyuiopasdfghjklzxcvbnm"),"measure section: ")'>
|
---|
308 | Error: CONF-QRDA-I-36: A non-nested Measure section SHALL be valued with section/title
|
---|
309 | with a case-insensitive, text string containing "measure section:
|
---|
310 | <measure name>".
|
---|
311 | </assert>
|
---|
312 | <assert test='not(parent::cda:ClinicalDocument/cda:component/cda:structuredBody/cda:component/cda:section) or
|
---|
313 | contains(translate(cda:title,"QWERTYUIOPASDFGHJKLZXCVBNM","qwertyuiopasdfghjklzxcvbnm"),"measure section")'>
|
---|
314 | Error: CONF-QRDA-I-37: A nested Measure section SHALL be valued with section/title with
|
---|
315 | a case-insensitive, text string containing "measure section".
|
---|
316 | </assert>
|
---|
317 | <assert test='count(.//cda:section[cda:code[@code = "55187-9" and @codeSystem="2.16.840.1.113883.6.1"]]) = 1'>
|
---|
318 | Error: CONF-QRDA-I-39: A Measure section SHALL contain exactly one nested Reporting
|
---|
319 | Parameters section (as described in Section 2.4.3 Reporting Parameters
|
---|
320 | Section).
|
---|
321 | </assert>
|
---|
322 | <assert test='count(.//cda:section[cda:code[@code = "55188-7" and @codeSystem="2.16.840.1.113883.6.1"]]) = 1'>
|
---|
323 | Error: CONF-QRDA-I-40: A Measure section SHALL contain exactly one nested Patient Data
|
---|
324 | section (as described in Section 2.4.4 Patient Data Section).
|
---|
325 | </assert>
|
---|
326 | <assert test='cda:entry/cda:act[@classCode="ACT" and @moodCode="DEF"]'>
|
---|
327 | Error: CONF-QRDA-I-42: Each measure SHALL be represented with act.
|
---|
328 | CONF-QRDA-I-43: For each act in the Measure section, the value for act/@classCode
|
---|
329 | in a measure act SHALL be ACT 2.16.840.1.113883.5.6 ActClass STATIC.
|
---|
330 | CONF-QRDA-I-44: For each act in the Measure section the act/@moodCode in a
|
---|
331 | measure act SHALL be DEF 2.16.840.1.113883.5.1001 ActMood STATIC.
|
---|
332 | </assert>
|
---|
333 | </rule>
|
---|
334 |
|
---|
335 | <!-- Measure -->
|
---|
336 |
|
---|
337 | <rule context='*[cda:code[@code="55186-1" and @codeSystem="2.16.840.1.113883.6.1"]]/cda:entry/cda:act[@classCode="ACT" and @moodCode="DEF"]'>
|
---|
338 | <assert test='cda:code'>
|
---|
339 | Error: CONF-QRDA-I-45: For each act in the Measure section there SHALL be an act/code
|
---|
340 | reflecting the measure name and version.
|
---|
341 | </assert>
|
---|
342 | </rule>
|
---|
343 |
|
---|
344 | <!-- Measure Set Section -->
|
---|
345 |
|
---|
346 | <rule context='*[cda:code[@code="55185-3" and @codeSystem="2.16.840.1.113883.6.1"]]'>
|
---|
347 | <assert test='count(.//cda:section[cda:code[@code="55186-1" and @codeSystem="2.16.840.1.113883.6.1"]]) = 1'>
|
---|
348 | Error: CONF-QRDA-I-24: The Measure Set section SHALL contain one nested Measure section
|
---|
349 | and SHALL NOT contain more than one nested Measure section.
|
---|
350 | </assert>
|
---|
351 | <assert test='cda:templateId'>
|
---|
352 | Error: CONF-QRDA-I-26: The Measure Set section SHALL contain a templateId uniquely
|
---|
353 | identifying the Measure Set name and version.
|
---|
354 | </assert>
|
---|
355 | <assert test="contains(translate(cda:title,'QWERTYUIOPASDFGHJKLZXCVBNM','qwertyuiopasdfghjklzxcvbnm'),'measure set: ')">
|
---|
356 | Error: CONF-QRDA-I-29: The Measure Set section SHALL be valued with section/title with a
|
---|
357 | case-insensitive, text string containing "Measure set: <measure set
|
---|
358 | name>".
|
---|
359 | </assert>
|
---|
360 | <assert test='count(.//cda:section/cda:code[@code="55186-1" and @codeSystem="2.16.840.1.113883.6.1"]) > 0 '>
|
---|
361 | Error: CONF-QRDA-I-31: The nested Measure section SHALL contain at least one measure that
|
---|
362 | belongs to the measure set.
|
---|
363 | </assert>
|
---|
364 | </rule>
|
---|
365 |
|
---|
366 | <!-- Reporting Parameters Section -->
|
---|
367 |
|
---|
368 | <rule context='*[cda:code[@code="55187-9" and @codeSystem="2.16.840.1.113883.6.1"]]'>
|
---|
369 | <assert test='contains(translate(cda:title,"QWERTYUIOPASDFGHJKLZXCVBNM","qwertyuiopasdfghjklzxcvbnm"),"reporting parameters")'>
|
---|
370 | Error: CONF-QRDA-I-49: The Reporting Parameters section SHALL be valued with
|
---|
371 | section/title with a case-insensitive, text string containing "Reporting
|
---|
372 | Parameters".
|
---|
373 | </assert>
|
---|
374 | <assert test='cda:entry/cda:act[@classCode="ACT" and @moodCode="EVN"]/cda:code[@code="252116004" and @codeSystem="2.16.840.1.113883.6.96"]'>
|
---|
375 | Error: CONF-QRDA-I-50: The Reporting Parameters section SHALL contain exactly one
|
---|
376 | Observation Parameters Act, represented as an act.
|
---|
377 | CONF-QRDA-I-51: The value for act/@classCode in an Observation Parameters Act
|
---|
378 | SHALL be ACT 2.16.840.1.113883.5.6 ActClass STATIC.
|
---|
379 | CONF-QRDA-I-52: The value for act/@moodCode in an Observation Parameters Act
|
---|
380 | SHALL be EVN 2.16.840.1.113883.5.1001 ActMood STATIC.
|
---|
381 | CONF-QRDA-I-53: The value for act/code SHALL be 252116004 Observation
|
---|
382 | Parameters 2.16.840.1.113883.6.96 SNOMED-CT STATIC.
|
---|
383 | </assert>
|
---|
384 | <assert test='cda:entry/cda:act[@classCode="ACT" and @moodCode="EVN"][cda:code[@code="252116004" and @codeSystem="2.16.840.1.113883.6.96"]]/cda:effectiveTime[cda:low and cda:high]'>
|
---|
385 | Error: CONF-QRDA-I-54: The reporting time period SHALL be represented with an
|
---|
386 | effectiveTime/low element combined with a high element representing
|
---|
387 | respectively the first and last days of the period reported.
|
---|
388 | </assert>
|
---|
389 | </rule>
|
---|
390 |
|
---|
391 | <!-- Patient Data Section -->
|
---|
392 |
|
---|
393 | <rule context='*[cda:code[@code="55188-7" and @codeSystem="2.16.840.1.113883.6.1"]]'>
|
---|
394 | <assert test='contains(translate(cda:title,"QWERTYUIOPASDFGHJKLZXCVBNM","qwertyuiopasdfghjklzxcvbnm"),"patient data")'>
|
---|
395 | Error: CONF-QRDA-I-57: The Patient Data section SHALL be valued with section/title with a
|
---|
396 | case-insensitive, text string containing "Patient Data".
|
---|
397 | </assert>
|
---|
398 |
|
---|
399 | </rule>
|
---|
400 |
|
---|
401 | </pattern>
|
---|
402 |
|
---|
403 | <pattern id="p-2.16.840.1.113883.10.20.12-warnings">
|
---|
404 | <title>HL7 QRDA Category I Header (Section 2) - warning validation phase</title>
|
---|
405 | <rule context='*[cda:templateId/@root="2.16.840.1.113883.10.20.12"]'>
|
---|
406 | <assert test='count(cda:legalAuthenticator) = 1'>
|
---|
407 | Warning: CONF-QRDA-I-14: A QRDA Category I report SHOULD contain exactly one
|
---|
408 | legalAuthenticator element.
|
---|
409 | </assert>
|
---|
410 | </rule>
|
---|
411 | </pattern>
|
---|
412 |
|
---|
413 | <pattern id="p-2.16.840.1.113883.10.20.12-notes">
|
---|
414 | <title>HL7 QRDA Category I Header (Section 2) - note validation phase</title>
|
---|
415 | <rule context='*[cda:templateId/@root="2.16.840.1.113883.10.20.12"]'>
|
---|
416 | <assert test='count(cda:component/cda:structuredBody/cda:component/cda:section/cda:code[@code="55186-1" and @codeSystem="2.16.840.1.113883.6.1"]) > 1'>
|
---|
417 | Note: CONF-QRDA-I-21: A QRDA Category I report ... MAY contain
|
---|
418 | more than one non-nested top-level Measure section each containing
|
---|
419 | information about a single measure.
|
---|
420 | </assert>
|
---|
421 | <assert test='.//cda:section/cda:code[@code="55185-3" and @codeSystem="2.16.840.1.113883.6.1"]'>
|
---|
422 | Note: CONF-QRDA-I-23: A QRDA Category I report MAY contain one or more Measure Set
|
---|
423 | sections.
|
---|
424 | </assert>
|
---|
425 | <assert test='cda:component/cda:structuredBody/cda:component/cda:section/cda:code[@code="55186-1" and @codeSystem="2.16.840.1.113883.6.1"] and
|
---|
426 | .//cda:section/cda:code[@code="55185-3" and @codeSystem="2.16.840.1.113883.6.1"]'>
|
---|
427 | Note: CONF-QRDA-I-25: A QRDA Category I report MAY contain both Measure Set sections and
|
---|
428 | individual top-level Measure sections.
|
---|
429 | </assert>
|
---|
430 |
|
---|
431 | </rule>
|
---|
432 |
|
---|
433 | <!-- Measure Section -->
|
---|
434 |
|
---|
435 | <rule context='*[cda:code[@code="55186-1" and @codeSystem="2.16.840.1.113883.6.1"]]'>
|
---|
436 |
|
---|
437 | <assert test='cda:text'>
|
---|
438 | Note: CONF-QRDA-I-41: The Measure section MAY contain a section/text element for the
|
---|
439 | description of the measure(s).
|
---|
440 | </assert>
|
---|
441 | </rule>
|
---|
442 |
|
---|
443 | <!-- Measure -->
|
---|
444 |
|
---|
445 | <rule context='*[cda:code[@code="55186-1" and @codeSystem="2.16.840.1.113883.6.1"]]/cda:entry/cda:act[@classCode="ACT" and @moodCode="DEF"]'>
|
---|
446 | <assert test='cda:text'>
|
---|
447 | Note: CONF-QRDA-I-46: Each measure act MAY contain an act/text element containing a
|
---|
448 | description of the measure.
|
---|
449 | </assert>
|
---|
450 | </rule>
|
---|
451 |
|
---|
452 | <!-- Measure Set Section -->
|
---|
453 |
|
---|
454 | <rule context='*[cda:code[@code="55185-3" and @codeSystem="2.16.840.1.113883.6.1"]]'>
|
---|
455 | <assert test='cda:text'>
|
---|
456 | Note: CONF-QRDA-I-30: The Measure Set section MAY contain a section/text element for
|
---|
457 | the description of the measure set or MAY contain a formal representation of
|
---|
458 | a description of the measure set.
|
---|
459 | </assert>
|
---|
460 | </rule>
|
---|
461 | </pattern>
|
---|
462 |
|
---|