us_core_test_kit 0.2.1 → 0.2.4
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.
- checksums.yaml +4 -4
- data/lib/us_core_test_kit/custom_groups/clinical_note_attachment_test.rb +2 -2
- data/lib/us_core_test_kit/custom_groups/clinical_note_type_test.rb +11 -6
- data/lib/us_core_test_kit/fhir_resource_navigation.rb +11 -3
- data/lib/us_core_test_kit/generated/v3.1.1/allergy_intolerance/allergy_intolerance_validation_test.rb +5 -2
- data/lib/us_core_test_kit/generated/v3.1.1/bodyheight/bodyheight_validation_test.rb +5 -2
- data/lib/us_core_test_kit/generated/v3.1.1/bodytemp/bodytemp_validation_test.rb +5 -2
- data/lib/us_core_test_kit/generated/v3.1.1/bodyweight/bodyweight_validation_test.rb +5 -2
- data/lib/us_core_test_kit/generated/v3.1.1/bp/bp_validation_test.rb +5 -2
- data/lib/us_core_test_kit/generated/v3.1.1/care_plan/care_plan_validation_test.rb +5 -2
- data/lib/us_core_test_kit/generated/v3.1.1/care_team/care_team_validation_test.rb +5 -2
- data/lib/us_core_test_kit/generated/v3.1.1/condition/condition_validation_test.rb +5 -2
- data/lib/us_core_test_kit/generated/v3.1.1/device/device_must_support_test.rb +1 -2
- data/lib/us_core_test_kit/generated/v3.1.1/device/device_validation_test.rb +5 -2
- data/lib/us_core_test_kit/generated/v3.1.1/diagnostic_report_lab/diagnostic_report_lab_validation_test.rb +5 -2
- data/lib/us_core_test_kit/generated/v3.1.1/diagnostic_report_note/diagnostic_report_note_validation_test.rb +5 -2
- data/lib/us_core_test_kit/generated/v3.1.1/document_reference/document_reference_must_support_test.rb +1 -2
- data/lib/us_core_test_kit/generated/v3.1.1/document_reference/document_reference_validation_test.rb +5 -2
- data/lib/us_core_test_kit/generated/v3.1.1/encounter/encounter_validation_test.rb +5 -2
- data/lib/us_core_test_kit/generated/v3.1.1/goal/goal_validation_test.rb +5 -2
- data/lib/us_core_test_kit/generated/v3.1.1/head_circumference/head_circumference_validation_test.rb +5 -2
- data/lib/us_core_test_kit/generated/v3.1.1/heartrate/heartrate_validation_test.rb +5 -2
- data/lib/us_core_test_kit/generated/v3.1.1/immunization/immunization_validation_test.rb +5 -2
- data/lib/us_core_test_kit/generated/v3.1.1/medication_request/medication_request_validation_test.rb +5 -2
- data/lib/us_core_test_kit/generated/v3.1.1/medication_request/medication_validation_test.rb +4 -2
- data/lib/us_core_test_kit/generated/v3.1.1/observation_lab/observation_lab_validation_test.rb +5 -2
- data/lib/us_core_test_kit/generated/v3.1.1/organization/organization_validation_test.rb +5 -2
- data/lib/us_core_test_kit/generated/v3.1.1/patient/patient_validation_test.rb +5 -2
- data/lib/us_core_test_kit/generated/v3.1.1/pediatric_bmi_for_age/pediatric_bmi_for_age_validation_test.rb +5 -2
- data/lib/us_core_test_kit/generated/v3.1.1/pediatric_weight_for_height/pediatric_weight_for_height_validation_test.rb +5 -2
- data/lib/us_core_test_kit/generated/v3.1.1/practitioner/practitioner_validation_test.rb +5 -2
- data/lib/us_core_test_kit/generated/v3.1.1/procedure/procedure_validation_test.rb +5 -2
- data/lib/us_core_test_kit/generated/v3.1.1/provenance/provenance_validation_test.rb +5 -2
- data/lib/us_core_test_kit/generated/v3.1.1/pulse_oximetry/pulse_oximetry_validation_test.rb +5 -2
- data/lib/us_core_test_kit/generated/v3.1.1/resprate/resprate_validation_test.rb +5 -2
- data/lib/us_core_test_kit/generated/v3.1.1/smokingstatus/smokingstatus_validation_test.rb +5 -2
- data/lib/us_core_test_kit/generated/v3.1.1/us_core_test_suite.rb +2 -2
- data/lib/us_core_test_kit/generated/v4.0.0/allergy_intolerance/allergy_intolerance_validation_test.rb +5 -2
- data/lib/us_core_test_kit/generated/v4.0.0/blood_pressure/blood_pressure_validation_test.rb +5 -2
- data/lib/us_core_test_kit/generated/v4.0.0/bmi/bmi_validation_test.rb +5 -2
- data/lib/us_core_test_kit/generated/v4.0.0/body_height/body_height_validation_test.rb +5 -2
- data/lib/us_core_test_kit/generated/v4.0.0/body_temperature/body_temperature_validation_test.rb +5 -2
- data/lib/us_core_test_kit/generated/v4.0.0/body_weight/body_weight_validation_test.rb +5 -2
- data/lib/us_core_test_kit/generated/v4.0.0/care_plan/care_plan_validation_test.rb +5 -2
- data/lib/us_core_test_kit/generated/v4.0.0/care_team/care_team_validation_test.rb +5 -2
- data/lib/us_core_test_kit/generated/v4.0.0/condition/condition_validation_test.rb +5 -2
- data/lib/us_core_test_kit/generated/v4.0.0/device/device_validation_test.rb +5 -2
- data/lib/us_core_test_kit/generated/v4.0.0/diagnostic_report_lab/diagnostic_report_lab_validation_test.rb +5 -2
- data/lib/us_core_test_kit/generated/v4.0.0/diagnostic_report_note/diagnostic_report_note_validation_test.rb +5 -2
- data/lib/us_core_test_kit/generated/v4.0.0/document_reference/document_reference_must_support_test.rb +1 -2
- data/lib/us_core_test_kit/generated/v4.0.0/document_reference/document_reference_validation_test.rb +5 -2
- data/lib/us_core_test_kit/generated/v4.0.0/encounter/encounter_must_support_test.rb +2 -4
- data/lib/us_core_test_kit/generated/v4.0.0/encounter/encounter_validation_test.rb +5 -2
- data/lib/us_core_test_kit/generated/v4.0.0/goal/goal_validation_test.rb +5 -2
- data/lib/us_core_test_kit/generated/v4.0.0/head_circumference/head_circumference_validation_test.rb +5 -2
- data/lib/us_core_test_kit/generated/v4.0.0/head_circumference_percentile/head_circumference_percentile_validation_test.rb +5 -2
- data/lib/us_core_test_kit/generated/v4.0.0/heart_rate/heart_rate_validation_test.rb +5 -2
- data/lib/us_core_test_kit/generated/v4.0.0/immunization/immunization_validation_test.rb +5 -2
- data/lib/us_core_test_kit/generated/v4.0.0/medication_request/medication_request_must_support_test.rb +1 -2
- data/lib/us_core_test_kit/generated/v4.0.0/medication_request/medication_request_validation_test.rb +5 -2
- data/lib/us_core_test_kit/generated/v4.0.0/medication_request/medication_validation_test.rb +4 -2
- data/lib/us_core_test_kit/generated/v4.0.0/metadata.yml +20 -2
- data/lib/us_core_test_kit/generated/v4.0.0/observation_lab/observation_lab_validation_test.rb +5 -2
- data/lib/us_core_test_kit/generated/v4.0.0/organization/organization_validation_test.rb +5 -2
- data/lib/us_core_test_kit/generated/v4.0.0/patient/metadata.yml +20 -1
- data/lib/us_core_test_kit/generated/v4.0.0/patient/patient_must_support_test.rb +9 -5
- data/lib/us_core_test_kit/generated/v4.0.0/patient/patient_validation_test.rb +5 -2
- data/lib/us_core_test_kit/generated/v4.0.0/pediatric_bmi_for_age/pediatric_bmi_for_age_validation_test.rb +5 -2
- data/lib/us_core_test_kit/generated/v4.0.0/pediatric_weight_for_height/pediatric_weight_for_height_validation_test.rb +5 -2
- data/lib/us_core_test_kit/generated/v4.0.0/practitioner/practitioner_validation_test.rb +5 -2
- data/lib/us_core_test_kit/generated/v4.0.0/procedure/procedure_validation_test.rb +5 -2
- data/lib/us_core_test_kit/generated/v4.0.0/provenance/metadata.yml +0 -1
- data/lib/us_core_test_kit/generated/v4.0.0/provenance/provenance_validation_test.rb +5 -2
- data/lib/us_core_test_kit/generated/v4.0.0/pulse_oximetry/pulse_oximetry_validation_test.rb +5 -2
- data/lib/us_core_test_kit/generated/v4.0.0/respiratory_rate/respiratory_rate_validation_test.rb +5 -2
- data/lib/us_core_test_kit/generated/v4.0.0/smokingstatus/smokingstatus_validation_test.rb +5 -2
- data/lib/us_core_test_kit/generated/v4.0.0/us_core_test_suite.rb +2 -2
- data/lib/us_core_test_kit/generator/must_support_metadata_extractor.rb +35 -22
- data/lib/us_core_test_kit/generator/must_support_test_generator.rb +26 -3
- data/lib/us_core_test_kit/generator/validation_test_generator.rb +7 -0
- data/lib/us_core_test_kit/must_support_test.rb +19 -3
- data/lib/us_core_test_kit/search_test.rb +104 -46
- data/lib/us_core_test_kit/validation_test.rb +9 -3
- data/lib/us_core_test_kit/version.rb +3 -1
- metadata +2 -2
|
@@ -8,8 +8,9 @@ module USCoreTestKit
|
|
|
8
8
|
id :us_core_v400_heart_rate_validation_test
|
|
9
9
|
title 'Observation resources returned during previous tests conform to the US Core Heart Rate Profile'
|
|
10
10
|
description %(
|
|
11
|
-
|
|
11
|
+
This test verifies resources returned from the first search conform to
|
|
12
12
|
the [US Core Heart Rate Profile](http://hl7.org/fhir/us/core/StructureDefinition/us-core-heart-rate).
|
|
13
|
+
Systems must demonstrate at least one valid example in order to pass this test.
|
|
13
14
|
|
|
14
15
|
It verifies the presence of mandatory elements and that elements with
|
|
15
16
|
required bindings contain appropriate values. CodeableConcept element
|
|
@@ -29,7 +30,9 @@ fail if their code/system are not found in the valueset.
|
|
|
29
30
|
end
|
|
30
31
|
|
|
31
32
|
run do
|
|
32
|
-
perform_validation_test(scratch_resources[:all] || [],
|
|
33
|
+
perform_validation_test(scratch_resources[:all] || [],
|
|
34
|
+
'http://hl7.org/fhir/us/core/StructureDefinition/us-core-heart-rate',
|
|
35
|
+
skip_if_empty: true)
|
|
33
36
|
end
|
|
34
37
|
end
|
|
35
38
|
end
|
|
@@ -8,8 +8,9 @@ module USCoreTestKit
|
|
|
8
8
|
id :us_core_v400_immunization_validation_test
|
|
9
9
|
title 'Immunization resources returned during previous tests conform to the US Core Immunization Profile'
|
|
10
10
|
description %(
|
|
11
|
-
|
|
11
|
+
This test verifies resources returned from the first search conform to
|
|
12
12
|
the [US Core Immunization Profile](http://hl7.org/fhir/us/core/StructureDefinition/us-core-immunization).
|
|
13
|
+
Systems must demonstrate at least one valid example in order to pass this test.
|
|
13
14
|
|
|
14
15
|
It verifies the presence of mandatory elements and that elements with
|
|
15
16
|
required bindings contain appropriate values. CodeableConcept element
|
|
@@ -29,7 +30,9 @@ fail if their code/system are not found in the valueset.
|
|
|
29
30
|
end
|
|
30
31
|
|
|
31
32
|
run do
|
|
32
|
-
perform_validation_test(scratch_resources[:all] || [],
|
|
33
|
+
perform_validation_test(scratch_resources[:all] || [],
|
|
34
|
+
'http://hl7.org/fhir/us/core/StructureDefinition/us-core-immunization',
|
|
35
|
+
skip_if_empty: true)
|
|
33
36
|
end
|
|
34
37
|
end
|
|
35
38
|
end
|
|
@@ -19,8 +19,7 @@ module USCoreTestKit
|
|
|
19
19
|
* MedicationRequest.encounter
|
|
20
20
|
* MedicationRequest.intent
|
|
21
21
|
* MedicationRequest.medication[x]
|
|
22
|
-
* MedicationRequest.reportedBoolean
|
|
23
|
-
* MedicationRequest.reportedReference
|
|
22
|
+
* MedicationRequest.reportedBoolean or MedicationRequest.reportedReference
|
|
24
23
|
* MedicationRequest.requester
|
|
25
24
|
* MedicationRequest.status
|
|
26
25
|
* MedicationRequest.subject
|
data/lib/us_core_test_kit/generated/v4.0.0/medication_request/medication_request_validation_test.rb
CHANGED
|
@@ -8,8 +8,9 @@ module USCoreTestKit
|
|
|
8
8
|
id :us_core_v400_medication_request_validation_test
|
|
9
9
|
title 'MedicationRequest resources returned during previous tests conform to the US Core MedicationRequest Profile'
|
|
10
10
|
description %(
|
|
11
|
-
|
|
11
|
+
This test verifies resources returned from the first search conform to
|
|
12
12
|
the [US Core MedicationRequest Profile](http://hl7.org/fhir/us/core/StructureDefinition/us-core-medicationrequest).
|
|
13
|
+
Systems must demonstrate at least one valid example in order to pass this test.
|
|
13
14
|
|
|
14
15
|
It verifies the presence of mandatory elements and that elements with
|
|
15
16
|
required bindings contain appropriate values. CodeableConcept element
|
|
@@ -29,7 +30,9 @@ fail if their code/system are not found in the valueset.
|
|
|
29
30
|
end
|
|
30
31
|
|
|
31
32
|
run do
|
|
32
|
-
perform_validation_test(scratch_resources[:all] || [],
|
|
33
|
+
perform_validation_test(scratch_resources[:all] || [],
|
|
34
|
+
'http://hl7.org/fhir/us/core/StructureDefinition/us-core-medicationrequest',
|
|
35
|
+
skip_if_empty: true)
|
|
33
36
|
end
|
|
34
37
|
end
|
|
35
38
|
end
|
|
@@ -8,7 +8,7 @@ module USCoreTestKit
|
|
|
8
8
|
id :us_core_v400_medication_validation_test
|
|
9
9
|
title 'Medication resources returned during previous tests conform to the US Core Medication Profile'
|
|
10
10
|
description %(
|
|
11
|
-
|
|
11
|
+
This test verifies resources returned from previous tests conform to
|
|
12
12
|
the [US Core Medication Profile](http://hl7.org/fhir/us/core/StructureDefinition/us-core-medication).
|
|
13
13
|
|
|
14
14
|
It verifies the presence of mandatory elements and that elements with
|
|
@@ -29,7 +29,9 @@ fail if their code/system are not found in the valueset.
|
|
|
29
29
|
end
|
|
30
30
|
|
|
31
31
|
run do
|
|
32
|
-
perform_validation_test(scratch_resources[:all] || [],
|
|
32
|
+
perform_validation_test(scratch_resources[:all] || [],
|
|
33
|
+
'http://hl7.org/fhir/us/core/StructureDefinition/us-core-medication',
|
|
34
|
+
skip_if_empty: false)
|
|
33
35
|
end
|
|
34
36
|
end
|
|
35
37
|
end
|
|
@@ -12119,10 +12119,13 @@
|
|
|
12119
12119
|
:extensions:
|
|
12120
12120
|
- :id: Patient.extension:race
|
|
12121
12121
|
:url: http://hl7.org/fhir/us/core/StructureDefinition/us-core-race
|
|
12122
|
+
:uscdi_only: true
|
|
12122
12123
|
- :id: Patient.extension:ethnicity
|
|
12123
12124
|
:url: http://hl7.org/fhir/us/core/StructureDefinition/us-core-ethnicity
|
|
12125
|
+
:uscdi_only: true
|
|
12124
12126
|
- :id: Patient.extension:birthsex
|
|
12125
12127
|
:url: http://hl7.org/fhir/us/core/StructureDefinition/us-core-birthsex
|
|
12128
|
+
:uscdi_only: true
|
|
12126
12129
|
:slices: []
|
|
12127
12130
|
:elements:
|
|
12128
12131
|
- :path: identifier
|
|
@@ -12132,8 +12135,11 @@
|
|
|
12132
12135
|
- :path: name.family
|
|
12133
12136
|
- :path: name.given
|
|
12134
12137
|
- :path: telecom.system
|
|
12138
|
+
:uscdi_only: true
|
|
12135
12139
|
- :path: telecom.value
|
|
12140
|
+
:uscdi_only: true
|
|
12136
12141
|
- :path: telecom.use
|
|
12142
|
+
:uscdi_only: true
|
|
12137
12143
|
- :path: gender
|
|
12138
12144
|
- :path: birthDate
|
|
12139
12145
|
- :path: address
|
|
@@ -12143,10 +12149,23 @@
|
|
|
12143
12149
|
- :path: address.postalCode
|
|
12144
12150
|
- :path: address.period
|
|
12145
12151
|
- :path: communication.language
|
|
12146
|
-
|
|
12152
|
+
:uscdi_only: true
|
|
12147
12153
|
- :path: name.suffix
|
|
12154
|
+
:uscdi_only: true
|
|
12148
12155
|
- :path: name.use
|
|
12149
12156
|
:fixed_value: old
|
|
12157
|
+
:uscdi_only: true
|
|
12158
|
+
- :path: name.period.end
|
|
12159
|
+
:uscdi_only: true
|
|
12160
|
+
- :path: telecom
|
|
12161
|
+
:uscdi_only: true
|
|
12162
|
+
- :path: communication
|
|
12163
|
+
:uscdi_only: true
|
|
12164
|
+
:choices:
|
|
12165
|
+
- :paths:
|
|
12166
|
+
- name.period.end
|
|
12167
|
+
- name.use
|
|
12168
|
+
:uscdi_only: true
|
|
12150
12169
|
:mandatory_elements:
|
|
12151
12170
|
- Patient.identifier
|
|
12152
12171
|
- Patient.identifier.system
|
|
@@ -13976,7 +13995,6 @@
|
|
|
13976
13995
|
- Reference
|
|
13977
13996
|
:target_profiles:
|
|
13978
13997
|
- http://hl7.org/fhir/us/core/StructureDefinition/us-core-practitioner
|
|
13979
|
-
- http://hl7.org/fhir/us/core/StructureDefinition/us-core-organization
|
|
13980
13998
|
- :path: agent.onBehalfOf
|
|
13981
13999
|
:types:
|
|
13982
14000
|
- Reference
|
data/lib/us_core_test_kit/generated/v4.0.0/observation_lab/observation_lab_validation_test.rb
CHANGED
|
@@ -8,8 +8,9 @@ module USCoreTestKit
|
|
|
8
8
|
id :us_core_v400_observation_lab_validation_test
|
|
9
9
|
title 'Observation resources returned during previous tests conform to the US Core Laboratory Result Observation Profile'
|
|
10
10
|
description %(
|
|
11
|
-
|
|
11
|
+
This test verifies resources returned from the first search conform to
|
|
12
12
|
the [US Core Laboratory Result Observation Profile](http://hl7.org/fhir/us/core/StructureDefinition/us-core-observation-lab).
|
|
13
|
+
Systems must demonstrate at least one valid example in order to pass this test.
|
|
13
14
|
|
|
14
15
|
It verifies the presence of mandatory elements and that elements with
|
|
15
16
|
required bindings contain appropriate values. CodeableConcept element
|
|
@@ -29,7 +30,9 @@ fail if their code/system are not found in the valueset.
|
|
|
29
30
|
end
|
|
30
31
|
|
|
31
32
|
run do
|
|
32
|
-
perform_validation_test(scratch_resources[:all] || [],
|
|
33
|
+
perform_validation_test(scratch_resources[:all] || [],
|
|
34
|
+
'http://hl7.org/fhir/us/core/StructureDefinition/us-core-observation-lab',
|
|
35
|
+
skip_if_empty: true)
|
|
33
36
|
end
|
|
34
37
|
end
|
|
35
38
|
end
|
|
@@ -8,8 +8,9 @@ module USCoreTestKit
|
|
|
8
8
|
id :us_core_v400_organization_validation_test
|
|
9
9
|
title 'Organization resources returned during previous tests conform to the US Core Organization Profile'
|
|
10
10
|
description %(
|
|
11
|
-
|
|
11
|
+
This test verifies resources returned from the first search conform to
|
|
12
12
|
the [US Core Organization Profile](http://hl7.org/fhir/us/core/StructureDefinition/us-core-organization).
|
|
13
|
+
Systems must demonstrate at least one valid example in order to pass this test.
|
|
13
14
|
|
|
14
15
|
It verifies the presence of mandatory elements and that elements with
|
|
15
16
|
required bindings contain appropriate values. CodeableConcept element
|
|
@@ -29,7 +30,9 @@ fail if their code/system are not found in the valueset.
|
|
|
29
30
|
end
|
|
30
31
|
|
|
31
32
|
run do
|
|
32
|
-
perform_validation_test(scratch_resources[:all] || [],
|
|
33
|
+
perform_validation_test(scratch_resources[:all] || [],
|
|
34
|
+
'http://hl7.org/fhir/us/core/StructureDefinition/us-core-organization',
|
|
35
|
+
skip_if_empty: true)
|
|
33
36
|
end
|
|
34
37
|
end
|
|
35
38
|
end
|
|
@@ -151,10 +151,13 @@
|
|
|
151
151
|
:extensions:
|
|
152
152
|
- :id: Patient.extension:race
|
|
153
153
|
:url: http://hl7.org/fhir/us/core/StructureDefinition/us-core-race
|
|
154
|
+
:uscdi_only: true
|
|
154
155
|
- :id: Patient.extension:ethnicity
|
|
155
156
|
:url: http://hl7.org/fhir/us/core/StructureDefinition/us-core-ethnicity
|
|
157
|
+
:uscdi_only: true
|
|
156
158
|
- :id: Patient.extension:birthsex
|
|
157
159
|
:url: http://hl7.org/fhir/us/core/StructureDefinition/us-core-birthsex
|
|
160
|
+
:uscdi_only: true
|
|
158
161
|
:slices: []
|
|
159
162
|
:elements:
|
|
160
163
|
- :path: identifier
|
|
@@ -164,8 +167,11 @@
|
|
|
164
167
|
- :path: name.family
|
|
165
168
|
- :path: name.given
|
|
166
169
|
- :path: telecom.system
|
|
170
|
+
:uscdi_only: true
|
|
167
171
|
- :path: telecom.value
|
|
172
|
+
:uscdi_only: true
|
|
168
173
|
- :path: telecom.use
|
|
174
|
+
:uscdi_only: true
|
|
169
175
|
- :path: gender
|
|
170
176
|
- :path: birthDate
|
|
171
177
|
- :path: address
|
|
@@ -175,10 +181,23 @@
|
|
|
175
181
|
- :path: address.postalCode
|
|
176
182
|
- :path: address.period
|
|
177
183
|
- :path: communication.language
|
|
178
|
-
|
|
184
|
+
:uscdi_only: true
|
|
179
185
|
- :path: name.suffix
|
|
186
|
+
:uscdi_only: true
|
|
180
187
|
- :path: name.use
|
|
181
188
|
:fixed_value: old
|
|
189
|
+
:uscdi_only: true
|
|
190
|
+
- :path: name.period.end
|
|
191
|
+
:uscdi_only: true
|
|
192
|
+
- :path: telecom
|
|
193
|
+
:uscdi_only: true
|
|
194
|
+
- :path: communication
|
|
195
|
+
:uscdi_only: true
|
|
196
|
+
:choices:
|
|
197
|
+
- :paths:
|
|
198
|
+
- name.period.end
|
|
199
|
+
- name.use
|
|
200
|
+
:uscdi_only: true
|
|
182
201
|
:mandatory_elements:
|
|
183
202
|
- Patient.identifier
|
|
184
203
|
- Patient.identifier.system
|
|
@@ -19,10 +19,6 @@ module USCoreTestKit
|
|
|
19
19
|
* Patient.address.postalCode
|
|
20
20
|
* Patient.address.state
|
|
21
21
|
* Patient.birthDate
|
|
22
|
-
* Patient.communication.language
|
|
23
|
-
* Patient.extension:birthsex
|
|
24
|
-
* Patient.extension:ethnicity
|
|
25
|
-
* Patient.extension:race
|
|
26
22
|
* Patient.gender
|
|
27
23
|
* Patient.identifier
|
|
28
24
|
* Patient.identifier.system
|
|
@@ -30,8 +26,16 @@ module USCoreTestKit
|
|
|
30
26
|
* Patient.name
|
|
31
27
|
* Patient.name.family
|
|
32
28
|
* Patient.name.given
|
|
29
|
+
|
|
30
|
+
For ONC USCDI requirements, each Patient must support the following additional elements:
|
|
31
|
+
|
|
32
|
+
* Patient.communication
|
|
33
|
+
* Patient.communication.language
|
|
34
|
+
* Patient.extension:birthsex
|
|
35
|
+
* Patient.extension:ethnicity
|
|
36
|
+
* Patient.extension:race
|
|
37
|
+
* Patient.name.period.end or Patient.name.use
|
|
33
38
|
* Patient.name.suffix
|
|
34
|
-
* Patient.name.use
|
|
35
39
|
* Patient.telecom
|
|
36
40
|
* Patient.telecom.system
|
|
37
41
|
* Patient.telecom.use
|
|
@@ -8,8 +8,9 @@ module USCoreTestKit
|
|
|
8
8
|
id :us_core_v400_patient_validation_test
|
|
9
9
|
title 'Patient resources returned during previous tests conform to the US Core Patient Profile'
|
|
10
10
|
description %(
|
|
11
|
-
|
|
11
|
+
This test verifies resources returned from the first search conform to
|
|
12
12
|
the [US Core Patient Profile](http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient).
|
|
13
|
+
Systems must demonstrate at least one valid example in order to pass this test.
|
|
13
14
|
|
|
14
15
|
It verifies the presence of mandatory elements and that elements with
|
|
15
16
|
required bindings contain appropriate values. CodeableConcept element
|
|
@@ -29,7 +30,9 @@ fail if their code/system are not found in the valueset.
|
|
|
29
30
|
end
|
|
30
31
|
|
|
31
32
|
run do
|
|
32
|
-
perform_validation_test(scratch_resources[:all] || [],
|
|
33
|
+
perform_validation_test(scratch_resources[:all] || [],
|
|
34
|
+
'http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient',
|
|
35
|
+
skip_if_empty: true)
|
|
33
36
|
end
|
|
34
37
|
end
|
|
35
38
|
end
|
|
@@ -8,8 +8,9 @@ module USCoreTestKit
|
|
|
8
8
|
id :us_core_v400_pediatric_bmi_for_age_validation_test
|
|
9
9
|
title 'Observation resources returned during previous tests conform to the US Core Pediatric BMI for Age Observation Profile'
|
|
10
10
|
description %(
|
|
11
|
-
|
|
11
|
+
This test verifies resources returned from the first search conform to
|
|
12
12
|
the [US Core Pediatric BMI for Age Observation Profile](http://hl7.org/fhir/us/core/StructureDefinition/pediatric-bmi-for-age).
|
|
13
|
+
Systems must demonstrate at least one valid example in order to pass this test.
|
|
13
14
|
|
|
14
15
|
It verifies the presence of mandatory elements and that elements with
|
|
15
16
|
required bindings contain appropriate values. CodeableConcept element
|
|
@@ -29,7 +30,9 @@ fail if their code/system are not found in the valueset.
|
|
|
29
30
|
end
|
|
30
31
|
|
|
31
32
|
run do
|
|
32
|
-
perform_validation_test(scratch_resources[:all] || [],
|
|
33
|
+
perform_validation_test(scratch_resources[:all] || [],
|
|
34
|
+
'http://hl7.org/fhir/us/core/StructureDefinition/pediatric-bmi-for-age',
|
|
35
|
+
skip_if_empty: true)
|
|
33
36
|
end
|
|
34
37
|
end
|
|
35
38
|
end
|
|
@@ -8,8 +8,9 @@ module USCoreTestKit
|
|
|
8
8
|
id :us_core_v400_pediatric_weight_for_height_validation_test
|
|
9
9
|
title 'Observation resources returned during previous tests conform to the US Core Pediatric Weight for Height Observation Profile'
|
|
10
10
|
description %(
|
|
11
|
-
|
|
11
|
+
This test verifies resources returned from the first search conform to
|
|
12
12
|
the [US Core Pediatric Weight for Height Observation Profile](http://hl7.org/fhir/us/core/StructureDefinition/pediatric-weight-for-height).
|
|
13
|
+
Systems must demonstrate at least one valid example in order to pass this test.
|
|
13
14
|
|
|
14
15
|
It verifies the presence of mandatory elements and that elements with
|
|
15
16
|
required bindings contain appropriate values. CodeableConcept element
|
|
@@ -29,7 +30,9 @@ fail if their code/system are not found in the valueset.
|
|
|
29
30
|
end
|
|
30
31
|
|
|
31
32
|
run do
|
|
32
|
-
perform_validation_test(scratch_resources[:all] || [],
|
|
33
|
+
perform_validation_test(scratch_resources[:all] || [],
|
|
34
|
+
'http://hl7.org/fhir/us/core/StructureDefinition/pediatric-weight-for-height',
|
|
35
|
+
skip_if_empty: true)
|
|
33
36
|
end
|
|
34
37
|
end
|
|
35
38
|
end
|
|
@@ -8,8 +8,9 @@ module USCoreTestKit
|
|
|
8
8
|
id :us_core_v400_practitioner_validation_test
|
|
9
9
|
title 'Practitioner resources returned during previous tests conform to the US Core Practitioner Profile'
|
|
10
10
|
description %(
|
|
11
|
-
|
|
11
|
+
This test verifies resources returned from the first search conform to
|
|
12
12
|
the [US Core Practitioner Profile](http://hl7.org/fhir/us/core/StructureDefinition/us-core-practitioner).
|
|
13
|
+
Systems must demonstrate at least one valid example in order to pass this test.
|
|
13
14
|
|
|
14
15
|
It verifies the presence of mandatory elements and that elements with
|
|
15
16
|
required bindings contain appropriate values. CodeableConcept element
|
|
@@ -29,7 +30,9 @@ fail if their code/system are not found in the valueset.
|
|
|
29
30
|
end
|
|
30
31
|
|
|
31
32
|
run do
|
|
32
|
-
perform_validation_test(scratch_resources[:all] || [],
|
|
33
|
+
perform_validation_test(scratch_resources[:all] || [],
|
|
34
|
+
'http://hl7.org/fhir/us/core/StructureDefinition/us-core-practitioner',
|
|
35
|
+
skip_if_empty: true)
|
|
33
36
|
end
|
|
34
37
|
end
|
|
35
38
|
end
|
|
@@ -8,8 +8,9 @@ module USCoreTestKit
|
|
|
8
8
|
id :us_core_v400_procedure_validation_test
|
|
9
9
|
title 'Procedure resources returned during previous tests conform to the US Core Procedure Profile'
|
|
10
10
|
description %(
|
|
11
|
-
|
|
11
|
+
This test verifies resources returned from the first search conform to
|
|
12
12
|
the [US Core Procedure Profile](http://hl7.org/fhir/us/core/StructureDefinition/us-core-procedure).
|
|
13
|
+
Systems must demonstrate at least one valid example in order to pass this test.
|
|
13
14
|
|
|
14
15
|
It verifies the presence of mandatory elements and that elements with
|
|
15
16
|
required bindings contain appropriate values. CodeableConcept element
|
|
@@ -29,7 +30,9 @@ fail if their code/system are not found in the valueset.
|
|
|
29
30
|
end
|
|
30
31
|
|
|
31
32
|
run do
|
|
32
|
-
perform_validation_test(scratch_resources[:all] || [],
|
|
33
|
+
perform_validation_test(scratch_resources[:all] || [],
|
|
34
|
+
'http://hl7.org/fhir/us/core/StructureDefinition/us-core-procedure',
|
|
35
|
+
skip_if_empty: true)
|
|
33
36
|
end
|
|
34
37
|
end
|
|
35
38
|
end
|
|
@@ -8,8 +8,9 @@ module USCoreTestKit
|
|
|
8
8
|
id :us_core_v400_provenance_validation_test
|
|
9
9
|
title 'Provenance resources returned during previous tests conform to the US Core Provenance Profile'
|
|
10
10
|
description %(
|
|
11
|
-
|
|
11
|
+
This test verifies resources returned from the first search conform to
|
|
12
12
|
the [US Core Provenance Profile](http://hl7.org/fhir/us/core/StructureDefinition/us-core-provenance).
|
|
13
|
+
Systems must demonstrate at least one valid example in order to pass this test.
|
|
13
14
|
|
|
14
15
|
It verifies the presence of mandatory elements and that elements with
|
|
15
16
|
required bindings contain appropriate values. CodeableConcept element
|
|
@@ -29,7 +30,9 @@ fail if their code/system are not found in the valueset.
|
|
|
29
30
|
end
|
|
30
31
|
|
|
31
32
|
run do
|
|
32
|
-
perform_validation_test(scratch_resources[:all] || [],
|
|
33
|
+
perform_validation_test(scratch_resources[:all] || [],
|
|
34
|
+
'http://hl7.org/fhir/us/core/StructureDefinition/us-core-provenance',
|
|
35
|
+
skip_if_empty: true)
|
|
33
36
|
end
|
|
34
37
|
end
|
|
35
38
|
end
|
|
@@ -8,8 +8,9 @@ module USCoreTestKit
|
|
|
8
8
|
id :us_core_v400_pulse_oximetry_validation_test
|
|
9
9
|
title 'Observation resources returned during previous tests conform to the US Core Pulse Oximetry Profile'
|
|
10
10
|
description %(
|
|
11
|
-
|
|
11
|
+
This test verifies resources returned from the first search conform to
|
|
12
12
|
the [US Core Pulse Oximetry Profile](http://hl7.org/fhir/us/core/StructureDefinition/us-core-pulse-oximetry).
|
|
13
|
+
Systems must demonstrate at least one valid example in order to pass this test.
|
|
13
14
|
|
|
14
15
|
It verifies the presence of mandatory elements and that elements with
|
|
15
16
|
required bindings contain appropriate values. CodeableConcept element
|
|
@@ -29,7 +30,9 @@ fail if their code/system are not found in the valueset.
|
|
|
29
30
|
end
|
|
30
31
|
|
|
31
32
|
run do
|
|
32
|
-
perform_validation_test(scratch_resources[:all] || [],
|
|
33
|
+
perform_validation_test(scratch_resources[:all] || [],
|
|
34
|
+
'http://hl7.org/fhir/us/core/StructureDefinition/us-core-pulse-oximetry',
|
|
35
|
+
skip_if_empty: true)
|
|
33
36
|
end
|
|
34
37
|
end
|
|
35
38
|
end
|
data/lib/us_core_test_kit/generated/v4.0.0/respiratory_rate/respiratory_rate_validation_test.rb
CHANGED
|
@@ -8,8 +8,9 @@ module USCoreTestKit
|
|
|
8
8
|
id :us_core_v400_respiratory_rate_validation_test
|
|
9
9
|
title 'Observation resources returned during previous tests conform to the US Core Respiratory Rate Profile'
|
|
10
10
|
description %(
|
|
11
|
-
|
|
11
|
+
This test verifies resources returned from the first search conform to
|
|
12
12
|
the [US Core Respiratory Rate Profile](http://hl7.org/fhir/us/core/StructureDefinition/us-core-respiratory-rate).
|
|
13
|
+
Systems must demonstrate at least one valid example in order to pass this test.
|
|
13
14
|
|
|
14
15
|
It verifies the presence of mandatory elements and that elements with
|
|
15
16
|
required bindings contain appropriate values. CodeableConcept element
|
|
@@ -29,7 +30,9 @@ fail if their code/system are not found in the valueset.
|
|
|
29
30
|
end
|
|
30
31
|
|
|
31
32
|
run do
|
|
32
|
-
perform_validation_test(scratch_resources[:all] || [],
|
|
33
|
+
perform_validation_test(scratch_resources[:all] || [],
|
|
34
|
+
'http://hl7.org/fhir/us/core/StructureDefinition/us-core-respiratory-rate',
|
|
35
|
+
skip_if_empty: true)
|
|
33
36
|
end
|
|
34
37
|
end
|
|
35
38
|
end
|
|
@@ -8,8 +8,9 @@ module USCoreTestKit
|
|
|
8
8
|
id :us_core_v400_smokingstatus_validation_test
|
|
9
9
|
title 'Observation resources returned during previous tests conform to the US Core Smoking Status Observation Profile'
|
|
10
10
|
description %(
|
|
11
|
-
|
|
11
|
+
This test verifies resources returned from the first search conform to
|
|
12
12
|
the [US Core Smoking Status Observation Profile](http://hl7.org/fhir/us/core/StructureDefinition/us-core-smokingstatus).
|
|
13
|
+
Systems must demonstrate at least one valid example in order to pass this test.
|
|
13
14
|
|
|
14
15
|
It verifies the presence of mandatory elements and that elements with
|
|
15
16
|
required bindings contain appropriate values. CodeableConcept element
|
|
@@ -29,7 +30,9 @@ fail if their code/system are not found in the valueset.
|
|
|
29
30
|
end
|
|
30
31
|
|
|
31
32
|
run do
|
|
32
|
-
perform_validation_test(scratch_resources[:all] || [],
|
|
33
|
+
perform_validation_test(scratch_resources[:all] || [],
|
|
34
|
+
'http://hl7.org/fhir/us/core/StructureDefinition/us-core-smokingstatus',
|
|
35
|
+
skip_if_empty: true)
|
|
33
36
|
end
|
|
34
37
|
end
|
|
35
38
|
end
|
|
@@ -44,8 +44,8 @@ module USCoreTestKit
|
|
|
44
44
|
VALIDATION_MESSAGE_FILTERS = [
|
|
45
45
|
%r{Sub-extension url 'introspect' is not defined by the Extension http://fhir-registry\.smarthealthit\.org/StructureDefinition/oauth-uris$},
|
|
46
46
|
%r{Sub-extension url 'revoke' is not defined by the Extension http://fhir-registry\.smarthealthit\.org/StructureDefinition/oauth-uris$},
|
|
47
|
-
|
|
48
|
-
|
|
47
|
+
/Observation\.effective\.ofType\(Period\): vs-1:/, # Invalid invariant in FHIR v4.0.1
|
|
48
|
+
/Observation\.effective\.ofType\(Period\): us-core-1:/ # Invalid invariant in US Core v3.1.1
|
|
49
49
|
].freeze
|
|
50
50
|
|
|
51
51
|
def self.metadata
|
|
@@ -277,7 +277,6 @@ module USCoreTestKit
|
|
|
277
277
|
when '4.0.0'
|
|
278
278
|
add_device_distinct_identifier
|
|
279
279
|
add_patient_uscdi_elements
|
|
280
|
-
add_provenance_agent_who
|
|
281
280
|
end
|
|
282
281
|
end
|
|
283
282
|
|
|
@@ -344,18 +343,23 @@ module USCoreTestKit
|
|
|
344
343
|
def add_must_support_choices
|
|
345
344
|
choices = []
|
|
346
345
|
|
|
347
|
-
choices << {paths: ['content.attachment.data', 'content.attachment.url']} if profile.type == 'DocumentReference'
|
|
346
|
+
choices << { paths: ['content.attachment.data', 'content.attachment.url'] } if profile.type == 'DocumentReference'
|
|
348
347
|
|
|
349
348
|
case profile.version
|
|
350
349
|
when '3.1.1'
|
|
351
|
-
choices << {paths: ['udiCarrier.carrierAIDC', 'udiCarrier.carrierHRF']} if profile.type == 'Device'
|
|
350
|
+
choices << { paths: ['udiCarrier.carrierAIDC', 'udiCarrier.carrierHRF'] } if profile.type == 'Device'
|
|
352
351
|
when '4.0.0'
|
|
353
352
|
case profile.type
|
|
354
353
|
when 'Encounter'
|
|
355
|
-
choices << {paths: ['reasonCode', 'reasonReference']}
|
|
356
|
-
choices << {paths: ['location.location', 'serviceProvider']}
|
|
354
|
+
choices << { paths: ['reasonCode', 'reasonReference'] }
|
|
355
|
+
choices << { paths: ['location.location', 'serviceProvider'] }
|
|
357
356
|
when 'MedicationRequest'
|
|
358
|
-
choices << {paths: ['reportedBoolean', 'reportedReference']}
|
|
357
|
+
choices << { paths: ['reportedBoolean', 'reportedReference'] }
|
|
358
|
+
when 'Patient'
|
|
359
|
+
choices << {
|
|
360
|
+
paths: ['name.period.end', 'name.use'],
|
|
361
|
+
uscdi_only: true
|
|
362
|
+
}
|
|
359
363
|
end
|
|
360
364
|
end
|
|
361
365
|
|
|
@@ -377,35 +381,44 @@ module USCoreTestKit
|
|
|
377
381
|
#US Core 4.0.0 Section 10.112.1.1 Additional USCDI v1 Requirement:
|
|
378
382
|
@must_supports[:extensions] << {
|
|
379
383
|
id: 'Patient.extension:race',
|
|
380
|
-
url: 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-race'
|
|
384
|
+
url: 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-race',
|
|
385
|
+
uscdi_only: true
|
|
381
386
|
}
|
|
382
387
|
@must_supports[:extensions] << {
|
|
383
388
|
id: 'Patient.extension:ethnicity',
|
|
384
|
-
url: 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-ethnicity'
|
|
389
|
+
url: 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-ethnicity',
|
|
390
|
+
uscdi_only: true
|
|
385
391
|
}
|
|
386
392
|
@must_supports[:extensions] << {
|
|
387
393
|
id: 'Patient.extension:birthsex',
|
|
388
|
-
url: 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-birthsex'
|
|
394
|
+
url: 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-birthsex',
|
|
395
|
+
uscdi_only: true
|
|
389
396
|
}
|
|
390
397
|
@must_supports[:elements] << {
|
|
391
|
-
path: '
|
|
398
|
+
path: 'name.suffix',
|
|
399
|
+
uscdi_only: true
|
|
392
400
|
}
|
|
393
401
|
@must_supports[:elements] << {
|
|
394
|
-
path: 'name.
|
|
402
|
+
path: 'name.use',
|
|
403
|
+
fixed_value: 'old',
|
|
404
|
+
uscdi_only: true
|
|
395
405
|
}
|
|
396
406
|
@must_supports[:elements] << {
|
|
397
|
-
path: 'name.
|
|
398
|
-
|
|
407
|
+
path: 'name.period.end',
|
|
408
|
+
uscdi_only: true
|
|
399
409
|
}
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
410
|
+
@must_supports[:elements] << {
|
|
411
|
+
path: 'telecom',
|
|
412
|
+
uscdi_only: true
|
|
413
|
+
}
|
|
414
|
+
@must_supports[:elements] << {
|
|
415
|
+
path: 'communication',
|
|
416
|
+
uscdi_only: true
|
|
417
|
+
}
|
|
418
|
+
@must_supports[:elements].each do |element|
|
|
419
|
+
path = element[:path]
|
|
420
|
+
element[:uscdi_only] = true if path.include?('telecom.') || path.include?('communication.')
|
|
421
|
+
end
|
|
409
422
|
end
|
|
410
423
|
end
|
|
411
424
|
end
|
|
@@ -68,9 +68,32 @@ module USCoreTestKit
|
|
|
68
68
|
end
|
|
69
69
|
|
|
70
70
|
def must_support_list_string
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
71
|
+
build_must_support_list_string(false)
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
def uscdi_list_string
|
|
75
|
+
build_must_support_list_string(true)
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
def build_must_support_list_string(uscdi_only)
|
|
79
|
+
slice_names = group_metadata.must_supports[:slices]
|
|
80
|
+
.select { |slice| slice[:uscdi_only].presence == uscdi_only.presence }
|
|
81
|
+
.map { |slice| slice[:name] }
|
|
82
|
+
|
|
83
|
+
element_names = group_metadata.must_supports[:elements]
|
|
84
|
+
.select { |element| element[:uscdi_only].presence == uscdi_only.presence }
|
|
85
|
+
.map { |element| "#{resource_type}.#{element[:path]}" }
|
|
86
|
+
|
|
87
|
+
extension_names = group_metadata.must_supports[:extensions]
|
|
88
|
+
.select { |extension| extension[:uscdi_only].presence == uscdi_only.presence }
|
|
89
|
+
.map { |extension| extension[:id] }
|
|
90
|
+
|
|
91
|
+
group_metadata.must_supports[:choices]&.each do |choice|
|
|
92
|
+
next unless choice[:uscdi_only].presence == uscdi_only.presence
|
|
93
|
+
choice[:paths].each { |path| element_names.delete("#{resource_type}.#{path}") }
|
|
94
|
+
element_names << choice[:paths].map { |path| "#{resource_type}.#{path}" }.join(' or ')
|
|
95
|
+
end
|
|
96
|
+
|
|
74
97
|
(slice_names + element_names + extension_names)
|
|
75
98
|
.uniq
|
|
76
99
|
.sort
|