davinci_dtr_test_kit 0.17.1 → 0.18.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 (311) hide show
  1. checksums.yaml +4 -4
  2. data/config/presets/v220_full_ehr_suite_run_against_payer_suite.json.erb +19 -0
  3. data/config/presets/v220_payer_suite_run_against_full_ehr_suite.json.erb +76 -0
  4. data/lib/davinci_dtr_test_kit/cross_suite/fhirpath_utils.rb +52 -0
  5. data/lib/davinci_dtr_test_kit/cross_suite/generated/v2.2.0/dtr_base_questionnaire/metadata.yml +212 -0
  6. data/lib/davinci_dtr_test_kit/cross_suite/generated/v2.2.0/dtr_q_package_bundle/metadata.yml +39 -0
  7. data/lib/davinci_dtr_test_kit/cross_suite/generated/v2.2.0/dtr_qpackage_output_parameters/metadata.yml +30 -0
  8. data/lib/davinci_dtr_test_kit/cross_suite/generated/v2.2.0/dtr_questionnaire_adapt/metadata.yml +17 -0
  9. data/lib/davinci_dtr_test_kit/cross_suite/generated/v2.2.0/dtr_questionnaire_adapt_search/metadata.yml +91 -0
  10. data/lib/davinci_dtr_test_kit/cross_suite/generated/v2.2.0/dtr_std_questionnaire/metadata.yml +17 -0
  11. data/lib/davinci_dtr_test_kit/cross_suite/generated/v2.2.0/metadata.yml +403 -0
  12. data/lib/davinci_dtr_test_kit/cross_suite/generated_profile_metadata.rb +22 -0
  13. data/lib/davinci_dtr_test_kit/cross_suite/response_selection_utils.rb +85 -0
  14. data/lib/davinci_dtr_test_kit/cross_suite/v2.2.0/dtr_conformance_verification.rb +21 -0
  15. data/lib/davinci_dtr_test_kit/cross_suite/v2.2.0/multi_request_message_helper.rb +35 -0
  16. data/lib/davinci_dtr_test_kit/cross_suite/v2.2.0/questionnaire_helper.rb +162 -0
  17. data/lib/davinci_dtr_test_kit/{dtr_client_options.rb → full_ehr/dtr_full_ehr_options.rb} +1 -1
  18. data/lib/davinci_dtr_test_kit/{endpoints → full_ehr/endpoints}/mock_payer.rb +9 -3
  19. data/lib/davinci_dtr_test_kit/{endpoints → full_ehr/endpoints}/mock_udap_smart_server/token_endpoint.rb +2 -2
  20. data/lib/davinci_dtr_test_kit/full_ehr/fixture_loader.rb +37 -0
  21. data/lib/davinci_dtr_test_kit/full_ehr/fixtures/dinner_adaptive/dinner_order_adaptive_next_question_template.json +243 -0
  22. data/lib/davinci_dtr_test_kit/full_ehr/fixtures/dinner_adaptive/parameters_questionnaire_dinner_order_adaptive.json +104 -0
  23. data/lib/davinci_dtr_test_kit/full_ehr/fixtures/dinner_static/parameters_questionnaire_dinner_order_static.json +291 -0
  24. data/lib/davinci_dtr_test_kit/full_ehr/fixtures/empty_templates/next_question_template_empty.json +1 -0
  25. data/lib/davinci_dtr_test_kit/full_ehr/fixtures/empty_templates/parameters_questionnaire_package_empty.json +9 -0
  26. data/lib/davinci_dtr_test_kit/full_ehr/short_circuit_interaction_verification.rb +73 -0
  27. data/lib/davinci_dtr_test_kit/{client_groups/adaptive_questionnaire/custom → full_ehr/v2.0.1/adaptive_custom}/dtr_full_ehr_custom_adaptive_request_test.rb +1 -1
  28. data/lib/davinci_dtr_test_kit/{client_groups/adaptive_questionnaire/dinner_order → full_ehr/v2.0.1/adaptive_dinner}/dtr_adaptive_next_question_retrieval_group.rb +3 -3
  29. data/lib/davinci_dtr_test_kit/{client_groups/adaptive_questionnaire/dinner_order → full_ehr/v2.0.1/adaptive_dinner}/dtr_full_ehr_adaptive_initial_retrieval_group.rb +5 -5
  30. data/lib/davinci_dtr_test_kit/{client_groups/adaptive_questionnaire → full_ehr/v2.0.1/adaptive_interaction}/dtr_adaptive_next_question_request_test.rb +1 -1
  31. data/lib/davinci_dtr_test_kit/{client_groups/adaptive_questionnaire → full_ehr/v2.0.1/adaptive_interaction}/dtr_adaptive_next_question_request_validation_test.rb +1 -1
  32. data/lib/davinci_dtr_test_kit/{client_groups/adaptive_questionnaire → full_ehr/v2.0.1/adaptive_interaction}/dtr_adaptive_response_validation_test.rb +2 -2
  33. data/lib/davinci_dtr_test_kit/{client_groups/adaptive_questionnaire/dinner_order → full_ehr/v2.0.1}/dtr_full_ehr_adaptive_dinner_workflow_group.rb +7 -7
  34. data/lib/davinci_dtr_test_kit/{client_groups/adaptive_questionnaire/custom → full_ehr/v2.0.1}/dtr_full_ehr_custom_adaptive_workflow_group.rb +14 -14
  35. data/lib/davinci_dtr_test_kit/{client_groups/custom_static → full_ehr/v2.0.1}/dtr_full_ehr_custom_static_workflow_group.rb +11 -11
  36. data/lib/davinci_dtr_test_kit/{client_groups/must_support → full_ehr/v2.0.1}/dtr_full_ehr_questionnaire_must_support_group.rb +6 -6
  37. data/lib/davinci_dtr_test_kit/{client_groups/dinner_static → full_ehr/v2.0.1}/dtr_full_ehr_static_dinner_workflow_group.rb +7 -7
  38. data/lib/davinci_dtr_test_kit/{dtr_full_ehr_suite.rb → full_ehr/v2.0.1/dtr_full_ehr_suite.rb} +19 -20
  39. data/lib/davinci_dtr_test_kit/{client_groups/payer_registration/dtr_client_registration_group.rb → full_ehr/v2.0.1/dtr_payer_registration_group.rb} +8 -8
  40. data/lib/davinci_dtr_test_kit/{endpoints/mock_payer/next_question_endpoint.rb → full_ehr/v2.0.1/full_ehr_next_question_endpoint.rb} +18 -7
  41. data/lib/davinci_dtr_test_kit/{endpoints/mock_payer/questionnaire_package_endpoint.rb → full_ehr/v2.0.1/full_ehr_questionnaire_package_endpoint.rb} +22 -7
  42. data/lib/davinci_dtr_test_kit/{client_groups → full_ehr/v2.0.1}/must_support/dtr_full_ehr_ms_questionnaire_package_request_test.rb +1 -1
  43. data/lib/davinci_dtr_test_kit/{client_groups → full_ehr/v2.0.1}/must_support/dtr_must_support_attestation_test.rb +1 -1
  44. data/lib/davinci_dtr_test_kit/{client_groups → full_ehr/v2.0.1}/must_support/dtr_questionnaire_must_support_test.rb +1 -1
  45. data/lib/davinci_dtr_test_kit/{client_groups → full_ehr/v2.0.1}/payer_registration/configuration_display_smart_test.rb +1 -1
  46. data/lib/davinci_dtr_test_kit/{client_groups → full_ehr/v2.0.1}/payer_registration/configuration_display_udap_test.rb +1 -1
  47. data/lib/davinci_dtr_test_kit/{client_groups → full_ehr/v2.0.1}/shared/dtr_custom_questionnaire_expressions_test.rb +1 -1
  48. data/lib/davinci_dtr_test_kit/{client_groups → full_ehr/v2.0.1}/shared/dtr_custom_questionnaire_extensions_test.rb +1 -1
  49. data/lib/davinci_dtr_test_kit/{client_groups → full_ehr/v2.0.1}/shared/dtr_custom_questionnaire_libraries_test.rb +1 -1
  50. data/lib/davinci_dtr_test_kit/{client_groups → full_ehr/v2.0.1}/shared/dtr_custom_questionnaire_package_validation_test.rb +1 -1
  51. data/lib/davinci_dtr_test_kit/{client_groups/full_ehr → full_ehr/v2.0.1/shared}/dtr_full_ehr_adaptive_request_test.rb +1 -1
  52. data/lib/davinci_dtr_test_kit/{client_groups/full_ehr → full_ehr/v2.0.1/shared}/dtr_full_ehr_launch_attestation_test.rb +1 -1
  53. data/lib/davinci_dtr_test_kit/{client_groups/full_ehr → full_ehr/v2.0.1/shared}/dtr_full_ehr_prepopulation_attestation_test.rb +1 -1
  54. data/lib/davinci_dtr_test_kit/{client_groups/full_ehr → full_ehr/v2.0.1/shared}/dtr_full_ehr_prepopulation_override_attestation_test.rb +1 -1
  55. data/lib/davinci_dtr_test_kit/{client_groups/full_ehr → full_ehr/v2.0.1/shared}/dtr_full_ehr_questionnaire_package_request_test.rb +1 -1
  56. data/lib/davinci_dtr_test_kit/{client_groups/full_ehr → full_ehr/v2.0.1/shared}/dtr_full_ehr_questionnaire_response_conformance_test.rb +1 -1
  57. data/lib/davinci_dtr_test_kit/{client_groups/full_ehr → full_ehr/v2.0.1/shared}/dtr_full_ehr_questionnaire_response_correctness_test.rb +1 -1
  58. data/lib/davinci_dtr_test_kit/{client_groups/full_ehr → full_ehr/v2.0.1/shared}/dtr_full_ehr_store_attestation_test.rb +1 -1
  59. data/lib/davinci_dtr_test_kit/{client_groups → full_ehr/v2.0.1}/shared/dtr_prepopulation_attestation_test.rb +1 -1
  60. data/lib/davinci_dtr_test_kit/{client_groups → full_ehr/v2.0.1}/shared/dtr_prepopulation_override_attestation_test.rb +1 -1
  61. data/lib/davinci_dtr_test_kit/{client_groups → full_ehr/v2.0.1}/shared/dtr_questionnaire_package_request_validation_test.rb +1 -1
  62. data/lib/davinci_dtr_test_kit/{client_groups → full_ehr/v2.0.1}/shared/dtr_questionnaire_response_basic_conformance_test.rb +2 -2
  63. data/lib/davinci_dtr_test_kit/{client_groups → full_ehr/v2.0.1}/shared/dtr_questionnaire_response_prepopulation_test.rb +1 -1
  64. data/lib/davinci_dtr_test_kit/{client_groups → full_ehr/v2.0.1}/shared/dtr_rendering_attestation_test.rb +1 -1
  65. data/lib/davinci_dtr_test_kit/{client_groups/dinner_static → full_ehr/v2.0.1/static_dinner}/dtr_static_dinner_enabled_questions_attestation_test.rb +1 -1
  66. data/lib/davinci_dtr_test_kit/full_ehr/v2.2.0/dtr_full_ehr_abstract_adaptive_group.rb +87 -0
  67. data/lib/davinci_dtr_test_kit/full_ehr/v2.2.0/dtr_full_ehr_abstract_standard_group.rb +59 -0
  68. data/lib/davinci_dtr_test_kit/full_ehr/v2.2.0/dtr_full_ehr_suite.rb +145 -0
  69. data/lib/davinci_dtr_test_kit/full_ehr/v2.2.0/dtr_full_ehr_suite_description_v220.md +254 -0
  70. data/lib/davinci_dtr_test_kit/full_ehr/v2.2.0/full_ehr_next_question_endpoint.rb +391 -0
  71. data/lib/davinci_dtr_test_kit/full_ehr/v2.2.0/full_ehr_questionnaire_package_endpoint.rb +206 -0
  72. data/lib/davinci_dtr_test_kit/full_ehr/v2.2.0/interaction/adaptive_questionnaires_completed_test.rb +108 -0
  73. data/lib/davinci_dtr_test_kit/full_ehr/v2.2.0/interaction/interaction_wait_test.rb +177 -0
  74. data/lib/davinci_dtr_test_kit/full_ehr/v2.2.0/interaction/ui_display_and_interaction_attestation_test.rb +132 -0
  75. data/lib/davinci_dtr_test_kit/full_ehr/v2.2.0/must_support/dtr_additional_questionnaires_interaction_group.rb +74 -0
  76. data/lib/davinci_dtr_test_kit/full_ehr/v2.2.0/must_support/dtr_questionnaire_adaptive_must_support_test.rb +45 -0
  77. data/lib/davinci_dtr_test_kit/full_ehr/v2.2.0/must_support/dtr_questionnaire_base_must_support_test.rb +43 -0
  78. data/lib/davinci_dtr_test_kit/full_ehr/v2.2.0/must_support/dtr_questionnaire_standard_must_support_test.rb +45 -0
  79. data/lib/davinci_dtr_test_kit/full_ehr/v2.2.0/next_question_template_questionnaires.rb +21 -0
  80. data/lib/davinci_dtr_test_kit/full_ehr/v2.2.0/request/dtr_next_question_request_validation_test.rb +85 -0
  81. data/lib/davinci_dtr_test_kit/full_ehr/v2.2.0/request/dtr_questionnaire_package_request_validation_test.rb +89 -0
  82. data/lib/davinci_dtr_test_kit/full_ehr/v2.2.0/response/dtr_next_question_response_validation_test.rb +85 -0
  83. data/lib/davinci_dtr_test_kit/full_ehr/v2.2.0/response/dtr_questionnaire_package_response_validation_test.rb +77 -0
  84. data/lib/davinci_dtr_test_kit/full_ehr/v2.2.0/workflows/dtr_full_ehr_workflow_adaptive_group.rb +24 -0
  85. data/lib/davinci_dtr_test_kit/full_ehr/v2.2.0/workflows/dtr_full_ehr_workflow_standard_group.rb +21 -0
  86. data/lib/davinci_dtr_test_kit/generator/ig_metadata.rb +21 -0
  87. data/lib/davinci_dtr_test_kit/generator/profile_metadata_extractor.rb +57 -0
  88. data/lib/davinci_dtr_test_kit/generator.rb +117 -0
  89. data/lib/davinci_dtr_test_kit/igs/davinci_dtr_2.2.0.tgz +0 -0
  90. data/lib/davinci_dtr_test_kit/{dtr_options.rb → light_ehr/dtr_light_ehr_options.rb} +1 -1
  91. data/lib/davinci_dtr_test_kit/{dtr_light_ehr_suite.rb → light_ehr/v2.0.1/dtr_light_ehr_suite.rb} +8 -9
  92. data/lib/davinci_dtr_test_kit/{client_groups/light_ehr → light_ehr/v2.0.1}/dtr_light_ehr_supported_endpoints_group.rb +5 -5
  93. data/lib/davinci_dtr_test_kit/{client_groups/light_ehr → light_ehr/v2.0.1}/dtr_smart_ehr_launch.rb +3 -3
  94. data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/communication_request/communication_request_read.rb +1 -1
  95. data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/coverage/coverage_read.rb +1 -1
  96. data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/device_request/device_request_read.rb +1 -1
  97. data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/encounter/encounter_read.rb +1 -1
  98. data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/medication_request/medication_request_read.rb +1 -1
  99. data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/nutrition_order/nutrition_order_read.rb +1 -1
  100. data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/questionnaire_response/questionnaire_response_create.rb +1 -1
  101. data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/questionnaire_response/questionnaire_response_update.rb +1 -1
  102. data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/service_request/service_request_read.rb +1 -1
  103. data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/task/task_create.rb +1 -1
  104. data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/task/task_read.rb +1 -1
  105. data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/task/task_update.rb +1 -1
  106. data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/vision_prescription/vision_prescription_read.rb +1 -1
  107. data/lib/davinci_dtr_test_kit/{client_groups/light_ehr → light_ehr/v2.0.1/supported_endpoints}/dtr_light_ehr_supported_payers_accept_header_test.rb +2 -2
  108. data/lib/davinci_dtr_test_kit/{client_groups/light_ehr → light_ehr/v2.0.1/supported_endpoints}/dtr_light_ehr_supported_payers_config_test.rb +1 -1
  109. data/lib/davinci_dtr_test_kit/{client_groups/light_ehr → light_ehr/v2.0.1/supported_endpoints}/dtr_light_ehr_supported_payers_endpoint_test.rb +1 -1
  110. data/lib/davinci_dtr_test_kit/{client_groups/light_ehr → light_ehr/v2.0.1/supported_endpoints}/dtr_light_ehr_supported_payers_use_test.rb +1 -1
  111. data/lib/davinci_dtr_test_kit/{client_groups/light_ehr → light_ehr/v2.0.1/supported_endpoints}/dtr_light_ehr_supported_payers_user_response_test.rb +2 -2
  112. data/lib/davinci_dtr_test_kit/metadata.rb +13 -68
  113. data/lib/davinci_dtr_test_kit/requirements/davinci_dtr_test_kit_requirements.csv +216 -0
  114. data/lib/davinci_dtr_test_kit/requirements/generated/dtr_full_ehr_requirements_coverage.csv +1 -1
  115. data/lib/davinci_dtr_test_kit/requirements/generated/dtr_full_ehr_v220_requirements_coverage.csv +1 -0
  116. data/lib/davinci_dtr_test_kit/requirements/generated/dtr_light_ehr_requirements_coverage.csv +1 -1
  117. data/lib/davinci_dtr_test_kit/requirements/generated/dtr_payer_server_requirements_coverage.csv +1 -1
  118. data/lib/davinci_dtr_test_kit/requirements/generated/dtr_payer_server_v220_requirements_coverage.csv +114 -0
  119. data/lib/davinci_dtr_test_kit/requirements/generated/dtr_smart_app_requirements_coverage.csv +1 -1
  120. data/lib/davinci_dtr_test_kit/requirements/hl7.fhir.us.davinci-dtr_2.2.0_requirements.xlsx +0 -0
  121. data/lib/davinci_dtr_test_kit/{endpoints/mock_payer → server/endpoints}/next_question_proxy_endpoint.rb +2 -0
  122. data/lib/davinci_dtr_test_kit/{endpoints/mock_payer → server/endpoints}/questionnaire_package_proxy_endpoint.rb +2 -0
  123. data/lib/davinci_dtr_test_kit/{payer_server_groups → server/v2.0.1/adaptive_forms}/adaptive_form_libraries_test.rb +2 -1
  124. data/lib/davinci_dtr_test_kit/{payer_server_groups → server/v2.0.1/adaptive_forms}/adaptive_form_questionnaire_expressions_test.rb +2 -1
  125. data/lib/davinci_dtr_test_kit/{payer_server_groups → server/v2.0.1/adaptive_forms}/adaptive_form_questionnaire_extensions_test.rb +2 -1
  126. data/lib/davinci_dtr_test_kit/{payer_server_groups → server/v2.0.1/adaptive_forms}/adaptive_next_questionnaire_expressions_test.rb +2 -1
  127. data/lib/davinci_dtr_test_kit/{payer_server_groups → server/v2.0.1/adaptive_forms}/adaptive_next_questionnaire_extensions_test.rb +2 -1
  128. data/lib/davinci_dtr_test_kit/{payer_server_groups → server/v2.0.1/adaptive_forms}/payer_server_adaptive_request_test.rb +1 -1
  129. data/lib/davinci_dtr_test_kit/{payer_server_groups → server/v2.0.1/adaptive_forms}/payer_server_adaptive_request_validation_test.rb +2 -1
  130. data/lib/davinci_dtr_test_kit/{payer_server_groups → server/v2.0.1/adaptive_forms}/payer_server_adaptive_response_bundles_validation_test.rb +2 -1
  131. data/lib/davinci_dtr_test_kit/{payer_server_groups → server/v2.0.1/adaptive_forms}/payer_server_adaptive_response_search_validation_test.rb +2 -1
  132. data/lib/davinci_dtr_test_kit/{payer_server_groups → server/v2.0.1/adaptive_forms}/payer_server_adaptive_response_validation_test.rb +3 -2
  133. data/lib/davinci_dtr_test_kit/{payer_server_groups → server/v2.0.1/adaptive_forms}/payer_server_next_request_validation_test.rb +2 -1
  134. data/lib/davinci_dtr_test_kit/{payer_server_groups → server/v2.0.1/adaptive_forms}/payer_server_next_response_validation_test.rb +2 -1
  135. data/lib/davinci_dtr_test_kit/{dtr_payer_server_suite.rb → server/v2.0.1/dtr_payer_server_suite.rb} +9 -10
  136. data/lib/davinci_dtr_test_kit/{payer_server_groups → server/v2.0.1}/payer_server_adaptive_group.rb +13 -13
  137. data/lib/davinci_dtr_test_kit/{payer_server_groups → server/v2.0.1}/payer_server_static_group.rb +6 -6
  138. data/lib/davinci_dtr_test_kit/{payer_server_groups → server/v2.0.1/static_forms}/static_form_libraries_test.rb +2 -1
  139. data/lib/davinci_dtr_test_kit/{payer_server_groups → server/v2.0.1/static_forms}/static_form_questionnaire_expressions_test.rb +2 -1
  140. data/lib/davinci_dtr_test_kit/{payer_server_groups → server/v2.0.1/static_forms}/static_form_questionnaire_extensions_test.rb +2 -1
  141. data/lib/davinci_dtr_test_kit/{payer_server_groups → server/v2.0.1/static_forms}/static_form_request_test.rb +3 -2
  142. data/lib/davinci_dtr_test_kit/{payer_server_groups → server/v2.0.1/static_forms}/static_form_request_validation_test.rb +3 -2
  143. data/lib/davinci_dtr_test_kit/{payer_server_groups → server/v2.0.1/static_forms}/static_form_response_validation_test.rb +4 -3
  144. data/lib/davinci_dtr_test_kit/server/v2.2.0/client_simulation.rb +297 -0
  145. data/lib/davinci_dtr_test_kit/server/v2.2.0/dtr_payer_server_capability_statement_test.rb +73 -0
  146. data/lib/davinci_dtr_test_kit/server/v2.2.0/dtr_payer_server_suite.rb +322 -0
  147. data/lib/davinci_dtr_test_kit/server/v2.2.0/dtr_payer_server_suite_description_v220.md +37 -0
  148. data/lib/davinci_dtr_test_kit/server/v2.2.0/interaction_test.rb +97 -0
  149. data/lib/davinci_dtr_test_kit/server/v2.2.0/log_questionnaire_errors_support_test.rb +57 -0
  150. data/lib/davinci_dtr_test_kit/server/v2.2.0/must_support/questionnaire_adaptive_must_support_test.rb +47 -0
  151. data/lib/davinci_dtr_test_kit/server/v2.2.0/must_support/questionnaire_adaptive_search_must_support_test.rb +40 -0
  152. data/lib/davinci_dtr_test_kit/server/v2.2.0/must_support/questionnaire_base_must_support_test.rb +40 -0
  153. data/lib/davinci_dtr_test_kit/server/v2.2.0/must_support/questionnaire_package_bundle_must_support_test.rb +38 -0
  154. data/lib/davinci_dtr_test_kit/server/v2.2.0/must_support/questionnaire_package_output_parameters_must_support_test.rb +37 -0
  155. data/lib/davinci_dtr_test_kit/server/v2.2.0/must_support/questionnaire_standard_must_support_test.rb +39 -0
  156. data/lib/davinci_dtr_test_kit/server/v2.2.0/next_question_request_validation_test.rb +45 -0
  157. data/lib/davinci_dtr_test_kit/server/v2.2.0/next_question_support/adaptive_questionnaire_endpoint_test.rb +98 -0
  158. data/lib/davinci_dtr_test_kit/server/v2.2.0/next_question_support/invalid_questionnaire_response_test.rb +43 -0
  159. data/lib/davinci_dtr_test_kit/server/v2.2.0/next_question_support/next_contained_questionnaire_response_references_test.rb +46 -0
  160. data/lib/davinci_dtr_test_kit/server/v2.2.0/next_question_support/next_question_response_references_test.rb +56 -0
  161. data/lib/davinci_dtr_test_kit/server/v2.2.0/next_question_support/next_question_response_validation_test.rb +67 -0
  162. data/lib/davinci_dtr_test_kit/server/v2.2.0/questionnaire_design/contained_binary_test.rb +58 -0
  163. data/lib/davinci_dtr_test_kit/server/v2.2.0/questionnaire_design/contained_binary_validation.rb +128 -0
  164. data/lib/davinci_dtr_test_kit/server/v2.2.0/questionnaire_design/cql_library_validation_test.rb +58 -0
  165. data/lib/davinci_dtr_test_kit/server/v2.2.0/questionnaire_design/questionnaire_design_support.rb +65 -0
  166. data/lib/davinci_dtr_test_kit/server/v2.2.0/questionnaire_design/questionnaire_expression_elm_test.rb +81 -0
  167. data/lib/davinci_dtr_test_kit/server/v2.2.0/questionnaire_design/questionnaire_expression_language_test.rb +63 -0
  168. data/lib/davinci_dtr_test_kit/server/v2.2.0/questionnaire_design/questionnaire_prepopulation_test.rb +42 -0
  169. data/lib/davinci_dtr_test_kit/server/v2.2.0/questionnaire_design/questionnaire_relevance_logic_test.rb +40 -0
  170. data/lib/davinci_dtr_test_kit/server/v2.2.0/questionnaire_operation_validation.rb +440 -0
  171. data/lib/davinci_dtr_test_kit/server/v2.2.0/questionnaire_package_request_validation_test.rb +42 -0
  172. data/lib/davinci_dtr_test_kit/server/v2.2.0/questionnaire_package_support/adaptive_questionnaire_response_contained_questionnaire_test.rb +127 -0
  173. data/lib/davinci_dtr_test_kit/server/v2.2.0/questionnaire_package_support/adaptive_questionnaire_response_validation_test.rb +61 -0
  174. data/lib/davinci_dtr_test_kit/server/v2.2.0/questionnaire_package_support/contained_questionnaire_response_references_test.rb +42 -0
  175. data/lib/davinci_dtr_test_kit/server/v2.2.0/questionnaire_package_support/dtr_server_no_custom_extension_test.rb +184 -0
  176. data/lib/davinci_dtr_test_kit/server/v2.2.0/questionnaire_package_support/dtr_server_questionnaire_not_found_test.rb +76 -0
  177. data/lib/davinci_dtr_test_kit/server/v2.2.0/questionnaire_package_support/dtr_server_questionnaire_package_contents_test.rb +89 -0
  178. data/lib/davinci_dtr_test_kit/server/v2.2.0/questionnaire_package_support/initial_questionnaire_response_test.rb +132 -0
  179. data/lib/davinci_dtr_test_kit/server/v2.2.0/questionnaire_package_support/questionnaire_package_input_type_test.rb +110 -0
  180. data/lib/davinci_dtr_test_kit/server/v2.2.0/questionnaire_package_support/questionnaire_references_version_specific_test.rb +79 -0
  181. data/lib/davinci_dtr_test_kit/server/v2.2.0/questionnaire_package_support/questionnaire_response_questionnaire_canonical_test.rb +89 -0
  182. data/lib/davinci_dtr_test_kit/server/v2.2.0/questionnaire_package_support/questionnaire_response_references_test.rb +51 -0
  183. data/lib/davinci_dtr_test_kit/server/v2.2.0/questionnaire_package_support/questionnaire_response_validation_test.rb +63 -0
  184. data/lib/davinci_dtr_test_kit/server/v2.2.0/questionnaire_package_support/source_data_error_test.rb +43 -0
  185. data/lib/davinci_dtr_test_kit/server/v2.2.0/questionnaire_package_support/value_set_validation_test.rb +90 -0
  186. data/lib/davinci_dtr_test_kit/server/v2.2.0/questionnaire_response_reference_validation.rb +133 -0
  187. data/lib/davinci_dtr_test_kit/server/v2.2.0/value_set_expand_support/small_value_set_expansion_test.rb +120 -0
  188. data/lib/davinci_dtr_test_kit/server/v2.2.0/value_set_expand_support/value_set_expansion_test.rb +51 -0
  189. data/lib/davinci_dtr_test_kit/server/v2.2.0/value_set_expand_support/value_set_expansion_validation.rb +58 -0
  190. data/lib/davinci_dtr_test_kit/{endpoints → smart_app/endpoints}/mock_authorization/token_endpoint.rb +1 -1
  191. data/lib/davinci_dtr_test_kit/{endpoints → smart_app/endpoints}/mock_ehr/fhir_get_endpoint.rb +1 -1
  192. data/lib/davinci_dtr_test_kit/smart_app/endpoints/mock_payer/smart_app_next_question_endpoint.rb +12 -0
  193. data/lib/davinci_dtr_test_kit/smart_app/endpoints/mock_payer/smart_app_questionnaire_package_endpoint.rb +12 -0
  194. data/lib/davinci_dtr_test_kit/{client_groups/adaptive_questionnaire/custom → smart_app/v2.0.1/adaptive_custom}/dtr_smart_app_custom_adaptive_workflow_group.rb +12 -12
  195. data/lib/davinci_dtr_test_kit/{client_groups/adaptive_questionnaire/dinner_order → smart_app/v2.0.1/adaptive_dinner}/dtr_smart_app_adaptive_dinner_workflow_group.rb +5 -5
  196. data/lib/davinci_dtr_test_kit/{client_groups/adaptive_questionnaire/dinner_order → smart_app/v2.0.1/adaptive_dinner}/dtr_smart_app_adaptive_initial_retrieval_group.rb +4 -4
  197. data/lib/davinci_dtr_test_kit/{auth_groups → smart_app/v2.0.1/auth}/token_request_test.rb +1 -1
  198. data/lib/davinci_dtr_test_kit/{client_groups/custom_static → smart_app/v2.0.1}/dtr_smart_app_custom_static_workflow_group.rb +11 -11
  199. data/lib/davinci_dtr_test_kit/{client_groups/must_support → smart_app/v2.0.1}/dtr_smart_app_questionnaire_must_support_group.rb +6 -6
  200. data/lib/davinci_dtr_test_kit/{client_groups/respiratory → smart_app/v2.0.1}/dtr_smart_app_respiratory_workflow_group.rb +3 -3
  201. data/lib/davinci_dtr_test_kit/{client_groups/dinner_static → smart_app/v2.0.1}/dtr_smart_app_static_dinner_workflow_group.rb +7 -7
  202. data/lib/davinci_dtr_test_kit/{dtr_smart_app_suite.rb → smart_app/v2.0.1/dtr_smart_app_suite.rb} +21 -21
  203. data/lib/davinci_dtr_test_kit/{client_groups → smart_app/v2.0.1}/must_support/dtr_smart_app_ms_questionnaire_package_request_test.rb +2 -2
  204. data/lib/davinci_dtr_test_kit/{auth_groups → smart_app/v2.0.1}/oauth2_authentication_group.rb +2 -2
  205. data/lib/davinci_dtr_test_kit/{client_groups/respiratory → smart_app/v2.0.1/static_respiratory}/dtr_respiratory_questionnaire_package_group.rb +1 -1
  206. data/lib/davinci_dtr_test_kit/{client_groups/respiratory → smart_app/v2.0.1/static_respiratory}/dtr_respiratory_questionnaire_package_request_test.rb +1 -1
  207. data/lib/davinci_dtr_test_kit/{client_groups/respiratory → smart_app/v2.0.1/static_respiratory}/dtr_respiratory_questionnaire_response_group.rb +2 -2
  208. data/lib/davinci_dtr_test_kit/{client_groups/respiratory → smart_app/v2.0.1/static_respiratory}/dtr_respiratory_questionnaire_response_save_test.rb +1 -1
  209. data/lib/davinci_dtr_test_kit/{client_groups/respiratory → smart_app/v2.0.1/static_respiratory}/dtr_respiratory_rendering_attestation_test.rb +1 -1
  210. data/lib/davinci_dtr_test_kit/{client_groups/smart_app → smart_app/v2.0.1/tests}/dtr_smart_app_adaptive_request_test.rb +1 -1
  211. data/lib/davinci_dtr_test_kit/{client_groups/smart_app → smart_app/v2.0.1/tests}/dtr_smart_app_prepopulation_attestation_test.rb +1 -1
  212. data/lib/davinci_dtr_test_kit/{client_groups/smart_app → smart_app/v2.0.1/tests}/dtr_smart_app_prepopulation_override_attestation_test.rb +1 -1
  213. data/lib/davinci_dtr_test_kit/{client_groups/smart_app → smart_app/v2.0.1/tests}/dtr_smart_app_questionnaire_package_request_test.rb +1 -1
  214. data/lib/davinci_dtr_test_kit/{client_groups/smart_app → smart_app/v2.0.1/tests}/dtr_smart_app_questionnaire_response_correctness_test.rb +1 -1
  215. data/lib/davinci_dtr_test_kit/{client_groups/smart_app → smart_app/v2.0.1/tests}/dtr_smart_app_questionnaire_response_save_test.rb +1 -1
  216. data/lib/davinci_dtr_test_kit/{client_groups/smart_app → smart_app/v2.0.1/tests}/dtr_smart_app_saving_questionnaire_response_group.rb +1 -1
  217. data/lib/davinci_dtr_test_kit/tags.rb +2 -0
  218. data/lib/davinci_dtr_test_kit/version.rb +2 -2
  219. data/lib/davinci_dtr_test_kit.rb +6 -4
  220. metadata +299 -209
  221. data/lib/davinci_dtr_test_kit/certs/InfernoCA.key +0 -52
  222. data/lib/davinci_dtr_test_kit/certs/InfernoCA.pem +0 -35
  223. data/lib/davinci_dtr_test_kit/certs/TestKit.pem +0 -32
  224. data/lib/davinci_dtr_test_kit/certs/TestKitPrivateKey.key +0 -28
  225. data/lib/davinci_dtr_test_kit/endpoints/mock_payer/full_ehr_next_question_endpoint.rb +0 -30
  226. data/lib/davinci_dtr_test_kit/endpoints/mock_payer/full_ehr_questionnaire_package_endpoint.rb +0 -31
  227. data/lib/davinci_dtr_test_kit/fixture_loader.rb +0 -21
  228. /data/lib/davinci_dtr_test_kit/{endpoints → cross_suite}/cors.rb +0 -0
  229. /data/lib/davinci_dtr_test_kit/{cql_test.rb → cross_suite/v2.0.1/cql_test.rb} +0 -0
  230. /data/lib/davinci_dtr_test_kit/{dtr_questionnaire_response_validation.rb → cross_suite/v2.0.1/dtr_questionnaire_response_validation.rb} +0 -0
  231. /data/lib/davinci_dtr_test_kit/{descriptions.rb → full_ehr/descriptions.rb} +0 -0
  232. /data/lib/davinci_dtr_test_kit/{fixtures → full_ehr/fixtures}/dinner_adaptive/dinner_order_adaptive_next_question_burrito.json +0 -0
  233. /data/lib/davinci_dtr_test_kit/{fixtures → full_ehr/fixtures}/dinner_adaptive/dinner_order_adaptive_next_question_hamburger.json +0 -0
  234. /data/lib/davinci_dtr_test_kit/{fixtures → full_ehr/fixtures}/dinner_adaptive/dinner_order_adaptive_next_question_initial.json +0 -0
  235. /data/lib/davinci_dtr_test_kit/{fixtures → full_ehr/fixtures}/dinner_adaptive/questionnaire_dinner_order_adaptive.json +0 -0
  236. /data/lib/davinci_dtr_test_kit/{fixtures → full_ehr/fixtures}/dinner_static/questionnaire_dinner_order_static.json +0 -0
  237. /data/lib/davinci_dtr_test_kit/{fixtures → full_ehr/fixtures}/dinner_static/questionnaire_response_dinner_order_static.json +0 -0
  238. /data/lib/davinci_dtr_test_kit/{fixtures → full_ehr/fixtures}/respiratory_assist_device/pre_populated_questionnaire_response.json +0 -0
  239. /data/lib/davinci_dtr_test_kit/{fixtures → full_ehr/fixtures}/respiratory_assist_device/questionnaire_package.json +0 -0
  240. /data/lib/davinci_dtr_test_kit/{fixtures.rb → full_ehr/fixtures.rb} +0 -0
  241. /data/lib/davinci_dtr_test_kit/{client_groups/adaptive_questionnaire/custom → full_ehr/v2.0.1/adaptive_custom}/dtr_custom_next_question_response_validation_test.rb +0 -0
  242. /data/lib/davinci_dtr_test_kit/{client_groups/adaptive_questionnaire/dinner_order → full_ehr/v2.0.1/adaptive_dinner}/dtr_adaptive_completion_group.rb +0 -0
  243. /data/lib/davinci_dtr_test_kit/{client_groups/adaptive_questionnaire/dinner_order → full_ehr/v2.0.1/adaptive_dinner}/dtr_adaptive_followup_questions_group.rb +0 -0
  244. /data/lib/davinci_dtr_test_kit/{client_groups/auth → full_ehr/v2.0.1}/dtr_client_payer_auth_smart_group.rb +0 -0
  245. /data/lib/davinci_dtr_test_kit/{client_groups/auth → full_ehr/v2.0.1}/dtr_client_payer_auth_udap_group.rb +0 -0
  246. /data/lib/davinci_dtr_test_kit/{docs → full_ehr/v2.0.1}/dtr_full_ehr_suite_description_v201.md +0 -0
  247. /data/lib/davinci_dtr_test_kit/{client_groups → full_ehr/v2.0.1}/must_support/questionnaire_must_support_elements.rb +0 -0
  248. /data/lib/davinci_dtr_test_kit/{client_groups/full_ehr → full_ehr/v2.0.1/shared}/dtr_full_ehr_saving_questionnaire_response_group.rb +0 -0
  249. /data/lib/davinci_dtr_test_kit/{create_test.rb → light_ehr/create_test.rb} +0 -0
  250. /data/lib/davinci_dtr_test_kit/{endpoints/mock_payer → light_ehr/endpoints}/light_ehr_supported_payer_endpoint.rb +0 -0
  251. /data/lib/davinci_dtr_test_kit/{read_test.rb → light_ehr/read_test.rb} +0 -0
  252. /data/lib/davinci_dtr_test_kit/{update_test.rb → light_ehr/update_test.rb} +0 -0
  253. /data/lib/davinci_dtr_test_kit/{docs → light_ehr/v2.0.1}/dtr_light_ehr_suite_description_v201.md +0 -0
  254. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/communication_request/communication_request_must_support_test.rb +0 -0
  255. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/communication_request/communication_request_validation.rb +0 -0
  256. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/communication_request/metadata.yml +0 -0
  257. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/communication_request_group.rb +0 -0
  258. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/coverage/coverage_must_support_test.rb +0 -0
  259. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/coverage/coverage_validation.rb +0 -0
  260. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/coverage/metadata.yml +0 -0
  261. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/coverage_group.rb +0 -0
  262. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/device_request/device_request_must_support_test.rb +0 -0
  263. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/device_request/device_request_validation.rb +0 -0
  264. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/device_request/metadata.yml +0 -0
  265. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/device_request_group.rb +0 -0
  266. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/encounter/encounter_must_support_test.rb +0 -0
  267. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/encounter/encounter_validation.rb +0 -0
  268. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/encounter/metadata.yml +0 -0
  269. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/encounter_group.rb +0 -0
  270. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/medication_request/medication_request_must_support_test.rb +0 -0
  271. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/medication_request/medication_request_validation.rb +0 -0
  272. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/medication_request/metadata.yml +0 -0
  273. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/medication_request_group.rb +0 -0
  274. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/nutrition_order/metadata.yml +0 -0
  275. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/nutrition_order/nutrition_order_must_support_test.rb +0 -0
  276. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/nutrition_order/nutrition_order_validation.rb +0 -0
  277. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/nutrition_order_group.rb +0 -0
  278. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/questionnaire_response/metadata.yml +0 -0
  279. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/questionnaire_response/questionnaire_response_context_search.rb +0 -0
  280. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/questionnaire_response/questionnaire_response_must_support_test.rb +0 -0
  281. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/questionnaire_response/questionnaire_response_patient_search.rb +0 -0
  282. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/questionnaire_response/questionnaire_response_read.rb +0 -0
  283. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/questionnaire_response/questionnaire_response_validation.rb +0 -0
  284. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/questionnaire_response_group.rb +0 -0
  285. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/service_request/metadata.yml +0 -0
  286. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/service_request/service_request_must_support_test.rb +0 -0
  287. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/service_request/service_request_validation.rb +0 -0
  288. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/service_request_group.rb +0 -0
  289. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/task/metadata.yml +0 -0
  290. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/task/task_must_support_test.rb +0 -0
  291. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/task/task_validation.rb +0 -0
  292. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/task_group.rb +0 -0
  293. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/vision_prescription/metadata.yml +0 -0
  294. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/vision_prescription/vision_prescription_must_support_test.rb +0 -0
  295. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/vision_prescription/vision_prescription_validation.rb +0 -0
  296. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/vision_prescription_group.rb +0 -0
  297. /data/lib/davinci_dtr_test_kit/{client_groups/light_ehr → light_ehr/v2.0.1/smart_ehr_launch}/fhir_context_coverage_test.rb +0 -0
  298. /data/lib/davinci_dtr_test_kit/{client_groups/light_ehr → light_ehr/v2.0.1/smart_ehr_launch}/fhir_context_references_test.rb +0 -0
  299. /data/lib/davinci_dtr_test_kit/{client_groups/light_ehr → light_ehr/v2.0.1/smart_ehr_launch}/fhir_launch_context_test.rb +0 -0
  300. /data/lib/davinci_dtr_test_kit/{endpoints/mock_authorization → server/endpoints}/simple_token_endpoint.rb +0 -0
  301. /data/lib/davinci_dtr_test_kit/{payer_server_groups → server/v2.0.1/adaptive_forms}/payer_server_next_response_complete_test.rb +0 -0
  302. /data/lib/davinci_dtr_test_kit/{docs → server/v2.0.1}/dtr_payer_server_suite_description_v201.md +0 -0
  303. /data/lib/davinci_dtr_test_kit/{validation_test.rb → server/validation_test.rb} +0 -0
  304. /data/lib/davinci_dtr_test_kit/{endpoints → smart_app/endpoints}/mock_authorization/authorize_endpoint.rb +0 -0
  305. /data/lib/davinci_dtr_test_kit/{endpoints → smart_app/endpoints}/mock_authorization.rb +0 -0
  306. /data/lib/davinci_dtr_test_kit/{endpoints → smart_app/endpoints}/mock_ehr/questionnaire_response_endpoint.rb +0 -0
  307. /data/lib/davinci_dtr_test_kit/{endpoints → smart_app/endpoints}/mock_ehr.rb +0 -0
  308. /data/lib/davinci_dtr_test_kit/{client_groups/adaptive_questionnaire/custom → smart_app/v2.0.1/adaptive_custom}/dtr_smart_app_custom_adaptive_request_test.rb +0 -0
  309. /data/lib/davinci_dtr_test_kit/{auth_groups → smart_app/v2.0.1/auth}/token_validation_test.rb +0 -0
  310. /data/lib/davinci_dtr_test_kit/{docs → smart_app/v2.0.1}/dtr_smart_app_suite_description_v201.md +0 -0
  311. /data/lib/davinci_dtr_test_kit/{client_groups/respiratory → smart_app/v2.0.1/static_respiratory}/dtr_respiratory_rendering_group.rb +0 -0
