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.
Files changed (158) hide show
  1. checksums.yaml +4 -4
  2. data/config/presets/full_ehr_postman_dinner_order_example_postman.json +19 -0
  3. data/config/presets/full_ehr_postman_respiratory_device_example.json +15 -0
  4. data/config/presets/light_ehr_ref_server_local.json +105 -0
  5. data/config/presets/light_ehr_ref_server_prod.json +85 -0
  6. data/config/presets/payer_server_adaptive_client_flow.json +37 -0
  7. data/config/presets/payer_server_adaptive_manual_flow.json +44 -0
  8. data/config/presets/payer_server_run_against_smart_app_tests.json +35 -0
  9. data/config/presets/smart_app_postman_dinner_order_example.json +44 -0
  10. data/config/presets/smart_app_postman_respiratory_device_example.json +43 -0
  11. data/lib/davinci_dtr_test_kit/auth_groups/token_validation_test.rb +1 -1
  12. data/lib/davinci_dtr_test_kit/client_groups/custom_static/dtr_custom_questionnaire_expressions_test.rb +22 -0
  13. data/lib/davinci_dtr_test_kit/client_groups/custom_static/dtr_custom_questionnaire_extensions_test.rb +19 -0
  14. data/lib/davinci_dtr_test_kit/client_groups/custom_static/dtr_custom_questionnaire_libraries_test.rb +21 -0
  15. data/lib/davinci_dtr_test_kit/client_groups/custom_static/dtr_custom_questionnaire_package_validation_test.rb +39 -0
  16. data/lib/davinci_dtr_test_kit/client_groups/custom_static/dtr_full_ehr_custom_static_workflow_group.rb +121 -0
  17. data/lib/davinci_dtr_test_kit/client_groups/custom_static/dtr_smart_app_custom_static_workflow_group.rb +91 -0
  18. data/lib/davinci_dtr_test_kit/client_groups/dinner_adaptive/{dtr_adaptive_questionnaire_completion_group.rb → dtr_adaptive_completion_group.rb} +4 -4
  19. 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
  20. 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
  21. 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
  22. 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
  23. 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
  24. 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
  25. 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
  26. 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
  27. 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
  28. data/lib/davinci_dtr_test_kit/client_groups/dinner_adaptive/dtr_smart_app_adaptive_initial_retrieval_group.rb +24 -0
  29. 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
  30. 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
  31. 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
  32. 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
  33. data/lib/davinci_dtr_test_kit/client_groups/full_ehr/dtr_full_ehr_launch_attestation_test.rb +8 -3
  34. data/lib/davinci_dtr_test_kit/client_groups/full_ehr/dtr_full_ehr_prepopulation_attestation_test.rb +1 -1
  35. data/lib/davinci_dtr_test_kit/client_groups/full_ehr/dtr_full_ehr_prepopulation_override_attestation_test.rb +1 -1
  36. data/lib/davinci_dtr_test_kit/client_groups/full_ehr/dtr_full_ehr_questionnaire_package_request_test.rb +1 -1
  37. data/lib/davinci_dtr_test_kit/client_groups/full_ehr/dtr_full_ehr_questionnaire_response_conformance_test.rb +6 -1
  38. data/lib/davinci_dtr_test_kit/client_groups/full_ehr/dtr_full_ehr_questionnaire_response_correctness_test.rb +10 -22
  39. data/lib/davinci_dtr_test_kit/client_groups/full_ehr/dtr_full_ehr_saving_questionnaire_response_group.rb +4 -4
  40. data/lib/davinci_dtr_test_kit/client_groups/full_ehr/dtr_full_ehr_store_attestation_test.rb +1 -1
  41. data/lib/davinci_dtr_test_kit/client_groups/light_ehr/dtr_smart_ehr_launch.rb +18 -0
  42. data/lib/davinci_dtr_test_kit/client_groups/light_ehr/fhir_context_coverage_test.rb +42 -0
  43. data/lib/davinci_dtr_test_kit/client_groups/light_ehr/fhir_context_references_test.rb +60 -0
  44. data/lib/davinci_dtr_test_kit/client_groups/light_ehr/fhir_launch_context_test.rb +23 -0
  45. 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
  46. 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
  47. 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
  48. 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
  49. 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
  50. data/lib/davinci_dtr_test_kit/client_groups/respiratory/dtr_respiratory_rendering_group.rb +14 -0
  51. 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
  52. data/lib/davinci_dtr_test_kit/client_groups/shared/dtr_prepopulation_attestation_test.rb +31 -0
  53. data/lib/davinci_dtr_test_kit/client_groups/shared/dtr_prepopulation_override_attestation_test.rb +35 -0
  54. data/lib/davinci_dtr_test_kit/client_groups/shared/dtr_questionnaire_package_request_validation_test.rb +1 -1
  55. data/lib/davinci_dtr_test_kit/client_groups/shared/dtr_questionnaire_response_basic_conformance_test.rb +8 -4
  56. data/lib/davinci_dtr_test_kit/client_groups/shared/{dtr_questionnaire_response_pre_population_test.rb → dtr_questionnaire_response_prepopulation_test.rb} +2 -2
  57. data/lib/davinci_dtr_test_kit/client_groups/shared/dtr_rendering_attestation_test.rb +30 -0
  58. data/lib/davinci_dtr_test_kit/client_groups/smart_app/dtr_smart_app_prepopulation_attestation_test.rb +1 -1
  59. data/lib/davinci_dtr_test_kit/client_groups/smart_app/dtr_smart_app_prepopulation_override_attestation_test.rb +1 -1
  60. 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
  61. data/lib/davinci_dtr_test_kit/client_groups/smart_app/dtr_smart_app_questionnaire_response_correctness_test.rb +28 -0
  62. data/lib/davinci_dtr_test_kit/client_groups/smart_app/dtr_smart_app_questionnaire_response_save_test.rb +2 -2
  63. data/lib/davinci_dtr_test_kit/client_groups/smart_app/dtr_smart_app_saving_questionnaire_response_group.rb +3 -7
  64. data/lib/davinci_dtr_test_kit/cql_test.rb +58 -0
  65. data/lib/davinci_dtr_test_kit/docs/dtr_light_ehr_suite_description_v201.md +9 -6
  66. data/lib/davinci_dtr_test_kit/dtr_full_ehr_suite.rb +19 -6
  67. data/lib/davinci_dtr_test_kit/dtr_light_ehr_suite.rb +42 -36
  68. data/lib/davinci_dtr_test_kit/dtr_payer_server_suite.rb +0 -2
  69. data/lib/davinci_dtr_test_kit/dtr_questionnaire_response_validation.rb +50 -4
  70. data/lib/davinci_dtr_test_kit/dtr_smart_app_suite.rb +9 -9
  71. data/lib/davinci_dtr_test_kit/endpoints/mock_authorization.rb +10 -2
  72. data/lib/davinci_dtr_test_kit/endpoints/mock_ehr.rb +17 -1
  73. data/lib/davinci_dtr_test_kit/endpoints/mock_payer/questionnaire_package_endpoint.rb +7 -1
  74. data/lib/davinci_dtr_test_kit/fixtures.rb +6 -6
  75. data/lib/davinci_dtr_test_kit/igs/davinci_dtr_2.0.1.tgz +0 -0
  76. data/lib/davinci_dtr_test_kit/metadata.rb +104 -0
  77. data/lib/davinci_dtr_test_kit/payer_server_groups/adaptive_form_libraries_test.rb +1 -1
  78. data/lib/davinci_dtr_test_kit/payer_server_groups/adaptive_form_questionnaire_expressions_test.rb +1 -1
  79. data/lib/davinci_dtr_test_kit/payer_server_groups/adaptive_form_questionnaire_extensions_test.rb +1 -1
  80. data/lib/davinci_dtr_test_kit/payer_server_groups/payer_server_adaptive_response_bundles_validation_test.rb +1 -1
  81. data/lib/davinci_dtr_test_kit/payer_server_groups/payer_server_adaptive_response_search_validation_test.rb +1 -1
  82. data/lib/davinci_dtr_test_kit/payer_server_groups/payer_server_adaptive_response_validation_test.rb +4 -15
  83. data/lib/davinci_dtr_test_kit/payer_server_groups/payer_server_static_group.rb +1 -1
  84. data/lib/davinci_dtr_test_kit/payer_server_groups/static_form_libraries_test.rb +1 -1
  85. data/lib/davinci_dtr_test_kit/payer_server_groups/static_form_questionnaire_expressions_test.rb +1 -1
  86. data/lib/davinci_dtr_test_kit/payer_server_groups/static_form_questionnaire_extensions_test.rb +1 -1
  87. data/lib/davinci_dtr_test_kit/payer_server_groups/static_form_request_test.rb +1 -1
  88. data/lib/davinci_dtr_test_kit/payer_server_groups/static_form_response_validation_test.rb +4 -15
  89. data/lib/davinci_dtr_test_kit/profiles/communication_request/communication_request_must_support_test.rb +46 -0
  90. data/lib/davinci_dtr_test_kit/profiles/communication_request/communication_request_read.rb +6 -3
  91. data/lib/davinci_dtr_test_kit/profiles/communication_request/communication_request_validation.rb +9 -8
  92. data/lib/davinci_dtr_test_kit/profiles/communication_request/metadata.yml +135 -0
  93. data/lib/davinci_dtr_test_kit/profiles/communication_request_group.rb +9 -0
  94. data/lib/davinci_dtr_test_kit/profiles/coverage/coverage_must_support_test.rb +54 -0
  95. data/lib/davinci_dtr_test_kit/profiles/coverage/coverage_read.rb +5 -3
  96. data/lib/davinci_dtr_test_kit/profiles/coverage/coverage_validation.rb +9 -8
  97. data/lib/davinci_dtr_test_kit/profiles/coverage/metadata.yml +133 -0
  98. data/lib/davinci_dtr_test_kit/profiles/coverage_group.rb +8 -0
  99. data/lib/davinci_dtr_test_kit/profiles/device_request/device_request_must_support_test.rb +45 -0
  100. data/lib/davinci_dtr_test_kit/profiles/device_request/device_request_read.rb +6 -3
  101. data/lib/davinci_dtr_test_kit/profiles/device_request/device_request_validation.rb +9 -8
  102. data/lib/davinci_dtr_test_kit/profiles/device_request/metadata.yml +130 -0
  103. data/lib/davinci_dtr_test_kit/profiles/device_request_group.rb +9 -0
  104. data/lib/davinci_dtr_test_kit/profiles/encounter/encounter_must_support_test.rb +58 -0
  105. data/lib/davinci_dtr_test_kit/profiles/encounter/encounter_read.rb +6 -3
  106. data/lib/davinci_dtr_test_kit/profiles/encounter/encounter_validation.rb +9 -8
  107. data/lib/davinci_dtr_test_kit/profiles/encounter/metadata.yml +169 -0
  108. data/lib/davinci_dtr_test_kit/profiles/encounter_group.rb +9 -0
  109. data/lib/davinci_dtr_test_kit/profiles/medication_request/medication_request_must_support_test.rb +50 -0
  110. data/lib/davinci_dtr_test_kit/profiles/medication_request/medication_request_read.rb +6 -3
  111. data/lib/davinci_dtr_test_kit/profiles/medication_request/medication_request_validation.rb +9 -8
  112. data/lib/davinci_dtr_test_kit/profiles/medication_request/metadata.yml +159 -0
  113. data/lib/davinci_dtr_test_kit/profiles/medication_request_group.rb +9 -0
  114. data/lib/davinci_dtr_test_kit/profiles/nutrition_order/metadata.yml +94 -0
  115. data/lib/davinci_dtr_test_kit/profiles/nutrition_order/nutrition_order_must_support_test.rb +45 -0
  116. data/lib/davinci_dtr_test_kit/profiles/nutrition_order/nutrition_order_read.rb +6 -3
  117. data/lib/davinci_dtr_test_kit/profiles/nutrition_order/nutrition_order_validation.rb +9 -8
  118. data/lib/davinci_dtr_test_kit/profiles/nutrition_order_group.rb +9 -0
  119. data/lib/davinci_dtr_test_kit/profiles/questionnaire_response/questionnaire_response_context_search.rb +3 -1
  120. data/lib/davinci_dtr_test_kit/profiles/questionnaire_response/questionnaire_response_create.rb +1 -0
  121. data/lib/davinci_dtr_test_kit/profiles/questionnaire_response/questionnaire_response_must_support_test.rb +54 -0
  122. data/lib/davinci_dtr_test_kit/profiles/questionnaire_response/questionnaire_response_patient_search.rb +3 -1
  123. data/lib/davinci_dtr_test_kit/profiles/questionnaire_response/questionnaire_response_read.rb +2 -1
  124. data/lib/davinci_dtr_test_kit/profiles/questionnaire_response/questionnaire_response_update.rb +1 -0
  125. data/lib/davinci_dtr_test_kit/profiles/questionnaire_response/questionnaire_response_validation.rb +1 -1
  126. data/lib/davinci_dtr_test_kit/profiles/questionnaire_response_group.rb +11 -1
  127. data/lib/davinci_dtr_test_kit/profiles/service_request/metadata.yml +140 -0
  128. data/lib/davinci_dtr_test_kit/profiles/service_request/service_request_must_support_test.rb +47 -0
  129. data/lib/davinci_dtr_test_kit/profiles/service_request/service_request_read.rb +6 -3
  130. data/lib/davinci_dtr_test_kit/profiles/service_request/service_request_validation.rb +9 -8
  131. data/lib/davinci_dtr_test_kit/profiles/service_request_group.rb +9 -0
  132. data/lib/davinci_dtr_test_kit/profiles/task/metadata.yml +165 -0
  133. data/lib/davinci_dtr_test_kit/profiles/task/task_create.rb +1 -0
  134. data/lib/davinci_dtr_test_kit/profiles/task/task_must_support_test.rb +46 -0
  135. data/lib/davinci_dtr_test_kit/profiles/task/task_read.rb +6 -3
  136. data/lib/davinci_dtr_test_kit/profiles/task/task_update.rb +1 -0
  137. data/lib/davinci_dtr_test_kit/profiles/task/task_validation.rb +9 -8
  138. data/lib/davinci_dtr_test_kit/profiles/task_group.rb +11 -1
  139. data/lib/davinci_dtr_test_kit/profiles/vision_prescription/metadata.yml +107 -0
  140. data/lib/davinci_dtr_test_kit/profiles/vision_prescription/vision_prescription_must_support_test.rb +54 -0
  141. data/lib/davinci_dtr_test_kit/profiles/vision_prescription/vision_prescription_read.rb +6 -3
  142. data/lib/davinci_dtr_test_kit/profiles/vision_prescription/vision_prescription_validation.rb +9 -8
  143. data/lib/davinci_dtr_test_kit/profiles/vision_prescription_group.rb +9 -0
  144. data/lib/davinci_dtr_test_kit/read_test.rb +5 -0
  145. data/lib/davinci_dtr_test_kit/requirements/davinci-dtr-test-kit_out_of_scope_requirements.csv +13 -0
  146. data/lib/davinci_dtr_test_kit/requirements/davinci-dtr-test-kit_requirements.csv +374 -0
  147. data/lib/davinci_dtr_test_kit/requirements/generated/davinci-dtr-test-kit_requirements_coverage.csv +372 -0
  148. data/lib/davinci_dtr_test_kit/urls.rb +1 -0
  149. data/lib/davinci_dtr_test_kit/version.rb +2 -1
  150. data/lib/davinci_dtr_test_kit.rb +2 -0
  151. data/lib/inferno_requirements_tools/ext/inferno_core/runnable.rb +22 -0
  152. data/lib/inferno_requirements_tools/rake/rakefile_template +31 -0
  153. data/lib/inferno_requirements_tools/tasks/requirements_coverage.rb +284 -0
  154. data/lib/requirements_config.yaml +25 -0
  155. metadata +88 -37
  156. data/lib/davinci_dtr_test_kit/client_groups/dinner_adaptive/dtr_smart_app_adaptive_questionnaire_initial_retrieval_group.rb +0 -24
  157. data/lib/davinci_dtr_test_kit/client_groups/resp_assist_device/dtr_questionnaire_rendering_group.rb +0 -14
  158. 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 TokentRequestTest < Inferno::Test
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
@@ -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 'dtr_adaptive_questionnaire_next_question_retrieval_group'
1
+ require_relative 'dtr_adaptive_next_question_retrieval_group'
2
2
 
