davinci_dtr_test_kit 0.17.0 → 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/{cql_test.rb → cross_suite/v2.0.1/cql_test.rb} +3 -3
  15. data/lib/davinci_dtr_test_kit/cross_suite/v2.2.0/dtr_conformance_verification.rb +21 -0
  16. data/lib/davinci_dtr_test_kit/cross_suite/v2.2.0/multi_request_message_helper.rb +35 -0
  17. data/lib/davinci_dtr_test_kit/cross_suite/v2.2.0/questionnaire_helper.rb +162 -0
  18. data/lib/davinci_dtr_test_kit/{dtr_client_options.rb → full_ehr/dtr_full_ehr_options.rb} +1 -1
  19. data/lib/davinci_dtr_test_kit/{endpoints → full_ehr/endpoints}/mock_payer.rb +9 -3
  20. data/lib/davinci_dtr_test_kit/{endpoints → full_ehr/endpoints}/mock_udap_smart_server/token_endpoint.rb +2 -2
  21. data/lib/davinci_dtr_test_kit/full_ehr/fixture_loader.rb +37 -0
  22. data/lib/davinci_dtr_test_kit/full_ehr/fixtures/dinner_adaptive/dinner_order_adaptive_next_question_template.json +243 -0
  23. data/lib/davinci_dtr_test_kit/full_ehr/fixtures/dinner_adaptive/parameters_questionnaire_dinner_order_adaptive.json +104 -0
  24. data/lib/davinci_dtr_test_kit/full_ehr/fixtures/dinner_static/parameters_questionnaire_dinner_order_static.json +291 -0
  25. data/lib/davinci_dtr_test_kit/full_ehr/fixtures/empty_templates/next_question_template_empty.json +1 -0
  26. data/lib/davinci_dtr_test_kit/full_ehr/fixtures/empty_templates/parameters_questionnaire_package_empty.json +9 -0
  27. data/lib/davinci_dtr_test_kit/full_ehr/short_circuit_interaction_verification.rb +73 -0
  28. 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 +2 -1
  29. 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
  30. 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
  31. 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
  32. 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
  33. 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
  34. 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
  35. 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
  36. data/lib/davinci_dtr_test_kit/{client_groups/adaptive_questionnaire/custom → full_ehr/v2.0.1}/dtr_full_ehr_custom_adaptive_workflow_group.rb +18 -16
  37. 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
  38. data/lib/davinci_dtr_test_kit/{client_groups/must_support → full_ehr/v2.0.1}/dtr_full_ehr_questionnaire_must_support_group.rb +8 -7
  39. 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
  40. data/lib/davinci_dtr_test_kit/{dtr_full_ehr_suite.rb → full_ehr/v2.0.1/dtr_full_ehr_suite.rb} +23 -20
  41. 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
  42. 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
  43. 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
  44. 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
  45. data/lib/davinci_dtr_test_kit/{client_groups → full_ehr/v2.0.1}/must_support/dtr_must_support_attestation_test.rb +2 -1
  46. data/lib/davinci_dtr_test_kit/{client_groups → full_ehr/v2.0.1}/must_support/dtr_questionnaire_must_support_test.rb +3 -2
  47. data/lib/davinci_dtr_test_kit/{client_groups → full_ehr/v2.0.1}/payer_registration/configuration_display_smart_test.rb +1 -1
  48. data/lib/davinci_dtr_test_kit/{client_groups → full_ehr/v2.0.1}/payer_registration/configuration_display_udap_test.rb +1 -1
  49. data/lib/davinci_dtr_test_kit/{client_groups → full_ehr/v2.0.1}/shared/dtr_custom_questionnaire_expressions_test.rb +3 -2
  50. data/lib/davinci_dtr_test_kit/{client_groups → full_ehr/v2.0.1}/shared/dtr_custom_questionnaire_extensions_test.rb +3 -2
  51. data/lib/davinci_dtr_test_kit/{client_groups → full_ehr/v2.0.1}/shared/dtr_custom_questionnaire_libraries_test.rb +3 -2
  52. data/lib/davinci_dtr_test_kit/{client_groups → full_ehr/v2.0.1}/shared/dtr_custom_questionnaire_package_validation_test.rb +3 -2
  53. 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
  54. 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
  55. 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
  56. 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
  57. 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
  58. 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
  59. 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
  60. 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
  61. data/lib/davinci_dtr_test_kit/{client_groups → full_ehr/v2.0.1}/shared/dtr_prepopulation_attestation_test.rb +1 -1
  62. data/lib/davinci_dtr_test_kit/{client_groups → full_ehr/v2.0.1}/shared/dtr_prepopulation_override_attestation_test.rb +1 -1
  63. data/lib/davinci_dtr_test_kit/{client_groups → full_ehr/v2.0.1}/shared/dtr_questionnaire_package_request_validation_test.rb +1 -1
  64. data/lib/davinci_dtr_test_kit/{client_groups → full_ehr/v2.0.1}/shared/dtr_questionnaire_response_basic_conformance_test.rb +2 -2
  65. data/lib/davinci_dtr_test_kit/{client_groups → full_ehr/v2.0.1}/shared/dtr_questionnaire_response_prepopulation_test.rb +1 -1
  66. data/lib/davinci_dtr_test_kit/{client_groups → full_ehr/v2.0.1}/shared/dtr_rendering_attestation_test.rb +1 -1
  67. 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
  68. data/lib/davinci_dtr_test_kit/full_ehr/v2.2.0/dtr_full_ehr_abstract_adaptive_group.rb +87 -0
  69. data/lib/davinci_dtr_test_kit/full_ehr/v2.2.0/dtr_full_ehr_abstract_standard_group.rb +59 -0
  70. data/lib/davinci_dtr_test_kit/full_ehr/v2.2.0/dtr_full_ehr_suite.rb +145 -0
  71. data/lib/davinci_dtr_test_kit/full_ehr/v2.2.0/dtr_full_ehr_suite_description_v220.md +254 -0
  72. data/lib/davinci_dtr_test_kit/full_ehr/v2.2.0/full_ehr_next_question_endpoint.rb +391 -0
  73. data/lib/davinci_dtr_test_kit/full_ehr/v2.2.0/full_ehr_questionnaire_package_endpoint.rb +206 -0
  74. data/lib/davinci_dtr_test_kit/full_ehr/v2.2.0/interaction/adaptive_questionnaires_completed_test.rb +108 -0
  75. data/lib/davinci_dtr_test_kit/full_ehr/v2.2.0/interaction/interaction_wait_test.rb +177 -0
  76. data/lib/davinci_dtr_test_kit/full_ehr/v2.2.0/interaction/ui_display_and_interaction_attestation_test.rb +132 -0
  77. data/lib/davinci_dtr_test_kit/full_ehr/v2.2.0/must_support/dtr_additional_questionnaires_interaction_group.rb +74 -0
  78. data/lib/davinci_dtr_test_kit/full_ehr/v2.2.0/must_support/dtr_questionnaire_adaptive_must_support_test.rb +45 -0
  79. data/lib/davinci_dtr_test_kit/full_ehr/v2.2.0/must_support/dtr_questionnaire_base_must_support_test.rb +43 -0
  80. data/lib/davinci_dtr_test_kit/full_ehr/v2.2.0/must_support/dtr_questionnaire_standard_must_support_test.rb +45 -0
  81. data/lib/davinci_dtr_test_kit/full_ehr/v2.2.0/next_question_template_questionnaires.rb +21 -0
  82. data/lib/davinci_dtr_test_kit/full_ehr/v2.2.0/request/dtr_next_question_request_validation_test.rb +85 -0
  83. data/lib/davinci_dtr_test_kit/full_ehr/v2.2.0/request/dtr_questionnaire_package_request_validation_test.rb +89 -0
  84. data/lib/davinci_dtr_test_kit/full_ehr/v2.2.0/response/dtr_next_question_response_validation_test.rb +85 -0
  85. data/lib/davinci_dtr_test_kit/full_ehr/v2.2.0/response/dtr_questionnaire_package_response_validation_test.rb +77 -0
  86. data/lib/davinci_dtr_test_kit/full_ehr/v2.2.0/workflows/dtr_full_ehr_workflow_adaptive_group.rb +24 -0
  87. data/lib/davinci_dtr_test_kit/full_ehr/v2.2.0/workflows/dtr_full_ehr_workflow_standard_group.rb +21 -0
  88. data/lib/davinci_dtr_test_kit/generator/ig_metadata.rb +21 -0
  89. data/lib/davinci_dtr_test_kit/generator/profile_metadata_extractor.rb +57 -0
  90. data/lib/davinci_dtr_test_kit/generator.rb +117 -0
  91. data/lib/davinci_dtr_test_kit/igs/davinci_dtr_2.2.0.tgz +0 -0
  92. data/lib/davinci_dtr_test_kit/{dtr_options.rb → light_ehr/dtr_light_ehr_options.rb} +1 -1
  93. data/lib/davinci_dtr_test_kit/{dtr_light_ehr_suite.rb → light_ehr/v2.0.1/dtr_light_ehr_suite.rb} +21 -10
  94. data/lib/davinci_dtr_test_kit/{client_groups/light_ehr → light_ehr/v2.0.1}/dtr_light_ehr_supported_endpoints_group.rb +5 -5
  95. data/lib/davinci_dtr_test_kit/{client_groups/light_ehr → light_ehr/v2.0.1}/dtr_smart_ehr_launch.rb +3 -3
  96. data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/communication_request/communication_request_read.rb +1 -1
  97. data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/coverage/coverage_read.rb +1 -1
  98. data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/device_request/device_request_read.rb +1 -1
  99. data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/encounter/encounter_read.rb +1 -1
  100. data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/medication_request/medication_request_read.rb +1 -1
  101. data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/nutrition_order/nutrition_order_read.rb +1 -1
  102. data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/questionnaire_response/questionnaire_response_create.rb +1 -1
  103. data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/questionnaire_response/questionnaire_response_update.rb +1 -1
  104. data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/service_request/service_request_read.rb +1 -1
  105. data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/task/task_create.rb +1 -1
  106. data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/task/task_read.rb +1 -1
  107. data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/task/task_update.rb +1 -1
  108. data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/vision_prescription/vision_prescription_read.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_accept_header_test.rb +3 -2
  110. 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 +2 -1
  111. 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 +2 -1
  112. 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 +2 -1
  113. 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 +5 -3
  114. data/lib/davinci_dtr_test_kit/metadata.rb +13 -68
  115. data/lib/davinci_dtr_test_kit/requirements/davinci_dtr_test_kit_requirements.csv +216 -0
  116. data/lib/davinci_dtr_test_kit/requirements/generated/dtr_full_ehr_requirements_coverage.csv +1 -1
  117. data/lib/davinci_dtr_test_kit/requirements/generated/dtr_full_ehr_v220_requirements_coverage.csv +1 -0
  118. data/lib/davinci_dtr_test_kit/requirements/generated/dtr_light_ehr_requirements_coverage.csv +1 -1
  119. data/lib/davinci_dtr_test_kit/requirements/generated/dtr_payer_server_requirements_coverage.csv +1 -1
  120. data/lib/davinci_dtr_test_kit/requirements/generated/dtr_payer_server_v220_requirements_coverage.csv +114 -0
  121. data/lib/davinci_dtr_test_kit/requirements/generated/dtr_smart_app_requirements_coverage.csv +1 -1
  122. data/lib/davinci_dtr_test_kit/requirements/hl7.fhir.us.davinci-dtr_2.2.0_requirements.xlsx +0 -0
  123. data/lib/davinci_dtr_test_kit/{endpoints/mock_payer → server/endpoints}/next_question_proxy_endpoint.rb +2 -0
  124. data/lib/davinci_dtr_test_kit/{endpoints/mock_payer → server/endpoints}/questionnaire_package_proxy_endpoint.rb +2 -0
  125. data/lib/davinci_dtr_test_kit/{payer_server_groups → server/v2.0.1/adaptive_forms}/adaptive_form_libraries_test.rb +2 -1
  126. data/lib/davinci_dtr_test_kit/{payer_server_groups → server/v2.0.1/adaptive_forms}/adaptive_form_questionnaire_expressions_test.rb +2 -1
  127. data/lib/davinci_dtr_test_kit/{payer_server_groups → server/v2.0.1/adaptive_forms}/adaptive_form_questionnaire_extensions_test.rb +2 -1
  128. data/lib/davinci_dtr_test_kit/{payer_server_groups → server/v2.0.1/adaptive_forms}/adaptive_next_questionnaire_expressions_test.rb +2 -1
  129. data/lib/davinci_dtr_test_kit/{payer_server_groups → server/v2.0.1/adaptive_forms}/adaptive_next_questionnaire_extensions_test.rb +2 -1
  130. data/lib/davinci_dtr_test_kit/{payer_server_groups → server/v2.0.1/adaptive_forms}/payer_server_adaptive_request_test.rb +2 -1
  131. data/lib/davinci_dtr_test_kit/{payer_server_groups → server/v2.0.1/adaptive_forms}/payer_server_adaptive_request_validation_test.rb +3 -1
  132. data/lib/davinci_dtr_test_kit/{payer_server_groups → server/v2.0.1/adaptive_forms}/payer_server_adaptive_response_bundles_validation_test.rb +3 -1
  133. data/lib/davinci_dtr_test_kit/{payer_server_groups → server/v2.0.1/adaptive_forms}/payer_server_adaptive_response_search_validation_test.rb +3 -1
  134. data/lib/davinci_dtr_test_kit/{payer_server_groups → server/v2.0.1/adaptive_forms}/payer_server_adaptive_response_validation_test.rb +4 -2
  135. data/lib/davinci_dtr_test_kit/{payer_server_groups → server/v2.0.1/adaptive_forms}/payer_server_next_request_validation_test.rb +3 -1
  136. data/lib/davinci_dtr_test_kit/{payer_server_groups → server/v2.0.1/adaptive_forms}/payer_server_next_response_validation_test.rb +3 -1
  137. data/lib/davinci_dtr_test_kit/{dtr_payer_server_suite.rb → server/v2.0.1/dtr_payer_server_suite.rb} +13 -10
  138. data/lib/davinci_dtr_test_kit/{payer_server_groups → server/v2.0.1}/payer_server_adaptive_group.rb +13 -13
  139. data/lib/davinci_dtr_test_kit/{payer_server_groups → server/v2.0.1}/payer_server_static_group.rb +6 -6
  140. data/lib/davinci_dtr_test_kit/{payer_server_groups → server/v2.0.1/static_forms}/static_form_libraries_test.rb +2 -1
  141. data/lib/davinci_dtr_test_kit/{payer_server_groups → server/v2.0.1/static_forms}/static_form_questionnaire_expressions_test.rb +2 -1
  142. data/lib/davinci_dtr_test_kit/{payer_server_groups → server/v2.0.1/static_forms}/static_form_questionnaire_extensions_test.rb +2 -1
  143. data/lib/davinci_dtr_test_kit/{payer_server_groups → server/v2.0.1/static_forms}/static_form_request_test.rb +4 -2
  144. data/lib/davinci_dtr_test_kit/{payer_server_groups → server/v2.0.1/static_forms}/static_form_request_validation_test.rb +3 -2
  145. data/lib/davinci_dtr_test_kit/{payer_server_groups → server/v2.0.1/static_forms}/static_form_response_validation_test.rb +5 -3
  146. data/lib/davinci_dtr_test_kit/server/v2.2.0/client_simulation.rb +297 -0
  147. data/lib/davinci_dtr_test_kit/server/v2.2.0/dtr_payer_server_capability_statement_test.rb +73 -0
  148. data/lib/davinci_dtr_test_kit/server/v2.2.0/dtr_payer_server_suite.rb +322 -0
  149. data/lib/davinci_dtr_test_kit/server/v2.2.0/dtr_payer_server_suite_description_v220.md +37 -0
  150. data/lib/davinci_dtr_test_kit/server/v2.2.0/interaction_test.rb +97 -0
  151. data/lib/davinci_dtr_test_kit/server/v2.2.0/log_questionnaire_errors_support_test.rb +57 -0
  152. data/lib/davinci_dtr_test_kit/server/v2.2.0/must_support/questionnaire_adaptive_must_support_test.rb +47 -0
  153. data/lib/davinci_dtr_test_kit/server/v2.2.0/must_support/questionnaire_adaptive_search_must_support_test.rb +40 -0
  154. data/lib/davinci_dtr_test_kit/server/v2.2.0/must_support/questionnaire_base_must_support_test.rb +40 -0
  155. data/lib/davinci_dtr_test_kit/server/v2.2.0/must_support/questionnaire_package_bundle_must_support_test.rb +38 -0
  156. data/lib/davinci_dtr_test_kit/server/v2.2.0/must_support/questionnaire_package_output_parameters_must_support_test.rb +37 -0
  157. data/lib/davinci_dtr_test_kit/server/v2.2.0/must_support/questionnaire_standard_must_support_test.rb +39 -0
  158. data/lib/davinci_dtr_test_kit/server/v2.2.0/next_question_request_validation_test.rb +45 -0
  159. data/lib/davinci_dtr_test_kit/server/v2.2.0/next_question_support/adaptive_questionnaire_endpoint_test.rb +98 -0
  160. data/lib/davinci_dtr_test_kit/server/v2.2.0/next_question_support/invalid_questionnaire_response_test.rb +43 -0
  161. data/lib/davinci_dtr_test_kit/server/v2.2.0/next_question_support/next_contained_questionnaire_response_references_test.rb +46 -0
  162. data/lib/davinci_dtr_test_kit/server/v2.2.0/next_question_support/next_question_response_references_test.rb +56 -0
  163. data/lib/davinci_dtr_test_kit/server/v2.2.0/next_question_support/next_question_response_validation_test.rb +67 -0
  164. data/lib/davinci_dtr_test_kit/server/v2.2.0/questionnaire_design/contained_binary_test.rb +58 -0
  165. data/lib/davinci_dtr_test_kit/server/v2.2.0/questionnaire_design/contained_binary_validation.rb +128 -0
  166. data/lib/davinci_dtr_test_kit/server/v2.2.0/questionnaire_design/cql_library_validation_test.rb +58 -0
  167. data/lib/davinci_dtr_test_kit/server/v2.2.0/questionnaire_design/questionnaire_design_support.rb +65 -0
  168. data/lib/davinci_dtr_test_kit/server/v2.2.0/questionnaire_design/questionnaire_expression_elm_test.rb +81 -0
  169. data/lib/davinci_dtr_test_kit/server/v2.2.0/questionnaire_design/questionnaire_expression_language_test.rb +63 -0
  170. data/lib/davinci_dtr_test_kit/server/v2.2.0/questionnaire_design/questionnaire_prepopulation_test.rb +42 -0
  171. data/lib/davinci_dtr_test_kit/server/v2.2.0/questionnaire_design/questionnaire_relevance_logic_test.rb +40 -0
  172. data/lib/davinci_dtr_test_kit/server/v2.2.0/questionnaire_operation_validation.rb +440 -0
  173. data/lib/davinci_dtr_test_kit/server/v2.2.0/questionnaire_package_request_validation_test.rb +42 -0
  174. data/lib/davinci_dtr_test_kit/server/v2.2.0/questionnaire_package_support/adaptive_questionnaire_response_contained_questionnaire_test.rb +127 -0
  175. data/lib/davinci_dtr_test_kit/server/v2.2.0/questionnaire_package_support/adaptive_questionnaire_response_validation_test.rb +61 -0
  176. data/lib/davinci_dtr_test_kit/server/v2.2.0/questionnaire_package_support/contained_questionnaire_response_references_test.rb +42 -0
  177. data/lib/davinci_dtr_test_kit/server/v2.2.0/questionnaire_package_support/dtr_server_no_custom_extension_test.rb +184 -0
  178. data/lib/davinci_dtr_test_kit/server/v2.2.0/questionnaire_package_support/dtr_server_questionnaire_not_found_test.rb +76 -0
  179. data/lib/davinci_dtr_test_kit/server/v2.2.0/questionnaire_package_support/dtr_server_questionnaire_package_contents_test.rb +89 -0
  180. data/lib/davinci_dtr_test_kit/server/v2.2.0/questionnaire_package_support/initial_questionnaire_response_test.rb +132 -0
  181. data/lib/davinci_dtr_test_kit/server/v2.2.0/questionnaire_package_support/questionnaire_package_input_type_test.rb +110 -0
  182. data/lib/davinci_dtr_test_kit/server/v2.2.0/questionnaire_package_support/questionnaire_references_version_specific_test.rb +79 -0
  183. data/lib/davinci_dtr_test_kit/server/v2.2.0/questionnaire_package_support/questionnaire_response_questionnaire_canonical_test.rb +89 -0
  184. data/lib/davinci_dtr_test_kit/server/v2.2.0/questionnaire_package_support/questionnaire_response_references_test.rb +51 -0
  185. data/lib/davinci_dtr_test_kit/server/v2.2.0/questionnaire_package_support/questionnaire_response_validation_test.rb +63 -0
  186. data/lib/davinci_dtr_test_kit/server/v2.2.0/questionnaire_package_support/source_data_error_test.rb +43 -0
  187. data/lib/davinci_dtr_test_kit/server/v2.2.0/questionnaire_package_support/value_set_validation_test.rb +90 -0
  188. data/lib/davinci_dtr_test_kit/server/v2.2.0/questionnaire_response_reference_validation.rb +133 -0
  189. data/lib/davinci_dtr_test_kit/server/v2.2.0/value_set_expand_support/small_value_set_expansion_test.rb +120 -0
  190. data/lib/davinci_dtr_test_kit/server/v2.2.0/value_set_expand_support/value_set_expansion_test.rb +51 -0
  191. data/lib/davinci_dtr_test_kit/server/v2.2.0/value_set_expand_support/value_set_expansion_validation.rb +58 -0
  192. data/lib/davinci_dtr_test_kit/{endpoints → smart_app/endpoints}/mock_authorization/token_endpoint.rb +1 -1
  193. data/lib/davinci_dtr_test_kit/{endpoints → smart_app/endpoints}/mock_ehr/fhir_get_endpoint.rb +1 -1
  194. data/lib/davinci_dtr_test_kit/smart_app/endpoints/mock_payer/smart_app_next_question_endpoint.rb +12 -0
  195. data/lib/davinci_dtr_test_kit/smart_app/endpoints/mock_payer/smart_app_questionnaire_package_endpoint.rb +12 -0
  196. 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 +17 -15
  197. 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
  198. 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
  199. data/lib/davinci_dtr_test_kit/{auth_groups → smart_app/v2.0.1/auth}/token_request_test.rb +1 -1
  200. 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
  201. data/lib/davinci_dtr_test_kit/{client_groups/must_support → smart_app/v2.0.1}/dtr_smart_app_questionnaire_must_support_group.rb +8 -7
  202. data/lib/davinci_dtr_test_kit/{client_groups/respiratory → smart_app/v2.0.1}/dtr_smart_app_respiratory_workflow_group.rb +3 -3
  203. 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
  204. data/lib/davinci_dtr_test_kit/{dtr_smart_app_suite.rb → smart_app/v2.0.1/dtr_smart_app_suite.rb} +25 -21
  205. data/lib/davinci_dtr_test_kit/{docs → smart_app/v2.0.1}/dtr_smart_app_suite_description_v201.md +8 -0
  206. 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
  207. data/lib/davinci_dtr_test_kit/{auth_groups → smart_app/v2.0.1}/oauth2_authentication_group.rb +2 -2
  208. data/lib/davinci_dtr_test_kit/{client_groups/respiratory → smart_app/v2.0.1/static_respiratory}/dtr_respiratory_questionnaire_package_group.rb +1 -1
  209. 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
  210. data/lib/davinci_dtr_test_kit/{client_groups/respiratory → smart_app/v2.0.1/static_respiratory}/dtr_respiratory_questionnaire_response_group.rb +2 -2
  211. 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
  212. data/lib/davinci_dtr_test_kit/{client_groups/respiratory → smart_app/v2.0.1/static_respiratory}/dtr_respiratory_rendering_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_adaptive_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_prepopulation_attestation_test.rb +1 -1
  215. 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
  216. 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
  217. 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
  218. 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
  219. 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
  220. data/lib/davinci_dtr_test_kit/tags.rb +2 -0
  221. data/lib/davinci_dtr_test_kit/version.rb +2 -2
  222. data/lib/davinci_dtr_test_kit.rb +6 -4
  223. metadata +329 -215
  224. data/lib/davinci_dtr_test_kit/certs/InfernoCA.key +0 -52
  225. data/lib/davinci_dtr_test_kit/certs/InfernoCA.pem +0 -35
  226. data/lib/davinci_dtr_test_kit/certs/TestKit.pem +0 -32
  227. data/lib/davinci_dtr_test_kit/certs/TestKitPrivateKey.key +0 -28
  228. data/lib/davinci_dtr_test_kit/endpoints/mock_payer/full_ehr_next_question_endpoint.rb +0 -30
  229. data/lib/davinci_dtr_test_kit/endpoints/mock_payer/full_ehr_questionnaire_package_endpoint.rb +0 -31
  230. data/lib/davinci_dtr_test_kit/fixture_loader.rb +0 -21
  231. /data/lib/davinci_dtr_test_kit/{endpoints → cross_suite}/cors.rb +0 -0
  232. /data/lib/davinci_dtr_test_kit/{dtr_questionnaire_response_validation.rb → cross_suite/v2.0.1/dtr_questionnaire_response_validation.rb} +0 -0
  233. /data/lib/davinci_dtr_test_kit/{descriptions.rb → full_ehr/descriptions.rb} +0 -0
  234. /data/lib/davinci_dtr_test_kit/{fixtures → full_ehr/fixtures}/dinner_adaptive/dinner_order_adaptive_next_question_burrito.json +0 -0
  235. /data/lib/davinci_dtr_test_kit/{fixtures → full_ehr/fixtures}/dinner_adaptive/dinner_order_adaptive_next_question_hamburger.json +0 -0
  236. /data/lib/davinci_dtr_test_kit/{fixtures → full_ehr/fixtures}/dinner_adaptive/dinner_order_adaptive_next_question_initial.json +0 -0
  237. /data/lib/davinci_dtr_test_kit/{fixtures → full_ehr/fixtures}/dinner_adaptive/questionnaire_dinner_order_adaptive.json +0 -0
  238. /data/lib/davinci_dtr_test_kit/{fixtures → full_ehr/fixtures}/dinner_static/questionnaire_dinner_order_static.json +0 -0
  239. /data/lib/davinci_dtr_test_kit/{fixtures → full_ehr/fixtures}/dinner_static/questionnaire_response_dinner_order_static.json +0 -0
  240. /data/lib/davinci_dtr_test_kit/{fixtures → full_ehr/fixtures}/respiratory_assist_device/pre_populated_questionnaire_response.json +0 -0
  241. /data/lib/davinci_dtr_test_kit/{fixtures → full_ehr/fixtures}/respiratory_assist_device/questionnaire_package.json +0 -0
  242. /data/lib/davinci_dtr_test_kit/{fixtures.rb → full_ehr/fixtures.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_completion_group.rb +0 -0
  244. /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
  245. /data/lib/davinci_dtr_test_kit/{client_groups/auth → full_ehr/v2.0.1}/dtr_client_payer_auth_smart_group.rb +0 -0
  246. /data/lib/davinci_dtr_test_kit/{client_groups/auth → full_ehr/v2.0.1}/dtr_client_payer_auth_udap_group.rb +0 -0
  247. /data/lib/davinci_dtr_test_kit/{docs → full_ehr/v2.0.1}/dtr_full_ehr_suite_description_v201.md +0 -0
  248. /data/lib/davinci_dtr_test_kit/{client_groups → full_ehr/v2.0.1}/must_support/questionnaire_must_support_elements.rb +0 -0
  249. /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
  250. /data/lib/davinci_dtr_test_kit/{create_test.rb → light_ehr/create_test.rb} +0 -0
  251. /data/lib/davinci_dtr_test_kit/{endpoints/mock_payer → light_ehr/endpoints}/light_ehr_supported_payer_endpoint.rb +0 -0
  252. /data/lib/davinci_dtr_test_kit/{read_test.rb → light_ehr/read_test.rb} +0 -0
  253. /data/lib/davinci_dtr_test_kit/{update_test.rb → light_ehr/update_test.rb} +0 -0
  254. /data/lib/davinci_dtr_test_kit/{docs → light_ehr/v2.0.1}/dtr_light_ehr_suite_description_v201.md +0 -0
  255. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/communication_request/communication_request_must_support_test.rb +0 -0
  256. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/communication_request/communication_request_validation.rb +0 -0
  257. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/communication_request/metadata.yml +0 -0
  258. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/communication_request_group.rb +0 -0
  259. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/coverage/coverage_must_support_test.rb +0 -0
  260. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/coverage/coverage_validation.rb +0 -0
  261. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/coverage/metadata.yml +0 -0
  262. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/coverage_group.rb +0 -0
  263. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/device_request/device_request_must_support_test.rb +0 -0
  264. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/device_request/device_request_validation.rb +0 -0
  265. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/device_request/metadata.yml +0 -0
  266. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/device_request_group.rb +0 -0
  267. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/encounter/encounter_must_support_test.rb +0 -0
  268. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/encounter/encounter_validation.rb +0 -0
  269. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/encounter/metadata.yml +0 -0
  270. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/encounter_group.rb +0 -0
  271. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/medication_request/medication_request_must_support_test.rb +0 -0
  272. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/medication_request/medication_request_validation.rb +0 -0
  273. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/medication_request/metadata.yml +0 -0
  274. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/medication_request_group.rb +0 -0
  275. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/nutrition_order/metadata.yml +0 -0
  276. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/nutrition_order/nutrition_order_must_support_test.rb +0 -0
  277. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/nutrition_order/nutrition_order_validation.rb +0 -0
  278. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/nutrition_order_group.rb +0 -0
  279. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/questionnaire_response/metadata.yml +0 -0
  280. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/questionnaire_response/questionnaire_response_context_search.rb +0 -0
  281. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/questionnaire_response/questionnaire_response_must_support_test.rb +0 -0
  282. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/questionnaire_response/questionnaire_response_patient_search.rb +0 -0
  283. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/questionnaire_response/questionnaire_response_read.rb +0 -0
  284. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/questionnaire_response/questionnaire_response_validation.rb +0 -0
  285. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/questionnaire_response_group.rb +0 -0
  286. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/service_request/metadata.yml +0 -0
  287. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/service_request/service_request_must_support_test.rb +0 -0
  288. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/service_request/service_request_validation.rb +0 -0
  289. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/service_request_group.rb +0 -0
  290. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/task/metadata.yml +0 -0
  291. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/task/task_must_support_test.rb +0 -0
  292. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/task/task_validation.rb +0 -0
  293. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/task_group.rb +0 -0
  294. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/vision_prescription/metadata.yml +0 -0
  295. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/vision_prescription/vision_prescription_must_support_test.rb +0 -0
  296. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/vision_prescription/vision_prescription_validation.rb +0 -0
  297. /data/lib/davinci_dtr_test_kit/{profiles → light_ehr/v2.0.1/profiles}/vision_prescription_group.rb +0 -0
  298. /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
  299. /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
  300. /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
  301. /data/lib/davinci_dtr_test_kit/{endpoints/mock_authorization → server/endpoints}/simple_token_endpoint.rb +0 -0
  302. /data/lib/davinci_dtr_test_kit/{payer_server_groups → server/v2.0.1/adaptive_forms}/payer_server_next_response_complete_test.rb +0 -0
  303. /data/lib/davinci_dtr_test_kit/{docs → server/v2.0.1}/dtr_payer_server_suite_description_v201.md +0 -0
  304. /data/lib/davinci_dtr_test_kit/{validation_test.rb → server/validation_test.rb} +0 -0
  305. /data/lib/davinci_dtr_test_kit/{endpoints → smart_app/endpoints}/mock_authorization/authorize_endpoint.rb +0 -0
  306. /data/lib/davinci_dtr_test_kit/{endpoints → smart_app/endpoints}/mock_authorization.rb +0 -0
  307. /data/lib/davinci_dtr_test_kit/{endpoints → smart_app/endpoints}/mock_ehr/questionnaire_response_endpoint.rb +0 -0
  308. /data/lib/davinci_dtr_test_kit/{endpoints → smart_app/endpoints}/mock_ehr.rb +0 -0
  309. /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
  310. /data/lib/davinci_dtr_test_kit/{auth_groups → smart_app/v2.0.1/auth}/token_validation_test.rb +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,114 @@
1
+ Req Set,ID,URL,Requirement,Conformance,Actors,Conditionality,Not Tested Reason,Not Tested Details,Da Vinci DTR Payer Server Test Suite v2.2.0 Short ID(s),Da Vinci DTR Payer Server Test Suite v2.2.0 Full ID(s)
2
+ hl7.fhir.us.davinci-dtr_2.2.0,conf-1,https://hl7.org/fhir/us/davinci-dtr/2.2.0/en/confexpectations.html#ci-c-conf-1,"In order to conform to this implementation guide, in addition to adhering to any relevant 'SHALL' statements, a system **SHALL** conform to at least one of the appropriate CapabilityStatements listed here:",SHALL,"DTR Client,DTR Server",false,,,1.01,dtr_payer_server_v220-dtr_payer_v220_discovery-dtr_payer_server_v220_capability_statement_test
3
+ hl7.fhir.us.davinci-dtr_2.2.0,conf-2,https://hl7.org/fhir/us/davinci-dtr/2.2.0/en/confexpectations.html#ci-c-conf-2,Da Vinci DTR implementations **SHALL** conform to the [HRex](http://hl7.org/fhir/us/davinci-hrex/1.2.0/conformance.html#mustsupport) and [US Core](http://hl7.org/fhir/us/core/STU7/must-support.html) Guidance where applicable.,SHALL,"DTR Client,DTR Server",false,,,"3.7.01, 3.7.02, 3.7.03, 3.7.04, 3.7.05, 3.7.06","dtr_payer_server_v220-dtr_payer_server_v220_questionnaire_operations-dtr_payer_server_v220_must_support-dtr_v220_payer_questionnaire_package_output_parameters_must_support, dtr_payer_server_v220-dtr_payer_server_v220_questionnaire_operations-dtr_payer_server_v220_must_support-dtr_v220_payer_questionnaire_package_bundle_must_support, dtr_payer_server_v220-dtr_payer_server_v220_questionnaire_operations-dtr_payer_server_v220_must_support-dtr_v220_payer_questionnaire_base_must_support, dtr_payer_server_v220-dtr_payer_server_v220_questionnaire_operations-dtr_payer_server_v220_must_support-dtr_v220_payer_questionnaire_standard_must_support, dtr_payer_server_v220-dtr_payer_server_v220_questionnaire_operations-dtr_payer_server_v220_must_support-dtr_v220_payer_questionnaire_adaptive_must_support, dtr_payer_server_v220-dtr_payer_server_v220_questionnaire_operations-dtr_payer_server_v220_must_support-dtr_v220_payer_questionnaire_adaptive_search_must_support"
4
+ hl7.fhir.us.davinci-dtr_2.2.0,conf-8,https://hl7.org/fhir/us/davinci-dtr/2.2.0/en/confexpectations.html#ci-c-conf-8,"When determining Questionnaire packages, processing adaptive forms via `$next-question`, or constructing population logic, DTR services **SHALL NOT** depend on or set expectations for the inclusion of resource instances not compliant with profiles defined in this guide, HRex, or US Core.",SHALL NOT,DTR Server,false,,,3.2.04,dtr_payer_server_v220-dtr_payer_server_v220_questionnaire_operations-dtr_payer_v220_questionnaire_package_support-dtr_server_v220_no_custom_extension_test
5
+ hl7.fhir.us.davinci-dtr_2.2.0,conf-9,https://hl7.org/fhir/us/davinci-dtr/2.2.0/en/confexpectations.html#ci-c-conf-9,"Similarly, they **SHALL NOT** depend on or set expectations for the inclusion of any data elements not marked as mandatory (min cardinality >= 1) or `mustSupport` in those profiles.",SHALL NOT,DTR Server,false,,,"",""
6
+ hl7.fhir.us.davinci-dtr_2.2.0,conf-10,https://hl7.org/fhir/us/davinci-dtr/2.2.0/en/confexpectations.html#ci-c-conf-10,DTR servers **SHALL NOT** set expectations for systems to support Questionnaire rendering or response validation capabilities above those established in the [DTR Questionnaire profiles](artifacts.html#structures-resource-profiles) and **SHALL** accept and successfully process any Questionnaire Response returned for a Questionnaire from that DTR server that is deemed valid against the rules expressed only as `mustSupport` in the Questionnaire profile.,SHALL NOT / SHALL,DTR Server,false,,,"",""
7
+ hl7.fhir.us.davinci-dtr_2.2.0,conf-11,https://hl7.org/fhir/us/davinci-dtr/2.2.0/en/confexpectations.html#ci-c-conf-11,"If the proposed change is adopted and published in the DTR continuous integration build or the CI build of one of its dependencies (e.g., US Core), implementations **MAY**, by mutual agreement, pre-adopt the use of those additional profiles and/or `mustSupport` data elements and not be considered in violation of #1 or #2 above.",MAY,"DTR Client,DTR Server",true,,,"",""
8
+ hl7.fhir.us.davinci-dtr_2.2.0,conf-12,https://hl7.org/fhir/us/davinci-dtr/2.2.0/en/confexpectations.html#ci-c-conf-12,"Where cardinality and other constraints present in profiles allow data elements to be omitted, DTR compliant systems **SHALL NOT** treat the omission of those elements as a conformance error - i.e., DTR services are expected to return appropriate questionnaire package responses, not system level errors (e.g., HTTP 4xx errors), and DTR clients are expected to render and allow completion of forms as normal.",SHALL NOT,"DTR Client,DTR Server",true,,,"",""
9
+ hl7.fhir.us.davinci-dtr_2.2.0,conf-13,https://hl7.org/fhir/us/davinci-dtr/2.2.0/en/confexpectations.html#ci-c-conf-13,"DTR clients and services and **SHALL** use standard DTR data elements (i.e., elements found within DTR-defined or inherited profiles and marked as mandatory or `mustSupport`) to communicate needed data if such elements are intended to convey such information.",SHALL,"DTR Client,DTR Server",false,,,"",""
10
+ hl7.fhir.us.davinci-dtr_2.2.0,conf-14,https://hl7.org/fhir/us/davinci-dtr/2.2.0/en/confexpectations.html#ci-c-conf-14,"Organizations implementing DTR **SHALL NOT** publish guidance setting expectations for where certain data elements are conveyed within DTR and inherited data structures, but **MAY** submit change requests to DTR, CRD, HRex, or US Core requesting that additional guidance be provided to implementers on data structure usage to increase consistency across implementations.",SHALL NOT / MAY,"DTR Client,DTR Server",false,,,"",""
11
+ hl7.fhir.us.davinci-dtr_2.2.0,conf-15,https://hl7.org/fhir/us/davinci-dtr/2.2.0/en/confexpectations.html#ci-c-conf-15,Such enhancements **SHALL** be submitted as a ticket for consideration for inclusion in a future version of the implementation guide.,SHALL,"DTR Client,DTR Server",false,,,"",""
12
+ hl7.fhir.us.davinci-dtr_2.2.0,oper-1,https://hl7.org/fhir/us/davinci-dtr/2.2.0/en/OperationDefinition-log-questionnaire-errors.html#ci-c-oper-1,This operation **SHALL** be supported by payers and DTR applications.,SHALL,"DTR Client,DTR Server",false,,,4.01,dtr_payer_server_v220-dtr_payer_v220_log_questionnaire_error_support-dtr_v220_payer_log_questionnaire_errors_support
13
+ hl7.fhir.us.davinci-dtr_2.2.0,oper-5,https://hl7.org/fhir/us/davinci-dtr/2.2.0/en/OperationDefinition-DTR-ValueSet-expand.html#ci-c-oper-5,"Additionally, the valueset **SHALL** use the current date as the expansion date and **SHALL** include only active codes.",SHALL,DTR Server,false,,,3.5.01,dtr_payer_server_v220-dtr_payer_server_v220_questionnaire_operations-dtr_payer_v220_valueset_expand_support-dtr_v220_payer_value_set_expansion
14
+ hl7.fhir.us.davinci-dtr_2.2.0,oper-7,https://hl7.org/fhir/us/davinci-dtr/2.2.0/en/OperationDefinition-questionnaire-package.html#ci-c-oper-7,"If multiple versions of a questionnaire are returned, each **SHALL** be associated with distinct orders or coverages in the associated QuestionnaireResponses (see below).",SHALL,DTR Server,true,,,"",""
15
+ hl7.fhir.us.davinci-dtr_2.2.0,oper-8,https://hl7.org/fhir/us/davinci-dtr/2.2.0/en/OperationDefinition-questionnaire-package.html#ci-c-oper-8,"If this operation is invoked with a context id provided by CRD where the `coverage-information` extension indicated that additional documentation was required, but no questionnaires are returned by the operation, the operation **SHALL** return an OperationOutcome with clear instructions on how else to determine needed documentation or an indication that circumstances have changed and additional documentation is no longer necessary.",SHALL,DTR Server,true,,,"",""
16
+ hl7.fhir.us.davinci-dtr_2.2.0,oper-9,https://hl7.org/fhir/us/davinci-dtr/2.2.0/en/OperationDefinition-questionnaire-package.html#ci-c-oper-9,"If any of the explicitly requested questionnaires cannot be found, a warning **SHALL** be provided in the [Outcome](StructureDefinition-dtr-qpackage-output-parameters.html) element of the outer `Parameters` resource.",SHALL,DTR Server,true,,,3.6.01,dtr_payer_server_v220-dtr_payer_server_v220_questionnaire_operations-dtr_payer_v220_error_handling-dtr_server_v220_payer_questionnaire_not_found
17
+ hl7.fhir.us.davinci-dtr_2.2.0,oper-10,https://hl7.org/fhir/us/davinci-dtr/2.2.0/en/OperationDefinition-questionnaire-package.html#ci-c-oper-10,"If the operation is successful, the response **SHALL** be a `Parameters` resource conformant to the [DTRQuestionnairePackageOutputParameters](StructureDefinition-dtr-qpackage-output-parameters.html) profile.",SHALL,DTR Server,true,,,3.2.01,dtr_payer_server_v220-dtr_payer_server_v220_questionnaire_operations-dtr_payer_v220_questionnaire_package_support-dtr_v220_payer_questionnaire_response_validation
18
+ hl7.fhir.us.davinci-dtr_2.2.0,oper-11,https://hl7.org/fhir/us/davinci-dtr/2.2.0/en/OperationDefinition-questionnaire-package.html#ci-c-oper-11,"If the operation fails, the response payload **SHOULD** be an OperationOutcome.",SHOULD,DTR Server,true,,,"",""
19
+ hl7.fhir.us.davinci-dtr_2.2.0,oper-12,https://hl7.org/fhir/us/davinci-dtr/2.2.0/en/OperationDefinition-questionnaire-package.html#ci-c-oper-12,"The Bundle **SHALL** include the Questionnaire as the first entry along with all external Libraries referenced by the Questionnaire using the [cqf-library](https://build.fhir.org/ig/HL7/fhir-extensions/StructureDefinition-cqf-library.html) extension, as well as a recursive retrieval of all `relatedArtifact` references of type 'depends-on'.",SHALL,DTR Server,false,,,3.2.02,dtr_payer_server_v220-dtr_payer_server_v220_questionnaire_operations-dtr_payer_v220_questionnaire_package_support-dtr_server_v220_payer_questionnaire_package_contents
20
+ hl7.fhir.us.davinci-dtr_2.2.0,oper-13,https://hl7.org/fhir/us/davinci-dtr/2.2.0/en/OperationDefinition-questionnaire-package.html#ci-c-oper-13,All Libraries **SHALL** include both CQL and EML representations.,SHALL,DTR Server,false,,,3.4.05,dtr_payer_server_v220-dtr_payer_server_v220_questionnaire_operations-dtr_payer_v220_questionnaire_design-dtr_v220_payer_cql_library_validation
21
+ hl7.fhir.us.davinci-dtr_2.2.0,oper-14,https://hl7.org/fhir/us/davinci-dtr/2.2.0/en/OperationDefinition-questionnaire-package.html#ci-c-oper-14,The Bundle **SHALL** include all external ValueSet instances referenced by the Questionnaire.,SHALL,DTR Server,false,,,3.2.05,dtr_payer_server_v220-dtr_payer_server_v220_questionnaire_operations-dtr_payer_v220_questionnaire_package_support-dtr_v220_payer_value_set_validation
22
+ hl7.fhir.us.davinci-dtr_2.2.0,oper-15,https://hl7.org/fhir/us/davinci-dtr/2.2.0/en/OperationDefinition-questionnaire-package.html#ci-c-oper-15,All value sets with expansions under 40 entries **SHALL** be expanded as of the current date and using expansion parameters (such as SNOMED release) as deemed appropriate by the payer.,SHALL,DTR Server,false,,,3.2.06,dtr_payer_server_v220-dtr_payer_server_v220_questionnaire_operations-dtr_payer_v220_questionnaire_package_support-dtr_v220_payer_small_value_set_expansion
23
+ hl7.fhir.us.davinci-dtr_2.2.0,oper-16,https://hl7.org/fhir/us/davinci-dtr/2.2.0/en/OperationDefinition-questionnaire-package.html#ci-c-oper-16,"All references to Questionnaires, Libraries, and ValueSets within the Bundle **SHALL** be version specific, as breaking changes may occur between versions and would likely cause failures or inconsistent data.",SHALL,DTR Server,false,,,"3.2.07, 3.4.05","dtr_payer_server_v220-dtr_payer_server_v220_questionnaire_operations-dtr_payer_v220_questionnaire_package_support-dtr_v220_payer_questionnaire_references_version_specific, dtr_payer_server_v220-dtr_payer_server_v220_questionnaire_operations-dtr_payer_v220_questionnaire_design-dtr_v220_payer_cql_library_validation"
24
+ hl7.fhir.us.davinci-dtr_2.2.0,oper-17,https://hl7.org/fhir/us/davinci-dtr/2.2.0/en/OperationDefinition-questionnaire-package.html#ci-c-oper-17,"Multiple versions of a Library **MAY** be treated as an error, or **MAY** be handled by returning the 'most recent' version of the referenced versions.",MAY,DTR Server,false,,,"",""
25
+ hl7.fhir.us.davinci-dtr_2.2.0,oper-18,https://hl7.org/fhir/us/davinci-dtr/2.2.0/en/OperationDefinition-questionnaire-package.html#ci-c-oper-18,"As well, the Questionnaire Bundle **SHALL** contain one initial draft `QuestionnaireResponse` that references the `Questionnaire` for that Bundle and populate the subject as well as repetitions of the Context extension that identify the Coverage(s) and Request or Encounter resources the `Questionnaire` is to be completed for.",SHALL,DTR Server,false,,,3.2.03,dtr_payer_server_v220-dtr_payer_server_v220_questionnaire_operations-dtr_payer_v220_questionnaire_package_support-dtr_v220_payer_initial_questionnaire_response
26
+ hl7.fhir.us.davinci-dtr_2.2.0,oper-19,https://hl7.org/fhir/us/davinci-dtr/2.2.0/en/OperationDefinition-questionnaire-package.html#ci-c-oper-19,The payer **MAY** opt to pre-populate some answers in the provided QuestionnaireResponses based on information the payer has in its own records or has from context from CRD or from other prior auth or claims submissions.,MAY,DTR Server,false,,,"",""
27
+ hl7.fhir.us.davinci-dtr_2.2.0,prof-1,https://hl7.org/fhir/us/davinci-dtr/2.2.0/en/StructureDefinition-dtr-qpackage-input-parameters.html#ci-c-prof-1,"However, the system should check that the passed orders are the same as was processed at CRD time before presuming that the questionnaires needed will be the same and if the orders have changed, or there's a possibility that the rules governing which Questionnaires are needed might have changed, the system **SHOULD** re-check to determine the needed Questionnaires.",SHOULD,DTR Server,false,,,"",""
28
+ hl7.fhir.us.davinci-dtr_2.2.0,sec-1,https://hl7.org/fhir/us/davinci-dtr/2.2.0/en/security.html#ci-c-sec-1,Implementers **SHALL** adhere to any security and privacy rules defined by:,SHALL,"DTR Client,DTR Server",false,,,"",""
29
+ hl7.fhir.us.davinci-dtr_2.2.0,sec-2,https://hl7.org/fhir/us/davinci-dtr/2.2.0/en/security.html#ci-c-sec-2,This scope granted **MAY** provide the SMART on FHIR application access to more data than is needed for the specific situation.,MAY,"DTR Client,DTR Server",false,,,"",""
30
+ hl7.fhir.us.davinci-dtr_2.2.0,sec-3,https://hl7.org/fhir/us/davinci-dtr/2.2.0/en/security.html#ci-c-sec-3,"For compliance with HIPAA Minimum Necessary, the CQL included in payer-defined Questionnaires **SHALL** limit requests for information from the EHR's API to only items that are relevant to the documentation requirements for which DTR was launched (e.g., documentation requirements for a service that does require prior authorization).",SHALL,DTR Server,false,,,"",""
31
+ hl7.fhir.us.davinci-dtr_2.2.0,sec-4,https://hl7.org/fhir/us/davinci-dtr/2.2.0/en/security.html#ci-c-sec-4,Compliant Questionnaires **SHALL NOT** include hidden or read-only questions where the data is populated from the EHR.,SHALL NOT,DTR Server,false,,,"",""
32
+ hl7.fhir.us.davinci-dtr_2.2.0,sec-9,https://hl7.org/fhir/us/davinci-dtr/2.2.0/en/security.html#ci-c-sec-9,"Payer systems **SHALL** use information received during execution of the DTR [$questionnaire-package](OperationDefinition-questionnaire-package.html) operation solely for the purpose of satisfying the operation invoked, for audit, and to satisfy metric reporting needs.",SHALL,DTR Server,false,,,"",""
33
+ hl7.fhir.us.davinci-dtr_2.2.0,sec-10,https://hl7.org/fhir/us/davinci-dtr/2.2.0/en/security.html#ci-c-sec-10,"If a payer uses adaptive forms to gather information, the payer **SHALL NOT** persist or use the information shared as part of the [$next-question](http://hl7.org/fhir/uv/sdc/STU3/OperationDefinition-Questionnaire-next-question.html) operation for any purpose other than:",SHALL NOT,DTR Server,true,,,"",""
34
+ hl7.fhir.us.davinci-dtr_2.2.0,spec-1,https://hl7.org/fhir/us/davinci-dtr/2.2.0/en/specification.html#ci-c-spec-1,"Payer DTR services SHALL NOT work preferentially with their own apps for IG-defined functionality, though clients and services MAY offer additional behavior above and beyond what's covered in this specification.",SHALL NOT / MAY,DTR Server,false,,,"",""
35
+ hl7.fhir.us.davinci-dtr_2.2.0,spec-5,https://hl7.org/fhir/us/davinci-dtr/2.2.0/en/specification.html#ci-c-spec-5,Payers **MAY** have multiple back-end functions that handle different types of decision support and/or different types of services.,MAY,DTR Server,false,,,"",""
36
+ hl7.fhir.us.davinci-dtr_2.2.0,spec-6,https://hl7.org/fhir/us/davinci-dtr/2.2.0/en/specification.html#ci-c-spec-6,"However, for the purpose of DTR conformance, payers **SHALL** have a single endpoint (managed by themselves or a delegate) that can handle responding to all DTR service calls.",SHALL,DTR Server,false,,,"",""
37
+ hl7.fhir.us.davinci-dtr_2.2.0,spec-7,https://hl7.org/fhir/us/davinci-dtr/2.2.0/en/specification.html#ci-c-spec-7,"This registration process **SHALL** ensure that the DTR app or Full EHR (i.e., Native App):",SHALL,"DTR Client,DTR Server",false,,,"",""
38
+ hl7.fhir.us.davinci-dtr_2.2.0,spec-8,https://hl7.org/fhir/us/davinci-dtr/2.2.0/en/specification.html#ci-c-spec-8,"Implementers of this IG **SHOULD** support the [endpoint discovery](http://hl7.org/fhir/us/davinci-hrex/1.2.0/endpoint-discovery.html) mechanism defined in the HRex specification to allow discovery of the endpoints used in this IG - specifically the [$questionnaire-package](OperationDefinition-questionnaire-package.html) operation endpoint used to retrieve the Questionnaires and associated libraries, value sets, etc. to be completed.",SHOULD,"DTR Client,DTR Server",false,,,"",""
39
+ hl7.fhir.us.davinci-dtr_2.2.0,spec-9,https://hl7.org/fhir/us/davinci-dtr/2.2.0/en/specification.html#ci-c-spec-9,"Even after an application has been successfully registered, payers and EHRs **SHOULD** monitor the application behavior and **MAY** suspend an application's access if it is suspected of malicious behavior.",SHOULD / MAY,"DTR Client,DTR Server",false,,,"",""
40
+ hl7.fhir.us.davinci-dtr_2.2.0,spec-10,https://hl7.org/fhir/us/davinci-dtr/2.2.0/en/specification.html#ci-c-spec-10,"Some payers MAY create Questionnaires that rely on code systems that require licensing for use where there isn’t already a cross-U.S. license in place (e.g., UB, CPT).",MAY,DTR Server,false,,,"",""
41
+ hl7.fhir.us.davinci-dtr_2.2.0,spec-11,https://hl7.org/fhir/us/davinci-dtr/2.2.0/en/specification.html#ci-c-spec-11,The expectations around licensing requirements SHALL be established as part of the configuration process between the parties.,SHALL,"DTR Client,DTR Server",false,,,"",""
42
+ hl7.fhir.us.davinci-dtr_2.2.0,spec-12,https://hl7.org/fhir/us/davinci-dtr/2.2.0/en/specification.html#ci-c-spec-12,"DTR services **SHOULD** have DTR questionnaires available for all covered items that require additional data collection to support prior auth submission, claim submission, or appropriate use documentation. (Future versions of this guide will likely tighten this expectation to a 'SHALL')",SHALL / SHOULD,DTR Server,false,,,"",""
43
+ hl7.fhir.us.davinci-dtr_2.2.0,spec-13,https://hl7.org/fhir/us/davinci-dtr/2.2.0/en/specification.html#ci-c-spec-13,DTR server organizations **MAY** surface their Questionnaires via a registry or some similar mechanism that allows DTR client organizations to pre-examine/pre-process Questionnaires to allow for more optimal handling when those Questionnaires are actually solicited.,MAY,DTR Server,false,,,"",""
44
+ hl7.fhir.us.davinci-dtr_2.2.0,spec-15,https://hl7.org/fhir/us/davinci-dtr/2.2.0/en/specification.html#ci-c-spec-15,Payers **MAY** support either approach or opt to provide some Questionnaires using one approach and others using the second based on the requirements of the form.,MAY,DTR Server,false,,,"",""
45
+ hl7.fhir.us.davinci-dtr_2.2.0,spec-17,https://hl7.org/fhir/us/davinci-dtr/2.2.0/en/specification.html#ci-c-spec-17,"Questionnaires, whether standard or adaptive, **SHALL** also use logic that ensures that only questions and answer choices which are required for the intended clinical or administrative purposes are included, based on what answers have already been provided/populated using elements such as `enableWhen` or `enableWhenExpression`.",SHALL,DTR Server,false,,,3.4.01,dtr_payer_server_v220-dtr_payer_server_v220_questionnaire_operations-dtr_payer_v220_questionnaire_design-dtr_v220_payer_questionnaire_relevance_logic
46
+ hl7.fhir.us.davinci-dtr_2.2.0,spec-18,https://hl7.org/fhir/us/davinci-dtr/2.2.0/en/specification.html#ci-c-spec-18,"When using elements with a data type of 'Expression' within Questionnaires to control flow or rendering, all logic **SHALL** be written in CQL.",SHALL,DTR Server,true,,,3.4.02,dtr_payer_server_v220-dtr_payer_server_v220_questionnaire_operations-dtr_payer_v220_questionnaire_design-dtr_v220_payer_questionnaire_expression_language
47
+ hl7.fhir.us.davinci-dtr_2.2.0,spec-21,https://hl7.org/fhir/us/davinci-dtr/2.2.0/en/specification.html#ci-c-spec-21,"However, payers **SHALL NOT** rely on support for any of these elements in the design of their Questionnaire (i.e., a DTR client that ignores such elements cannot impact the successful collection of information acceptability of the information gathered).",SHALL NOT,DTR Server,false,,,"",""
48
+ hl7.fhir.us.davinci-dtr_2.2.0,spec-22,https://hl7.org/fhir/us/davinci-dtr/2.2.0/en/specification.html#ci-c-spec-22,"If there is a need to collect both patient or clinical data as well as administrative data, forms **SHALL** be designed in one of the two the following manners:",SHALL,DTR Server,true,,,"",""
49
+ hl7.fhir.us.davinci-dtr_2.2.0,spec-23,https://hl7.org/fhir/us/davinci-dtr/2.2.0/en/specification.html#ci-c-spec-23,"When a payer uses an Adaptive Form, they **SHALL** return a questionnaire instance compliant with the DTR [AdaptiveQuestionnaire-Search](StructureDefinition-dtr-questionnaire-adapt-search.html) profile.",SHALL,DTR Server,true,,,3.3.02,dtr_payer_server_v220-dtr_payer_server_v220_questionnaire_operations-dtr_payer_v220_next_question_support-dtr_v220_payer_adaptive_questionnaire_response_validation
50
+ hl7.fhir.us.davinci-dtr_2.2.0,spec-24,https://hl7.org/fhir/us/davinci-dtr/2.2.0/en/specification.html#ci-c-spec-24,"If present, any `questionnaireAdaptive` url **SHALL** be a sub-url under the base for the payer and able to be accessed within the same SMART Backend Services connection as was established to make the [$questionnaire-package](OperationDefinition-questionnaire-package.html) call.",SHALL,DTR Server,true,,,3.3.05,dtr_payer_server_v220-dtr_payer_server_v220_questionnaire_operations-dtr_payer_v220_next_question_support-dtr_v220_payer_adaptive_questionnaire_endpoint
51
+ hl7.fhir.us.davinci-dtr_2.2.0,spec-25,https://hl7.org/fhir/us/davinci-dtr/2.2.0/en/specification.html#ci-c-spec-25,The QuestionnaireResponse included in the [Questionnaire Package Bundle](StructureDefinition-DTR-QPackageBundle.html) accompanying an adaptive Questionnaire **SHALL** follow the convention of referencing a [contained](https://hl7.org/fhir/R4/references.html#contained) Questionnaire `derivedFrom` the canonical for the Questionnaire being completed.,SHALL,DTR Server,false,,,3.2.08,dtr_payer_server_v220-dtr_payer_server_v220_questionnaire_operations-dtr_payer_v220_questionnaire_package_support-dtr_v220_payer_adaptive_questionnaire_response_contained_questionnaire
52
+ hl7.fhir.us.davinci-dtr_2.2.0,spec-26,https://hl7.org/fhir/us/davinci-dtr/2.2.0/en/specification.html#ci-c-spec-26,"Typically, the QuestionnaireResponse and [contained](https://hl7.org/fhir/R4/references.html#contained) Questionnaire will contain no answers (or corresponding questions), though the payer **MAY** opt to include a few pre-populated answers for user review prior to soliciting additional questions using the [$next-question](OperationDefinition-DTR-Questionnaire-next-question.html) operation.",MAY,DTR Server,false,,,"",""
53
+ hl7.fhir.us.davinci-dtr_2.2.0,spec-27,https://hl7.org/fhir/us/davinci-dtr/2.2.0/en/specification.html#ci-c-spec-27,"Payers **MAY** define pre-populatable questions to extract such information, using CQL to access the Questionnaire's [launchContext](https://hl7.org/fhir/uv/sdc/STU3/StructureDefinition-sdc-questionnaire-launchContext.html) extension or performing any necessary data retrieval.",MAY,DTR Server,false,,,"",""
54
+ hl7.fhir.us.davinci-dtr_2.2.0,spec-28,https://hl7.org/fhir/us/davinci-dtr/2.2.0/en/specification.html#ci-c-spec-28,There are three strategies payers can use – and payers **MAY** opt to combine strategies within a single Questionnaire:,MAY,DTR Server,false,,,"",""
55
+ hl7.fhir.us.davinci-dtr_2.2.0,spec-29,https://hl7.org/fhir/us/davinci-dtr/2.2.0/en/specification.html#ci-c-spec-29,"The payer **MAY** opt to include CQL [Libraries](http://hl7.org/fhir/R4/library.html) and ValueSets in the package that are not actually referenced by any questions, on the prospect that they *might* be (or are likely to be) referenced by one of the questions at some point.",MAY,DTR Server,false,,,"",""
56
+ hl7.fhir.us.davinci-dtr_2.2.0,spec-30,https://hl7.org/fhir/us/davinci-dtr/2.2.0/en/specification.html#ci-c-spec-30,"The payer **MAY** add CQL [Libraries](http://hl7.org/fhir/R4/library.html) and ValueSets as ['contained'](https://hl7.org/fhir/R4/references.html#contained) resources inside the QuestionnaireResponse that are relevant to the questions that are part of the Questionnaire for each [$next-question](OperationDefinition-DTR-Questionnaire-next-question.html) call, slowly building up the set of resources that happen to be relevant to the questions actually asked.",MAY,DTR Server,false,,,"",""
57
+ hl7.fhir.us.davinci-dtr_2.2.0,spec-31,https://hl7.org/fhir/us/davinci-dtr/2.2.0/en/specification.html#ci-c-spec-31,"Finally, the payer **MAY** opt to specify the CQL and codes without using [Libraries](http://hl7.org/fhir/R4/library.html) or ValueSets at all – the CQL can be sent in-line within the various Expression elements, and the codes can be listed directly as answerOption Codings.",MAY,DTR Server,false,,,"",""
58
+ hl7.fhir.us.davinci-dtr_2.2.0,spec-32,https://hl7.org/fhir/us/davinci-dtr/2.2.0/en/specification.html#ci-c-spec-32,Payers needing full resources to be returned **SHOULD** use the [containedReference](StructureDefinition-containedReference.html) extension to indicate that the selected resource(s) for an answer of type reference should be included as [contained](https://hl7.org/fhir/R4/references.html#contained) resources within the QuestionnaireResponse.,SHOULD,DTR Server,true,,,"",""
59
+ hl7.fhir.us.davinci-dtr_2.2.0,spec-33,https://hl7.org/fhir/us/davinci-dtr/2.2.0/en/specification.html#ci-c-spec-33,Implementers that support Adaptive Questionnaires **SHOULD** always include a [coverage-information](https://build.fhir.org/ig/HL7/davinci-crd/StructureDefinition-ext-coverage-information.html) extension when the QuestionnaireResponse is deemed complete. (Future versions of this guide will likely tighten this expectation to a 'SHALL'),SHALL / SHOULD,DTR Server,true,,,"",""
60
+ hl7.fhir.us.davinci-dtr_2.2.0,spec-34,https://hl7.org/fhir/us/davinci-dtr/2.2.0/en/specification.html#ci-c-spec-34,The package returned by the [$questionnaire-package](OperationDefinition-questionnaire-package.html) operation **MAY** include Library and/or ValueSet instances that are not referenced by any of the returned questionnaires if at least one of those questionnaires is adaptive.,MAY,DTR Server,true,,,"",""
61
+ hl7.fhir.us.davinci-dtr_2.2.0,spec-36,https://hl7.org/fhir/us/davinci-dtr/2.2.0/en/specification.html#ci-c-spec-36,"When using adaptive forms, DTR servers **SHOULD** return as many items in a single call as possible (within reason), including questions that can be determined as enabled or disabled using simple 'enableWhen' logic.",SHOULD,DTR Server,true,,,"",""
62
+ hl7.fhir.us.davinci-dtr_2.2.0,spec-38,https://hl7.org/fhir/us/davinci-dtr/2.2.0/en/specification.html#ci-c-spec-38,Conformant systems **SHALL** meet these timing expectations at least 90% of the time.,SHALL,DTR Server,false,,,"",""
63
+ hl7.fhir.us.davinci-dtr_2.2.0,spec-39,https://hl7.org/fhir/us/davinci-dtr/2.2.0/en/specification.html#ci-c-spec-39,"In an adaptive Questionnaire with clinical or patient questions, systems that know that, after submitting the answers to the current unanswered questions, there will be no further questions targeted to patient or clinician, those systems **SHALL** provide a display item indicating that patient/clinical questions are complete.",SHALL,DTR Server,true,,,"",""
64
+ hl7.fhir.us.davinci-dtr_2.2.0,spec-40,https://hl7.org/fhir/us/davinci-dtr/2.2.0/en/specification.html#ci-c-spec-40,"Wherever possible, DTR services **SHOULD** leverage data retrieved from CRD and other mechanisms (claims data, PDex, etc.) to pre-populate answers in the QuestionnaireResponse returned to the client (regardless of whether the forms used are adaptive or standard).",SHOULD,DTR Server,false,,,"",""
65
+ hl7.fhir.us.davinci-dtr_2.2.0,spec-41,https://hl7.org/fhir/us/davinci-dtr/2.2.0/en/specification.html#ci-c-spec-41,"If Adaptive Forms are being used, and a DTR service determines that prior authorization is both necessary and the requirements have been satisfied, then the final question in the form **SHALL** be a question that asks the user if they would like the prior authorization identifier to be issued, and indicate the appropriate response options.",SHALL,DTR Server,true,,,"",""
66
+ hl7.fhir.us.davinci-dtr_2.2.0,spec-42,https://hl7.org/fhir/us/davinci-dtr/2.2.0/en/specification.html#ci-c-spec-42,DTR Servers **SHALL NOT** provide a `satisfied-pa-id` in response to a DTR invocation that was triggered by a PAS request.,SHALL NOT,DTR Server,false,,,"",""
67
+ hl7.fhir.us.davinci-dtr_2.2.0,spec-43,https://hl7.org/fhir/us/davinci-dtr/2.2.0/en/specification.html#ci-c-spec-43,DTR payers **SHALL** ONLY use DTR adaptive forms to return a [coverage-information](https://build.fhir.org/ig/HL7/davinci-crd/StructureDefinition-ext-coverage-information.html) extension when:,SHALL,DTR Server,false,,,"",""
68
+ hl7.fhir.us.davinci-dtr_2.2.0,spec-45,https://hl7.org/fhir/us/davinci-dtr/2.2.0/en/specification.html#ci-c-spec-45,"If a payer receives a new invocation of an adaptive form for the same order, they **SHALL** treat the result of the new completion as replacing any previous completion from a prior coverage determination process.",SHALL,DTR Server,true,,,"",""
69
+ hl7.fhir.us.davinci-dtr_2.2.0,spec-50,https://hl7.org/fhir/us/davinci-dtr/2.2.0/en/specification.html#ci-c-spec-50,"In some cases, if there isn't specific data that can be retrieved computably from the EHR, it **MAY** be sufficient for a payer to merely have an attestation by the provider that certain documentation exists, that a certain patient condition exists, or that certain actions have been completed.",MAY,DTR Server,false,,,"",""
70
+ hl7.fhir.us.davinci-dtr_2.2.0,spec-51,https://hl7.org/fhir/us/davinci-dtr/2.2.0/en/specification.html#ci-c-spec-51,Payers **SHOULD** design questionnaires to support attestation rather than discrete data where this is sufficient for the business requirements.,SHOULD,DTR Server,true,,,"",""
71
+ hl7.fhir.us.davinci-dtr_2.2.0,spec-52,https://hl7.org/fhir/us/davinci-dtr/2.2.0/en/specification.html#ci-c-spec-52,"Questionnaires **MAY** also support attaching reports or other supporting documentation (e.g., images, pathology reports, etc.) where providing question answers is not sufficient.",MAY,DTR Server,false,,,"",""
72
+ hl7.fhir.us.davinci-dtr_2.2.0,spec-53,https://hl7.org/fhir/us/davinci-dtr/2.2.0/en/specification.html#ci-c-spec-53,Payers **SHOULD** use the `Questionnaire.effectivePeriod` element to describe the period over which the documentation templates and rules are valid.,SHOULD,DTR Server,false,,,"",""
73
+ hl7.fhir.us.davinci-dtr_2.2.0,spec-54,https://hl7.org/fhir/us/davinci-dtr/2.2.0/en/specification.html#ci-c-spec-54,Questionnaires **SHALL** include logic that supports population from the EHR where possible.,SHALL,DTR Server,false,,,3.4.04,dtr_payer_server_v220-dtr_payer_server_v220_questionnaire_operations-dtr_payer_v220_questionnaire_design-dtr_v220_payer_questionnaire_prepopulation
74
+ hl7.fhir.us.davinci-dtr_2.2.0,spec-55,https://hl7.org/fhir/us/davinci-dtr/2.2.0/en/specification.html#ci-c-spec-55,"Such logic **SHOULD** rely exclusively on data elements and search parameters defined either in US Core or [HRex](http://hl7.org/fhir/us/davinci-hrex/1.2.0/index.html) (including simple calculations there-on - e.g., age from birthdate).",SHOULD,DTR Server,false,,,"",""
75
+ hl7.fhir.us.davinci-dtr_2.2.0,spec-56,https://hl7.org/fhir/us/davinci-dtr/2.2.0/en/specification.html#ci-c-spec-56,"Ideally, the design of questions in payer forms **SHOULD** consider what data is likely to be available for pre-population purposes, with an objective of minimizing provider data entry effort.",SHOULD,DTR Server,false,,,"",""
76
+ hl7.fhir.us.davinci-dtr_2.2.0,spec-57,https://hl7.org/fhir/us/davinci-dtr/2.2.0/en/specification.html#ci-c-spec-57,"Due to differences in workflows or information systems, clinical information **MAY** be represented in different FHIR resources or with different codes or code systems.",MAY,"DTR Client,DTR Server",false,,,"",""
77
+ hl7.fhir.us.davinci-dtr_2.2.0,spec-58,https://hl7.org/fhir/us/davinci-dtr/2.2.0/en/specification.html#ci-c-spec-58,"Therefore, payer CQL **MAY** have to examine different resources or use value sets to find patient information.",MAY,DTR Server,false,,,"",""
78
+ hl7.fhir.us.davinci-dtr_2.2.0,spec-61,https://hl7.org/fhir/us/davinci-dtr/2.2.0/en/specification.html#ci-c-spec-61,DTR servers **SHOULD** identify inline expressions that are valid FHIRPath as FHIRPath rather than CQL.,SHOULD,DTR Server,false,,,"",""
79
+ hl7.fhir.us.davinci-dtr_2.2.0,spec-83,https://hl7.org/fhir/us/davinci-dtr/2.2.0/en/specification.html#ci-c-spec-83,The table below is guidance that **SHOULD** be used when constructing questions with coded answers:,SHOULD,DTR Server,false,,,"",""
80
+ hl7.fhir.us.davinci-dtr_2.2.0,spec-85,https://hl7.org/fhir/us/davinci-dtr/2.2.0/en/specification.html#ci-c-spec-85,"This CQL **MAY** query for patient observations, conditions, or other discrete information within the EHR to use as part of the population process or logic.",MAY,DTR Server,false,,,"",""
81
+ hl7.fhir.us.davinci-dtr_2.2.0,spec-86,https://hl7.org/fhir/us/davinci-dtr/2.2.0/en/specification.html#ci-c-spec-86,"The mime type that **SHOULD** be used for a CQL Identifier is ""text/cql-identifier"" and CQL expressions embedded in the Questionnaire **SHOULD** use this type and reference CQL found in libraries rather than including CQL inline. (See supporting information [here](https://build.fhir.org/ig/HL7/cql/03-developersguide.html#identifiers))",SHOULD,DTR Server,false,,,"",""
82
+ hl7.fhir.us.davinci-dtr_2.2.0,spec-87,https://hl7.org/fhir/us/davinci-dtr/2.2.0/en/specification.html#ci-c-spec-87,All [Libraries](http://hl7.org/fhir/R4/library.html) needed by a questionnaire **SHALL** be referenced by the [cqf-library](https://hl7.org/fhir/extensions/StructureDefinition-cqf-library.html) extension and included as part of the [$questionnaire-package](OperationDefinition-questionnaire-package.html) operation.,SHALL,DTR Server,false,,,3.4.05,dtr_payer_server_v220-dtr_payer_server_v220_questionnaire_operations-dtr_payer_v220_questionnaire_design-dtr_v220_payer_cql_library_validation
83
+ hl7.fhir.us.davinci-dtr_2.2.0,spec-88,https://hl7.org/fhir/us/davinci-dtr/2.2.0/en/specification.html#ci-c-spec-88,"CQL logic **SHOULD** be partitioned to be specific to groups/questions/etc., when doing so will allow it to be more efficient - though consideration should also be given to whether performing significant data gathering at the outset (even if the data is unneeded) will produce a more positive experience than intermittent data retrieval 'on demand', when such retrieval **MAY** introduce user-interface delays.",SHOULD / MAY,DTR Server,false,,,"",""
84
+ hl7.fhir.us.davinci-dtr_2.2.0,spec-90,https://hl7.org/fhir/us/davinci-dtr/2.2.0/en/specification.html#ci-c-spec-90,"When constructing this CQL for DTR, these statements **SHOULD** be nested in conditionals to first check if the patient has diabetes before checking for information dependent on that condition.",SHOULD,DTR Server,false,,,"",""
85
+ hl7.fhir.us.davinci-dtr_2.2.0,spec-91,https://hl7.org/fhir/us/davinci-dtr/2.2.0/en/specification.html#ci-c-spec-91,"While CQL can either be embedded inline in Expression elements or packaged in [Libraries](http://hl7.org/fhir/R4/library.html), This guide strongly recommends that implementers **SHOULD** place CQL logic in libraries as it is much easier to edit and debug such logic when it is all in one place, rather than when it's scattered through many different expression elements throughout the Questionnaire.",SHOULD,DTR Server,false,,,"",""
86
+ hl7.fhir.us.davinci-dtr_2.2.0,spec-92,https://hl7.org/fhir/us/davinci-dtr/2.2.0/en/specification.html#ci-c-spec-92,The CQL **SHALL** be compatible with version [CQL 1.5](http://cql.hl7.org/N1/).,SHALL,DTR Server,false,,,"",""
87
+ hl7.fhir.us.davinci-dtr_2.2.0,spec-93,https://hl7.org/fhir/us/davinci-dtr/2.2.0/en/specification.html#ci-c-spec-93,"CQL **SHALL** have a context of ""Patient"".",SHALL,DTR Server,false,,,"",""
88
+ hl7.fhir.us.davinci-dtr_2.2.0,spec-94,https://hl7.org/fhir/us/davinci-dtr/2.2.0/en/specification.html#ci-c-spec-94,"Within the Questionnaire, CQL **SHALL** follow SDC rules for determining [context](https://hl7.org/fhir/uv/sdc/STU3/populate.html).",SHALL,DTR Server,false,,,"",""
89
+ hl7.fhir.us.davinci-dtr_2.2.0,spec-95,https://hl7.org/fhir/us/davinci-dtr/2.2.0/en/specification.html#ci-c-spec-95,"Within [Libraries](http://hl7.org/fhir/R4/library.html), both raw CQL and compiled ELM (in JSON syntax – i.e., application/elm+json) **SHALL** be provided as separate content repetitions within the library.",SHALL,DTR Server,false,,,3.4.05,dtr_payer_server_v220-dtr_payer_server_v220_questionnaire_operations-dtr_payer_v220_questionnaire_design-dtr_v220_payer_cql_library_validation
90
+ hl7.fhir.us.davinci-dtr_2.2.0,spec-96,https://hl7.org/fhir/us/davinci-dtr/2.2.0/en/specification.html#ci-c-spec-96,"Within Expression elements, the base expression CQL **SHALL** be accompanied by an [Alternative Expression Extension](StructureDefinition-alternativeExpression.html) containing the compiled JSON ELM for the expression.",SHALL,DTR Server,false,,,3.4.03,dtr_payer_server_v220-dtr_payer_server_v220_questionnaire_operations-dtr_payer_v220_questionnaire_design-dtr_v220_payer_questionnaire_expression_elm
91
+ hl7.fhir.us.davinci-dtr_2.2.0,spec-97,https://hl7.org/fhir/us/davinci-dtr/2.2.0/en/specification.html#ci-c-spec-97,"If the Questionnaire depends on multiple [Libraries](http://hl7.org/fhir/R4/library.html) (has multiple [cqf-library](https://hl7.org/fhir/extensions/StructureDefinition-cqf-library.html) elements), then any [valueExpression](https://hl7.org/fhir/extensions/StructureDefinition-variable.html) referring to defined variables **SHALL** specify the library name as well as the statement name as follows: ""LibraryName"".statementName.",SHALL,DTR Server,true,,,"",""
92
+ hl7.fhir.us.davinci-dtr_2.2.0,spec-98,https://hl7.org/fhir/us/davinci-dtr/2.2.0/en/specification.html#ci-c-spec-98,"Library names **SHALL** be unique within a Questionnaire package and **SHOULD** be unique across all Libraries made available by the payer (e.g., ""expression"": ""LowerLimbProsthesis"".PhysicalExaminationType where LowerLimbProsthesis is the library name and PhysicalExaminationType is the expression name).",SHALL / SHOULD,DTR Server,false,,,3.4.05,dtr_payer_server_v220-dtr_payer_server_v220_questionnaire_operations-dtr_payer_v220_questionnaire_design-dtr_v220_payer_cql_library_validation
93
+ hl7.fhir.us.davinci-dtr_2.2.0,spec-99,https://hl7.org/fhir/us/davinci-dtr/2.2.0/en/specification.html#ci-c-spec-99,FHIR [Libraries](http://hl7.org/fhir/R4/library.html) **SHALL** send CQL and ELM using the `content.data` element.,SHALL,DTR Server,false,,,3.4.05,dtr_payer_server_v220-dtr_payer_server_v220_questionnaire_operations-dtr_payer_v220_questionnaire_design-dtr_v220_payer_cql_library_validation
94
+ hl7.fhir.us.davinci-dtr_2.2.0,spec-106,https://hl7.org/fhir/us/davinci-dtr/2.2.0/en/specification.html#ci-c-spec-106,Accessing the endpoint will be by a simple GET with an Accept header of application/json and **SHALL** be performed over TLS.,SHALL,"DTR Client,DTR Server",false,,,"",""
95
+ hl7.fhir.us.davinci-dtr_2.2.0,spec-115,https://hl7.org/fhir/us/davinci-dtr/2.2.0/en/specification.html#ci-c-spec-115,Payer-provided Questionnaires **MAY** require access to a wide range of resources.,MAY,DTR Server,false,,,"",""
96
+ hl7.fhir.us.davinci-dtr_2.2.0,spec-116,https://hl7.org/fhir/us/davinci-dtr/2.2.0/en/specification.html#ci-c-spec-116,"At a minimum, the DTR app and the HIT server **SHALL** support search access to the following resources via their FHIR RESTful API using the profiles defined by or referenced by this guide:",SHALL,"DTR Client,DTR Server",false,,,"",""
97
+ hl7.fhir.us.davinci-dtr_2.2.0,spec-120,https://hl7.org/fhir/us/davinci-dtr/2.2.0/en/specification.html#ci-c-spec-120,Payers **SHALL** require DTR apps and EHRs connecting to their endpoint to authenticate using [SMART on FHIR Backend Services](https://www.hl7.org/fhir/smart-app-launch/backend-services.html).,SHALL,DTR Server,false,,,"",""
98
+ hl7.fhir.us.davinci-dtr_2.2.0,spec-122,https://hl7.org/fhir/us/davinci-dtr/2.2.0/en/specification.html#ci-c-spec-122,The `QuestionnaireResponse.questionnaire` **SHALL** point to the same canonical URL as the Questionnaire provided in the package Bundle.,SHALL,DTR Server,true,,,3.2.09,dtr_payer_server_v220-dtr_payer_server_v220_questionnaire_operations-dtr_payer_v220_questionnaire_package_support-dtr_v220_payer_questionnaire_response_questionnaire_canonical
99
+ hl7.fhir.us.davinci-dtr_2.2.0,spec-128,https://hl7.org/fhir/us/davinci-dtr/2.2.0/en/specification.html#ci-c-spec-128,"DTR servers **SHALL** allow for the possibility of minor changes in the order between CRD and DTR (e.g., changes to status, adding notes, etc.) that mean that the instances don't have to be identical to be considered the same order.",SHALL,DTR Server,false,,,"",""
100
+ hl7.fhir.us.davinci-dtr_2.2.0,spec-129,https://hl7.org/fhir/us/davinci-dtr/2.2.0/en/specification.html#ci-c-spec-129,DTR servers **MAY** raise an error if they receive an order that is unrelated to the provided context id.,MAY,DTR Server,true,,,"",""
101
+ hl7.fhir.us.davinci-dtr_2.2.0,spec-130,https://hl7.org/fhir/us/davinci-dtr/2.2.0/en/specification.html#ci-c-spec-130,"If DTR is invoked and there are issues with the source data (e.g., the coverage cannot be found, the context id can't be found, etc.), then the DTR service **SHALL** return a 4xx error with an accompanying OperationOutcome.",SHALL,DTR Server,true,,,3.6.02,dtr_payer_server_v220-dtr_payer_server_v220_questionnaire_operations-dtr_payer_v220_error_handling-dtr_v220_payer_source_data_error
102
+ hl7.fhir.us.davinci-dtr_2.2.0,spec-133,https://hl7.org/fhir/us/davinci-dtr/2.2.0/en/specification.html#ci-c-spec-133,"Implementers **SHOULD** review the advanced rendering, advanced behavior, population and adaptive forms portions of the SDC implementation guide, focusing on the elements and extensions included in the DTR profiles.",SHOULD,"DTR Client,DTR Server",false,,,"",""
103
+ hl7.fhir.us.davinci-dtr_2.2.0,spec-134,https://hl7.org/fhir/us/davinci-dtr/2.2.0/en/specification.html#ci-c-spec-134,Implementers **SHOULD** also be familiar with the documentation about the Questionnaire and QuestionnaireResponse resources from the core FHIR specification.,SHOULD,"DTR Client,DTR Server",false,,,"",""
104
+ hl7.fhir.us.davinci-dtr_2.2.0,spec-139,https://hl7.org/fhir/us/davinci-dtr/2.2.0/en/specification.html#ci-c-spec-139,All references within the QuestionnaireResponse **SHALL** only point to either contained resources or to resources that reside on the DTR client's FHIR endpoint.,SHALL,DTR Server,false,,,"3.2.10, 3.3.03","dtr_payer_server_v220-dtr_payer_server_v220_questionnaire_operations-dtr_payer_v220_questionnaire_package_support-dtr_v220_payer_questionnaire_response_references, dtr_payer_server_v220-dtr_payer_server_v220_questionnaire_operations-dtr_payer_v220_next_question_support-dtr_v220_payer_next_question_response_references"
105
+ hl7.fhir.us.davinci-dtr_2.2.0,spec-140,https://hl7.org/fhir/us/davinci-dtr/2.2.0/en/specification.html#ci-c-spec-140,The only situation where a resource can be ['contained'](https://hl7.org/fhir/R4/references.html#contained) **SHALL** be if the contained instance is provided by the payer either:,SHALL,DTR Server,false,,,"3.2.11, 3.3.04","dtr_payer_server_v220-dtr_payer_server_v220_questionnaire_operations-dtr_payer_v220_questionnaire_package_support-dtr_v220_payer_contained_questionnaire_response_references, dtr_payer_server_v220-dtr_payer_server_v220_questionnaire_operations-dtr_payer_v220_next_question_support-dtr_v220_payer_next_question_contained_response_references"
106
+ hl7.fhir.us.davinci-dtr_2.2.0,spec-141,https://hl7.org/fhir/us/davinci-dtr/2.2.0/en/specification.html#ci-c-spec-141,The only place ['contained'](https://hl7.org/fhir/R4/references.html#contained) resource references are permitted **SHALL** be in `item.answer` references.,SHALL,DTR Server,false,,,"3.2.11, 3.3.04","dtr_payer_server_v220-dtr_payer_server_v220_questionnaire_operations-dtr_payer_v220_questionnaire_package_support-dtr_v220_payer_contained_questionnaire_response_references, dtr_payer_server_v220-dtr_payer_server_v220_questionnaire_operations-dtr_payer_v220_next_question_support-dtr_v220_payer_next_question_contained_response_references"
107
+ hl7.fhir.us.davinci-dtr_2.2.0,spec-147,https://hl7.org/fhir/us/davinci-dtr/2.2.0/en/specification.html#ci-c-spec-147,"If [$next-question](OperationDefinition-DTR-Questionnaire-next-question.html) is invoked with a QuestionnaireResponse the payer determines is invalid based on the rules in the [contained](https://hl7.org/fhir/R4/references.html#contained) Questionnaire, it **SHALL** return an HTTP 400 error with an OperationOutcome indicating the circumstances where the QuestionnaireResponse is invalid.",SHALL,DTR Server,true,,,3.6.03,dtr_payer_server_v220-dtr_payer_server_v220_questionnaire_operations-dtr_payer_v220_error_handling-dtr_v220_payer_invalid_questionnaire_response
108
+ hl7.fhir.us.davinci-dtr_2.2.0,spec-148,https://hl7.org/fhir/us/davinci-dtr/2.2.0/en/specification.html#ci-c-spec-148,"However, the QuestionnaireResponse **MAY** have a [coverage-information](https://build.fhir.org/ig/HL7/davinci-crd/StructureDefinition-ext-coverage-information.html) extension added reflecting the payer's coverage assessment based on the information gathered in the QuestionnaireResponse.",MAY,DTR Server,false,,,"",""
109
+ hl7.fhir.us.davinci-dtr_2.2.0,spec-159,https://hl7.org/fhir/us/davinci-dtr/2.2.0/en/specification.html#ci-c-spec-159,"If the initial `QuestionnaireResponse` has multiple purposes (e.g., for prior authorization, claim submission, and performer transmission), the DTR server organization **SHALL** ensure that the full completed [QuestionnaireResponse package](StructureDefinition-DTR-QPackageBundle.html) is appropriate for all uses. If there is a need to send different information to different recipients for different purposes, the DTR server organization **SHALL** produce distinct Questionnaires such that QuestionnaireResponses only contain information that can be shared without redaction for their listed purposes.",SHALL,DTR Server,true,,,"",""
110
+ hl7.fhir.us.davinci-dtr_2.2.0,spec-160,https://hl7.org/fhir/us/davinci-dtr/2.2.0/en/specification.html#ci-c-spec-160,Such resources **SHALL** either be PDFs or XHTML pages that adhere to FHIR's ['safe' HTML rules](https://hl7.org/fhir/R4/security.html#narrative) (no active content or scripts),SHALL,DTR Server,true,,,3.4.06,dtr_payer_server_v220-dtr_payer_server_v220_questionnaire_operations-dtr_payer_v220_questionnaire_design-dtr_v220_payer_contained_binary
111
+ hl7.fhir.us.davinci-dtr_2.2.0,spec-161,https://hl7.org/fhir/us/davinci-dtr/2.2.0/en/specification.html#ci-c-spec-161,Some payers **MAY** require that attestations or other answers be 'signed' (the electronic equivalent of 'initialing' the answer).,MAY,DTR Server,false,,,"",""
112
+ hl7.fhir.us.davinci-dtr_2.2.0,spec-164,https://hl7.org/fhir/us/davinci-dtr/2.2.0/en/specification.html#ci-c-spec-164,"Payers SHOULD design their questionnaires, value sets, and libraries with the knowledge that content which is too large may cause DTR clients to fail.",SHOULD,DTR Server,false,,,"",""
113
+ hl7.fhir.us.davinci-dtr_2.2.0,spec-165,https://hl7.org/fhir/us/davinci-dtr/2.2.0/en/specification.html#ci-c-spec-165,Such contained Binary pages **SHALL NOT** point to other contained resources unless those resources are pointed to directly by other elements in the Questionnaire.,SHALL NOT,DTR Server,true,,,"",""
114
+ hl7.fhir.us.davinci-dtr_2.2.0,spec-166,https://hl7.org/fhir/us/davinci-dtr/2.2.0/en/specification.html#ci-c-spec-166,"Implementers **MAY** embed images or other content using the 'data' mechanism, or may opt to combine multiple files into a single instance to eliminate the need for inter-linking.",MAY,DTR Server,true,,,"",""
@@ -1,4 +1,4 @@
1
- Req Set,ID,URL,Requirement,Conformance,Actors,Conditionality,Not Tested Reason,Not Tested Details,Da Vinci DTR SMART App Test Suite Short ID(s),Da Vinci DTR SMART App Test Suite Full ID(s)
1
+ Req Set,ID,URL,Requirement,Conformance,Actors,Conditionality,Not Tested Reason,Not Tested Details,Da Vinci DTR SMART App Test Suite v2.0.1 Short ID(s),Da Vinci DTR SMART App Test Suite v2.0.1 Full ID(s)
2
2
  hl7.fhir.us.davinci-dtr_2.0.1,3,https://hl7.org/fhir/us/davinci-dtr/STU2/specification.html#must-support,Da Vinci DTR [SMART Client] implementations **SHALL** conform to the US Core IG [Must Support](http://hl7.org/fhir/us/core/STU3.1.1/general-guidance.html#must-support) [Requestor] Guidance where US Core IG resources are used.,SHALL,SMART Client,false,,,"",""
3
3
  hl7.fhir.us.davinci-dtr_2.0.1,4,https://hl7.org/fhir/us/davinci-dtr/STU2/specification.html#must-support,DTR apps and EHRs that take on DTR app responsibility **SHALL** be able to render Questionnaires,SHALL,"Full EHR,SMART Client",false,,,1.1.2.01,dtr_smart_app-dtr_smart_app_basic_workflows-dtr_smart_app_custom_static_workflow-dtr_smart_app_custom_static_rendering-dtr_rendering_attest
4
4
  hl7.fhir.us.davinci-dtr_2.0.1,5,https://hl7.org/fhir/us/davinci-dtr/STU2/specification.html#must-support,DTR apps and EHRs that take on DTR app responsibility **SHALL** be able to render ... QuestionnaireResponses.,SHALL,"Full EHR,SMART Client",false,,,"",""
@@ -1,3 +1,5 @@
1
+ require_relative '../../tags'
2
+
1
3
  module DaVinciDTRTestKit
2
4
  module MockPayer
3
5
  class NextQuestionProxyEndpoint < Inferno::DSL::SuiteEndpoint
@@ -1,3 +1,5 @@
1
+ require_relative '../../tags'
2
+
1
3
  module DaVinciDTRTestKit
2
4
  module MockPayer
3
5
  class QuestionnairePackageProxyEndpoint < Inferno::DSL::SuiteEndpoint
@@ -1,4 +1,5 @@
1
- require_relative '../cql_test'
1
+ require_relative '../../../cross_suite/v2.0.1/cql_test'
2
+
2
3
  module DaVinciDTRTestKit
3
4
  class PayerAdaptiveFormLibrariesTest < Inferno::Test
4
5
  include DaVinciDTRTestKit::CQLTest
@@ -1,4 +1,5 @@
1
- require_relative '../cql_test'
1
+ require_relative '../../../cross_suite/v2.0.1/cql_test'
2
+
2
3
  module DaVinciDTRTestKit
3
4
  class PayerAdaptiveFormExpressionsTest < Inferno::Test
4
5
  include DaVinciDTRTestKit::CQLTest
@@ -1,4 +1,5 @@
1
- require_relative '../cql_test'
1
+ require_relative '../../../cross_suite/v2.0.1/cql_test'
2
+
2
3
  module DaVinciDTRTestKit
3
4
  class PayerAdaptiveFormExtensionsTest < Inferno::Test
4
5
  include DaVinciDTRTestKit::CQLTest
@@ -1,4 +1,5 @@
1
- require_relative '../cql_test'
1
+ require_relative '../../../cross_suite/v2.0.1/cql_test'
2
+
2
3
  module DaVinciDTRTestKit
3
4
  class PayerAdaptiveNextQuestionExpressionsTest < Inferno::Test
4
5
  include DaVinciDTRTestKit::CQLTest
@@ -1,4 +1,5 @@
1
- require_relative '../cql_test'
1
+ require_relative '../../../cross_suite/v2.0.1/cql_test'
2
+
2
3
  module DaVinciDTRTestKit
3
4
  class PayerAdaptiveNexQuestionExtensionsTest < Inferno::Test
4
5
  include DaVinciDTRTestKit::CQLTest
@@ -1,8 +1,9 @@
1
- require_relative '../urls'
1
+ require_relative '../../../urls'
2
2
 
3
3
  module DaVinciDTRTestKit
4
4
  class AdaptiveFormTest < Inferno::Test
5
5
  include URLs
6
+
6
7
  title 'Confirm the client completes the DTR Adaptive Questionnaire work flow'
7
8
  description %(
8
9
  Inferno will wait for a DTR questionnaire package request from the client. Upon receipt, Inferno will generate and
@@ -1,8 +1,10 @@
1
- require_relative '../validation_test'
1
+ require_relative '../../validation_test'
2
+
2
3
  module DaVinciDTRTestKit
3
4
  class PayerAdaptiveFormRequestTest < Inferno::Test
4
5
  include URLs
5
6
  include DaVinciDTRTestKit::ValidationTest
7
+
6
8
  title 'User Input Validation: Questionnaire Package request is valid'
7
9
  description %(
8
10
  This test validates the conformance of the client's request to the
@@ -1,7 +1,9 @@
1
- require_relative '../validation_test'
1
+ require_relative '../../validation_test'
2
+
2
3
  module DaVinciDTRTestKit
3
4
  class PayerAdaptiveFormResponseBundlesTest < Inferno::Test
4
5
  include DaVinciDTRTestKit::ValidationTest
6
+
5
7
  id :payer_server_adaptive_response_bundles_validation_test
6
8
  title 'Validate that the adaptive response contains valid Questionnaire Bundle resources'
7
9
  description %(
@@ -1,7 +1,9 @@
1
- require_relative '../validation_test'
1
+ require_relative '../../validation_test'
2
+
2
3
  module DaVinciDTRTestKit
3
4
  class PayerAdaptiveFormResponseSearchTest < Inferno::Test
4
5
  include DaVinciDTRTestKit::ValidationTest
6
+
5
7
  id :payer_server_adaptive_response_search_validation_test
6
8
  title 'Validate that the adaptive response contains a valid Adaptive Form Search resource'
7
9
  description %(
@@ -1,9 +1,11 @@
1
- require_relative '../validation_test'
2
- require_relative '../cql_test'
1
+ require_relative '../../validation_test'
2
+ require_relative '../../../cross_suite/v2.0.1/cql_test'
3
+
3
4
  module DaVinciDTRTestKit
4
5
  class PayerAdaptiveFormQuestionnaireResponseTest < Inferno::Test
5
6
  include DaVinciDTRTestKit::ValidationTest
6
7
  include DaVinciDTRTestKit::CQLTest
8
+
7
9
  id :payer_server_adaptive_response_validation_test
8
10
  title 'Validate that the adaptive response conforms to the DTR Questionnaire Package operation definition'
9
11
  # output :questionnaire_response
@@ -1,8 +1,10 @@
1
- require_relative '../validation_test'
1
+ require_relative '../../validation_test'
2
+
2
3
  module DaVinciDTRTestKit
3
4
  class PayerAdaptiveFormNextRequestTest < Inferno::Test
4
5
  include URLs
5
6
  include DaVinciDTRTestKit::ValidationTest
7
+
6
8
  title 'User Input Validation: Next Question request is valid'
7
9
  description %(
8
10
  This test validates the conformance of the client's request to the
@@ -1,7 +1,9 @@
1
- require_relative '../validation_test'
1
+ require_relative '../../validation_test'
2
+
2
3
  module DaVinciDTRTestKit
3
4
  class PayerAdaptiveFormNextResponseTest < Inferno::Test
4
5
  include DaVinciDTRTestKit::ValidationTest
6
+
5
7
  id :payer_server_next_response_validation_test
6
8
  title 'Inferno sends payer server a request for subsequent adaptive forms - validate the responses'
7
9
  description %(
@@ -1,19 +1,18 @@
1
- require_relative 'payer_server_groups/payer_server_static_group'
2
- require_relative 'payer_server_groups/payer_server_adaptive_group'
3
- require_relative 'tags'
4
- require_relative 'endpoints/cors'
5
- require_relative 'endpoints/mock_authorization/simple_token_endpoint'
6
- require_relative 'endpoints/mock_payer/questionnaire_package_proxy_endpoint'
7
- require_relative 'endpoints/mock_payer/next_question_proxy_endpoint'
8
- require_relative 'version'
1
+ require_relative 'payer_server_static_group'
2
+ require_relative 'payer_server_adaptive_group'
3
+ require_relative '../../tags'
4
+ require_relative '../../cross_suite/cors'
5
+ require_relative '../endpoints/simple_token_endpoint'
6
+ require_relative '../endpoints/questionnaire_package_proxy_endpoint'
7
+ require_relative '../endpoints/next_question_proxy_endpoint'
9
8
 
10
9
  module DaVinciDTRTestKit
11
10
  class DTRPayerServerSuite < Inferno::TestSuite
12
11
  extend CORS
13
12
 
14
13
  id :dtr_payer_server
15
- title 'Da Vinci DTR Payer Server Test Suite'
16
- description File.read(File.join(__dir__, 'docs', 'dtr_payer_server_suite_description_v201.md'))
14
+ title 'Da Vinci DTR Payer Server Test Suite v2.0.1'
15
+ description File.read(File.join(__dir__, 'dtr_payer_server_suite_description_v201.md'))
17
16
 
18
17
  links [
19
18
  {
@@ -106,6 +105,10 @@ module DaVinciDTRTestKit
106
105
  exclude_message do |message|
107
106
  message.message.match?(/\A\S+: \S+: URL value '.*' does not resolve/)
108
107
  end
108
+
109
+ validation_context do
110
+ snomedCT '731000124108'
111
+ end
109
112
  end
110
113
 
111
114
  allow_cors QUESTIONNAIRE_PACKAGE_PATH, NEXT_PATH
@@ -1,16 +1,16 @@
1
- require_relative 'payer_server_adaptive_request_test'
2
- require_relative 'payer_server_adaptive_request_validation_test'
3
- require_relative 'payer_server_adaptive_response_bundles_validation_test'
4
- require_relative 'payer_server_adaptive_response_search_validation_test'
5
- require_relative 'payer_server_adaptive_response_validation_test'
6
- require_relative 'payer_server_next_request_validation_test'
7
- require_relative 'payer_server_next_response_validation_test'
8
- require_relative 'payer_server_next_response_complete_test'
9
- require_relative 'adaptive_form_libraries_test'
10
- require_relative 'adaptive_form_questionnaire_extensions_test'
11
- require_relative 'adaptive_form_questionnaire_expressions_test'
12
- require_relative 'adaptive_next_questionnaire_extensions_test'
13
- require_relative 'adaptive_next_questionnaire_expressions_test'
1
+ require_relative 'adaptive_forms/payer_server_adaptive_request_test'
2
+ require_relative 'adaptive_forms/payer_server_adaptive_request_validation_test'
3
+ require_relative 'adaptive_forms/payer_server_adaptive_response_bundles_validation_test'
4
+ require_relative 'adaptive_forms/payer_server_adaptive_response_search_validation_test'
5
+ require_relative 'adaptive_forms/payer_server_adaptive_response_validation_test'
6
+ require_relative 'adaptive_forms/payer_server_next_request_validation_test'
7
+ require_relative 'adaptive_forms/payer_server_next_response_validation_test'
8
+ require_relative 'adaptive_forms/payer_server_next_response_complete_test'
9
+ require_relative 'adaptive_forms/adaptive_form_libraries_test'
10
+ require_relative 'adaptive_forms/adaptive_form_questionnaire_expressions_test'
11
+ require_relative 'adaptive_forms/adaptive_form_questionnaire_extensions_test'
12
+ require_relative 'adaptive_forms/adaptive_next_questionnaire_extensions_test'
13
+ require_relative 'adaptive_forms/adaptive_next_questionnaire_expressions_test'
14
14
 
15
15
  module DaVinciDTRTestKit
16
16
  class DTRPayerServerAdaptiveQuestionnairePackageGroup < Inferno::TestGroup
@@ -1,9 +1,9 @@
1
- require_relative 'static_form_request_test'
2
- require_relative 'static_form_request_validation_test'
3
- require_relative 'static_form_response_validation_test'
4
- require_relative 'static_form_libraries_test'
5
- require_relative 'static_form_questionnaire_extensions_test'
6
- require_relative 'static_form_questionnaire_expressions_test'
1
+ require_relative 'static_forms/static_form_request_test'
2
+ require_relative 'static_forms/static_form_request_validation_test'
3
+ require_relative 'static_forms/static_form_response_validation_test'
4
+ require_relative 'static_forms/static_form_libraries_test'
5
+ require_relative 'static_forms/static_form_questionnaire_extensions_test'
6
+ require_relative 'static_forms/static_form_questionnaire_expressions_test'
7
7
 
8
8
  module DaVinciDTRTestKit
9
9
  class DTRPayerServerQuestionnairePackageGroup < Inferno::TestGroup
@@ -1,4 +1,5 @@
1
- require_relative '../cql_test'
1
+ require_relative '../../../cross_suite/v2.0.1/cql_test'
2
+
2
3
  module DaVinciDTRTestKit
3
4
  class PayerStaticFormLibrariesTest < Inferno::Test
4
5
  include DaVinciDTRTestKit::CQLTest
@@ -1,4 +1,5 @@
1
- require_relative '../cql_test'
1
+ require_relative '../../../cross_suite/v2.0.1/cql_test'
2
+
2
3
  module DaVinciDTRTestKit
3
4
  class PayerStaticFormExpressionsTest < Inferno::Test
4
5
  include DaVinciDTRTestKit::CQLTest
@@ -1,4 +1,5 @@
1
- require_relative '../cql_test'
1
+ require_relative '../../../cross_suite/v2.0.1/cql_test'
2
+
2
3
  module DaVinciDTRTestKit
3
4
  class PayerStaticFormExtensionsTest < Inferno::Test
4
5
  include DaVinciDTRTestKit::CQLTest
@@ -1,8 +1,10 @@
1
- require_relative '../urls'
2
- require_relative '../validation_test'
1
+ require_relative '../../../urls'
2
+ require_relative '../../validation_test'
3
+
3
4
  module DaVinciDTRTestKit
4
5
  class StaticRFormRequestTest < Inferno::Test
5
6
  include URLs
7
+
6
8
  title 'Validate the questionnaires returned by the payer server'
7
9
  description %(
8
10
  Inferno will validate questionnaires returned by the payer server.
@@ -1,5 +1,6 @@
1
- require_relative '../urls'
2
- require_relative '../validation_test'
1
+ require_relative '../../../urls'
2
+ require_relative '../../validation_test'
3
+
3
4
  module DaVinciDTRTestKit
4
5
  class PayerStaticFormRequestValidationTest < Inferno::Test
5
6
  include DaVinciDTRTestKit::ValidationTest
@@ -1,11 +1,13 @@
1
- require_relative '../urls'
2
- require_relative '../validation_test'
3
- require_relative '../cql_test'
1
+ require_relative '../../../urls'
2
+ require_relative '../../validation_test'
3
+ require_relative '../../../cross_suite/v2.0.1/cql_test'
4
+
4
5
  module DaVinciDTRTestKit
5
6
  class PayerStaticFormResponseTest < Inferno::Test
6
7
  include URLs
7
8
  include DaVinciDTRTestKit::ValidationTest
8
9
  include DaVinciDTRTestKit::CQLTest
10
+
9
11
  id :dtr_v201_payer_static_form_response_test
10
12
  title 'Validate that the static response conforms to the DTR Questionnaire Package operation definition.'
11
13
  description %(