@@ -0,0 +1,120 @@
1
+ require_relative '../../../tags'
2
+ require_relative '../questionnaire_operation_validation'
3
+ require_relative 'value_set_expansion_validation'
4
+ require_relative '../../../cross_suite/v2.2.0/multi_request_message_helper'
5
+
6
+ module DaVinciDTRTestKit
7
+ module DTRPayerServerV220
8
+ class SmallValueSetExpansionTest < Inferno::Test
9
+ include QuestionnaireOperationValidation
10
+ include ValueSetExpansionValidation
11
+ include MultiRequestMessageHelper
12
+
13
+ id :dtr_v220_payer_small_value_set_expansion
14
+ title 'Verify small ValueSets are expanded'
15
+ description %(
16
+ This test verifies that ValueSets with fewer than 40 entries returned by
17
+ $questionnaire-package are expanded.
18
+ )
19
+
20
+ verifies_requirements 'hl7.fhir.us.davinci-dtr_2.2.0@oper-15'
21
+
22
+ run do
23
+ requests = load_tagged_requests(QUESTIONNAIRE_TAG)
24
+ skip_if requests.empty?, 'No $questionnaire-package requests were made.'
25
+
26
+ expansion_sizes = expansion_sizes_by_url
27
+
28
+ requests.each_with_index do |request, request_index|
29
+ next unless [200, 201].include? request.status
30
+
31
+ resource = FHIR.from_contents(request.response_body)
32
+
33
+ extract_questionnaire_bundles(resource).each do |bundle|
34
+ bundle.entry.filter_map(&:resource).grep(FHIR::ValueSet).each do |value_set|
35
+ url = value_set.url
36
+ expansion_size = expansion_sizes[url]
37
+
38
+ if value_set_expanded?(value_set)
39
+ if value_set.expansion.present? && !value_set_expansion_current?(value_set)
40
+ add_request_message('error', expansion_timestamp_error(value_set, Date.current), request_index)
41
+ end
42
+ next
43
+ end
44
+
45
+ next if expansion_size.nil? || expansion_size >= 40
46
+
47
+ add_request_message(
48
+ 'error',
49
+ "ValueSet `#{url}` has #{expansion_size} codes and is not expanded in the " \
50
+ '$questionnaire-package response.',
51
+ request_index
52
+ )
53
+ end
54
+ end
55
+ rescue JSON::ParserError, FHIR::ClientException
56
+ add_request_message('error', '$questionnaire-package response is not a valid FHIR resource.', request_index)
57
+ end
58
+
59
+ assert_no_error_messages(
60
+ "#{requests_with_errors_prefix}Small ValueSets returned by $questionnaire-package must be expanded."
61
+ )
62
+ end
63
+
64
+ def expansion_sizes_by_url
65
+ load_tagged_requests(VALUE_SET_EXPAND_TAG).filter_map do |request|
66
+ url = value_set_url_from_expand_request(request)
67
+ next if url.blank?
68
+
69
+ expanded_value_set = FHIR.from_contents(request.response_body)
70
+
71
+ next unless expanded_value_set.is_a?(FHIR::ValueSet) &&
72
+ expanded_value_set.expansion.present?
73
+
74
+ [url, expansion_entry_count(expanded_value_set.expansion.contains)]
75
+ rescue JSON::ParserError, FHIR::ClientException
76
+ nil
77
+ end.to_h
78
+ end
79
+
80
+ def value_set_expanded?(value_set)
81
+ value_set_expansion_contains_codes?(value_set) ||
82
+ value_set_compose_contains_only_codes?(value_set)
83
+ end
84
+
85
+ def value_set_expansion_contains_codes?(value_set)
86
+ value_set.expansion&.contains.present?
87
+ end
88
+
89
+ def value_set_compose_contains_only_codes?(value_set)
90
+ compose = value_set.compose
91
+ return false if compose.blank? || compose.exclude.present?
92
+
93
+ compose.include.present? &&
94
+ compose.include.all? do |include|
95
+ include.concept.present? &&
96
+ include.filter.blank? &&
97
+ include.valueSet.blank?
98
+ end
99
+ end
100
+
101
+ def expansion_entry_count(contains)
102
+ return 0 if contains.blank?
103
+
104
+ contains.sum do |entry|
105
+ 1 + expansion_entry_count(entry.contains)
106
+ end
107
+ end
108
+
109
+ def value_set_url_from_expand_request(request)
110
+ parameters = FHIR.from_contents(request.request_body)
111
+
112
+ url = parameters.parameter
113
+ .find { |parameter| parameter.name == 'url' }
114
+ &.valueUri
115
+
116
+ url&.split('|', 2)&.first
117
+ end
118
+ end
119
+ end
120
+ end
@@ -0,0 +1,51 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'value_set_expansion_validation'
4
+ require_relative '../../../tags'
5
+ require_relative '../../../cross_suite/v2.2.0/multi_request_message_helper'
6
+
7
+ module DaVinciDTRTestKit
8
+ module DTRPayerServerV220
9
+ class ValueSetExpansionTest < Inferno::Test
10
+ include ValueSetExpansionValidation
11
+ include MultiRequestMessageHelper
12
+
13
+ id :dtr_v220_payer_value_set_expansion
14
+ title 'ValueSet expansions use the current date and active codes'
15
+ description %(
16
+ This test verifies that ValueSets returned from `ValueSet/$expand` use the
17
+ current date as their expansion timestamp and contain only active codes,
18
+ including codes nested within the expansion hierarchy.
19
+ )
20
+ verifies_requirements 'hl7.fhir.us.davinci-dtr_2.2.0@oper-5'
21
+
22
+ run do
23
+ requests = load_tagged_requests(VALUE_SET_EXPAND_TAG)
24
+ skip_if requests.empty?, 'No ValueSet/$expand requests were made.'
25
+
26
+ requests.each_with_index do |request, request_index|
27
+ value_set = FHIR.from_contents(request.response_body)
28
+ unless value_set.is_a?(FHIR::ValueSet)
29
+ add_request_message('error', 'ValueSet/$expand response is not a ValueSet resource.', request_index)
30
+ next
31
+ end
32
+
33
+ unless value_set.expansion.present?
34
+ add_request_message('error', 'ValueSet response does not contain an expansion.', request_index)
35
+ next
36
+ end
37
+
38
+ value_set_expansion_errors(value_set).each do |error|
39
+ add_request_message('error', error, request_index)
40
+ end
41
+ rescue JSON::ParserError, FHIR::ClientException
42
+ add_request_message('error', 'ValueSet/$expand response is not a valid FHIR resource.', request_index)
43
+ end
44
+
45
+ error_message = "#{requests_with_errors_prefix}ValueSet expansions must use the current date " \
46
+ 'and contain only active codes. See Messages for details.'
47
+ assert_no_error_messages(error_message)
48
+ end
49
+ end
50
+ end
51
+ end
@@ -0,0 +1,58 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'date'
4
+
5
+ module DaVinciDTRTestKit
6
+ module DTRPayerServerV220
7
+ module ValueSetExpansionValidation
8
+ def value_set_expansion_errors(value_set, current_date: Date.current)
9
+ errors = []
10
+ unless value_set_expansion_current?(value_set, current_date)
11
+ errors << expansion_timestamp_error(value_set, current_date)
12
+ end
13
+
14
+ inactive_expansion_codes(value_set).each do |code|
15
+ errors << inactive_code_error(code)
16
+ end
17
+
18
+ errors
19
+ end
20
+
21
+ def value_set_expansion_current?(value_set, current_date = Date.current)
22
+ timestamp = value_set.expansion&.timestamp
23
+ timestamp.present? && Date.parse(timestamp.to_s) == current_date
24
+ rescue Date::Error
25
+ false
26
+ end
27
+
28
+ def inactive_expansion_codes(value_set)
29
+ inactive_codes_in(value_set.expansion&.contains)
30
+ end
31
+
32
+ def inactive_codes_in(contains)
33
+ Array(contains).flat_map do |code|
34
+ inactive_code_array = code.inactive == true ? [code] : []
35
+ inactive_code_array + inactive_codes_in(code.contains)
36
+ end
37
+ end
38
+
39
+ def expansion_code_identifier(code)
40
+ [code.system, code.code].compact.join('|').presence || code.display
41
+ end
42
+
43
+ def expansion_timestamp_error(value_set, current_date)
44
+ timestamp = value_set.expansion&.timestamp
45
+ return "expansion.timestamp is missing; expected current date `#{current_date}`" if timestamp.blank?
46
+
47
+ "expansion.timestamp `#{timestamp}` is not the current date `#{current_date}`"
48
+ end
49
+
50
+ def inactive_code_error(code)
51
+ identifier = expansion_code_identifier(code)
52
+ return 'expansion contains an inactive code' if identifier.blank?
53
+
54
+ "expansion contains inactive code `#{identifier}`"
55
+ end
56
+ end
57
+ end
58
+ end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative '../../urls'
3
+ require_relative '../../../urls'
4
4
  require_relative '../mock_authorization'