3
3
  module DaVinciDTRTestKit
4
- class DTRAdaptiveQuestionnaireCompletionGroup < Inferno::TestGroup
5
- id :dtr_adaptive_questionnaire_completion
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: :dtr_adaptive_questionnaire_next_question_retrieval
21
+ group from: :dtr_adaptive_next_question_retrieval
22
22
  end
23
23
  end
@@ -1,8 +1,8 @@
1
- require_relative 'dtr_adaptive_questionnaire_next_question_retrieval_group'
1
+ require_relative 'dtr_adaptive_next_question_retrieval_group'
2
2
 
3
3
  module DaVinciDTRTestKit
4
- class DTRAdaptiveQuestionnaireFollowupQuestionsGroup < Inferno::TestGroup
5
- id :dtr_adaptive_questionnaire_followup_questions
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: :dtr_adaptive_questionnaire_next_question_retrieval
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 DTRAdaptiveQuestionnaireNextQuestionRequestTest < Inferno::Test
4
+ class DTRAdaptiveNextQuestionRequestTest < Inferno::Test
5
5
  include URLs
6
6
 
7
- id :dtr_adaptive_questionnaire_next_question_request
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 DTRAdaptiveQuestionnaireNextQuestionRequestValidationTest < Inferno::Test
4
+ class DTRAdaptiveNextQuestionRequestValidationTest < Inferno::Test
5
5
  include URLs
