davinci_dtr_test_kit 0.14.2 → 0.15.0
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/config/presets/full_ehr_postman_dinner_order_example_postman.json +19 -0
- data/config/presets/full_ehr_postman_respiratory_device_example.json +15 -0
- data/config/presets/light_ehr_ref_server_local.json +105 -0
- data/config/presets/light_ehr_ref_server_prod.json +85 -0
- data/config/presets/payer_server_adaptive_client_flow.json +37 -0
- data/config/presets/payer_server_adaptive_manual_flow.json +44 -0
- data/config/presets/payer_server_run_against_smart_app_tests.json +35 -0
- data/config/presets/smart_app_postman_dinner_order_example.json +44 -0
- data/config/presets/smart_app_postman_respiratory_device_example.json +43 -0
- data/lib/davinci_dtr_test_kit/auth_groups/token_validation_test.rb +1 -1
- data/lib/davinci_dtr_test_kit/client_groups/custom_static/dtr_custom_questionnaire_expressions_test.rb +22 -0
- data/lib/davinci_dtr_test_kit/client_groups/custom_static/dtr_custom_questionnaire_extensions_test.rb +19 -0
- data/lib/davinci_dtr_test_kit/client_groups/custom_static/dtr_custom_questionnaire_libraries_test.rb +21 -0
- data/lib/davinci_dtr_test_kit/client_groups/custom_static/dtr_custom_questionnaire_package_validation_test.rb +39 -0
- data/lib/davinci_dtr_test_kit/client_groups/custom_static/dtr_full_ehr_custom_static_workflow_group.rb +121 -0
- data/lib/davinci_dtr_test_kit/client_groups/custom_static/dtr_smart_app_custom_static_workflow_group.rb +91 -0
- data/lib/davinci_dtr_test_kit/client_groups/dinner_adaptive/{dtr_adaptive_questionnaire_completion_group.rb → dtr_adaptive_completion_group.rb} +4 -4
- data/lib/davinci_dtr_test_kit/client_groups/dinner_adaptive/{dtr_adaptive_questionnaire_followup_questions_group.rb → dtr_adaptive_followup_questions_group.rb} +4 -4
- data/lib/davinci_dtr_test_kit/client_groups/dinner_adaptive/{dtr_adaptive_questionnaire_next_question_request_test.rb → dtr_adaptive_next_question_request_test.rb} +2 -2
- data/lib/davinci_dtr_test_kit/client_groups/dinner_adaptive/{dtr_adaptive_questionnaire_next_question_request_validation_test.rb → dtr_adaptive_next_question_request_validation_test.rb} +2 -2
- data/lib/davinci_dtr_test_kit/client_groups/dinner_adaptive/{dtr_adaptive_questionnaire_next_question_retrieval_group.rb → dtr_adaptive_next_question_retrieval_group.rb} +8 -8
- data/lib/davinci_dtr_test_kit/client_groups/dinner_adaptive/{dtr_adaptive_questionnaire_response_validation_test.rb → dtr_adaptive_response_validation_test.rb} +3 -3
- data/lib/davinci_dtr_test_kit/client_groups/dinner_adaptive/{dtr_full_ehr_adaptive_dinner_questionnaire_workflow_group.rb → dtr_full_ehr_adaptive_dinner_workflow_group.rb} +12 -12
- data/lib/davinci_dtr_test_kit/client_groups/dinner_adaptive/{dtr_full_ehr_adaptive_questionnaire_initial_retrieval_group.rb → dtr_full_ehr_adaptive_initial_retrieval_group.rb} +10 -10
- data/lib/davinci_dtr_test_kit/client_groups/dinner_adaptive/{dtr_full_ehr_adaptive_questionnaire_request_test.rb → dtr_full_ehr_adaptive_request_test.rb} +2 -2
- data/lib/davinci_dtr_test_kit/client_groups/dinner_adaptive/{dtr_smart_app_questionnaire_workflow_group.rb → dtr_smart_app_adaptive_dinner_workflow_group.rb} +24 -18
- data/lib/davinci_dtr_test_kit/client_groups/dinner_adaptive/dtr_smart_app_adaptive_initial_retrieval_group.rb +24 -0
- data/lib/davinci_dtr_test_kit/client_groups/dinner_adaptive/{dtr_smart_app_adaptive_questionnaire_request_test.rb → dtr_smart_app_adaptive_request_test.rb} +2 -2
- data/lib/davinci_dtr_test_kit/client_groups/dinner_static/{dtr_full_ehr_questionnaire_workflow_group.rb → dtr_full_ehr_static_dinner_workflow_group.rb} +13 -13
- data/lib/davinci_dtr_test_kit/client_groups/dinner_static/{dtr_smart_app_questionnaire_workflow_group.rb → dtr_smart_app_static_dinner_workflow_group.rb} +18 -13
- data/lib/davinci_dtr_test_kit/client_groups/{full_ehr/dtr_full_ehr_rendering_enabled_questions_attestation_test.rb → dinner_static/dtr_static_dinner_enabled_questions_attestation_test.rb} +2 -2
- data/lib/davinci_dtr_test_kit/client_groups/full_ehr/dtr_full_ehr_launch_attestation_test.rb +8 -3
- data/lib/davinci_dtr_test_kit/client_groups/full_ehr/dtr_full_ehr_prepopulation_attestation_test.rb +1 -1
- data/lib/davinci_dtr_test_kit/client_groups/full_ehr/dtr_full_ehr_prepopulation_override_attestation_test.rb +1 -1
- data/lib/davinci_dtr_test_kit/client_groups/full_ehr/dtr_full_ehr_questionnaire_package_request_test.rb +1 -1
- data/lib/davinci_dtr_test_kit/client_groups/full_ehr/dtr_full_ehr_questionnaire_response_conformance_test.rb +6 -1
- data/lib/davinci_dtr_test_kit/client_groups/full_ehr/dtr_full_ehr_questionnaire_response_correctness_test.rb +10 -22
- data/lib/davinci_dtr_test_kit/client_groups/full_ehr/dtr_full_ehr_saving_questionnaire_response_group.rb +4 -4
- data/lib/davinci_dtr_test_kit/client_groups/full_ehr/dtr_full_ehr_store_attestation_test.rb +1 -1
- data/lib/davinci_dtr_test_kit/client_groups/light_ehr/dtr_smart_ehr_launch.rb +18 -0
- data/lib/davinci_dtr_test_kit/client_groups/light_ehr/fhir_context_coverage_test.rb +42 -0
- data/lib/davinci_dtr_test_kit/client_groups/light_ehr/fhir_context_references_test.rb +60 -0
- data/lib/davinci_dtr_test_kit/client_groups/light_ehr/fhir_launch_context_test.rb +23 -0
- data/lib/davinci_dtr_test_kit/client_groups/{resp_assist_device/dtr_questionnaire_package_group.rb → respiratory/dtr_respiratory_questionnaire_package_group.rb} +5 -5
- data/lib/davinci_dtr_test_kit/client_groups/{resp_assist_device/dtr_resp_questionnaire_package_request_test.rb → respiratory/dtr_respiratory_questionnaire_package_request_test.rb} +2 -2
- data/lib/davinci_dtr_test_kit/client_groups/{resp_assist_device/dtr_questionnaire_response_group.rb → respiratory/dtr_respiratory_questionnaire_response_group.rb} +7 -7
- data/lib/davinci_dtr_test_kit/client_groups/{resp_assist_device/dtr_questionnaire_response_save_test.rb → respiratory/dtr_respiratory_questionnaire_response_save_test.rb} +2 -2
- data/lib/davinci_dtr_test_kit/client_groups/{resp_assist_device/dtr_questionnaire_rendering_attestation_test.rb → respiratory/dtr_respiratory_rendering_attestation_test.rb} +2 -2
- data/lib/davinci_dtr_test_kit/client_groups/respiratory/dtr_respiratory_rendering_group.rb +14 -0
- data/lib/davinci_dtr_test_kit/client_groups/{resp_assist_device/dtr_smart_app_questionnaire_workflow_group.rb → respiratory/dtr_smart_app_respiratory_workflow_group.rb} +8 -8
- data/lib/davinci_dtr_test_kit/client_groups/shared/dtr_prepopulation_attestation_test.rb +31 -0
- data/lib/davinci_dtr_test_kit/client_groups/shared/dtr_prepopulation_override_attestation_test.rb +35 -0
- data/lib/davinci_dtr_test_kit/client_groups/shared/dtr_questionnaire_package_request_validation_test.rb +1 -1
- data/lib/davinci_dtr_test_kit/client_groups/shared/dtr_questionnaire_response_basic_conformance_test.rb +8 -4
- data/lib/davinci_dtr_test_kit/client_groups/shared/{dtr_questionnaire_response_pre_population_test.rb → dtr_questionnaire_response_prepopulation_test.rb} +2 -2
- data/lib/davinci_dtr_test_kit/client_groups/shared/dtr_rendering_attestation_test.rb +30 -0
- data/lib/davinci_dtr_test_kit/client_groups/smart_app/dtr_smart_app_prepopulation_attestation_test.rb +1 -1
- data/lib/davinci_dtr_test_kit/client_groups/smart_app/dtr_smart_app_prepopulation_override_attestation_test.rb +1 -1
- data/lib/davinci_dtr_test_kit/client_groups/{dinner_static/dtr_smart_app_dinner_questionnaire_package_request_test.rb → smart_app/dtr_smart_app_questionnaire_package_request_test.rb} +6 -6
- data/lib/davinci_dtr_test_kit/client_groups/smart_app/dtr_smart_app_questionnaire_response_correctness_test.rb +28 -0
- data/lib/davinci_dtr_test_kit/client_groups/smart_app/dtr_smart_app_questionnaire_response_save_test.rb +2 -2
- data/lib/davinci_dtr_test_kit/client_groups/smart_app/dtr_smart_app_saving_questionnaire_response_group.rb +3 -7
- data/lib/davinci_dtr_test_kit/cql_test.rb +58 -0
- data/lib/davinci_dtr_test_kit/docs/dtr_light_ehr_suite_description_v201.md +9 -6
- data/lib/davinci_dtr_test_kit/dtr_full_ehr_suite.rb +19 -6
- data/lib/davinci_dtr_test_kit/dtr_light_ehr_suite.rb +42 -36
- data/lib/davinci_dtr_test_kit/dtr_payer_server_suite.rb +0 -2
- data/lib/davinci_dtr_test_kit/dtr_questionnaire_response_validation.rb +50 -4
- data/lib/davinci_dtr_test_kit/dtr_smart_app_suite.rb +9 -9
- data/lib/davinci_dtr_test_kit/endpoints/mock_authorization.rb +10 -2
- data/lib/davinci_dtr_test_kit/endpoints/mock_ehr.rb +17 -1
- data/lib/davinci_dtr_test_kit/endpoints/mock_payer/questionnaire_package_endpoint.rb +7 -1
- data/lib/davinci_dtr_test_kit/fixtures.rb +6 -6
- data/lib/davinci_dtr_test_kit/igs/davinci_dtr_2.0.1.tgz +0 -0
- data/lib/davinci_dtr_test_kit/metadata.rb +104 -0
- data/lib/davinci_dtr_test_kit/payer_server_groups/adaptive_form_libraries_test.rb +1 -1
- data/lib/davinci_dtr_test_kit/payer_server_groups/adaptive_form_questionnaire_expressions_test.rb +1 -1
- data/lib/davinci_dtr_test_kit/payer_server_groups/adaptive_form_questionnaire_extensions_test.rb +1 -1
- data/lib/davinci_dtr_test_kit/payer_server_groups/payer_server_adaptive_response_bundles_validation_test.rb +1 -1
- data/lib/davinci_dtr_test_kit/payer_server_groups/payer_server_adaptive_response_search_validation_test.rb +1 -1
- data/lib/davinci_dtr_test_kit/payer_server_groups/payer_server_adaptive_response_validation_test.rb +4 -15
- data/lib/davinci_dtr_test_kit/payer_server_groups/payer_server_static_group.rb +1 -1
- data/lib/davinci_dtr_test_kit/payer_server_groups/static_form_libraries_test.rb +1 -1
- data/lib/davinci_dtr_test_kit/payer_server_groups/static_form_questionnaire_expressions_test.rb +1 -1
- data/lib/davinci_dtr_test_kit/payer_server_groups/static_form_questionnaire_extensions_test.rb +1 -1
- data/lib/davinci_dtr_test_kit/payer_server_groups/static_form_request_test.rb +1 -1
- data/lib/davinci_dtr_test_kit/payer_server_groups/static_form_response_validation_test.rb +4 -15
- data/lib/davinci_dtr_test_kit/profiles/communication_request/communication_request_must_support_test.rb +46 -0
- data/lib/davinci_dtr_test_kit/profiles/communication_request/communication_request_read.rb +6 -3
- data/lib/davinci_dtr_test_kit/profiles/communication_request/communication_request_validation.rb +9 -8
- data/lib/davinci_dtr_test_kit/profiles/communication_request/metadata.yml +135 -0
- data/lib/davinci_dtr_test_kit/profiles/communication_request_group.rb +9 -0
- data/lib/davinci_dtr_test_kit/profiles/coverage/coverage_must_support_test.rb +54 -0
- data/lib/davinci_dtr_test_kit/profiles/coverage/coverage_read.rb +5 -3
- data/lib/davinci_dtr_test_kit/profiles/coverage/coverage_validation.rb +9 -8
- data/lib/davinci_dtr_test_kit/profiles/coverage/metadata.yml +133 -0
- data/lib/davinci_dtr_test_kit/profiles/coverage_group.rb +8 -0
- data/lib/davinci_dtr_test_kit/profiles/device_request/device_request_must_support_test.rb +45 -0
- data/lib/davinci_dtr_test_kit/profiles/device_request/device_request_read.rb +6 -3
- data/lib/davinci_dtr_test_kit/profiles/device_request/device_request_validation.rb +9 -8
- data/lib/davinci_dtr_test_kit/profiles/device_request/metadata.yml +130 -0
- data/lib/davinci_dtr_test_kit/profiles/device_request_group.rb +9 -0
- data/lib/davinci_dtr_test_kit/profiles/encounter/encounter_must_support_test.rb +58 -0
- data/lib/davinci_dtr_test_kit/profiles/encounter/encounter_read.rb +6 -3
- data/lib/davinci_dtr_test_kit/profiles/encounter/encounter_validation.rb +9 -8
- data/lib/davinci_dtr_test_kit/profiles/encounter/metadata.yml +169 -0
- data/lib/davinci_dtr_test_kit/profiles/encounter_group.rb +9 -0
- data/lib/davinci_dtr_test_kit/profiles/medication_request/medication_request_must_support_test.rb +50 -0
- data/lib/davinci_dtr_test_kit/profiles/medication_request/medication_request_read.rb +6 -3
- data/lib/davinci_dtr_test_kit/profiles/medication_request/medication_request_validation.rb +9 -8
- data/lib/davinci_dtr_test_kit/profiles/medication_request/metadata.yml +159 -0
- data/lib/davinci_dtr_test_kit/profiles/medication_request_group.rb +9 -0
- data/lib/davinci_dtr_test_kit/profiles/nutrition_order/metadata.yml +94 -0
- data/lib/davinci_dtr_test_kit/profiles/nutrition_order/nutrition_order_must_support_test.rb +45 -0
- data/lib/davinci_dtr_test_kit/profiles/nutrition_order/nutrition_order_read.rb +6 -3
- data/lib/davinci_dtr_test_kit/profiles/nutrition_order/nutrition_order_validation.rb +9 -8
- data/lib/davinci_dtr_test_kit/profiles/nutrition_order_group.rb +9 -0
- data/lib/davinci_dtr_test_kit/profiles/questionnaire_response/questionnaire_response_context_search.rb +3 -1
- data/lib/davinci_dtr_test_kit/profiles/questionnaire_response/questionnaire_response_create.rb +1 -0
- data/lib/davinci_dtr_test_kit/profiles/questionnaire_response/questionnaire_response_must_support_test.rb +54 -0
- data/lib/davinci_dtr_test_kit/profiles/questionnaire_response/questionnaire_response_patient_search.rb +3 -1
- data/lib/davinci_dtr_test_kit/profiles/questionnaire_response/questionnaire_response_read.rb +2 -1
- data/lib/davinci_dtr_test_kit/profiles/questionnaire_response/questionnaire_response_update.rb +1 -0
- data/lib/davinci_dtr_test_kit/profiles/questionnaire_response/questionnaire_response_validation.rb +1 -1
- data/lib/davinci_dtr_test_kit/profiles/questionnaire_response_group.rb +11 -1
- data/lib/davinci_dtr_test_kit/profiles/service_request/metadata.yml +140 -0
- data/lib/davinci_dtr_test_kit/profiles/service_request/service_request_must_support_test.rb +47 -0
- data/lib/davinci_dtr_test_kit/profiles/service_request/service_request_read.rb +6 -3
- data/lib/davinci_dtr_test_kit/profiles/service_request/service_request_validation.rb +9 -8
- data/lib/davinci_dtr_test_kit/profiles/service_request_group.rb +9 -0
- data/lib/davinci_dtr_test_kit/profiles/task/metadata.yml +165 -0
- data/lib/davinci_dtr_test_kit/profiles/task/task_create.rb +1 -0
- data/lib/davinci_dtr_test_kit/profiles/task/task_must_support_test.rb +46 -0
- data/lib/davinci_dtr_test_kit/profiles/task/task_read.rb +6 -3
- data/lib/davinci_dtr_test_kit/profiles/task/task_update.rb +1 -0
- data/lib/davinci_dtr_test_kit/profiles/task/task_validation.rb +9 -8
- data/lib/davinci_dtr_test_kit/profiles/task_group.rb +11 -1
- data/lib/davinci_dtr_test_kit/profiles/vision_prescription/metadata.yml +107 -0
- data/lib/davinci_dtr_test_kit/profiles/vision_prescription/vision_prescription_must_support_test.rb +54 -0
- data/lib/davinci_dtr_test_kit/profiles/vision_prescription/vision_prescription_read.rb +6 -3
- data/lib/davinci_dtr_test_kit/profiles/vision_prescription/vision_prescription_validation.rb +9 -8
- data/lib/davinci_dtr_test_kit/profiles/vision_prescription_group.rb +9 -0
- data/lib/davinci_dtr_test_kit/read_test.rb +5 -0
- data/lib/davinci_dtr_test_kit/requirements/davinci-dtr-test-kit_out_of_scope_requirements.csv +13 -0
- data/lib/davinci_dtr_test_kit/requirements/davinci-dtr-test-kit_requirements.csv +374 -0
- data/lib/davinci_dtr_test_kit/requirements/generated/davinci-dtr-test-kit_requirements_coverage.csv +372 -0
- data/lib/davinci_dtr_test_kit/urls.rb +1 -0
- data/lib/davinci_dtr_test_kit/version.rb +2 -1
- data/lib/davinci_dtr_test_kit.rb +2 -0
- data/lib/inferno_requirements_tools/ext/inferno_core/runnable.rb +22 -0
- data/lib/inferno_requirements_tools/rake/rakefile_template +31 -0
- data/lib/inferno_requirements_tools/tasks/requirements_coverage.rb +284 -0
- data/lib/requirements_config.yaml +25 -0
- metadata +88 -37
- data/lib/davinci_dtr_test_kit/client_groups/dinner_adaptive/dtr_smart_app_adaptive_questionnaire_initial_retrieval_group.rb +0 -24
- data/lib/davinci_dtr_test_kit/client_groups/resp_assist_device/dtr_questionnaire_rendering_group.rb +0 -14
- data/lib/davinci_dtr_test_kit/client_groups/smart_app/dtr_smart_app_rendering_enabled_questions_attestation_test.rb +0 -30
@@ -1,5 +1,6 @@
|
|
1
1
|
require_relative 'device_request/device_request_read'
|
2
2
|
require_relative 'device_request/device_request_validation'
|
3
|
+
require_relative 'device_request/device_request_must_support_test'
|
3
4
|
|
4
5
|
module DaVinciDTRTestKit
|
5
6
|
class DeviceRequestGroup < Inferno::TestGroup
|
@@ -23,6 +24,13 @@ module DaVinciDTRTestKit
|
|
23
24
|
the [CRD DeviceRequest Profile](https://hl7.org/fhir/us/davinci-crd/STU2/StructureDefinition-profile-devicerequest.html).
|
24
25
|
Each element is checked against terminology binding and cardinality requirements.
|
25
26
|
|
27
|
+
## Must Support
|
28
|
+
Each profile contains elements marked as "must support". This test
|
29
|
+
sequence expects to see each of these elements at least once. If at
|
30
|
+
least one cannot be found, the test will fail. The test will look
|
31
|
+
through the DeviceRequest resources found in the first test for these
|
32
|
+
elements.
|
33
|
+
|
26
34
|
)
|
27
35
|
id :device_request_group
|
28
36
|
optional
|
@@ -35,5 +43,6 @@ module DaVinciDTRTestKit
|
|
35
43
|
|
36
44
|
test from: :device_request_read
|
37
45
|
test from: :device_request_validation
|
46
|
+
test from: :device_request_must_support_test
|
38
47
|
end
|
39
48
|
end
|
@@ -0,0 +1,58 @@
|
|
1
|
+
module DaVinciDTRTestKit
|
2
|
+
class EncounterMustSupportTEst < Inferno::Test
|
3
|
+
include USCoreTestKit::MustSupportTest
|
4
|
+
|
5
|
+
title 'All must support elements are provided in the Encounter resources returned'
|
6
|
+
description %(
|
7
|
+
This test will look through the Encounter resources
|
8
|
+
found previously for the following must support elements:\n
|
9
|
+
|
10
|
+
* Encounter.appointment
|
11
|
+
* Encounter.class
|
12
|
+
* Encounter.diagnosis
|
13
|
+
* Encounter.diagnosis.condition
|
14
|
+
* Encounter.extension:Coverage-Information
|
15
|
+
* Encounter.hospitalization
|
16
|
+
* Encounter.hospitalization.dischargeDisposition
|
17
|
+
* Encounter.identifier
|
18
|
+
* Encounter.identifier.system
|
19
|
+
* Encounter.identifier.value
|
20
|
+
* Encounter.length
|
21
|
+
* Encounter.location
|
22
|
+
* Encounter.location.location
|
23
|
+
* Encounter.location.period
|
24
|
+
* Encounter.location.status
|
25
|
+
* Encounter.participant
|
26
|
+
* Encounter.participant.individual
|
27
|
+
* Encounter.participant.period
|
28
|
+
* Encounter.participant.type
|
29
|
+
* Encounter.period
|
30
|
+
* Encounter.reasonCode
|
31
|
+
* Encounter.reasonReference
|
32
|
+
* Encounter.serviceType
|
33
|
+
* Encounter.status
|
34
|
+
* Encounter.subject
|
35
|
+
* Encounter.type
|
36
|
+
)
|
37
|
+
verifies_requirements 'hl7.fhir.us.davinci-dtr_2.0.1@355'
|
38
|
+
id :encounter_must_support_test
|
39
|
+
|
40
|
+
def resource_type
|
41
|
+
'Encounter'
|
42
|
+
end
|
43
|
+
|
44
|
+
def self.metadata
|
45
|
+
@metadata ||= USCoreTestKit::Generator::GroupMetadata.new(YAML.load_file(File.join(__dir__, 'metadata.yml'),
|
46
|
+
aliases: true))
|
47
|
+
end
|
48
|
+
|
49
|
+
def scratch_resources
|
50
|
+
scratch[:encounters] ||= {}
|
51
|
+
end
|
52
|
+
|
53
|
+
run do
|
54
|
+
skip_if(encounter_ids.nil?, "No `#{resource_type}` IDs provided, skipping test.")
|
55
|
+
perform_must_support_test(all_scratch_resources)
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
@@ -6,6 +6,7 @@ module DaVinciDTRTestKit
|
|
6
6
|
|
7
7
|
title 'Server returns correct Encounter resource from Encounter read interaction'
|
8
8
|
description 'A server SHOULD support the Encounter read interaction.'
|
9
|
+
verifies_requirements 'hl7.fhir.us.davinci-dtr_2.0.1@271'
|
9
10
|
|
10
11
|
id :encounter_read
|
11
12
|
output :encounter_resources
|
@@ -14,6 +15,10 @@ module DaVinciDTRTestKit
|
|
14
15
|
'Encounter'
|
15
16
|
end
|
16
17
|
|
18
|
+
def scratch_resources
|
19
|
+
scratch[:encounters] ||= {}
|
20
|
+
end
|
21
|
+
|
17
22
|
def encounter_id_list
|
18
23
|
return [nil] unless respond_to? :encounter_ids
|
19
24
|
|
@@ -21,9 +26,7 @@ module DaVinciDTRTestKit
|
|
21
26
|
end
|
22
27
|
|
23
28
|
run do
|
24
|
-
|
25
|
-
|
26
|
-
output encounter_resources: resources.to_json
|
29
|
+
perform_read_test(encounter_id_list, resource_type)
|
27
30
|
end
|
28
31
|
end
|
29
32
|
end
|
@@ -1,8 +1,6 @@
|
|
1
|
-
require_relative '../../validation_test'
|
2
|
-
|
3
1
|
module DaVinciDTRTestKit
|
4
2
|
class EncounterValidationTest < Inferno::Test
|
5
|
-
include
|
3
|
+
include USCoreTestKit::ValidationTest
|
6
4
|
|
7
5
|
title 'Encounter resources returned during previous tests conform to the CRD Encounter'
|
8
6
|
description %(
|
@@ -19,17 +17,20 @@ fail if their code/system are not found in the valueset.
|
|
19
17
|
)
|
20
18
|
|
21
19
|
id :encounter_validation
|
22
|
-
input :encounter_resources,
|
23
|
-
optional: true
|
24
20
|
|
25
21
|
def resource_type
|
26
22
|
'Encounter'
|
27
23
|
end
|
28
24
|
|
25
|
+
def scratch_resources
|
26
|
+
scratch[:encounters] ||= {}
|
27
|
+
end
|
28
|
+
|
29
29
|
run do
|
30
|
-
|
31
|
-
|
32
|
-
|
30
|
+
perform_validation_test(scratch_resources[:all] || [],
|
31
|
+
'http://hl7.org/fhir/us/davinci-crd/StructureDefinition/profile-encounter',
|
32
|
+
'2.0.1',
|
33
|
+
skip_if_empty: true)
|
33
34
|
end
|
34
35
|
end
|
35
36
|
end
|
@@ -0,0 +1,169 @@
|
|
1
|
+
---
|
2
|
+
:name: profile_encounter
|
3
|
+
:class_name: ProfileEncounterSequence
|
4
|
+
:version: v3.1.1
|
5
|
+
:reformatted_version: v311
|
6
|
+
:resource: Encounter
|
7
|
+
:profile_url: http://hl7.org/fhir/us/davinci-crd/StructureDefinition/profile-encounter
|
8
|
+
:profile_name: CRD Encounter
|
9
|
+
:profile_version: 2.0.1
|
10
|
+
:title: CRD Encounter
|
11
|
+
:short_description: Verify support for the server capabilities required by the CRD
|
12
|
+
Encounter.
|
13
|
+
:is_delayed: true
|
14
|
+
:interactions:
|
15
|
+
- :code: read
|
16
|
+
:expectation: SHOULD
|
17
|
+
:operations: []
|
18
|
+
:searches: []
|
19
|
+
:search_definitions: {}
|
20
|
+
:include_params: []
|
21
|
+
:revincludes: []
|
22
|
+
:required_concepts: []
|
23
|
+
:must_supports:
|
24
|
+
:extensions:
|
25
|
+
- :id: Encounter.extension:Coverage-Information
|
26
|
+
:path: extension
|
27
|
+
:url: http://hl7.org/fhir/us/davinci-crd/StructureDefinition/ext-coverage-information
|
28
|
+
:slices: []
|
29
|
+
:elements:
|
30
|
+
- :path: identifier
|
31
|
+
- :path: identifier.system
|
32
|
+
- :path: identifier.value
|
33
|
+
- :path: status
|
34
|
+
- :path: class
|
35
|
+
- :path: type
|
36
|
+
- :path: serviceType
|
37
|
+
- :path: subject
|
38
|
+
:types:
|
39
|
+
- Reference
|
40
|
+
:target_profiles:
|
41
|
+
- http://hl7.org/fhir/us/davinci-crd/StructureDefinition/profile-patient
|
42
|
+
- :path: participant
|
43
|
+
- :path: participant.type
|
44
|
+
- :path: participant.period
|
45
|
+
- :path: participant.individual
|
46
|
+
:types:
|
47
|
+
- Reference
|
48
|
+
:target_profiles:
|
49
|
+
- http://hl7.org/fhir/us/davinci-crd/StructureDefinition/profile-practitioner
|
50
|
+
- :path: appointment
|
51
|
+
:types:
|
52
|
+
- Reference
|
53
|
+
:target_profiles:
|
54
|
+
- http://hl7.org/fhir/us/davinci-crd/StructureDefinition/profile-appointment
|
55
|
+
- :path: period
|
56
|
+
- :path: length
|
57
|
+
- :path: reasonCode
|
58
|
+
- :path: reasonReference
|
59
|
+
:types:
|
60
|
+
- Reference
|
61
|
+
- :path: diagnosis
|
62
|
+
- :path: diagnosis.condition
|
63
|
+
:types:
|
64
|
+
- Reference
|
65
|
+
- :path: hospitalization
|
66
|
+
- :path: hospitalization.dischargeDisposition
|
67
|
+
- :path: location
|
68
|
+
- :path: location.location
|
69
|
+
:types:
|
70
|
+
- Reference
|
71
|
+
:target_profiles:
|
72
|
+
- http://hl7.org/fhir/us/davinci-crd/StructureDefinition/profile-location
|
73
|
+
- :path: location.status
|
74
|
+
- :path: location.period
|
75
|
+
:mandatory_elements:
|
76
|
+
- Encounter.identifier.system
|
77
|
+
- Encounter.identifier.value
|
78
|
+
- Encounter.status
|
79
|
+
- Encounter.statusHistory.status
|
80
|
+
- Encounter.statusHistory.period
|
81
|
+
- Encounter.class
|
82
|
+
- Encounter.classHistory.class
|
83
|
+
- Encounter.classHistory.period
|
84
|
+
- Encounter.type
|
85
|
+
- Encounter.subject
|
86
|
+
- Encounter.diagnosis.condition
|
87
|
+
- Encounter.location.location
|
88
|
+
:bindings:
|
89
|
+
- :type: code
|
90
|
+
:strength: required
|
91
|
+
:system: http://hl7.org/fhir/ValueSet/identifier-use
|
92
|
+
:path: identifier.use
|
93
|
+
- :type: code
|
94
|
+
:strength: required
|
95
|
+
:system: http://hl7.org/fhir/ValueSet/encounter-status
|
96
|
+
:path: status
|
97
|
+
- :type: code
|
98
|
+
:strength: required
|
99
|
+
:system: http://hl7.org/fhir/ValueSet/encounter-status
|
100
|
+
:path: statusHistory.status
|
101
|
+
- :type: code
|
102
|
+
:strength: required
|
103
|
+
:system: http://hl7.org/fhir/ValueSet/encounter-location-status
|
104
|
+
:path: location.status
|
105
|
+
:references:
|
106
|
+
- :path: Encounter.identifier.assigner
|
107
|
+
:profiles:
|
108
|
+
- http://hl7.org/fhir/StructureDefinition/Organization
|
109
|
+
- :path: Encounter.subject
|
110
|
+
:profiles:
|
111
|
+
- http://hl7.org/fhir/us/davinci-crd/StructureDefinition/profile-patient
|
112
|
+
- :path: Encounter.episodeOfCare
|
113
|
+
:profiles:
|
114
|
+
- http://hl7.org/fhir/StructureDefinition/EpisodeOfCare
|
115
|
+
- :path: Encounter.basedOn
|
116
|
+
:profiles:
|
117
|
+
- http://hl7.org/fhir/us/davinci-crd/StructureDefinition/profile-servicerequest
|
118
|
+
- :path: Encounter.participant.individual
|
119
|
+
:profiles:
|
120
|
+
- http://hl7.org/fhir/us/davinci-crd/StructureDefinition/profile-practitioner
|
121
|
+
- :path: Encounter.appointment
|
122
|
+
:profiles:
|
123
|
+
- http://hl7.org/fhir/us/davinci-crd/StructureDefinition/profile-appointment
|
124
|
+
- :path: Encounter.reasonReference
|
125
|
+
:profiles:
|
126
|
+
- http://hl7.org/fhir/us/core/StructureDefinition/us-core-condition
|
127
|
+
- http://hl7.org/fhir/StructureDefinition/Procedure
|
128
|
+
- :path: Encounter.diagnosis.condition
|
129
|
+
:profiles:
|
130
|
+
- http://hl7.org/fhir/StructureDefinition/Condition
|
131
|
+
- http://hl7.org/fhir/StructureDefinition/Procedure
|
132
|
+
- :path: Encounter.account
|
133
|
+
:profiles:
|
134
|
+
- http://hl7.org/fhir/StructureDefinition/Account
|
135
|
+
- :path: Encounter.hospitalization.origin
|
136
|
+
:profiles:
|
137
|
+
- http://hl7.org/fhir/StructureDefinition/Location
|
138
|
+
- http://hl7.org/fhir/StructureDefinition/Organization
|
139
|
+
- :path: Encounter.hospitalization.destination
|
140
|
+
:profiles:
|
141
|
+
- http://hl7.org/fhir/StructureDefinition/Location
|
142
|
+
- http://hl7.org/fhir/StructureDefinition/Organization
|
143
|
+
- :path: Encounter.location.location
|
144
|
+
:profiles:
|
145
|
+
- http://hl7.org/fhir/us/davinci-crd/StructureDefinition/profile-location
|
146
|
+
- :path: Encounter.serviceProvider
|
147
|
+
:profiles:
|
148
|
+
- http://hl7.org/fhir/StructureDefinition/Organization
|
149
|
+
- :path: Encounter.partOf
|
150
|
+
:profiles:
|
151
|
+
- http://hl7.org/fhir/us/davinci-crd/StructureDefinition/profile-encounter
|
152
|
+
:tests:
|
153
|
+
- :id: us_core_v311_encounter_read_test
|
154
|
+
:file_name: encounter_read_test.rb
|
155
|
+
- :id: us_core_v311_encounter_validation_test
|
156
|
+
:file_name: encounter_validation_test.rb
|
157
|
+
- :id: us_core_v311_encounter_must_support_test
|
158
|
+
:file_name: encounter_must_support_test.rb
|
159
|
+
- :id: us_core_v311_encounter_reference_resolution_test
|
160
|
+
:file_name: encounter_reference_resolution_test.rb
|
161
|
+
:id: us_core_v311_encounter
|
162
|
+
:file_name: encounter_group.rb
|
163
|
+
:delayed_references:
|
164
|
+
- :path: basedOn
|
165
|
+
:resources:
|
166
|
+
- ServiceRequest
|
167
|
+
- :path: partOf
|
168
|
+
:resources:
|
169
|
+
- Encounter
|
@@ -1,5 +1,6 @@
|
|
1
1
|
require_relative 'encounter/encounter_read'
|
2
2
|
require_relative 'encounter/encounter_validation'
|
3
|
+
require_relative 'encounter/encounter_must_support_test'
|
3
4
|
|
4
5
|
module DaVinciDTRTestKit
|
5
6
|
class EncounterGroup < Inferno::TestGroup
|
@@ -23,6 +24,13 @@ module DaVinciDTRTestKit
|
|
23
24
|
the [CRD Encounter Profile](https://hl7.org/fhir/us/davinci-crd/STU2/StructureDefinition-profile-encounter.html).
|
24
25
|
Each element is checked against terminology binding and cardinality requirements.
|
25
26
|
|
27
|
+
## Must Support
|
28
|
+
Each profile contains elements marked as "must support". This test
|
29
|
+
sequence expects to see each of these elements at least once. If at
|
30
|
+
least one cannot be found, the test will fail. The test will look
|
31
|
+
through the Encounter resources found in the first test for these
|
32
|
+
elements.
|
33
|
+
|
26
34
|
)
|
27
35
|
id :encounter_group
|
28
36
|
optional
|
@@ -35,5 +43,6 @@ module DaVinciDTRTestKit
|
|
35
43
|
|
36
44
|
test from: :encounter_read
|
37
45
|
test from: :encounter_validation
|
46
|
+
test from: :encounter_must_support_test
|
38
47
|
end
|
39
48
|
end
|
data/lib/davinci_dtr_test_kit/profiles/medication_request/medication_request_must_support_test.rb
ADDED
@@ -0,0 +1,50 @@
|
|
1
|
+
module DaVinciDTRTestKit
|
2
|
+
class MedicationRequestMustSupportTest < Inferno::Test
|
3
|
+
include USCoreTestKit::MustSupportTest
|
4
|
+
|
5
|
+
title 'All must support elements are provided in the MedicationRequest resources returned'
|
6
|
+
description %(
|
7
|
+
This test will look through the MedicationRequest resources
|
8
|
+
found previously for the following must support elements:\n
|
9
|
+
|
10
|
+
* MedicationRequest.authoredOn
|
11
|
+
* MedicationRequest.dispenseRequest
|
12
|
+
* MedicationRequest.dosageInstruction
|
13
|
+
* MedicationRequest.dosageInstruction.text
|
14
|
+
* MedicationRequest.encounter
|
15
|
+
* MedicationRequest.extension:Coverage-Information
|
16
|
+
* MedicationRequest.identifier
|
17
|
+
* MedicationRequest.intent
|
18
|
+
* MedicationRequest.medication[x]
|
19
|
+
* MedicationRequest.performer
|
20
|
+
* MedicationRequest.priorPrescription
|
21
|
+
* MedicationRequest.reasonCode
|
22
|
+
* MedicationRequest.reasonReference
|
23
|
+
* MedicationRequest.reported[x]
|
24
|
+
* MedicationRequest.requester
|
25
|
+
* MedicationRequest.status
|
26
|
+
* MedicationRequest.subject
|
27
|
+
* MedicationRequest.substitution
|
28
|
+
)
|
29
|
+
verifies_requirements 'hl7.fhir.us.davinci-dtr_2.0.1@355'
|
30
|
+
id :medication_request_must_support_test
|
31
|
+
|
32
|
+
def resource_type
|
33
|
+
'MedicationRequest'
|
34
|
+
end
|
35
|
+
|
36
|
+
def self.metadata
|
37
|
+
@metadata ||= USCoreTestKit::Generator::GroupMetadata.new(YAML.load_file(File.join(__dir__, 'metadata.yml'),
|
38
|
+
aliases: true))
|
39
|
+
end
|
40
|
+
|
41
|
+
def scratch_resources
|
42
|
+
scratch[:medication_requests] ||= {}
|
43
|
+
end
|
44
|
+
|
45
|
+
run do
|
46
|
+
skip_if(medication_request_ids.nil?, "No `#{resource_type}` IDs provided, skipping test.")
|
47
|
+
perform_must_support_test(all_scratch_resources)
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
@@ -6,6 +6,7 @@ module DaVinciDTRTestKit
|
|
6
6
|
|
7
7
|
title 'Server returns correct MedicationRequest resource from MedicationRequest read interaction'
|
8
8
|
description 'A server SHOULD support the MedicationRequest read interaction.'
|
9
|
+
verifies_requirements 'hl7.fhir.us.davinci-dtr_2.0.1@273'
|
9
10
|
|
10
11
|
id :medication_request_read
|
11
12
|
output :medication_request_resources
|
@@ -14,6 +15,10 @@ module DaVinciDTRTestKit
|
|
14
15
|
'MedicationRequest'
|
15
16
|
end
|
16
17
|
|
18
|
+
def scratch_resources
|
19
|
+
scratch[:medication_requests] ||= {}
|
20
|
+
end
|
21
|
+
|
17
22
|
def medication_request_id_list
|
18
23
|
return [nil] unless respond_to? :medication_request_ids
|
19
24
|
|
@@ -21,9 +26,7 @@ module DaVinciDTRTestKit
|
|
21
26
|
end
|
22
27
|
|
23
28
|
run do
|
24
|
-
|
25
|
-
|
26
|
-
output medication_request_resources: resources.to_json
|
29
|
+
perform_read_test(medication_request_id_list, resource_type)
|
27
30
|
end
|
28
31
|
end
|
29
32
|
end
|
@@ -1,8 +1,6 @@
|
|
1
|
-
require_relative '../../validation_test'
|
2
|
-
|
3
1
|
module DaVinciDTRTestKit
|
4
2
|
class MedicationRequestValidationTest < Inferno::Test
|
5
|
-
include
|
3
|
+
include USCoreTestKit::ValidationTest
|
6
4
|
|
7
5
|
title 'MedicationRequest resources returned during previous tests conform to the CRD MedicationRequest'
|
8
6
|
description %(
|
@@ -19,17 +17,20 @@ fail if their code/system are not found in the valueset.
|
|
19
17
|
)
|
20
18
|
|
21
19
|
id :medication_request_validation
|
22
|
-
input :medication_request_resources,
|
23
|
-
optional: true
|
24
20
|
|
25
21
|
def resource_type
|
26
22
|
'MedicationRequest'
|
27
23
|
end
|
28
24
|
|
25
|
+
def scratch_resources
|
26
|
+
scratch[:medication_requests] ||= {}
|
27
|
+
end
|
28
|
+
|
29
29
|
run do
|
30
|
-
|
31
|
-
|
32
|
-
|
30
|
+
perform_validation_test(scratch_resources[:all] || [],
|
31
|
+
'http://hl7.org/fhir/us/davinci-crd/StructureDefinition/profile-medicationrequest',
|
32
|
+
'2.0.1',
|
33
|
+
skip_if_empty: true)
|
33
34
|
end
|
34
35
|
end
|
35
36
|
end
|
@@ -0,0 +1,159 @@
|
|
1
|
+
---
|
2
|
+
:name: profile_medicationrequest
|
3
|
+
:class_name: ProfileMedicationrequestSequence
|
4
|
+
:version: v3.1.1
|
5
|
+
:reformatted_version: v311
|
6
|
+
:resource: MedicationRequest
|
7
|
+
:profile_url: http://hl7.org/fhir/us/davinci-crd/StructureDefinition/profile-medicationrequest
|
8
|
+
:profile_name: CRD Medication Request
|
9
|
+
:profile_version: 2.0.1
|
10
|
+
:title: CRD Medication Request
|
11
|
+
:short_description: Verify support for the server capabilities required by the CRD
|
12
|
+
Medication Request.
|
13
|
+
:is_delayed: true
|
14
|
+
:interactions:
|
15
|
+
- :code: read
|
16
|
+
:expectation: SHOULD
|
17
|
+
:operations: []
|
18
|
+
:searches: []
|
19
|
+
:search_definitions: {}
|
20
|
+
:include_params: []
|
21
|
+
:revincludes: []
|
22
|
+
:required_concepts: []
|
23
|
+
:must_supports:
|
24
|
+
:extensions:
|
25
|
+
- :id: MedicationRequest.extension:Coverage-Information
|
26
|
+
:path: extension
|
27
|
+
:url: http://hl7.org/fhir/us/davinci-crd/StructureDefinition/ext-coverage-information
|
28
|
+
:slices: []
|
29
|
+
:elements:
|
30
|
+
- :path: identifier
|
31
|
+
- :path: status
|
32
|
+
:fixed_value: draft
|
33
|
+
- :path: intent
|
34
|
+
- :path: reported[x]
|
35
|
+
:types:
|
36
|
+
- Reference
|
37
|
+
- :path: medication[x]
|
38
|
+
:types:
|
39
|
+
- Reference
|
40
|
+
- :path: subject
|
41
|
+
:types:
|
42
|
+
- Reference
|
43
|
+
:target_profiles:
|
44
|
+
- http://hl7.org/fhir/us/davinci-crd/StructureDefinition/profile-patient
|
45
|
+
- :path: encounter
|
46
|
+
:types:
|
47
|
+
- Reference
|
48
|
+
:target_profiles:
|
49
|
+
- http://hl7.org/fhir/us/davinci-crd/StructureDefinition/profile-encounter
|
50
|
+
- :path: authoredOn
|
51
|
+
- :path: requester
|
52
|
+
:types:
|
53
|
+
- Reference
|
54
|
+
- :path: performer
|
55
|
+
:types:
|
56
|
+
- Reference
|
57
|
+
- :path: reasonCode
|
58
|
+
- :path: reasonReference
|
59
|
+
:types:
|
60
|
+
- Reference
|
61
|
+
- :path: dosageInstruction
|
62
|
+
- :path: dosageInstruction.text
|
63
|
+
- :path: dispenseRequest
|
64
|
+
- :path: substitution
|
65
|
+
- :path: priorPrescription
|
66
|
+
:types:
|
67
|
+
- Reference
|
68
|
+
:target_profiles:
|
69
|
+
- http://hl7.org/fhir/us/davinci-crd/StructureDefinition/profile-medicationrequest
|
70
|
+
:mandatory_elements:
|
71
|
+
- MedicationRequest.status
|
72
|
+
- MedicationRequest.intent
|
73
|
+
- MedicationRequest.medication[x]
|
74
|
+
- MedicationRequest.subject
|
75
|
+
- MedicationRequest.authoredOn
|
76
|
+
- MedicationRequest.requester
|
77
|
+
- MedicationRequest.substitution.allowed[x]
|
78
|
+
:bindings:
|
79
|
+
- :type: code
|
80
|
+
:strength: required
|
81
|
+
:system: http://hl7.org/fhir/ValueSet/medicationrequest-intent
|
82
|
+
:path: intent
|
83
|
+
- :type: code
|
84
|
+
:strength: required
|
85
|
+
:system: http://hl7.org/fhir/ValueSet/request-priority
|
86
|
+
:path: priority
|
87
|
+
:references:
|
88
|
+
- :path: MedicationRequest.subject
|
89
|
+
:profiles:
|
90
|
+
- http://hl7.org/fhir/us/davinci-crd/StructureDefinition/profile-patient
|
91
|
+
- :path: MedicationRequest.encounter
|
92
|
+
:profiles:
|
93
|
+
- http://hl7.org/fhir/us/davinci-crd/StructureDefinition/profile-encounter
|
94
|
+
- :path: MedicationRequest.supportingInformation
|
95
|
+
:profiles:
|
96
|
+
- http://hl7.org/fhir/StructureDefinition/Resource
|
97
|
+
- :path: MedicationRequest.requester
|
98
|
+
:profiles:
|
99
|
+
- http://hl7.org/fhir/us/davinci-crd/StructureDefinition/profile-practitioner
|
100
|
+
- http://hl7.org/fhir/us/core/StructureDefinition/us-core-practitionerrole
|
101
|
+
- :path: MedicationRequest.performer
|
102
|
+
:profiles:
|
103
|
+
- http://hl7.org/fhir/us/davinci-crd/StructureDefinition/profile-practitioner
|
104
|
+
- http://hl7.org/fhir/us/core/StructureDefinition/us-core-practitionerrole
|
105
|
+
- :path: MedicationRequest.recorder
|
106
|
+
:profiles:
|
107
|
+
- http://hl7.org/fhir/StructureDefinition/Practitioner
|
108
|
+
- http://hl7.org/fhir/StructureDefinition/PractitionerRole
|
109
|
+
- :path: MedicationRequest.reasonReference
|
110
|
+
:profiles:
|
111
|
+
- http://hl7.org/fhir/us/core/StructureDefinition/us-core-condition
|
112
|
+
- http://hl7.org/fhir/us/core/StructureDefinition/us-core-observation-lab
|
113
|
+
- :path: MedicationRequest.basedOn
|
114
|
+
:profiles:
|
115
|
+
- http://hl7.org/fhir/us/davinci-crd/StructureDefinition/profile-medicationrequest
|
116
|
+
- http://hl7.org/fhir/us/davinci-crd/StructureDefinition/profile-servicerequest
|
117
|
+
- :path: MedicationRequest.insurance
|
118
|
+
:profiles:
|
119
|
+
- http://hl7.org/fhir/StructureDefinition/Coverage
|
120
|
+
- http://hl7.org/fhir/StructureDefinition/ClaimResponse
|
121
|
+
- :path: MedicationRequest.dispenseRequest.performer
|
122
|
+
:profiles:
|
123
|
+
- http://hl7.org/fhir/StructureDefinition/Organization
|
124
|
+
- :path: MedicationRequest.priorPrescription
|
125
|
+
:profiles:
|
126
|
+
- http://hl7.org/fhir/us/davinci-crd/StructureDefinition/profile-medicationrequest
|
127
|
+
- :path: MedicationRequest.detectedIssue
|
128
|
+
:profiles:
|
129
|
+
- http://hl7.org/fhir/StructureDefinition/DetectedIssue
|
130
|
+
- :path: MedicationRequest.eventHistory
|
131
|
+
:profiles:
|
132
|
+
- http://hl7.org/fhir/StructureDefinition/Provenance
|
133
|
+
:tests:
|
134
|
+
- :id: us_core_v311_medication_request_read_test
|
135
|
+
:file_name: medication_request_read_test.rb
|
136
|
+
- :id: us_core_v311_medication_request_validation_test
|
137
|
+
:file_name: medication_request_validation_test.rb
|
138
|
+
- :id: us_core_v311_medication_validation_test
|
139
|
+
:file_name: medication_validation_test.rb
|
140
|
+
- :id: us_core_v311_medication_request_must_support_test
|
141
|
+
:file_name: medication_request_must_support_test.rb
|
142
|
+
- :id: us_core_v311_medication_request_reference_resolution_test
|
143
|
+
:file_name: medication_request_reference_resolution_test.rb
|
144
|
+
:id: us_core_v311_medication_request
|
145
|
+
:file_name: medication_request_group.rb
|
146
|
+
:delayed_references:
|
147
|
+
- :path: requester
|
148
|
+
:resources:
|
149
|
+
- PractitionerRole
|
150
|
+
- :path: performer
|
151
|
+
:resources:
|
152
|
+
- PractitionerRole
|
153
|
+
- :path: basedOn
|
154
|
+
:resources:
|
155
|
+
- MedicationRequest
|
156
|
+
- ServiceRequest
|
157
|
+
- :path: priorPrescription
|
158
|
+
:resources:
|
159
|
+
- MedicationRequest
|
@@ -1,5 +1,6 @@
|
|
1
1
|
require_relative 'medication_request/medication_request_read'
|
2
2
|
require_relative 'medication_request/medication_request_validation'
|
3
|
+
require_relative 'medication_request/medication_request_must_support_test'
|
3
4
|
|
4
5
|
module DaVinciDTRTestKit
|
5
6
|
class MedicationRequestGroup < Inferno::TestGroup
|
@@ -23,6 +24,13 @@ module DaVinciDTRTestKit
|
|
23
24
|
the [CRD MedicationRequest Profile](https://hl7.org/fhir/us/davinci-crd/STU2/StructureDefinition-profile-medicationrequest.html).
|
24
25
|
Each element is checked against terminology binding and cardinality requirements.
|
25
26
|
|
27
|
+
## Must Support
|
28
|
+
Each profile contains elements marked as "must support". This test
|
29
|
+
sequence expects to see each of these elements at least once. If at
|
30
|
+
least one cannot be found, the test will fail. The test will look
|
31
|
+
through the MedicationRequest resources found in the first test for these
|
32
|
+
elements.
|
33
|
+
|
26
34
|
)
|
27
35
|
id :medication_request_group
|
28
36
|
optional
|
@@ -35,5 +43,6 @@ module DaVinciDTRTestKit
|
|
35
43
|
|
36
44
|
test from: :medication_request_read
|
37
45
|
test from: :medication_request_validation
|
46
|
+
test from: :medication_request_must_support_test
|
38
47
|
end
|
39
48
|
end
|