5
5
 
6
6
  module DaVinciDTRTestKit
@@ -51,7 +51,7 @@ module DaVinciDTRTestKit
51
51
  def ehr_input_bundle(test, test_result)
52
52
  input_name = "#{input_group_prefix(test)}_ehr_bundle"
53
53
  ehr_bundle_input = JSON.parse(test_result.input_json).find { |input| input['name'] == input_name }
54
- ehr_bundle_input_value = ehr_bundle_input_value = ehr_bundle_input['value'] if ehr_bundle_input.present?
54
+ ehr_bundle_input_value = ehr_bundle_input['value'] if ehr_bundle_input.present?
55
55
  ehr_bundle = FHIR.from_contents(ehr_bundle_input_value) if ehr_bundle_input_value.present?
56
56
  ehr_bundle if ehr_bundle.is_a?(FHIR::Bundle)
57
57
  rescue StandardError
@@ -0,0 +1,12 @@
1
+ require_relative '../mock_authorization'
2
+ require_relative '../../../full_ehr/v2.0.1/full_ehr_next_question_endpoint'
3
+
4
+ module DaVinciDTRTestKit
5
+ module MockPayer
6
+ class SMARTAppNextQuestionEndpoint < FullEHRNextQuestionEndpoint
7
+ def test_run_identifier
8
+ MockAuthorization.extract_client_id_from_bearer_token(request)
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,12 @@
1
+ require_relative '../mock_authorization'
2
+ require_relative '../../../full_ehr/v2.0.1/full_ehr_questionnaire_package_endpoint'
3
+
4
+ module DaVinciDTRTestKit
5
+ module MockPayer
6
+ class SMARTAppQuestionnairePackageEndpoint < FullEHRQuestionnairePackageEndpoint
7
+ def test_run_identifier
8
+ MockAuthorization.extract_client_id_from_bearer_token(request)
9
+ end
10
+ end
11
+ end
12
+ end
@@ -1,17 +1,17 @@
1
1
  require_relative '../../../tags'