6
6
 
7
- id :dtr_next_question_request_validation
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 'dtr_adaptive_questionnaire_next_question_request_test'
2
- require_relative 'dtr_adaptive_questionnaire_next_question_request_validation_test'
3
- require_relative 'dtr_adaptive_questionnaire_response_validation_test'
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 DTRAdaptiveQuestionnaireNextQuestionRetrievalGroup < Inferno::TestGroup
7
- id :dtr_adaptive_questionnaire_next_question_retrieval
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: :dtr_adaptive_questionnaire_next_question_request
17
+ test from: :dtr_adaptive_next_question_request
18
18
  # Test 2: validate the $next-question request
19
- test from: :dtr_next_question_request_validation
19
+ test from: :dtr_adaptive_next_question_request_validation
20
20
  # Test 3: validate the QuestionnaireResponse in the input parameter
21
- test from: :dtr_adaptive_questionnaire_response_validation
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 DTRAdaptiveQuestionnaireResponseValidationTest < Inferno::Test
5
+ class DTRAdaptiveResponseValidationTest < Inferno::Test
6
6
  include URLs
7
7
  include DTRQuestionnaireResponseValidation
8
8
 
9
- id :dtr_adaptive_questionnaire_response_validation
9
+ id :dtr_adaptive_response_validation
10
10
  title 'Adaptive QuestionnaireResponse is valid'
