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,5 @@
|
|
1
1
|
module DaVinciDTRTestKit
|
2
|
-
class
|
2
|
+
class TokenValidationTest < Inferno::Test
|
3
3
|
id :token_validation
|
4
4
|
title 'Client token request is valid'
|
5
5
|
description 'Inferno will verify that an access token was successfully returned to the client under test.'
|
@@ -0,0 +1,22 @@
|
|
1
|
+
require_relative '../../cql_test'
|
2
|
+
module DaVinciDTRTestKit
|
3
|
+
class DTRCustomQuestionnaireExpressionsTest < Inferno::Test
|
4
|
+
include DaVinciDTRTestKit::CQLTest
|
5
|
+
|
6
|
+
id :dtr_custom_questionnaire_expressions
|
7
|
+
title %(
|
8
|
+
[USER INPUT VERIFICATION] Custom static questionnaire(s) contain items with expressions
|
9
|
+
necessary for pre-population
|
10
|
+
)
|
11
|
+
description %(
|
12
|
+
Inferno checks that the custom response has appropriate expressions and that expressions are
|
13
|
+
written in cql.
|
14
|
+
)
|
15
|
+
|
16
|
+
run do
|
17
|
+
skip_if scratch[:static_questionnaire_bundles].blank?, 'No questionnaire bundle found in the custom response'
|
18
|
+
questionnaires = extract_questionnaires_from_bundles(scratch[:static_questionnaire_bundles])
|
19
|
+
verify_questionnaire_items(questionnaires, final_cql_test: true)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require_relative '../../cql_test'
|
2
|
+
module DaVinciDTRTestKit
|
3
|
+
class DTRCustomQuestionnaireExtensionsTest < Inferno::Test
|
4
|
+
include DaVinciDTRTestKit::CQLTest
|
5
|
+
|
6
|
+
id :dtr_custom_questionnaire_extensions
|
7
|
+
title '[USER INPUT VERIFICATION] Custom static questionnaire(s) contain extensions necessary for pre-population'
|
8
|
+
description %(
|
9
|
+
Inferno checks that the custom response has appropriate extensions and references to libraries within
|
10
|
+
those extensions.
|
11
|
+
)
|
12
|
+
|
13
|
+
run do
|
14
|
+
skip_if scratch[:static_questionnaire_bundles].blank?, 'No questionnaire bundle found in the custom response'
|
15
|
+
questionnaires = extract_questionnaires_from_bundles(scratch[:static_questionnaire_bundles])
|
16
|
+
verify_questionnaire_extensions(questionnaires)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
data/lib/davinci_dtr_test_kit/client_groups/custom_static/dtr_custom_questionnaire_libraries_test.rb
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
require_relative '../../cql_test'
|
2
|
+
module DaVinciDTRTestKit
|
3
|
+
class DTRCustomQuestionnaireLibrariesTest < Inferno::Test
|
4
|
+
include DaVinciDTRTestKit::CQLTest
|
5
|
+
|
6
|
+
id :dtr_custom_questionnaire_libraries
|
7
|
+
title %(
|
8
|
+
[USER INPUT VERIFICATION] Custom Questionnaire Package response parameters contain libraries
|
9
|
+
necessary for pre-population
|
10
|
+
)
|
11
|
+
description %(
|
12
|
+
Inferno check that the custom response contains no duplicate library names
|
13
|
+
and that libraries contain cql and elm data.
|
14
|
+
)
|
15
|
+
|
16
|
+
run do
|
17
|
+
skip_if scratch[:static_questionnaire_bundles].blank?, 'No questionnaire bundle found in the custom response'
|
18
|
+
check_libraries(scratch[:static_questionnaire_bundles])
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
require_relative '../../cql_test'
|
2
|
+
module DaVinciDTRTestKit
|
3
|
+
class DTRCustomQuestionnairePackageValidationTest < Inferno::Test
|
4
|
+
include DaVinciDTRTestKit::CQLTest
|
5
|
+
|
6
|
+
id :dtr_custom_qp_validation
|
7
|
+
title '[USER INPUT VERIFICATION] Custom Questionnaire Package response is valid'
|
8
|
+
description %(
|
9
|
+
Inferno will validate that the user provided response to the questionnaire-package operation is conformant
|
10
|
+
to the
|
11
|
+
[Questionnaire Package operation definition](https://hl7.org/fhir/us/davinci-dtr/STU2/OperationDefinition-questionnaire-package.html).
|
12
|
+
This includes verifying that the response conforms to the
|
13
|
+
[DTR Questionnaire Package Bundle profile](https://hl7.org/fhir/us/davinci-dtr/STU2/StructureDefinition-DTR-QPackageBundle.html)
|
14
|
+
and, in the event that the server includes that Bundle in a Parameters object, the
|
15
|
+
[DTR Questionnaire Package Output Parameters profile](https://hl7.org/fhir/us/davinci-dtr/STU2/StructureDefinition-dtr-qpackage-output-parameters.html).
|
16
|
+
|
17
|
+
It verifies the presence of mandatory elements and that elements with required bindings contain appropriate
|
18
|
+
values. CodeableConcept element bindings will fail if none of their codings have a code/system belonging
|
19
|
+
to the bound ValueSet. Quantity, Coding, and code element bindings will fail if their code/system are not found in
|
20
|
+
the valueset.
|
21
|
+
)
|
22
|
+
|
23
|
+
input :custom_questionnaire_package_response,
|
24
|
+
title: 'Custom Questionnaire Package Response JSON',
|
25
|
+
description: %(
|
26
|
+
A JSON PackageBundle may be provided here to replace Inferno's response to the
|
27
|
+
$questionnaire-package request.
|
28
|
+
),
|
29
|
+
type: 'textarea'
|
30
|
+
|
31
|
+
run do
|
32
|
+
assert_valid_json custom_questionnaire_package_response, 'Custom questionnaire package response is not valid JSON'
|
33
|
+
|
34
|
+
resource = FHIR.from_contents(custom_questionnaire_package_response)
|
35
|
+
|
36
|
+
perform_questionnaire_package_validation(resource, 'static')
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,121 @@
|
|
1
|
+
require_relative 'dtr_custom_questionnaire_package_validation_test'
|
2
|
+
require_relative 'dtr_custom_questionnaire_libraries_test'
|
3
|
+
require_relative 'dtr_custom_questionnaire_extensions_test'
|
4
|
+
require_relative 'dtr_custom_questionnaire_expressions_test'
|
5
|
+
require_relative '../full_ehr/dtr_full_ehr_launch_attestation_test'
|
6
|
+
require_relative '../full_ehr/dtr_full_ehr_questionnaire_package_request_test'
|
7
|
+
require_relative '../shared/dtr_questionnaire_package_request_validation_test'
|
8
|
+
require_relative '../shared/dtr_prepopulation_attestation_test'
|
9
|
+
require_relative '../shared/dtr_rendering_attestation_test'
|
10
|
+
require_relative '../shared/dtr_prepopulation_override_attestation_test'
|
11
|
+
require_relative '../full_ehr/dtr_full_ehr_saving_questionnaire_response_group'
|
12
|
+
|
13
|
+
module DaVinciDTRTestKit
|
14
|
+
class DTRFullEHRCustomStaticWorkflowGroup < Inferno::TestGroup
|
15
|
+
id :dtr_full_ehr_custom_static_workflow
|
16
|
+
title 'Static Questionnaire Workflow'
|
17
|
+
description %(
|
18
|
+
This group validates that a DTR Full EHR client can perform a full DTR Static Questionnaire workflow.
|
19
|
+
Testers will provide a custom Questionnaire package of their choice for the test and
|
20
|
+
will request and complete the Questionnaire in the context of a patient with data
|
21
|
+
for prepopulation. As a part of this workflow, the Full EHR system must demonstrate its ability to:
|
22
|
+
|
23
|
+
1. Request the Questionnaire using the $questionnaire-package operation,
|
24
|
+
2. Support the tester in completing the questionnaire, including
|
25
|
+
- Rendering the questionnaire.
|
26
|
+
- Pre-populating at least two answers into the questionnaire.
|
27
|
+
- Allowing the tester to manually enter responses, including overriding pre-populated answers.
|
28
|
+
3. Complete and store the QuestionnaireResponse for future use.
|
29
|
+
)
|
30
|
+
|
31
|
+
group do
|
32
|
+
id :dtr_full_ehr_custom_static_retrieval
|
33
|
+
title 'Retrieving the Static Questionnaire'
|
34
|
+
description %(
|
35
|
+
During this test, DTR will be launch in the Full EHR to start the demonstration of
|
36
|
+
static Questionnaire capabilities. This launch must occur within the context of a patient
|
37
|
+
that will demonstrate the Questionnaire's pre-population logic. The patient's data needs
|
38
|
+
to support pre-population of at least two answers to allow for demonstration of both
|
39
|
+
pre-populated and manually-overridden answers in the resulting QuestionnaireResponse.
|
40
|
+
|
41
|
+
After DTR launch, Inferno will wait for the client system to request a questionnaire using the
|
42
|
+
$questionnaire-package operation and will return a static questionnaire for the
|
43
|
+
tester to complete. Inferno will then validate the the conformance of the request
|
44
|
+
and of the provided Questionnaire that Inferno responded with.
|
45
|
+
)
|
46
|
+
run_as_group
|
47
|
+
|
48
|
+
input_order :access_token, :custom_questionnaire_package_response
|
49
|
+
|
50
|
+
# Test 0: attest to launch
|
51
|
+
test from: :dtr_full_ehr_launch_attest,
|
52
|
+
config: { options: { attestation_message:
|
53
|
+
'I attest that DTR has been launched in the context of a patient with data that will exercise pre-population logic in the provided static questionnaire resulting in at least 2 pre-populated answers.' } }, # rubocop:disable Layout/LineLength
|
54
|
+
title: 'Launch DTR (Attestation)'
|
55
|
+
# Test 1: wait for the $questionnaire-package request
|
56
|
+
test from: :dtr_full_ehr_qp_request do
|
57
|
+
input :custom_questionnaire_package_response
|
58
|
+
end
|
59
|
+
# Test 2: validate the $questionnaire-package body
|
60
|
+
test from: :dtr_qp_request_validation
|
61
|
+
# Test 3: validate the user provided $questionnaire-package response
|
62
|
+
test from: :dtr_custom_qp_validation
|
63
|
+
# Test 4: verify the custom response has the necessary libraries for pre-population
|
64
|
+
test from: :dtr_custom_questionnaire_libraries
|
65
|
+
# Test 5: verify the custom response has the necessaru extensions for pre-population
|
66
|
+
test from: :dtr_custom_questionnaire_extensions
|
67
|
+
# Test 6: verify custom response has necessary expressions for pre-population
|
68
|
+
test from: :dtr_custom_questionnaire_expressions
|
69
|
+
end
|
70
|
+
|
71
|
+
group do
|
72
|
+
id :dtr_full_ehr_custom_static_rendering
|
73
|
+
title 'Filling Out the Static Questionnaire'
|
74
|
+
description %(
|
75
|
+
The tester will interact with the questionnaire within their client system
|
76
|
+
such that pre-population steps are taken, the qustionnaire is rendered, and
|
77
|
+
they are able to fill it out. The tester will attest that questionnaire pre-population
|
78
|
+
and rendering directives were followed.
|
79
|
+
)
|
80
|
+
run_as_group
|
81
|
+
|
82
|
+
# Test 1: attest to proper rendering of the Questionnaire
|
83
|
+
test from: :dtr_rendering_attest
|
84
|
+
# Test 2: attest to the pre-population
|
85
|
+
test from: :dtr_prepopulation_attest
|
86
|
+
# Test 2: attest to the ability to manually complete questions
|
87
|
+
test from: :dtr_prepopulation_override_attest
|
88
|
+
end
|
89
|
+
|
90
|
+
group from: :dtr_full_ehr_saving_qr do
|
91
|
+
input :custom_questionnaire_package_response,
|
92
|
+
title: 'Custom Questionnaire Package Response JSON',
|
93
|
+
description: %(
|
94
|
+
A JSON PackageBundle may be provided here to replace Inferno's response to the
|
95
|
+
$questionnaire-package request.
|
96
|
+
),
|
97
|
+
type: 'textarea'
|
98
|
+
|
99
|
+
config(
|
100
|
+
inputs: {
|
101
|
+
questionnaire_response: {
|
102
|
+
description: "The QuestionnaireResponse as exported from the EHR after completion of the Questionnaire.
|
103
|
+
IMPORTANT: If you have not yet run the 'Filling Out the Static Questionnaire' group, leave this blank
|
104
|
+
until you have done so. Then, run just the 'Saving the QuestionnaireResponse' group and populate
|
105
|
+
this input."
|
106
|
+
}
|
107
|
+
}
|
108
|
+
)
|
109
|
+
|
110
|
+
children.last.description(
|
111
|
+
%(
|
112
|
+
Verify that the QuestionnaireResponse
|
113
|
+
- Is for the Questionnaire provided by the tester.
|
114
|
+
- Has source extensions demonstrating answers that are manually entered,
|
115
|
+
automatically pre-populated, and manually overridden.
|
116
|
+
- Contains answers for all required items.
|
117
|
+
)
|
118
|
+
)
|
119
|
+
end
|
120
|
+
end
|
121
|
+
end
|
@@ -0,0 +1,91 @@
|
|
1
|
+
require_relative 'dtr_custom_questionnaire_package_validation_test'
|
2
|
+
require_relative 'dtr_custom_questionnaire_libraries_test'
|
3
|
+
require_relative 'dtr_custom_questionnaire_extensions_test'
|
4
|
+
require_relative 'dtr_custom_questionnaire_expressions_test'
|
5
|
+
require_relative '../smart_app/dtr_smart_app_questionnaire_package_request_test'
|
6
|
+
require_relative '../shared/dtr_questionnaire_package_request_validation_test'
|
7
|
+
require_relative '../shared/dtr_prepopulation_attestation_test'
|
8
|
+
require_relative '../shared/dtr_rendering_attestation_test'
|
9
|
+
require_relative '../shared/dtr_prepopulation_override_attestation_test'
|
10
|
+
require_relative '../smart_app/dtr_smart_app_saving_questionnaire_response_group'
|
11
|
+
require_relative '../smart_app/dtr_smart_app_questionnaire_response_correctness_test'
|
12
|
+
|
13
|
+
module DaVinciDTRTestKit
|
14
|
+
class DTRSmartAppCustomStaticWorkflowGroup < Inferno::TestGroup
|
15
|
+
id :dtr_smart_app_custom_static_workflow
|
16
|
+
title 'Static Questionnaire Workflow'
|
17
|
+
description %(
|
18
|
+
This group validates that a DTR SMART App client can perform a full DTR Static Questionnaire workflow.
|
19
|
+
Testers will provide a custom Questionnaire package of their choice for the test and
|
20
|
+
will request and complete the Questionnaire in the context of a patient with data
|
21
|
+
for prepopulation. As a part of this workflow, the DTR SMART App client must demonstrate its ability to:
|
22
|
+
|
23
|
+
1. Request the Questionnaire using the $questionnaire-package operation,
|
24
|
+
2. Support the tester in completing the questionnaire, including
|
25
|
+
- Fetching additional data needed for pre-population
|
26
|
+
- Rendering the questionnaire.
|
27
|
+
- Pre-populating at least two answers into the questionnaire.
|
28
|
+
- Allowing the tester to manually enter responses, including overriding pre-populated answers.
|
29
|
+
3. Provide the completed QuestionnaireResponse with appropriate indicators for pre-populated
|
30
|
+
and manually-entered data.
|
31
|
+
)
|
32
|
+
|
33
|
+
group do
|
34
|
+
id :dtr_smart_app_custom_static_retrieval
|
35
|
+
title 'Retrieving the Static Questionnaire'
|
36
|
+
description %(
|
37
|
+
During this test, DTR will be launch in the SMART App client to start the demonstration of
|
38
|
+
static Questionnaire capabilities. This launch must occur within the context of a patient
|
39
|
+
that will demonstrate the Questionnaire's pre-population logic. The patient's data needs
|
40
|
+
to support pre-population of at least two answers to allow for demonstration of both
|
41
|
+
pre-populated and manually-overridden answers in the resulting QuestionnaireResponse.
|
42
|
+
|
43
|
+
After DTR launch, Inferno will wait for the client system to request a questionnaire using the
|
44
|
+
$questionnaire-package operation and will return a static questionnaire for the
|
45
|
+
tester to complete. Inferno will then validate the conformance of the request
|
46
|
+
and of the provided Questionnaire that Inferno responded with.
|
47
|
+
)
|
48
|
+
run_as_group
|
49
|
+
|
50
|
+
# Test 1: wait for the $questionnaire-package request
|
51
|
+
test from: :dtr_smart_app_qp_request do
|
52
|
+
input :custom_questionnaire_package_response
|
53
|
+
end
|
54
|
+
# Test 2: validate the $questionnaire-package body
|
55
|
+
test from: :dtr_qp_request_validation
|
56
|
+
# Test 3: validate the user provided $questionnaire-package response
|
57
|
+
test from: :dtr_custom_qp_validation
|
58
|
+
# Test 4: verify the custom response has the necessary libraries for pre-population
|
59
|
+
test from: :dtr_custom_questionnaire_libraries
|
60
|
+
# Test 5: verify the custom response has the necessaru extensions for pre-population
|
61
|
+
test from: :dtr_custom_questionnaire_extensions
|
62
|
+
# Test 6: verify custom response has necessary expressions for pre-population
|
63
|
+
test from: :dtr_custom_questionnaire_expressions
|
64
|
+
end
|
65
|
+
|
66
|
+
group do
|
67
|
+
id :dtr_smart_app_custom_static_rendering
|
68
|
+
title 'Filling Out the Static Questionnaire'
|
69
|
+
description %(
|
70
|
+
The tester will interact with the questionnaire within their client system
|
71
|
+
such that pre-population steps are taken, the qustionnaire is rendered, and
|
72
|
+
they are able to fill it out. The tester will attest that questionnaire pre-population
|
73
|
+
and rendering directives were followed.
|
74
|
+
)
|
75
|
+
run_as_group
|
76
|
+
|
77
|
+
# Test 1: attest to proper rendering of the Questionnaire
|
78
|
+
test from: :dtr_rendering_attest
|
79
|
+
# Test 1: attest to the pre-population
|
80
|
+
test from: :dtr_prepopulation_attest
|
81
|
+
# Test 2: attest to the ability to manually complete questions
|
82
|
+
test from: :dtr_prepopulation_override_attest
|
83
|
+
end
|
84
|
+
|
85
|
+
group from: :dtr_smart_app_saving_qr do
|
86
|
+
config(options: { custom: true })
|
87
|
+
test from: :dtr_smart_app_qr_correctness,
|
88
|
+
uses_request: :questionnaire_response_save
|
89
|
+
end
|
90
|
+
end
|
91
|
+
end
|
@@ -1,8 +1,8 @@
|
|
1
|
-
require_relative '
|
1
|
+
require_relative 'dtr_adaptive_next_question_retrieval_group'
|
2
2
|
|
3
3
|
module DaVinciDTRTestKit
|
4
|
-
class
|
5
|
-
id :
|
4
|
+
class DTRAdaptiveCompletionGroup < Inferno::TestGroup
|
5
|
+
id :dtr_adaptive_completion
|
6
6
|
title 'Completing the Adaptive Questionnaire'
|
7
7
|
description %(
|
8
8
|
The client makes a final $next-question call, including the answers to all required questions asked so far.
|
@@ -18,6 +18,6 @@ module DaVinciDTRTestKit
|
|
18
18
|
)
|
19
19
|
run_as_group
|
20
20
|
|
21
|
-
group from: :
|
21
|
+
group from: :dtr_adaptive_next_question_retrieval
|
22
22
|
end
|
23
23
|
end
|
@@ -1,8 +1,8 @@
|
|
1
|
-
require_relative '
|
1
|
+
require_relative 'dtr_adaptive_next_question_retrieval_group'
|
2
2
|
|
3
3
|
module DaVinciDTRTestKit
|
4
|
-
class
|
5
|
-
id :
|
4
|
+
class DTRAdaptiveFollowupQuestionsGroup < Inferno::TestGroup
|
5
|
+
id :dtr_adaptive_followup_questions
|
6
6
|
title 'Retrieving the Next Question'
|
7
7
|
description %(
|
8
8
|
The client makes a subsequent call to request the next question or set of questions
|
@@ -21,6 +21,6 @@ module DaVinciDTRTestKit
|
|
21
21
|
|
22
22
|
run_as_group
|
23
23
|
|
24
|
-
group from: :
|
24
|
+
group from: :dtr_adaptive_next_question_retrieval
|
25
25
|
end
|
26
26
|
end
|
@@ -1,10 +1,10 @@
|
|
1
1
|
require_relative '../../urls'
|
2
2
|
|
3
3
|
module DaVinciDTRTestKit
|
4
|
-
class
|
4
|
+
class DTRAdaptiveNextQuestionRequestTest < Inferno::Test
|
5
5
|
include URLs
|
6
6
|
|
7
|
-
id :
|
7
|
+
id :dtr_adaptive_next_question_request
|
8
8
|
title 'Invoke the $next-question operation'
|
9
9
|
description %(
|
10
10
|
Inferno will wait for the client to invoke the $next-question operation to retrieve the next question
|
@@ -1,10 +1,10 @@
|
|
1
1
|
require_relative '../../urls'
|
2
2
|
|
3
3
|
module DaVinciDTRTestKit
|
4
|
-
class
|
4
|
+
class DTRAdaptiveNextQuestionRequestValidationTest < Inferno::Test
|
5
5
|
include URLs
|
6
6
|
|
7
|
-
id :
|
7
|
+
id :dtr_adaptive_next_question_request_validation
|
8
8
|
title '$next-question request is valid'
|
9
9
|
description %(
|
10
10
|
Per the [OperationDefinition: Adaptive questionnaire next question](https://build.fhir.org/ig/HL7/sdc/OperationDefinition-Questionnaire-next-question.html#root)
|
@@ -1,10 +1,10 @@
|
|
1
|
-
require_relative '
|
2
|
-
require_relative '
|
3
|
-
require_relative '
|
1
|
+
require_relative 'dtr_adaptive_next_question_request_test'
|
2
|
+
require_relative 'dtr_adaptive_next_question_request_validation_test'
|
3
|
+
require_relative 'dtr_adaptive_response_validation_test'
|
4
4
|
|
5
5
|
module DaVinciDTRTestKit
|
6
|
-
class
|
7
|
-
id :
|
6
|
+
class DTRAdaptiveNextQuestionRetrievalGroup < Inferno::TestGroup
|
7
|
+
id :dtr_adaptive_next_question_retrieval
|
8
8
|
title 'Next Question Request and Validation'
|
9
9
|
description %(
|
10
10
|
Inferno will wait for the client system to request the next question (or set of questions) using the
|
@@ -14,10 +14,10 @@ module DaVinciDTRTestKit
|
|
14
14
|
)
|
15
15
|
|
16
16
|
# Test 1: wait for the $next-question request
|
17
|
-
test from: :
|
17
|
+
test from: :dtr_adaptive_next_question_request
|
18
18
|
# Test 2: validate the $next-question request
|
19
|
-
test from: :
|
19
|
+
test from: :dtr_adaptive_next_question_request_validation
|
20
20
|
# Test 3: validate the QuestionnaireResponse in the input parameter
|
21
|
-
test from: :
|
21
|
+
test from: :dtr_adaptive_response_validation
|
22
22
|
end
|
23
23
|
end
|
@@ -2,14 +2,14 @@ require_relative '../../urls'
|
|
2
2
|
require_relative '../../dtr_questionnaire_response_validation'
|
3
3
|
|
4
4
|
module DaVinciDTRTestKit
|
5
|
-
class
|
5
|
+
class DTRAdaptiveResponseValidationTest < Inferno::Test
|
6
6
|
include URLs
|
7
7
|
include DTRQuestionnaireResponseValidation
|
8
8
|
|
9
|
-
id :
|
9
|
+
id :dtr_adaptive_response_validation
|
10
10
|
title 'Adaptive QuestionnaireResponse is valid'
|
11
11
|
description %(
|
12
|
-
This test validates the conformance of the
|
12
|
+
This test validates the conformance of the Adaptive QuestionnaireResponse to the
|
13
13
|
[SDCQuestionnaireResponseAdapt](http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaireresponse-adapt)
|
14
14
|
structure. It verifies the presence of mandatory elements and that elements
|
15
15
|
with required bindings contain appropriate values.
|
@@ -1,13 +1,13 @@
|
|
1
1
|
require_relative '../../tags'
|
2
|
-
require_relative '
|
2
|
+
require_relative 'dtr_full_ehr_adaptive_initial_retrieval_group'
|
3
3
|
require_relative '../full_ehr/dtr_full_ehr_prepopulation_attestation_test'
|
4
4
|
require_relative '../full_ehr/dtr_full_ehr_prepopulation_override_attestation_test'
|
5
|
-
require_relative '
|
6
|
-
require_relative '
|
5
|
+
require_relative 'dtr_adaptive_followup_questions_group'
|
6
|
+
require_relative 'dtr_adaptive_completion_group'
|
7
7
|
|
8
8
|
module DaVinciDTRTestKit
|
9
|
-
class
|
10
|
-
id :
|
9
|
+
class DTRFullEHRAdaptiveDinnerWorkflowGroup < Inferno::TestGroup
|
10
|
+
id :dtr_full_ehr_adaptive_dinner_workflow
|
11
11
|
title 'Adaptive Questionnaire Workflow'
|
12
12
|
description %(
|
13
13
|
This test validates that a DTR Full EHR client can perform a full DTR Adaptive Questionnaire workflow
|
@@ -25,7 +25,7 @@ module DaVinciDTRTestKit
|
|
25
25
|
)
|
26
26
|
|
27
27
|
group do
|
28
|
-
id :
|
28
|
+
id :dtr_full_ehr_adaptive_retrieval
|
29
29
|
title 'Retrieving the Adaptive Questionnaire'
|
30
30
|
description %(
|
31
31
|
After DTR launch, Inferno will wait for the client system to request a questionnaire using the
|
@@ -39,25 +39,25 @@ module DaVinciDTRTestKit
|
|
39
39
|
)
|
40
40
|
run_as_group
|
41
41
|
|
42
|
-
group from: :
|
42
|
+
group from: :dtr_full_ehr_adaptive_initial_retrieval
|
43
43
|
group do
|
44
44
|
id :dtr_full_ehr_initial_questionnaire_rendering
|
45
45
|
title 'Filling Out the Questionnaire'
|
46
46
|
description %(
|
47
47
|
The tester will interact with the questionnaire within their client system
|
48
|
-
such that pre-population steps are taken, the
|
48
|
+
such that pre-population steps are taken, the questionnaire is rendered, and
|
49
49
|
they are able to fill it out. The tester will attest that questionnaire pre-population
|
50
50
|
and rendering directives were followed.
|
51
51
|
)
|
52
52
|
|
53
53
|
# Test 1: attest to the pre-population of the name fields
|
54
|
-
test from: :
|
54
|
+
test from: :dtr_full_ehr_prepopulation_attest
|
55
55
|
# Test 2: attest to the pre-population and edit of the first name field
|
56
|
-
test from: :
|
56
|
+
test from: :dtr_full_ehr_prepopulation_override_attest
|
57
57
|
end
|
58
58
|
end
|
59
59
|
|
60
|
-
group from: :
|
60
|
+
group from: :dtr_adaptive_followup_questions,
|
61
61
|
config: {
|
62
62
|
options: {
|
63
63
|
accepts_multiple_requests: true,
|
@@ -65,7 +65,7 @@ module DaVinciDTRTestKit
|
|
65
65
|
}
|
66
66
|
}
|
67
67
|
|
68
|
-
group from: :
|
68
|
+
group from: :dtr_adaptive_completion,
|
69
69
|
config: {
|
70
70
|
options: {
|
71
71
|
accepts_multiple_requests: true,
|
@@ -1,27 +1,27 @@
|
|
1
1
|
require_relative '../../tags'
|
2
2
|
require_relative '../full_ehr/dtr_full_ehr_launch_attestation_test'
|
3
|
-
require_relative '
|
3
|
+
require_relative 'dtr_full_ehr_adaptive_request_test'
|
4
4
|
require_relative '../shared/dtr_questionnaire_package_request_validation_test'
|
5
|
-
require_relative '
|
6
|
-
require_relative '
|
5
|
+
require_relative 'dtr_adaptive_next_question_request_validation_test'
|
6
|
+
require_relative 'dtr_adaptive_response_validation_test'
|
7
7
|
|
8
8
|
module DaVinciDTRTestKit
|
9
|
-
class
|
10
|
-
id :
|
9
|
+
class DTRFullEHRAdaptiveInitialRetrievalGroup < Inferno::TestGroup
|
10
|
+
id :dtr_full_ehr_adaptive_initial_retrieval
|
11
11
|
title 'Adaptive Questionnaire Package and Initial Questions Retrieval'
|
12
12
|
|
13
13
|
config(options: { next_tag: "initial_#{CLIENT_NEXT_TAG}" })
|
14
14
|
run_as_group
|
15
15
|
|
16
16
|
# Test 0: attest to launch
|
17
|
-
test from: :
|
17
|
+
test from: :dtr_full_ehr_launch_attest
|
18
18
|
# Test 1: wait for the $questionnaire-package request and initial $next-question request
|
19
|
-
test from: :
|
19
|
+
test from: :dtr_full_ehr_adaptive_request
|
20
20
|
# Test 2: validate the $questionnaire-package request body
|
21
|
-
test from: :
|
21
|
+
test from: :dtr_qp_request_validation
|
22
22
|
# Test 3: validate the $next-question request body
|
23
|
-
test from: :
|
23
|
+
test from: :dtr_adaptive_next_question_request_validation
|
24
24
|
# Test 4: validate the QuestionnaireResponse in the input parameter
|
25
|
-
test from: :
|
25
|
+
test from: :dtr_adaptive_response_validation
|
26
26
|
end
|
27
27
|
end
|
@@ -1,10 +1,10 @@
|
|
1
1
|
require_relative '../../urls'
|
2
2
|
|
3
3
|
module DaVinciDTRTestKit
|
4
|
-
class
|
4
|
+
class DTRFullEHRAdaptiveRequestTest < Inferno::Test
|
5
5
|
include URLs
|
6
6
|
|
7
|
-
id :
|
7
|
+
id :dtr_full_ehr_adaptive_request
|
8
8
|
title 'Invoke the Questionnaire Package and Initial Next Question Operation'
|
9
9
|
description %(
|
10
10
|
This test waits for two sequential client requests:
|
@@ -1,13 +1,14 @@
|
|
1
1
|
require_relative '../../tags'
|
2
|
-
require_relative '
|
2
|
+
require_relative 'dtr_smart_app_adaptive_initial_retrieval_group'
|
3
3
|
require_relative '../smart_app/dtr_smart_app_prepopulation_attestation_test'
|
4
4
|
require_relative '../smart_app/dtr_smart_app_prepopulation_override_attestation_test'
|
5
|
-
require_relative '
|
6
|
-
require_relative '
|
5
|
+
require_relative 'dtr_adaptive_followup_questions_group'
|
6
|
+
require_relative 'dtr_adaptive_completion_group'
|
7
|
+
require_relative '../shared/dtr_questionnaire_response_prepopulation_test'
|
7
8
|
|
8
9
|
module DaVinciDTRTestKit
|
9
|
-
class
|
10
|
-
id :
|
10
|
+
class DTRSmartAppAdaptiveDinnerWorkflowGroup < Inferno::TestGroup
|
11
|
+
id :dtr_smart_app_adaptive_dinner_workflow
|
11
12
|
title 'Adaptive Questionnaire Workflow'
|
12
13
|
description %(
|
13
14
|
This test validates that a DTR SMART App client can perform a full DTR Adaptive Questionnaire workflow
|
@@ -32,7 +33,7 @@ module DaVinciDTRTestKit
|
|
32
33
|
)
|
33
34
|
|
34
35
|
group do
|
35
|
-
id :
|
36
|
+
id :dtr_smart_app_adaptive_retrieval
|
36
37
|
title 'Retrieving the Adaptive Questionnaire'
|
37
38
|
description %(
|
38
39
|
Inferno will wait for the client system to request a questionnaire using the
|
@@ -45,7 +46,7 @@ module DaVinciDTRTestKit
|
|
45
46
|
)
|
46
47
|
run_as_group
|
47
48
|
|
48
|
-
group from: :
|
49
|
+
group from: :dtr_smart_app_adaptive_initial_retrieval
|
49
50
|
group do
|
50
51
|
id :dtr_smart_app_initial_questionnaire_rendering
|
51
52
|
title 'Filling Out the Questionnaire'
|
@@ -57,13 +58,13 @@ module DaVinciDTRTestKit
|
|
57
58
|
)
|
58
59
|
|
59
60
|
# Test 1: attest to the pre-population of the name fields
|
60
|
-
test from: :
|
61
|
+
test from: :dtr_smart_app_prepopulation_attest
|
61
62
|
# Test 2: attest to the pre-population and edit of the location field
|
62
|
-
test from: :
|
63
|
+
test from: :dtr_smart_app_prepopulation_override_attest
|
63
64
|
end
|
64
65
|
end
|
65
66
|
|
66
|
-
group from: :
|
67
|
+
group from: :dtr_adaptive_followup_questions,
|
67
68
|
config: {
|
68
69
|
options: {
|
69
70
|
accepts_multiple_requests: true,
|
@@ -74,7 +75,7 @@ module DaVinciDTRTestKit
|
|
74
75
|
}
|
75
76
|
}
|
76
77
|
|
77
|
-
group from: :
|
78
|
+
group from: :dtr_adaptive_completion,
|
78
79
|
config: {
|
79
80
|
options: {
|
80
81
|
accepts_multiple_requests: true,
|
@@ -84,12 +85,17 @@ module DaVinciDTRTestKit
|
|
84
85
|
access_token: { name: :client_id }
|
85
86
|
}
|
86
87
|
}
|
87
|
-
group from: :
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
88
|
+
group from: :dtr_smart_app_saving_qr do
|
89
|
+
config(
|
90
|
+
options: {
|
91
|
+
adaptive: true,
|
92
|
+
qr_profile_url: 'http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaireresponse-adapt'
|
93
|
+
}
|
94
|
+
)
|
95
|
+
|
96
|
+
# Test 3: validate workflow-specific details such as pre-population and overrides
|
97
|
+
test from: :dtr_qr_prepopulation,
|
98
|
+
uses_request: :questionnaire_response_save
|
99
|
+
end
|
94
100
|
end
|
95
101
|
end
|