2
2
  require_relative 'dtr_smart_app_custom_adaptive_request_test'
3
- require_relative '../../shared/dtr_questionnaire_package_request_validation_test'
4
- require_relative '../dtr_adaptive_next_question_request_validation_test'
5
- require_relative '../dtr_adaptive_response_validation_test'
6
- require_relative '../../shared/dtr_custom_questionnaire_package_validation_test'
7
- require_relative '../../shared/dtr_custom_questionnaire_libraries_test'
8
- require_relative '../../shared/dtr_custom_questionnaire_extensions_test'
9
- require_relative '../../shared/dtr_custom_questionnaire_expressions_test'
10
- require_relative 'dtr_custom_next_question_response_validation_test'
11
- require_relative '../../shared/dtr_prepopulation_attestation_test'
12
- require_relative '../../shared/dtr_prepopulation_override_attestation_test'
13
- require_relative '../../smart_app/dtr_smart_app_saving_questionnaire_response_group'
14
- require_relative '../../shared/dtr_questionnaire_response_prepopulation_test'
3
+ require_relative '../../../full_ehr/v2.0.1/shared/dtr_questionnaire_package_request_validation_test'
4
+ require_relative '../../../full_ehr/v2.0.1/adaptive_interaction/dtr_adaptive_next_question_request_validation_test'
5
+ require_relative '../../../full_ehr/v2.0.1/adaptive_interaction/dtr_adaptive_response_validation_test'
6
+ require_relative '../../../full_ehr/v2.0.1/shared/dtr_custom_questionnaire_package_validation_test'
7
+ require_relative '../../../full_ehr/v2.0.1/shared/dtr_custom_questionnaire_libraries_test'
8
+ require_relative '../../../full_ehr/v2.0.1/shared/dtr_custom_questionnaire_extensions_test'
9
+ require_relative '../../../full_ehr/v2.0.1/shared/dtr_custom_questionnaire_expressions_test'
10
+ require_relative '../../../full_ehr/v2.0.1/adaptive_custom/dtr_custom_next_question_response_validation_test'
11
+ require_relative '../../../full_ehr/v2.0.1/shared/dtr_prepopulation_attestation_test'
12
+ require_relative '../../../full_ehr/v2.0.1/shared/dtr_prepopulation_override_attestation_test'
13
+ require_relative '../tests/dtr_smart_app_saving_questionnaire_response_group'
14
+ require_relative '../../../full_ehr/v2.0.1/shared/dtr_questionnaire_response_prepopulation_test'
15
15
 