11
11
  description %(
12
- This test validates the conformance of the Adative QuestionnaireResponse to 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 'dtr_full_ehr_adaptive_questionnaire_initial_retrieval_group'
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 'dtr_adaptive_questionnaire_followup_questions_group'
6
- require_relative 'dtr_adaptive_questionnaire_completion_group'
5
+ require_relative 'dtr_adaptive_followup_questions_group'
6
+ require_relative 'dtr_adaptive_completion_group'
7
7
 
8
8
  module DaVinciDTRTestKit
9
- class DTRFullEHRAdaptiveDinnerQuestionnaireWorkflowGroup < Inferno::TestGroup
10
- id :dtr_full_ehr_adaptive_dinner_questionnaire_workflow
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 :dtr_full_ehr_adaptive_questionnaire_retrieval
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: :dtr_full_ehr_adaptive_questionnaire_initial_retrieval
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 qustionnaire is rendered, and
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: :dtr_full_ehr_prepopulation_attestation
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: :dtr_full_ehr_prepopulation_override_attestation
56
+ test from: :dtr_full_ehr_prepopulation_override_attest
57
57
  end
58
58
  end
59
59
 
60
- group from: :dtr_adaptive_questionnaire_followup_questions,
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: :dtr_adaptive_questionnaire_completion,
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 'dtr_full_ehr_adaptive_questionnaire_request_test'
3
+ require_relative 'dtr_full_ehr_adaptive_request_test'
4
4
  require_relative '../shared/dtr_questionnaire_package_request_validation_test'
5
- require_relative 'dtr_adaptive_questionnaire_next_question_request_validation_test'
6
- require_relative 'dtr_adaptive_questionnaire_response_validation_test'
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 DTRFullEHRAdaptiveQuestionnaireInitialRetrievalGroup < Inferno::TestGroup
10
- id :dtr_full_ehr_adaptive_questionnaire_initial_retrieval
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: :dtr_full_ehr_launch_attestation
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: :dtr_full_ehr_adaptive_questionnaire_request
19
+ test from: :dtr_full_ehr_adaptive_request
20
20
  # Test 2: validate the $questionnaire-package request body
21
- test from: :dtr_questionnaire_package_request_validation
21
+ test from: :dtr_qp_request_validation
22
22
  # Test 3: validate the $next-question request body
23
- test from: :dtr_next_question_request_validation
23
+ test from: :dtr_adaptive_next_question_request_validation
24
24
  # Test 4: validate the QuestionnaireResponse in the input parameter
25
- test from: :dtr_adaptive_questionnaire_response_validation
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 DTRFullEHRAdaptiveQuestionnaireRequestTest < Inferno::Test
4
+ class DTRFullEHRAdaptiveRequestTest < Inferno::Test
5
5
  include URLs
6
6
 
7
- id :dtr_full_ehr_adaptive_questionnaire_request
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 'dtr_smart_app_adaptive_questionnaire_initial_retrieval_group'
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 'dtr_adaptive_questionnaire_followup_questions_group'
6
- require_relative 'dtr_adaptive_questionnaire_completion_group'
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 DTRSmartAppAdaptiveDinnerQuestionnaireWorkflowGroup < Inferno::TestGroup
10
- id :dtr_smart_app_adaptive_dinner_questionnaire_workflow
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 :dtr_smart_app_adaptive_questionnaire_retrieval
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: :dtr_smart_app_adaptive_questionnaire_initial_retrieval
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: :dtr_smart_app_prepopulation_attestation
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: :dtr_smart_app_prepopulation_override_attestation
63
+ test from: :dtr_smart_app_prepopulation_override_attest
63
64
  end
64
65
  end
65
66
 
66
- group from: :dtr_adaptive_questionnaire_followup_questions,
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: :dtr_adaptive_questionnaire_completion,
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: :dtr_smart_app_saving_questionnaire_response,
88
- config: {
89
- options: {
90
- adaptive: true,
91
- qr_profile_url: 'http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaireresponse-adapt'
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