davinci_dtr_test_kit 0.12.0 → 0.14.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/davinci_dtr_test_kit/client_groups/dinner_adaptive/dtr_adaptive_questionnaire_completion_group.rb +23 -0
- data/lib/davinci_dtr_test_kit/client_groups/dinner_adaptive/dtr_adaptive_questionnaire_followup_questions_group.rb +26 -0
- data/lib/davinci_dtr_test_kit/client_groups/dinner_adaptive/dtr_adaptive_questionnaire_next_question_request_test.rb +93 -0
- data/lib/davinci_dtr_test_kit/client_groups/dinner_adaptive/dtr_adaptive_questionnaire_next_question_request_validation_test.rb +62 -0
- data/lib/davinci_dtr_test_kit/client_groups/dinner_adaptive/dtr_adaptive_questionnaire_next_question_retrieval_group.rb +23 -0
- data/lib/davinci_dtr_test_kit/client_groups/dinner_adaptive/dtr_adaptive_questionnaire_response_validation_test.rb +66 -0
- data/lib/davinci_dtr_test_kit/client_groups/dinner_adaptive/dtr_full_ehr_adaptive_dinner_questionnaire_workflow_group.rb +76 -0
- data/lib/davinci_dtr_test_kit/client_groups/dinner_adaptive/dtr_full_ehr_adaptive_questionnaire_initial_retrieval_group.rb +27 -0
- data/lib/davinci_dtr_test_kit/client_groups/dinner_adaptive/dtr_full_ehr_adaptive_questionnaire_request_test.rb +63 -0
- data/lib/davinci_dtr_test_kit/client_groups/dinner_adaptive/dtr_smart_app_adaptive_questionnaire_initial_retrieval_group.rb +24 -0
- data/lib/davinci_dtr_test_kit/client_groups/dinner_adaptive/dtr_smart_app_adaptive_questionnaire_request_test.rb +148 -0
- data/lib/davinci_dtr_test_kit/client_groups/dinner_adaptive/dtr_smart_app_questionnaire_workflow_group.rb +75 -0
- data/lib/davinci_dtr_test_kit/client_groups/dinner_static/dtr_full_ehr_questionnaire_workflow_group.rb +22 -28
- data/lib/davinci_dtr_test_kit/client_groups/dinner_static/dtr_smart_app_dinner_questionnaire_package_request_test.rb +14 -17
- data/lib/davinci_dtr_test_kit/client_groups/dinner_static/dtr_smart_app_questionnaire_workflow_group.rb +9 -31
- data/lib/davinci_dtr_test_kit/client_groups/{dinner_static → full_ehr}/dtr_full_ehr_launch_attestation_test.rb +7 -6
- data/lib/davinci_dtr_test_kit/client_groups/{dinner_static → full_ehr}/dtr_full_ehr_prepopulation_attestation_test.rb +7 -7
- data/lib/davinci_dtr_test_kit/client_groups/{dinner_static → full_ehr}/dtr_full_ehr_prepopulation_override_attestation_test.rb +7 -7
- data/lib/davinci_dtr_test_kit/client_groups/{dinner_static/dtr_full_ehr_dinner_questionnaire_package_request_test.rb → full_ehr/dtr_full_ehr_questionnaire_package_request_test.rb} +2 -3
- data/lib/davinci_dtr_test_kit/client_groups/full_ehr/dtr_full_ehr_questionnaire_response_conformance_test.rb +19 -0
- data/lib/davinci_dtr_test_kit/client_groups/full_ehr/dtr_full_ehr_questionnaire_response_correctness_test.rb +37 -0
- data/lib/davinci_dtr_test_kit/client_groups/{dinner_static → full_ehr}/dtr_full_ehr_rendering_enabled_questions_attestation_test.rb +7 -7
- data/lib/davinci_dtr_test_kit/client_groups/full_ehr/dtr_full_ehr_saving_questionnaire_response_group.rb +29 -0
- data/lib/davinci_dtr_test_kit/client_groups/{dinner_static → full_ehr}/dtr_full_ehr_store_attestation_test.rb +7 -7
- data/lib/davinci_dtr_test_kit/client_groups/resp_assist_device/dtr_questionnaire_rendering_attestation_test.rb +7 -6
- data/lib/davinci_dtr_test_kit/client_groups/resp_assist_device/dtr_resp_questionnaire_package_request_test.rb +15 -18
- data/lib/davinci_dtr_test_kit/client_groups/shared/dtr_questionnaire_response_basic_conformance_test.rb +7 -7
- data/lib/davinci_dtr_test_kit/client_groups/shared/dtr_questionnaire_response_pre_population_test.rb +16 -5
- data/lib/davinci_dtr_test_kit/client_groups/{dinner_static → smart_app}/dtr_smart_app_prepopulation_attestation_test.rb +7 -7
- data/lib/davinci_dtr_test_kit/client_groups/{dinner_static → smart_app}/dtr_smart_app_prepopulation_override_attestation_test.rb +7 -6
- data/lib/davinci_dtr_test_kit/client_groups/{dinner_static → smart_app}/dtr_smart_app_questionnaire_response_save_test.rb +17 -7
- data/lib/davinci_dtr_test_kit/client_groups/{dinner_static → smart_app}/dtr_smart_app_rendering_enabled_questions_attestation_test.rb +7 -7
- data/lib/davinci_dtr_test_kit/client_groups/smart_app/dtr_smart_app_saving_questionnaire_response_group.rb +27 -0
- data/lib/davinci_dtr_test_kit/cql_test.rb +114 -172
- data/lib/davinci_dtr_test_kit/create_test.rb +25 -0
- data/lib/davinci_dtr_test_kit/docs/dtr_full_ehr_suite_description_v201.md +95 -37
- data/lib/davinci_dtr_test_kit/docs/dtr_light_ehr_suite_description_v201.md +34 -0
- data/lib/davinci_dtr_test_kit/docs/dtr_payer_server_suite_description_v201.md +32 -29
- data/lib/davinci_dtr_test_kit/docs/dtr_smart_app_suite_description_v201.md +48 -32
- data/lib/davinci_dtr_test_kit/dtr_full_ehr_suite.rb +13 -17
- data/lib/davinci_dtr_test_kit/dtr_light_ehr_suite.rb +101 -23
- data/lib/davinci_dtr_test_kit/dtr_options.rb +7 -0
- data/lib/davinci_dtr_test_kit/dtr_payer_server_suite.rb +9 -20
- data/lib/davinci_dtr_test_kit/dtr_questionnaire_response_validation.rb +126 -75
- data/lib/davinci_dtr_test_kit/dtr_smart_app_suite.rb +32 -56
- data/lib/davinci_dtr_test_kit/endpoints/cors.rb +20 -0
- data/lib/davinci_dtr_test_kit/endpoints/mock_authorization/authorize_endpoint.rb +32 -0
- data/lib/davinci_dtr_test_kit/endpoints/mock_authorization/simple_token_endpoint.rb +19 -0
- data/lib/davinci_dtr_test_kit/endpoints/mock_authorization/token_endpoint.rb +116 -0
- data/lib/davinci_dtr_test_kit/endpoints/mock_authorization.rb +83 -0
- data/lib/davinci_dtr_test_kit/endpoints/mock_ehr/fhir_get_endpoint.rb +95 -0
- data/lib/davinci_dtr_test_kit/endpoints/mock_ehr/questionnaire_response_endpoint.rb +22 -0
- data/lib/davinci_dtr_test_kit/endpoints/mock_ehr.rb +25 -0
- data/lib/davinci_dtr_test_kit/endpoints/mock_payer/full_ehr_next_question_endpoint.rb +11 -0
- data/lib/davinci_dtr_test_kit/endpoints/mock_payer/full_ehr_questionnaire_package_endpoint.rb +11 -0
- data/lib/davinci_dtr_test_kit/endpoints/mock_payer/next_question_endpoint.rb +162 -0
- data/lib/davinci_dtr_test_kit/endpoints/mock_payer/next_question_proxy_endpoint.rb +36 -0
- data/lib/davinci_dtr_test_kit/endpoints/mock_payer/questionnaire_package_endpoint.rb +62 -0
- data/lib/davinci_dtr_test_kit/endpoints/mock_payer/questionnaire_package_proxy_endpoint.rb +38 -0
- data/lib/davinci_dtr_test_kit/endpoints/mock_payer.rb +36 -0
- data/lib/davinci_dtr_test_kit/fixture_loader.rb +6 -84
- data/lib/davinci_dtr_test_kit/fixtures/dinner_adaptive/dinner_order_adaptive_next_question_burrito.json +10 -2
- data/lib/davinci_dtr_test_kit/fixtures/dinner_adaptive/dinner_order_adaptive_next_question_hamburger.json +10 -2
- data/lib/davinci_dtr_test_kit/fixtures/dinner_adaptive/dinner_order_adaptive_next_question_initial.json +10 -2
- data/lib/davinci_dtr_test_kit/fixtures/dinner_adaptive/questionnaire_dinner_order_adaptive.json +4 -3
- data/lib/davinci_dtr_test_kit/fixtures.rb +64 -46
- data/lib/davinci_dtr_test_kit/payer_server_groups/adaptive_form_libraries_test.rb +2 -2
- data/lib/davinci_dtr_test_kit/payer_server_groups/adaptive_form_questionnaire_expressions_test.rb +4 -3
- data/lib/davinci_dtr_test_kit/payer_server_groups/adaptive_form_questionnaire_extensions_test.rb +3 -2
- data/lib/davinci_dtr_test_kit/payer_server_groups/adaptive_next_questionnaire_expressions_test.rb +8 -8
- data/lib/davinci_dtr_test_kit/payer_server_groups/adaptive_next_questionnaire_extensions_test.rb +6 -5
- data/lib/davinci_dtr_test_kit/payer_server_groups/payer_server_adaptive_group.rb +2 -2
- data/lib/davinci_dtr_test_kit/payer_server_groups/payer_server_adaptive_request_validation_test.rb +2 -1
- data/lib/davinci_dtr_test_kit/payer_server_groups/payer_server_adaptive_response_bundles_validation_test.rb +6 -9
- data/lib/davinci_dtr_test_kit/payer_server_groups/payer_server_adaptive_response_search_validation_test.rb +15 -12
- data/lib/davinci_dtr_test_kit/payer_server_groups/payer_server_adaptive_response_validation_test.rb +33 -22
- data/lib/davinci_dtr_test_kit/payer_server_groups/payer_server_next_request_validation_test.rb +1 -1
- data/lib/davinci_dtr_test_kit/payer_server_groups/payer_server_next_response_complete_test.rb +4 -4
- data/lib/davinci_dtr_test_kit/payer_server_groups/payer_server_next_response_validation_test.rb +16 -12
- data/lib/davinci_dtr_test_kit/payer_server_groups/static_form_libraries_test.rb +2 -2
- data/lib/davinci_dtr_test_kit/payer_server_groups/static_form_questionnaire_expressions_test.rb +5 -4
- data/lib/davinci_dtr_test_kit/payer_server_groups/static_form_questionnaire_extensions_test.rb +4 -3
- data/lib/davinci_dtr_test_kit/payer_server_groups/static_form_request_validation_test.rb +2 -1
- data/lib/davinci_dtr_test_kit/payer_server_groups/static_form_response_validation_test.rb +32 -23
- data/lib/davinci_dtr_test_kit/profiles/communication_request/communication_request_read.rb +29 -0
- data/lib/davinci_dtr_test_kit/profiles/communication_request/communication_request_validation.rb +35 -0
- data/lib/davinci_dtr_test_kit/profiles/communication_request_group.rb +39 -0
- data/lib/davinci_dtr_test_kit/profiles/coverage/coverage_read.rb +29 -0
- data/lib/davinci_dtr_test_kit/profiles/coverage/coverage_validation.rb +35 -0
- data/lib/davinci_dtr_test_kit/profiles/coverage_group.rb +38 -0
- data/lib/davinci_dtr_test_kit/profiles/device_request/device_request_read.rb +29 -0
- data/lib/davinci_dtr_test_kit/profiles/device_request/device_request_validation.rb +35 -0
- data/lib/davinci_dtr_test_kit/profiles/device_request_group.rb +39 -0
- data/lib/davinci_dtr_test_kit/profiles/encounter/encounter_read.rb +29 -0
- data/lib/davinci_dtr_test_kit/profiles/encounter/encounter_validation.rb +35 -0
- data/lib/davinci_dtr_test_kit/profiles/encounter_group.rb +39 -0
- data/lib/davinci_dtr_test_kit/profiles/medication_request/medication_request_read.rb +29 -0
- data/lib/davinci_dtr_test_kit/profiles/medication_request/medication_request_validation.rb +35 -0
- data/lib/davinci_dtr_test_kit/profiles/medication_request_group.rb +39 -0
- data/lib/davinci_dtr_test_kit/profiles/nutrition_order/nutrition_order_read.rb +29 -0
- data/lib/davinci_dtr_test_kit/profiles/nutrition_order/nutrition_order_validation.rb +35 -0
- data/lib/davinci_dtr_test_kit/profiles/nutrition_order_group.rb +39 -0
- data/lib/davinci_dtr_test_kit/profiles/questionnaire_response/questionnaire_response_context_search.rb +35 -0
- data/lib/davinci_dtr_test_kit/profiles/questionnaire_response/questionnaire_response_create.rb +26 -0
- data/lib/davinci_dtr_test_kit/profiles/questionnaire_response/questionnaire_response_patient_search.rb +55 -0
- data/lib/davinci_dtr_test_kit/profiles/questionnaire_response/questionnaire_response_read.rb +22 -0
- data/lib/davinci_dtr_test_kit/profiles/questionnaire_response/questionnaire_response_update.rb +26 -0
- data/lib/davinci_dtr_test_kit/profiles/questionnaire_response/questionnaire_response_validation.rb +37 -0
- data/lib/davinci_dtr_test_kit/profiles/questionnaire_response_group.rb +66 -0
- data/lib/davinci_dtr_test_kit/profiles/service_request/service_request_read.rb +29 -0
- data/lib/davinci_dtr_test_kit/profiles/service_request/service_request_validation.rb +35 -0
- data/lib/davinci_dtr_test_kit/profiles/service_request_group.rb +39 -0
- data/lib/davinci_dtr_test_kit/profiles/task/task_create.rb +26 -0
- data/lib/davinci_dtr_test_kit/profiles/task/task_read.rb +29 -0
- data/lib/davinci_dtr_test_kit/profiles/task/task_update.rb +26 -0
- data/lib/davinci_dtr_test_kit/profiles/task/task_validation.rb +35 -0
- data/lib/davinci_dtr_test_kit/profiles/task_group.rb +52 -0
- data/lib/davinci_dtr_test_kit/profiles/vision_prescription/vision_prescription_read.rb +29 -0
- data/lib/davinci_dtr_test_kit/profiles/vision_prescription/vision_prescription_validation.rb +35 -0
- data/lib/davinci_dtr_test_kit/profiles/vision_prescription_group.rb +39 -0
- data/lib/davinci_dtr_test_kit/read_test.rb +22 -0
- data/lib/davinci_dtr_test_kit/tags.rb +5 -6
- data/lib/davinci_dtr_test_kit/update_test.rb +25 -0
- data/lib/davinci_dtr_test_kit/urls.rb +13 -10
- data/lib/davinci_dtr_test_kit/validation_test.rb +21 -5
- data/lib/davinci_dtr_test_kit/version.rb +1 -1
- data/lib/davinci_dtr_test_kit.rb +1 -1
- metadata +129 -24
- data/lib/davinci_dtr_test_kit/client_groups/dinner_static/dtr_full_ehr_prepopulation_representation_attestation_test.rb +0 -33
- data/lib/davinci_dtr_test_kit/client_groups/resp_assist_device/dtr_full_ehr_questionnaire_workflow_group.rb +0 -19
- data/lib/davinci_dtr_test_kit/ext/inferno_core/record_response_route.rb +0 -98
- data/lib/davinci_dtr_test_kit/ext/inferno_core/request.rb +0 -19
- data/lib/davinci_dtr_test_kit/ext/inferno_core/runnable.rb +0 -35
- data/lib/davinci_dtr_test_kit/mock_auth_server.rb +0 -145
- data/lib/davinci_dtr_test_kit/mock_ehr.rb +0 -97
- data/lib/davinci_dtr_test_kit/mock_payer.rb +0 -123
- /data/lib/davinci_dtr_test_kit/fixtures/{pre_populated_questionnaire_response.json → respiratory_assist_device/pre_populated_questionnaire_response.json} +0 -0
- /data/lib/davinci_dtr_test_kit/fixtures/{questionnaire_package.json → respiratory_assist_device/questionnaire_package.json} +0 -0
@@ -0,0 +1,35 @@
|
|
1
|
+
require_relative '../../validation_test'
|
2
|
+
|
3
|
+
module DaVinciDTRTestKit
|
4
|
+
class TaskValidationTest < Inferno::Test
|
5
|
+
include DaVinciDTRTestKit::ValidationTest
|
6
|
+
|
7
|
+
title 'Task resources returned during previous tests conform to the PAS Task'
|
8
|
+
description %(
|
9
|
+
This test verifies resources returned from the read step conform to
|
10
|
+
the [PAS Task](http://hl7.org/fhir/us/davinci-pas/StructureDefinition/profile-task).
|
11
|
+
Systems must demonstrate at least one valid example in order to pass this test.
|
12
|
+
|
13
|
+
It verifies the presence of mandatory elements and that elements with
|
14
|
+
required bindings contain appropriate values. CodeableConcept element
|
15
|
+
bindings will fail if none of their codings have a code/system belonging
|
16
|
+
to the bound ValueSet. Quantity, Coding, and code element bindings will
|
17
|
+
fail if their code/system are not found in the valueset.
|
18
|
+
|
19
|
+
)
|
20
|
+
|
21
|
+
id :task_validation
|
22
|
+
input :task_resources,
|
23
|
+
optional: true
|
24
|
+
|
25
|
+
def resource_type
|
26
|
+
'Task'
|
27
|
+
end
|
28
|
+
|
29
|
+
run do
|
30
|
+
skip_if(task_ids.nil?, "No `#{resource_type}` IDs provided, skipping test.")
|
31
|
+
perform_profile_validation_test(task_resources, resource_type,
|
32
|
+
'http://hl7.org/fhir/us/davinci-pas/StructureDefinition/profile-task|2.0.1')
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
@@ -0,0 +1,52 @@
|
|
1
|
+
require_relative 'task/task_read'
|
2
|
+
require_relative 'task/task_validation'
|
3
|
+
require_relative 'task/task_create'
|
4
|
+
require_relative 'task/task_update'
|
5
|
+
|
6
|
+
module DaVinciDTRTestKit
|
7
|
+
class TaskGroup < Inferno::TestGroup
|
8
|
+
title 'PAS Task Tests'
|
9
|
+
short_description 'Verify support for the server capabilities required by the PAS Task Profile'
|
10
|
+
description %(
|
11
|
+
# Background
|
12
|
+
|
13
|
+
The PAS Task sequence verifies that the system under test is
|
14
|
+
able to provide correct responses for Task queries. These queries
|
15
|
+
must contain resources conforming to the [PAS Task Profile](http://hl7.org/fhir/us/davinci-pas/STU2/StructureDefinition-profile-task.html).
|
16
|
+
|
17
|
+
# Testing Methodology
|
18
|
+
## Read
|
19
|
+
First, Inferno will attempt to read each Task resource id provided in
|
20
|
+
the Task IDs input. The server SHOULD be capable of returning a
|
21
|
+
Task resource using the read interaction.
|
22
|
+
|
23
|
+
## Profile Validation
|
24
|
+
Each resource returned from the read step SHALL conform to
|
25
|
+
the [PAS Task Profile](http://hl7.org/fhir/us/davinci-pas/STU2/StructureDefinition-profile-task.html). Each
|
26
|
+
element is checked against terminology binding and cardinality requirements.
|
27
|
+
|
28
|
+
## Create
|
29
|
+
This test sequence will perform create interactions with the provided json
|
30
|
+
Task resources. The server SHOULD be capable of creating a Task resource
|
31
|
+
using the create interaction.
|
32
|
+
|
33
|
+
## Update
|
34
|
+
This test sequence will perform update interactions with the provided json
|
35
|
+
Task resources. The server SHOULD be capable of creating a Task resource
|
36
|
+
using the update interaction.
|
37
|
+
)
|
38
|
+
id :task_group
|
39
|
+
optional
|
40
|
+
run_as_group
|
41
|
+
|
42
|
+
input :task_ids,
|
43
|
+
title: 'Task IDs',
|
44
|
+
description: 'Comma separated list of Task IDs',
|
45
|
+
optional: true
|
46
|
+
|
47
|
+
test from: :task_read
|
48
|
+
test from: :task_validation
|
49
|
+
test from: :task_create
|
50
|
+
test from: :task_update
|
51
|
+
end
|
52
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
require_relative '../../read_test'
|
2
|
+
|
3
|
+
module DaVinciDTRTestKit
|
4
|
+
class VisionPrescriptionReadTest < Inferno::Test
|
5
|
+
include DaVinciDTRTestKit::ReadTest
|
6
|
+
|
7
|
+
title 'Server returns correct VisionPrescription resource from VisionPrescription read interaction'
|
8
|
+
description 'A server SHOULD support the VisionPrescription read interaction.'
|
9
|
+
|
10
|
+
id :vision_prescription_read
|
11
|
+
output :vision_prescription_resources
|
12
|
+
|
13
|
+
def resource_type
|
14
|
+
'VisionPrescription'
|
15
|
+
end
|
16
|
+
|
17
|
+
def vision_prescription_id_list
|
18
|
+
return [nil] unless respond_to? :vision_prescription_ids
|
19
|
+
|
20
|
+
vision_prescription_ids&.split(',')&.map(&:strip)
|
21
|
+
end
|
22
|
+
|
23
|
+
run do
|
24
|
+
resources = perform_read_test(vision_prescription_id_list, resource_type)
|
25
|
+
|
26
|
+
output vision_prescription_resources: resources.to_json
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
require_relative '../../validation_test'
|
2
|
+
|
3
|
+
module DaVinciDTRTestKit
|
4
|
+
class VisionPrescriptionValidationTest < Inferno::Test
|
5
|
+
include DaVinciDTRTestKit::ValidationTest
|
6
|
+
|
7
|
+
title 'VisionPrescription resources returned during previous tests conform to the CRD VisionPrescription'
|
8
|
+
description %(
|
9
|
+
This test verifies resources returned from the read step conform to
|
10
|
+
the [CRD VisionPrescription](https://hl7.org/fhir/us/davinci-crd/STU2/StructureDefinition-profile-visionprescription).
|
11
|
+
Systems must demonstrate at least one valid example in order to pass this test.
|
12
|
+
|
13
|
+
It verifies the presence of mandatory elements and that elements with
|
14
|
+
required bindings contain appropriate values. CodeableConcept element
|
15
|
+
bindings will fail if none of their codings have a code/system belonging
|
16
|
+
to the bound ValueSet. Quantity, Coding, and code element bindings will
|
17
|
+
fail if their code/system are not found in the valueset.
|
18
|
+
|
19
|
+
)
|
20
|
+
|
21
|
+
id :vision_prescription_validation
|
22
|
+
input :vision_prescription_resources,
|
23
|
+
optional: true
|
24
|
+
|
25
|
+
def resource_type
|
26
|
+
'VisionPrescription'
|
27
|
+
end
|
28
|
+
|
29
|
+
run do
|
30
|
+
skip_if(vision_prescription_ids.nil?, "No `#{resource_type}` IDs provided, skipping test.")
|
31
|
+
perform_profile_validation_test(vision_prescription_resources, resource_type,
|
32
|
+
'http://hl7.org/fhir/us/davinci-crd/StructureDefinition/profile-visionprescription|2.0.1')
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
require_relative 'vision_prescription/vision_prescription_read'
|
2
|
+
require_relative 'vision_prescription/vision_prescription_validation'
|
3
|
+
|
4
|
+
module DaVinciDTRTestKit
|
5
|
+
class VisionPrescriptionGroup < Inferno::TestGroup
|
6
|
+
title 'CRD VisionPrescription Tests'
|
7
|
+
short_description 'Verify support for the server capabilities required by the CRD VisionPrescription Profile'
|
8
|
+
description %(
|
9
|
+
# Background
|
10
|
+
|
11
|
+
The CRD VisionPrescription sequence verifies that the system under test is
|
12
|
+
able to provide correct responses for VisionPrescription queries. These queries
|
13
|
+
must return resources conforming to the [CRD VisionPrescription Profile](https://hl7.org/fhir/us/davinci-crd/STU2/StructureDefinition-profile-visionprescription.html).
|
14
|
+
|
15
|
+
# Testing Methodology
|
16
|
+
## Read
|
17
|
+
First, Inferno will attempt to read each VisionPrescription resource id provided in
|
18
|
+
the VisionPrescription IDs input. The server SHOULD be capable of returning a
|
19
|
+
VisionPrescription resource using the read interaction.
|
20
|
+
|
21
|
+
## Profile Validation
|
22
|
+
Each resource returned from the read step SHALL conform to
|
23
|
+
the [CRD VisionPrescription Profile](https://hl7.org/fhir/us/davinci-crd/STU2/StructureDefinition-profile-visionprescription.html).
|
24
|
+
Each element is checked against terminology binding and cardinality requirements.
|
25
|
+
|
26
|
+
)
|
27
|
+
id :vision_prescription_group
|
28
|
+
optional
|
29
|
+
run_as_group
|
30
|
+
|
31
|
+
input :vision_prescription_ids,
|
32
|
+
title: 'Vision Prescription IDs',
|
33
|
+
description: 'Comma separated list of VisionPrescription IDs',
|
34
|
+
optional: true
|
35
|
+
|
36
|
+
test from: :vision_prescription_read
|
37
|
+
test from: :vision_prescription_validation
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
module DaVinciDTRTestKit
|
2
|
+
module ReadTest
|
3
|
+
def perform_read_test(resource_ids, resource_type)
|
4
|
+
skip_if(resource_ids.nil?, "No `#{resource_type}` IDs provided, skipping test.")
|
5
|
+
resources = []
|
6
|
+
resource_ids.each do |id|
|
7
|
+
fhir_read resource_type, id
|
8
|
+
|
9
|
+
assert_response_status(200)
|
10
|
+
assert_resource_type(resource_type)
|
11
|
+
assert resource.id.present? && resource.id == id, bad_resource_id_message(id)
|
12
|
+
|
13
|
+
resources.push(resource)
|
14
|
+
end
|
15
|
+
resources
|
16
|
+
end
|
17
|
+
|
18
|
+
def bad_resource_id_message(expected_id)
|
19
|
+
"Expected resource to have id: `#{expected_id.inspect}`, but found `#{resource.id.inspect}`"
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -1,8 +1,7 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
1
|
module DaVinciDTRTestKit
|
4
|
-
QUESTIONNAIRE_TAG = 'payer_server_questionnaire_package'
|
5
|
-
NEXT_TAG = 'payer_server_adaptive_questionnaire_package'
|
6
|
-
QUESTIONNAIRE_PACKAGE_TAG = 'dtr_questionnaire_package'
|
7
|
-
|
2
|
+
QUESTIONNAIRE_TAG = 'payer_server_questionnaire_package'.freeze
|
3
|
+
NEXT_TAG = 'payer_server_adaptive_questionnaire_package'.freeze
|
4
|
+
QUESTIONNAIRE_PACKAGE_TAG = 'dtr_questionnaire_package'.freeze
|
5
|
+
CLIENT_NEXT_TAG = 'dtr_questionnaire_next_question'.freeze
|
6
|
+
EHR_AUTHORIZE_TAG = 'dtr_smart_app_ehr_authorize'.freeze
|
8
7
|
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
module DaVinciDTRTestKit
|
2
|
+
module UpdateTest
|
3
|
+
def perform_update_test(update_resources, resource_type)
|
4
|
+
skip_if(update_resources.blank?, "No `#{resource_type}` resources to update provided, skipping test.")
|
5
|
+
assert_valid_json(update_resources)
|
6
|
+
update_resources_list = JSON.parse(update_resources)
|
7
|
+
skip_if(!update_resources_list.is_a?(Array), 'Resources to update not inputted in list format, skipping test.')
|
8
|
+
|
9
|
+
valid_update_resources =
|
10
|
+
update_resources_list
|
11
|
+
.compact_blank
|
12
|
+
.map { |resource| FHIR.from_contents(resource.to_json) }
|
13
|
+
.select { |resource| resource.resourceType == resource_type }
|
14
|
+
.select { |resource| resource_is_valid?(resource:) }
|
15
|
+
|
16
|
+
skip_if(valid_update_resources.blank?,
|
17
|
+
%(No valid #{resource_type} resources were provided to send in Update requests, skipping test.))
|
18
|
+
|
19
|
+
valid_update_resources.each do |update_resource|
|
20
|
+
fhir_update(update_resource, update_resource.id)
|
21
|
+
assert_response_status([200, 201])
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -1,17 +1,20 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
module DaVinciDTRTestKit
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
4
|
+
FHIR_BASE_PATH = '/fhir'
|
5
|
+
SMART_CONFIG_PATH = "#{FHIR_BASE_PATH}/.well-known/smart-configuration".freeze
|
6
|
+
OPENID_CONFIG_PATH = "#{FHIR_BASE_PATH}/.well-known/openid-configuration".freeze
|
7
|
+
JKWS_PATH = "#{FHIR_BASE_PATH}/.well-known/jwks.json".freeze
|
8
|
+
EHR_AUTHORIZE_PATH = "#{FHIR_BASE_PATH}/mock_ehr_auth/authorize".freeze
|
9
|
+
EHR_TOKEN_PATH = "#{FHIR_BASE_PATH}/mock_ehr_auth/token".freeze
|
10
|
+
PAYER_TOKEN_PATH = "#{FHIR_BASE_PATH}/mock_payer_auth/token".freeze
|
11
|
+
QUESTIONNAIRE_PACKAGE_PATH = "#{FHIR_BASE_PATH}/Questionnaire/$questionnaire-package".freeze
|
12
|
+
NEXT_PATH = "#{FHIR_BASE_PATH}/Questionnaire/$next-question".freeze
|
13
|
+
QUESTIONNAIRE_RESPONSE_PATH = "#{FHIR_BASE_PATH}/QuestionnaireResponse".freeze
|
14
|
+
FHIR_RESOURCE_PATH = "#{FHIR_BASE_PATH}/:resource/:id".freeze
|
15
|
+
FHIR_SEARCH_PATH = "#{FHIR_BASE_PATH}/:resource".freeze
|
11
16
|
RESUME_PASS_PATH = '/resume_pass'
|
12
17
|
RESUME_FAIL_PATH = '/resume_fail'
|
13
|
-
FHIR_RESOURCE_PATH = '/fhir/:resource/:id'
|
14
|
-
FHIR_SEARCH_PATH = '/fhir/:resource'
|
15
18
|
|
16
19
|
module URLs
|
17
20
|
def base_url
|
@@ -43,7 +46,7 @@ module DaVinciDTRTestKit
|
|
43
46
|
end
|
44
47
|
|
45
48
|
def fhir_base_url
|
46
|
-
@fhir_base_url ||=
|
49
|
+
@fhir_base_url ||= base_url + FHIR_BASE_PATH
|
47
50
|
end
|
48
51
|
|
49
52
|
def resume_pass_url
|
@@ -25,6 +25,24 @@ module DaVinciDTRTestKit
|
|
25
25
|
true
|
26
26
|
end
|
27
27
|
|
28
|
+
def perform_profile_validation_test(
|
29
|
+
resources,
|
30
|
+
resource_type,
|
31
|
+
profile_url
|
32
|
+
)
|
33
|
+
skip_if(resources.nil?, "No `#{resource_type}` resources to validate, skipping test.")
|
34
|
+
resources = JSON.parse(resources)
|
35
|
+
resources = [resources] unless resources.is_a?(Array)
|
36
|
+
resources.each do |resource|
|
37
|
+
fhir_resource = FHIR.from_contents(resource.to_json)
|
38
|
+
|
39
|
+
assert fhir_resource.present?, 'Resource does not contain a recognized FHIR object'
|
40
|
+
assert_resource_type(resource_type, resource: fhir_resource)
|
41
|
+
assert_valid_resource(resource: fhir_resource,
|
42
|
+
profile_url:)
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
28
46
|
def perform_request_validation_test(
|
29
47
|
resources,
|
30
48
|
resource_type,
|
@@ -42,7 +60,8 @@ module DaVinciDTRTestKit
|
|
42
60
|
else
|
43
61
|
if resource.url != resource_url
|
44
62
|
messages << { type: 'warning',
|
45
|
-
message: format_markdown(
|
63
|
+
message: format_markdown(%(Request made to wrong URL: #{resource.request[:url]}.
|
64
|
+
Should instead be to #{resource_url})) }
|
46
65
|
end
|
47
66
|
fhir_resource = FHIR.from_contents(resource.request[:body])
|
48
67
|
end
|
@@ -58,10 +77,7 @@ module DaVinciDTRTestKit
|
|
58
77
|
omit_if resources.blank?,
|
59
78
|
"No #{resource_type} resources provided so the #{profile_url} profile does not apply"
|
60
79
|
resources.each_with_index do |resource, index|
|
61
|
-
|
62
|
-
fhir_resource = FHIR.from_contents(resource.response[:body])
|
63
|
-
assert_response_status([200, 202], request: resource, response: resource.response)
|
64
|
-
validate_resource(fhir_resource, resource_type, profile_url, index)
|
80
|
+
validate_resource(resource, resource_type, profile_url, index)
|
65
81
|
end
|
66
82
|
return if tests_failed[profile_url].blank?
|
67
83
|
|
data/lib/davinci_dtr_test_kit.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
1
|
require_relative 'davinci_dtr_test_kit/dtr_payer_server_suite'
|
2
2
|
require_relative 'davinci_dtr_test_kit/dtr_smart_app_suite'
|
3
3
|
require_relative 'davinci_dtr_test_kit/dtr_full_ehr_suite'
|
4
|
-
|
4
|
+
require_relative 'davinci_dtr_test_kit/dtr_light_ehr_suite'
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: davinci_dtr_test_kit
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.14.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Karl Naden
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2024-
|
13
|
+
date: 2024-12-06 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: inferno_core
|
@@ -18,14 +18,14 @@ dependencies:
|
|
18
18
|
requirements:
|
19
19
|
- - "~>"
|
20
20
|
- !ruby/object:Gem::Version
|
21
|
-
version: 0.
|
21
|
+
version: 0.5.0
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
24
|
version_requirements: !ruby/object:Gem::Requirement
|
25
25
|
requirements:
|
26
26
|
- - "~>"
|
27
27
|
- !ruby/object:Gem::Version
|
28
|
-
version: 0.
|
28
|
+
version: 0.5.0
|
29
29
|
- !ruby/object:Gem::Dependency
|
30
30
|
name: jwt
|
31
31
|
requirement: !ruby/object:Gem::Requirement
|
@@ -40,6 +40,48 @@ dependencies:
|
|
40
40
|
- - "~>"
|
41
41
|
- !ruby/object:Gem::Version
|
42
42
|
version: '2.6'
|
43
|
+
- !ruby/object:Gem::Dependency
|
44
|
+
name: smart_app_launch_test_kit
|
45
|
+
requirement: !ruby/object:Gem::Requirement
|
46
|
+
requirements:
|
47
|
+
- - "~>"
|
48
|
+
- !ruby/object:Gem::Version
|
49
|
+
version: 0.4.4
|
50
|
+
type: :runtime
|
51
|
+
prerelease: false
|
52
|
+
version_requirements: !ruby/object:Gem::Requirement
|
53
|
+
requirements:
|
54
|
+
- - "~>"
|
55
|
+
- !ruby/object:Gem::Version
|
56
|
+
version: 0.4.4
|
57
|
+
- !ruby/object:Gem::Dependency
|
58
|
+
name: tls_test_kit
|
59
|
+
requirement: !ruby/object:Gem::Requirement
|
60
|
+
requirements:
|
61
|
+
- - '='
|
62
|
+
- !ruby/object:Gem::Version
|
63
|
+
version: 0.2.2
|
64
|
+
type: :runtime
|
65
|
+
prerelease: false
|
66
|
+
version_requirements: !ruby/object:Gem::Requirement
|
67
|
+
requirements:
|
68
|
+
- - '='
|
69
|
+
- !ruby/object:Gem::Version
|
70
|
+
version: 0.2.2
|
71
|
+
- !ruby/object:Gem::Dependency
|
72
|
+
name: us_core_test_kit
|
73
|
+
requirement: !ruby/object:Gem::Requirement
|
74
|
+
requirements:
|
75
|
+
- - '='
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: 0.9.0
|
78
|
+
type: :runtime
|
79
|
+
prerelease: false
|
80
|
+
version_requirements: !ruby/object:Gem::Requirement
|
81
|
+
requirements:
|
82
|
+
- - '='
|
83
|
+
- !ruby/object:Gem::Version
|
84
|
+
version: 0.9.0
|
43
85
|
description: Test Kit for the Da Vinci Documentation Templates and Rules (DTR) FHIR
|
44
86
|
Implementation Guide
|
45
87
|
email:
|
@@ -53,22 +95,30 @@ files:
|
|
53
95
|
- lib/davinci_dtr_test_kit/auth_groups/oauth2_authentication_group.rb
|
54
96
|
- lib/davinci_dtr_test_kit/auth_groups/token_request_test.rb
|
55
97
|
- lib/davinci_dtr_test_kit/auth_groups/token_validation_test.rb
|
98
|
+
- lib/davinci_dtr_test_kit/client_groups/dinner_adaptive/dtr_adaptive_questionnaire_completion_group.rb
|
99
|
+
- lib/davinci_dtr_test_kit/client_groups/dinner_adaptive/dtr_adaptive_questionnaire_followup_questions_group.rb
|
100
|
+
- lib/davinci_dtr_test_kit/client_groups/dinner_adaptive/dtr_adaptive_questionnaire_next_question_request_test.rb
|
101
|
+
- lib/davinci_dtr_test_kit/client_groups/dinner_adaptive/dtr_adaptive_questionnaire_next_question_request_validation_test.rb
|
102
|
+
- lib/davinci_dtr_test_kit/client_groups/dinner_adaptive/dtr_adaptive_questionnaire_next_question_retrieval_group.rb
|
103
|
+
- lib/davinci_dtr_test_kit/client_groups/dinner_adaptive/dtr_adaptive_questionnaire_response_validation_test.rb
|
104
|
+
- lib/davinci_dtr_test_kit/client_groups/dinner_adaptive/dtr_full_ehr_adaptive_dinner_questionnaire_workflow_group.rb
|
105
|
+
- lib/davinci_dtr_test_kit/client_groups/dinner_adaptive/dtr_full_ehr_adaptive_questionnaire_initial_retrieval_group.rb
|
106
|
+
- lib/davinci_dtr_test_kit/client_groups/dinner_adaptive/dtr_full_ehr_adaptive_questionnaire_request_test.rb
|
107
|
+
- lib/davinci_dtr_test_kit/client_groups/dinner_adaptive/dtr_smart_app_adaptive_questionnaire_initial_retrieval_group.rb
|
108
|
+
- lib/davinci_dtr_test_kit/client_groups/dinner_adaptive/dtr_smart_app_adaptive_questionnaire_request_test.rb
|
56
109
|
- lib/davinci_dtr_test_kit/client_groups/dinner_adaptive/dtr_smart_app_questionnaire_workflow_group.rb
|
57
|
-
- lib/davinci_dtr_test_kit/client_groups/dinner_static/dtr_full_ehr_dinner_questionnaire_package_request_test.rb
|
58
|
-
- lib/davinci_dtr_test_kit/client_groups/dinner_static/dtr_full_ehr_launch_attestation_test.rb
|
59
|
-
- lib/davinci_dtr_test_kit/client_groups/dinner_static/dtr_full_ehr_prepopulation_attestation_test.rb
|
60
|
-
- lib/davinci_dtr_test_kit/client_groups/dinner_static/dtr_full_ehr_prepopulation_override_attestation_test.rb
|
61
|
-
- lib/davinci_dtr_test_kit/client_groups/dinner_static/dtr_full_ehr_prepopulation_representation_attestation_test.rb
|
62
110
|
- lib/davinci_dtr_test_kit/client_groups/dinner_static/dtr_full_ehr_questionnaire_workflow_group.rb
|
63
|
-
- lib/davinci_dtr_test_kit/client_groups/dinner_static/dtr_full_ehr_rendering_enabled_questions_attestation_test.rb
|
64
|
-
- lib/davinci_dtr_test_kit/client_groups/dinner_static/dtr_full_ehr_store_attestation_test.rb
|
65
111
|
- lib/davinci_dtr_test_kit/client_groups/dinner_static/dtr_smart_app_dinner_questionnaire_package_request_test.rb
|
66
|
-
- lib/davinci_dtr_test_kit/client_groups/dinner_static/dtr_smart_app_prepopulation_attestation_test.rb
|
67
|
-
- lib/davinci_dtr_test_kit/client_groups/dinner_static/dtr_smart_app_prepopulation_override_attestation_test.rb
|
68
|
-
- lib/davinci_dtr_test_kit/client_groups/dinner_static/dtr_smart_app_questionnaire_response_save_test.rb
|
69
112
|
- lib/davinci_dtr_test_kit/client_groups/dinner_static/dtr_smart_app_questionnaire_workflow_group.rb
|
70
|
-
- lib/davinci_dtr_test_kit/client_groups/
|
71
|
-
- lib/davinci_dtr_test_kit/client_groups/
|
113
|
+
- lib/davinci_dtr_test_kit/client_groups/full_ehr/dtr_full_ehr_launch_attestation_test.rb
|
114
|
+
- lib/davinci_dtr_test_kit/client_groups/full_ehr/dtr_full_ehr_prepopulation_attestation_test.rb
|
115
|
+
- lib/davinci_dtr_test_kit/client_groups/full_ehr/dtr_full_ehr_prepopulation_override_attestation_test.rb
|
116
|
+
- lib/davinci_dtr_test_kit/client_groups/full_ehr/dtr_full_ehr_questionnaire_package_request_test.rb
|
117
|
+
- lib/davinci_dtr_test_kit/client_groups/full_ehr/dtr_full_ehr_questionnaire_response_conformance_test.rb
|
118
|
+
- lib/davinci_dtr_test_kit/client_groups/full_ehr/dtr_full_ehr_questionnaire_response_correctness_test.rb
|
119
|
+
- lib/davinci_dtr_test_kit/client_groups/full_ehr/dtr_full_ehr_rendering_enabled_questions_attestation_test.rb
|
120
|
+
- lib/davinci_dtr_test_kit/client_groups/full_ehr/dtr_full_ehr_saving_questionnaire_response_group.rb
|
121
|
+
- lib/davinci_dtr_test_kit/client_groups/full_ehr/dtr_full_ehr_store_attestation_test.rb
|
72
122
|
- lib/davinci_dtr_test_kit/client_groups/resp_assist_device/dtr_questionnaire_package_group.rb
|
73
123
|
- lib/davinci_dtr_test_kit/client_groups/resp_assist_device/dtr_questionnaire_rendering_attestation_test.rb
|
74
124
|
- lib/davinci_dtr_test_kit/client_groups/resp_assist_device/dtr_questionnaire_rendering_group.rb
|
@@ -79,18 +129,38 @@ files:
|
|
79
129
|
- lib/davinci_dtr_test_kit/client_groups/shared/dtr_questionnaire_package_request_validation_test.rb
|
80
130
|
- lib/davinci_dtr_test_kit/client_groups/shared/dtr_questionnaire_response_basic_conformance_test.rb
|
81
131
|
- lib/davinci_dtr_test_kit/client_groups/shared/dtr_questionnaire_response_pre_population_test.rb
|
132
|
+
- lib/davinci_dtr_test_kit/client_groups/smart_app/dtr_smart_app_prepopulation_attestation_test.rb
|
133
|
+
- lib/davinci_dtr_test_kit/client_groups/smart_app/dtr_smart_app_prepopulation_override_attestation_test.rb
|
134
|
+
- lib/davinci_dtr_test_kit/client_groups/smart_app/dtr_smart_app_questionnaire_response_save_test.rb
|
135
|
+
- lib/davinci_dtr_test_kit/client_groups/smart_app/dtr_smart_app_rendering_enabled_questions_attestation_test.rb
|
136
|
+
- lib/davinci_dtr_test_kit/client_groups/smart_app/dtr_smart_app_saving_questionnaire_response_group.rb
|
82
137
|
- lib/davinci_dtr_test_kit/cql_test.rb
|
138
|
+
- lib/davinci_dtr_test_kit/create_test.rb
|
83
139
|
- lib/davinci_dtr_test_kit/docs/dtr_full_ehr_suite_description_v201.md
|
140
|
+
- lib/davinci_dtr_test_kit/docs/dtr_light_ehr_suite_description_v201.md
|
84
141
|
- lib/davinci_dtr_test_kit/docs/dtr_payer_server_suite_description_v201.md
|
85
142
|
- lib/davinci_dtr_test_kit/docs/dtr_smart_app_suite_description_v201.md
|
86
143
|
- lib/davinci_dtr_test_kit/dtr_full_ehr_suite.rb
|
87
144
|
- lib/davinci_dtr_test_kit/dtr_light_ehr_suite.rb
|
145
|
+
- lib/davinci_dtr_test_kit/dtr_options.rb
|
88
146
|
- lib/davinci_dtr_test_kit/dtr_payer_server_suite.rb
|
89
147
|
- lib/davinci_dtr_test_kit/dtr_questionnaire_response_validation.rb
|
90
148
|
- lib/davinci_dtr_test_kit/dtr_smart_app_suite.rb
|
91
|
-
- lib/davinci_dtr_test_kit/
|
92
|
-
- lib/davinci_dtr_test_kit/
|
93
|
-
- lib/davinci_dtr_test_kit/
|
149
|
+
- lib/davinci_dtr_test_kit/endpoints/cors.rb
|
150
|
+
- lib/davinci_dtr_test_kit/endpoints/mock_authorization.rb
|
151
|
+
- lib/davinci_dtr_test_kit/endpoints/mock_authorization/authorize_endpoint.rb
|
152
|
+
- lib/davinci_dtr_test_kit/endpoints/mock_authorization/simple_token_endpoint.rb
|
153
|
+
- lib/davinci_dtr_test_kit/endpoints/mock_authorization/token_endpoint.rb
|
154
|
+
- lib/davinci_dtr_test_kit/endpoints/mock_ehr.rb
|
155
|
+
- lib/davinci_dtr_test_kit/endpoints/mock_ehr/fhir_get_endpoint.rb
|
156
|
+
- lib/davinci_dtr_test_kit/endpoints/mock_ehr/questionnaire_response_endpoint.rb
|
157
|
+
- lib/davinci_dtr_test_kit/endpoints/mock_payer.rb
|
158
|
+
- lib/davinci_dtr_test_kit/endpoints/mock_payer/full_ehr_next_question_endpoint.rb
|
159
|
+
- lib/davinci_dtr_test_kit/endpoints/mock_payer/full_ehr_questionnaire_package_endpoint.rb
|
160
|
+
- lib/davinci_dtr_test_kit/endpoints/mock_payer/next_question_endpoint.rb
|
161
|
+
- lib/davinci_dtr_test_kit/endpoints/mock_payer/next_question_proxy_endpoint.rb
|
162
|
+
- lib/davinci_dtr_test_kit/endpoints/mock_payer/questionnaire_package_endpoint.rb
|
163
|
+
- lib/davinci_dtr_test_kit/endpoints/mock_payer/questionnaire_package_proxy_endpoint.rb
|
94
164
|
- lib/davinci_dtr_test_kit/fixture_loader.rb
|
95
165
|
- lib/davinci_dtr_test_kit/fixtures.rb
|
96
166
|
- lib/davinci_dtr_test_kit/fixtures/dinner_adaptive/dinner_order_adaptive_next_question_burrito.json
|
@@ -99,11 +169,8 @@ files:
|
|
99
169
|
- lib/davinci_dtr_test_kit/fixtures/dinner_adaptive/questionnaire_dinner_order_adaptive.json
|
100
170
|
- lib/davinci_dtr_test_kit/fixtures/dinner_static/questionnaire_dinner_order_static.json
|
101
171
|
- lib/davinci_dtr_test_kit/fixtures/dinner_static/questionnaire_response_dinner_order_static.json
|
102
|
-
- lib/davinci_dtr_test_kit/fixtures/pre_populated_questionnaire_response.json
|
103
|
-
- lib/davinci_dtr_test_kit/fixtures/questionnaire_package.json
|
104
|
-
- lib/davinci_dtr_test_kit/mock_auth_server.rb
|
105
|
-
- lib/davinci_dtr_test_kit/mock_ehr.rb
|
106
|
-
- lib/davinci_dtr_test_kit/mock_payer.rb
|
172
|
+
- lib/davinci_dtr_test_kit/fixtures/respiratory_assist_device/pre_populated_questionnaire_response.json
|
173
|
+
- lib/davinci_dtr_test_kit/fixtures/respiratory_assist_device/questionnaire_package.json
|
107
174
|
- lib/davinci_dtr_test_kit/payer_server_groups/adaptive_form_libraries_test.rb
|
108
175
|
- lib/davinci_dtr_test_kit/payer_server_groups/adaptive_form_questionnaire_expressions_test.rb
|
109
176
|
- lib/davinci_dtr_test_kit/payer_server_groups/adaptive_form_questionnaire_extensions_test.rb
|
@@ -125,7 +192,45 @@ files:
|
|
125
192
|
- lib/davinci_dtr_test_kit/payer_server_groups/static_form_request_test.rb
|
126
193
|
- lib/davinci_dtr_test_kit/payer_server_groups/static_form_request_validation_test.rb
|
127
194
|
- lib/davinci_dtr_test_kit/payer_server_groups/static_form_response_validation_test.rb
|
195
|
+
- lib/davinci_dtr_test_kit/profiles/communication_request/communication_request_read.rb
|
196
|
+
- lib/davinci_dtr_test_kit/profiles/communication_request/communication_request_validation.rb
|
197
|
+
- lib/davinci_dtr_test_kit/profiles/communication_request_group.rb
|
198
|
+
- lib/davinci_dtr_test_kit/profiles/coverage/coverage_read.rb
|
199
|
+
- lib/davinci_dtr_test_kit/profiles/coverage/coverage_validation.rb
|
200
|
+
- lib/davinci_dtr_test_kit/profiles/coverage_group.rb
|
201
|
+
- lib/davinci_dtr_test_kit/profiles/device_request/device_request_read.rb
|
202
|
+
- lib/davinci_dtr_test_kit/profiles/device_request/device_request_validation.rb
|
203
|
+
- lib/davinci_dtr_test_kit/profiles/device_request_group.rb
|
204
|
+
- lib/davinci_dtr_test_kit/profiles/encounter/encounter_read.rb
|
205
|
+
- lib/davinci_dtr_test_kit/profiles/encounter/encounter_validation.rb
|
206
|
+
- lib/davinci_dtr_test_kit/profiles/encounter_group.rb
|
207
|
+
- lib/davinci_dtr_test_kit/profiles/medication_request/medication_request_read.rb
|
208
|
+
- lib/davinci_dtr_test_kit/profiles/medication_request/medication_request_validation.rb
|
209
|
+
- lib/davinci_dtr_test_kit/profiles/medication_request_group.rb
|
210
|
+
- lib/davinci_dtr_test_kit/profiles/nutrition_order/nutrition_order_read.rb
|
211
|
+
- lib/davinci_dtr_test_kit/profiles/nutrition_order/nutrition_order_validation.rb
|
212
|
+
- lib/davinci_dtr_test_kit/profiles/nutrition_order_group.rb
|
213
|
+
- lib/davinci_dtr_test_kit/profiles/questionnaire_response/questionnaire_response_context_search.rb
|
214
|
+
- lib/davinci_dtr_test_kit/profiles/questionnaire_response/questionnaire_response_create.rb
|
215
|
+
- lib/davinci_dtr_test_kit/profiles/questionnaire_response/questionnaire_response_patient_search.rb
|
216
|
+
- lib/davinci_dtr_test_kit/profiles/questionnaire_response/questionnaire_response_read.rb
|
217
|
+
- lib/davinci_dtr_test_kit/profiles/questionnaire_response/questionnaire_response_update.rb
|
218
|
+
- lib/davinci_dtr_test_kit/profiles/questionnaire_response/questionnaire_response_validation.rb
|
219
|
+
- lib/davinci_dtr_test_kit/profiles/questionnaire_response_group.rb
|
220
|
+
- lib/davinci_dtr_test_kit/profiles/service_request/service_request_read.rb
|
221
|
+
- lib/davinci_dtr_test_kit/profiles/service_request/service_request_validation.rb
|
222
|
+
- lib/davinci_dtr_test_kit/profiles/service_request_group.rb
|
223
|
+
- lib/davinci_dtr_test_kit/profiles/task/task_create.rb
|
224
|
+
- lib/davinci_dtr_test_kit/profiles/task/task_read.rb
|
225
|
+
- lib/davinci_dtr_test_kit/profiles/task/task_update.rb
|
226
|
+
- lib/davinci_dtr_test_kit/profiles/task/task_validation.rb
|
227
|
+
- lib/davinci_dtr_test_kit/profiles/task_group.rb
|
228
|
+
- lib/davinci_dtr_test_kit/profiles/vision_prescription/vision_prescription_read.rb
|
229
|
+
- lib/davinci_dtr_test_kit/profiles/vision_prescription/vision_prescription_validation.rb
|
230
|
+
- lib/davinci_dtr_test_kit/profiles/vision_prescription_group.rb
|
231
|
+
- lib/davinci_dtr_test_kit/read_test.rb
|
128
232
|
- lib/davinci_dtr_test_kit/tags.rb
|
233
|
+
- lib/davinci_dtr_test_kit/update_test.rb
|
129
234
|
- lib/davinci_dtr_test_kit/urls.rb
|
130
235
|
- lib/davinci_dtr_test_kit/validation_test.rb
|
131
236
|
- lib/davinci_dtr_test_kit/version.rb
|
@@ -1,33 +0,0 @@
|
|
1
|
-
require_relative '../../urls'
|
2
|
-
|
3
|
-
module DaVinciDTRTestKit
|
4
|
-
class DTRFullEHRStaticDinnerPrepopulationRepresentationAttestationTest < Inferno::Test
|
5
|
-
include URLs
|
6
|
-
|
7
|
-
id :dtr_full_ehr_dinner_static_prepopulation_representation_attestation
|
8
|
-
title 'Verify the QuestionnaireResponse representation of the item data sources (Attestation)'
|
9
|
-
description %(
|
10
|
-
Attest that the QuestionnaireResponse representation of the stored answers includes the required
|
11
|
-
source indicators, including `auto`, `override`, and `manual`.
|
12
|
-
)
|
13
|
-
input :access_token
|
14
|
-
|
15
|
-
run do
|
16
|
-
wait(
|
17
|
-
identifier: access_token,
|
18
|
-
message: %(
|
19
|
-
I attest that the QuestionnaireResponse representation of the stored answers includes the
|
20
|
-
[orgin extension with source details](https://build.fhir.org/ig/HL7/davinci-dtr/StructureDefinition-information-origin.html),
|
21
|
-
including on the following fields entered during the tests:
|
22
|
-
- PBD.1 (Last Name): `auto`
|
23
|
-
- PBD.2 (First Name): `override`
|
24
|
-
- 3.1 (dinner choice): `manual`
|
25
|
-
|
26
|
-
[Click here](#{resume_pass_url}?token=#{access_token}) if the above statement is **true**.
|
27
|
-
|
28
|
-
[Click here](#{resume_fail_url}?token=#{access_token}) if the above statement is **false**.
|
29
|
-
)
|
30
|
-
)
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|
@@ -1,19 +0,0 @@
|
|
1
|
-
require_relative 'dtr_questionnaire_package_group'
|
2
|
-
require_relative 'dtr_questionnaire_rendering_group'
|
3
|
-
|
4
|
-
module DaVinciDTRTestKit
|
5
|
-
class DTRFullEHRQuestionnaireWorkflowGroup < Inferno::TestGroup
|
6
|
-
id :dtr_full_ehr_questionnaire_workflow
|
7
|
-
title 'Respiratory Assist Device Questionnaire Workflow'
|
8
|
-
description %(
|
9
|
-
This workflow validates that a DTR Full EHR Client can perform a full DTR Questionnaire workflow using a canned
|
10
|
-
Questionnaire for a respiratory assist device order:
|
11
|
-
|
12
|
-
1. Fetch the questionnaire package
|
13
|
-
2. Render the questionnaire
|
14
|
-
)
|
15
|
-
|
16
|
-
group from: :dtr_questionnaire_package
|
17
|
-
group from: :dtr_questionnaire_rendering
|
18
|
-
end
|
19
|
-
end
|