16
16
  module DaVinciDTRTestKit
17
17
  class DTRSmartAppCustomAdaptiveWorkflowGroup < Inferno::TestGroup
@@ -1,10 +1,10 @@
1
1
  require_relative '../../../tags'
2
2
  require_relative 'dtr_smart_app_adaptive_initial_retrieval_group'
3
- require_relative '../../smart_app/dtr_smart_app_prepopulation_attestation_test'
4
- require_relative '../../smart_app/dtr_smart_app_prepopulation_override_attestation_test'
5
- require_relative 'dtr_adaptive_followup_questions_group'
6
- require_relative 'dtr_adaptive_completion_group'
7
- require_relative '../../shared/dtr_questionnaire_response_prepopulation_test'
3
+ require_relative '../tests/dtr_smart_app_prepopulation_attestation_test'
4
+ require_relative '../tests/dtr_smart_app_prepopulation_override_attestation_test'
5
+ require_relative '../../../full_ehr/v2.0.1/adaptive_dinner/dtr_adaptive_followup_questions_group'
6
+ require_relative '../../../full_ehr/v2.0.1/adaptive_dinner/dtr_adaptive_completion_group'
7
+ require_relative '../../../full_ehr/v2.0.1/shared/dtr_questionnaire_response_prepopulation_test'
8
8
 
