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,85 @@
1
+ require_relative '../../../urls'
2
+ require_relative '../../../cross_suite/v2.2.0/multi_request_message_helper'
3
+ require_relative '../../short_circuit_interaction_verification'
4
+ require_relative '../../../cross_suite/v2.2.0/questionnaire_helper'
5
+
6
+ module DaVinciDTRTestKit
7
+ class DTRFullEHRV220NextQuestionRequestValidationTest < Inferno::Test
8
+ include URLs
9
+ include MultiRequestMessageHelper
10
+ include ShortCircuitInteractionVerification
11
+ include QuestionnaireHelper
12
+
13
+ id :dtr_full_ehr_v220_nq_request_validation
14
+ title 'Next Question request is valid'
15
+ description %(
16
+ This test validates the conformance of the client's request to the
17
+ [DTR Next Question Input Parameters](https://hl7.org/fhir/us/davinci-dtr/2.2.0/en/StructureDefinition-dtr-next-question-input-parameters.html)
18
+ structure. Because there is only a single in parameter, the request is allowed to be just a
19
+ [DTR Questionnaire Response for adaptive form](https://hl7.org/fhir/us/davinci-dtr/2.2.0/en/StructureDefinition-dtr-questionnaireresponse-adapt.html)
20
+ per [FHIR's operation request requirements](https://www.hl7.org/fhir/R4/operations.html#request).
21
+
22
+ The test verifies the presence of mandatory elements and that elements with required bindings contain appropriate
23
+ values. CodeableConcept element bindings will fail if none of their codings have a code/system belonging
24
+ to the bound ValueSet. Quantity, Coding, and code element bindings will fail if their code/system are not found in
25
+ the valueset.
26
+ )
27
+
28
+ def target_tags
29
+ tags = [CLIENT_NEXT_TAG]
30
+ tags << config.options[:dtr_workflow_tag] if config.options[:dtr_workflow_tag].present?
31
+
32
+ tags
33
+ end
34
+
35
+ run do
36
+ check_for_short_circuit(ok_message: config.options[:short_circuit_pass_message])
37
+ check_for_adaptive_short_circuit
38
+
39
+ requests = load_tagged_requests(*target_tags)
40
+ skip_if requests.blank?, 'A $next-question request must be made prior to running this test'
41
+
42
+ requests.each_with_index do |qp_request, request_index|
43
+ unless qp_request.url == next_url
44
+ add_request_message(
45
+ 'error',
46
+ "Request made to wrong URL: #{qp_request.url}. Should instead be to #{next_url}.",
47
+ request_index
48
+ )
49
+ end
50
+
51
+ input_resource = parse_fhir_request_entity(qp_request.request_body, 'Request', request_index)
52
+ unless input_resource.present?
53
+ add_request_message(
54
+ 'error',
55
+ 'Request does not contain a recognized FHIR resource',
56
+ request_index
57
+ )
58
+ next
59
+ end
60
+
61
+ if input_resource.is_a?(FHIR::QuestionnaireResponse)
62
+ resource_is_valid?(resource: input_resource,
63
+ profile_url: 'http://hl7.org/fhir/us/davinci-dtr/StructureDefinition/dtr-questionnaireresponse-adapt|2.2.0',
64
+ message_prefix: request_prefix(request_index))
65
+
66
+ elsif input_resource.is_a?(FHIR::Parameters)
67
+ resource_is_valid?(resource: input_resource,
68
+ profile_url: 'http://hl7.org/fhir/us/davinci-dtr/StructureDefinition/dtr-next-question-input-parameters|2.2.0',
69
+ message_prefix: request_prefix(request_index))
70
+ else
71
+ add_request_message(
72
+ 'error',
73
+ 'Request body contains an unexpected resource type: ' \
74
+ "expected Parameters or QuestionnaireResponse, got '#{input_resource.class}'",
75
+ request_index
76
+ )
77
+ end
78
+ end
79
+
80
+ assert_no_error_messages(
81
+ "#{requests_with_errors_prefix}Non-conformant $next-question request(s). See Messages for details."
82
+ )
83
+ end
84
+ end
85
+ end
@@ -0,0 +1,89 @@
1
+ require_relative '../../../urls'
2
+ require_relative '../../../cross_suite/v2.2.0/multi_request_message_helper'
3
+ require_relative '../../short_circuit_interaction_verification'
4
+
5
+ module DaVinciDTRTestKit
6
+ class DTRFullEHRV220QuestionnairePackageRequestValidationTest < Inferno::Test
7
+ include URLs
8
+ include MultiRequestMessageHelper
9
+ include ShortCircuitInteractionVerification
10
+
11
+ id :dtr_full_ehr_v220_qp_request_validation
12
+ title 'Questionnaire Package request is valid'
13
+ description %(
14
+ This test validates the conformance of the client's request to the
15
+ [DTR Questionnaire Package Input Parameters](https://hl7.org/fhir/us/davinci-dtr/2.2.0/en/StructureDefinition-dtr-qpackage-input-parameters.html)
16
+ structure.
17
+
18
+ The test verifies the presence of mandatory elements and that elements with required bindings contain appropriate
19
+ values. CodeableConcept element bindings will fail if none of their codings have a code/system belonging
20
+ to the bound ValueSet. Quantity, Coding, and code element bindings will fail if their code/system are not found in
21
+ the valueset.
22
+ )
23
+
24
+ def target_tags
25
+ tags = [QUESTIONNAIRE_PACKAGE_TAG]
26
+ tags << config.options[:dtr_workflow_tag] if config.options[:dtr_workflow_tag].present?
27
+
28
+ tags
29
+ end
30
+
31
+ run do
32
+ check_for_short_circuit(ok_message: config.options[:short_circuit_pass_message])
33
+
34
+ requests = load_tagged_requests(*target_tags)
35
+ skip_if requests.blank?, 'A Questionnaire Package request must be made prior to running this test'
36
+
37
+ requests.each_with_index do |qp_request, request_index|
38
+ unless qp_request.url == questionnaire_package_url
39
+ add_request_message(
40
+ 'error',
41
+ "Request made to wrong URL: #{qp_request.url}. Should instead be to #{questionnaire_package_url}.",
42
+ request_index
43
+ )
44
+ end
45
+
46
+ input_params = parse_fhir_request_entity(qp_request.request_body, 'Request', request_index)
47
+ unless input_params.present?
48
+ add_request_message(
49
+ 'error',
50
+ 'Request does not contain a recognized FHIR resource',
51
+ request_index
52
+ )
53
+ next
54
+ end
55
+ unless input_params.is_a?(FHIR::Parameters)
56
+ add_request_message(
57
+ 'error',
58
+ 'Request is not FHIR Parameters resource',
59
+ request_index
60
+ )
61
+ next
62
+ end
63
+
64
+ resource_is_valid?(resource: input_params,
65
+ profile_url: 'http://hl7.org/fhir/us/davinci-dtr/StructureDefinition/dtr-qpackage-input-parameters|2.2.0',
66
+ message_prefix: request_prefix(request_index))
67
+
68
+ check_for_required_invocation_details(input_params, request_index)
69
+ end
70
+
71
+ assert_no_error_messages(
72
+ "#{requests_with_errors_prefix}Non-conformant $questionnaire-package request(s). See Messages for details."
73
+ )
74
+ end
75
+
76
+ # - Zero or more canonicals specifying the URL and, (optionally) the version of the Questionnaire(s) to retrieve;
77
+ # - A CRD/PAS context ID, and/or
78
+ # - One or more Request or Encounter resources
79
+ def check_for_required_invocation_details(params, request_index)
80
+ return if params.parameter.any? { |param| ['questionnaire', 'order', 'context'].include?(param.name) }
81
+
82
+ add_request_message(
83
+ 'error',
84
+ 'Request does not contain a Questionnaire canonical, a request resource, or context from CRD or PAS.',
85
+ request_index
86
+ )
87
+ end
88
+ end
89
+ end
@@ -0,0 +1,85 @@
1
+ require_relative '../../../urls'
2
+ require_relative '../../../tags'
3
+ require_relative '../../../cross_suite/v2.2.0/multi_request_message_helper'
4
+ require_relative '../../short_circuit_interaction_verification'
5
+ require_relative '../../../cross_suite/v2.2.0/questionnaire_helper'
6
+
7
+ module DaVinciDTRTestKit
8
+ class DTRFullEHRV220NextQuestionResponseValidationTest < Inferno::Test
9
+ include URLs
10
+ include MultiRequestMessageHelper
11
+ include ShortCircuitInteractionVerification
12
+ include QuestionnaireHelper
13
+
14
+ id :dtr_full_ehr_v220_nq_response_validation
15
+ title 'Next Question responses are valid'
16
+ description %(
17
+ This test validates the conformance of the Inferno's simulated response to the
18
+ output of the [DTR Next Question Operation](https://hl7.org/fhir/us/davinci-dtr/2.2.0/en/OperationDefinition-DTR-Questionnaire-next-question.html).
19
+ Because there is a single out parameter named "return" and its type is a FHIR QuestionnaireResponse resource,
20
+ the [Parameters format is not used](https://www.hl7.org/fhir/R4/operations.html#response)
21
+ and the response is expected to be a raw QuestionnaireResponse conforming to the
22
+ [DTR Questionnaire Response for adaptive form](https://hl7.org/fhir/us/davinci-dtr/2.2.0/en/StructureDefinition-dtr-questionnaireresponse-adapt.html)
23
+ profile.
24
+
25
+ The test verifies the presence of mandatory elements and that elements with required bindings contain appropriate
26
+ values. CodeableConcept element bindings will fail if none of their codings have a code/system belonging
27
+ to the bound ValueSet. Quantity, Coding, and code element bindings will fail if their code/system are not found in
28
+ the valueset.
29
+ )
30
+ simulation_verification
31
+
32
+ def target_tags
33
+ tags = [CLIENT_NEXT_TAG]
34
+ tags << config.options[:dtr_workflow_tag] if config.options[:dtr_workflow_tag].present?
35
+
36
+ tags
37
+ end
38
+
39
+ run do
40
+ check_for_short_circuit(ok_message: config.options[:short_circuit_pass_message])
41
+ check_for_adaptive_short_circuit
42
+
43
+ requests = load_tagged_requests(*target_tags)
44
+ skip_if requests.blank?, 'A Next Question request must be made prior to running this test'
45
+
46
+ requests.each_with_index do |nq_request, request_index|
47
+ unless nq_request.url == next_url
48
+ add_request_message(
49
+ 'error',
50
+ "Request made to wrong URL: #{nq_request.url}. Should instead be to #{next_url}.",
51
+ request_index
52
+ )
53
+ end
54
+
55
+ response_body = parse_fhir_request_entity(nq_request.response_body, 'Response', request_index)
56
+ unless response_body.present?
57
+ add_request_message(
58
+ 'error',
59
+ 'Response does not contain a recognized FHIR resource',
60
+ request_index
61
+ )
62
+ next
63
+ end
64
+
65
+ questionnaire_response = questionnaire_response_from_next_question_response(response_body)
66
+ if questionnaire_response.present?
67
+ resource_is_valid?(validator: :no_unknown_extensions,
68
+ resource: questionnaire_response,
69
+ profile_url: 'http://hl7.org/fhir/us/davinci-dtr/StructureDefinition/dtr-questionnaireresponse-adapt|2.2.0',
70
+ message_prefix: request_prefix(request_index))
71
+ else
72
+ add_request_message(
73
+ 'error',
74
+ 'Response does not contain a QuestionnaireResponse',
75
+ request_index
76
+ )
77
+ end
78
+ end
79
+
80
+ assert_no_error_messages(
81
+ "#{requests_with_errors_prefix}Non-conformant $next-question response(s). See Messages for details."
82
+ )
83
+ end
84
+ end
85
+ end
@@ -0,0 +1,77 @@
1
+ require_relative '../../../urls'
2
+ require_relative '../../../tags'
3
+ require_relative '../../../cross_suite/v2.2.0/multi_request_message_helper'
4
+ require_relative '../../short_circuit_interaction_verification'
5
+
6
+ module DaVinciDTRTestKit
7
+ class DTRFullEHRV220QuestionnairePackageResponseValidationTest < Inferno::Test
8
+ include URLs
9
+ include MultiRequestMessageHelper
10
+ include ShortCircuitInteractionVerification
11
+
12
+ id :dtr_full_ehr_v220_qp_response_validation
13
+ title 'Questionnaire Package response is valid'
14
+ description %(
15
+ This test validates the conformance of the Inferno's simulated response to the
16
+ [DTR Questionnaire Package Output Parameters](https://hl7.org/fhir/us/davinci-dtr/2.2.0/en/StructureDefinition-dtr-qpackage-output-parameters.html)
17
+ structure.
18
+
19
+ The test verifies the presence of mandatory elements and that elements with required bindings contain appropriate
20
+ values. CodeableConcept element bindings will fail if none of their codings have a code/system belonging
21
+ to the bound ValueSet. Quantity, Coding, and code element bindings will fail if their code/system are not found in
22
+ the valueset.
23
+ )
24
+ simulation_verification
25
+
26
+ def target_tags
27
+ tags = [QUESTIONNAIRE_PACKAGE_TAG]
28
+ tags << config.options[:dtr_workflow_tag] if config.options[:dtr_workflow_tag].present?
29
+
30
+ tags
31
+ end
32
+
33
+ run do
34
+ check_for_short_circuit(ok_message: config.options[:short_circuit_pass_message])
35
+
36
+ requests = load_tagged_requests(*target_tags)
37
+ skip_if requests.blank?, 'A Questionnaire Package request must be made prior to running this test'
38
+
39
+ requests.each_with_index do |qp_request, request_index|
40
+ unless qp_request.url == questionnaire_package_url
41
+ add_request_message(
42
+ 'error',
43
+ "Request made to wrong URL: #{qp_request.url}. Should instead be to #{questionnaire_package_url}.",
44
+ request_index
45
+ )
46
+ end
47
+
48
+ output_params = parse_fhir_request_entity(qp_request.response_body, 'Response', request_index)
49
+ unless output_params.present?
50
+ add_request_message(
51
+ 'error',
52
+ 'Response does not contain a recognized FHIR resource',
53
+ request_index
54
+ )
55
+ next
56
+ end
57
+ unless output_params.is_a?(FHIR::Parameters)
58
+ add_request_message(
59
+ 'error',
60
+ 'Response is not FHIR Parameters resource',
61
+ request_index
62
+ )
63
+ next
64
+ end
65
+
66
+ resource_is_valid?(validator: :no_unknown_extensions,
67
+ resource: output_params,
68
+ profile_url: 'http://hl7.org/fhir/us/davinci-dtr/StructureDefinition/dtr-qpackage-output-parameters|2.2.0',
69
+ message_prefix: request_prefix(request_index))
70
+ end
71
+
72
+ assert_no_error_messages(
73
+ "#{requests_with_errors_prefix}Non-conformant $questionnaire-package response(s). See Messages for details."
74
+ )
75
+ end
76
+ end
77
+ end
@@ -0,0 +1,24 @@
1
+ require_relative '../dtr_full_ehr_abstract_adaptive_group'
2
+
3
+ module DaVinciDTRTestKit
4
+ class DTRFullEHRV220WorkflowAdaptive < DTRFullEHRV220AbstractAdaptive
5
+ title 'Adaptive Questionnaire'
6
+ id :dtr_full_ehr_v220_workflow_adaptive
7
+ description <<~DESCRIPTION
8
+ During this group, the DTR Full EHR will demonstrate its ability to complete
9
+ an adaptive Questionnaire.
10
+ DESCRIPTION
11
+ run_as_group
12
+
13
+ config(
14
+ options: {
15
+ qp_single_use: true,
16
+ dtr_workflow_tag: 'adaptive',
17
+ qp_response_template_fixture: File.join('dinner_adaptive',
18
+ 'parameters_questionnaire_dinner_order_adaptive.json'),
19
+ nq_questionnaire_template_fixture: File.join('dinner_adaptive',
20
+ 'dinner_order_adaptive_next_question_template.json')
21
+ }
22
+ )
23
+ end
24
+ end
@@ -0,0 +1,21 @@
1
+ require_relative '../dtr_full_ehr_abstract_standard_group'
2
+
3
+ module DaVinciDTRTestKit
4
+ class DTRFullEHRV220WorkflowStandard < DTRFullEHRV220AbstractStandard
5
+ title 'Standard Questionnaire'
6
+ id :dtr_full_ehr_v220_workflow_standard
7
+ description <<~DESCRIPTION
8
+ During this group, the DTR Full EHR will demonstrate its ability to complete
9
+ a standard Questionnaire.
10
+ DESCRIPTION
11
+ run_as_group
12
+
13
+ config(
14
+ options: {
15
+ qp_single_use: true,
16
+ dtr_workflow_tag: 'static',
17
+ qp_response_template_fixture: File.join('dinner_static', 'parameters_questionnaire_dinner_order_static.json')
18
+ }
19
+ )
20
+ end
21
+ end
@@ -0,0 +1,21 @@
1
+ module DaVinciDTRTestKit
2
+ class Generator
3
+ class IGMetadata
4
+ attr_accessor :ig_version, :profiles
5
+
6
+ def to_hash
7
+ {
8
+ ig_version:,
9
+ profiles: profiles.map(&:to_hash)
10
+ }
11
+ end
12
+
13
+ # Directory/file-safe identifier for a profile. DTR profile ids are already
14
+ # unique per resource type (eg dtr-questionnaireresponse vs
15
+ # dtr-questionnaireresponse-adapt), so the profile url's own id segment is sufficient.
16
+ def snake_case_for_profile(profile_metadata)
17
+ profile_metadata.profile_url.split('StructureDefinition/').last.underscore
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,57 @@
1
+ require 'inferno/dsl/must_support_metadata_extractor'
2
+ require 'inferno/dsl/profile_metadata'
3
+
4
+ module DaVinciDTRTestKit
5
+ class Generator
6
+ class ProfileMetadataExtractor
7
+ attr_accessor :profile_url, :ig_resources, :element_scope
8
+
9
+ def initialize(profile_url, ig_resources, element_scope = 'snapshot')
10
+ self.profile_url = profile_url
11
+ self.ig_resources = ig_resources
12
+ self.element_scope = element_scope
13
+ end
14
+
15
+ def profile_metadata
16
+ @profile_metadata ||=
17
+ Inferno::DSL::ProfileMetadata.new(
18
+ resource:,
19
+ profile_url:,
20
+ profile_name:,
21
+ profile_version:,
22
+ must_supports:
23
+ )
24
+ end
25
+
26
+ def profile
27
+ @profile ||= ig_resources.profile_by_url(profile_url)
28
+ end
29
+
30
+ def profile_elements
31
+ @profile_elements ||= element_scope == 'snapshot' ? profile.snapshot.element : profile.differential.element
32
+ end
33
+
34
+ def resource
35
+ profile.type
36
+ end
37
+
38
+ def profile_name
39
+ profile.title.gsub(' ', ' ')
40
+ end
41
+
42
+ def profile_version
43
+ profile.version
44
+ end
45
+
46
+ def must_support_metadata_extractor
47
+ @must_support_metadata_extractor ||=
48
+ Inferno::DSL::MustSupportMetadataExtractor.new(profile_elements, profile, resource, ig_resources)
49
+ end
50
+
51
+ def must_supports
52
+ @must_supports ||=
53
+ must_support_metadata_extractor.must_supports
54
+ end
55
+ end
56
+ end
57
+ end
@@ -0,0 +1,117 @@
1
+ require 'active_support/all'
2
+ require 'inferno/ext/fhir_models'
3
+ require 'inferno/entities/entity'
4
+ require 'inferno/entities/attributes'
5
+ require 'inferno/entities/ig'
6
+
7
+ require_relative 'generator/ig_metadata'
8
+ require_relative 'generator/profile_metadata_extractor'
9
+
10
+ module DaVinciDTRTestKit
11
+ # Generates profile metadata files (used by the test kit's must support tests)
12
+ # from a DTR IG package into cross_suite/generated/<ig_version>.
13
+ class Generator
14
+ TARGET_IG_VERSIONS = ['2.2.0'].freeze
15
+
16
+ # Must support checks are scoped to only differential for standard and adaptive
17
+ TARGET_PROFILES_AND_ELEMENT_SCOPE = {
18
+ 'http://hl7.org/fhir/us/davinci-dtr/StructureDefinition/DTR-QPackageBundle' => 'snapshot',
19
+ 'http://hl7.org/fhir/us/davinci-dtr/StructureDefinition/dtr-qpackage-output-parameters' => 'snapshot',
20
+ 'http://hl7.org/fhir/us/davinci-dtr/StructureDefinition/dtr-base-questionnaire' => 'snapshot',
21
+ 'http://hl7.org/fhir/us/davinci-dtr/StructureDefinition/dtr-questionnaire-adapt' => 'differential',
22
+ 'http://hl7.org/fhir/us/davinci-dtr/StructureDefinition/dtr-questionnaire-adapt-search' => 'snapshot',
23
+ 'http://hl7.org/fhir/us/davinci-dtr/StructureDefinition/dtr-std-questionnaire' => 'differential'
24
+ }.freeze
25
+
26
+ def self.generate
27
+ ig_packages = Dir.glob(File.join(Dir.pwd, 'lib', 'davinci_dtr_test_kit', 'igs', '*.tgz'))
28
+
29
+ ig_packages.each do |ig_package|
30
+ generator = new(ig_package)
31
+ next unless TARGET_IG_VERSIONS.include?(generator.ig_version_from_file_name)
32
+
33
+ generator.generate
34
+ end
35
+ end
36
+
37
+ attr_accessor :ig_resources, :ig_metadata, :ig_file_name
38
+
39
+ def initialize(ig_file_name)
40
+ self.ig_file_name = ig_file_name
41
+ end
42
+
43
+ def ig_version_from_file_name
44
+ File.basename(ig_file_name, '.tgz').split('_').last
45
+ end
46
+
47
+ def generate
48
+ puts "Generating profile metadata for IG #{File.basename(ig_file_name)}"
49
+ load_ig_package
50
+ extract_metadata
51
+ write_profile_metadata
52
+ end
53
+
54
+ def load_ig_package
55
+ self.ig_resources = Inferno::Entities::IG.from_file(
56
+ ig_file_name,
57
+ standalone_resources_directory: ig_file_name.chomp('.tgz')
58
+ )
59
+ end
60
+
61
+ # DTR profiles analyzed include the Questionnaires
62
+ def target_profiles
63
+ ig_resources.resources_by_type['StructureDefinition'].select do |structure_definition|
64
+ TARGET_PROFILES_AND_ELEMENT_SCOPE.key?(structure_definition.url)
65
+ end
66
+ end
67
+
68
+ def extract_metadata
69
+ self.ig_metadata = IGMetadata.new
70
+ ig_metadata.ig_version = "v#{ig_resources.ig_resource.version}"
71
+ ig_metadata.profiles = target_profiles.map do |profile|
72
+ element_scope = TARGET_PROFILES_AND_ELEMENT_SCOPE[profile.url]
73
+ profile_metadata = ProfileMetadataExtractor.new(profile.url, ig_resources, element_scope).profile_metadata
74
+
75
+ # handle gap when looking at differential
76
+ profile_metadata.must_supports[:recursive_elements] << 'item' if element_scope == 'differential'
77
+ add_parameters_slice_discriminators(profile_metadata) if questionnaire_package_output_parameters?(profile)
78
+
79
+ profile_metadata
80
+ end
81
+
82
+ FileUtils.mkdir_p(base_output_dir)
83
+ File.write(File.join(base_output_dir, 'metadata.yml'), YAML.dump(ig_metadata.to_hash))
84
+ end
85
+
86
+ def base_output_dir
87
+ File.join(__dir__, 'cross_suite', 'generated', ig_metadata.ig_version)
88
+ end
89
+
90
+ def write_profile_metadata
91
+ ig_metadata.profiles.each do |profile_metadata|
92
+ metadata_file_dir = File.join(base_output_dir, ig_metadata.snake_case_for_profile(profile_metadata))
93
+ FileUtils.mkdir_p(metadata_file_dir)
94
+ File.write(File.join(metadata_file_dir, 'metadata.yml'), YAML.dump(profile_metadata.to_hash))
95
+ end
96
+ end
97
+
98
+ def questionnaire_package_output_parameters?(profile)
99
+ profile.url == 'http://hl7.org/fhir/us/davinci-dtr/StructureDefinition/dtr-qpackage-output-parameters'
100
+ end
101
+
102
+ # This is a workaround for Inferno Core treating slice discriminators defined with `patternString` as unsupported.
103
+ # The QuestionnairePackage Output Parameters profile slices `Parameters.parameter` by `name` (`packagebundle`
104
+ # and `outcome`), so replace only unsupported discriminators with equivalent value metadata. If Core gets updated
105
+ # to support `patternString`, this method becomes a no-op and can be removed.
106
+ def add_parameters_slice_discriminators(profile_metadata)
107
+ profile_metadata.must_supports[:slices].each do |slice|
108
+ next unless slice.dig(:discriminator, :type) == 'unsupported'
109
+
110
+ slice[:discriminator] = {
111
+ type: 'value',
112
+ values: [{ path: 'name', value: slice[:slice_name] }]
113
+ }
114
+ end
115
+ end
116
+ end
117
+ end
@@ -1,5 +1,5 @@
1
1
  module DaVinciDTRTestKit
2
- module DTROptions
2
+ module DTRLightEHROptions
3
3
  SMART_2 = 'smart_app_launch_2'.freeze
4
4
 
5
5
  SMART_2_REQUIREMENT = { smart_app_launch_version: SMART_2 }.freeze
@@ -1,7 +1,6 @@
1
1
  require 'us_core_test_kit'
2
2
  require 'tls_test_kit'
3
- require_relative 'version'
4
- require_relative 'dtr_options'
3
+ require_relative '../dtr_light_ehr_options'
5
4
  require_relative 'profiles/questionnaire_response_group'
6
5
  require_relative 'profiles/coverage_group'
7
6
  require_relative 'profiles/communication_request_group'
@@ -12,9 +11,9 @@ require_relative 'profiles/nutrition_order_group'
12
11
  require_relative 'profiles/service_request_group'
13
12
  require_relative 'profiles/task_group'
14
13
  require_relative 'profiles/vision_prescription_group'
15
- require_relative 'client_groups/light_ehr/dtr_smart_ehr_launch'
16
- require_relative 'endpoints/mock_payer/light_ehr_supported_payer_endpoint'
17
- require_relative 'client_groups/light_ehr/dtr_light_ehr_supported_endpoints_group'
14
+ require_relative 'dtr_smart_ehr_launch'
15
+ require_relative '../endpoints/light_ehr_supported_payer_endpoint'
16
+ require_relative 'dtr_light_ehr_supported_endpoints_group'
18
17
  require 'smart_app_launch/smart_stu1_suite'
19
18
  require 'smart_app_launch/smart_stu2_suite'
20
19
  require 'us_core_test_kit/generated/v3.1.1/us_core_test_suite'
@@ -22,8 +21,8 @@ require 'us_core_test_kit/generated/v3.1.1/us_core_test_suite'
22
21
  module DaVinciDTRTestKit
23
22
  class DTRLightEHRSuite < Inferno::TestSuite
24
23
  id :dtr_light_ehr
25
- title 'Da Vinci DTR Light EHR Test Suite'
26
- description File.read(File.join(__dir__, 'docs', 'dtr_light_ehr_suite_description_v201.md'))
24
+ title 'Da Vinci DTR Light EHR Test Suite v2.0.1'
25
+ description File.read(File.join(__dir__, 'dtr_light_ehr_suite_description_v201.md'))
27
26
 
28
27
  links [
29
28
  {
@@ -104,7 +103,7 @@ module DaVinciDTRTestKit
104
103
  )
105
104
 
106
105
  group from: :smart_discovery_stu2 do
107
- required_suite_options DTROptions::SMART_2_REQUIREMENT
106
+ required_suite_options DTRLightEHROptions::SMART_2_REQUIREMENT
108
107
  run_as_group
109
108
 
110
109
  test from: :tls_version_test do
@@ -129,7 +128,7 @@ module DaVinciDTRTestKit
129
128
  end
130
129
 
131
130
  group from: :dtr_smart_ehr_launch,
132
- required_suite_options: DTROptions::SMART_2_REQUIREMENT,
131
+ required_suite_options: DTRLightEHROptions::SMART_2_REQUIREMENT,
133
132
  run_as_group: true,
134
133
  config: {
135
134
  outputs: {
@@ -1,8 +1,8 @@
1
- require_relative 'dtr_light_ehr_supported_payers_config_test'
2
- require_relative 'dtr_light_ehr_supported_payers_accept_header_test'
3
- require_relative 'dtr_light_ehr_supported_payers_endpoint_test'
4
- require_relative 'dtr_light_ehr_supported_payers_user_response_test'
5
- require_relative 'dtr_light_ehr_supported_payers_use_test'
1
+ require_relative 'supported_endpoints/dtr_light_ehr_supported_payers_config_test'
2
+ require_relative 'supported_endpoints/dtr_light_ehr_supported_payers_accept_header_test'
3
+ require_relative 'supported_endpoints/dtr_light_ehr_supported_payers_endpoint_test'
4
+ require_relative 'supported_endpoints/dtr_light_ehr_supported_payers_user_response_test'
5
+ require_relative 'supported_endpoints/dtr_light_ehr_supported_payers_use_test'
6
6
 
7
7
  module DaVinciDTRTestKit
8
8
  class DTRLightEHRSupportedEndpointsGroup < Inferno::TestGroup
@@ -1,6 +1,6 @@
1
- require_relative 'fhir_launch_context_test'
2
- require_relative 'fhir_context_coverage_test'
3
- require_relative 'fhir_context_references_test'
1
+ require_relative 'smart_ehr_launch/fhir_launch_context_test'
2
+ require_relative 'smart_ehr_launch/fhir_context_coverage_test'
3
+ require_relative 'smart_ehr_launch/fhir_context_references_test'
4
4
  require 'smart_app_launch/ehr_launch_group_stu2'
5
5
 
6
6
  module DaVinciDTRTestKit