9
9
  module DaVinciDTRTestKit
10
10
  class DTRSmartAppAdaptiveDinnerWorkflowGroup < Inferno::TestGroup
@@ -1,8 +1,8 @@
1
1
  require_relative '../../../tags'
2
- require_relative '../../smart_app/dtr_smart_app_adaptive_request_test'
3
- require_relative '../../shared/dtr_questionnaire_package_request_validation_test'
4
- require_relative '../dtr_adaptive_next_question_request_validation_test'
5
- require_relative '../dtr_adaptive_response_validation_test'
2
+ require_relative '../tests/dtr_smart_app_adaptive_request_test'
3
+ require_relative '../../../full_ehr/v2.0.1/shared/dtr_questionnaire_package_request_validation_test'
4
+ require_relative '../../../full_ehr/v2.0.1/adaptive_interaction/dtr_adaptive_next_question_request_validation_test'
5
+ require_relative '../../../full_ehr/v2.0.1/adaptive_interaction/dtr_adaptive_response_validation_test'
6
6
 
7
7
  module DaVinciDTRTestKit
8
8
  class DTRSmartAppAdaptiveInitialRetrievalGroup < Inferno::TestGroup
@@ -1,4 +1,4 @@
1
- require_relative '../urls'
1
+ require_relative '../../../urls'
2
2
 
3
3
  module DaVinciDTRTestKit
4
4
  class TokenRequestTest < Inferno::Test
@@ -1,14 +1,14 @@
1
- require_relative '../shared/dtr_custom_questionnaire_package_validation_test'
2
- require_relative '../shared/dtr_custom_questionnaire_libraries_test'
3
- require_relative '../shared/dtr_custom_questionnaire_extensions_test'
4
- require_relative '../shared/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'
1
+ require_relative '../../full_ehr/v2.0.1/shared/dtr_custom_questionnaire_package_validation_test'
2
+ require_relative '../../full_ehr/v2.0.1/shared/dtr_custom_questionnaire_libraries_test'
3
+ require_relative '../../full_ehr/v2.0.1/shared/dtr_custom_questionnaire_extensions_test'
4
+ require_relative '../../full_ehr/v2.0.1/shared/dtr_custom_questionnaire_expressions_test'
5
+ require_relative 'tests/dtr_smart_app_questionnaire_package_request_test'
6
+ require_relative '../../full_ehr/v2.0.1/shared/dtr_questionnaire_package_request_validation_test'
7
+ require_relative '../../full_ehr/v2.0.1/shared/dtr_prepopulation_attestation_test'
8
+ require_relative '../../full_ehr/v2.0.1/shared/dtr_rendering_attestation_test'
9
+ require_relative '../../full_ehr/v2.0.1/shared/dtr_prepopulation_override_attestation_test'
10
+ require_relative 'tests/dtr_smart_app_saving_questionnaire_response_group'
11
+ require_relative 'tests/dtr_smart_app_questionnaire_response_correctness_test'
12
12
 
13
13
  module DaVinciDTRTestKit
14
14
  class DTRSmartAppCustomStaticWorkflowGroup < Inferno::TestGroup
@@ -1,10 +1,10 @@
1
1
  require_relative '../../urls'
2
- require_relative 'dtr_smart_app_ms_questionnaire_package_request_test'
3
- require_relative '../shared/dtr_questionnaire_package_request_validation_test'
4
- require_relative '../shared/dtr_custom_questionnaire_package_validation_test'
5
- require_relative 'dtr_questionnaire_must_support_test'
6
- require_relative 'dtr_must_support_attestation_test'
7
- require_relative 'questionnaire_must_support_elements'
2
+ require_relative 'must_support/dtr_smart_app_ms_questionnaire_package_request_test'
3
+ require_relative '../../full_ehr/v2.0.1/shared/dtr_questionnaire_package_request_validation_test'
4
+ require_relative '../../full_ehr/v2.0.1/shared/dtr_custom_questionnaire_package_validation_test'
5
+ require_relative '../../full_ehr/v2.0.1/must_support/dtr_questionnaire_must_support_test'
6
+ require_relative '../../full_ehr/v2.0.1/must_support/dtr_must_support_attestation_test'
7
+ require_relative '../../full_ehr/v2.0.1/must_support/questionnaire_must_support_elements'
8
8
 
9
9
  module DaVinciDTRTestKit
10
10
  class DTRSmartAppQuestionnaireMustSupportGroup < Inferno::TestGroup
@@ -1,6 +1,6 @@
1
- require_relative 'dtr_respiratory_questionnaire_package_group'
2
- require_relative 'dtr_respiratory_rendering_group'
3
- require_relative 'dtr_respiratory_questionnaire_response_group'
1
+ require_relative 'static_respiratory/dtr_respiratory_questionnaire_package_group'
2
+ require_relative 'static_respiratory/dtr_respiratory_rendering_group'
3
+ require_relative 'static_respiratory/dtr_respiratory_questionnaire_response_group'
4
4
 
5
5
  module DaVinciDTRTestKit
6
6
  class DTRSmartAppRespiratoryWorkflowGroup < Inferno::TestGroup
@@ -1,10 +1,10 @@
1
- require_relative '../smart_app/dtr_smart_app_questionnaire_package_request_test'
2
- require_relative '../shared/dtr_questionnaire_package_request_validation_test'
3
- require_relative '../smart_app/dtr_smart_app_prepopulation_attestation_test'
4
- require_relative '../smart_app/dtr_smart_app_prepopulation_override_attestation_test'
5
- require_relative 'dtr_static_dinner_enabled_questions_attestation_test'
6
- require_relative '../smart_app/dtr_smart_app_saving_questionnaire_response_group'
7
- require_relative '../shared/dtr_questionnaire_response_prepopulation_test'
1
+ require_relative 'tests/dtr_smart_app_questionnaire_package_request_test'
2
+ require_relative '../../full_ehr/v2.0.1/shared/dtr_questionnaire_package_request_validation_test'
3
+ require_relative 'tests/dtr_smart_app_prepopulation_attestation_test'
4
+ require_relative 'tests/dtr_smart_app_prepopulation_override_attestation_test'
5
+ require_relative '../../full_ehr/v2.0.1/static_dinner/dtr_static_dinner_enabled_questions_attestation_test'
6
+ require_relative 'tests/dtr_smart_app_saving_questionnaire_response_group'
7
+ require_relative '../../full_ehr/v2.0.1/shared/dtr_questionnaire_response_prepopulation_test'
8
8
 
9
9
  module DaVinciDTRTestKit
10
10
  class DTRSmartAppStaticDinnerWorkflowGroup < Inferno::TestGroup
@@ -1,28 +1,28 @@
1
- require_relative 'auth_groups/oauth2_authentication_group'
2
- require_relative 'client_groups/respiratory/dtr_smart_app_respiratory_workflow_group'
3
- require_relative 'client_groups/dinner_static/dtr_smart_app_static_dinner_workflow_group'
4
- require_relative 'client_groups/adaptive_questionnaire/dinner_order/dtr_smart_app_adaptive_dinner_workflow_group'
5
- require_relative 'client_groups/custom_static/dtr_smart_app_custom_static_workflow_group'
6
- require_relative 'client_groups/adaptive_questionnaire/custom/dtr_smart_app_custom_adaptive_workflow_group'
7
- require_relative 'client_groups/must_support/dtr_smart_app_questionnaire_must_support_group'
8
- require_relative 'endpoints/cors'
9
- require_relative 'endpoints/mock_authorization'
10
- require_relative 'endpoints/mock_authorization/authorize_endpoint'
11
- require_relative 'endpoints/mock_authorization/token_endpoint'
12
- require_relative 'endpoints/mock_payer/questionnaire_package_endpoint'
13
- require_relative 'endpoints/mock_payer/next_question_endpoint'
14
- require_relative 'endpoints/mock_ehr'
15
- require_relative 'endpoints/mock_ehr/questionnaire_response_endpoint'
16
- require_relative 'endpoints/mock_ehr/fhir_get_endpoint'
17
- require_relative 'version'
1
+ # require_relative 'oauth2_authentication_group'
2
+ require_relative 'dtr_smart_app_respiratory_workflow_group'
3
+ require_relative 'dtr_smart_app_static_dinner_workflow_group'
4
+ require_relative 'adaptive_dinner/dtr_smart_app_adaptive_dinner_workflow_group'
5
+ require_relative 'dtr_smart_app_custom_static_workflow_group'
6
+ require_relative 'adaptive_custom/dtr_smart_app_custom_adaptive_workflow_group'
7
+ require_relative 'dtr_smart_app_questionnaire_must_support_group'
8
+ require_relative '../../cross_suite/cors'
9
+ require_relative '../endpoints/mock_authorization'
10
+ require_relative '../endpoints/mock_authorization/authorize_endpoint'
11
+ require_relative '../endpoints/mock_authorization/token_endpoint'
12
+ require_relative '../endpoints/mock_payer/smart_app_questionnaire_package_endpoint'
13
+ require_relative '../endpoints/mock_payer/smart_app_next_question_endpoint'
14
+ require_relative '../endpoints/mock_ehr'
15
+ require_relative '../endpoints/mock_ehr/questionnaire_response_endpoint'
16
+ require_relative '../endpoints/mock_ehr/fhir_get_endpoint'
17
+ require_relative '../../version'
18
18
 
19
19
  module DaVinciDTRTestKit
20
20
  class DTRSmartAppSuite < Inferno::TestSuite
21
21
  extend CORS
22
22
 
23
23
  id :dtr_smart_app
24
- title 'Da Vinci DTR SMART App Test Suite'
25
- description File.read(File.join(__dir__, 'docs', 'dtr_smart_app_suite_description_v201.md'))
24
+ title 'Da Vinci DTR SMART App Test Suite v2.0.1'
25
+ description File.read(File.join(__dir__, 'dtr_smart_app_suite_description_v201.md'))
26
26
 
27
27
  links [
28
28
  {
@@ -76,8 +76,8 @@ module DaVinciDTRTestKit
76
76
  suite_endpoint :post, EHR_TOKEN_PATH, MockAuthorization::TokenEndpoint
77
77
 
78
78
  # Payer
79
- suite_endpoint :post, QUESTIONNAIRE_PACKAGE_PATH, MockPayer::QuestionnairePackageEndpoint
80
- suite_endpoint :post, NEXT_PATH, MockPayer::NextQuestionEndpoint
79
+ suite_endpoint :post, QUESTIONNAIRE_PACKAGE_PATH, MockPayer::SMARTAppQuestionnairePackageEndpoint
80
+ suite_endpoint :post, NEXT_PATH, MockPayer::SMARTAppNextQuestionEndpoint
81
81
 
82
82
  # EHR
83
83
  route(:get, METADATA_PATH, MockEHR.method(:metadata))
@@ -1,6 +1,6 @@
1
1
  require 'base64'
2
- require_relative '../../urls'
3
- require_relative 'questionnaire_must_support_elements'
2
+ require_relative '../../../urls'
3
+ require_relative '../../../full_ehr/v2.0.1/must_support/questionnaire_must_support_elements'
4
4
 
5
5
  module DaVinciDTRTestKit
6
6
  class DTRSmartAppMSQuestionnairePackageRequestTest < Inferno::Test
@@ -1,5 +1,5 @@
1
- require_relative 'token_request_test'
2
- require_relative 'token_validation_test'
1
+ require_relative 'auth/token_request_test'
2
+ require_relative 'auth/token_validation_test'
3
3
 
4
4
  module DaVinciDTRTestKit
5
5
  class OAuth2AuthenticationGroup < Inferno::TestGroup
@@ -1,5 +1,5 @@
1
1
  require_relative 'dtr_respiratory_questionnaire_package_request_test'
2
- require_relative '../shared/dtr_questionnaire_package_request_validation_test'
2
+ require_relative '../../../full_ehr/v2.0.1/shared/dtr_questionnaire_package_request_validation_test'
3
3
 
4
4
  module DaVinciDTRTestKit
5
5
  class DTRRespiratoryQuestionnairePackageGroup < Inferno::TestGroup
@@ -1,4 +1,4 @@
1
- require_relative '../../urls'
1
+ require_relative '../../../urls'
2
2
 
3
3
  module DaVinciDTRTestKit
4
4
  class DTRRespiratoryQuestionnairePackageRequestTest < Inferno::Test
@@ -1,6 +1,6 @@
1
1
  require_relative 'dtr_respiratory_questionnaire_response_save_test'
2
- require_relative '../shared/dtr_questionnaire_response_basic_conformance_test'
3
- require_relative '../shared/dtr_questionnaire_response_prepopulation_test'
2
+ require_relative '../../../full_ehr/v2.0.1/shared/dtr_questionnaire_response_basic_conformance_test'
3
+ require_relative '../../../full_ehr/v2.0.1/shared/dtr_questionnaire_response_prepopulation_test'
4
4
 
5
5
  module DaVinciDTRTestKit
6
6
  class DTRRespiratoryQuestionnaireResponseGroup < Inferno::TestGroup
@@ -1,4 +1,4 @@
1
- require_relative '../../urls'
1
+ require_relative '../../../urls'
2
2
 
3
3
  module DaVinciDTRTestKit
4
4
  class DTRRespiratoryQuestionnaireResponseSaveTest < Inferno::Test
@@ -1,5 +1,5 @@
1
1
  require 'securerandom'
2
- require_relative '../../urls'
2
+ require_relative '../../../urls'
3
3
 
4
4
  module DaVinciDTRTestKit
5
5
  class DTRRespiratoryRenderingAttestationTest < Inferno::Test
@@ -1,4 +1,4 @@
1
- require_relative '../../urls'
1
+ require_relative '../../../urls'
2
2
 
3
3
  module DaVinciDTRTestKit
4
4
  class DTRSmartAppAdaptiveRequestTest < Inferno::Test
@@ -1,5 +1,5 @@
1
1
  require 'securerandom'
2
- require_relative '../../urls'
2
+ require_relative '../../../urls'
3
3
 
4
4
  module DaVinciDTRTestKit
5
5
  class DTRSmartAppPrepopulationAttestationTest < Inferno::Test
@@ -1,5 +1,5 @@
1
1
  require 'securerandom'
2
- require_relative '../../urls'
2
+ require_relative '../../../urls'
3
3
 
4
4
  module DaVinciDTRTestKit
5
5
  class DTRSmartAppPrepopulationOverrideAttestationTest < Inferno::Test
@@ -1,5 +1,5 @@
1
1
  require 'base64'
2
- require_relative '../../urls'
2
+ require_relative '../../../urls'
3
3
 
4
4
  module DaVinciDTRTestKit
5
5
  class DTRSmartAppQuestionnairePackageRequestTest < Inferno::Test
@@ -1,4 +1,4 @@
1
- require_relative '../../dtr_questionnaire_response_validation'
1
+ require_relative '../../../cross_suite/v2.0.1/dtr_questionnaire_response_validation'
2
2
 
3
3
  module DaVinciDTRTestKit
4
4
  class DTRSmartAppQuestionnaireResponseCorrectnessTest < Inferno::Test
@@ -1,4 +1,4 @@
1
- require_relative '../../urls'
1
+ require_relative '../../../urls'
2
2
 
3
3
  module DaVinciDTRTestKit
4
4
  class DTRSmartAppQuestionnaireResponseSaveTest < Inferno::Test
@@ -1,5 +1,5 @@
1
1
  require_relative 'dtr_smart_app_questionnaire_response_save_test'
2
- require_relative '../shared/dtr_questionnaire_response_basic_conformance_test'
2
+ require_relative '../../../full_ehr/v2.0.1/shared/dtr_questionnaire_response_basic_conformance_test'
3
3
 
4
4
  module DaVinciDTRTestKit
5
5
  class DTRSmartAppSavingQuestionnaireResponseGroup < Inferno::TestGroup
@@ -1,8 +1,10 @@
1
1
  module DaVinciDTRTestKit
2
2
  QUESTIONNAIRE_TAG = 'payer_server_questionnaire_package'.freeze
3
3
  NEXT_TAG = 'payer_server_adaptive_questionnaire_package'.freeze
4
+ VALUE_SET_EXPAND_TAG = 'payer_server_value_set_expand'.freeze
4
5
  QUESTIONNAIRE_PACKAGE_TAG = 'dtr_questionnaire_package'.freeze
5
6
  CLIENT_NEXT_TAG = 'dtr_questionnaire_next_question'.freeze
7
+ CLIENT_QUESTIONNAIRE_MUST_SUPPORT = 'dtr_questionnaire_must_support'.freeze
6
8
  EHR_AUTHORIZE_TAG = 'dtr_smart_app_ehr_authorize'.freeze
7
9
  SUPPORTED_PAYER_TAG = 'light_ehr_supported_payer_endpoint'.freeze
8
10
  end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module DaVinciDTRTestKit
4
- VERSION = '0.17.1'
5
- LAST_UPDATED = '2026-05-27'
4
+ VERSION = '0.18.0'
5
+ LAST_UPDATED = '2026-09-08'
6
6
  end