davinci_crd_test_kit 0.13.0 → 0.14.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 (341) hide show
  1. checksums.yaml +4 -4
  2. data/config/presets/inferno_crd_client_suite.json.erb +20 -14
  3. data/config/presets/inferno_crd_client_suite_prefetch_subset_v221.json.erb +125 -0
  4. data/config/presets/inferno_crd_client_suite_v221.json.erb +124 -0
  5. data/config/presets/inferno_crd_server_suite.json.erb +58 -1
  6. data/config/presets/inferno_crd_server_suite_v221.json.erb +94 -0
  7. data/config/presets/ri_crd_request_generator.json_v221.json.erb +13 -0
  8. data/config/presets/ri_crd_server.json.erb +19 -19
  9. data/lib/davinci_crd_test_kit/client/client_base_urls.rb +80 -0
  10. data/lib/davinci_crd_test_kit/{client_hook_request_validation.rb → client/client_hook_request_validation.rb} +1 -1
  11. data/lib/davinci_crd_test_kit/client/crd_client_options.rb +30 -0
  12. data/lib/davinci_crd_test_kit/client/endpoints/cds_services_discovery_handler.rb +34 -0
  13. data/lib/davinci_crd_test_kit/client/endpoints/custom_service_response.rb +342 -0
  14. data/lib/davinci_crd_test_kit/client/endpoints/gather_response_generation_data.rb +410 -0
  15. data/lib/davinci_crd_test_kit/client/endpoints/hook_request_endpoint.rb +233 -0
  16. data/lib/davinci_crd_test_kit/{mock_service_response.rb → client/endpoints/mock_service_response.rb} +165 -59
  17. data/lib/davinci_crd_test_kit/{card_responses → client/endpoints/mocked_card_responses}/companions_prerequisites.json +1 -0
  18. data/lib/davinci_crd_test_kit/{card_responses → client/endpoints/mocked_card_responses}/create_update_coverage_information.json +3 -2
  19. data/lib/davinci_crd_test_kit/{card_responses → client/endpoints/mocked_card_responses}/launch_smart_app.json +8 -1
  20. data/lib/davinci_crd_test_kit/{card_responses → client/endpoints/mocked_card_responses}/propose_alternate_request.json +1 -0
  21. data/lib/davinci_crd_test_kit/{card_responses → client/endpoints/mocked_card_responses}/request_form_completion.json +17 -16
  22. data/lib/davinci_crd_test_kit/client/multi_request_message_helper.rb +35 -0
  23. data/lib/davinci_crd_test_kit/client/tagged_request_load_helper.rb +38 -0
  24. data/lib/davinci_crd_test_kit/client/v2.0.1/api/client_fhir_api_create_test.rb +43 -0
  25. data/lib/davinci_crd_test_kit/client/v2.0.1/api/client_fhir_api_read_test.rb +43 -0
  26. data/lib/davinci_crd_test_kit/client/v2.0.1/api/client_fhir_api_search_test.rb +234 -0
  27. data/lib/davinci_crd_test_kit/client/v2.0.1/api/client_fhir_api_update_test.rb +43 -0
  28. data/lib/davinci_crd_test_kit/client/v2.0.1/api/client_fhir_api_validation_test.rb +63 -0
  29. data/lib/davinci_crd_test_kit/client/v2.0.1/auth/decode_auth_token_test.rb +65 -0
  30. data/lib/davinci_crd_test_kit/client/v2.0.1/auth/retrieve_jwks_test.rb +109 -0
  31. data/lib/davinci_crd_test_kit/client/v2.0.1/auth/token_header_test.rb +70 -0
  32. data/lib/davinci_crd_test_kit/client/v2.0.1/auth/token_payload_test.rb +85 -0
  33. data/lib/davinci_crd_test_kit/{routes/cds-services.json → client/v2.0.1/cds-services-v201.json} +1 -1
  34. data/lib/davinci_crd_test_kit/client/v2.0.1/client_appointment_book_group.rb +108 -0
  35. data/lib/davinci_crd_test_kit/client/v2.0.1/client_card_must_support_group.rb +31 -0
  36. data/lib/davinci_crd_test_kit/client/v2.0.1/client_encounter_discharge_group.rb +105 -0
  37. data/lib/davinci_crd_test_kit/client/v2.0.1/client_encounter_start_group.rb +105 -0
  38. data/lib/davinci_crd_test_kit/client/v2.0.1/client_fhir_api_group.rb +790 -0
  39. data/lib/davinci_crd_test_kit/client/v2.0.1/client_hooks_group.rb +74 -0
  40. data/lib/davinci_crd_test_kit/client/v2.0.1/client_order_dispatch_group.rb +111 -0
  41. data/lib/davinci_crd_test_kit/client/v2.0.1/client_order_select_group.rb +116 -0
  42. data/lib/davinci_crd_test_kit/client/v2.0.1/client_order_sign_group.rb +113 -0
  43. data/lib/davinci_crd_test_kit/{client_registration_group.rb → client/v2.0.1/client_registration_group.rb} +12 -8
  44. data/lib/davinci_crd_test_kit/client/v2.0.1/client_urls.rb +13 -0
  45. data/lib/davinci_crd_test_kit/client/v2.0.1/crd_client_suite.rb +134 -0
  46. data/lib/davinci_crd_test_kit/client/v2.0.1/invocation/appointment_book_receive_request_test.rb +129 -0
  47. data/lib/davinci_crd_test_kit/client/v2.0.1/invocation/encounter_discharge_receive_request_test.rb +126 -0
  48. data/lib/davinci_crd_test_kit/client/v2.0.1/invocation/encounter_start_receive_request_test.rb +126 -0
  49. data/lib/davinci_crd_test_kit/client/v2.0.1/invocation/order_dispatch_receive_request_test.rb +138 -0
  50. data/lib/davinci_crd_test_kit/client/v2.0.1/invocation/order_select_receive_request_test.rb +134 -0
  51. data/lib/davinci_crd_test_kit/client/v2.0.1/invocation/order_sign_receive_request_test.rb +136 -0
  52. data/lib/davinci_crd_test_kit/client/v2.0.1/must_support/client_card_must_support_coverage_information.rb +93 -0
  53. data/lib/davinci_crd_test_kit/client/v2.0.1/must_support/client_card_must_support_external_reference.rb +62 -0
  54. data/lib/davinci_crd_test_kit/client/v2.0.1/must_support/client_card_must_support_instructions.rb +62 -0
  55. data/lib/davinci_crd_test_kit/client/v2.0.1/registration/client_registration_verification_test.rb +94 -0
  56. data/lib/davinci_crd_test_kit/client/v2.0.1/registration/client_service_registration_attestation_test.rb +40 -0
  57. data/lib/davinci_crd_test_kit/client/v2.0.1/verify_request/hook_request_fetched_data_test.rb +86 -0
  58. data/lib/davinci_crd_test_kit/client/v2.0.1/verify_request/hook_request_optional_fields_test.rb +63 -0
  59. data/lib/davinci_crd_test_kit/client/v2.0.1/verify_request/hook_request_prefetch_equals_queried_test.rb +96 -0
  60. data/lib/davinci_crd_test_kit/client/v2.0.1/verify_request/hook_request_required_fields_test.rb +55 -0
  61. data/lib/davinci_crd_test_kit/client/v2.0.1/verify_request/hook_request_valid_context_test.rb +70 -0
  62. data/lib/davinci_crd_test_kit/client/v2.0.1/verify_request/hook_request_valid_prefetch_test.rb +62 -0
  63. data/lib/davinci_crd_test_kit/client/v2.0.1/verify_response/client_display_cards_attest.rb +83 -0
  64. data/lib/davinci_crd_test_kit/client/v2.0.1/verify_response/inferno_response_validation.rb +79 -0
  65. data/lib/davinci_crd_test_kit/client/v2.2.1/api/client_coverage_info_update_test.rb +212 -0
  66. data/lib/davinci_crd_test_kit/client/v2.2.1/api/client_crd_update_verification_group.rb +18 -0
  67. data/lib/davinci_crd_test_kit/client/v2.2.1/auth/decode_auth_token_test.rb +69 -0
  68. data/lib/davinci_crd_test_kit/client/v2.2.1/auth/retrieve_jwks_test.rb +120 -0
  69. data/lib/davinci_crd_test_kit/client/v2.2.1/auth/token_header_test.rb +92 -0
  70. data/lib/davinci_crd_test_kit/client/v2.2.1/auth/token_payload_test.rb +93 -0
  71. data/lib/davinci_crd_test_kit/client/v2.2.1/cds-services-prefetch-subset-v221.json +198 -0
  72. data/lib/davinci_crd_test_kit/client/v2.2.1/cds-services-v221.json +202 -0
  73. data/lib/davinci_crd_test_kit/client/v2.2.1/client_appointment_book_group.rb +102 -0
  74. data/lib/davinci_crd_test_kit/client/v2.2.1/client_cross_hook_group.rb +28 -0
  75. data/lib/davinci_crd_test_kit/client/v2.2.1/client_encounter_discharge_group.rb +96 -0
  76. data/lib/davinci_crd_test_kit/client/v2.2.1/client_encounter_start_group.rb +95 -0
  77. data/lib/davinci_crd_test_kit/client/v2.2.1/client_fhir_api_group.rb +88 -0
  78. data/lib/davinci_crd_test_kit/client/v2.2.1/client_hooks_group.rb +64 -0
  79. data/lib/davinci_crd_test_kit/client/v2.2.1/client_long_running_hook_group.rb +32 -0
  80. data/lib/davinci_crd_test_kit/client/v2.2.1/client_order_dispatch_group.rb +101 -0
  81. data/lib/davinci_crd_test_kit/client/v2.2.1/client_order_select_group.rb +102 -0
  82. data/lib/davinci_crd_test_kit/client/v2.2.1/client_order_sign_group.rb +107 -0
  83. data/lib/davinci_crd_test_kit/client/v2.2.1/client_registration_group.rb +27 -0
  84. data/lib/davinci_crd_test_kit/client/v2.2.1/client_urls.rb +27 -0
  85. data/lib/davinci_crd_test_kit/client/v2.2.1/crd_client_suite.rb +229 -0
  86. data/lib/davinci_crd_test_kit/client/v2.2.1/cross_hook/client_card_must_support_coverage_information_test.rb +63 -0
  87. data/lib/davinci_crd_test_kit/client/v2.2.1/cross_hook/client_fhirpath_collection_as_comma_delimited_string_test.rb +60 -0
  88. data/lib/davinci_crd_test_kit/client/v2.2.1/cross_hook/client_hook_instances_unique_test.rb +45 -0
  89. data/lib/davinci_crd_test_kit/client/v2.2.1/cross_hook/client_location_address_propagation_test.rb +135 -0
  90. data/lib/davinci_crd_test_kit/client/v2.2.1/cross_hook/client_prefetch_complete_and_subset_test.rb +103 -0
  91. data/lib/davinci_crd_test_kit/client/v2.2.1/invocation/appointment_book_receive_request_test.rb +156 -0
  92. data/lib/davinci_crd_test_kit/client/v2.2.1/invocation/encounter_discharge_receive_request_test.rb +157 -0
  93. data/lib/davinci_crd_test_kit/client/v2.2.1/invocation/encounter_start_receive_request_test.rb +157 -0
  94. data/lib/davinci_crd_test_kit/client/v2.2.1/invocation/order_dispatch_receive_request_test.rb +165 -0
  95. data/lib/davinci_crd_test_kit/client/v2.2.1/invocation/order_select_receive_request_test.rb +165 -0
  96. data/lib/davinci_crd_test_kit/client/v2.2.1/invocation/order_sign_receive_request_test.rb +165 -0
  97. data/lib/davinci_crd_test_kit/client/v2.2.1/long_running/client_long_running_receive_request_test.rb +64 -0
  98. data/lib/davinci_crd_test_kit/client/v2.2.1/long_running/client_skip_long_running_attestation_test.rb +49 -0
  99. data/lib/davinci_crd_test_kit/client/v2.2.1/registration/client_registration_verification_test.rb +161 -0
  100. data/lib/davinci_crd_test_kit/client/v2.2.1/registration/client_service_registration_attestation_test.rb +107 -0
  101. data/lib/davinci_crd_test_kit/client/v2.2.1/verify_request/hook_request_conformance_test.rb +47 -0
  102. data/lib/davinci_crd_test_kit/client/v2.2.1/verify_request/hook_request_coverage_verification_test.rb +152 -0
  103. data/lib/davinci_crd_test_kit/client/v2.2.1/verify_request/hook_request_data_fetch_verification_test.rb +55 -0
  104. data/lib/davinci_crd_test_kit/client/v2.2.1/verify_request/hook_request_granted_scopes_test.rb +123 -0
  105. data/lib/davinci_crd_test_kit/client/v2.2.1/verify_request/hook_request_prefetch_complete_test.rb +127 -0
  106. data/lib/davinci_crd_test_kit/client/v2.2.1/verify_request/hook_request_prefetch_profiles_test.rb +55 -0
  107. data/lib/davinci_crd_test_kit/client/v2.2.1/verify_request/hook_request_requested_version_test.rb +54 -0
  108. data/lib/davinci_crd_test_kit/client/v2.2.1/verify_request/hook_request_secured_transport_test.rb +48 -0
  109. data/lib/davinci_crd_test_kit/client/v2.2.1/verify_response/client_display_cards_attest.rb +74 -0
  110. data/lib/davinci_crd_test_kit/client/v2.2.1/verify_response/hook_response_support_coverage_information_test.rb +30 -0
  111. data/lib/davinci_crd_test_kit/client/v2.2.1/verify_response/inferno_response_validation.rb +77 -0
  112. data/lib/davinci_crd_test_kit/cross_suite/base_urls.rb +20 -0
  113. data/lib/davinci_crd_test_kit/cross_suite/cards_identification.rb +312 -0
  114. data/lib/davinci_crd_test_kit/{cards_validation.rb → cross_suite/cards_validation.rb} +104 -47
  115. data/lib/davinci_crd_test_kit/cross_suite/coverage-information_stu201_metadata.yml +27 -0
  116. data/lib/davinci_crd_test_kit/cross_suite/coverage-information_stu221_metadata.yml +60 -0
  117. data/lib/davinci_crd_test_kit/cross_suite/fhirpath_on_cds_request.rb +177 -0
  118. data/lib/davinci_crd_test_kit/{hook_request_field_validation.rb → cross_suite/hook_request_field_validation.rb} +282 -203
  119. data/lib/davinci_crd_test_kit/cross_suite/logical_models_override_helper.rb +220 -0
  120. data/lib/davinci_crd_test_kit/cross_suite/prefetch_completeness_checker.rb +462 -0
  121. data/lib/davinci_crd_test_kit/cross_suite/prefetch_contents_validation.rb +81 -0
  122. data/lib/davinci_crd_test_kit/cross_suite/prefetch_profile_validation.rb +48 -0
  123. data/lib/davinci_crd_test_kit/cross_suite/profiles_and_resource_types.rb +63 -0
  124. data/lib/davinci_crd_test_kit/cross_suite/replace_tokens.rb +38 -0
  125. data/lib/davinci_crd_test_kit/cross_suite/requests_logical_model_validation.rb +202 -0
  126. data/lib/davinci_crd_test_kit/cross_suite/response_logical_model_validation.rb +274 -0
  127. data/lib/davinci_crd_test_kit/{suggestion_actions_validation.rb → cross_suite/suggestion_actions_validation.rb} +70 -50
  128. data/lib/davinci_crd_test_kit/cross_suite/tags.rb +42 -0
  129. data/lib/davinci_crd_test_kit/metadata.rb +10 -44
  130. data/lib/davinci_crd_test_kit/requirements/cds-hooks-library_1.0.1_requirements.xlsx +0 -0
  131. data/lib/davinci_crd_test_kit/requirements/cds-hooks_2.0_requirements.xlsx +0 -0
  132. data/lib/davinci_crd_test_kit/requirements/cds-hooks_3.0.0-ballot_requirements.xlsx +0 -0
  133. data/lib/davinci_crd_test_kit/requirements/davinci_crd_test_kit_requirements.csv +742 -65
  134. data/lib/davinci_crd_test_kit/requirements/generated/crd_client_requirements_coverage.csv +279 -54
  135. data/lib/davinci_crd_test_kit/requirements/generated/crd_client_v221_requirements_coverage.csv +1430 -0
  136. data/lib/davinci_crd_test_kit/requirements/generated/crd_server_requirements_coverage.csv +36 -45
  137. data/lib/davinci_crd_test_kit/requirements/generated/crd_server_v221_requirements_coverage.csv +143 -0
  138. data/lib/davinci_crd_test_kit/requirements/hl7.fhir.us.davinci-crd_2.0.1_requirements.xlsx +0 -0
  139. data/lib/davinci_crd_test_kit/requirements/hl7.fhir.us.davinci-crd_2.2.1_requirements.xlsx +0 -0
  140. data/lib/davinci_crd_test_kit/server/endpoints/jwk_set_endpoint_handler.rb +13 -0
  141. data/lib/davinci_crd_test_kit/server/endpoints/mock_ehr/fhir_create_endpoint.rb +23 -0
  142. data/lib/davinci_crd_test_kit/server/endpoints/mock_ehr/fhir_delete_endpoint.rb +30 -0
  143. data/lib/davinci_crd_test_kit/server/endpoints/mock_ehr/fhir_metadata_endpoint.rb +112 -0
  144. data/lib/davinci_crd_test_kit/server/endpoints/mock_ehr/fhir_read_endpoint.rb +21 -0
  145. data/lib/davinci_crd_test_kit/server/endpoints/mock_ehr/fhir_request_handler.rb +261 -0
  146. data/lib/davinci_crd_test_kit/server/endpoints/mock_ehr/fhir_search_endpoint.rb +561 -0
  147. data/lib/davinci_crd_test_kit/server/endpoints/mock_ehr/fhir_update_endpoint.rb +24 -0
  148. data/lib/davinci_crd_test_kit/server/endpoints/mock_ehr/stress-test-Bundle.json +54687 -0
  149. data/lib/davinci_crd_test_kit/server/endpoints/mock_ehr_endpoints.rb +95 -0
  150. data/lib/davinci_crd_test_kit/server/jobs/invoke_hook.rb +225 -0
  151. data/lib/davinci_crd_test_kit/{jwt_helper.rb → server/jwt_helper.rb} +1 -12
  152. data/lib/davinci_crd_test_kit/server/resource_extractor.rb +68 -0
  153. data/lib/davinci_crd_test_kit/server/server_abstract_invoke_hook_test.rb +165 -0
  154. data/lib/davinci_crd_test_kit/server/server_base_urls.rb +30 -0
  155. data/lib/davinci_crd_test_kit/{server_hook_helper.rb → server/server_hook_helper.rb} +1 -1
  156. data/lib/davinci_crd_test_kit/{server_hook_request_validation.rb → server/server_hook_request_validation.rb} +1 -1
  157. data/lib/davinci_crd_test_kit/{test_helper.rb → server/server_test_helper.rb} +7 -3
  158. data/lib/davinci_crd_test_kit/server/v2.0.1/crd_metadata/Appointment.yml +5 -0
  159. data/lib/davinci_crd_test_kit/server/v2.0.1/crd_metadata/ClaimResponse.yml +5 -0
  160. data/lib/davinci_crd_test_kit/server/v2.0.1/crd_metadata/CommunicationRequest.yml +5 -0
  161. data/lib/davinci_crd_test_kit/server/v2.0.1/crd_metadata/Coverage.yml +21 -0
  162. data/lib/davinci_crd_test_kit/server/v2.0.1/crd_metadata/Device.yml +5 -0
  163. data/lib/davinci_crd_test_kit/server/v2.0.1/crd_metadata/DeviceRequest.yml +5 -0
  164. data/lib/davinci_crd_test_kit/server/v2.0.1/crd_metadata/Encounter.yml +7 -0
  165. data/lib/davinci_crd_test_kit/server/v2.0.1/crd_metadata/Location.yml +5 -0
  166. data/lib/davinci_crd_test_kit/server/v2.0.1/crd_metadata/MedicationRequest.yml +5 -0
  167. data/lib/davinci_crd_test_kit/server/v2.0.1/crd_metadata/NutritionOrder.yml +5 -0
  168. data/lib/davinci_crd_test_kit/server/v2.0.1/crd_metadata/Organization.yml +5 -0
  169. data/lib/davinci_crd_test_kit/server/v2.0.1/crd_metadata/Patient.yml +5 -0
  170. data/lib/davinci_crd_test_kit/server/v2.0.1/crd_metadata/Practitioner.yml +5 -0
  171. data/lib/davinci_crd_test_kit/server/v2.0.1/crd_metadata/PractitionerRole.yml +40 -0
  172. data/lib/davinci_crd_test_kit/server/v2.0.1/crd_metadata/ServiceRequest.yml +5 -0
  173. data/lib/davinci_crd_test_kit/server/v2.0.1/crd_metadata/Task.yml +5 -0
  174. data/lib/davinci_crd_test_kit/server/v2.0.1/crd_metadata/VisionPrescription.yml +5 -0
  175. data/lib/davinci_crd_test_kit/server/v2.0.1/crd_server_suite.rb +99 -0
  176. data/lib/davinci_crd_test_kit/server/v2.0.1/discovery/discovery_endpoint_test.rb +90 -0
  177. data/lib/davinci_crd_test_kit/server/v2.0.1/discovery/discovery_services_validation_test.rb +67 -0
  178. data/lib/davinci_crd_test_kit/server/v2.0.1/interaction/server_invoke_hook_test.rb +12 -0
  179. data/lib/davinci_crd_test_kit/server/v2.0.1/must_support/coverage_information_system_action_across_hooks_validation_test.rb +34 -0
  180. data/lib/davinci_crd_test_kit/server/v2.0.1/must_support/external_reference_card_across_hooks_validation_test.rb +30 -0
  181. data/lib/davinci_crd_test_kit/server/v2.0.1/must_support/instructions_card_received_across_hooks_test.rb +27 -0
  182. data/lib/davinci_crd_test_kit/server/v2.0.1/server_appointment_book_group.rb +191 -0
  183. data/lib/davinci_crd_test_kit/server/v2.0.1/server_demonstrate_hook_response_group.rb +93 -0
  184. data/lib/davinci_crd_test_kit/server/v2.0.1/server_discovery_group.rb +62 -0
  185. data/lib/davinci_crd_test_kit/server/v2.0.1/server_encounter_discharge_group.rb +186 -0
  186. data/lib/davinci_crd_test_kit/server/v2.0.1/server_encounter_start_group.rb +186 -0
  187. data/lib/davinci_crd_test_kit/server/v2.0.1/server_hooks_group.rb +73 -0
  188. data/lib/davinci_crd_test_kit/server/v2.0.1/server_order_dispatch_group.rb +191 -0
  189. data/lib/davinci_crd_test_kit/server/v2.0.1/server_order_select_group.rb +211 -0
  190. data/lib/davinci_crd_test_kit/server/v2.0.1/server_order_sign_group.rb +216 -0
  191. data/lib/davinci_crd_test_kit/server/v2.0.1/server_required_card_response_validation_group.rb +28 -0
  192. data/lib/davinci_crd_test_kit/server/v2.0.1/server_urls.rb +13 -0
  193. data/lib/davinci_crd_test_kit/server/v2.0.1/verify_request/service_request_context_validation_test.rb +30 -0
  194. data/lib/davinci_crd_test_kit/server/v2.0.1/verify_request/service_request_optional_fields_validation_test.rb +39 -0
  195. data/lib/davinci_crd_test_kit/server/v2.0.1/verify_request/service_request_required_fields_validation_test.rb +40 -0
  196. data/lib/davinci_crd_test_kit/server/v2.0.1/verify_response/additional_orders_validation_test.rb +59 -0
  197. data/lib/davinci_crd_test_kit/server/v2.0.1/verify_response/card_optional_fields_validation_test.rb +51 -0
  198. data/lib/davinci_crd_test_kit/server/v2.0.1/verify_response/coverage_information_system_action_received_test.rb +65 -0
  199. data/lib/davinci_crd_test_kit/server/v2.0.1/verify_response/coverage_information_system_action_validation_test.rb +120 -0
  200. data/lib/davinci_crd_test_kit/server/v2.0.1/verify_response/create_or_update_coverage_info_response_validation_test.rb +70 -0
  201. data/lib/davinci_crd_test_kit/server/v2.0.1/verify_response/external_reference_card_validation_test.rb +37 -0
  202. data/lib/davinci_crd_test_kit/server/v2.0.1/verify_response/form_completion_response_validation_test.rb +67 -0
  203. data/lib/davinci_crd_test_kit/server/v2.0.1/verify_response/instructions_card_received_test.rb +30 -0
  204. data/lib/davinci_crd_test_kit/server/v2.0.1/verify_response/launch_smart_app_card_validation_test.rb +39 -0
  205. data/lib/davinci_crd_test_kit/server/v2.0.1/verify_response/propose_alternate_request_card_validation_test.rb +46 -0
  206. data/lib/davinci_crd_test_kit/server/v2.0.1/verify_response/service_response_validation_test.rb +83 -0
  207. data/lib/davinci_crd_test_kit/server/v2.2.1/crd_metadata/Appointment_withorder.yml +5 -0
  208. data/lib/davinci_crd_test_kit/server/v2.2.1/crd_metadata/Appointment_withoutorder.yml +5 -0
  209. data/lib/davinci_crd_test_kit/server/v2.2.1/crd_metadata/CommunicationRequest.yml +5 -0
  210. data/lib/davinci_crd_test_kit/server/v2.2.1/crd_metadata/Coverage.yml +5 -0
  211. data/lib/davinci_crd_test_kit/server/v2.2.1/crd_metadata/Device.yml +5 -0
  212. data/lib/davinci_crd_test_kit/server/v2.2.1/crd_metadata/DeviceRequest.yml +5 -0
  213. data/lib/davinci_crd_test_kit/server/v2.2.1/crd_metadata/Encounter.yml +5 -0
  214. data/lib/davinci_crd_test_kit/server/v2.2.1/crd_metadata/Location.yml +5 -0
  215. data/lib/davinci_crd_test_kit/server/v2.2.1/crd_metadata/MedicationRequest.yml +5 -0
  216. data/lib/davinci_crd_test_kit/server/v2.2.1/crd_metadata/NutritionOrder.yml +5 -0
  217. data/lib/davinci_crd_test_kit/server/v2.2.1/crd_metadata/Organization.yml +5 -0
  218. data/lib/davinci_crd_test_kit/server/v2.2.1/crd_metadata/Patient.yml +5 -0
  219. data/lib/davinci_crd_test_kit/server/v2.2.1/crd_metadata/PractitionerRole.yml +5 -0
  220. data/lib/davinci_crd_test_kit/server/v2.2.1/crd_metadata/ServiceRequest.yml +5 -0
  221. data/lib/davinci_crd_test_kit/server/v2.2.1/crd_metadata/VisionPrescription.yml +5 -0
  222. data/lib/davinci_crd_test_kit/server/v2.2.1/crd_server_suite.rb +115 -0
  223. data/lib/davinci_crd_test_kit/server/v2.2.1/discovery/discovery_configuration_test.rb +159 -0
  224. data/lib/davinci_crd_test_kit/server/v2.2.1/discovery/discovery_endpoint_test.rb +90 -0
  225. data/lib/davinci_crd_test_kit/server/v2.2.1/discovery/discovery_prefetch_support_test.rb +43 -0
  226. data/lib/davinci_crd_test_kit/server/v2.2.1/discovery/discovery_services_validation_test.rb +121 -0
  227. data/lib/davinci_crd_test_kit/server/v2.2.1/interaction/server_invoke_hook_test.rb +17 -0
  228. data/lib/davinci_crd_test_kit/server/v2.2.1/must_support/coverage_information_must_support_test.rb +71 -0
  229. data/lib/davinci_crd_test_kit/server/v2.2.1/must_support/coverage_information_system_action_across_hooks_validation_test.rb +36 -0
  230. data/lib/davinci_crd_test_kit/server/v2.2.1/must_support/supported_us_core_versions_test.rb +118 -0
  231. data/lib/davinci_crd_test_kit/server/v2.2.1/server_appointment_book_group.rb +213 -0
  232. data/lib/davinci_crd_test_kit/server/v2.2.1/server_demonstrate_hook_response_group.rb +93 -0
  233. data/lib/davinci_crd_test_kit/server/v2.2.1/server_discovery_group.rb +69 -0
  234. data/lib/davinci_crd_test_kit/server/v2.2.1/server_encounter_discharge_group.rb +194 -0
  235. data/lib/davinci_crd_test_kit/server/v2.2.1/server_encounter_start_group.rb +194 -0
  236. data/lib/davinci_crd_test_kit/server/v2.2.1/server_hooks_group.rb +73 -0
  237. data/lib/davinci_crd_test_kit/server/v2.2.1/server_order_dispatch_group.rb +214 -0
  238. data/lib/davinci_crd_test_kit/server/v2.2.1/server_order_select_group.rb +219 -0
  239. data/lib/davinci_crd_test_kit/server/v2.2.1/server_order_sign_group.rb +241 -0
  240. data/lib/davinci_crd_test_kit/server/v2.2.1/server_required_card_response_validation_group.rb +30 -0
  241. data/lib/davinci_crd_test_kit/server/v2.2.1/server_urls.rb +13 -0
  242. data/lib/davinci_crd_test_kit/server/v2.2.1/verify_request/service_request_context_validation_test.rb +30 -0
  243. data/lib/davinci_crd_test_kit/server/v2.2.1/verify_request/service_request_no_custom_extensions_test.rb +120 -0
  244. data/lib/davinci_crd_test_kit/server/v2.2.1/verify_request/service_request_optional_fields_validation_test.rb +39 -0
  245. data/lib/davinci_crd_test_kit/server/v2.2.1/verify_request/service_request_required_fields_validation_test.rb +40 -0
  246. data/lib/davinci_crd_test_kit/server/v2.2.1/verify_response/additional_orders_validation_test.rb +66 -0
  247. data/lib/davinci_crd_test_kit/server/v2.2.1/verify_response/all_responses_include_coverage_information_test.rb +123 -0
  248. data/lib/davinci_crd_test_kit/server/v2.2.1/verify_response/card_optional_fields_validation_test.rb +57 -0
  249. data/lib/davinci_crd_test_kit/server/v2.2.1/verify_response/coverage_info_configuration_test.rb +83 -0
  250. data/lib/davinci_crd_test_kit/server/v2.2.1/verify_response/coverage_information_system_action_received_test.rb +65 -0
  251. data/lib/davinci_crd_test_kit/server/v2.2.1/verify_response/coverage_information_system_action_validation_test.rb +184 -0
  252. data/lib/davinci_crd_test_kit/server/v2.2.1/verify_response/create_or_update_coverage_info_response_validation_test.rb +75 -0
  253. data/lib/davinci_crd_test_kit/server/v2.2.1/verify_response/external_reference_card_validation_test.rb +47 -0
  254. data/lib/davinci_crd_test_kit/server/v2.2.1/verify_response/form_completion_response_validation_test.rb +91 -0
  255. data/lib/davinci_crd_test_kit/server/v2.2.1/verify_response/hook_request_resource_resolution.rb +137 -0
  256. data/lib/davinci_crd_test_kit/server/v2.2.1/verify_response/instructions_card_received_test.rb +32 -0
  257. data/lib/davinci_crd_test_kit/server/v2.2.1/verify_response/launch_smart_app_card_validation_test.rb +49 -0
  258. data/lib/davinci_crd_test_kit/server/v2.2.1/verify_response/order_dispatch_coverage_information_test.rb +38 -0
  259. data/lib/davinci_crd_test_kit/server/v2.2.1/verify_response/propose_alternate_request_card_validation_test.rb +54 -0
  260. data/lib/davinci_crd_test_kit/server/v2.2.1/verify_response/service_response_validation_test.rb +97 -0
  261. data/lib/davinci_crd_test_kit/server/v2.2.1/verify_response/unknown_cds_hooks_elements_test.rb +78 -0
  262. data/lib/davinci_crd_test_kit/server/v2.2.1/verify_response/unknown_configuration_test.rb +78 -0
  263. data/lib/davinci_crd_test_kit/server/v2.2.1/verify_response/unknown_context_test.rb +78 -0
  264. data/lib/davinci_crd_test_kit/server/v2.2.1/verify_response/verify_response_without_billing_options_test.rb +43 -0
  265. data/lib/davinci_crd_test_kit/server/v2.2.1/verify_response/verify_response_without_configuration_test.rb +44 -0
  266. data/lib/davinci_crd_test_kit/version.rb +2 -2
  267. data/lib/davinci_crd_test_kit.rb +4 -2
  268. metadata +297 -93
  269. data/lib/davinci_crd_test_kit/client_fhir_api_group.rb +0 -785
  270. data/lib/davinci_crd_test_kit/client_hooks_group.rb +0 -74
  271. data/lib/davinci_crd_test_kit/client_tests/appointment_book_receive_request_test.rb +0 -93
  272. data/lib/davinci_crd_test_kit/client_tests/client_appointment_book_group.rb +0 -75
  273. data/lib/davinci_crd_test_kit/client_tests/client_display_cards_attest.rb +0 -48
  274. data/lib/davinci_crd_test_kit/client_tests/client_encounter_discharge_group.rb +0 -73
  275. data/lib/davinci_crd_test_kit/client_tests/client_encounter_start_group.rb +0 -73
  276. data/lib/davinci_crd_test_kit/client_tests/client_fhir_api_create_test.rb +0 -42
  277. data/lib/davinci_crd_test_kit/client_tests/client_fhir_api_read_test.rb +0 -40
  278. data/lib/davinci_crd_test_kit/client_tests/client_fhir_api_search_test.rb +0 -232
  279. data/lib/davinci_crd_test_kit/client_tests/client_fhir_api_update_test.rb +0 -42
  280. data/lib/davinci_crd_test_kit/client_tests/client_fhir_api_validation_test.rb +0 -61
  281. data/lib/davinci_crd_test_kit/client_tests/client_order_dispatch_group.rb +0 -79
  282. data/lib/davinci_crd_test_kit/client_tests/client_order_select_group.rb +0 -82
  283. data/lib/davinci_crd_test_kit/client_tests/client_order_sign_group.rb +0 -81
  284. data/lib/davinci_crd_test_kit/client_tests/client_registration_verification_test.rb +0 -88
  285. data/lib/davinci_crd_test_kit/client_tests/decode_auth_token_test.rb +0 -60
  286. data/lib/davinci_crd_test_kit/client_tests/encounter_discharge_receive_request_test.rb +0 -90
  287. data/lib/davinci_crd_test_kit/client_tests/encounter_start_receive_request_test.rb +0 -90
  288. data/lib/davinci_crd_test_kit/client_tests/hook_request_optional_fields_test.rb +0 -57
  289. data/lib/davinci_crd_test_kit/client_tests/hook_request_required_fields_test.rb +0 -49
  290. data/lib/davinci_crd_test_kit/client_tests/hook_request_valid_context_test.rb +0 -68
  291. data/lib/davinci_crd_test_kit/client_tests/hook_request_valid_prefetch_test.rb +0 -69
  292. data/lib/davinci_crd_test_kit/client_tests/order_dispatch_receive_request_test.rb +0 -102
  293. data/lib/davinci_crd_test_kit/client_tests/order_select_receive_request_test.rb +0 -98
  294. data/lib/davinci_crd_test_kit/client_tests/order_sign_receive_request_test.rb +0 -101
  295. data/lib/davinci_crd_test_kit/client_tests/retrieve_jwks_test.rb +0 -105
  296. data/lib/davinci_crd_test_kit/client_tests/submitted_response_validation.rb +0 -48
  297. data/lib/davinci_crd_test_kit/client_tests/token_header_test.rb +0 -65
  298. data/lib/davinci_crd_test_kit/client_tests/token_payload_test.rb +0 -78
  299. data/lib/davinci_crd_test_kit/crd_client_suite.rb +0 -193
  300. data/lib/davinci_crd_test_kit/crd_options.rb +0 -9
  301. data/lib/davinci_crd_test_kit/crd_server_suite.rb +0 -125
  302. data/lib/davinci_crd_test_kit/igs/davinci-crd-2.0.1.tgz +0 -0
  303. data/lib/davinci_crd_test_kit/routes/cds_services_discovery_handler.rb +0 -18
  304. data/lib/davinci_crd_test_kit/routes/hook_request_endpoint.rb +0 -77
  305. data/lib/davinci_crd_test_kit/routes/jwk_set_endpoint_handler.rb +0 -15
  306. data/lib/davinci_crd_test_kit/server_appointment_book_group.rb +0 -176
  307. data/lib/davinci_crd_test_kit/server_demonstrate_hook_response_group.rb +0 -77
  308. data/lib/davinci_crd_test_kit/server_discovery_group.rb +0 -60
  309. data/lib/davinci_crd_test_kit/server_encounter_discharge_group.rb +0 -170
  310. data/lib/davinci_crd_test_kit/server_encounter_start_group.rb +0 -170
  311. data/lib/davinci_crd_test_kit/server_hooks_group.rb +0 -71
  312. data/lib/davinci_crd_test_kit/server_order_dispatch_group.rb +0 -176
  313. data/lib/davinci_crd_test_kit/server_order_select_group.rb +0 -195
  314. data/lib/davinci_crd_test_kit/server_order_sign_group.rb +0 -201
  315. data/lib/davinci_crd_test_kit/server_required_card_response_validation_group.rb +0 -26
  316. data/lib/davinci_crd_test_kit/server_tests/additional_orders_validation_test.rb +0 -68
  317. data/lib/davinci_crd_test_kit/server_tests/card_optional_fields_validation_test.rb +0 -47
  318. data/lib/davinci_crd_test_kit/server_tests/coverage_information_system_action_across_hooks_validation_test.rb +0 -32
  319. data/lib/davinci_crd_test_kit/server_tests/coverage_information_system_action_received_test.rb +0 -63
  320. data/lib/davinci_crd_test_kit/server_tests/coverage_information_system_action_validation_test.rb +0 -118
  321. data/lib/davinci_crd_test_kit/server_tests/create_or_update_coverage_info_response_validation_test.rb +0 -71
  322. data/lib/davinci_crd_test_kit/server_tests/discovery_endpoint_test.rb +0 -88
  323. data/lib/davinci_crd_test_kit/server_tests/discovery_services_validation_test.rb +0 -65
  324. data/lib/davinci_crd_test_kit/server_tests/external_reference_card_across_hooks_validation_test.rb +0 -28
  325. data/lib/davinci_crd_test_kit/server_tests/external_reference_card_validation_test.rb +0 -36
  326. data/lib/davinci_crd_test_kit/server_tests/form_completion_response_validation_test.rb +0 -78
  327. data/lib/davinci_crd_test_kit/server_tests/instructions_card_received_across_hooks_test.rb +0 -25
  328. data/lib/davinci_crd_test_kit/server_tests/instructions_card_received_test.rb +0 -26
  329. data/lib/davinci_crd_test_kit/server_tests/launch_smart_app_card_validation_test.rb +0 -38
  330. data/lib/davinci_crd_test_kit/server_tests/propose_alternate_request_card_validation_test.rb +0 -63
  331. data/lib/davinci_crd_test_kit/server_tests/service_call_test.rb +0 -101
  332. data/lib/davinci_crd_test_kit/server_tests/service_request_context_validation_test.rb +0 -28
  333. data/lib/davinci_crd_test_kit/server_tests/service_request_optional_fields_validation_test.rb +0 -37
  334. data/lib/davinci_crd_test_kit/server_tests/service_request_required_fields_validation_test.rb +0 -38
  335. data/lib/davinci_crd_test_kit/server_tests/service_response_validation_test.rb +0 -81
  336. data/lib/davinci_crd_test_kit/tags.rb +0 -10
  337. data/lib/davinci_crd_test_kit/urls.rb +0 -52
  338. /data/lib/davinci_crd_test_kit/{card_responses → client/endpoints/mocked_card_responses}/external_reference.json +0 -0
  339. /data/lib/davinci_crd_test_kit/{card_responses → client/endpoints/mocked_card_responses}/instructions.json +0 -0
  340. /data/lib/davinci_crd_test_kit/{crd_jwks.json → server/endpoints/crd_jwks.json} +0 -0
  341. /data/lib/davinci_crd_test_kit/{jwks.rb → server/endpoints/jwks.rb} +0 -0
@@ -1,4 +1,98 @@
1
1
  Req Set,ID,URL,Requirement,Conformance,Actors,Sub-Requirement(s),Conditionality,Not Tested Reason,Not Tested Details
2
+ cds-hooks-library_1.0.1,1,https://cds-hooks.hl7.org/hooks/STU1/order-sign.html#context,[When invoking the order-sign hook the context field] `userId`[is] REQUIRED,SHALL,Client,,false,,
3
+ cds-hooks-library_1.0.1,2,https://cds-hooks.hl7.org/hooks/STU1/order-sign.html#context,[When invoking the order-sign hook if context field] `userId`[is populated it SHALL be a ] *string*,SHALL,Client,,false,,
4
+ cds-hooks-library_1.0.1,3,https://cds-hooks.hl7.org/hooks/STU1/order-sign.html#context,[When invoking the order-sign hook if context field] `userId`[is populated it SHALL be t]he id of the current user … of type [Practitioner](https://www.hl7.org/fhir/practitioner.html) or [PractitionerRole](https://www.hl7.org/fhir/practitionerrole.html).,SHALL,Client,,false,,
5
+ cds-hooks-library_1.0.1,4,https://cds-hooks.hl7.org/hooks/STU1/order-sign.html#context,"Yes[, Servers MAY use the] `userId` [context field in prefetch tokens for the order-sign hook]",MAY,Server,,false,,
6
+ cds-hooks-library_1.0.1,5,https://cds-hooks.hl7.org/hooks/STU1/order-sign.html#context,[When invoking the order-sign hook the context field] `patientId`[is] REQUIRED,SHALL,Client,,false,,
7
+ cds-hooks-library_1.0.1,6,https://cds-hooks.hl7.org/hooks/STU1/order-sign.html#context,[When invoking the order-sign hook if context field] `patientId`[is populated it SHALL be a ] *string*,SHALL,Client,,false,,
8
+ cds-hooks-library_1.0.1,7,https://cds-hooks.hl7.org/hooks/STU1/order-sign.html#context,[When invoking the order-sign hook if context field] `patientId`[is populated it SHALL be t]he FHIR `Patient.id` of the current patient in context,SHALL,Client,,false,,
9
+ cds-hooks-library_1.0.1,8,https://cds-hooks.hl7.org/hooks/STU1/order-sign.html#context,"Yes[, Servers MAY use the] `patientId` [context field in prefetch tokens for the order-sign hook]",MAY,Server,,false,,
10
+ cds-hooks-library_1.0.1,9,https://cds-hooks.hl7.org/hooks/STU1/order-sign.html#context,[When invoking the order-sign hook the context field] `encounterId`[is] OPTIONAL,MAY,Client,,false,,
11
+ cds-hooks-library_1.0.1,10,https://cds-hooks.hl7.org/hooks/STU1/order-sign.html#context,[When invoking the order-sign hook if context field] `encounterId`[is populated it SHALL be a ] *string*,SHALL,Client,,true,,
12
+ cds-hooks-library_1.0.1,11,https://cds-hooks.hl7.org/hooks/STU1/order-sign.html#context,[When invoking the order-sign hook if context field] `encounterId`[is populated it SHALL be t]he FHIR `Encounter.id` of the current encounter in context,SHALL,Client,,true,,
13
+ cds-hooks-library_1.0.1,12,https://cds-hooks.hl7.org/hooks/STU1/order-sign.html#context,"Yes[, Servers MAY use the] `encounterId` [context field in prefetch tokens for the order-sign hook]",MAY,Server,,false,,
14
+ cds-hooks-library_1.0.1,13,https://cds-hooks.hl7.org/hooks/STU1/order-sign.html#context,[When invoking the order-sign hook the context field] `draftOrders`[is] REQUIRED,SHALL,Client,,false,,
15
+ cds-hooks-library_1.0.1,14,https://cds-hooks.hl7.org/hooks/STU1/order-sign.html#context,[When invoking the order-sign hook if context field] `draftOrders`[is populated it SHALL be an ] *object*,SHALL,Client,,false,,
16
+ cds-hooks-library_1.0.1,15,https://cds-hooks.hl7.org/hooks/STU1/order-sign.html#context,"[When invoking the order-sign hook if context field] `draftOrders`[is populated it SHALL be a] Bundle of FHIR request resources with a draft status, representing orders that aren't yet signed from the current ordering session.",SHALL,Client,,false,,
17
+ cds-hooks-library_1.0.1,16,https://cds-hooks.hl7.org/hooks/STU1/order-sign.html#context,"No[, Servers SHALL NOT use the] `draftOrders` [context field in prefetch tokens for the order-sign hook]",SHALL NOT,Server,,false,,
18
+ cds-hooks-library_1.0.1,17,https://cds-hooks.hl7.org/hooks/STU1/appointment-book.html#context,[When invoking the appointment-book hook the context field] `userId`[is] REQUIRED,SHALL,Client,,false,,
19
+ cds-hooks-library_1.0.1,18,https://cds-hooks.hl7.org/hooks/STU1/appointment-book.html#context,[When invoking the appointment-book hook if context field] `userId`[is populated it SHALL be a ] *string*,SHALL,Client,,false,,
20
+ cds-hooks-library_1.0.1,19,https://cds-hooks.hl7.org/hooks/STU1/appointment-book.html#context,"[When invoking the appointment-book hook if context field] `userId`[is populated it SHALL be t]he id of the current user … of type [Practitioner](https://www.hl7.org/fhir/practitioner.html), [PractitionerRole](https://www.hl7.org/fhir/practitionerrole.html), [Patient](https://www.hl7.org/fhir/patient.html), or [RelatedPerson](https://www.hl7.org/fhir/relatedperson.html).",SHALL,Client,,false,,
21
+ cds-hooks-library_1.0.1,20,https://cds-hooks.hl7.org/hooks/STU1/appointment-book.html#context,"Yes[, Servers MAY use the] `userId` [context field in prefetch tokens for the appointment-book hook]",MAY,Server,,false,,
22
+ cds-hooks-library_1.0.1,21,https://cds-hooks.hl7.org/hooks/STU1/appointment-book.html#context,[When invoking the appointment-book hook the context field] `patientId`[is] REQUIRED,SHALL,Client,,false,,
23
+ cds-hooks-library_1.0.1,22,https://cds-hooks.hl7.org/hooks/STU1/appointment-book.html#context,[When invoking the appointment-book hook if context field] `patientId`[is populated it SHALL be a ] *string*,SHALL,Client,,false,,
24
+ cds-hooks-library_1.0.1,23,https://cds-hooks.hl7.org/hooks/STU1/appointment-book.html#context,[When invoking the appointment-book hook if context field] `patientId`[is populated it SHALL be t]he FHIR `Patient.id` of Patient appointment(s) is/are for,SHALL,Client,,false,,
25
+ cds-hooks-library_1.0.1,24,https://cds-hooks.hl7.org/hooks/STU1/appointment-book.html#context,"Yes[, Servers MAY use the] `patientId` [context field in prefetch tokens for the appointment-book hook]",MAY,Server,,false,,
26
+ cds-hooks-library_1.0.1,25,https://cds-hooks.hl7.org/hooks/STU1/appointment-book.html#context,[When invoking the appointment-book hook the context field] `encounterId`[is] OPTIONAL,MAY,Client,,false,,
27
+ cds-hooks-library_1.0.1,26,https://cds-hooks.hl7.org/hooks/STU1/appointment-book.html#context,[When invoking the appointment-book hook if context field] `encounterId`[is populated it SHALL be a ] *string*,SHALL,Client,,true,,
28
+ cds-hooks-library_1.0.1,27,https://cds-hooks.hl7.org/hooks/STU1/appointment-book.html#context,[When invoking the appointment-book hook if context field] `encounterId`[is populated it SHALL be t]he FHIR `Encounter.id` of Encounter where booking was initiated,SHALL,Client,,true,,
29
+ cds-hooks-library_1.0.1,28,https://cds-hooks.hl7.org/hooks/STU1/appointment-book.html#context,"Yes[, Servers MAY use the] `encounterId` [context field in prefetch tokens for the appointment-book hook]",MAY,Server,,false,,
30
+ cds-hooks-library_1.0.1,29,https://cds-hooks.hl7.org/hooks/STU1/appointment-book.html#context,[When invoking the appointment-book hook the context field] `appointments`[is] REQUIRED,SHALL,Client,,false,,
31
+ cds-hooks-library_1.0.1,30,https://cds-hooks.hl7.org/hooks/STU1/appointment-book.html#context,[When invoking the appointment-book hook if context field] `appointments`[is populated it SHALL be an ] *object*,SHALL,Client,,false,,
32
+ cds-hooks-library_1.0.1,31,https://cds-hooks.hl7.org/hooks/STU1/appointment-book.html#context,[When invoking the appointment-book hook if context field] `appointments`[is populated it SHALL be a] FHIR Bundle of Appointments in 'proposed' state,SHALL,Client,,false,,
33
+ cds-hooks-library_1.0.1,32,https://cds-hooks.hl7.org/hooks/STU1/appointment-book.html#context,"No[, Servers SHALL NOT use the] `appointments` [context field in prefetch tokens for the appointment-book hook]",SHALL NOT,Server,,false,,
34
+ cds-hooks-library_1.0.1,33,https://cds-hooks.hl7.org/hooks/STU1/encounter-start.html#context,[When invoking the encounter-start hook the context field] `userId`[is] REQUIRED,SHALL,Client,,false,,
35
+ cds-hooks-library_1.0.1,34,https://cds-hooks.hl7.org/hooks/STU1/encounter-start.html#context,[When invoking the encounter-start hook if context field] `userId`[is populated it SHALL be a ] *string*,SHALL,Client,,false,,
36
+ cds-hooks-library_1.0.1,35,https://cds-hooks.hl7.org/hooks/STU1/encounter-start.html#context,[When invoking the encounter-start hook if context field] `userId`[is populated it SHALL be t]he id of the current user … of type [Practitioner](https://www.hl7.org/fhir/practitioner.html) or [PractitionerRole](https://www.hl7.org/fhir/practitionerrole.html).,SHALL,Client,,false,,
37
+ cds-hooks-library_1.0.1,36,https://cds-hooks.hl7.org/hooks/STU1/encounter-start.html#context,"Yes[, Servers MAY use the] `userId` [context field in prefetch tokens for the encounter-start hook]",MAY,Server,,false,,
38
+ cds-hooks-library_1.0.1,37,https://cds-hooks.hl7.org/hooks/STU1/encounter-start.html#context,[When invoking the encounter-start hook the context field] `patientId`[is] REQUIRED,SHALL,Client,,false,,
39
+ cds-hooks-library_1.0.1,38,https://cds-hooks.hl7.org/hooks/STU1/encounter-start.html#context,[When invoking the encounter-start hook if context field] `patientId`[is populated it SHALL be a ] *string*,SHALL,Client,,false,,
40
+ cds-hooks-library_1.0.1,39,https://cds-hooks.hl7.org/hooks/STU1/encounter-start.html#context,[When invoking the encounter-start hook if context field] `patientId`[is populated it SHALL be t]he FHIR `Patient.id` of the Patient the Encounter is for,SHALL,Client,,false,,
41
+ cds-hooks-library_1.0.1,40,https://cds-hooks.hl7.org/hooks/STU1/encounter-start.html#context,"Yes[, Servers MAY use the] `patientId` [context field in prefetch tokens for the encounter-start hook]",MAY,Server,,false,,
42
+ cds-hooks-library_1.0.1,41,https://cds-hooks.hl7.org/hooks/STU1/encounter-start.html#context,[When invoking the encounter-start hook the context field] `encounterId`[is] REQUIRED,SHALL,Client,,false,,
43
+ cds-hooks-library_1.0.1,42,https://cds-hooks.hl7.org/hooks/STU1/encounter-start.html#context,[When invoking the encounter-start hook if context field] `encounterId`[is populated it SHALL be a ] *string*,SHALL,Client,,false,,
44
+ cds-hooks-library_1.0.1,43,https://cds-hooks.hl7.org/hooks/STU1/encounter-start.html#context,[When invoking the encounter-start hook if context field] `encounterId`[is populated it SHALL be t]he FHIR `Encounter.id` of the Encounter being started,SHALL,Client,,false,,
45
+ cds-hooks-library_1.0.1,44,https://cds-hooks.hl7.org/hooks/STU1/encounter-start.html#context,"Yes[, Servers MAY use the] `encounterId` [context field in prefetch tokens for the encounter-start hook]",MAY,Server,,false,,
46
+ cds-hooks-library_1.0.1,45,https://cds-hooks.hl7.org/hooks/STU1/encounter-start.html#context,[When invoking the encounter-discharge hook the context field] `userId`[is] REQUIRED,SHALL,Client,,false,,
47
+ cds-hooks-library_1.0.1,46,https://cds-hooks.hl7.org/hooks/STU1/encounter-discharge.html#context,[When invoking the encounter-discharge hook if context field] `userId`[is populated it SHALL be a ] *string*,SHALL,Client,,false,,
48
+ cds-hooks-library_1.0.1,47,https://cds-hooks.hl7.org/hooks/STU1/encounter-discharge.html#context,[When invoking the encounter-discharge hook if context field] `userId`[is populated it SHALL be t]he id of the current user … of type [Practitioner](https://www.hl7.org/fhir/practitioner.html) or [PractitionerRole](https://www.hl7.org/fhir/practitionerrole.html).,SHALL,Client,,false,,
49
+ cds-hooks-library_1.0.1,48,https://cds-hooks.hl7.org/hooks/STU1/encounter-discharge.html#context,"Yes[, Servers MAY use the] `userId` [context field in prefetch tokens for the encounter-discharge hook]",MAY,Server,,false,,
50
+ cds-hooks-library_1.0.1,49,https://cds-hooks.hl7.org/hooks/STU1/encounter-discharge.html#context,[When invoking the encounter-discharge hook the context field] `patientId`[is] REQUIRED,SHALL,Client,,false,,
51
+ cds-hooks-library_1.0.1,50,https://cds-hooks.hl7.org/hooks/STU1/encounter-discharge.html#context,[When invoking the encounter-discharge hook if context field] `patientId`[is populated it SHALL be a ] *string*,SHALL,Client,,false,,
52
+ cds-hooks-library_1.0.1,51,https://cds-hooks.hl7.org/hooks/STU1/encounter-discharge.html#context,[When invoking the encounter-discharge hook if context field] `patientId`[is populated it SHALL be t]he FHIR `Patient.id` of the [patient] being discharged,SHALL,Client,,false,,
53
+ cds-hooks-library_1.0.1,52,https://cds-hooks.hl7.org/hooks/STU1/encounter-discharge.html#context,"Yes[, Servers MAY use the] `patientId` [context field in prefetch tokens for the encounter-discharge hook]",MAY,Server,,false,,
54
+ cds-hooks-library_1.0.1,53,https://cds-hooks.hl7.org/hooks/STU1/encounter-discharge.html#context,[When invoking the encounter-discharge hook the context field] `encounterId`[is] REQUIRED,SHALL,Client,,false,,
55
+ cds-hooks-library_1.0.1,54,https://cds-hooks.hl7.org/hooks/STU1/encounter-start.html#context,[When invoking the encounter-discharge hook if context field] `encounterId`[is populated it SHALL be a ] *string*,SHALL,Client,,false,,
56
+ cds-hooks-library_1.0.1,55,https://cds-hooks.hl7.org/hooks/STU1/encounter-discharge.html#context,[When invoking the encounter-discharge hook if context field] `encounterId`[is populated it SHALL be t]he FHIR `Encounter.id` of the Encounter being ended,SHALL,Client,,false,,
57
+ cds-hooks-library_1.0.1,56,https://cds-hooks.hl7.org/hooks/STU1/encounter-discharge.html#context,"Yes[, Servers MAY use the] `encounterId` [context field in prefetch tokens for the encounter-discharge hook]",MAY,Server,,false,,
58
+ cds-hooks-library_1.0.1,57,https://cds-hooks.hl7.org/hooks/STU1/order-dispatch.html#context,[When invoking the order-dispatch hook the context field] `patientId`[is] REQUIRED,SHALL,Client,,false,,
59
+ cds-hooks-library_1.0.1,58,https://cds-hooks.hl7.org/hooks/STU1/order-dispatch.html#context,[When invoking the order-dispatch hook if context field] `patientId`[is populated it SHALL be a ] *string*,SHALL,Client,,false,,
60
+ cds-hooks-library_1.0.1,59,https://cds-hooks.hl7.org/hooks/STU1/order-dispatch.html#context,[When invoking the order-dispatch hook if context field] `patientId`[is populated it SHALL be t]he FHIR `Patient.id` of the current patient in context,SHALL,Client,,false,,
61
+ cds-hooks-library_1.0.1,60,https://cds-hooks.hl7.org/hooks/STU1/order-dispatch.html#context,"Yes[, Servers MAY use the] `patientId` [context field in prefetch tokens for the order-dispatch hook]",MAY,Server,,false,,
62
+ cds-hooks-library_1.0.1,61,https://cds-hooks.hl7.org/hooks/STU1/order-dispatch.html#context,[When invoking the order-dispatch hook the context field] `dispatchedOrders`[is] REQUIRED,SHALL,Client,,false,,
63
+ cds-hooks-library_1.0.1,62,https://cds-hooks.hl7.org/hooks/STU1/order-dispatch.html#context,[When invoking the order-dispatch hook if context field] `dispatchedOrders`[is populated it SHALL be an ] *array*,SHALL,Client,,false,,
64
+ cds-hooks-library_1.0.1,63,https://cds-hooks.hl7.org/hooks/STU1/order-dispatch.html#context,[When invoking the order-dispatch hook if context field] `dispatchedOrders`[is populated it SHALL be a c]ollection of the FHIR local references for the Request resource(s) for which fulfillment is sought,SHALL,Client,,false,,
65
+ cds-hooks-library_1.0.1,64,https://cds-hooks.hl7.org/hooks/STU1/order-dispatch.html#context,"Yes[, Servers MAY use the] `dispatchedOrders` [context field in prefetch tokens for the order-dispatch hook]",MAY,Server,,false,,
66
+ cds-hooks-library_1.0.1,65,https://cds-hooks.hl7.org/hooks/STU1/order-dispatch.html#context,[When invoking the order-dispatch hook the context field] `performer`[is] REQUIRED,SHALL,Client,,false,,
67
+ cds-hooks-library_1.0.1,66,https://cds-hooks.hl7.org/hooks/STU1/order-dispatch.html#context,[When invoking the order-dispatch hook if context field] `performer`[is populated it SHALL be a ] *string*,SHALL,Client,,false,,
68
+ cds-hooks-library_1.0.1,67,https://cds-hooks.hl7.org/hooks/STU1/order-dispatch.html#context,"[When invoking the order-dispatch hook if context field] `performer`[is populated it SHALL be t]he FHIR local reference for the Practitioner, PractitionerRole, Organization, CareTeam, etc. who is being asked to execute the order",SHALL,Client,,false,,
69
+ cds-hooks-library_1.0.1,68,https://cds-hooks.hl7.org/hooks/STU1/order-dispatch.html#context,"Yes[, Servers MAY use the] `performer` [context field in prefetch tokens for the order-dispatch hook]",MAY,Server,,false,,
70
+ cds-hooks-library_1.0.1,69,https://cds-hooks.hl7.org/hooks/STU1/order-dispatch.html#context,[When invoking the order-dispatch hook the context field] `fulfillmentTasks`[is] Optional,MAY,Client,,false,,
71
+ cds-hooks-library_1.0.1,70,https://cds-hooks.hl7.org/hooks/STU1/order-dispatch.html#context,[When invoking the order-dispatch hook if context field] `fulfillmentTasks`[is populated it SHALL be an] *array*,SHALL,Client,,true,,
72
+ cds-hooks-library_1.0.1,71,https://cds-hooks.hl7.org/hooks/STU1/order-dispatch.html#context,[When invoking the order-dispatch hook if context field] `fulfillmentTasks`[is populated it SHALL be a c]ollection of the Task instances (as objects) that provides a full description of the fulfillment request - including the timing and any constraints on fulfillment.,SHALL,Client,,true,,
73
+ cds-hooks-library_1.0.1,72,https://cds-hooks.hl7.org/hooks/STU1/order-dispatch.html#context,[When invoking the order-dispatch hook if context field] `fulfillmentTasks`[is populated] each [task] will be for a separate order and SHALL reference one of the dispatched-orders.,SHALL,Client,,true,,
74
+ cds-hooks-library_1.0.1,73,https://cds-hooks.hl7.org/hooks/STU1/order-dispatch.html#context,"No[, Servers SHALL NOT use the] `fulfillmentTasks` [context field in prefetch tokens for the order-dispatch hook]",SHALL NOT,Server,,false,,
75
+ cds-hooks-library_1.0.1,74,https://cds-hooks.hl7.org/hooks/STU1/order-select.html#context,[When invoking the order-select hook the context field] `userId`[is] REQUIRED,SHALL,Client,,false,,
76
+ cds-hooks-library_1.0.1,75,https://cds-hooks.hl7.org/hooks/STU1/order-select.html#context,[When invoking the order-select hook if context field] `userId`[is populated it SHALL be a ] *string*,SHALL,Client,,false,,
77
+ cds-hooks-library_1.0.1,76,https://cds-hooks.hl7.org/hooks/STU1/order-select.html#context,[When invoking the order-select hook if context field] `userId`[is populated it SHALL be t]he id of the current user … of type [Practitioner](https://www.hl7.org/fhir/practitioner.html) or [PractitionerRole](https://www.hl7.org/fhir/practitionerrole.html).,SHALL,Client,,false,,
78
+ cds-hooks-library_1.0.1,77,https://cds-hooks.hl7.org/hooks/STU1/order-select.html#context,"Yes[, Servers MAY use the] `userId` [context field in prefetch tokens for the order-select hook]",MAY,Server,,false,,
79
+ cds-hooks-library_1.0.1,78,https://cds-hooks.hl7.org/hooks/STU1/order-select.html#context,[When invoking the order-select hook the context field] `patientId`[is] REQUIRED,SHALL,Client,,false,,
80
+ cds-hooks-library_1.0.1,79,https://cds-hooks.hl7.org/hooks/STU1/order-select.html#context,[When invoking the order-select hook if context field] `patientId`[is populated it SHALL be a ] *string*,SHALL,Client,,false,,
81
+ cds-hooks-library_1.0.1,80,https://cds-hooks.hl7.org/hooks/STU1/order-select.html#context,[When invoking the order-select hook if context field] `patientId`[is populated it SHALL be t]he FHIR `Patient.id` of the current patient in context,SHALL,Client,,false,,
82
+ cds-hooks-library_1.0.1,81,https://cds-hooks.hl7.org/hooks/STU1/order-select.html#context,"Yes[, Servers MAY use the] `patientId` [context field in prefetch tokens for the order-select hook]",MAY,Server,,false,,
83
+ cds-hooks-library_1.0.1,82,https://cds-hooks.hl7.org/hooks/STU1/order-select.html#context,[When invoking the order-select hook the context field] `encounterId`[is] OPTIONAL,MAY,Client,,false,,
84
+ cds-hooks-library_1.0.1,83,https://cds-hooks.hl7.org/hooks/STU1/order-select.html#context,[When invoking the order-select hook if context field] `encounterId`[is populated it SHALL be a ] *string*,SHALL,Client,,true,,
85
+ cds-hooks-library_1.0.1,84,https://cds-hooks.hl7.org/hooks/STU1/order-select.html#context,[When invoking the order-select hook if context field] `encounterId`[is populated it SHALL be t]he FHIR `Encounter.id` of the current encounter in context,SHALL,Client,,true,,
86
+ cds-hooks-library_1.0.1,85,https://cds-hooks.hl7.org/hooks/STU1/order-select.html#context,"Yes[, Servers MAY use the] `encounterId` [context field in prefetch tokens for the order-select hook]",MAY,Server,,false,,
87
+ cds-hooks-library_1.0.1,86,https://cds-hooks.hl7.org/hooks/STU1/order-select.html#context,[When invoking the order-select hook the context field] `selections`[is] Optional,MAY,Client,,false,,
88
+ cds-hooks-library_1.0.1,87,https://cds-hooks.hl7.org/hooks/STU1/order-select.html#context,[When invoking the order-select hook if context field] `selections`[is populated it SHALL be an] *array*,SHALL,Client,,true,,
89
+ cds-hooks-library_1.0.1,88,https://cds-hooks.hl7.org/hooks/STU1/order-select.html#context,"[When invoking the order-select hook if context field] `selections`[is populated it SHALL be t]he FHIR id of the newly selected order(s) … [that]
90
+ references FHIR resources in the `draftOrders` Bundle.",SHALL,Client,,true,,
91
+ cds-hooks-library_1.0.1,89,https://cds-hooks.hl7.org/hooks/STU1/order-select.html#context,"No[, Servers SHALL NOT use the] `selections` [context field in prefetch tokens for the order-select hook]",SHALL NOT,Server,,false,,
92
+ cds-hooks-library_1.0.1,90,https://cds-hooks.hl7.org/hooks/STU1/order-select.html#context,[When invoking the order-select hook the context field] `draftOrders`[is] REQUIRED,SHALL,Client,,false,,
93
+ cds-hooks-library_1.0.1,91,https://cds-hooks.hl7.org/hooks/STU1/order-select.html#context,[When invoking the order-select hook if context field] `draftOrders`[is populated it SHALL be an ] *object*,SHALL,Client,,false,,
94
+ cds-hooks-library_1.0.1,92,https://cds-hooks.hl7.org/hooks/STU1/order-select.html#context,"[When invoking the order-select hook if context field] `draftOrders`[is populated it SHALL be a] Bundle of FHIR request resources with a draft status, representing orders that aren't yet signed from the current ordering session.",SHALL,Client,,false,,
95
+ cds-hooks-library_1.0.1,93,https://cds-hooks.hl7.org/hooks/STU1/order-select.html#context,"No[, Servers SHALL NOT use the] `draftOrders` [context field in prefetch tokens for the order-select hook]",SHALL NOT,Server,,false,,
2
96
  cds-hooks_2.0,1,https://cds-hooks.hl7.org/2.0/#use-of-json,All data exchanged through production RESTful APIs MUST be sent and received as JSON (JavaScript Object Notation) structures.,SHALL,"Client, Service",,,,
3
97
  cds-hooks_2.0,2,https://cds-hooks.hl7.org/2.0/#use-of-json,All data exchanged through production RESTful APIs MUST be ... transmitted over HTTPS,SHALL,"Client, Service",,,,
4
98
  cds-hooks_2.0,3,https://cds-hooks.hl7.org/2.0/#use-of-json,"JSON elements SHALL NOT be null … [or] empty, unless otherwise specified (e.g. to indicate no guidance with an empty array of cards in the CDS Hooks response).",SHALL NOT,"Client, Service",,,,
@@ -71,25 +165,25 @@ cds-hooks_2.0,23,https://cds-hooks.hl7.org/2.0/#http-request_1,"The [service inv
71
165
  - optionality: OPTIONAL
72
166
  - type: object
73
167
  - description: The FHIR data that was prefetched by the CDS Client",MAY,Client,,,,
74
- cds-hooks_2.0,24,https://cds-hooks.hl7.org/2.0/#hookinstance,"While working in the CDS Client, a user can perform multiple actions in series or in parallel. For example, a clinician might prescribe two drugs in a row; each prescription action would be assigned a unique hookInstance. This allows a CDS Service to uniquely identify each hook invocation.",SHALL,Client,,,,
168
+ cds-hooks_2.0,24,https://cds-hooks.hl7.org/2.0/#hookinstance,"While working in the CDS Client, a user can perform multiple actions in series or in parallel. For example, a clinician might prescribe two drugs in a row; each prescription action would be assigned a unique hookInstance. This allows a CDS Service to uniquely identify each hook invocation.",DEPRECATED,Client,,,,
75
169
  cds-hooks_2.0,25,https://cds-hooks.hl7.org/2.0/#hookinstance,the hookInstance is globally unique,SHALL,Client,,,,
76
170
  cds-hooks_2.0,26,https://cds-hooks.hl7.org/2.0/#hookinstance,the hookInstance ... should contain enough entropy to be un-guessable.,SHOULD,Client,,,,
77
171
  cds-hooks_2.0,27,https://cds-hooks.hl7.org/2.0/#providing-fhir-resources-to-a-cds-service,CDS Services SHOULD respond quickly (on the order of 500 ms.),SHOULD,Service,,,,
78
172
  cds-hooks_2.0,28,https://cds-hooks.hl7.org/2.0/#providing-fhir-resources-to-a-cds-service,"FHIR resources MAY be obtained [by the service] by passing ""prefetched"" data from the CDS Client to the CDS Service in the service call.",MAY,Service,,,,
79
173
  cds-hooks_2.0,29,https://cds-hooks.hl7.org/2.0/#providing-fhir-resources-to-a-cds-service,"If data is to be prefetched, the CDS Service registers a set of ""prefetch templates"" with the CDS Client… [communicated] in the CDS Service discovery response.",SHALL,Service,,true,,
80
174
  cds-hooks_2.0,30,https://cds-hooks.hl7.org/2.0/#providing-fhir-resources-to-a-cds-service,"The [prefetched] FHIR resources are passed as key-value pairs, with each key matching a key described in the discovery response, and each value being a FHIR resource. Note that in the case of searches, this resource may be a searchset Bundle.",SHALL,Client,,true,,
81
- cds-hooks_2.0,31,https://cds-hooks.hl7.org/2.0/#providing-fhir-resources-to-a-cds-service,"If the CDS Client decides to have the CDS Service fetch its own FHIR resources, the CDS Client obtains and passes directly to the CDS Service a bearer token issued for the CDS Service's use in executing FHIR API calls against the CDS Client's FHIR server to obtain the required resources.",SHALL,Client,,true,,
175
+ cds-hooks_2.0,31,https://cds-hooks.hl7.org/2.0/#providing-fhir-resources-to-a-cds-service,"If the CDS Client decides to have the CDS Service fetch its own FHIR resources, the CDS Client obtains and passes directly to the CDS Service a bearer token issued for the CDS Service's use in executing FHIR API calls against the CDS Client's FHIR server to obtain the required resources.",DEPRECATED,Client,,true,,
82
176
  cds-hooks_2.0,32,https://cds-hooks.hl7.org/2.0/#providing-fhir-resources-to-a-cds-service,"Some CDS Clients MAY pass prefetched data, along with a bearer token for the CDS Service to use if additional resources are required.",MAY,Client,,false,,
83
177
  cds-hooks_2.0,33,https://cds-hooks.hl7.org/2.0/#providing-fhir-resources-to-a-cds-service,"Each CDS Client SHOULD decide which approach [for providing data to the Service], or combination, is preferred, based on performance considerations and assessment of attendant security and safety risks.",DEPRECATED,Client,,false,,
84
178
  cds-hooks_2.0,34,https://cds-hooks.hl7.org/2.0/#providing-fhir-resources-to-a-cds-service,CDS Services should be capable of accessing FHIR resources via either prefetch or from the CDS Client's FHIR server.,SHOULD,Service,,true,,
85
179
  cds-hooks_2.0,35,https://cds-hooks.hl7.org/2.0/#prefetch-template,"To allow for prefetch templates that are dependent on the workflow context, prefetch templates may include references to context using prefetch tokens.",MAY,"Client, Service",,false,,
86
180
  cds-hooks_2.0,36,https://cds-hooks.hl7.org/2.0/#prefetch-template,The prefetch field of a CDS Service discovery response … [SHALL provide a] prefetch key for each … [prefetch template] that is used to identify the prefetch data in the CDS request.,SHALL,Service,,false,,
87
- cds-hooks_2.0,37,https://cds-hooks.hl7.org/2.0/#prefetch-template,"CDS Client MAY choose to honor zero, some, or all of the desired prefetch templates",SHALL,Client,,false,,
181
+ cds-hooks_2.0,37,https://cds-hooks.hl7.org/2.0/#prefetch-template,"CDS Client MAY choose to honor zero, some, or all of the desired prefetch templates",MAY,Client,,false,,
88
182
  cds-hooks_2.0,38,https://cds-hooks.hl7.org/2.0/#prefetch-template,A CDS Client MAY ... choose the most appropriate source for … [its prefetch] data,MAY,Client,,false,,
89
183
  cds-hooks_2.0,39,https://cds-hooks.hl7.org/2.0/#prefetch-template,"[To avoid a network call,] the CDS Client MAY ... [use] prefetched data already in memory",MAY,Client,,false,,
90
184
  cds-hooks_2.0,40,https://cds-hooks.hl7.org/2.0/#prefetch-template,"[To minimize the number of calls,] the CDS Client MAY compute an efficient set of prefetch templates from multiple CDS Services",MAY,Client,,false,,
91
185
  cds-hooks_2.0,41,https://cds-hooks.hl7.org/2.0/#prefetch-template,The CDS Client MAY satisfy some of the desired prefetched templates via some internal service or even its own FHIR server.,MAY,Client,,false,,
92
- cds-hooks_2.0,42,https://cds-hooks.hl7.org/2.0/#prefetch-template,The CDS Client SHALL only provide access to resources that are within the user's authorized scope.,SHALL,Client,,false,,
186
+ cds-hooks_2.0,42,https://cds-hooks.hl7.org/2.0/#prefetch-template,"[When providing prefetched data, t]he CDS Client SHALL only provide access to resources that are within the user's authorized scope.",SHALL,Client,,false,,
93
187
  cds-hooks_2.0,43,https://cds-hooks.hl7.org/2.0/#prefetch-template,The relative URL [constructed when a CDS client processes prefetch templates] may be appended to the base URL for the CDS Client's FHIR server and directly invoked,MAY,Client,,false,,
94
188
  cds-hooks_2.0,44,https://cds-hooks.hl7.org/2.0/#prefetch-template,CDS Clients may use internal infrastructure to satisfy the [prefetch] request in the same way that invoking against the FHIR server would.,MAY,Client,,false,,
95
189
  cds-hooks_2.0,45,https://cds-hooks.hl7.org/2.0/#prefetch-template,the prefetched data given to the CDS Service MUST be equivalent to the data the CDS Service would receive if it were making its own call to the CDS Client's FHIR server using the parameterized prefetch template.,SHALL,Client,,false,,
@@ -102,9 +196,9 @@ cds-hooks_2.0,51,https://cds-hooks.hl7.org/2.0/#prefetch-template,CDS Clients MU
102
196
  cds-hooks_2.0,52,https://cds-hooks.hl7.org/2.0/#prefetch-template,CDS Services SHOULD check any prefetched data for the existence of OperationOutcomes,SHOULD,Service,,false,,
103
197
  cds-hooks_2.0,53,https://cds-hooks.hl7.org/2.0/#prefetch-template,"If the CDS Client has no data to populate a template prefetch key, the prefetch template key MUST have a value of null.",SHALL,Client,,true,,
104
198
  cds-hooks_2.0,54,https://cds-hooks.hl7.org/2.0/#prefetch-template,"If the CDS Service is unable to obtain required data because it cannot access the FHIR server and the request did not contain the necessary prefetch keys, the service SHALL respond with an HTTP 412 Precondition Failed status code.",SHALL,Service,,true,,
105
- cds-hooks_2.0,55,https://cds-hooks.hl7.org/2.0/#prefetch-tokens,Prefetch tokens MUST be delimited by {{ and }},SHALL,Client,,false,,
106
- cds-hooks_2.0,56,https://cds-hooks.hl7.org/2.0/#prefetch-tokens,"Prefetch tokens ... MUST contain only the qualified path to a hook context field or one of the following user identifiers: userPractitionerId, userPractitionerRoleId, userPatientId, or userRelatedPersonId",SHALL,Client,,true,,
107
- cds-hooks_2.0,57,https://cds-hooks.hl7.org/2.0/#prefetch-tokens,Only root-level fields with a primitive value within the context object are eligible to be used as prefetch tokens.,SHALL,Client,,true,,
199
+ cds-hooks_2.0,55,https://cds-hooks.hl7.org/2.0/#prefetch-tokens,Prefetch tokens MUST be delimited by {{ and }},SHALL,Service,,false,,
200
+ cds-hooks_2.0,56,https://cds-hooks.hl7.org/2.0/#prefetch-tokens,"Prefetch tokens ... MUST contain only the qualified path to a hook context field or one of the following user identifiers: userPractitionerId, userPractitionerRoleId, userPatientId, or userRelatedPersonId",SHALL,Service,,true,,
201
+ cds-hooks_2.0,57,https://cds-hooks.hl7.org/2.0/#prefetch-tokens,Only root-level fields with a primitive value within the context object are eligible to be used as prefetch tokens.,SHALL,Service,,true,,
108
202
  cds-hooks_2.0,58,https://cds-hooks.hl7.org/2.0/#prefetch-query-restrictions,"To reduce the implementation burden on CDS Clients that support CDS Services, this specification RECOMMENDS that prefetch queries only use a subset of the full functionality available in the FHIR specification … [that includes]:
109
203
  - instance level [read](https://www.hl7.org/fhir/http.html#read) interactions (for resources with known ids such as `Patient`, `Practitioner`, or `Encounter`)
110
204
  - type level [search](https://www.hl7.org/fhir/http.html#search) interactions; e.g. `patient={{context.patientId}}`
@@ -113,10 +207,10 @@ cds-hooks_2.0,58,https://cds-hooks.hl7.org/2.0/#prefetch-query-restrictions,"To
113
207
  - date search parameters on `date`, `dateTime`, `instant`, or `Period` types only, and using only the prefixes `eq`, `lt`, `gt`, `ge`, `le`
114
208
  - the `_count` parameter to limit the number of results returned
115
209
  - the `_sort` parameter to allow for most recent and first queries",SHOULD,Service,,,,
116
- cds-hooks_2.0,59,https://cds-hooks.hl7.org/2.0/#example-prefetch-token,"When context fields are used as tokens, their token name MUST be `context.name-of-the-field`",SHALL,Client,,true,,
210
+ cds-hooks_2.0,59,https://cds-hooks.hl7.org/2.0/#example-prefetch-token,"When context fields are used as tokens, their token name MUST be `context.name-of-the-field`",SHALL,Service,,true,,
117
211
  cds-hooks_2.0,60,https://cds-hooks.hl7.org/2.0/#fhir-resource-access,"If the CDS Client provides both fhirServer and fhirAuthorization request parameters, the CDS Service MAY use the FHIR server to obtain any FHIR resources for which it's authorized, beyond those provided by the CDS Client as prefetched data",MAY,Service,,true,,
118
212
  cds-hooks_2.0,61,https://cds-hooks.hl7.org/2.0/#fhir-resource-access,CDS Hooks requires that CDS Services present a valid access token to the FHIR server with each API call,SHALL,Service,,false,,
119
- cds-hooks_2.0,62,https://cds-hooks.hl7.org/2.0/#fhir-resource-access,"CDS Hooks workflow MUST accommodate the automated, low-latency delivery of an access token to the CDS service",SHALL,Client,,false,,
213
+ cds-hooks_2.0,62,https://cds-hooks.hl7.org/2.0/#fhir-resource-access,"CDS Hooks workflow MUST accommodate the automated, low-latency delivery of an access token to the CDS service",DEPRECATED,Client,,false,,
120
214
  cds-hooks_2.0,63,https://cds-hooks.hl7.org/2.0/#fhir-resource-access,"[When executing a CDS request on behalf of a user,] the data to which the CDS Service is given access by the CDS Client MUST be limited to the same restrictions and authorizations afforded the current user.",SHALL,Client,,true,,
121
215
  cds-hooks_2.0,64,https://cds-hooks.hl7.org/2.0/#fhir-resource-access,"[When executing a CDS request on behalf of a user,] the access token SHALL be scoped to: The CDS Service being invoked [and] the current user",SHALL,Client,,true,,
122
216
  cds-hooks_2.0,65,https://cds-hooks.hl7.org/2.0/#passing-the-access-token-to-the-cds-service,"If the CDS Client chooses not to pass along an access token, the fhirAuthorization parameter [SHALL be] … omitted.",SHALL,Client,,true,,
@@ -125,7 +219,7 @@ cds-hooks_2.0,67,https://cds-hooks.hl7.org/2.0/#passing-the-access-token-to-the-
125
219
  cds-hooks_2.0,68,https://cds-hooks.hl7.org/2.0/#passing-the-access-token-to-the-cds-service,"[When sending a fhirAuthorization request parameter, the] expires_in field [SHALL be populated with the] the lifetime in seconds of the access token [as an] integer data type",SHALL,Client,,true,,
126
220
  cds-hooks_2.0,69,https://cds-hooks.hl7.org/2.0/#passing-the-access-token-to-the-cds-service,"[When sending a fhirAuthorization request parameter, the] scope field [SHALL be populated with the] the scopes the access token grants the CDS Service [as a] string data type",SHALL,Client,,true,,
127
221
  cds-hooks_2.0,70,https://cds-hooks.hl7.org/2.0/#passing-the-access-token-to-the-cds-service,"[When sending a fhirAuthorization request parameter, the] subject field [SHALL be populated with] the [Oauth 2.0](https://oauth.net/2/) client identifier of the CDS Service, as registered with the CDS Client's authorization server [as a] string data type",SHALL,Client,,true,,
128
- cds-hooks_2.0,71,https://cds-hooks.hl7.org/2.0/#passing-the-access-token-to-the-cds-service,"[When sending a fhirAuthorization request parameter and] the access token is restricted to a specific patient, [the] patient field SHOULD be populated to identify the FHIR id of that patient [as a] string data type",SHALL,Client,,true,,
222
+ cds-hooks_2.0,71,https://cds-hooks.hl7.org/2.0/#passing-the-access-token-to-the-cds-service,"[When sending a fhirAuthorization request parameter and] the access token is restricted to a specific patient, [the] patient field SHOULD be populated to identify the FHIR id of that patient [as a] string data type",SHOULD,Client,,true,,
129
223
  cds-hooks_2.0,72,https://cds-hooks.hl7.org/2.0/#passing-the-access-token-to-the-cds-service,The `expires_in` value is established by the authorization server and SHOULD BE very short lived,SHOULD,Client,,false,,
130
224
  cds-hooks_2.0,73,https://cds-hooks.hl7.org/2.0/#passing-the-access-token-to-the-cds-service,CDS Clients SHOULD revoke an issued access token upon the completion of the CDS Hooks request/response to limit the validity period of the token.,SHOULD,Client,,true,,
131
225
  cds-hooks_2.0,74,https://cds-hooks.hl7.org/2.0/#cds-service-response,"For successful responses, CDS Services SHALL respond with a 200 HTTP response with an object containing a cards array",SHALL,Service,,true,,
@@ -133,7 +227,7 @@ cds-hooks_2.0,75,https://cds-hooks.hl7.org/2.0/#cds-service-response,"For succes
133
227
  cds-hooks_2.0,76,https://cds-hooks.hl7.org/2.0/#cds-service-response,"CDS Services MAY return other HTTP statuses, specifically 4xx and 5xx HTTP error codes.",MAY,Service,,true,,
134
228
  cds-hooks_2.0,77,https://cds-hooks.hl7.org/2.0/#cds-service-response,"If … [the] CDS Service has no decision support for the user, … [the] service should return a 200 HTTP response with an empty array of cards",SHOULD,Service,,true,,
135
229
  cds-hooks_2.0,78,https://cds-hooks.hl7.org/2.0/#cds-service-response,Clients SHOULD remove cards returned by previous invocations of a hook to a service with the same id when a new hook is triggered (see [update stale guidance](https://cds-hooks.hl7.org/2.0/#update-stale-guidance)).,SHOULD,Service,,true,,
136
- cds-hooks_2.0,79,https://cds-hooks.hl7.org/2.0/#card-attributes,[When sending a card object] the uuid field SHALL be included in any subsequent calls to the CDS service's feedback endpoint.,SHALL,Client,,true,,
230
+ cds-hooks_2.0,79,https://cds-hooks.hl7.org/2.0/#card-attributes,[When receiving a card object] the uuid field SHALL be included in any subsequent calls to the CDS service's feedback endpoint.,SHALL,Client,,true,,
137
231
  cds-hooks_2.0,80,https://cds-hooks.hl7.org/2.0/#card-attributes,[When sending a card object] the uuid field SHALL [be a] unique identifier of the card [and be sent as] a string data type,SHALL,Service,,true,,
138
232
  cds-hooks_2.0,81,https://cds-hooks.hl7.org/2.0/#card-attributes,[When sending a card object] the uuid field is optional,MAY,Service,,true,,
139
233
  cds-hooks_2.0,82,https://cds-hooks.hl7.org/2.0/#card-attributes,[When sending a card object] the uuid field MAY be used for auditing and logging cards,MAY,Service,,true,,
@@ -145,18 +239,18 @@ cds-hooks_2.0,87,https://cds-hooks.hl7.org/2.0/#card-attributes,[When sending a
145
239
  cds-hooks_2.0,88,https://cds-hooks.hl7.org/2.0/#card-attributes,"[When sending a card object] the indicator field's allowed values, in order of increasing urgency, are: info, warning, critical",SHALL,Service,,true,,
146
240
  cds-hooks_2.0,89,https://cds-hooks.hl7.org/2.0/#card-attributes,"[When sending a card object,] the CDS Client MAY use [the indicator] field to help make UI display decisions such as sort order or coloring.",SHALL,Service,,true,,
147
241
  cds-hooks_2.0,90,https://cds-hooks.hl7.org/2.0/#card-attributes,"[When sending a card object,] the source is a required field [and SHALL be populated with a] [source](https://cds-hooks.hl7.org/2.0/#source) object",SHALL,Service,,true,,
148
- cds-hooks_2.0,91,https://cds-hooks.hl7.org/2.0/#card-attributes,"[When sending a card object,] the source field [/ source object] should be the primary source of guidance for the decision support the card represents.",SHOULD,Client,,true,,
242
+ cds-hooks_2.0,91,https://cds-hooks.hl7.org/2.0/#card-attributes,"[When receiving a card object,] the source field [/ source object] should be the primary source of guidance for the decision support the card represents.",SHOULD,Client,,true,,
149
243
  cds-hooks_2.0,92,https://cds-hooks.hl7.org/2.0/#card-attributes,"[When sending a card object,] the suggestion field allows a service to suggest a set of changes in the context of the current activity [and is sent as a] array of [suggestion](https://cds-hooks.hl7.org/2.0/#suggestion) [objects]",SHALL,Service,,true,,
150
244
  cds-hooks_2.0,93,https://cds-hooks.hl7.org/2.0/#card-attributes,"[When sending a card object,] If suggestions are present, selectionBehavior MUST also be provided.",SHALL,Service,,true,,
151
245
  cds-hooks_2.0,94,https://cds-hooks.hl7.org/2.0/#card-attributes,"[When sending a card object,] the suggestion field is optional",MAY,Service,,true,,
152
246
  cds-hooks_2.0,95,https://cds-hooks.hl7.org/2.0/#card-attributes,"[When sending a card object,] the selectionBehavior field [has] allowed values of at-most-one, indicating that the user may choose none or at most one of the suggestions [and] any, indicating that the end user may choose any number of suggestions including none of them and all of them",SHALL,Service,,true,,
153
247
  cds-hooks_2.0,96,https://cds-hooks.hl7.org/2.0/#card-attributes,"[When sending a card object,] the selectionBehavior field [SHALL be sent as a] string data type [and SHALL be present if the suggestions field in the card is populated]",SHALL,Service,,true,,
154
- cds-hooks_2.0,97,https://cds-hooks.hl7.org/2.0/#card-attributes,"[When sending a card object,] CDS Clients that do not understand the value [in the selectionBehavior field] MUST treat the card as an error.",SHALL,Client,,true,,
248
+ cds-hooks_2.0,97,https://cds-hooks.hl7.org/2.0/#card-attributes,"[When receiving a card object,] CDS Clients that do not understand the value [in the selectionBehavior field] MUST treat the card as an error.",SHALL,Client,,true,,
155
249
  cds-hooks_2.0,98,https://cds-hooks.hl7.org/2.0/#card-attributes,"[When sending a card object,] the overrideReason field [SHALL be sent as a] array of [coding](https://cds-hooks.hl7.org/2.0/#coding) [objects]",SHALL,Service,,true,,
156
250
  cds-hooks_2.0,99,https://cds-hooks.hl7.org/2.0/#card-attributes,"[When sending a card object,] the CDS service MAY return a list of override reasons to the CDS client",MAY,Service,,true,,
157
251
  cds-hooks_2.0,100,https://cds-hooks.hl7.org/2.0/#card-attributes,"[When sending a card object,] if override reasons are present, the CDS Service MUST populate a display value for each reason's [Coding](https://cds-hooks.hl7.org/2.0/#coding)",SHALL,Service,,true,,
158
- cds-hooks_2.0,101,https://cds-hooks.hl7.org/2.0/#card-attributes,"[When sending a card object,] if override reasons are present … the CDS Client SHOULD present these reasons to the clinician when they dismiss a card.",SHOULD,Client,,true,,
159
- cds-hooks_2.0,102,https://cds-hooks.hl7.org/2.0/#card-attributes,"[When sending a card object,] if override reasons are present … a CDS Client MAY augment the override reasons presented to the user with its own reasons.",MAY,Client,,true,,
252
+ cds-hooks_2.0,101,https://cds-hooks.hl7.org/2.0/#card-attributes,"[When receiving a card object,] if override reasons are present … the CDS Client SHOULD present these reasons to the clinician when they dismiss a card.",SHOULD,Client,,true,,
253
+ cds-hooks_2.0,102,https://cds-hooks.hl7.org/2.0/#card-attributes,"[When receiving a card object,] if override reasons are present … a CDS Client MAY augment the override reasons presented to the user with its own reasons.",MAY,Client,,true,,
160
254
  cds-hooks_2.0,103,https://cds-hooks.hl7.org/2.0/#card-attributes,"[When sending a card object,] the link field [SHALL be sent as a] array of [link](https://cds-hooks.hl7.org/2.0/#link) [objects]",SHALL,Service,,true,,
161
255
  cds-hooks_2.0,104,https://cds-hooks.hl7.org/2.0/#card-attributes,"[When sending a card object,] the link field is optional",MAY,Service,,true,,
162
256
  cds-hooks_2.0,105,https://cds-hooks.hl7.org/2.0/#source,"[When sending a Source object,] the label field is required and [SHALL be a] string data type",SHALL,Service,,true,,
@@ -168,7 +262,7 @@ cds-hooks_2.0,110,https://cds-hooks.hl7.org/2.0/#source,"To supply a context-spe
168
262
  cds-hooks_2.0,111,https://cds-hooks.hl7.org/2.0/#source,"[When sending a Source object,] the icon field [SHALL be a] URL data type [and use a] absolute URL",SHALL,Service,,true,,
169
263
  cds-hooks_2.0,112,https://cds-hooks.hl7.org/2.0/#source,"[When sending a Source object,] the icon field URL SHOULD be a 100x100 pixel PNG image without any transparent regions.",SHOULD,Service,,true,,
170
264
  cds-hooks_2.0,113,https://cds-hooks.hl7.org/2.0/#source,"[When sending a Source object,] the icon field is optional",MAY,Service,,true,,
171
- cds-hooks_2.0,114,https://cds-hooks.hl7.org/2.0/#source,"[When sending a Source object,] the CDS Client may ignore or scale the image during display as appropriate for user experience.",MAY,Client,,true,,
265
+ cds-hooks_2.0,114,https://cds-hooks.hl7.org/2.0/#source,"[When receiving a Source object,] the CDS Client may ignore or scale the image during display as appropriate for user experience.",MAY,Client,,true,,
172
266
  cds-hooks_2.0,115,https://cds-hooks.hl7.org/2.0/#source,"[When sending a Source object,] the topic field [SHALL be a] [Coding](https://cds-hooks.hl7.org/2.0/#coding) type object",SHALL,Service,,true,,
173
267
  cds-hooks_2.0,116,https://cds-hooks.hl7.org/2.0/#source,"[When sending a Source object,] the topic field is optional",MAY,Service,,true,,
174
268
  cds-hooks_2.0,117,https://cds-hooks.hl7.org/2.0/#suggestion,"[When sending a Suggestion object,] the label field is required and [SHALL be a] string data type",SHALL,Service,,true,,
@@ -180,7 +274,7 @@ cds-hooks_2.0,122,https://cds-hooks.hl7.org/2.0/#suggestion,"[When sending a Sug
180
274
  cds-hooks_2.0,123,https://cds-hooks.hl7.org/2.0/#suggestion,"[When sending a Suggestion object,] the action field is optional",MAY,Service,,true,,
181
275
  cds-hooks_2.0,124,https://cds-hooks.hl7.org/2.0/#suggestion,"[When sending a Suggestion object,] the action field [SHALL be a] array of [actions](https://cds-hooks.hl7.org/2.0/#action)",SHALL,Service,,true,,
182
276
  cds-hooks_2.0,125,https://cds-hooks.hl7.org/2.0/#suggestion,"Within a suggestion, all actions … [SHALL use] AND [logic], such that a user selecting a suggestion selects all of the actions within it.",SHALL,"Client, Service",,true,,
183
- cds-hooks_2.0,126,https://cds-hooks.hl7.org/2.0/#suggestion,"[When sending a Suggestion object,] When a suggestion contains multiple actions, the actions SHOULD be processed as per FHIR's rules for processing [transactions](https://hl7.org/fhir/http.html#trules) with the CDS Client's fhirServer as the base url for the inferred full URL of the transaction bundle entries. (Specifically, deletes happen first, then creates, then updates).",SHOULD,Client,,true,,
277
+ cds-hooks_2.0,126,https://cds-hooks.hl7.org/2.0/#suggestion,"[When receiving a Suggestion object,] When a suggestion contains multiple actions, the actions SHOULD be processed as per FHIR's rules for processing [transactions](https://hl7.org/fhir/http.html#trules) with the CDS Client's fhirServer as the base url for the inferred full URL of the transaction bundle entries. (Specifically, deletes happen first, then creates, then updates).",SHOULD,Client,,true,,
184
278
  cds-hooks_2.0,127,https://cds-hooks.hl7.org/2.0/#action,"[When sending an Action object,] the type field is required and [SHALL be a] string data type [with] values of create, update, delete.",SHALL,Service,,true,,
185
279
  cds-hooks_2.0,128,https://cds-hooks.hl7.org/2.0/#action,"[When sending an Action object,] the description field is required and [SHALL be a] string data type",SHALL,Service,,true,,
186
280
  cds-hooks_2.0,129,https://cds-hooks.hl7.org/2.0/#action,"[When sending an Action object,] the description field MAY be presented to the end-user",MAY,Service,,true,,
@@ -197,7 +291,7 @@ cds-hooks_2.0,139,https://cds-hooks.hl7.org/2.0/#link,"[When sending a Link obje
197
291
  cds-hooks_2.0,140,https://cds-hooks.hl7.org/2.0/#link,"[When sending a Link object,] the url field MAY be a ""deep link"" with context embedded in path segments, query parameters, or a hash.",MAY,Service,,true,,
198
292
  cds-hooks_2.0,141,https://cds-hooks.hl7.org/2.0/#link,"[When sending a Link object,] the type field is required [and SHALL be a] string data type",SHALL,Service,,true,,
199
293
  cds-hooks_2.0,142,https://cds-hooks.hl7.org/2.0/#link,"[When sending a Link object,] the type field [SHALL have values] absolute … or smart. absolute indicates that the URL is absolute and should be treated as-is. smart indicates that the URL is absolute or smart indicates that the URL is a SMART app launch URL",SHALL,Service,,true,,
200
- cds-hooks_2.0,143,https://cds-hooks.hl7.org/2.0/#link,"[When sending a Link object and the link.type field is smart,] CDS Client should ensure the SMART app launch URL is populated with the appropriate SMART launch parameters.",SHOULD,Client,,true,,
294
+ cds-hooks_2.0,143,https://cds-hooks.hl7.org/2.0/#link,"[When receiving a Link object and the link.type field is smart,] CDS Client should ensure the SMART app launch URL is populated with the appropriate SMART launch parameters.",SHOULD,Client,,true,,
201
295
  cds-hooks_2.0,144,https://cds-hooks.hl7.org/2.0/#link,"[When sending a Link object,] the appContext field [SHALL be a] string data type",SHALL,Service,,true,,
202
296
  cds-hooks_2.0,145,https://cds-hooks.hl7.org/2.0/#link,"[When sending a Link object,] the appContext field is optional",MAY,Service,,true,,
203
297
  cds-hooks_2.0,146,https://cds-hooks.hl7.org/2.0/#link,"[When sending a Link object,] the appContext field should only be valued if the link type is smart",SHOULD,Service,,true,,
@@ -247,8 +341,8 @@ cds-hooks_2.0,188,https://cds-hooks.hl7.org/2.0/#trusting-cds-clients,"The JWT M
247
341
  cds-hooks_2.0,189,https://cds-hooks.hl7.org/2.0/#trusting-cds-clients,"[When sending a JWT payload,] the aud field is required [and SHALL be a] string data type or an array of strings [per [rfc7519](https://tools.ietf.org/html/rfc7519#section-4.1.3) containing] the CDS Service endpoint that is being called by the CDS Client",SHALL,Client,,true,,
248
342
  cds-hooks_2.0,190,https://cds-hooks.hl7.org/2.0/#trusting-cds-clients,"[When sending a JWT payload,] the exp field is required [and SHALL be a] number data type [containing the] expiration time integer for this authentication JWT, expressed in seconds since the ""Epoch"" (1970-01-01T00:00:00Z UTC).",SHALL,Client,,true,,
249
343
  cds-hooks_2.0,191,https://cds-hooks.hl7.org/2.0/#trusting-cds-clients,"[When sending a JWT payload,] the iat field is required [and SHALL be a] number data type [containing] the time at which this JWT was issued, expressed in seconds since the ""Epoch"" (1970-01-01T00:00:00Z UTC)",SHALL,Client,,true,,
250
- cds-hooks_2.0,192,https://cds-hooks.hl7.org/2.0/#trusting-cds-clients,"[When sending a JWT payload,] the jti field is required [and SHALL be a] string data type[containing] a nonce string value that uniquely identifies this authentication JWT (used to protect against replay attacks)",SHALL,Client,,true,,
251
- cds-hooks_2.0,193,https://cds-hooks.hl7.org/2.0/#trusting-cds-clients,"[When sending a JWT payload,] the tenant field [SHALL be a] string data type [containing] an opaque string identifying the healthcare organization that is invoking the CDS Hooks request",SHALL,Client,,true,,
344
+ cds-hooks_2.0,192,https://cds-hooks.hl7.org/2.0/#trusting-cds-clients,"[When sending a JWT payload,] the jti field is required [and SHALL be a] string data type [containing] a nonce string value that uniquely identifies this authentication JWT (used to protect against replay attacks)",SHALL,Client,,true,,
345
+ cds-hooks_2.0,193,https://cds-hooks.hl7.org/2.0/#trusting-cds-clients,"[When sending a JWT payload,] the tenant field is optional [SHALL be a] string data type [containing] an opaque string identifying the healthcare organization that is invoking the CDS Hooks request",MAY,Client,,true,,
252
346
  cds-hooks_2.0,194,https://cds-hooks.hl7.org/2.0/#trusting-cds-clients,"[When sending a JWT payload,] the tenant field is optional",MAY,Client,,true,,
253
347
  cds-hooks_2.0,195,https://cds-hooks.hl7.org/2.0/#trusting-cds-clients,CDS Services SHOULD limit the CDS Clients they trust by maintaining an allowlist of iss and jku urls.,SHOULD,Service,,false,,
254
348
  cds-hooks_2.0,196,https://cds-hooks.hl7.org/2.0/#trusting-cds-clients,"For CDS Hooks, [the aud] value MUST be the URL of the CDS Service endpoint being invoked",SHALL,Client,,false,,
@@ -276,6 +370,336 @@ cds-hooks_2.0,217,https://cds-hooks.hl7.org/2.0/#coding,"[When sending a coding
276
370
  cds-hooks_2.0,218,https://cds-hooks.hl7.org/2.0/#coding,"[When sending a coding object,] the code field is required [and SHALL be a] string data type",SHALL,Service,,true,,
277
371
  cds-hooks_2.0,219,https://cds-hooks.hl7.org/2.0/#coding,"[When sending a coding object,] the display field is human-readable display required [when] [Override Reasons](https://cds-hooks.hl7.org/2.0/#overridereason) provided by CDS Service [are sent in card.overrideReason and SHALL be a] string data type",SHALL,Service,,true,,
278
372
  cds-hooks_2.0,220,https://cds-hooks.hl7.org/2.0/#coding,"[When sending a coding object,] the display field is human-readable display [which is] OPTIONAL [when sending source.topic]",SHALL,Service,,true,,
373
+ cds-hooks_3.0.0-ballot,1,https://cds-hooks.hl7.org/2026Jan/en/index.html#use-of-json,All data exchanged through production RESTful APIs MUST be sent and received as JSON (JavaScript Object Notation) structures.,SHALL,"Client, Service",,,,
374
+ cds-hooks_3.0.0-ballot,2,https://cds-hooks.hl7.org/2026Jan/en/index.html#use-of-json,All data exchanged through production RESTful APIs MUST be ... transmitted over HTTPS,SHALL,"Client, Service",,,,
375
+ cds-hooks_3.0.0-ballot,221,https://cds-hooks.hl7.org/2026Jan/en/index.html#use-of-json,JSON comments and trailing commas SHOULD NOT be transmitted as they are not part of the JSON specification.,SHOULD NOT,"Client, Service",,,,
376
+ cds-hooks_3.0.0-ballot,3,https://cds-hooks.hl7.org/2026Jan/en/index.html#use-of-json,"JSON elements SHALL NOT be null … [or] empty, unless otherwise specified (e.g. to indicate no guidance with an empty array of cards in the CDS Hooks response).",SHALL NOT,"Client, Service",,,,
377
+ cds-hooks_3.0.0-ballot,222,https://cds-hooks.hl7.org/2026Jan/en/index.html#use-of-json,"If a JSON attribute is defined as OPTIONAL, and does not have a value, implementers MUST omit it.",SHALL,"Client, Service",,,,
378
+ cds-hooks_3.0.0-ballot,223,https://cds-hooks.hl7.org/2026Jan/en/index.html#use-of-json,"Unless otherwise specified, JSON attribute values SHALL NOT be null or empty, so null, """", [], or {} are prohibited",SHALL NOT,"Client, Service",,,,
379
+ cds-hooks_3.0.0-ballot,224,https://cds-hooks.hl7.org/2026Jan/en/index.html#use-of-json,"If a JSON attribute is defined with as OPTIONAL, and does not have a value, implementers SHALL omit it.",SHALL,"Client, Service",,,,
380
+ cds-hooks_3.0.0-ballot,225,https://cds-hooks.hl7.org/2026Jan/en/index.html#capability-documentation,[C]lients SHALL indicate whether they support the actionSelectionBehavior feature,SHALL,Client,,,,
381
+ cds-hooks_3.0.0-ballot,226,https://cds-hooks.hl7.org/2026Jan/en/index.html#capability-documentation,[C[lients … SHOULD document any other feature support necessary to ensure safe operation of CDS Services.,SHOULD,Client,,,,
382
+ cds-hooks_3.0.0-ballot,227,https://cds-hooks.hl7.org/2026Jan/en/index.html#capability-documentation,CDS Services SHALL NOT make use of the actionSelectionBehavior feature without knowing that the requesting client supports it.,SHALL NOT,Service,,,,
383
+ cds-hooks_3.0.0-ballot,4,https://cds-hooks.hl7.org/2026Jan/en/index.html#discovery,A CDS Service provider exposes its discovery endpoint at: {baseURL}/cds-services,SHALL,Service,,,,
384
+ cds-hooks_3.0.0-ballot,5,https://cds-hooks.hl7.org/2026Jan/en/index.html#http-request,The Discovery endpoint SHALL always be available at {baseUrl}/cds-services [using HTTP GET],SHALL,Service,,,,
385
+ cds-hooks_3.0.0-ballot,6,https://cds-hooks.hl7.org/2026Jan/en/index.html#response,The response to the discovery endpoint SHALL be an object containing a list [json array] of CDS Services.,SHALL,Service,,,,
386
+ cds-hooks_3.0.0-ballot,7,https://cds-hooks.hl7.org/2026Jan/en/index.html#response,"Each CDS Service SHALL be described by the following attributes [including]:
387
+ - field: hook
388
+ - optionality: REQUIRED
389
+ - type: string
390
+ - description: The hook this service should be invoked on",SHALL,Service,,,,
391
+ cds-hooks_3.0.0-ballot,8,https://cds-hooks.hl7.org/2026Jan/en/index.html#response,"Each CDS Service SHALL be described by the following attributes [including]:
392
+ - field: title
393
+ - optionality: RECOMMENDED
394
+ - type: string
395
+ - description: The human-friendly name of this service.",SHOULD,Service,,,,
396
+ cds-hooks_3.0.0-ballot,9,https://cds-hooks.hl7.org/2026Jan/en/index.html#response,"Each CDS Service SHALL be described by the following attributes [including]:
397
+ - field: description
398
+ - optionality: REQUIRED
399
+ - type: string
400
+ - description: The description of this service.",SHALL,Service,,,,
401
+ cds-hooks_3.0.0-ballot,10,https://cds-hooks.hl7.org/2026Jan/en/index.html#response,"Each CDS Service SHALL be described by the following attributes [including]:
402
+ - field: id
403
+ - optionality: REQUIRED
404
+ - type: string
405
+ - description: The {id} portion of the URL to this service which is available at
406
+ {baseUrl}/cds-services/{id}",SHALL,Service,,,,
407
+ cds-hooks_3.0.0-ballot,11,https://cds-hooks.hl7.org/2026Jan/en/index.html#response,"Each CDS Service SHALL be described by the following attributes [including]:
408
+ - field: prefetch
409
+ - optionality: OPTIONAL
410
+ - type: object
411
+ - description: An object containing key/value pairs of FHIR queries that this service is requesting the CDS Client to perform and provide on each service call. The key is a *string* that describes the type of data being requested and the value is a *string* representing the FHIR query.",MAY,Service,,,,
412
+ cds-hooks_3.0.0-ballot,12,https://cds-hooks.hl7.org/2026Jan/en/index.html#response,"Each CDS Service SHALL be described by the following attributes [including]:
413
+ - field: usageRequirements
414
+ - optionality: OPTIONAL
415
+ - type: string
416
+ - description: Human-friendly description of any preconditions for the use of this CDS Service.",MAY,Service,,,,
417
+ cds-hooks_3.0.0-ballot,228,https://cds-hooks.hl7.org/2026Jan/en/index.html#response,"Each CDS Service SHALL be described by the following attributes [including]:
418
+ - field: version
419
+ - optionality: RECOMMENDED
420
+ - type: string
421
+ - description: The version of the CDS Hooks specification implemented (STU1 | STU2 | STU3).",SHOULD,Service,,,,
422
+ cds-hooks_3.0.0-ballot,229,https://cds-hooks.hl7.org/2026Jan/en/index.html#response,[A] CDS server can host multiple entries of CDS service with the same id for different hooks,MAY,Service,,,,
423
+ cds-hooks_3.0.0-ballot,13,https://cds-hooks.hl7.org/2026Jan/en/index.html#http-status-codes,[Services SHALL return a HTTP] 200 ok [response to indicate] A successful response [to a discovery request],SHALL,Service,,,,
424
+ cds-hooks_3.0.0-ballot,14,https://cds-hooks.hl7.org/2026Jan/en/index.html#http-status-codes,"CDS Services MAY return other HTTP statuses, specifically 4xx and 5xx HTTP error codes.",MAY,Service,,,,
425
+ cds-hooks_3.0.0-ballot,15,https://cds-hooks.hl7.org/2026Jan/en/index.html#http-request-1,A CDS Client SHALL call a CDS Service by POSTing a JSON document to the service,SHALL,Client,,,,
426
+ cds-hooks_3.0.0-ballot,16,https://cds-hooks.hl7.org/2026Jan/en/index.html#http-request-1,The CDS Service endpoint can be constructed from the CDS Service base URL and an individual service id as {baseUrl}/cds-services/{service.id}.,SHALL,Service,,,,
427
+ cds-hooks_3.0.0-ballot,17,https://cds-hooks.hl7.org/2026Jan/en/index.html#http-request-1,"CDS Clients may add additional requirements for the triggering of a hook, based upon the user, workflow, CDS Service or other reasons (e.g. if the service is provided by a payer, the patient has active coverage with that payer).",MAY,Client,,,,
428
+ cds-hooks_3.0.0-ballot,18,https://cds-hooks.hl7.org/2026Jan/en/index.html#http-request-1,"The [service invocation] request SHALL include a JSON POST body with the following input fields [including]:
429
+ - field: hook
430
+ - optionality: REQUIRED
431
+ - type: string
432
+ - description: The hook that triggered this CDS Service call.",DEPRECATED,Client,,,,
433
+ cds-hooks_3.0.0-ballot,19,https://cds-hooks.hl7.org/2026Jan/en/index.html#http-request-1,"The [service invocation] request SHALL include a JSON POST body with the following input fields [including]:
434
+ - field: hookInstance
435
+ - optionality: REQUIRED
436
+ - type: string
437
+ - description: A universally unique identifier (UUID) for this particular hook call",DEPRECATED,Client,,,,
438
+ cds-hooks_3.0.0-ballot,20,https://cds-hooks.hl7.org/2026Jan/en/index.html#http-request-1,"The [service invocation] request SHALL include a JSON POST body with the following input fields [including]:
439
+ - field: fhirServer
440
+ - optionality: CONDITIONAL
441
+ - type: URL
442
+ - description: The base URL of the CDS Client's FHIR server. If fhirAuthorization is provided, this field is REQUIRED. The scheme MUST be https when production data is exchanged.",DEPRECATED,Client,,true,,
443
+ cds-hooks_3.0.0-ballot,21,https://cds-hooks.hl7.org/2026Jan/en/index.html#http-request-1,"The [service invocation] request SHALL include a JSON POST body with the following input fields [including]:
444
+ - field: fhirAuthorization
445
+ - optionality: OPTIONAL
446
+ - type: object
447
+ - description: A structure holding an OAuth 2.0 bearer access token granting the CDS Service access to FHIR resources, along with supplemental information relating to the token.",MAY,Client,,,,
448
+ cds-hooks_3.0.0-ballot,22,https://cds-hooks.hl7.org/2026Jan/en/index.html#http-request-1,"The [service invocation] request SHALL include a JSON POST body with the following input fields [including]:
449
+ - field: context
450
+ - optionality: REQUIRED
451
+ - type: object
452
+ - description: Hook-specific contextual data that the CDS service will need.",DEPRECATED,Client,,,,
453
+ cds-hooks_3.0.0-ballot,23,https://cds-hooks.hl7.org/2026Jan/en/index.html#http-request-1,"The [service invocation] request SHALL include a JSON POST body with the following input fields [including]:
454
+ - field: prefetch
455
+ - optionality: OPTIONAL
456
+ - type: object
457
+ - description: The FHIR data that was prefetched by the CDS Client",MAY,Client,,,,
458
+ cds-hooks_3.0.0-ballot,24,https://cds-hooks.hl7.org/2026Jan/en/index.html#hookinstance,"While working in the CDS Client, a user can perform multiple actions in series or in parallel. For example, a clinician might prescribe two drugs in a row; each prescription action would be assigned a unique hookInstance. This allows a CDS Service to uniquely identify each hook invocation.",DEPRECATED,Client,,,,
459
+ cds-hooks_3.0.0-ballot,25,https://cds-hooks.hl7.org/2026Jan/en/index.html#hookinstance,the hookInstance is globally unique,SHALL,Client,,,,
460
+ cds-hooks_3.0.0-ballot,26,https://cds-hooks.hl7.org/2026Jan/en/index.html#hookinstance,the hookInstance ... should contain enough entropy to be un-guessable.,SHOULD,Client,,,,
461
+ cds-hooks_3.0.0-ballot,27,https://cds-hooks.hl7.org/2026Jan/en/index.html#providing-fhir-resources-to-a-cds-service,CDS Services SHOULD respond quickly (on the order of 500 ms.),SHOULD,Service,,,,
462
+ cds-hooks_3.0.0-ballot,28,https://cds-hooks.hl7.org/2026Jan/en/index.html#providing-fhir-resources-to-a-cds-service,"FHIR resources MAY be obtained [by the service] by passing ""prefetched"" data from the CDS Client to the CDS Service in the service call.",MAY,Service,,,,
463
+ cds-hooks_3.0.0-ballot,29,https://cds-hooks.hl7.org/2.0/#providing-fhir-resources-to-a-cds-service,"If data is to be prefetched, the CDS Service registers a set of ""prefetch templates"" with the CDS Client… [communicated] in the CDS Service discovery response.",SHALL,Service,,true,,
464
+ cds-hooks_3.0.0-ballot,30,https://cds-hooks.hl7.org/2.0/#providing-fhir-resources-to-a-cds-service,"The [prefetched] FHIR resources are passed as key-value pairs, with each key matching a key described in the discovery response, and each value being a FHIR resource. Note that in the case of searches, this resource may be a searchset Bundle.",SHALL,Client,,true,,
465
+ cds-hooks_3.0.0-ballot,31,https://cds-hooks.hl7.org/2.0/#providing-fhir-resources-to-a-cds-service,"If the CDS Client decides to have the CDS Service fetch its own FHIR resources, the CDS Client obtains and passes directly to the CDS Service a bearer token issued for the CDS Service's use in executing FHIR API calls against the CDS Client's FHIR server to obtain the required resources.",DEPRECATED,Client,,true,,
466
+ cds-hooks_3.0.0-ballot,32,https://cds-hooks.hl7.org/2.0/#providing-fhir-resources-to-a-cds-service,"Some CDS Clients MAY pass prefetched data, along with a bearer token for the CDS Service to use if additional resources are required.",MAY,Client,,false,,
467
+ cds-hooks_3.0.0-ballot,33,https://cds-hooks.hl7.org/2.0/#providing-fhir-resources-to-a-cds-service,"Each CDS Client SHOULD decide which approach [for providing data to the Service], or combination, is preferred, based on performance considerations and assessment of attendant security and safety risks.",DEPRECATED,Client,,false,,
468
+ cds-hooks_3.0.0-ballot,34,https://cds-hooks.hl7.org/2.0/#providing-fhir-resources-to-a-cds-service,CDS Services should be capable of accessing FHIR resources via either prefetch or from the CDS Client's FHIR server.,SHOULD,Service,,true,,
469
+ cds-hooks_3.0.0-ballot,230,https://cds-hooks.hl7.org/2026Jan/en/index.html#prefetch-template,A *prefetch template* is a FHIR [`read`](http://hl7.org/fhir/http.html#read) or [`search`](http://hl7.org/fhir/http.html#search) request that describes relevant data needed by the CDS Service.,SHALL,Service,,false,,
470
+ cds-hooks_3.0.0-ballot,35,https://cds-hooks.hl7.org/2026Jan/en/index.html#prefetch-template,"To allow for prefetch templates that are dependent on the workflow context, prefetch templates may include references to context using prefetch tokens.",MAY,"Client, Service",,false,,
471
+ cds-hooks_3.0.0-ballot,36,https://cds-hooks.hl7.org/2026Jan/en/index.html#prefetch-template,The prefetch field of a CDS Service discovery response … [SHALL provide a] prefetch key for each … [prefetch template] that is used to identify the prefetch data in the CDS request.,SHALL,Service,,false,,
472
+ cds-hooks_3.0.0-ballot,37,https://cds-hooks.hl7.org/2026Jan/en/index.html#prefetch-template,"CDS Client MAY choose to honor zero, some, or all of the desired prefetch templates",MAY,Client,,false,,
473
+ cds-hooks_3.0.0-ballot,38,https://cds-hooks.hl7.org/2026Jan/en/index.html#prefetch-template,A CDS Client MAY ... choose the most appropriate source for … [its prefetch] data,MAY,Client,,false,,
474
+ cds-hooks_3.0.0-ballot,39,https://cds-hooks.hl7.org/2026Jan/en/index.html#prefetch-template,"[To avoid a network call,] the CDS Client MAY ... [use] prefetched data already in memory",MAY,Client,,false,,
475
+ cds-hooks_3.0.0-ballot,40,https://cds-hooks.hl7.org/2026Jan/en/index.html#prefetch-template,"[To minimize the number of calls,] the CDS Client MAY compute an efficient set of prefetch templates from multiple CDS Services",MAY,Client,,false,,
476
+ cds-hooks_3.0.0-ballot,41,https://cds-hooks.hl7.org/2026Jan/en/index.html#prefetch-template,The CDS Client MAY satisfy some of the desired prefetched templates via some internal service or even its own FHIR server.,MAY,Client,,false,,
477
+ cds-hooks_3.0.0-ballot,42,https://cds-hooks.hl7.org/2026Jan/en/index.html#prefetch-template,"[When providing prefetched data, t]he CDS Client SHALL only provide access to resources that are within the user's authorized scope.",SHALL,Client,,false,,
478
+ cds-hooks_3.0.0-ballot,231,https://cds-hooks.hl7.org/2026Jan/en/index.html#prefetch-template,"As part of preparing the request, a CDS Client processes each prefetch template it intends to satisfy by replacing the prefetch tokens in the prefetch template to construct a relative FHIR request URL.",SHALL,Client,,false,,
479
+ cds-hooks_3.0.0-ballot,43,https://cds-hooks.hl7.org/2026Jan/en/index.html#prefetch-template,The relative URL [constructed when a CDS client processes prefetch templates] may be appended to the base URL for the CDS Client's FHIR server and directly invoked,MAY,Client,,false,,
480
+ cds-hooks_3.0.0-ballot,44,https://cds-hooks.hl7.org/2026Jan/en/index.html#prefetch-template,CDS Clients may use internal infrastructure to satisfy the [prefetch] request in the same way that invoking against the FHIR server would.,MAY,Client,,false,,
481
+ cds-hooks_3.0.0-ballot,45,https://cds-hooks.hl7.org/2026Jan/en/index.html#prefetch-template,the prefetched data given to the CDS Service MUST be equivalent to the data the CDS Service would receive if it were making its own call to the CDS Client's FHIR server using the parameterized prefetch template.,SHALL,Client,,false,,
482
+ cds-hooks_3.0.0-ballot,46,https://cds-hooks.hl7.org/2026Jan/en/index.html#prefetch-template,Prefetch data for other services registered to the same hook MUST NOT be provided [to a CDS service that has not requested or is not authorized to receive it],SHALL NOT,Client,,false,,
483
+ cds-hooks_3.0.0-ballot,47,https://cds-hooks.hl7.org/2026Jan/en/index.html#prefetch-template,[CDS] services SHALL only receive the data they requested in their prefetch.,SHALL,Client,,false,,
484
+ cds-hooks_3.0.0-ballot,232,https://cds-hooks.hl7.org/2026Jan/en/index.html#prefetch-template,The resulting response [of the prefetch query] is passed along to the CDS Service using the prefetch parameter,SHALL,Client,,false,,
485
+ cds-hooks_3.0.0-ballot,48,https://cds-hooks.hl7.org/2026Jan/en/index.html#prefetch-template,CDS Client MAY paginate prefetch results,MAY,Client,,false,,
486
+ cds-hooks_3.0.0-ballot,49,,The CDS Client MUST NOT send any prefetch template key that it chooses not to satisfy.,DEPRECATED,Client,,false,,
487
+ cds-hooks_3.0.0-ballot,50,https://cds-hooks.hl7.org/2026Jan/en/index.html#prefetch-template,"If the CDS Client encounters errors prefetching the requested data, OperationOutcome(s) SHOULD be used to communicate those errors to prevent the CDS Service from incurring an unneeded follow-up query.",SHOULD,Client,,true,,
488
+ cds-hooks_3.0.0-ballot,51,https://cds-hooks.hl7.org/2026Jan/en/index.html#prefetch-template,CDS Clients MUST omit the prefetch key if relevant details cannot be provided (e.g. intermittent connectivity issues),SHALL,Client,,false,,
489
+ cds-hooks_3.0.0-ballot,52,https://cds-hooks.hl7.org/2026Jan/en/index.html#prefetch-template,CDS Services SHOULD check any prefetched data for the existence of OperationOutcomes,SHOULD,Service,,false,,
490
+ cds-hooks_3.0.0-ballot,53,https://cds-hooks.hl7.org/2026Jan/en/index.html#prefetch-template,"If the CDS Client has no data to populate a template prefetch key, the prefetch template key MUST have a value of null. In case the prefetch url is a single-resource request, the search result may be null, otherwise it is a search and could be a bundle with zero entries.",SHALL,Client,,true,,
491
+ cds-hooks_3.0.0-ballot,54,https://cds-hooks.hl7.org/2026Jan/en/index.html#prefetch-template,"If the CDS Service is unable to obtain required data because it cannot access the FHIR server and the request did not contain the necessary prefetch keys, the service SHALL respond with an HTTP 412 Precondition Failed status code.",SHALL,Service,,true,,
492
+ cds-hooks_3.0.0-ballot,55,https://cds-hooks.hl7.org/2026Jan/en/index.html#prefetch-tokens,Prefetch tokens MUST be delimited by {{ and }},SHALL,Service,,false,,
493
+ cds-hooks_3.0.0-ballot,56,https://cds-hooks.hl7.org/2026Jan/en/index.html#prefetch-tokens,"Prefetch tokens ... MUST contain only the qualified path to a hook context field with optional FHIRPath or one of the following user identifiers: userPractitionerId, userPractitionerRoleId, userPatientId, or userRelatedPersonId.",SHALL,Service,,true,,
494
+ cds-hooks_3.0.0-ballot,57,https://cds-hooks.hl7.org/2026Jan/en/index.html#prefetch-tokens,Only root-level fields with a primitive value within the context object are eligible to be used as prefetch tokens.,SHALL,Service,,true,,
495
+ cds-hooks_3.0.0-ballot,233,https://cds-hooks.hl7.org/2026Jan/en/index.html#prefetch-tokens-containing-simpler-fhirpath,"[When evaluating prefetch tokens] CDS Clients can support a limited, targeted subset of FHIRPath aligned with [x-fhir-query](https://hl7.org/fhir/r5/fhir-xquery.html)...:
496
+ - the 'context' object, which corresponds to the context element passed in the CDS Hooks call
497
+ - variables that correspond to the names of prior prefetch templates
498
+ - simple chaining through element paths
499
+ - the following FHIRPath functions: ofType(), resolve(), today()
500
+ - the '+' and '-' math options",MAY,Client,,,,
501
+ cds-hooks_3.0.0-ballot,234,https://cds-hooks.hl7.org/2026Jan/en/index.html#prefetch-tokens-containing-simpler-fhirpath,"[When defining prefetch tokens] a CDS Service's prefetch template can include [at most the following [x-fhir-query](https://hl7.org/fhir/r5/fhir-xquery.html) features]:
502
+ - the 'context' object, which corresponds to the context element passed in the CDS Hooks call
503
+ - variables that correspond to the names of prior prefetch templates
504
+ - simple chaining through element paths
505
+ - the following FHIRPath functions: ofType(), resolve(), today()
506
+ - the '+' and '-' math options",SHALL,Service,,,,
507
+ cds-hooks_3.0.0-ballot,235,https://cds-hooks.hl7.org/2026Jan/en/index.html#simple-fhirpath-for-relative-dates,"[When evaluating prefetch tokens] CDS Clients SHOULD support:
508
+ - the [FHIRPath `today()`](https://hl7.org/fhirpath/N1/index.html#current-date-and-time-functions) function
509
+ - [addition](https://hl7.org/fhirpath/N1/index.html#addition-2) and [subtraction](https://hl7.org/fhirpath/N1/index.html#subtraction-2) of quantity unit [days](https://hl7.org/fhirpath/N1/index.html#datetime-arithmetic),",SHOULD,Client,,,,
510
+ cds-hooks_3.0.0-ballot,236,https://cds-hooks.hl7.org/2026Jan/en/index.html#simpler-fhirpath-support-for-querystring-syntax,"[When defining prefetch tokens] an argument to ofType() SHALL be a [FHIR resource type](https://hl7.org/fhir/valueset-resource-types.html#definition) (also known as ""concrete core types"").",SHALL,Service,,,,
511
+ cds-hooks_3.0.0-ballot,237,https://cds-hooks.hl7.org/2026Jan/en/index.html#simpler-fhirpath-support-for-querystring-syntax,[When evaluating prefetch tokens] CDS Clients SHOULD support paths to References,SHOULD,Client,,,,
512
+ cds-hooks_3.0.0-ballot,238,https://cds-hooks.hl7.org/2026Jan/en/index.html#simpler-fhirpath-support-for-querystring-syntax,[When evaluating prefetch tokens] CDS Clients … MAY support paths to any element within a FHIR resource in context.,MAY,Client,,,,
513
+ cds-hooks_3.0.0-ballot,239,https://cds-hooks.hl7.org/2026Jan/en/index.html#simpler-fhirpath-support-for-querystring-syntax,[When evaluating prefetch tokens] FHIRPath collections of simple data types are represented as comma-delimited strings,SHALL,Client,,true,,
514
+ cds-hooks_3.0.0-ballot,240,https://cds-hooks.hl7.org/2026Jan/en/index.html#simpler-fhirpath-support-for-querystring-syntax,[When evaluating prefetch tokens] other prefetch parameters can be referenced in token expressions as FHIRPath variables by placing '%' in front of the prefetch parameter name.,SHALL,Client,,,,
515
+ cds-hooks_3.0.0-ballot,241,https://cds-hooks.hl7.org/2026Jan/en/index.html#simpler-fhirpath-support-for-querystring-syntax,[When defining prefetch tokens i]t is an error if dependencies are cyclical - i.e. if one prefetch either directly or indirectly depends on itself.,SHALL NOT,Service,,,,
516
+ cds-hooks_3.0.0-ballot,242,https://cds-hooks.hl7.org/2026Jan/en/index.html#simpler-fhirpath-support-for-querystring-syntax,[When evaluating prefetch tokens a] prefetch token ... Contain[ing] multiple path selectors delimited with pipes [SHALL be interpretted as a union of the individual parts],SHALL,Client,,,,
517
+ cds-hooks_3.0.0-ballot,58,https://cds-hooks.hl7.org/2026Jan/en/index.html#prefetch-query-restrictions,"To reduce the implementation burden on CDS Clients that support CDS Services, prefetch queries SHOULD be restricted to widely supported search parameters and capabilities … [includeing]:
518
+ - instance level [read](https://www.hl7.org/fhir/http.html#read) interactions (for resources with known ids such as `Patient`, `Practitioner`, or `Encounter`)
519
+ - type level [search](https://www.hl7.org/fhir/http.html#search) interactions; e.g. `patient={{context.patientId}}`
520
+ - Resource references (e.g. `patient={{context.patientId}}`)
521
+ - token search parameters using equality (e.g. `code=4548-4`) and ... the `:in` modifier (no other modifiers for token parameters)
522
+ - date search parameters on `date`, `dateTime`, `instant`, or `Period` types only, and using only the prefixes `eq`, `lt`, `gt`, `ge`, `le`
523
+ - the `_count` parameter to limit the number of results returned
524
+ - the `_sort` parameter to allow for most recent and first queries",SHOULD,Service,,,,
525
+ cds-hooks_3.0.0-ballot,59,https://cds-hooks.hl7.org/2026Jan/en/index.html#example-prefetch-token,"When context fields are used as tokens, their token name MUST be `context.name-of-the-field`",SHALL,Service,,true,,
526
+ cds-hooks_3.0.0-ballot,60,https://cds-hooks.hl7.org/2026Jan/en/index.html#fhir-resource-access,"If the CDS Client provides both fhirServer and fhirAuthorization request parameters, the CDS Service MAY use the FHIR server to obtain any FHIR resources for which it's authorized, beyond those provided by the CDS Client as prefetched data",MAY,Service,,true,,
527
+ cds-hooks_3.0.0-ballot,61,https://cds-hooks.hl7.org/2026Jan/en/index.html#fhir-resource-access,CDS Hooks requires that CDS Services present a valid access token to the FHIR server with each API call,SHALL,Service,,false,,
528
+ cds-hooks_3.0.0-ballot,62,https://cds-hooks.hl7.org/2026Jan/en/index.html#fhir-resource-access,"CDS Hooks workflow MUST accommodate the automated, low-latency delivery of an access token to the CDS service",DEPRECATED,Client,,false,,
529
+ cds-hooks_3.0.0-ballot,63,https://cds-hooks.hl7.org/2026Jan/en/index.html#fhir-resource-access,"[When executing a CDS request on behalf of a user,] the data to which the CDS Service is given access by the CDS Client MUST be limited to the same restrictions and authorizations afforded the current user.",SHALL,Client,,true,,
530
+ cds-hooks_3.0.0-ballot,64,https://cds-hooks.hl7.org/2026Jan/en/index.html#fhir-resource-access,"[When executing a CDS request on behalf of a user,] the access token SHALL be scoped to: The CDS Service being invoked [and] the current user",SHALL,Client,,true,,
531
+ cds-hooks_3.0.0-ballot,65,https://cds-hooks.hl7.org/2026Jan/en/index.html#passing-the-access-token-to-the-cds-service,"If the CDS Client chooses not to pass along an access token, the fhirAuthorization parameter [SHALL be] … omitted.",DEPRECATED,Client,,true,,
532
+ cds-hooks_3.0.0-ballot,66,https://cds-hooks.hl7.org/2026Jan/en/index.html#passing-the-access-token-to-the-cds-service,"[When sending a fhirAuthorization request parameter, the] access_token field [SHALL be populated with] the [Oauth 2.0](https://oauth.net/2/) access token [as a] string data type",DEPRECATED,Client,,true,,
533
+ cds-hooks_3.0.0-ballot,67,https://cds-hooks.hl7.org/2026Jan/en/index.html#passing-the-access-token-to-the-cds-service,"[When sending a fhirAuthorization request parameter, the] token_type field [SHALL be populated with the] fixed value: 'Bearer'",DEPRECATED,Client,,true,,
534
+ cds-hooks_3.0.0-ballot,68,https://cds-hooks.hl7.org/2026Jan/en/index.html#passing-the-access-token-to-the-cds-service,"[When sending a fhirAuthorization request parameter, the] expires_in field [SHALL be populated with the] the lifetime in seconds of the access token [as an] integer data type",DEPRECATED,Client,,true,,
535
+ cds-hooks_3.0.0-ballot,69,https://cds-hooks.hl7.org/2026Jan/en/index.html#passing-the-access-token-to-the-cds-service,"[When sending a fhirAuthorization request parameter, the] scope field [SHALL be populated with the] the scopes the access token grants the CDS Service [as a] string data type",DEPRECATED,Client,,true,,
536
+ cds-hooks_3.0.0-ballot,70,https://cds-hooks.hl7.org/2026Jan/en/index.html#passing-the-access-token-to-the-cds-service,"[When sending a fhirAuthorization request parameter, the] subject field [SHALL be populated with] the [Oauth 2.0](https://oauth.net/2/) client identifier of the CDS Service, as registered with the CDS Client's authorization server [as a] string data type",DEPRECATED,Client,,true,,
537
+ cds-hooks_3.0.0-ballot,71,https://cds-hooks.hl7.org/2026Jan/en/index.html#passing-the-access-token-to-the-cds-service,"[When sending a fhirAuthorization request parameter and] the access token is restricted to a specific patient, [the] patient field SHOULD be populated to identify the FHIR id of that patient [as a] string data type",SHOULD,Client,,true,,
538
+ cds-hooks_3.0.0-ballot,72,https://cds-hooks.hl7.org/2026Jan/en/index.html#passing-the-access-token-to-the-cds-service,The `expires_in` value is established by the authorization server and SHOULD BE very short lived,SHOULD,Client,,false,,
539
+ cds-hooks_3.0.0-ballot,73,https://cds-hooks.hl7.org/2026Jan/en/index.html#passing-the-access-token-to-the-cds-service,CDS Clients SHOULD revoke an issued access token upon the completion of the CDS Hooks request/response to limit the validity period of the token.,SHOULD,Client,,true,,
540
+ cds-hooks_3.0.0-ballot,74,https://cds-hooks.hl7.org/2026Jan/en/index.html#cds-service-response,"For successful responses, CDS Services SHALL respond with a 200 HTTP response with an object containing a cards array",SHALL,Service,,true,,
541
+ cds-hooks_3.0.0-ballot,75,https://cds-hooks.hl7.org/2026Jan/en/index.html#cds-service-response,"For successful responses, CDS Services [MAY] optionally [respond with an object containing] a systemActions array",MAY,Service,,true,,
542
+ cds-hooks_3.0.0-ballot,243,https://cds-hooks.hl7.org/2026Jan/en/index.html#http-status-codes-1,"[When t]he CDS Service is unable to retrieve the necessary FHIR data to execute its decision support, either through a prefetch request or directly calling the FHIR server [it SHALL return a `412 Precondition Failed`status]",SHALL,Service,,,,
543
+ cds-hooks_3.0.0-ballot,76,https://cds-hooks.hl7.org/2026Jan/en/index.html#http-status-codes-1,"CDS Services MAY return other HTTP statuses, specifically 4xx and 5xx HTTP error codes.",MAY,Service,,true,,
544
+ cds-hooks_3.0.0-ballot,77,https://cds-hooks.hl7.org/2026Jan/en/index.html#http-response,"If … [the] CDS Service has no decision support for the user, … [the] service should return a 200 HTTP response with an empty array of cards",SHOULD,Service,,true,,
545
+ cds-hooks_3.0.0-ballot,78,https://cds-hooks.hl7.org/2026Jan/en/index.html#http-response,Clients SHOULD remove cards returned by previous invocations of a hook to a service with the same id when a new hook is triggered,SHOULD,Service,,true,,
546
+ cds-hooks_3.0.0-ballot,244,/Users/karlnaden/Documents/for_travel/igs/cds-hooks/en/index.html#returning-operationoutcome,"If a CDS Service encounters an error and returns a non-2xx HTTP status, the CDS Service SHOULD include an OperationOutcome resource in the response body to aid issue-tracking and troubleshooting.",SHOULD,Service,,false,,
547
+ cds-hooks_3.0.0-ballot,79,https://cds-hooks.hl7.org/2026Jan/en/index.html#card-attributes,[When receiving a card object] the uuid field SHALL be included in any subsequent calls to the CDS service's feedback endpoint.,SHALL,Client,,true,,
548
+ cds-hooks_3.0.0-ballot,80,https://cds-hooks.hl7.org/2026Jan/en/index.html#card-attributes,[When sending a card object] the uuid field SHALL [be a] unique identifier of the card [and be sent as] a string data type,SHALL,Service,,true,,
549
+ cds-hooks_3.0.0-ballot,81,https://cds-hooks.hl7.org/2026Jan/en/index.html#card-attributes,[When sending a card object] the uuid field is optional,MAY,Service,,true,,
550
+ cds-hooks_3.0.0-ballot,82,https://cds-hooks.hl7.org/2026Jan/en/index.html#card-attributes,[When sending a card object] the uuid field MAY be used for auditing and logging cards,MAY,Client,,true,,
551
+ cds-hooks_3.0.0-ballot,83,https://cds-hooks.hl7.org/2026Jan/en/index.html#card-attributes,[When sending a card object] the summary field Shall be a < 140 summary message for display to the user as a string data type,SHALL,Service,,true,,
552
+ cds-hooks_3.0.0-ballot,84,https://cds-hooks.hl7.org/2026Jan/en/index.html#card-attributes,[When sending a card object] the detail field is optional [and used to send] information to display,MAY,Service,,true,,
553
+ cds-hooks_3.0.0-ballot,85,https://cds-hooks.hl7.org/2026Jan/en/index.html#card-attributes,"[When sending a card object] the detail field, if provided, MUST be represented in [(GitHub Flavored) Markdown](https://github.github.com/gfm/)",SHALL,Service,,true,,
554
+ cds-hooks_3.0.0-ballot,86,https://cds-hooks.hl7.org/2026Jan/en/index.html#card-attributes,"For non-urgent cards, the CDS Client MAY hide [the information from the detail field] until the user clicks a link like ""view more details.",MAY,Client,,true,,
555
+ cds-hooks_3.0.0-ballot,87,https://cds-hooks.hl7.org/2026Jan/en/index.html#card-attributes,[When sending a card object] the indicator field is a required field [conveying] the urgency / importance of the card [information sent as a] string data type,SHALL,Service,,true,,
556
+ cds-hooks_3.0.0-ballot,88,https://cds-hooks.hl7.org/2026Jan/en/index.html#card-attributes,"[When sending a card object] the indicator field's allowed values, in order of increasing urgency, are: info, warning, critical",SHALL,Service,,true,,
557
+ cds-hooks_3.0.0-ballot,89,https://cds-hooks.hl7.org/2026Jan/en/index.html#card-attributes,"[When sending a card object,] the CDS Client MAY use [the indicator] field to help make UI display decisions such as sort order or coloring.",MAY,Client,,true,,
558
+ cds-hooks_3.0.0-ballot,90,https://cds-hooks.hl7.org/2026Jan/en/index.html#card-attributes,"[When sending a card object,] the source is a required field [and SHALL be populated with a] [source](https://cds-hooks.hl7.org/2.0/#source) object",SHALL,Service,,true,,
559
+ cds-hooks_3.0.0-ballot,91,https://cds-hooks.hl7.org/2026Jan/en/index.html#card-attributes,"[When receiving a card object,] the source field [/ source object] should be the primary source of guidance for the decision support the card represents.",SHOULD,Client,,true,,
560
+ cds-hooks_3.0.0-ballot,92,https://cds-hooks.hl7.org/2026Jan/en/index.html#card-attributes,"[When sending a card object,] the suggestion field allows a service to suggest a set of changes in the context of the current activity [and is sent as a] array of [suggestion](https://cds-hooks.hl7.org/2.0/#suggestion) [objects]",SHALL,Service,,true,,
561
+ cds-hooks_3.0.0-ballot,93,https://cds-hooks.hl7.org/2026Jan/en/index.html#card-attributes,"[When sending a card object,] If suggestions are present, selectionBehavior MUST also be provided.",SHALL,Service,,true,,
562
+ cds-hooks_3.0.0-ballot,94,https://cds-hooks.hl7.org/2026Jan/en/index.html#card-attributes,"[When sending a card object,] the suggestion field is optional",MAY,Service,,true,,
563
+ cds-hooks_3.0.0-ballot,95,https://cds-hooks.hl7.org/2026Jan/en/index.html#card-attributes,"[When sending a card object,] the selectionBehavior field [has] allowed values of at-most-one, indicating that the user may choose none or at most one of the suggestions [and] any, indicating that the end user may choose any number of suggestions including none of them and all of them",SHALL,Service,,true,,
564
+ cds-hooks_3.0.0-ballot,96,https://cds-hooks.hl7.org/2026Jan/en/index.html#card-attributes,"[When sending a card object,] the selectionBehavior field [SHALL be sent as a] string data type [and SHALL be present if the suggestions field in the card is populated]",SHALL,Service,,true,,
565
+ cds-hooks_3.0.0-ballot,97,https://cds-hooks.hl7.org/2026Jan/en/index.html#card-attributes,"[When receiving a card object,] CDS Clients that do not understand the value [in the selectionBehavior field] MUST treat the card as an error.",SHALL,Client,,true,,
566
+ cds-hooks_3.0.0-ballot,98,https://cds-hooks.hl7.org/2026Jan/en/index.html#card-attributes,"[When sending a card object,] the overrideReason field [SHALL be sent as a] array of [coding](https://cds-hooks.hl7.org/2.0/#coding) [objects]",SHALL,Service,,true,,
567
+ cds-hooks_3.0.0-ballot,99,https://cds-hooks.hl7.org/2026Jan/en/index.html#card-attributes,"[When sending a card object,] the CDS service MAY return a list of override reasons to the CDS client",MAY,Service,,true,,
568
+ cds-hooks_3.0.0-ballot,100,https://cds-hooks.hl7.org/2026Jan/en/index.html#card-attributes,"[When sending a card object,] if override reasons are present, the CDS Service MUST populate a display value for each reason's [Coding](https://cds-hooks.hl7.org/2.0/#coding)",SHALL,Service,,true,,
569
+ cds-hooks_3.0.0-ballot,101,https://cds-hooks.hl7.org/2026Jan/en/index.html#card-attributes,"[When receiving a card object,] if override reasons are present … the CDS Client SHOULD present these reasons to the clinician when they dismiss a card.",SHOULD,Client,,true,,
570
+ cds-hooks_3.0.0-ballot,102,https://cds-hooks.hl7.org/2026Jan/en/index.html#card-attributes,"[When receiving a card object,] if override reasons are present … a CDS Client MAY augment the override reasons presented to the user with its own reasons.",MAY,Client,,true,,
571
+ cds-hooks_3.0.0-ballot,103,https://cds-hooks.hl7.org/2026Jan/en/index.html#card-attributes,"[When sending a card object,] the link field [SHALL be sent as a] array of [link](https://cds-hooks.hl7.org/2.0/#link) [objects]",SHALL,Service,,true,,
572
+ cds-hooks_3.0.0-ballot,104,https://cds-hooks.hl7.org/2026Jan/en/index.html#card-attributes,"[When sending a card object,] the link field is optional",MAY,Service,,true,,
573
+ cds-hooks_3.0.0-ballot,105,https://cds-hooks.hl7.org/2026Jan/en/index.html#source,"[When sending a Source object,] the label field is required and [SHALL be a] string data type",SHALL,Service,,true,,
574
+ cds-hooks_3.0.0-ballot,245,https://cds-hooks.hl7.org/2026Jan/en/index.html#source,"[When sending a Source object,] the label field is required and [SHALL contain a] short, human-readable label to display for the source of the information displayed on this card",SHALL,Service,,,,
575
+ cds-hooks_3.0.0-ballot,106,https://cds-hooks.hl7.org/2026Jan/en/index.html#source,"[When sending a Source object,] if a url is also specified, [the label field] MAY be the text for the hyperlink",MAY,Service,,true,,
576
+ cds-hooks_3.0.0-ballot,107,https://cds-hooks.hl7.org/2026Jan/en/index.html#source,"[When sending a Source object,] the url field [SHALL be a] URL data type [and contain an] ,,, absolute URL to load (via GET, in a browser context) when a user clicks on this link to learn more about the organization or data set that provided the information on this card.",SHALL,Service,,true,,
577
+ cds-hooks_3.0.0-ballot,108,https://cds-hooks.hl7.org/2026Jan/en/index.html#source,"[When sending a Source object,] the url field is optional",MAY,Service,,true,,
578
+ cds-hooks_3.0.0-ballot,109,https://cds-hooks.hl7.org/2026Jan/en/index.html#source,"[When sending a Source object,] the URL [field] should not be used to supply a context-specific ""drill-down"" view of the information on this card.",SHOULD NOT,Service,,true,,
579
+ cds-hooks_3.0.0-ballot,110,https://cds-hooks.hl7.org/2026Jan/en/index.html#source,"To supply a context-specific ""drill-down"" view of the information on a card [object implementers SHOULD] ... use [card.link.url](https://cds-hooks.hl7.org/2.0/#link)",SHOULD,Service,,false,,
580
+ cds-hooks_3.0.0-ballot,111,https://cds-hooks.hl7.org/2026Jan/en/index.html#source,"[When sending a Source object,] the icon field [SHALL be a] URL data type [and use a] absolute URL",SHALL,Service,,true,,
581
+ cds-hooks_3.0.0-ballot,112,https://cds-hooks.hl7.org/2026Jan/en/index.html#source,"[When sending a Source object,] the icon field URL SHOULD be a 100x100 pixel PNG image without any transparent regions.",SHOULD,Service,,true,,
582
+ cds-hooks_3.0.0-ballot,113,https://cds-hooks.hl7.org/2026Jan/en/index.html#source,"[When sending a Source object,] the icon field is optional",MAY,Service,,true,,
583
+ cds-hooks_3.0.0-ballot,114,https://cds-hooks.hl7.org/2026Jan/en/index.html#source,"[When receiving a Source object,] the CDS Client may ignore or scale the image during display as appropriate for user experience.",MAY,Client,,true,,
584
+ cds-hooks_3.0.0-ballot,115,https://cds-hooks.hl7.org/2026Jan/en/index.html#source,"[When sending a Source object,] the topic field [SHALL be a] [Coding](https://cds-hooks.hl7.org/2.0/#coding) type object [containing a] topic [that] describes the content of the card by providing a high-level categorization that can be useful for filtering, searching or ordered display of related cards in the CDS client's UI.",SHALL,Service,,true,,
585
+ cds-hooks_3.0.0-ballot,116,https://cds-hooks.hl7.org/2026Jan/en/index.html#source,"[When sending a Source object,] the topic field is optional",MAY,Service,,true,,
586
+ cds-hooks_3.0.0-ballot,117,https://cds-hooks.hl7.org/2026Jan/en/index.html#suggestion,"[When sending a Suggestion object,] the label field is required and [SHALL be a] string data type [and contain h]uman-readable label to display for this suggestion",SHALL,Service,,true,,
587
+ cds-hooks_3.0.0-ballot,118,https://cds-hooks.hl7.org/2026Jan/en/index.html#suggestion,"[When sending a Suggestion object,] the uuid field is optional",MAY,Service,,true,,
588
+ cds-hooks_3.0.0-ballot,119,https://cds-hooks.hl7.org/2026Jan/en/index.html#suggestion,"[When sending a Suggestion object,] the uuid field [SHALL be a] string data type [and contain a u]nique identifier, used for auditing and logging suggestions.",SHALL,Service,,true,,
589
+ cds-hooks_3.0.0-ballot,120,https://cds-hooks.hl7.org/2026Jan/en/index.html#suggestion,"[When sending a Suggestion object,] the isRecommended field is optional",MAY,Service,,true,,
590
+ cds-hooks_3.0.0-ballot,121,https://cds-hooks.hl7.org/2026Jan/en/index.html#suggestion,"[When sending a Suggestion object,] the isRecommended field [SHALL be a] boolean data type … [and indicates] that a specific suggestion is recommended from all the available suggestions on the card",SHALL,Service,,true,,
591
+ cds-hooks_3.0.0-ballot,122,https://cds-hooks.hl7.org/2026Jan/en/index.html#suggestion,"[When sending a Suggestion object,] multiple suggestions MAY be recommended [using suggestion.isRecommended], if card.selectionBehavior is any.",MAY,Service,,true,,
592
+ cds-hooks_3.0.0-ballot,123,https://cds-hooks.hl7.org/2026Jan/en/index.html#suggestion,"[When sending a Suggestion object,] the action field is optional",MAY,Service,,true,,
593
+ cds-hooks_3.0.0-ballot,124,https://cds-hooks.hl7.org/2026Jan/en/index.html#suggestion,"[When sending a Suggestion object,] the action field [SHALL be a] array of [actions](https://cds-hooks.hl7.org/2.0/#action)",SHALL,Service,,true,,
594
+ cds-hooks_3.0.0-ballot,125,https://cds-hooks.hl7.org/2026Jan/en/index.html#suggestion,"Within a suggestion, all actions … [SHALL use] AND [logic], such that a user selecting a suggestion selects all of the actions within it [unless a different behavior is indicated by the `actionSelectionBehavior` field].",SHALL,Client,,true,,
595
+ cds-hooks_3.0.0-ballot,126,https://cds-hooks.hl7.org/2026Jan/en/index.html#suggestion,"[When receiving a Suggestion object,] When a suggestion contains multiple actions, the actions SHOULD be processed as per FHIR's rules for processing [transactions](https://hl7.org/fhir/http.html#trules) with the CDS Client's fhirServer as the base url for the inferred full URL of the transaction bundle entries. (Specifically, deletes happen first, then creates, then updates).",SHOULD,Client,,true,,
596
+ cds-hooks_3.0.0-ballot,246,https://cds-hooks.hl7.org/2026Jan/en/index.html#suggestion,"[When sending a Suggestion object,] the actionSelectionBehavior field [SHALL be a] string … [and SHALL indicate] whether the end user may select any, none, or only a single action from those included in the suggestion [including values] `all`, `any`, [and] `at-most-one`.",SHALL,Service,,,,
597
+ cds-hooks_3.0.0-ballot,247,https://cds-hooks.hl7.org/2026Jan/en/index.html#suggestion,[When receiving a Suggestion object Clients MAY not support the `actionSelectionBehavior` field],MAY,Client,,,,
598
+ cds-hooks_3.0.0-ballot,127,https://cds-hooks.hl7.org/2026Jan/en/index.html#action,"[When sending an Action object,] the type field is required and [SHALL be a] string data type [with] values of create, update, delete.",SHALL,Service,,true,,
599
+ cds-hooks_3.0.0-ballot,128,https://cds-hooks.hl7.org/2026Jan/en/index.html#action,"[When sending an Action object,] the description field is required and [SHALL be a] string data type",SHALL,Service,,true,,
600
+ cds-hooks_3.0.0-ballot,129,https://cds-hooks.hl7.org/2026Jan/en/index.html#action,"[When receiveing an Action object,] the description field MAY be presented to the end-user",MAY,Client,,true,,
601
+ cds-hooks_3.0.0-ballot,130,https://cds-hooks.hl7.org/2026Jan/en/index.html#action,"[When sending an Action object,] the resource field [SHALL be a] FHIR resource",SHALL,Service,,true,,
602
+ cds-hooks_3.0.0-ballot,131,https://cds-hooks.hl7.org/2026Jan/en/index.html#action,"[When sending an Action object,] when the type attribute [of the Action object] is create, the resource attribute SHALL contain a new FHIR resource to be created.",SHALL,Service,,true,,
603
+ cds-hooks_3.0.0-ballot,132,https://cds-hooks.hl7.org/2026Jan/en/index.html#action,"[When sending an Action object,] when the type attribute [of the Action object] is update, this holds the updated resource in its entirety and not just the changed fields.",SHALL,Service,,true,,
604
+ cds-hooks_3.0.0-ballot,248,https://cds-hooks.hl7.org/2026Jan/en/index.html#action,"[When receiveing an Action object, t]he CDS Client may reject conflicting changes, for example, due to [concurrency](https://www.hl7.org/fhir/http.html#concurrency).",MAY,Client,,,,
605
+ cds-hooks_3.0.0-ballot,133,https://cds-hooks.hl7.org/2026Jan/en/index.html#action,"[When sending an Action object and when the type attribute of the Action object is delete], [the resource field SHOULD NOT be used] to communicate a string of a FHIR id for delete suggestions",SHOULD NOT,Service,,true,,
606
+ cds-hooks_3.0.0-ballot,134,https://cds-hooks.hl7.org/2026Jan/en/index.html#action,"[When sending an Action object and when the type attribute of the Action object is delete], the resourceID field SHOULD be provided",SHOULD,Service,,true,,
607
+ cds-hooks_3.0.0-ballot,135,https://cds-hooks.hl7.org/2026Jan/en/index.html#action,"[When sending an Action object,] the resourceID field [SHALL be a] string data type [containing a] relative reference to the relevant resource.",SHALL,Service,,true,,
608
+ cds-hooks_3.0.0-ballot,136,https://cds-hooks.hl7.org/2026Jan/en/index.html#reasons-for-rejecting-a-card,"[When sending card.overrideReason,] CDS Services MUST provide a human readable text in the display property",SHALL,Service,,true,,
609
+ cds-hooks_3.0.0-ballot,137,https://cds-hooks.hl7.org/2026Jan/en/index.html#reasons-for-rejecting-a-card,CDS Clients MAY incorporate [the card.overrideReason.display] into their user interface,MAY,Client,,false,,
610
+ cds-hooks_3.0.0-ballot,249,https://cds-hooks.hl7.org/2026Jan/en/index.html#reasons-for-rejecting-a-card,[When providing override reasons] a suggested set of standardized non-adherence reasons is provided in the [Non-Adherence Reason Codes](file:///Users/karlnaden/Documents/for_travel/igs/cds-hooks/en/CodeSystem-non-adherence-reason-codes.html) code system.,SHOULD,Service,,,,
611
+ cds-hooks_3.0.0-ballot,250,https://cds-hooks.hl7.org/2026Jan/en/index.html#reasons-for-rejecting-a-card,[When providing override reasons] a suggested set of [clinically relevant codes](file:///Users/karlnaden/Documents/for_travel/igs/cds-hooks/en/ValueSet-non-adherence-reason-clinical.html) is provided as a starting point for service providers to use.,SHOULD,Service,,,,
612
+ cds-hooks_3.0.0-ballot,138,https://cds-hooks.hl7.org/2026Jan/en/index.html#link,"[When sending a Link object,] the label field is required [and SHALL be a] string data type [containing h]uman-readable label to display for this link (e.g. the CDS Client might render this as the underlined text of a clickable link).",SHALL,Service,,true,,
613
+ cds-hooks_3.0.0-ballot,139,https://cds-hooks.hl7.org/2026Jan/en/index.html#link,"[When sending a Link object,] the url field is required [and SHALL be a] URL data type [containing a] URL to load (via GET, in a browser context) when a user clicks on this link.",SHALL,Service,,true,,
614
+ cds-hooks_3.0.0-ballot,140,https://cds-hooks.hl7.org/2026Jan/en/index.html#link,"[When sending a Link object,] the url field MAY be a ""deep link"" with context embedded in path segments, query parameters, or a hash.",MAY,Service,,true,,
615
+ cds-hooks_3.0.0-ballot,141,https://cds-hooks.hl7.org/2026Jan/en/index.html#link,"[When sending a Link object,] the type field is required [and SHALL be a] string data type",SHALL,Service,,true,,
616
+ cds-hooks_3.0.0-ballot,142,https://cds-hooks.hl7.org/2026Jan/en/index.html#link,"[When sending a Link object,] the type field [SHALL have values] absolute … or smart. absolute indicates that the URL is absolute and should be treated as-is. smart indicates that the URL is absolute or smart indicates that the URL is a SMART app launch URL",SHALL,Service,,true,,
617
+ cds-hooks_3.0.0-ballot,143,https://cds-hooks.hl7.org/2026Jan/en/index.html#link,"[When receiving a Link object and the link.type field is smart,] CDS Client should ensure the SMART app launch URL is populated with the appropriate SMART launch parameters.",SHOULD,Client,,true,,
618
+ cds-hooks_3.0.0-ballot,144,https://cds-hooks.hl7.org/2026Jan/en/index.html#link,"[When sending a Link object,] the appContext field [SHALL be a] string data type",SHALL,Service,,true,,
619
+ cds-hooks_3.0.0-ballot,145,https://cds-hooks.hl7.org/2026Jan/en/index.html#link,"[When sending a Link object,] the appContext field is optional",MAY,Service,,true,,
620
+ cds-hooks_3.0.0-ballot,146,https://cds-hooks.hl7.org/2026Jan/en/index.html#link,"[When sending a Link object,] the appContext field should only be valued if the link type is smart",SHOULD,Service,,true,,
621
+ cds-hooks_3.0.0-ballot,147,https://cds-hooks.hl7.org/2026Jan/en/index.html#link,"[When sending a Link object,] the appContext field is not valid for absolute links [in other words, when link.type is absolute appContext SHALL NOT be populated]",SHALL NOT,Service,,true,,
622
+ cds-hooks_3.0.0-ballot,251,https://cds-hooks.hl7.org/2026Jan/en/index.html#link,[When receiving a Link object] CDS Clients SHOULD support passing appCOntext from the CDS Service to a launched SMART app.,SHOULD,Client,,,,
623
+ cds-hooks_3.0.0-ballot,252,https://cds-hooks.hl7.org/2026Jan/en/index.html#link,"[When sending a Link object,] the autolaunchable field [SHALL be a] boolean data type [and] serves as a hint to the CDS Client suggesting this link be immediately launched, without displaying the card and without manual user interaction",SHALL,Service,,,,
624
+ cds-hooks_3.0.0-ballot,253,https://cds-hooks.hl7.org/2026Jan/en/index.html#link,"[When sending a Link object,] the autolaunchable field is optional",MAY,Service,,,,
625
+ cds-hooks_3.0.0-ballot,254,https://cds-hooks.hl7.org/2026Jan/en/index.html#system-action,[When sending a response a] systemAction shares all elements with an Action except that its description is optional.,MAY,Service,,,,
626
+ cds-hooks_3.0.0-ballot,255,https://cds-hooks.hl7.org/2026Jan/en/index.html#system-action,[When receiving a systemAction] actions aren't displayed to users in cards,SHOULD NOT,Client,,,,
627
+ cds-hooks_3.0.0-ballot,256,https://cds-hooks.hl7.org/2026Jan/en/index.html#system-action,[When receiving a systemAction] actions … can be automatically applied without requiring user intervention … and the CDS Client is expected to process them.,SHOULD,Client,,,,
628
+ cds-hooks_3.0.0-ballot,148,https://cds-hooks.hl7.org/2026Jan/en/index.html#feedback,A CDS Service MAY support a feedback endpoint [to gather suggestion analytics from the CDS client],MAY,Service,,false,,
629
+ cds-hooks_3.0.0-ballot,149,https://cds-hooks.hl7.org/2026Jan/en/index.html#feedback,a CDS Client SHOULD be capable of sending feedback [to send suggestion analytics to the CDS service],SHOULD,Client,,false,,
630
+ cds-hooks_3.0.0-ballot,150,https://cds-hooks.hl7.org/2026Jan/en/index.html#feedback,CDS Clients should report ... end-user interactions as feedback.,SHOULD,Client,,false,,
631
+ cds-hooks_3.0.0-ballot,151,https://cds-hooks.hl7.org/2026Jan/en/index.html#feedback,A CDS Client provides feedback by POSTing a JSON document,SHALL,Client,,false,,
632
+ cds-hooks_3.0.0-ballot,152,https://cds-hooks.hl7.org/2026Jan/en/index.html#feedback,"The [service's] feedback endpoint can ([SHALL]) be constructed from the CDS Service endpoint and a path segment of ""feedback"" as {baseUrl}/cds-services/{service.id}/feedback",SHALL,Client,,true,,
633
+ cds-hooks_3.0.0-ballot,153,https://cds-hooks.hl7.org/2026Jan/en/index.html#feedback,"The feedback endpoint [for submission] can ([SHALL]) be constructed from the CDS Service endpoint and a path segment of ""feedback"" as {baseUrl}/cds-services/{service.id}/feedback",SHALL,Client,,false,,
634
+ cds-hooks_3.0.0-ballot,154,https://cds-hooks.hl7.org/2026Jan/en/index.html#feedback,The request to the feedback endpoint SHALL be an object containing an array [of [Feedback](https://cds-hooks.hl7.org/2.0/#feedback) objects],SHALL,Client,,false,,
635
+ cds-hooks_3.0.0-ballot,155,https://cds-hooks.hl7.org/2026Jan/en/index.html#feedback,"[When sending a feedback object,] the card field is required [and SHALL be a] string data type [containing] the card.uuid from the CDS Hooks response",SHALL,Client,,true,,
636
+ cds-hooks_3.0.0-ballot,156,https://cds-hooks.hl7.org/2026Jan/en/index.html#feedback,"[When sending a feedback object,] the outcome field is required [and SHALL be a] string data type [with a value of either] accepted or overridden",SHALL,Client,,true,,
637
+ cds-hooks_3.0.0-ballot,157,https://cds-hooks.hl7.org/2026Jan/en/index.html#feedback,"[When sending a feedback object,] the outcome field is required [and SHALL be a] string data type [with a value of either] accepted or overridden",DEPRECATED,Client,,true,,
638
+ cds-hooks_3.0.0-ballot,158,https://cds-hooks.hl7.org/2026Jan/en/index.html#feedback,"[When sending a feedback object,] the acceptedSuggestions field is an array of json objects identifying one or more of the user's AcceptedSuggestions [and is r]equired [when feedback.outcome is accepted]",SHALL,Client,,true,,
639
+ cds-hooks_3.0.0-ballot,159,https://cds-hooks.hl7.org/2026Jan/en/index.html#feedback,"[When sending a feedback object,] the overrideReason field is a overrideReason object",SHALL,Client,,true,,
640
+ cds-hooks_3.0.0-ballot,160,https://cds-hooks.hl7.org/2026Jan/en/index.html#feedback,"[When sending a feedback object,] the overrideReason field is optional",MAY,Client,,true,,
641
+ cds-hooks_3.0.0-ballot,161,https://cds-hooks.hl7.org/2026Jan/en/index.html#feedback,"[When sending a feedback object,] the outcomeTimestamp field is required [and SHALL be a] string data type [using the] [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) representation of the date and time in Coordinated Universal Time (UTC) when action was taken on the card, as profiled in [section 5.6 of RFC3339](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6)",SHALL,Client,,true,,
642
+ cds-hooks_3.0.0-ballot,162,https://cds-hooks.hl7.org/2026Jan/en/index.html#suggestion-accepted,"[When sending an AcceptedSuggestion object], the id field is required [and SHALL be a] string data type [containing] card.suggestion.uuid from the CDS Hooks response",SHALL,Client,,true,,
643
+ cds-hooks_3.0.0-ballot,163,https://cds-hooks.hl7.org/2026Jan/en/index.html#suggestion-accepted,"If either the card or the suggestion has no uuid, the CDS Client does not send a [feedback] notification",SHALL,Client,,true,,
644
+ cds-hooks_3.0.0-ballot,164,https://cds-hooks.hl7.org/2026Jan/en/index.html#card-ignored,If the end-user doesn't interact with the CDS Service's card at all … the CDS Client [SHALL NOT] inform the CDS Service of the rejected guidance,SHALL NOT,Client,,true,,
645
+ cds-hooks_3.0.0-ballot,257,https://cds-hooks.hl7.org/2026Jan/en/index.html#overridden-guidance,A CDS Client may enable the end user to override guidance without providing an explicit reason for doing so. The CDS Client can inform the service when a card was dismissed by specifying an outcome of overridden without providing an overrideReason.,MAY,Client,,,,
646
+ cds-hooks_3.0.0-ballot,165,https://cds-hooks.hl7.org/2026Jan/en/index.html#overridereason,"[When sending a overrideReason object,] the reason field is required if user selected an override reason from the list of reasons provided in the Card [and SHALL be a] coding object",SHALL,Client,,true,,
647
+ cds-hooks_3.0.0-ballot,166,https://cds-hooks.hl7.org/2026Jan/en/index.html#overridereason,"[When sending a overrideReason object,] the userComment field is a string data type",SHALL,Client,,true,,
648
+ cds-hooks_3.0.0-ballot,167,https://cds-hooks.hl7.org/2026Jan/en/index.html#overridereason,"[When sending a overrideReason object,] the userComment field is optional [and contains a] further explain[ation of] why the card was rejected with free text.",MAY,Client,,true,,
649
+ cds-hooks_3.0.0-ballot,168,https://cds-hooks.hl7.org/2026Jan/en/index.html#security-and-safety,"All data exchanged through the RESTful APIs MUST be transmitted over channels secured using the Hypertext Transfer Protocol (HTTP) over Transport Layer Security (TLS), also known as HTTPS and defined in [RFC2818](https://tools.ietf.org/html/rfc2818)",SHALL,"Client, Service",,false,,
650
+ cds-hooks_3.0.0-ballot,169,https://cds-hooks.hl7.org/2026Jan/en/index.html#trusting-cds-services,"Each CDS Client vendor/provider SHOULD maintain an ""allow list"" (and/or ""deny list"") of the CDS Services it has vetted",SHOULD,Client,,false,,
651
+ cds-hooks_3.0.0-ballot,170,https://cds-hooks.hl7.org/2026Jan/en/index.html#trusting-cds-services,"Each CDS Client vendor/provider SHOULD maintain an ""allow list"" (and/or ""deny list"") of ... the Card links that have been deemed safe to display from within the CDS Client context",SHOULD,Client,,false,,
652
+ cds-hooks_3.0.0-ballot,171,https://cds-hooks.hl7.org/2026Jan/en/index.html#trusting-cds-services,The CDS Service can be registered with the CDS Client's authorization server,MAY,Client,,false,,
653
+ cds-hooks_3.0.0-ballot,172,https://cds-hooks.hl7.org/2026Jan/en/index.html#trusting-cds-services,Every interaction between a CDS Client and a CDS Service is initiated by the CDS Client sending a service request to a CDS Service endpoint protected using the [Transport Layer Security protocol] (https://tools.ietf.org/html/rfc5246),SHALL,Client,,false,,
654
+ cds-hooks_3.0.0-ballot,173,https://cds-hooks.hl7.org/2026Jan/en/index.html#trusting-cds-services,CDS Client SHALL deny access to a requested resource if it is outside the user's authorized scope,SHALL,Client,,false,,
655
+ cds-hooks_3.0.0-ballot,174,https://cds-hooks.hl7.org/2026Jan/en/index.html#trusting-cds-services,"If a CDS Client is satisfying prefetch requests from a CDS Service or sends a non-null fhirAuthorization object to a CDS Service so that it can call the FHIR server, the CDS Service MUST be pre-registered with the authorization server protecting access to the FHIR server",SHALL,Client,,true,,
656
+ cds-hooks_3.0.0-ballot,175,https://cds-hooks.hl7.org/2026Jan/en/index.html#trusting-cds-clients,"[The CDS service] MAY use mutual TLS, in which both ends of the channel are authenticated.",MAY,Service,,false,,
657
+ cds-hooks_3.0.0-ballot,176,https://cds-hooks.hl7.org/2026Jan/en/index.html#trusting-cds-clients,"[If not using mutual TLS,] to enable the CDS Service to authenticate the identity of the CDS Client, CDS Hooks uses digitally signed [JSON web tokens (JWT)](https://jwt.io/) [(rfc7519)](https://tools.ietf.org/html/rfc7519)",SHALL,Service,,true,,
658
+ cds-hooks_3.0.0-ballot,177,https://cds-hooks.hl7.org/2026Jan/en/index.html#trusting-cds-clients,CDS Services SHOULD require authentication if invoking the service poses any risk of exposing sensitive data to the caller.,SHOULD,Service,,false,,
659
+ cds-hooks_3.0.0-ballot,178,https://cds-hooks.hl7.org/2026Jan/en/index.html#trusting-cds-clients,"Each time a CDS Client transmits a request to a CDS Service which requires authentication, the request MUST include an Authorization header presenting the JWT as a “Bearer” token:
660
+ Authorization: Bearer {{JWT}}",SHALL,Client,,true,,
661
+ cds-hooks_3.0.0-ballot,179,https://cds-hooks.hl7.org/2026Jan/en/index.html#trusting-cds-clients,mutual TLS MAY be used alongside JSON web tokens to establish trust of the CDS Client by the CDS Service,MAY,"Client, Service",,false,,
662
+ cds-hooks_3.0.0-ballot,180,https://cds-hooks.hl7.org/2026Jan/en/index.html#trusting-cds-clients,"The CDS Client MUST use its private key to digitally sign the JWT, using the [JSON Web Signatures (rfc7515)](https://tools.ietf.org/html/rfc7515) standard",SHALL,Client,,false,,
663
+ cds-hooks_3.0.0-ballot,181,https://cds-hooks.hl7.org/2026Jan/en/index.html#trusting-cds-clients,"[When sending a JWT header,] the alg field is required [and SHALL be a] string data type [containing] the cryptographic algorithm used to sign this JWT.",SHALL,Client,,true,,
664
+ cds-hooks_3.0.0-ballot,182,https://cds-hooks.hl7.org/2026Jan/en/index.html#trusting-cds-clients,"[When sending a JWT header,] the kid field is required [and SHALL be a] string data type [containing] the identifier of the key-pair used to sign this JWT.",SHALL,Client,,true,,
665
+ cds-hooks_3.0.0-ballot,183,https://cds-hooks.hl7.org/2026Jan/en/index.html#trusting-cds-clients,"[When sending a JWT header,] the kid field MUST be unique within the CDS Client's JWK Set.",SHALL,Client,,true,,
666
+ cds-hooks_3.0.0-ballot,184,https://cds-hooks.hl7.org/2026Jan/en/index.html#trusting-cds-clients,"[When sending a JWT header,] the typ field is required [and SHALL be a] string data type and SHALL be 'JWT'",SHALL,Client,,true,,
667
+ cds-hooks_3.0.0-ballot,185,https://cds-hooks.hl7.org/2026Jan/en/index.html#trusting-cds-clients,"[When sending a JWT header,] the jku field is a url data type [containing] the URL to the JWK Set containing the public key(s)",SHALL,Client,,true,,
668
+ cds-hooks_3.0.0-ballot,186,https://cds-hooks.hl7.org/2026Jan/en/index.html#trusting-cds-clients,"[When sending a JWT header,] the jku field is optional",MAY,Client,,true,,
669
+ cds-hooks_3.0.0-ballot,187,https://cds-hooks.hl7.org/2026Jan/en/index.html#trusting-cds-clients,"[When sending a JWT payload,] the iss field is required [and SHALL be a] string data type [containing] the URI of the issuer of the JWT",SHALL,Client,,true,,
670
+ cds-hooks_3.0.0-ballot,188,https://cds-hooks.hl7.org/2026Jan/en/index.html#trusting-cds-clients,"The JWT MAY be self-issued by the CDS Client, or MAY be issued by a third-party identity provider.",MAY,Client,,true,,
671
+ cds-hooks_3.0.0-ballot,189,https://cds-hooks.hl7.org/2026Jan/en/index.html#trusting-cds-clients,"[When sending a JWT payload,] the aud field is required [and SHALL be a] string data type or an array of strings [per [rfc7519](https://tools.ietf.org/html/rfc7519#section-4.1.3) containing] the CDS Service endpoint that is being called by the CDS Client",SHALL,Client,,true,,
672
+ cds-hooks_3.0.0-ballot,190,https://cds-hooks.hl7.org/2026Jan/en/index.html#trusting-cds-clients,"[When sending a JWT payload,] the exp field is required [and SHALL be a] number data type [containing the] expiration time integer for this authentication JWT, expressed in seconds since the ""Epoch"" (1970-01-01T00:00:00Z UTC).",SHALL,Client,,true,,
673
+ cds-hooks_3.0.0-ballot,191,https://cds-hooks.hl7.org/2026Jan/en/index.html#trusting-cds-clients,"[When sending a JWT payload,] the iat field is required [and SHALL be a] number data type [containing] the time at which this JWT was issued, expressed in seconds since the ""Epoch"" (1970-01-01T00:00:00Z UTC)",SHALL,Client,,true,,
674
+ cds-hooks_3.0.0-ballot,192,https://cds-hooks.hl7.org/2026Jan/en/index.html#trusting-cds-clients,"[When sending a JWT payload,] the jti field is required [and SHALL be a] string data type [containing] a nonce string value that uniquely identifies this authentication JWT (used to protect against replay attacks)",SHALL,Client,,true,,
675
+ cds-hooks_3.0.0-ballot,193,https://cds-hooks.hl7.org/2026Jan/en/index.html#trusting-cds-clients,"[When sending a JWT payload,] the tenant field is optional [SHALL be a] string data type [containing] an opaque string identifying the healthcare organization that is invoking the CDS Hooks request",MAY,Client,,true,,
676
+ cds-hooks_3.0.0-ballot,194,https://cds-hooks.hl7.org/2026Jan/en/index.html#trusting-cds-clients,"[When sending a JWT payload,] the tenant field is optional",MAY,Client,,true,,
677
+ cds-hooks_3.0.0-ballot,195,https://cds-hooks.hl7.org/2026Jan/en/index.html#trusting-cds-clients,CDS Services SHOULD limit the CDS Clients they trust by maintaining an allowlist of iss and jku urls.,SHOULD,Service,,false,,
678
+ cds-hooks_3.0.0-ballot,196,https://cds-hooks.hl7.org/2026Jan/en/index.html#trusting-cds-clients,"For CDS Hooks, [the aud] value MUST be the URL of the CDS Service endpoint being invoked",SHALL,Client,,false,,
679
+ cds-hooks_3.0.0-ballot,197,https://cds-hooks.hl7.org/2026Jan/en/index.html#trusting-cds-clients,"The CDS Client MUST make its public key, expressed as a JSON Web Key (JWK), available in a JWK Set, as defined by [rfc7517](https://tools.ietf.org/html/rfc7517)",SHALL,Client,,false,,
680
+ cds-hooks_3.0.0-ballot,198,https://cds-hooks.hl7.org/2026Jan/en/index.html#trusting-cds-clients,"The CDS Client MAY make its JWK Set available via a URL identified by the jku header field, as defined by [rfc7515 4.1.2](https://tools.ietf.org/html/rfc7515#section-4.1.2)",MAY,Client,,false,,
681
+ cds-hooks_3.0.0-ballot,199,https://cds-hooks.hl7.org/2026Jan/en/index.html#trusting-cds-clients,"If the jku header field is ommitted, the CDS Client and CDS Service SHALL communicate the JWK Set out-of-band.",SHALL,"Client, Service",,true,,
682
+ cds-hooks_3.0.0-ballot,200,https://cds-hooks.hl7.org/2026Jan/en/index.html#jwt-signing-algorithm,[JSON Web Algorithms (rfc7518)](https://tools.ietf.org/html/rfc7518) defines several cryptographic algorithms for use in signing JWTs and should be referenced by CDS Hooks implementers.,SHOULD,"Client, Service",,false,,
683
+ cds-hooks_3.0.0-ballot,201,https://cds-hooks.hl7.org/2026Jan/en/index.html#jwt-signing-algorithm,"JWTs SHALL NOT be signed using the none algorithm, referred to in rfc7518 as unsecured JSON Web Signatures, [and Services SHALL NOT accept these JWTs] as the lack of a cryptographic signature does not provide any integrity protection.",SHALL NOT,Service,,false,,
684
+ cds-hooks_3.0.0-ballot,202,https://cds-hooks.hl7.org/2026Jan/en/index.html#jwt-signing-algorithm,"JWTs SHALL NOT be signed [by Clients] using the none algorithm, referred to in rfc7518 as unsecured JSON Web Signatures, as the lack of a cryptographic signature does not provide any integrity protection.",SHALL NOT,Client,,false,,
685
+ cds-hooks_3.0.0-ballot,203,https://cds-hooks.hl7.org/2026Jan/en/index.html#jwt-signing-algorithm,JWTs SHALL NOT be signed using any symmetric algorithm as these algorithms require the CDS Client and CDS Service to share a private key in order to verify the signature,SHALL NOT,"Client, Service",,false,,
686
+ cds-hooks_3.0.0-ballot,204,https://cds-hooks.hl7.org/2026Jan/en/index.html#jwt-signing-algorithm,"When choosing an algorithm to sign their JWTs, CDS Clients SHOULD consider not only the algorithms (and key sizes) that are recommended within the security industry, but also how well those algorithms are supported in the various programming languages and libraries that may be used by CDS Services.",SHOULD,Client,,false,,
687
+ cds-hooks_3.0.0-ballot,205,https://cds-hooks.hl7.org/2026Jan/en/index.html#jwt-signing-algorithm,"At publication time of this specification, both ES384 and RS384 are RECOMMENDED for their regard within the larger security industry, strength, and support across popular programming languages and libraries.",SHOULD,"Client, Service",,false,,
688
+ cds-hooks_3.0.0-ballot,206,https://cds-hooks.hl7.org/2026Jan/en/index.html#jwt-signing-algorithm,"Stronger and better algorithms [than ES384 and RS384] are continually being introduced due to new threats, weaknesses, and increases in computing power [and] CDS Clients SHOULD continually re-evaluate their choice of an algorithm based upon these ever changing conditions.",SHOULD,"Client, Service",,false,,
689
+ cds-hooks_3.0.0-ballot,207,https://cds-hooks.hl7.org/2026Jan/en/index.html#jwt-signing-algorithm,CDS Services SHOULD consider the algorithms they understand and trust based upon their tolerance for risk.,DEPRECATED,Service,,false,,
690
+ cds-hooks_3.0.0-ballot,208,https://cds-hooks.hl7.org/2026Jan/en/index.html#cross-origin-resource-sharing,CDS Services and browser-based CDS Clients will require CORS support. [Cross-origin resource sharing (CORS)](https://www.w3.org/TR/cors/) is a [World Wide Web Consortium (W3C)](https://www.w3.org/Consortium/) standard mechanism that uses additional HTTP headers to enable a web browser to gain permission to access resources from an Internet domain different from that which the browser is currently accessing.,SHALL,"Client, Service",,true,,
691
+ cds-hooks_3.0.0-ballot,209,https://cds-hooks.hl7.org/2026Jan/en/index.html#update-stale-guidance,"In the case that CDS Hooks cards are persisted, clients should take care to ensure that stale guidance does not negatively impact patient care.",SHOULD,Client,,true,,
692
+ cds-hooks_3.0.0-ballot,210,https://cds-hooks.hl7.org/2026Jan/en/index.html#update-stale-guidance,CDS Services can update their previously returned guidance by returning a new set of cards when the service is invoked based on a different hook,MAY,Service,,true,,
693
+ cds-hooks_3.0.0-ballot,211,https://cds-hooks.hl7.org/2026Jan/en/index.html#update-stale-guidance,CDS Services indicate [intent to update an existing card] by providing multiple CDS Services with the same id in discovery.,SHALL,Service,,true,,
694
+ cds-hooks_3.0.0-ballot,212,https://cds-hooks.hl7.org/2026Jan/en/index.html#update-stale-guidance,[When updating a card] Clients are recommended to remove cards returned by a previous invocation with the new cards.,SHOULD,Service,,true,,
695
+ cds-hooks_3.0.0-ballot,213,https://cds-hooks.hl7.org/2026Jan/en/index.html#update-stale-guidance,Note that CDS Services will need to negotiate with CDS Clients to ensure that hooks that are required to ensure patient safety are supported by the CDS Client,SHALL,Service,,true,,
696
+ cds-hooks_3.0.0-ballot,214,https://cds-hooks.hl7.org/2026Jan/en/index.html#extensions,The value of an extension element MUST be a pre-coordinated JSON object,SHALL,"Client, Service",,false,,
697
+ cds-hooks_3.0.0-ballot,215,https://cds-hooks.hl7.org/2026Jan/en/index.html#extensions,"Extension structures SHOULD use a strategy for naming that ensures global uniqueness, such as reverse-domain-name notation",SHOULD,"Client, Service",,false,,
698
+ cds-hooks_3.0.0-ballot,216,https://cds-hooks.hl7.org/2026Jan/en/index.html#coding,"[When sending a coding object,] the code field is required [and SHALL be a] string data type",SHALL,Service,,true,,
699
+ cds-hooks_3.0.0-ballot,217,https://cds-hooks.hl7.org/2026Jan/en/index.html#coding,"[When sending a coding object,] the system field is required [and SHALL be a] string data type",SHALL,Service,,true,,
700
+ cds-hooks_3.0.0-ballot,218,https://cds-hooks.hl7.org/2026Jan/en/index.html#coding,"[When sending a coding object,] the code field is required [and SHALL be a] string data type",SHALL,Service,,true,,
701
+ cds-hooks_3.0.0-ballot,219,https://cds-hooks.hl7.org/2026Jan/en/index.html#coding,"[When sending a coding object,] the display field is human-readable display required [when] [Override Reasons](https://cds-hooks.hl7.org/2.0/#overridereason) provided by CDS Service [are sent in card.overrideReason and SHALL be a] string data type",SHALL,Service,,true,,
702
+ cds-hooks_3.0.0-ballot,220,https://cds-hooks.hl7.org/2026Jan/en/index.html#coding,"[When sending a coding object,] the display field is human-readable display [which is] OPTIONAL [when sending source.topic]",SHALL,Service,,true,,
279
703
  hl7.fhir.us.davinci-crd_2.0.1,1,https://hl7.org/fhir/us/davinci-crd/STU2/foundation.html#foundational-requirements,"Future versions of this specification will evolve based on implementer feedback. Therefore, CRD servers and CRD clients MAY mutually agree to support additional hooks, additional card patterns, additional resources, additional extensions, etc. not found in this specification.",MAY,"Client, Server",,,,
280
704
  hl7.fhir.us.davinci-crd_2.0.1,2,https://hl7.org/fhir/us/davinci-crd/STU2/foundation.html#mustsupport,"For CRD clients, If the client maintains the data element and surfaces it to users, then it SHALL be exposed in their FHIR interface when the data exists and privacy constraints permit",SHALL,Client,,,,
281
705
  hl7.fhir.us.davinci-crd_2.0.1,3,https://hl7.org/fhir/us/davinci-crd/STU2/foundation.html#mustsupport,"For CRD servers, the server SHALL leverage mustSupport elements as available and appropriate to provide decision support.",SHALL,Server,,,,
@@ -296,7 +720,7 @@ hl7.fhir.us.davinci-crd_2.0.1,17,https://hl7.org/fhir/us/davinci-crd/STU2/founda
296
720
  hl7.fhir.us.davinci-crd_2.0.1,18,https://hl7.org/fhir/us/davinci-crd/STU2/foundation.html#performance,"Where a payer responds with a coverage information doc-needed code of … 'admin',… and the payer supports DTR, they SHOULD support gathering the additional information via DTR.",SHOULD,Server,,,,
297
721
  hl7.fhir.us.davinci-crd_2.0.1,19,https://hl7.org/fhir/us/davinci-crd/STU2/foundation.html#performance,"Where a payer responds with a coverage information doc-needed code of ... 'patient' and the payer supports DTR, they SHOULD support gathering the additional information via DTR.",SHOULD,Server,,,,
298
722
  hl7.fhir.us.davinci-crd_2.0.1,20,https://hl7.org/fhir/us/davinci-crd/STU2/foundation.html#performance,"If a CRD service exceeds the allocated time window for a hook (i.e., for those circumstances that fall outside the 90% expectation), CRD clients SHOULD establish a time-out process that ensures users are not blocked from proceeding with their business flow.",SHOULD,Client,,,,
299
- hl7.fhir.us.davinci-crd_2.0.1,21,https://hl7.org/fhir/us/davinci-crd/STU2/foundation.html#performance,"Where a CRD client opts to not block users from proceeding for responses that come back in a period of time shorter than the target time window in this guide (i.e., 5s or 10s), the client must ensure that users are made aware of the information when it is available.",SHALL,Client,,,,
723
+ hl7.fhir.us.davinci-crd_2.0.1,21,https://hl7.org/fhir/us/davinci-crd/STU2/foundation.html#performance,"Where a CRD client opts to not block users from proceeding for responses that come back in a period of time shorter than the target time window in this guide (i.e., 5s or 10s), the client must ensure that users are made aware of the information when it is available.",SHALL,Client,,true,,
300
724
  hl7.fhir.us.davinci-crd_2.0.1,22,https://hl7.org/fhir/us/davinci-crd/STU2/foundation.html#performance,"For responses that come back in a time period that exceeds this duration, [ 5s or 10s] CRD clients MAY ignore the resulting cards and/or system actions.",MAY,Client,,,,
301
725
  hl7.fhir.us.davinci-crd_2.0.1,23,https://hl7.org/fhir/us/davinci-crd/STU2/foundation.html#accuracy,"CDS services SHALL ensure that the guidance returned with respect to coverage... (e.g., assertions that a service is covered...) is as accurate as guidance that would be provided by other means (e.g., portals, phone calls).",SHALL,Server,,,,
302
726
  hl7.fhir.us.davinci-crd_2.0.1,24,https://hl7.org/fhir/us/davinci-crd/STU2/foundation.html#accuracy,"CDS services SHALL ensure that the guidance returned with respect to ... prior authorizations (e.g., assertions that... prior authorization is not necessary) is as accurate as guidance that would be provided by other means (e.g., portals, phone calls).",SHALL,Server,,,,
@@ -403,8 +827,8 @@ hl7.fhir.us.davinci-crd_2.0.1,69,https://hl7.org/fhir/us/davinci-crd/STU2/founda
403
827
  hl7.fhir.us.davinci-crd_2.0.1,70,https://hl7.org/fhir/us/davinci-crd/STU2/foundation.html#smart-on-fhir-hook-invocation,"In the specific case of order-based hooks, ""what if"" ... MAY use configuration options to prevent the return of other irrelevant types of cards (e.g., duplicate therapy).",MAY,Client,,,,
404
828
  hl7.fhir.us.davinci-crd_2.0.1,71,https://hl7.org/fhir/us/davinci-crd/STU2/foundation.html#additional-considerations,"When CRD clients pass resources to a CRD server as part of context, the resources SHALL have an ID",SHALL,Client,,,,
405
829
  hl7.fhir.us.davinci-crd_2.0.1,72,https://hl7.org/fhir/us/davinci-crd/STU2/foundation.html#additional-considerations,"When CRD clients pass resources to a CRD server as part of context, the resources ... SHALL be usable as a target for references in resources manipulated by CDS Hook actions and/or by SMART apps.",SHALL,Client,,,,
406
- hl7.fhir.us.davinci-crd_2.0.1,73,https://hl7.org/fhir/us/davinci-crd/STU2/foundation.html#additional-considerations,CRD client must handle adjustments to any references made to … [resource ids] (or provide necessary redirects) ensuring that any references made to the in-memory resource will remain valid.,SHALL,Client,,,,
407
- hl7.fhir.us.davinci-crd_2.0.1,74,https://hl7.org/fhir/us/davinci-crd/STU2/foundation.html#additional-considerations,"CRD clients will need to support the creation or updating of resources that include references to resources that might, at the time, only exist in memory and not yet be available as persistent entities.",SHALL,Client,,,,
830
+ hl7.fhir.us.davinci-crd_2.0.1,73,https://hl7.org/fhir/us/davinci-crd/STU2/foundation.html#additional-considerations,CRD client must handle adjustments to any references made to … [resource ids] (or provide necessary redirects) ensuring that any references made to the in-memory resource will remain valid.,DEPRECATED,Client,,,,
831
+ hl7.fhir.us.davinci-crd_2.0.1,74,https://hl7.org/fhir/us/davinci-crd/STU2/foundation.html#additional-considerations,"CRD clients will need to support the creation or updating of resources that include references to resources that might, at the time, only exist in memory and not yet be available as persistent entities.",DEPRECATED,Client,,,,
408
832
  hl7.fhir.us.davinci-crd_2.0.1,75,https://hl7.org/fhir/us/davinci-crd/STU2/foundation.html#additional-considerations,"Therefore, in addition to any logging performed for security purposes, ... CRD Clients ... SHALL retain logs of all CRD-related hook invocations and their responses for access in the event of a dispute.",SHALL,Client,,,,
409
833
  hl7.fhir.us.davinci-crd_2.0.1,76,https://hl7.org/fhir/us/davinci-crd/STU2/foundation.html#additional-considerations,"Therefore, in addition to any logging performed for security purposes, ... CRD Servers SHALL retain logs of all CRD-related hook invocations and their responses for access in the event of a dispute.",SHALL,Server,,,,
410
834
  hl7.fhir.us.davinci-crd_2.0.1,77,https://hl7.org/fhir/us/davinci-crd/STU2/foundation.html#additional-considerations,All `Card.suggestion` elements SHALL populate the `Suggestion.uuid` element to aid in log reconciliation.,SHALL,Server,,,,
@@ -501,63 +925,63 @@ hl7.fhir.us.davinci-crd_2.0.1,166,https://hl7.org/fhir/us/davinci-crd/STU2/hooks
501
925
  hl7.fhir.us.davinci-crd_2.0.1,167,https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#hook-categories,"If Coverage Information is returned for these [`secondary` [Orders Select](https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#order-select), [Encounter Start](https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#encounter-start), and [Encounter Discharge](https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#encounter-discharge)] hooks, it SHALL NOT include messages indicating a need for [clinical](https://hl7.org/fhir/us/davinci-crd/STU2/ValueSet-AdditionalDocumentation.html) or [administrative](https://hl7.org/fhir/us/davinci-crd/STU2/ValueSet-AdditionalDocumentation.html) information, as such information is expected to be made available later in the process and therefore such guidance is not useful.",SHALL NOT,Server,,,,
502
926
  hl7.fhir.us.davinci-crd_2.0.1,168,https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#hook-categories,"For the sake of interoperability, implementers are expected to adhere to the interface defined in the specified version of each hook,",SHALL,Server,,,,
503
927
  hl7.fhir.us.davinci-crd_2.0.1,169,https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#hook-categories,CRD Servers SHALL handle unrecognized context elements by ignoring them.,SHALL,Server,,,,
504
- hl7.fhir.us.davinci-crd_2.0.1,170,https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#appointment-book,[Servers SHALL support] version 1.0 of the [[appointment-book](https://cds-hooks.hl7.org/hooks/appointment-book/STU1/appointment-book/)] hook.,SHALL,Server,,,,
505
- hl7.fhir.us.davinci-crd_2.0.1,171,https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#appointment-book,[Clients SHALL support] version 1.0 of the [[appointment-book](https://cds-hooks.hl7.org/hooks/appointment-book/STU1/appointment-book/)] hook.,SHALL,Client,,,,
928
+ hl7.fhir.us.davinci-crd_2.0.1,170,https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#appointment-book,[Servers SHALL support] version 1.0 of the [[appointment-book](https://cds-hooks.hl7.org/hooks/appointment-book/STU1/appointment-book/)] hook.,SHALL,Server,"cds-hooks-library_1.0.1@20,24,28,32",,,
929
+ hl7.fhir.us.davinci-crd_2.0.1,171,https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#appointment-book,[Clients SHALL support] version 1.0 of the [[appointment-book](https://cds-hooks.hl7.org/hooks/appointment-book/STU1/appointment-book/)] hook.,SHALL,Client,"cds-hooks-library_1.0.1@17-19,21-23,25-27,29-31",,,
506
930
  hl7.fhir.us.davinci-crd_2.0.1,172,https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#appointment-book,"This [appointment-book] hook would be triggered when the user of a CRD Client books a future appointment for a patient with themselves, with someone else within their organization, or with another organization. (Note that whether the CRD Client will create an appointment - triggering the `appointment-book` hook - or a ServiceRequest - triggering an `order-select` or `order-sign` hook - can vary depending on the service being booked and the organizations involved.)",SHALL,Client,,,,
507
931
  hl7.fhir.us.davinci-crd_2.0.1,173,https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#appointment-book,"[In response to an [appointment-book](https://cds-hooks.hl7.org/hooks/appointment-book/STU1/appointment-book/) hook call, Servers may return] requirements related to the intended location and/or participants (e.g. warnings about out-of-network)",MAY,Server,,,,
508
932
  hl7.fhir.us.davinci-crd_2.0.1,174,https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#appointment-book,"[In response to an [appointment-book](https://cds-hooks.hl7.org/hooks/appointment-book/STU1/appointment-book/) hook call, Servers may return] Requirements related to the service being booked (e.g. Is prior authorization needed? Is the service covered? Is the indication appropriate? Is special documentation required?)",MAY,Server,,,,
509
933
  hl7.fhir.us.davinci-crd_2.0.1,175,https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#appointment-book,"[In response to an [appointment-book](https://cds-hooks.hl7.org/hooks/appointment-book/STU1/appointment-book/) hook call, Servers may return] Requirements related to the timing of the service (e.g. is the coverage still expected to be in effect? is the service too soon since the last service of that type?)",MAY,Server,,,,
510
934
  hl7.fhir.us.davinci-crd_2.0.1,176,https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#appointment-book,"[In response to an [appointment-book](https://cds-hooks.hl7.org/hooks/appointment-book/STU1/appointment-book/) hook call, Servers may return] Reminders about additional services that are recommended to be scheduled or booked for the same patient - either as part of the scheduled encounter or as part of additional appointments that could be created at the same time",MAY,Server,,,,
511
- hl7.fhir.us.davinci-crd_2.0.1,177,https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#appointment-book,[For the appointment-book hook] The profiles expected to be used for the resources resolved to by the userId … are … [profile-practitioner](https://hl7.org/fhir/us/davinci-crd/STU2/StructureDefinition-profile-practitioner.html) [or] [us-core-practitionerrole](http://hl7.org/fhir/us/core/STU3.1.1/StructureDefinition-us-core-practitionerrole.html),SHOULD,Client,,,,
512
- hl7.fhir.us.davinci-crd_2.0.1,178,https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#appointment-book,[For the appointment-book hook] The profiles expected to be used for the resources resolved to by the … patientId … are … [profile-patient](https://hl7.org/fhir/us/davinci-crd/STU2/StructureDefinition-profile-patient.html),SHOULD,Client,,,,
513
- hl7.fhir.us.davinci-crd_2.0.1,179,https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#appointment-book,[For the appointment-book hook] The profiles expected to be used for the resources resolved to by the … encounterId … are … [profile-encounter](https://hl7.org/fhir/us/davinci-crd/STU2/StructureDefinition-profile-encounter.html),SHOULD,Client,,,,
514
- hl7.fhir.us.davinci-crd_2.0.1,180,https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#appointment-book,<html>[for the appointment-book hook] The profiles expected to be used for the resources resolved to by the … `appointments` … are …<b> </b>[profile-appointment](https://hl7.org/fhir/us/davinci-crd/STU2/StructureDefinition-profile-appointment.html)</html>,SHOULD,Client,,,,
515
- hl7.fhir.us.davinci-crd_2.0.1,181,https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#appointment-book,"While this [[appointment-book](https://cds-hooks.hl7.org/hooks/appointment-book/2023SepSTU1Ballot/appointment-book/)] hook supports userIds of Patient and RelatedPerson, for CRD purposes it is enough to support Practitioner and PractitionerRole. [For the appointment-book hooks] upport for Patient and RelatedPerson as users is optional [([published v1.0 link](https://cds-hooks.hl7.org/hooks/appointment-book/STU1/appointment-book/))]",MAY,Server,,,,
935
+ hl7.fhir.us.davinci-crd_2.0.1,177,https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#appointment-book,[For the appointment-book hook t]he profiles expected to be used for the resources resolved to by the userId … are … [profile-practitioner](https://hl7.org/fhir/us/davinci-crd/STU2/StructureDefinition-profile-practitioner.html) [or] [us-core-practitionerrole](http://hl7.org/fhir/us/core/STU3.1.1/StructureDefinition-us-core-practitionerrole.html),SHALL,Client,,,,
936
+ hl7.fhir.us.davinci-crd_2.0.1,178,https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#appointment-book,[For the appointment-book hook t]he profiles expected to be used for the resources resolved to by the … patientId … are … [profile-patient](https://hl7.org/fhir/us/davinci-crd/STU2/StructureDefinition-profile-patient.html),SHALL,Client,,,,
937
+ hl7.fhir.us.davinci-crd_2.0.1,179,https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#appointment-book,[For the appointment-book hook t]he profiles expected to be used for the resources resolved to by the … encounterId … are … [profile-encounter](https://hl7.org/fhir/us/davinci-crd/STU2/StructureDefinition-profile-encounter.html),SHALL,Client,,,,
938
+ hl7.fhir.us.davinci-crd_2.0.1,180,https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#appointment-book,<html>[For the appointment-book hook t]he profiles expected to be used for the resources resolved to by the … `appointments` … are …<b> </b>[profile-appointment](https://hl7.org/fhir/us/davinci-crd/STU2/StructureDefinition-profile-appointment.html)</html>,SHALL,Client,,,,
939
+ hl7.fhir.us.davinci-crd_2.0.1,181,https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#appointment-book,"While this [[appointment-book](https://cds-hooks.hl7.org/hooks/appointment-book/2023SepSTU1Ballot/appointment-book/)] hook supports userIds of Patient and RelatedPerson, for CRD purposes it is enough to support Practitioner and PractitionerRole. [For the appointment-book hook] support for Patient and RelatedPerson as users is optional [([published v1.0 link](https://cds-hooks.hl7.org/hooks/appointment-book/STU1/appointment-book/))]",MAY,Server,,,,
516
940
  hl7.fhir.us.davinci-crd_2.0.1,182,https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#appointment-book,CRD Servers MAY use this [[appointment-book](https://cds-hooks.hl7.org/hooks/appointment-book/STU1/appointment-book/)] hook as a basis for associating a patient with a particular practitioner from a payer attribution perspective.,MAY,Server,,,,
517
941
  hl7.fhir.us.davinci-crd_2.0.1,183,https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#appointment-book,"CRD clients... SHALL, at minimum, support ... processing the [Coverage Information](https://hl7.org/fhir/us/davinci-crd/STU2/StructureDefinition-ext-coverage-information.html) system action for all invocations of this [[appointment-book](https://cds-hooks.hl7.org/hooks/appointment-book/STU1/appointment-book/)] hook.",SHALL,Client,,,,
518
942
  hl7.fhir.us.davinci-crd_2.0.1,184,https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#appointment-book,"CRD servers SHALL, at minimum, support returning ... the [Coverage Information](https://hl7.org/fhir/us/davinci-crd/STU2/StructureDefinition-ext-coverage-information.html) system action for all invocations of this [[appointment-book](https://cds-hooks.hl7.org/hooks/appointment-book/STU1/appointment-book/)] hook.",SHALL,Server,,,,
519
- hl7.fhir.us.davinci-crd_2.0.1,185,https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#encounter-start,[Servers SHALL support] version 1.0 of the [[encounter-start](https://cds-hooks.hl7.org/hooks/encounter-start/2023SepSTU1Ballot/encounter-start/)] Hook [([published v1.0 link](https://cds-hooks.hl7.org/hooks/encounter-start/STU1/encounter-start/))],SHALL,Server,,,,
520
- hl7.fhir.us.davinci-crd_2.0.1,186,https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#encounter-start,[Clients SHALL support] version 1.0 of the [[encounter-start](https://cds-hooks.hl7.org/hooks/encounter-start/2023SepSTU1Ballot/encounter-start/)] Hook [([published v1.0 link](https://cds-hooks.hl7.org/hooks/encounter-start/STU1/encounter-start/))],SHALL,Client,,,,
943
+ hl7.fhir.us.davinci-crd_2.0.1,185,https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#encounter-start,[Servers SHALL support] version 1.0 of the [[encounter-start](https://cds-hooks.hl7.org/hooks/encounter-start/2023SepSTU1Ballot/encounter-start/)] Hook [([published v1.0 link](https://cds-hooks.hl7.org/hooks/encounter-start/STU1/encounter-start/))],SHALL,Server,"cds-hooks-library_1.0.1@36,40,44",,,
944
+ hl7.fhir.us.davinci-crd_2.0.1,186,https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#encounter-start,[Clients SHALL support] version 1.0 of the [[encounter-start](https://cds-hooks.hl7.org/hooks/encounter-start/2023SepSTU1Ballot/encounter-start/)] Hook [([published v1.0 link](https://cds-hooks.hl7.org/hooks/encounter-start/STU1/encounter-start/))],SHALL,Client,"cds-hooks-library_1.0.1@33-35,37-39,41-43",,,
521
945
  hl7.fhir.us.davinci-crd_2.0.1,187,https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#encounter-start,"This [[encounter-start](https://cds-hooks.hl7.org/hooks/encounter-start/STU1/encounter-start/)] hook would be triggered when a patient is admitted, a patient arrives for an out-patient visit, and/or when a provider first engages with a patient during an encounter.",SHALL,Client,,,,
522
946
  hl7.fhir.us.davinci-crd_2.0.1,188,https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#encounter-start,"The advice returned [by servers] for this [[encounter-start](https://cds-hooks.hl7.org/hooks/encounter-start/STU1/encounter-start)] hook would include the same sorts of advice as provided for using appointment-book [including: ""requirements related to the intended location and/or participants (e.g. warnings about out-of-network)""]",MAY,Server,,,,
523
947
  hl7.fhir.us.davinci-crd_2.0.1,189,https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#encounter-start,"The advice returned [by servers] for this [[encounter-start](https://cds-hooks.hl7.org/hooks/encounter-start/STU1/encounter-start)] hook would include the same sorts of advice as provided for using appointment-book [including: ""Requirements related to the service being booked (e.g. Is prior authorization needed? Is the service covered? Is the indication appropriate? Is special documentation required?)""]",MAY,Server,,,,
524
948
  hl7.fhir.us.davinci-crd_2.0.1,190,https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#encounter-start,"The advice returned [by servers] for this [[encounter-start](https://cds-hooks.hl7.org/hooks/encounter-start/STU1/encounter-start)] hook would include the same sorts of advice as provided for using appointment-book [including: ""Requirements related to the timing of the service (e.g. is the coverage still expected to be in effect? is the service too soon since the last service of that type?)""]",MAY,Server,,,,
525
949
  hl7.fhir.us.davinci-crd_2.0.1,191,https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#encounter-start,"The advice returned [by servers] for this [[encounter-start](https://cds-hooks.hl7.org/hooks/encounter-start/STU1/encounter-start)] hook would include the same sorts of advice as provided for using appointment-book [including: ""Reminders about additional services that are recommended to be scheduled or booked for the same patient - either as part of the scheduled encounter or as part of additional appointments that could be created at the same time""]",MAY,Server,,,,
526
- hl7.fhir.us.davinci-crd_2.0.1,192,https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#encounter-start,[For the enounter-start hook] The profiles expected to be used for the resources resolved to by the userId … are … [profile-practitioner](https://hl7.org/fhir/us/davinci-crd/STU2/StructureDefinition-profile-practitioner.html) [or] [us-core-practitionerrole](http://hl7.org/fhir/us/core/STU3.1.1/StructureDefinition-us-core-practitionerrole.html),SHOULD,Client,,,,
527
- hl7.fhir.us.davinci-crd_2.0.1,193,https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#encounter-start,[For the enounter-start hook] The profiles expected to be used for the resources resolved to by the … patientId … are … [profile-patient](https://hl7.org/fhir/us/davinci-crd/STU2/StructureDefinition-profile-patient.html),SHOULD,Client,,,,
528
- hl7.fhir.us.davinci-crd_2.0.1,194,https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#encounter-start,[For the enounter-start hook] The profiles expected to be used for the resources resolved to by the … encounterId … are … [profile-encounter](https://hl7.org/fhir/us/davinci-crd/STU2/StructureDefinition-profile-encounter.html),SHOULD,Client,,,,
950
+ hl7.fhir.us.davinci-crd_2.0.1,192,https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#encounter-start,[For the enounter-start hook t]he profiles expected to be used for the resources resolved to by the userId … are … [profile-practitioner](https://hl7.org/fhir/us/davinci-crd/STU2/StructureDefinition-profile-practitioner.html) [or] [us-core-practitionerrole](http://hl7.org/fhir/us/core/STU3.1.1/StructureDefinition-us-core-practitionerrole.html),SHALL,Client,,,,
951
+ hl7.fhir.us.davinci-crd_2.0.1,193,https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#encounter-start,[For the enounter-start hook t]he profiles expected to be used for the resources resolved to by the … patientId … are … [profile-patient](https://hl7.org/fhir/us/davinci-crd/STU2/StructureDefinition-profile-patient.html),SHALL,Client,,,,
952
+ hl7.fhir.us.davinci-crd_2.0.1,194,https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#encounter-start,[For the enounter-start hook t]he profiles expected to be used for the resources resolved to by the … encounterId … are … [profile-encounter](https://hl7.org/fhir/us/davinci-crd/STU2/StructureDefinition-profile-encounter.html),SHALL,Client,,,,
529
953
  hl7.fhir.us.davinci-crd_2.0.1,195,https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#encounter-start,CRD Servers MAY use this [[encounter-start](https://cds-hooks.hl7.org/hooks/encounter-start/STU1/encounter-start)] hook as a basis for associating a patient with a particular practitioner from a payer attribution perspective.,MAY,Server,,,,
530
- hl7.fhir.us.davinci-crd_2.0.1,196,https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#encounter-discharge,[Servers SHALL support] version 1.0 of the [[encounter-discharge](https://cds-hooks.hl7.org/hooks/encounter-discharge/2023SepSTU1Ballot/encounter-discharge/)] Hook [([published v1.0 link](https://cds-hooks.hl7.org/hooks/encounter-discharge/STU1/encounter-discharge/))],SHALL,Server,,,,
531
- hl7.fhir.us.davinci-crd_2.0.1,197,https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#encounter-discharge,[Clients SHALL support] version 1.0 of the [[encounter-discharge](https://cds-hooks.hl7.org/hooks/encounter-discharge/2023SepSTU1Ballot/encounter-discharge/)] Hook [([published v1.0 link](https://cds-hooks.hl7.org/hooks/encounter-discharge/STU1/encounter-discharge/))],SHALL,Client,,,,
954
+ hl7.fhir.us.davinci-crd_2.0.1,196,https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#encounter-discharge,[Servers SHALL support] version 1.0 of the [[encounter-discharge](https://cds-hooks.hl7.org/hooks/encounter-discharge/2023SepSTU1Ballot/encounter-discharge/)] Hook [([published v1.0 link](https://cds-hooks.hl7.org/hooks/encounter-discharge/STU1/encounter-discharge/))],SHALL,Server,"cds-hooks-library_1.0.1@48,52,56",,,
955
+ hl7.fhir.us.davinci-crd_2.0.1,197,https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#encounter-discharge,[Clients SHALL support] version 1.0 of the [[encounter-discharge](https://cds-hooks.hl7.org/hooks/encounter-discharge/2023SepSTU1Ballot/encounter-discharge/)] Hook [([published v1.0 link](https://cds-hooks.hl7.org/hooks/encounter-discharge/STU1/encounter-discharge/))],SHALL,Client,"cds-hooks-library_1.0.1@45-47,49-51,53-55",,,
532
956
  hl7.fhir.us.davinci-crd_2.0.1,198,https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#encounter-discharge,This [[encounter-discharge](https://cds-hooks.hl7.org/hooks/encounter-discharge/STU1/encounter-discharge/)] hook would generally be specific to an in-patient encounter and would fire when a provider is performing the discharge process within the CRD Client.,SHOULD,Server,,,,
533
- hl7.fhir.us.davinci-crd_2.0.1,199,https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#encounter-discharge,"[In response to an [encounter-discharge](https://cds-hooks.hl7.org/hooks/encounter-discharge/STU1/encounter-discharge/) hook call, [clients should] Verify that documentation requirements for the services performed have been met to ensure the services provided can be reimbursed",SHOULD,Client,,,,
534
- hl7.fhir.us.davinci-crd_2.0.1,200,https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#encounter-discharge,"[In response to an [encounter-discharge](https://cds-hooks.hl7.org/hooks/encounter-discharge/STU1/encounter-discharge/) hook call, [clients should] Ensure that required follow-up planning is complete and appropriate transfer of care has been arranged, particularly for accountable care models",SHOULD,Client,,,,
535
- hl7.fhir.us.davinci-crd_2.0.1,201,https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#encounter-discharge,[for the [encounter-discharge](https://cds-hooks.hl7.org/hooks/encounter-discharge/STU1/encounter-discharge/) hook] The profiles expected to be used for the resources resolved to by the userId … are … [profile-practitioner](https://hl7.org/fhir/us/davinci-crd/STU2/StructureDefinition-profile-practitioner.html) [or] [us-core-practitionerrole](http://hl7.org/fhir/us/core/STU3.1.1/StructureDefinition-us-core-practitionerrole.html),MAY,Client,,,,
536
- hl7.fhir.us.davinci-crd_2.0.1,202,https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#encounter-discharge,[for the [encounter-discharge](https://cds-hooks.hl7.org/hooks/encounter-discharge/STU1/encounter-discharge/) hook] The profiles expected to be used for the resources resolved to by the … patientId … are … [profile-patient](https://hl7.org/fhir/us/davinci-crd/STU2/StructureDefinition-profile-patient.html),MAY,Client,,,,
537
- hl7.fhir.us.davinci-crd_2.0.1,203,https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#encounter-discharge,[for the [encounter-discharge](https://cds-hooks.hl7.org/hooks/encounter-discharge/STU1/encounter-discharge/) hook] The profiles expected to be used for the resources resolved to by the … encounterId … are … [profile-encounter](https://hl7.org/fhir/us/davinci-crd/STU2/StructureDefinition-profile-encounter.html),MAY,Client,,,,
538
- hl7.fhir.us.davinci-crd_2.0.1,204,https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#order-dispatch,[Servers SHALL support] version 1.0 of the [[order-dispatch](https://cds-hooks.hl7.org/hooks/order-dispatch/2023SepSTU1Ballot/order-dispatch/)] Hook [([published v1.0 link](https://cds-hooks.hl7.org/hooks/order-dispatch/STU1/order-dispatch/))],SHALL,Server,,,,
539
- hl7.fhir.us.davinci-crd_2.0.1,205,https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#order-dispatch,[Clients SHALL support] version 1.0 of the [[order-dispatch](https://cds-hooks.hl7.org/hooks/order-dispatch/2023SepSTU1Ballot/order-dispatch/)] Hook [([published v1.0 link](https://cds-hooks.hl7.org/hooks/order-dispatch/STU1/order-dispatch/))],SHALL,Client,,,,
957
+ hl7.fhir.us.davinci-crd_2.0.1,199,https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#encounter-discharge,"[In response to an [encounter-discharge](https://cds-hooks.hl7.org/hooks/encounter-discharge/STU1/encounter-discharge/) hook call, [clients should v]erify that documentation requirements for the services performed have been met to ensure the services provided can be reimbursed",SHOULD,Client,,,,
958
+ hl7.fhir.us.davinci-crd_2.0.1,200,https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#encounter-discharge,"[In response to an [encounter-discharge](https://cds-hooks.hl7.org/hooks/encounter-discharge/STU1/encounter-discharge/) hook call, [clients should e]nsure that required follow-up planning is complete and appropriate transfer of care has been arranged, particularly for accountable care models",SHOULD,Client,,,,
959
+ hl7.fhir.us.davinci-crd_2.0.1,201,https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#encounter-discharge,[for the [encounter-discharge](https://cds-hooks.hl7.org/hooks/encounter-discharge/STU1/encounter-discharge/) hook t]he profiles expected to be used for the resources resolved to by the userId … are … [profile-practitioner](https://hl7.org/fhir/us/davinci-crd/STU2/StructureDefinition-profile-practitioner.html) [or] [us-core-practitionerrole](http://hl7.org/fhir/us/core/STU3.1.1/StructureDefinition-us-core-practitionerrole.html),SHALL,Client,,,,
960
+ hl7.fhir.us.davinci-crd_2.0.1,202,https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#encounter-discharge,[for the [encounter-discharge](https://cds-hooks.hl7.org/hooks/encounter-discharge/STU1/encounter-discharge/) hook t]he profiles expected to be used for the resources resolved to by the … patientId … are … [profile-patient](https://hl7.org/fhir/us/davinci-crd/STU2/StructureDefinition-profile-patient.html),SHALL,Client,,,,
961
+ hl7.fhir.us.davinci-crd_2.0.1,203,https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#encounter-discharge,[for the [encounter-discharge](https://cds-hooks.hl7.org/hooks/encounter-discharge/STU1/encounter-discharge/) hook t]he profiles expected to be used for the resources resolved to by the … encounterId … are … [profile-encounter](https://hl7.org/fhir/us/davinci-crd/STU2/StructureDefinition-profile-encounter.html),SHALL,Client,,,,
962
+ hl7.fhir.us.davinci-crd_2.0.1,204,https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#order-dispatch,[Servers SHALL support] version 1.0 of the [[order-dispatch](https://cds-hooks.hl7.org/hooks/order-dispatch/2023SepSTU1Ballot/order-dispatch/)] Hook [([published v1.0 link](https://cds-hooks.hl7.org/hooks/order-dispatch/STU1/order-dispatch/))],SHALL,Server,"cds-hooks-library_1.0.1@60,64,68,73",,,
963
+ hl7.fhir.us.davinci-crd_2.0.1,205,https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#order-dispatch,[Clients SHALL support] version 1.0 of the [[order-dispatch](https://cds-hooks.hl7.org/hooks/order-dispatch/2023SepSTU1Ballot/order-dispatch/)] Hook [([published v1.0 link](https://cds-hooks.hl7.org/hooks/order-dispatch/STU1/order-dispatch/))],SHALL,Client,"cds-hooks-library_1.0.1@57-59,61-63,65-67,69-72",,,
540
964
  hl7.fhir.us.davinci-crd_2.0.1,206,https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#order-dispatch,CRD Servers MAY use this [[order-dispatch](https://cds-hooks.hl7.org/hooks/order-dispatch/STU1/order-dispatch/)] hook as a basis for associating a patient with a particular practitioner from a payer attribution perspective.,MAY,Server,,,,
541
965
  hl7.fhir.us.davinci-crd_2.0.1,207,https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#order-dispatch,"CRD clients and servers SHALL, at minimum, support returning and processing the [Coverage Information](https://hl7.org/fhir/us/davinci-crd/STU2/StructureDefinition-ext-coverage-information.html) system action for all invocations of this [[order-dispatch](order-dispatch](https://cds-hooks.hl7.org/hooks/order-dispatch/STU1/order-dispatch/)] hook",SHALL,"Client, Server",,,,
542
- hl7.fhir.us.davinci-crd_2.0.1,208,https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#order-select,[Servers SHALL support] version 1.0 of the [[order-select](https://cds-hooks.hl7.org/hooks/order-select/2023SepSTU1Ballot/order-select/)] Hook [([published v1.0 link](https://cds-hooks.hl7.org/hooks/order-select/STU1/order-select/))],SHALL,Server,,,,
543
- hl7.fhir.us.davinci-crd_2.0.1,209,https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#order-select,[Clients SHALL support] version 1.0 of the [[order-select](https://cds-hooks.hl7.org/hooks/order-select/2023SepSTU1Ballot/order-select/)] Hook [([published v1.0 link](https://cds-hooks.hl7.org/hooks/order-select/STU1/order-select/))],SHALL,Client,,,,
544
- hl7.fhir.us.davinci-crd_2.0.1,210,https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#order-select,Coverage requirements [returned from the [order-select hook](https://cds-hooks.hl7.org/hooks/order-select/STU1/order-select/)] SHOULD be limited only to those resources that are included in the `selections` context,SHOULD,Server,,,,
545
- hl7.fhir.us.davinci-crd_2.0.1,211,https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#order-select,the content of other [resources that are not included in the `selections` context] resources [[for the order-select hook](https://cds-hooks.hl7.org/hooks/order-select/STU1/order-select/)] SHOULD also be considered before making recommendations about what additional actions are necessary. (I.e. don’t recommend an action if there’s already a draft order to perform that action.),SHOULD,Server,,,,
546
- hl7.fhir.us.davinci-crd_2.0.1,212,https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#order-select,[For the [order-select](https://cds-hooks.hl7.org/hooks/order-select/STU1/order-select/) hook] the profiles expected to be used for the resources resolved to by the `patientId` [are] [profile-patient](https://hl7.org/fhir/us/davinci-crd/STU2/StructureDefinition-profile-patient.html),SHOULD,Server,,,,
547
- hl7.fhir.us.davinci-crd_2.0.1,213,https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#order-select,[For the [order-select](https://cds-hooks.hl7.org/hooks/order-select/STU1/order-select/) hook] the profiles expected to be used for the resources resolved to by the … `encounterId` [are] [profile-encounter](https://hl7.org/fhir/us/davinci-crd/STU2/StructureDefinition-profile-encounter.html),SHOULD,Server,,,,
548
- hl7.fhir.us.davinci-crd_2.0.1,214,https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#order-select,"[for the [order-select](https://cds-hooks.hl7.org/hooks/order-select/STU1/order-select/) hook] The profiles expected to be used for the resources resolved to by the ... `draftOrders` context element [are] [profile-devicerequest](https://hl7.org/fhir/us/davinci-crd/STU2/StructureDefinition-profile-devicerequest.html), [profile-medicationrequest](https://hl7.org/fhir/us/davinci-crd/STU2/StructureDefinition-profile-medicationrequest.html), [profile-nutritionorder](https://hl7.org/fhir/us/davinci-crd/STU2/StructureDefinition-profile-nutritionorder.html), [profile-visionprescription](https://hl7.org/fhir/us/davinci-crd/STU2/StructureDefinition-profile-visionprescription.html), [and] [profile-servicerequest](https://hl7.org/fhir/us/davinci-crd/STU2/StructureDefinition-profile-servicerequest.html)",SHOULD,Server,,,,
549
- hl7.fhir.us.davinci-crd_2.0.1,215,https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#order-select,"While this [order-select](https://cds-hooks.hl7.org/hooks/order-select/STU1/order-select/)] hook does not explicitly list PractitionerRole [([us-core-practitionerrole](http://hl7.org/fhir/us/core/STU3.1.1/StructureDefinition-us-core-practitionerrole.html)) in addition to [profile-practitioner](https://hl7.org/fhir/us/davinci-crd/STU2/StructureDefinition-profile-practitioner.html)] as an expected resource type for userId, it is not prohibited and is included to allow linking the user to a Practitioner in a specific role acting on behalf of a specific Organization.",SHOULD,Server,,,,
550
- hl7.fhir.us.davinci-crd_2.0.1,216,https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#order-select,This [[order-select](https://cds-hooks.hl7.org/hooks/order-select/STU1/order-select/)] hook MAY be used in scenarios that don’t involve creating a true order,MAY,Server,,,,
551
- hl7.fhir.us.davinci-crd_2.0.1,217,https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#order-sign,[Servers SHALL support] version 1.0 of the [[order-sign](https://cds-hooks.org/hooks/order-sign/2020May/order-sign)] Hook. [([published v1.0 link](https://cds-hooks.hl7.org/hooks/order-sign/STU1/order-sign/))],SHALL,Server,,,,
552
- hl7.fhir.us.davinci-crd_2.0.1,218,https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#order-sign,[Clients SHALL support] version 1.0 of the [[order-sign](https://cds-hooks.org/hooks/order-sign/2020May/order-sign)] Hook [([published v1.0 link](https://cds-hooks.hl7.org/hooks/order-sign/STU1/order-sign/))],SHALL,Client,,,,
553
- hl7.fhir.us.davinci-crd_2.0.1,219,https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#order-sign,[[For the order-sign hook](https://cds-hooks.hl7.org/hooks/order-sign/STU1/order-sign/)] It’s appropriate to provide warnings if there is insufficient information to determine coverage requirements.,MAY,Server,,,,
554
- hl7.fhir.us.davinci-crd_2.0.1,220,https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#order-sign,Use and profiles for [order-select](https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#order-select) also apply to [order-sign](https://cds-hooks.hl7.org/hooks/order-sign/STU1/order-sign/) [including: the profiles expected to be used for the resources resolved to by the `patientId`are [profile-patient](https://hl7.org/fhir/us/davinci-crd/STU2/StructureDefinition-profile-patient.html)],SHOULD,Server,,,,
555
- hl7.fhir.us.davinci-crd_2.0.1,221,https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#order-sign,Use and profiles for [order-select](https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#order-select) also apply to [order-sign](https://cds-hooks.hl7.org/hooks/order-sign/STU1/order-sign/) [including: the profiles expected to be used for the resources resolved to by the … `encounterId` are [profile-encounter](https://hl7.org/fhir/us/davinci-crd/STU2/StructureDefinition-profile-encounter.html)],SHOULD,Server,,,,
556
- hl7.fhir.us.davinci-crd_2.0.1,222,https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#order-sign,"Use and profiles for [order-select](https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#order-select) also apply to [order-sign](https://cds-hooks.hl7.org/hooks/order-sign/STU1/order-sign/) [including: The profiles expected to be used for the resources resolved to by the ... `draftOrders` context element [are] [profile-devicerequest](https://hl7.org/fhir/us/davinci-crd/STU2/StructureDefinition-profile-devicerequest.html), [profile-medicationrequest](https://hl7.org/fhir/us/davinci-crd/STU2/StructureDefinition-profile-medicationrequest.html), [profile-nutritionorder](https://hl7.org/fhir/us/davinci-crd/STU2/StructureDefinition-profile-nutritionorder.html), [profile-visionprescription](https://hl7.org/fhir/us/davinci-crd/STU2/StructureDefinition-profile-visionprescription.html), [profile-servicerequest](https://hl7.org/fhir/us/davinci-crd/STU2/StructureDefinition-profile-servicerequest.html)]",SHOULD,Server,,,,
557
- hl7.fhir.us.davinci-crd_2.0.1,223,https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#order-sign,"Use and profiles for [order-select](https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#order-select) also apply to [order-sign](https://cds-hooks.hl7.org/hooks/order-sign/STU1/order-sign/) [including: while this hook does not explicitly list PractitionerRole [([us-core-practitionerrole](http://hl7.org/fhir/us/core/STU3.1.1/StructureDefinition-us-core-practitionerrole.html)) in addition to [profile-practitioner](https://hl7.org/fhir/us/davinci-crd/STU2/StructureDefinition-profile-practitioner.html)] as an expected resource type for userId, it is not prohibited and is included to allow linking the user to a Practitioner in a specific role acting on behalf of a specific Organization.]",SHOULD,Server,,,,
558
- hl7.fhir.us.davinci-crd_2.0.1,224,https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#order-sign,CRD Servers MAY use this [[order-sign hook](https://cds-hooks.hl7.org/hooks/order-sign/STU1/order-sign/)] hook as a basis for associating a patient with a particular practitioner from a payer attribution perspective.,MAY,Server,,,,
559
- hl7.fhir.us.davinci-crd_2.0.1,225,https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#order-sign,"CRD clients ... SHALL, at minimum, support returning … processing the Coverage Information system action for all invocations of this [[order-sign hook](https://cds-hooks.hl7.org/hooks/order-sign/STU1/order-sign/)] hook.",SHALL,Client,,,,
560
- hl7.fhir.us.davinci-crd_2.0.1,226,https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#order-sign,"CRD... servers SHALL, at minimum, support... processing the Coverage Information system action for all invocations of this [[order-sign hook](https://cds-hooks.hl7.org/hooks/order-sign/STU1/order-sign/)] hook.",SHALL,Server,,,,
966
+ hl7.fhir.us.davinci-crd_2.0.1,208,https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#order-select,[Servers SHALL support] version 1.0 of the [[order-select](https://cds-hooks.hl7.org/hooks/order-select/2023SepSTU1Ballot/order-select/)] Hook [([published v1.0 link](https://cds-hooks.hl7.org/hooks/order-select.html))],SHALL,Server,"cds-hooks-library_1.0.1@77,81,85,89,93",,,
967
+ hl7.fhir.us.davinci-crd_2.0.1,209,https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#order-select,[Clients SHALL support] version 1.0 of the [[order-select](https://cds-hooks.hl7.org/hooks/order-select/2023SepSTU1Ballot/order-select/)] Hook [([published v1.0 link](https://cds-hooks.hl7.org/hooks/order-select.html))],SHALL,Client,"cds-hooks-library_1.0.1@74-76,78-80,82-84,86-88,90-92",,,
968
+ hl7.fhir.us.davinci-crd_2.0.1,210,https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#order-select,Coverage requirements [returned from the [order-select hook](https://cds-hooks.hl7.org/hooks/order-select.html)] SHOULD be limited only to those resources that are included in the `selections` context,SHOULD,Server,,,,
969
+ hl7.fhir.us.davinci-crd_2.0.1,211,https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#order-select,the content of other [resources that are not included in the `selections` context] resources [[for the order-select hook](https://cds-hooks.hl7.org/hooks/order-select.html)] SHOULD also be considered before making recommendations about what additional actions are necessary. (I.e. don’t recommend an action if there’s already a draft order to perform that action.),SHOULD,Server,,,,
970
+ hl7.fhir.us.davinci-crd_2.0.1,212,https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#order-select,[For the [order-select](https://cds-hooks.hl7.org/hooks/order-select.html) hook] the profiles expected to be used for the resources resolved to by the `patientId` [are] [profile-patient](https://hl7.org/fhir/us/davinci-crd/STU2/StructureDefinition-profile-patient.html),SHALL,Client,,,,
971
+ hl7.fhir.us.davinci-crd_2.0.1,213,https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#order-select,[For the [order-select](https://cds-hooks.hl7.org/hooks/order-select.html) hook] the profiles expected to be used for the resources resolved to by the … `encounterId` [are] [profile-encounter](https://hl7.org/fhir/us/davinci-crd/STU2/StructureDefinition-profile-encounter.html),SHALL,Client,,,,
972
+ hl7.fhir.us.davinci-crd_2.0.1,214,https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#order-select,"[for the [order-select](https://cds-hooks.hl7.org/hooks/order-select.html) hook] The profiles expected to be used for the resources resolved to by the ... `draftOrders` context element [are] [profile-devicerequest](https://hl7.org/fhir/us/davinci-crd/STU2/StructureDefinition-profile-devicerequest.html), [profile-medicationrequest](https://hl7.org/fhir/us/davinci-crd/STU2/StructureDefinition-profile-medicationrequest.html), [profile-nutritionorder](https://hl7.org/fhir/us/davinci-crd/STU2/StructureDefinition-profile-nutritionorder.html), [profile-visionprescription](https://hl7.org/fhir/us/davinci-crd/STU2/StructureDefinition-profile-visionprescription.html), [and] [profile-servicerequest](https://hl7.org/fhir/us/davinci-crd/STU2/StructureDefinition-profile-servicerequest.html)",SHALL,Client,,,,
973
+ hl7.fhir.us.davinci-crd_2.0.1,215,https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#order-select,"While this [order-select](https://cds-hooks.hl7.org/hooks/order-select.html)] hook does not explicitly list PractitionerRole [([us-core-practitionerrole](http://hl7.org/fhir/us/core/STU3.1.1/StructureDefinition-us-core-practitionerrole.html)) in addition to [profile-practitioner](https://hl7.org/fhir/us/davinci-crd/STU2/StructureDefinition-profile-practitioner.html)] as an expected resource type for userId, it is not prohibited and is included to allow linking the user to a Practitioner in a specific role acting on behalf of a specific Organization.",SHALL,Client,,,,
974
+ hl7.fhir.us.davinci-crd_2.0.1,216,https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#order-select,This [[order-select](https://cds-hooks.hl7.org/hooks/order-select.html)] hook MAY be used in scenarios that don’t involve creating a true order,MAY,Client,,,,
975
+ hl7.fhir.us.davinci-crd_2.0.1,217,https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#order-sign,[Servers SHALL support] version 1.1 of the [[order-sign](https://cds-hooks.org/hooks/order-sign/2020May/order-sign)] Hook [([published v1.0 link (v1.1.0 in the change log)](https://cds-hooks.hl7.org/hooks/STU1/order-sign.html))],SHALL,Server,"cds-hooks-library_1.0.1@4,8,12,16",,,
976
+ hl7.fhir.us.davinci-crd_2.0.1,218,https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#order-sign,[Clients SHALL support] version 1.1 of the [[order-sign](https://cds-hooks.org/hooks/order-sign/2020May/order-sign)] Hook [([published v1.0 link (v1.1.0 in the change log)](https://cds-hooks.hl7.org/hooks/STU1/order-sign.html))],SHALL,Client,"cds-hooks-library_1.0.1@1-3,5-7,9-11,13-15",,,
977
+ hl7.fhir.us.davinci-crd_2.0.1,219,https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#order-sign,[[For the order-sign hook](https://cds-hooks.hl7.org/hooks/STU1/order-sign.html)] It’s appropriate to provide warnings if there is insufficient information to determine coverage requirements.,MAY,Server,,,,
978
+ hl7.fhir.us.davinci-crd_2.0.1,220,https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#order-sign,Use and profiles for [order-select](https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#order-select) also apply to `order-sign` [([link](https://cds-hooks.hl7.org/hooks/STU1/order-sign.html)) including: the profiles expected to be used for the resources resolved to by the `patientId`are [profile-patient](https://hl7.org/fhir/us/davinci-crd/STU2/StructureDefinition-profile-patient.html)],SHALL,Client,,,,
979
+ hl7.fhir.us.davinci-crd_2.0.1,221,https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#order-sign,Use and profiles for [order-select](https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#order-select) also apply to `order-sign` [([link](https://cds-hooks.hl7.org/hooks/STU1/order-sign.html)) including: the profiles expected to be used for the resources resolved to by the … `encounterId` are [profile-encounter](https://hl7.org/fhir/us/davinci-crd/STU2/StructureDefinition-profile-encounter.html)],SHALL,Client,,,,
980
+ hl7.fhir.us.davinci-crd_2.0.1,222,https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#order-sign,"Use and profiles for [order-select](https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#order-select) also apply to `order-sign` [([link](https://cds-hooks.hl7.org/hooks/STU1/order-sign.html)) including: The profiles expected to be used for the resources resolved to by the ... `draftOrders` context element [are] [profile-devicerequest](https://hl7.org/fhir/us/davinci-crd/STU2/StructureDefinition-profile-devicerequest.html), [profile-medicationrequest](https://hl7.org/fhir/us/davinci-crd/STU2/StructureDefinition-profile-medicationrequest.html), [profile-nutritionorder](https://hl7.org/fhir/us/davinci-crd/STU2/StructureDefinition-profile-nutritionorder.html), [profile-visionprescription](https://hl7.org/fhir/us/davinci-crd/STU2/StructureDefinition-profile-visionprescription.html), [profile-servicerequest](https://hl7.org/fhir/us/davinci-crd/STU2/StructureDefinition-profile-servicerequest.html)]",SHALL,Client,,,,
981
+ hl7.fhir.us.davinci-crd_2.0.1,223,https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#order-sign,"Use and profiles for [order-select](https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#order-select) also apply to `order-sign` [([link](https://cds-hooks.hl7.org/hooks/STU1/order-sign.html)) including: while this hook does not explicitly list PractitionerRole [([us-core-practitionerrole](http://hl7.org/fhir/us/core/STU3.1.1/StructureDefinition-us-core-practitionerrole.html)) in addition to [profile-practitioner](https://hl7.org/fhir/us/davinci-crd/STU2/StructureDefinition-profile-practitioner.html)] as an expected resource type for userId, it is not prohibited and is included to allow linking the user to a Practitioner in a specific role acting on behalf of a specific Organization.]",SHALL,Client,,,,
982
+ hl7.fhir.us.davinci-crd_2.0.1,224,https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#order-sign,CRD Servers MAY use this [[order-sign hook](https://cds-hooks.hl7.org/hooks/STU1/order-sign.html)] hook as a basis for associating a patient with a particular practitioner from a payer attribution perspective.,MAY,Server,,,,
983
+ hl7.fhir.us.davinci-crd_2.0.1,225,https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#order-sign,"CRD clients ... SHALL, at minimum, support … processing the Coverage Information system action for all invocations of this [[order-sign hook](https://cds-hooks.hl7.org/hooks/STU1/order-sign.html)] hook.",SHALL,Client,,,,
984
+ hl7.fhir.us.davinci-crd_2.0.1,226,https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#order-sign,"CRD... servers SHALL, at minimum, support returning ... the Coverage Information system action for all invocations of this [[order-sign hook](https://cds-hooks.hl7.org/hooks/STU1/order-sign.html)] hook.",SHALL,Server,,,,
561
985
  hl7.fhir.us.davinci-crd_2.0.1,227,https://hl7.org/fhir/us/davinci-crd/STU2/cards.html#cards-profiles,"The `Card.indicator` SHOULD be populated from the perspective of the clinical decision maker, not the payer.",SHOULD,Server,,,,
562
986
  hl7.fhir.us.davinci-crd_2.0.1,228,https://hl7.org/fhir/us/davinci-crd/STU2/cards.html#cards-profiles,Most Coverage Requirements SHOULD be marked as ‘info’.,SHOULD,Server,,,,
563
987
  hl7.fhir.us.davinci-crd_2.0.1,229,https://hl7.org/fhir/us/davinci-crd/STU2/cards.html#cards-profiles,"While failure to procure a prior authorization might be ‘critical’ from the perspective of payment, it would be - at best - a ‘warning’ from the perspective of clinical care. ‘critical’ must be reserved for reporting life or death or serious clinical outcomes. Issues where the proposed course of action will negatively affect the ability of the payer or patient to be reimbursed would generally be a ‘warning’",SHOULD,Server,,,,
@@ -585,8 +1009,8 @@ hl7.fhir.us.davinci-crd_2.0.1,250,https://hl7.org/fhir/us/davinci-crd/STU2/cards
585
1009
  hl7.fhir.us.davinci-crd_2.0.1,251,https://hl7.org/fhir/us/davinci-crd/STU2/cards.html#potential-crd-response-types,[A]cceptance of decision support cards outside the coverage and documentation requirements space is optional (for both server and client).,MAY,Client,,,,
586
1010
  hl7.fhir.us.davinci-crd_2.0.1,252,https://hl7.org/fhir/us/davinci-crd/STU2/cards.html#potential-crd-response-types,CRD Servers that provide decision support for non-coverage/documentation areas SHALL check that the CRD client does not have the information within its store that would allow it to detect the issue itself.,SHALL,Server,,,,
587
1011
  hl7.fhir.us.davinci-crd_2.0.1,253,https://hl7.org/fhir/us/davinci-crd/STU2/cards.html#potential-crd-response-types,"[for non-coverage/documentation areas] If the information already exists in the CRD client, then the obligation is on the CRD Client to manage the issue detection and reporting in its own manner and CRD Servers should not get involved.",SHOULD NOT,Server,,,,
588
- hl7.fhir.us.davinci-crd_2.0.1,254,https://hl7.org/fhir/us/davinci-crd/STU2/cards.html#potential-crd-response-types,"In this case, [where the CRD Client provide resources, such as MedicationRequest, in the CDS Hook request context object] the CDS Client must maintain a stable identifier for these temporary resources to allow CRD responses to refer to them in CDS Hook Actions.",SHALL,Client,,,,
589
- hl7.fhir.us.davinci-crd_2.0.1,255,https://hl7.org/fhir/us/davinci-crd/STU2/cards.html#potential-crd-response-types,"When a Coverage Information card type indicating that additional clinical documentation is needed and the CRD client supports DTR, CRD Clients SHALL ensure that clinical users have an opportunity to launch the DTR app as part of the current workflow.",SHALL,Client,,,,
1012
+ hl7.fhir.us.davinci-crd_2.0.1,254,https://hl7.org/fhir/us/davinci-crd/STU2/cards.html#potential-crd-response-types,"In this case, [where the CRD Client provide resources, such as MedicationRequest, in the CDS Hook request context object] the CDS Client must maintain a stable identifier for these temporary resources to allow CRD responses to refer to them in CDS Hook Actions.",DEPRECATED,Client,,,,
1013
+ hl7.fhir.us.davinci-crd_2.0.1,255,https://hl7.org/fhir/us/davinci-crd/STU2/cards.html#potential-crd-response-types,"When a Coverage Information card type indicating that additional clinical documentation is needed and the CRD client supports DTR, CRD Clients SHALL ensure that clinical users have an opportunity to launch the DTR app as part of the current workflow.",SHALL,Client,,true,,
590
1014
  hl7.fhir.us.davinci-crd_2.0.1,256,https://hl7.org/fhir/us/davinci-crd/STU2/cards.html#potential-crd-response-types,"Where a Coverage Information indicates that additional administrative documentation is needed, CRD Clients SHOULD allow clinical users to have an opportunity to launch the DTR app",SHOULD,Client,,,,
591
1015
  hl7.fhir.us.davinci-crd_2.0.1,257,https://hl7.org/fhir/us/davinci-crd/STU2/cards.html#potential-crd-response-types,"Where a Coverage Information indicates that additional administrative documentation is needed, CRD Clients ... SHOULD make it clear that the information to be captured is non-clinical.",SHOULD,Client,,,,
592
1016
  hl7.fhir.us.davinci-crd_2.0.1,258,https://hl7.org/fhir/us/davinci-crd/STU2/cards.html#external-reference,"Card with one or more links to external web pages, PDFs, or other resources that provide relevant coverage information ... SHALL have at least one `Card.link`.",SHALL,Server,,,,
@@ -643,3 +1067,256 @@ hl7.fhir.us.davinci-crd_2.0.1,308,https://hl7.org/fhir/us/davinci-crd/STU2/imple
643
1067
  hl7.fhir.us.davinci-crd_2.0.1,309,https://hl7.org/fhir/us/davinci-crd/STU2/implementation.html#impact-on-payer-processes,CRD Servers will need to support … clinical terminologies [passed to the CRD server by the client] or map them to internally used billing terminologies when determining decision support results - such as whether a therapy is covered or requires prior authorization.,SHOULD,Server,,,,
644
1068
  hl7.fhir.us.davinci-crd_2.0.1,310,https://hl7.org/fhir/us/davinci-crd/STU2/implementation.html#impact-on-payer-processes,"Services will also need to consider that the mapping they perform between clinical terminologies and billing codes may be different than the bill coding process performed by the client system when claims are eventually submitted. This may mean that assertions about coverage or prior authorization requirements will need to be expressed conditionally. E.g. “Provided this service is billed as X, Y or Z, then prior authorization is not needed”.",SHOULD,Server,,,,
645
1069
  hl7.fhir.us.davinci-crd_2.0.1,311,https://hl7.org/fhir/us/davinci-crd/STU2/implementation.html#impact-on-payer-processes,"In situations where CRD Clients are aware of the likely billing codes at the time of ordering, they MAY send these codes as additional CodeableConcept.coding repetitions to assist in server processing.",MAY,Client,,,,
1070
+ hl7.fhir.us.davinci-crd_2.0.1,312,https://hl7.org/fhir/us/davinci-crd/STU2/CapabilityStatement-crd-client.html,the CRD Client SHALL support all ‘SHOULD’ ‘read’ and ‘search’ capabilities listed below for resources referenced in supported hooks and order types if it does not support returning the associated resources as part of CDS Hooks pre-fetch.,SHALL,Client,,,,
1071
+ hl7.fhir.us.davinci-crd_2.0.1,313,https://hl7.org/fhir/us/davinci-crd/STU2/CapabilityStatement-crd-client.html#mode1,Implementations SHALL meet the general security requirements documented in the [HRex implementation guide](http://hl7.org/fhir/us/davinci-hrex/STU1/security.html),SHALL,Client,,,,
1072
+ hl7.fhir.us.davinci-crd_2.0.1,314,https://hl7.org/fhir/us/davinci-crd/STU2/CapabilityStatement-crd-client.html,[CRD Clients SHALL also implement the US Core Server Capability Statement imported by this CapabilityStatement],SHALL,Client,,,,
1073
+ hl7.fhir.us.davinci-crd_2.0.1,315,https://hl7.org/fhir/us/davinci-crd/STU2/CapabilityStatement-crd-client.html,The CRD Client SHALL also support ‘update’ functionality for [the Appointment resource type when] the client allows invoking [the appointment-book hook].,SHALL,Client,,,,
1074
+ hl7.fhir.us.davinci-crd_2.0.1,316,https://hl7.org/fhir/us/davinci-crd/STU2/CapabilityStatement-crd-client.html,The CRD Client SHALL also support ‘update’ functionality for [the Encounter resource type when] the client allows invoking [the encounter-start or encounter-discharge hook].,SHALL,Client,,,,
1075
+ hl7.fhir.us.davinci-crd_2.0.1,317,https://hl7.org/fhir/us/davinci-crd/STU2/CapabilityStatement-crd-client.html,"The CRD Client SHALL also support ‘update’ functionality for [the CommunicationRequest resource type when] the client allows invoking [the order-dispatch, order-select, or order-sign hook].",SHALL,Client,,,,
1076
+ hl7.fhir.us.davinci-crd_2.0.1,318,https://hl7.org/fhir/us/davinci-crd/STU2/CapabilityStatement-crd-client.html,"The CRD Client SHALL also support ‘update’ functionality for [the DeviceRequest resource type when] the client allows invoking [the order-dispatch, order-select, or order-sign hook].",SHALL,Client,,,,
1077
+ hl7.fhir.us.davinci-crd_2.0.1,319,https://hl7.org/fhir/us/davinci-crd/STU2/CapabilityStatement-crd-client.html,"The CRD Client SHALL also support ‘update’ functionality for [the MedicationRequest resource type when] the client allows invoking [the order-dispatch, order-select, or order-sign hook].",SHALL,Client,,,,
1078
+ hl7.fhir.us.davinci-crd_2.0.1,320,https://hl7.org/fhir/us/davinci-crd/STU2/CapabilityStatement-crd-client.html,"The CRD Client SHALL also support ‘update’ functionality for [the NutritionOrder resource type when] the client allows invoking [the order-dispatch, order-select, or order-sign hook].",SHALL,Client,,,,
1079
+ hl7.fhir.us.davinci-crd_2.0.1,321,https://hl7.org/fhir/us/davinci-crd/STU2/CapabilityStatement-crd-client.html,"The CRD Client SHALL also support ‘update’ functionality for [the ServiceRequest resource type when] the client allows invoking [the order-dispatch, order-select, or order-sign hook].",SHALL,Client,,,,
1080
+ hl7.fhir.us.davinci-crd_2.0.1,322,https://hl7.org/fhir/us/davinci-crd/STU2/CapabilityStatement-crd-client.html,"The CRD Client SHALL also support ‘update’ functionality for [the VisionPrescription resource type when] the client allows invoking [the order-dispatch, order-select, or order-sign hook].",SHALL,Client,,,,
1081
+ hl7.fhir.us.davinci-crd_2.0.1,323,https://hl7.org/fhir/us/davinci-crd/STU2/foundation.html#crd-access-tokens,"When a CRD client invokes a CRD server via CDS Hooks, it will provide an access token that allows the CRD server to retrieve additional patient information.",SHALL,Client,,,,
1082
+ hl7.fhir.us.davinci-crd_2.2.1,billopt-1,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/StructureDefinition-ext-billing-options.html#ci-c-billopt-1,"CRD clients **SHALL** use the billing-options extension to convey likely billing codes if they are known, but are not required to know billing codes (e.g. if ordering and performing systems will differ).",SHALL,CRD Client,,true,,
1083
+ hl7.fhir.us.davinci-crd_2.2.1,billopt-2,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/StructureDefinition-ext-billing-options.html#ci-c-billopt-2,CRD servers **SHALL NOT** depend on the billing-options extension being present in order to provide a response.,SHALL NOT,CRD Server,,true,,
1084
+ hl7.fhir.us.davinci-crd_2.2.1,billopt-3-A,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/StructureDefinition-ext-billing-options.html#ci-c-billopt-3,"If codes are provided with the billing-options extension, CRD servers **SHALL** consider any codes provided",SHALL,CRD Server,,false,,
1085
+ hl7.fhir.us.davinci-crd_2.2.1,billopt-3-B,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/StructureDefinition-ext-billing-options.html#ci-c-billopt-3,"If codes are provided with the billing-options extension, CRD servers ... **MAY** consider additional codes determined by their own mapping when returning coverage information responses.",MAY,CRD Server,,false,,
1086
+ hl7.fhir.us.davinci-crd_2.2.1,conf-1,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/conformance.html#ci-c-conf-1,CRD clients **SHALL** support at least one of the three specified versions of US Core.,SHALL,CRD Client,,false,,
1087
+ hl7.fhir.us.davinci-crd_2.2.1,conf-2,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/conformance.html#ci-c-conf-2,CRD servers **SHALL** be able to handle all three US Core versions.,SHALL,CRD Server,,false,,
1088
+ hl7.fhir.us.davinci-crd_2.2.1,conf-3,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/conformance.html#ci-c-conf-3,"If the CRD client maintains a mustSupport data element and surfaces it to users, then it **SHALL** be exposed in their FHIR interface when the data exists and privacy constraints permit.",SHALL,CRD Client,,true,,
1089
+ hl7.fhir.us.davinci-crd_2.2.1,conf-4,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/conformance.html#ci-c-conf-4,CRD servers **SHALL** leverage mustSupport elements as available and appropriate to provide decision support.,SHALL,CRD Server,,false,,
1090
+ hl7.fhir.us.davinci-crd_2.2.1,conf-5,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/conformance.html#ci-c-conf-5,CRD servers **SHALL** populate mustSupport elements if an appropriate value exists.,SHALL,CRD Server,,true,,
1091
+ hl7.fhir.us.davinci-crd_2.2.1,conf-6,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/conformance.html#ci-c-conf-6,CRD clients **SHALL** make the mustSupport data available to the appropriate user (clinical or administrative) or leverage the data within their workflow as necessary to follow the intention of the provided decision support.,SHALL,CRD Client,,false,,
1092
+ hl7.fhir.us.davinci-crd_2.2.1,conf-7,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/conformance.html#ci-c-conf-7,"When preparing [Coverage Information](https://hl7.org/fhir/us/davinci-crd/2.2.1/en/StructureDefinition-ext-coverage-information.html) responses, CRD servers **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,CRD Server,,false,,
1093
+ hl7.fhir.us.davinci-crd_2.2.1,conf-8,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/conformance.html#ci-c-conf-8,CRD servers **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,CRD Server,,false,,
1094
+ hl7.fhir.us.davinci-crd_2.2.1,conf-9,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/conformance.html#ci-c-conf-9,"When preparing [response types](https://hl7.org/fhir/us/davinci-crd/2.2.1/en/cards.html) other than Coverage Information, CRD servers **SHOULD** limit themselves to the same resource instances and data elements as permitted above for Coverage Information responses.",SHOULD,CRD Server,,true,,
1095
+ hl7.fhir.us.davinci-crd_2.2.1,conf-10,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/conformance.html#ci-c-conf-10,CRD clients **SHALL NOT** depend on or set expectations for CRD servers to communicate data elements not marked as mandatory or mustSupport in the CRD specification.,SHALL NOT,CRD Client,,false,,
1096
+ hl7.fhir.us.davinci-crd_2.2.1,conf-11,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/conformance.html#ci-c-conf-11,"implementations **MAY**, by mutual agreement, pre-adopt the use of those additional CI-build profiles and/or mustSupport data elements and not be considered in violation of #1 or #3 above.",MAY,"CRD Client, CRD Server",,true,,
1097
+ hl7.fhir.us.davinci-crd_2.2.1,conf-12,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/conformance.html#ci-c-conf-12,"Where cardinality and other constraints present in profiles allow data elements to be omitted, CRD compliant systems **SHALL NOT** treat the omission of those elements as an error.",SHALL NOT,"CRD Client, CRD Server",,true,,
1098
+ hl7.fhir.us.davinci-crd_2.2.1,conf-13,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/conformance.html#ci-c-conf-13,CRD clients and services and **SHALL** use standard CRD data elements (i.e. elements found within CRD-defined or inherited profiles and marked as mandatory or mustSupport) to communicate needed data where the elements are intended to convey such information.,SHALL,"CRD Client, CRD Server",,false,,
1099
+ hl7.fhir.us.davinci-crd_2.2.1,conf-14,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/conformance.html#ci-c-conf-14,CRD implementing organizations **SHALL NOT** publish guidance setting expectations for where certain data elements are conveyed within CRD and inherited data structures,SHALL NOT,"CRD Client Organization, CRD Server Organization",,false,,
1100
+ hl7.fhir.us.davinci-crd_2.2.1,covinfo-1,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/StructureDefinition-ext-coverage-information.html#ci-c-covinfo-1,The union of the scoping elements in each coverage-information repetition **SHOULD** be disjoint.,SHOULD,CRD Server,,false,,
1101
+ hl7.fhir.us.davinci-crd_2.2.1,covinfo-2,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/StructureDefinition-ext-coverage-information.html#ci-c-covinfo-2,"If there are multiple reason repetitions, each repetition **SHOULD** make clear exactly what aspect of the coverage information assertion the reason applies to.",SHOULD,CRD Server,,true,,
1102
+ hl7.fhir.us.davinci-crd_2.2.1,dev-1,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/deviations.html#ci-c-dev-1,CRD servers **SHALL** declare at least one supported CRD version for each supported hook.,SHALL,CRD Server,,false,,
1103
+ hl7.fhir.us.davinci-crd_2.2.1,dev-2,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/deviations.html#ci-c-dev-2,"If the services endpoint can handle multiple CRD versions, it **SHALL** declare all versions it supports.",SHALL,CRD Server,,true,,
1104
+ hl7.fhir.us.davinci-crd_2.2.1,dev-3-A,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/deviations.html#ci-c-dev-3,The requestedVersion extension **SHALL** be present if the service indicates it supports multiple versions for that hook,SHALL,CRD Client,,true,,
1105
+ hl7.fhir.us.davinci-crd_2.2.1,dev-3-B,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/deviations.html#ci-c-dev-3,The requestedVersion extension ... **MAY** be present always.,MAY,CRD Client,,true,,
1106
+ hl7.fhir.us.davinci-crd_2.2.1,dev-4,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/deviations.html#ci-c-dev-4,Each configuration option SHALL include four mandatory elements.,SHALL,CRD Server,,false,,
1107
+ hl7.fhir.us.davinci-crd_2.2.1,dev-5,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/deviations.html#ci-c-dev-5,"CRD servers **SHALL**, at minimum, offer configuration options for each type of card they support (with a code corresponding to the [CRD Response Types](https://hl7.org/fhir/us/davinci-crd/2.2.1/en/ValueSet-cardType.html) ValueSet and a type of 'boolean', where setting the flag to false will result in the server not returning any cards of the specified type).",SHALL,CRD Server,,false,,
1108
+ hl7.fhir.us.davinci-crd_2.2.1,dev-6,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/deviations.html#ci-c-dev-6,"Guidance can be given about allowed combinations in descriptions, but CRD servers **SHALL** gracefully handle disallowed/nonsensical combinations.",SHALL,CRD Server,,false,,
1109
+ hl7.fhir.us.davinci-crd_2.2.1,dev-7,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/deviations.html#ci-c-dev-7,Configuration codes **SHALL** be valid JSON property names and **SHALL** come from the [CRD Response Types](https://hl7.org/fhir/us/davinci-crd/2.2.1/en/ValueSet-cardType.html) list if an applicable type is in that list.,SHALL,CRD Server,,true,,
1110
+ hl7.fhir.us.davinci-crd_2.2.1,dev-8,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/deviations.html#ci-c-dev-8,"Configuration codes, names, and descriptions **SHALL** be unique within a [CDS Service](http://cds-hooks.hl7.org/2026Jan/index.html#response) definition.",SHALL,CRD Server,,false,,
1111
+ hl7.fhir.us.davinci-crd_2.2.1,dev-9,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/deviations.html#ci-c-dev-9,"Configuration codes, names, and descriptions **SHOULD** be consistent across different hooks supported by the same payer when dealing with the same types of configuration options.",SHOULD,CRD Server,,false,,
1112
+ hl7.fhir.us.davinci-crd_2.2.1,dev-10,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/deviations.html#ci-c-dev-10,CRD servers providing more than one type of coverage requirement information/guidance **SHOULD** expose configuration options allowing clients to dynamically control what information is returned by the service.,SHOULD,CRD Server,,false,,
1113
+ hl7.fhir.us.davinci-crd_2.2.1,dev-11,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/deviations.html#ci-c-dev-11,CRD Clients **SHOULD** expose configuration options through a configuration screen to allow users and/or system administrators to control the types of information returned.,SHOULD,CRD Client,,false,,
1114
+ hl7.fhir.us.davinci-crd_2.2.1,dev-12,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/deviations.html#ci-c-dev-12,CRD Clients **SHALL** convey configuration options when invoking the hook using the davinci-crd.configuration extension. It will be a single object whose properties will be drawn from the code values from configuration options and whose values will be of the type defined for that option.,SHALL,CRD Client,,false,,
1115
+ hl7.fhir.us.davinci-crd_2.2.1,dev-13,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/deviations.html#ci-c-dev-13,"CRD Clients **SHOULD** provide an ability to leverage the dynamic configuration capabilities of payer services based on provider role, individual provider, and/or hook invocation location as best meets the needs of their users.",SHOULD,CRD Client,,false,,
1116
+ hl7.fhir.us.davinci-crd_2.2.1,dev-14,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/deviations.html#ci-c-dev-14,CRD Servers **SHALL** behave in the manner prescribed by any supported configuration information received from the CRD Client.,SHALL,CRD Server,,false,,
1117
+ hl7.fhir.us.davinci-crd_2.2.1,dev-15,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/deviations.html#ci-c-dev-15,CRD Servers **SHALL NOT** require the inclusion of configuration information in a hook call (i.e. no hook invocation is permitted to fail because configuration information was not included).,SHALL NOT,CRD Server,,false,,
1118
+ hl7.fhir.us.davinci-crd_2.2.1,dev-16,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/deviations.html#ci-c-dev-16,CRD Clients **MAY** send configuration information that CRD Servers do not support.,MAY,CRD Client,,false,,
1119
+ hl7.fhir.us.davinci-crd_2.2.1,dev-17,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/deviations.html#ci-c-dev-17,CRD Servers **SHALL** ignore unsupported configuration information.,SHALL,CRD Server,,false,,
1120
+ hl7.fhir.us.davinci-crd_2.2.1,dev-19,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/deviations.html#ci-c-dev-19,"When included with a Task, the creation of the Questionnaire needs to be conditional - it **SHOULD** only occur if that specific Questionnaire version does not already exist",SHOULD,CRD Server,,false,,
1121
+ hl7.fhir.us.davinci-crd_2.2.1,dev-20,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/deviations.html#ci-c-dev-20,the CRD server **SHALL** query to determine if the client has a copy of the Questionnaire before sending the request.,SHALL,CRD Server,,false,,
1122
+ hl7.fhir.us.davinci-crd_2.2.1,dev-21,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/deviations.html#ci-c-dev-21,"For the purposes of this implementation guide, the inclusion of the `id` element in 'created' resources and references in created and updated resources within multi-action suggestions **SHALL** be handled as per FHIR's [transaction processing rules](http://hl7.org/fhir/R4/http.html#trules).",SHALL,CRD Client,,false,,
1123
+ hl7.fhir.us.davinci-crd_2.2.1,dev-22,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/deviations.html#ci-c-dev-22,"Specifically, this means that if a FHIR Reference points to the resource type and `id` of a resource of another 'create' Action in the same Suggestion, then the reference to that resource **SHALL** be updated by the CRD client to point to the `id` assigned by the client when performing the 'create'.",SHALL,CRD Client,,false,,
1124
+ hl7.fhir.us.davinci-crd_2.2.1,dev-23,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/deviations.html#ci-c-dev-23,CRD Clients **SHALL** perform 'creates' in an order that ensures that referenced resources are created prior to referencing resources.,SHALL,CRD Client,,false,,
1125
+ hl7.fhir.us.davinci-crd_2.2.1,dev-24,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/deviations.html#ci-c-dev-24,"If a hook service is invoked on a collection of resources, all cards returned that are specific to only a subset of the resources passed as context **SHALL** disambiguate in the `detail` element which resources they are associated with in a human-friendly way.",SHALL,CRD Server,,true,,
1126
+ hl7.fhir.us.davinci-crd_2.2.1,dev-25,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/deviations.html#ci-c-dev-25,"As well, cards **SHOULD** include the associated-resource extension to allow computable linkage.",SHOULD,CRD Server,,false,,
1127
+ hl7.fhir.us.davinci-crd_2.2.1,dev-26,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/deviations.html#ci-c-dev-26,CRD clients **SHALL** only invoke hooks on payer services where the patient record indicates active coverage with the payer associated with the service and where there is no recorded indication the patient intends to bypass insurance coverage (i.e. the service or product is not flagged as 'patient-pay').,SHALL,CRD Client,,false,,
1128
+ hl7.fhir.us.davinci-crd_2.2.1,dev-27,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/deviations.html#ci-c-dev-27,"CRD clients **MAY** limit hook invocation to only those payers that are believed to potentially have relevant information related to the current action - for example, clinical guidance, contraindication detection, etc.",MAY,CRD Client,,false,,
1129
+ hl7.fhir.us.davinci-crd_2.2.1,dev-28,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/deviations.html#ci-c-dev-28,"To avoid confusion for providers, where a patient has multiple active coverages that could be relevant to the current order/appointment/etc., CRD clients **SHALL** select from those coverages which is most likely to be primary and only solicit coverage information for that one payer.",SHALL,CRD Client,,true,,
1130
+ hl7.fhir.us.davinci-crd_2.2.1,dev-29-A,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/deviations.html#ci-c-dev-29,This primary coverage **SHALL** be the only one included in the prefetch content as part of the CRD request,SHALL,CRD Client,,false,,
1131
+ hl7.fhir.us.davinci-crd_2.2.1,dev-29-B,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/deviations.html#ci-c-dev-29,[O]ther [non-primary] coverages **MAY** be exposed over the CRD client's FHIR API.,MAY,CRD Client,,false,,
1132
+ hl7.fhir.us.davinci-crd_2.2.1,dev-30,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/deviations.html#ci-c-dev-30,"If they invoke CRD on other payers, CRD clients **SHALL** ensure that response types that return coverage information are disabled for those 'likely secondary' payers.",SHALL,CRD Client,,true,,
1133
+ hl7.fhir.us.davinci-crd_2.2.1,dev-31,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/deviations.html#ci-c-dev-31,"In situations where a CRD client determines that there are different primary coverages for different items in the same order action, they **MAY** choose to send separate CRD calls (each with its own access token) for the collection of services pertinent to that Coverage.",MAY,CRD Client,,true,,
1134
+ hl7.fhir.us.davinci-crd_2.2.1,dev-32,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/deviations.html#ci-c-dev-32,"Where the patient has multiple active coverages that the CRD client deems appropriate to call the respective CRD servers for, the CRD client **SHALL** invoke all CRD server calls in parallel and display results simultaneously to ensure timely response to user action.",SHALL,CRD Client,,true,,
1135
+ hl7.fhir.us.davinci-crd_2.2.1,found-1,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/foundation.html#ci-c-found-1,"CRD servers and CRD clients **MAY** mutually agree to support additional hooks, additional card patterns, additional resources, additional extensions, etc. not found in this specification.",MAY,"CRD Client, CRD Server",,false,,
1136
+ hl7.fhir.us.davinci-crd_2.2.1,found-2,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/foundation.html#ci-c-found-2,CRD servers **SHALL** return responses for all supported hooks and **SHALL** respond within the required time 90% of the time.,SHALL,CRD Server,,false,,
1137
+ hl7.fhir.us.davinci-crd_2.2.1,found-3,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/foundation.html#ci-c-found-3,"If a CRD client does not receive a response within the 5 or 10-second window, it **MAY** either abandon the call or process the response asynchronously.",MAY,CRD Client,,true,,
1138
+ hl7.fhir.us.davinci-crd_2.2.1,found-4,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/foundation.html#ci-c-found-4,"Where a CRD server responds with a coverage information extension indicating `doc-needed` of 'clinical', 'admin', or 'patient' and the payer supports DTR, the responsible organization **SHOULD** support soliciting the identified additional information via DTR.",SHOULD,CRD Server Organization,,true,,
1139
+ hl7.fhir.us.davinci-crd_2.2.1,found-5,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/foundation.html#ci-c-found-5,CRD servers **SHOULD** query all data necessary to make their coverage determination decisions if that data is available for query in the EHR and that data is not returned in prefetch.,SHOULD,CRD Server,,true,,
1140
+ hl7.fhir.us.davinci-crd_2.2.1,found-6,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/foundation.html#ci-c-found-6,CRD clients **SHALL** provide a mechanism for providers to bypass a CRD process that is taking longer than the aforementioned time limit to ensure users are not blocked from proceeding with their business flow.,SHALL,CRD Client,,false,,
1141
+ hl7.fhir.us.davinci-crd_2.2.1,found-7,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/foundation.html#ci-c-found-7,"Where a CRD client opts to not block users from proceeding for responses that come back in a period of time longer than the target time window in this guide (i.e., 5s or 10s), the client **SHOULD** ensure that users are made aware of the information when it is available.",SHOULD,CRD Client,,false,,
1142
+ hl7.fhir.us.davinci-crd_2.2.1,found-8,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/foundation.html#ci-c-found-8,"For responses that come back in a time period that exceeds the time maximm duration specifd in this guide, CRD clients **MAY** ignore the resulting cards and/or system actions.",MAY,CRD Client,,true,,
1143
+ hl7.fhir.us.davinci-crd_2.2.1,found-9,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/foundation.html#ci-c-found-9,"CRD servers **SHALL** ensure that the guidance returned with respect to coverage and prior authorizations (e.g., assertions that a service is covered, or prior authorization is not necessary) is as accurate as guidance that would be provided by other means (e.g., portals, phone calls).",SHALL,CRD Server,,false,,
1144
+ hl7.fhir.us.davinci-crd_2.2.1,found-10,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/foundation.html#ci-c-found-10,"Also, coverage and authorization guidance **SHOULD** allow for possible variances in coding and submission.",SHOULD,CRD Server,,false,,
1145
+ hl7.fhir.us.davinci-crd_2.2.1,found-11,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/foundation.html#ci-c-found-11,CRD servers **SHALL** retain all coverage guidance provided and take into account answers provided via CRD (and DTR) when subsequently adjudicating claims.,SHALL,CRD Server,,false,,
1146
+ hl7.fhir.us.davinci-crd_2.2.1,found-12,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/foundation.html#ci-c-found-12,"Where the selected code is not already a billing code and CRD clients are able to automatically determine what the corresponding billing code is, they **SHOULD** send a Coding with the billing code alongside the clinical code to reduce the risk of the receiving payer making a different translation.",SHOULD,CRD Client,,true,,
1147
+ hl7.fhir.us.davinci-crd_2.2.1,found-13,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/foundation.html#ci-c-found-13,CRD servers **SHALL** ensure that CDS Hooks return only messages and information relevant and useful to the intended recipient.,SHALL,CRD Server,,false,,
1148
+ hl7.fhir.us.davinci-crd_2.2.1,found-14,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/foundation.html#ci-c-found-14,"If a CRD server supports [endpoint discovery](http://hl7.org/fhir/us/davinci-hrex/1.2.0/endpoint-discovery.html), they **SHALL** have at most a single endpoint for each coverage (e.g., Medicare, Medicaid, or commercial) they provide coverage under.",SHALL,CRD Server,,true,,
1149
+ hl7.fhir.us.davinci-crd_2.2.1,found-15,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/foundation.html#ci-c-found-15,"If a CRD server does not support endpoint discovery, they **SHALL** expose only one CRD endpoint capable of handling all coverages.",SHALL,CRD Server,,true,,
1150
+ hl7.fhir.us.davinci-crd_2.2.1,found-16,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/foundation.html#ci-c-found-16,"When the connection between a particular client and server has evolved to an automated configuration approach, CRD Clients **SHOULD** perform the discovery process on the CRD server at least once per day to detect any changes to supported hooks, prefetch requirements, and/or configuration options.",SHOULD,CRD Client,,false,,
1151
+ hl7.fhir.us.davinci-crd_2.2.1,found-17,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/foundation.html#ci-c-found-17,"If a CRD client encounters an error when invoking a hook, they **SHOULD** re-run the discovery process before failing.",SHOULD,CRD Client,,true,,
1152
+ hl7.fhir.us.davinci-crd_2.2.1,found-18,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/foundation.html#ci-c-found-18,CRD clients and servers **MAY** leverage the [payer registry](http://hl7.org/fhir/us/davinci-pdex-plan-net) developed by PDex (which will eventually fold into the [national directory under FAST](https://confluence.hl7.org/display/FAST/National+Healthcare+Directory)) as a means of determining which endpoints exist for which payers as candidates for configuration.,MAY,"CRD Client, CRD Server",,false,,
1153
+ hl7.fhir.us.davinci-crd_2.2.1,found-19,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/foundation.html#ci-c-found-19,"Once plans are in the national directory, CRD clients **SHOULD** include that plan identifier to uniquely identify a plan.",SHOULD,CRD Client,,true,,
1154
+ hl7.fhir.us.davinci-crd_2.2.1,found-20,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/foundation.html#ci-c-found-20,"When a CRD client invokes a CRD server via CDS Hooks, it **SHALL** provide an access token that allows the CRD server to retrieve additional patient information.",SHALL,CRD Client,,false,,
1155
+ hl7.fhir.us.davinci-crd_2.2.1,found-21,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/foundation.html#ci-c-found-21,The CRD client **SHALL** limit the scopes provided in their access token as narrowly as feasible to reflect the data requirements identified by the CRD server as necessary to perform their decision support.,SHALL,CRD Client,,false,,
1156
+ hl7.fhir.us.davinci-crd_2.2.1,found-22,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/foundation.html#ci-c-found-22,Such access tokens **SHOULD** have an expiration time of no longer than 30 seconds which should be sufficient for even 'parallel' decision support with something like 'Order Select' where a user continues to work while the decision support call is processing.,SHOULD,CRD Client,,false,,
1157
+ hl7.fhir.us.davinci-crd_2.2.1,found-23,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/foundation.html#ci-c-found-23,CRD Clients **SHALL** be able to parse and execute prefetches that use the simple FHIRPath approach and not fail if that syntax is present.,SHALL,CRD Client,,false,,
1158
+ hl7.fhir.us.davinci-crd_2.2.1,found-24,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/foundation.html#ci-c-found-24,"For this release of the IG, conformant CRD clients and servers **SHALL** support the CDS Hooks prefetch capability.",SHALL,"CRD Client, CRD Server",,false,,
1159
+ hl7.fhir.us.davinci-crd_2.2.1,found-25-A,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/foundation.html#ci-c-found-25,Clients **SHALL** be able to supply the information listed in the bullets above via prefetch for the request resources they support when data exists using the search parameters and FHIRPath expressions covered in the [standard prefetch](https://hl7.org/fhir/us/davinci-crd/2.2.1/en/conformancedetails.html#standard-prefetch) section below. This includes the ability to fetch subsets of the specified queries.,SHALL,CRD Client,,false,,
1160
+ hl7.fhir.us.davinci-crd_2.2.1,found-25-B,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/foundation.html#ci-c-found-25,Clients **SHALL** be able to supply ... subsets of the specified [prefetch] queries.,SHALL,CRD Client,,false,,
1161
+ hl7.fhir.us.davinci-crd_2.2.1,found-26,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/foundation.html#ci-c-found-26,"They **MAY** include more and/or less prefetch requests than described in 'standard' prefetch section below, based on which data is desired.",MAY,CRD Server,,false,,
1162
+ hl7.fhir.us.davinci-crd_2.2.1,found-27,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/foundation.html#ci-c-found-27,Prefetch requests **SHOULD** only include information that is always expected to be needed for each hook invocation.,SHOULD,CRD Server,,false,,
1163
+ hl7.fhir.us.davinci-crd_2.2.1,found-28,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/foundation.html#ci-c-found-28,"When information is only needed for certain invocations of the hook (e.g., for specific types of medications or services), that information **SHOULD** only be retrieved by query using the provided token, not requested universally via prefetch.",SHOULD,CRD Server,,true,,
1164
+ hl7.fhir.us.davinci-crd_2.2.1,found-29,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/foundation.html#ci-c-found-29,Servers **SHALL** use prefetch expressions in the manner described below if those data elements are relevant to their coverage determination or other decision support.,SHALL,CRD Server,,true,,
1165
+ hl7.fhir.us.davinci-crd_2.2.1,found-30,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/foundation.html#ci-c-found-30,CRD client implementations **SHOULD NOT** depend on standardized prefetch key names or a specific ordering of search filters.,SHOULD NOT,CRD Client,,false,,
1166
+ hl7.fhir.us.davinci-crd_2.2.1,found-31,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/foundation.html#ci-c-found-31,CRD clients **SHALL** inspect the CDS Hooks discovery endpoint to determine exact prefetch key names and queries.,SHALL,CRD Client,,false,,
1167
+ hl7.fhir.us.davinci-crd_2.2.1,found-32,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/foundation.html#ci-c-found-32,HTTP 412 responses **SHALL NOT** be used in situations where the prefetch was provided or the query was successfully performed but the record in question did not have all the data the payer might have needed/desired.,SHALL NOT,CRD Server,,false,,
1168
+ hl7.fhir.us.davinci-crd_2.2.1,found-33,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/foundation.html#ci-c-found-33,CRD clients and servers **SHALL** ignore unexpected elements when processing instances.,SHALL,"CRD Client, CRD Server",,false,,
1169
+ hl7.fhir.us.davinci-crd_2.2.1,found-34,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/foundation.html#ci-c-found-34,CRD servers **SHALL** provide what coverage requirements they can based on the information available.,SHALL,CRD Server,,false,,
1170
+ hl7.fhir.us.davinci-crd_2.2.1,found-35-A,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/foundation.html#ci-c-found-35,"In the specific case of order-based hooks, ""what if"" **SHOULD** use the Order Sign hook",SHOULD,CRD Client,,false,,
1171
+ hl7.fhir.us.davinci-crd_2.2.1,found-35-B,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/foundation.html#ci-c-found-35,"In the specific case of order-based hooks, ""what if"" ... **SHALL** pass the [unsolicited-determ](https://hl7.org/fhir/us/davinci-crd/2.2.1/en/ValueSet-cardType.html#expansion) configuration option with a value of 'false' to prevent the return of an unsolicited determination",SHALL,CRD Client,,false,,
1172
+ hl7.fhir.us.davinci-crd_2.2.1,found-35-C,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/foundation.html#ci-c-found-35,"In the specific case of order-based hooks, ""what if"" ... **MAY** use configuration options to prevent the return of other irrelevant types of cards (e.g., duplicate therapy).",MAY,CRD Client,,false,,
1173
+ hl7.fhir.us.davinci-crd_2.2.1,found-36-A,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/foundation.html#ci-c-found-36,"When CRD clients pass resources to a CRD server as part of context, the resources **SHALL** have an 'id'",SHALL,CRD Client,,false,,
1174
+ hl7.fhir.us.davinci-crd_2.2.1,found-36-B,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/foundation.html#ci-c-found-36,"When CRD clients pass resources to a CRD server as part of context, the ... 'id' [of each resource] **SHALL** be usable as a target for references [(in resource ids and Reference elements)] in resources manipulated by CDS Hooks actions and/or by SMART apps.",SHALL,CRD Client,,false,,
1175
+ hl7.fhir.us.davinci-crd_2.2.1,found-37,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/foundation.html#ci-c-found-37,"Therefore, in addition to any logging performed for security purposes, both CRD clients and CRD servers **SHALL** retain logs of all CRD-related hook invocations and their responses for access in the event of a dispute.",SHALL,"CRD Client, CRD Server",,false,,
1176
+ hl7.fhir.us.davinci-crd_2.2.1,found-38,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/foundation.html#ci-c-found-38,Organizations **SHALL** have processes to ensure logs can be accessed by appropriate authorized users to help resolve discrepancies or issues in a timely manner.,SHALL,"CRD Client Organization, CRD Server Organization",,false,,
1177
+ hl7.fhir.us.davinci-crd_2.2.1,found-39,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/foundation.html#ci-c-found-39,CRD clients **SHOULD** ensure that multiple cards with the same advice are handled in a way that will not create a burden on the user.,SHOULD,CRD Client,,false,,
1178
+ hl7.fhir.us.davinci-crd_2.2.1,found-40,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/foundation.html#ci-c-found-40,Conformant systems **SHOULD** omit non-significant whitespace in transmitted instances for performance reasons.,SHOULD,"CRD Client, CRD Server",,false,,
1179
+ hl7.fhir.us.davinci-crd_2.2.1,hook-1,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/hooks.html#ci-c-hook-1,CRD Clients conforming to this implementation guide **SHALL** be able to determine the correct payer CRD server to use for each request.,SHALL,CRD Client,,false,,
1180
+ hl7.fhir.us.davinci-crd_2.2.1,hook-2-A,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/hooks.html#ci-c-hook-2,CRD Clients conforming to this implementation guide **SHALL** support at least one of the hooks,SHALL,CRD Client,,false,,
1181
+ hl7.fhir.us.davinci-crd_2.2.1,hook-2-B,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/hooks.html#ci-c-hook-2,"CRD Clients conforming to this implementation guide **SHALL** support ... (for order-centric hooks), at least one of the order resource types listed below",SHALL,CRD Client,,false,,
1182
+ hl7.fhir.us.davinci-crd_2.2.1,hook-2-C,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/hooks.html#ci-c-hook-2,CRD Clients conforming to this implementation guide … **SHOULD** support all [order resource types listed below] that apply to the context of their system [for order centric hooks].,SHOULD,CRD Client,,false,,
1183
+ hl7.fhir.us.davinci-crd_2.2.1,hook-3,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/hooks.html#ci-c-hook-3,"For systems that support ordering products or services covered by one of the CRD-supported request types, such clients **SHALL** support the order-sign hook for the order types they support.",SHALL,CRD Client,,true,,
1184
+ hl7.fhir.us.davinci-crd_2.2.1,hook-4,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/hooks.html#ci-c-hook-4,CRD Servers conforming to this implementation guide **SHALL** provide a service for all hooks and order resource types required of CRD clients by this implementation guide unless the server has determined that the hook will not be reasonably useful in determining coverage or documentation expectations for the types of coverage provided.,SHALL,CRD Server,,true,,
1185
+ hl7.fhir.us.davinci-crd_2.2.1,hook-5,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/hooks.html#ci-c-hook-5,CRD Clients and CRD Servers **MAY** choose to support additional hooks available in the registry on the [CDS Hooks continuous integration build](https://build.fhir.org/ig/HL7/cds-hooks-library) or custom hooks defined elsewhere.,MAY,"CRD Client, CRD Server",,false,,
1186
+ hl7.fhir.us.davinci-crd_2.2.1,hook-6,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/hooks.html#ci-c-hook-6,"When supporting hooks not covered by this guide, systems **SHOULD** adhere to the general conformance expectations defined in this specification for those additional hooks.",SHOULD,"CRD Client, CRD Server",,true,,
1187
+ hl7.fhir.us.davinci-crd_2.2.1,hook-7,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/hooks.html#ci-c-hook-7,CRD clients **SHALL** allow hook invocation to occur transparently as part of user workflow.,SHALL,CRD Client,,false,,
1188
+ hl7.fhir.us.davinci-crd_2.2.1,hook-8,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/hooks.html#ci-c-hook-8,"CRD clients **SHALL NOT** require transcription of order, appointment, or other data into a separate interface distinct from regular provider workflow unless performing ""what if"" situations.",SHALL NOT,CRD Client,,true,,
1189
+ hl7.fhir.us.davinci-crd_2.2.1,hook-9,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/hooks.html#ci-c-hook-9,"If the CRD Server encounters an error when processing the request, the system **SHALL** return an appropriate error HTTP Response Code, starting with the digit ""4"" or ""5"", indicating that there was an error.",SHALL,CRD Server,,true,,
1190
+ hl7.fhir.us.davinci-crd_2.2.1,hook-10,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/hooks.html#ci-c-hook-10,"If an issue is identified at a layer of the CRD Server that is FHIR aware (e.g. not a ""wrong endpoint"" or ""not authorized"" issue), the server **SHALL** provide an OperationOutcome for internal issue tracking by the client system.",SHALL,CRD Server,,true,,
1191
+ hl7.fhir.us.davinci-crd_2.2.1,hook-11,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/hooks.html#ci-c-hook-11,The CRD Client **MAY** display to the user that the Coverage Requirements Discovery Service is unavailable.,MAY,CRD Client,,false,,
1192
+ hl7.fhir.us.davinci-crd_2.2.1,hook-12,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/hooks.html#ci-c-hook-12,"If additional information (e.g. number to call) is available, it **MAY** also be included in the message to the user.",MAY,CRD Client,,true,,
1193
+ hl7.fhir.us.davinci-crd_2.2.1,hook-13,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/hooks.html#ci-c-hook-13,CRD Servers SHALL use the 400 and 422 codes in a manner consistent with the FHIR RESTful Create Action,SHALL,CRD Server,,false,,
1194
+ hl7.fhir.us.davinci-crd_2.2.1,hook-14,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/hooks.html#ci-c-hook-14,"If a CRD server's validation process does not differentiate between validation issues stemming from the JSON syntax validation, FHIR core validation, CDS Hooks validation, and CRD-specific validation, it **MAY** treat all validation rules as 400 errors.",MAY,CRD Server,,true,,
1195
+ hl7.fhir.us.davinci-crd_2.2.1,hook-15,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/hooks.html#ci-c-hook-15,A CRD client **MAY** opt to re-invoke a CRD hook either due to manual user intervention or automatically in the background if there is a reason to believe that a substantive change in the patient's record and/or coverage might produce a different CRD response.,MAY,CRD Client,,true,,
1196
+ hl7.fhir.us.davinci-crd_2.2.1,hook-16,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/hooks.html#ci-c-hook-16,"Unless reporting an error or coverage information already exists and there is no new information, CRD Servers **SHALL** include a Coverage Information system action in the response for 'primary' hooks, even if the response indicates that further information is needed or that the level of detail provided is insufficient to determine coverage.",SHALL,CRD Server,,false,,
1197
+ hl7.fhir.us.davinci-crd_2.2.1,hook-17,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/hooks.html#ci-c-hook-17,"These hooks **MAY** return cards or system actions, but are not expected to, and CRD clients are free to ignore any cards or actions returned.",MAY,CRD Client,,false,,
1198
+ hl7.fhir.us.davinci-crd_2.2.1,hook-18,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/hooks.html#ci-c-hook-18,CRD clients **SHOULD** use the [configuration options](https://hl7.org/fhir/us/davinci-crd/2.2.1/en/deviations.html#new-hook-configuration-mechanism) to instruct CRD servers to not even try to return responses if the client does not intend to display/process them.,SHOULD,CRD Client,,true,,
1199
+ hl7.fhir.us.davinci-crd_2.2.1,hook-19,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/hooks.html#ci-c-hook-19,"If Coverage Information is returned for these hooks, it **SHALL NOT** include messages indicating a need for [clinical](https://hl7.org/fhir/us/davinci-crd/2.2.1/en/ValueSet-AdditionalDocumentation.html) or [administrative](https://hl7.org/fhir/us/davinci-crd/2.2.1/en/ValueSet-AdditionalDocumentation.html) information, as such information is expected to be made available later in the process and therefore such guidance is not useful.",SHALL NOT,CRD Server,,true,,
1200
+ hl7.fhir.us.davinci-crd_2.2.1,hook-20,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/hooks.html#ci-c-hook-20,"The body of hook invocations **SHALL** conform to the [CRD CDSHooks Request logical model. Additionally, profiles are provided in a table for the hook sections below.",SHALL,CRD Client,,false,,
1201
+ hl7.fhir.us.davinci-crd_2.2.1,hook-21,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/hooks.html#ci-c-hook-21,CRD clients **SHALL** ensure that data included in the hook invocation complies with the listed profiles.,SHALL,CRD Client,,false,,
1202
+ hl7.fhir.us.davinci-crd_2.2.1,hook-22,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/hooks.html#ci-c-hook-22,CRD servers **SHALL NOT** depend on data not covered by the identified profiles in order to return valid coverage-information responses.,SHALL NOT,CRD Server,,false,,
1203
+ hl7.fhir.us.davinci-crd_2.2.1,hook-23,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/hooks.html#ci-c-hook-23,CRD Servers **SHALL** handle unrecognized context elements by ignoring them.,SHALL,CRD Server,,false,,
1204
+ hl7.fhir.us.davinci-crd_2.2.1,hook-24,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/hooks.html#ci-c-hook-24,The 'context' field in invocations of the appointment-book hook **SHALL** conform to the logical model specified [here](https://hl7.org/fhir/us/davinci-crd/2.2.1/en/StructureDefinition-CRDAppointmentBookContext.html),SHALL,CRD Client,,true,,
1205
+ hl7.fhir.us.davinci-crd_2.2.1,hook-25,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/hooks.html#ci-c-hook-25,CRD Servers **MAY** use the appointment-book hook as a basis for associating a patient with a particular practitioner from a payer attribution perspective.,MAY,CRD Server,,false,,
1206
+ hl7.fhir.us.davinci-crd_2.2.1,hook-26,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/hooks.html#ci-c-hook-26,"CRD clients and servers **SHALL**, at minimum, support returning and processing the [Coverage Information](https://hl7.org/fhir/us/davinci-crd/2.2.1/en/StructureDefinition-ext-coverage-information.html) system action for all invocations of the appointment-book hook.",SHALL,"CRD Client, CRD Server",,false,,
1207
+ hl7.fhir.us.davinci-crd_2.2.1,hook-27,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/hooks.html#ci-c-hook-27,The 'context' field in invocations of the encounter-start hook **SHALL** conform to the logical model specified [here](http://hl7.org/fhir/tools/1.1.2/StructureDefinition-CDSHookEncounterStartContext.html),SHALL,CRD Client,,true,,
1208
+ hl7.fhir.us.davinci-crd_2.2.1,hook-28,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/hooks.html#ci-c-hook-28,CRD Servers **MAY** use the encounter-start hook as a basis for associating a patient with a particular practitioner from a payer attribution perspective.,MAY,CRD Server,,false,,
1209
+ hl7.fhir.us.davinci-crd_2.2.1,hook-29,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/hooks.html#ci-c-hook-29,The 'context' field in invocations of the encounter-discharge hook **SHALL** conform to the logical model specified [here](http://hl7.org/fhir/tools/1.1.2/StructureDefinition-CDSHookEncounterDischargeContext.html),SHALL,CRD Client,,true,,
1210
+ hl7.fhir.us.davinci-crd_2.2.1,hook-30,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/hooks.html#ci-c-hook-30,"Coverage requirements **SHOULD** be limited only to those resources that are included in the `dispatchedOrders` context, though the content of other resources **SHOULD** also be considered before making recommendations about what additional actions are necessary.",SHOULD,CRD Server,,false,,
1211
+ hl7.fhir.us.davinci-crd_2.2.1,hook-31,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/hooks.html#ci-c-hook-31,The 'context' field in invocations of the order-dispatch hook **SHALL** conform to the logical model specified [here](https://hl7.org/fhir/us/davinci-crd/2.2.1/en/StructureDefinition-CRDOrderDispatchContext.html),SHALL,CRD Client,,true,,
1212
+ hl7.fhir.us.davinci-crd_2.2.1,hook-32,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/hooks.html#ci-c-hook-32,CRD Servers **MAY** use the order-dispatch hook as a basis for associating a patient with a particular practitioner from a payer attribution perspective.,MAY,CRD Server,,false,,
1213
+ hl7.fhir.us.davinci-crd_2.2.1,hook-33,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/hooks.html#ci-c-hook-33,"CRD clients and servers **SHALL**, at minimum, support returning and processing the [Coverage Information](https://hl7.org/fhir/us/davinci-crd/2.2.1/en/StructureDefinition-ext-coverage-information.html) system action for all invocations of the order-dispatch hook.",SHALL,"CRD Client, CRD Server",,false,,
1214
+ hl7.fhir.us.davinci-crd_2.2.1,hook-34,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/hooks.html#ci-c-hook-34,"Coverage requirements **SHOULD** be limited only to those resources that are included in the `selections` context, though the content of other resources **SHOULD** also be considered before making recommendations about what additional actions are necessary.",SHOULD,CRD Server,,false,,
1215
+ hl7.fhir.us.davinci-crd_2.2.1,hook-35,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/hooks.html#ci-c-hook-35,The 'context' field in invocations of the order-select hook **SHALL** conform to the logical model specified [here](https://hl7.org/fhir/us/davinci-crd/2.2.1/en/StructureDefinition-CRDOrderSelectContext.html),SHALL,CRD Client,,true,,
1216
+ hl7.fhir.us.davinci-crd_2.2.1,hook-36,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/hooks.html#ci-c-hook-36,"Where CRD Clients have an appropriate workflow and data capture mechanism, the order-select hook **MAY** be used in scenarios that do not involve creating a true order.",MAY,CRD Client,,true,,
1217
+ hl7.fhir.us.davinci-crd_2.2.1,hook-37,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/hooks.html#ci-c-hook-37,The 'context' field in invocations of the order-sign hook **SHALL** conform to the logical model specified [here](https://hl7.org/fhir/us/davinci-crd/2.2.1/en/StructureDefinition-CRDOrderSignContext.html),SHALL,CRD Client,,true,,
1218
+ hl7.fhir.us.davinci-crd_2.2.1,hook-38,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/hooks.html#ci-c-hook-38,CRD Servers **MAY** use the order-sign hook as a basis for associating a patient with a particular practitioner from a payer attribution perspective.,MAY,CRD Server,,false,,
1219
+ hl7.fhir.us.davinci-crd_2.2.1,hook-39,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/hooks.html#ci-c-hook-39,"CRD clients and servers **SHALL**, at minimum, support returning and processing the [Coverage Information](https://hl7.org/fhir/us/davinci-crd/2.2.1/en/StructureDefinition-ext-coverage-information.html) system action for all invocations of the order-select hook.",SHALL,"CRD Client, CRD Server",,false,,
1220
+ hl7.fhir.us.davinci-crd_2.2.1,impl-1,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/implementation.html#ci-c-impl-1,Clients that suppress 'default presumption' coverage-information of messages **SHALL** mitigate the potential for misinterpretation in the event CRD is unavailable.,SHALL,CRD Client,,false,,
1221
+ hl7.fhir.us.davinci-crd_2.2.1,impl-2,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/implementation.html#ci-c-impl-2,CRD servers **SHOULD** strive to achieve a minimum of 3-9s availability for their services and strive to provide at least some level of useful response to CRD clients even if some of their back-end systems are unavailable.,SHOULD,CRD Server,,false,,
1222
+ hl7.fhir.us.davinci-crd_2.2.1,impl-3,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/implementation.html#ci-c-impl-3,"Even if implemented using multiple components, there is still a requirement that the exchanges between the provider HIT (including any ePA coordinators) and the payer HIT (including any ePA coordinators) **SHALL** replicate all of the defined exchanges between provider and payer.",SHALL,"CRD Client, CRD Server",,false,,
1223
+ hl7.fhir.us.davinci-crd_2.2.1,impl-4,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/implementation.html#ci-c-impl-4,"In situations where CRD clients are aware of the likely billing codes at the time of ordering, they **MAY** send these codes as additional CodeableConcept.coding repetitions to assist in server processing.",MAY,CRD Client,,true,,
1224
+ hl7.fhir.us.davinci-crd_2.2.1,impl-5,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/implementation.html#ci-c-impl-5,"Where a CRD server has made inferences beyond what is explicit in the CRD request, the response **SHOULD** make clear what assumptions around billing codes, in/out-of-network, delivery location were made in providing the response.",SHOULD,CRD Server,,false,,
1225
+ hl7.fhir.us.davinci-crd_2.2.1,metric-1,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/metrics.html#ci-c-metric-1,"Each of these IGs recommends a set of metrics that **SHOULD** or **MAY** be collected by their respective implementations to facilitate the evaluation of adoption, functionality, processes, and improved outcomes.",SHOULD,"CRD Client, CRD Server",,false,,
1226
+ hl7.fhir.us.davinci-crd_2.2.1,ops-1,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/operational.html#ci-c-ops-1,"CRD clients and servers **SHOULD** support encounter-start and order-select, both to allow payer caching and to allow payers to return useful responses when possible (e.g. coverage expired, service not covered) with the limited information available in those hooks.",SHOULD,"CRD Client, CRD Server",,false,,
1227
+ hl7.fhir.us.davinci-crd_2.2.1,prof-1,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/StructureDefinition-profile-appointment-no-order.html#ci-c-prof-1,CRD Clients **SHALL** use either this Appointment without Order profile and/or the [with-order](https://hl7.org/fhir/us/davinci-crd/2.2.1/en/StructureDefinition-profile-appointment-with-order.html) to provide `appointments` context objects to CRD Servers when invoking the [appointment-book](https://hl7.org/fhir/us/davinci-crd/2.2.1/en/hooks.html#appointment-book) hook as well as to [resolve other references](https://hl7.org/fhir/us/davinci-crd/2.2.1/en/foundation.html#additional-data-retrieval) to Appointment resources.,SHALL,CRD Client,,false,,
1228
+ hl7.fhir.us.davinci-crd_2.2.1,prof-2,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/StructureDefinition-profile-appointment-with-order.html#ci-c-prof-2,CRD Clients **SHALL** use either this Appointment with Order and/or the [no-order](https://hl7.org/fhir/us/davinci-crd/2.2.1/en/StructureDefinition-profile-appointment-no-order.html) to provide `appointments` context objects to CRD Servers when invoking the [appointment-book](https://hl7.org/fhir/us/davinci-crd/2.2.1/en/hooks.html#appointment-book) hook as well as to [resolve other references](https://hl7.org/fhir/us/davinci-crd/2.2.1/en/foundation.html#additional-data-retrieval) to Appointment resources.,SHALL,CRD Client,,false,,
1229
+ hl7.fhir.us.davinci-crd_2.2.1,prof-3,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/StructureDefinition-profile-communicationrequest.html#ci-c-prof-3,CRD Clients SHALL use the CRD CommunicationRequest profile to resolve references to CommunicationRequest resources passed to CRD Servers (e.g. selections context references) and to populate draftOrders context objects.,SHALL,CRD Client,,false,,
1230
+ hl7.fhir.us.davinci-crd_2.2.1,prof-4,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/StructureDefinition-profile-coverage.html#ci-c-prof-4,CRD Clients **SHALL** use the CRD Coverage profile to [resolve references](https://hl7.org/fhir/us/davinci-crd/2.2.1/en/foundation.html#additional-data-retrieval) to insurance Coverage resources passed to CRD Servers.,SHALL,CRD Client,,false,,
1231
+ hl7.fhir.us.davinci-crd_2.2.1,prof-5,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/StructureDefinition-profile-device.html#ci-c-prof-5,CRD Clients **SHALL** use the CRD Device profile to [resolve references](https://hl7.org/fhir/us/davinci-crd/2.2.1/en/foundation.html#additional-data-retrieval) to Device resources passed to CRD Servers.,SHALL,CRD Client,,false,,
1232
+ hl7.fhir.us.davinci-crd_2.2.1,prof-6,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/StructureDefinition-profile-devicerequest.html#ci-c-prof-6,CRD Clients SHALL use the CRD DeviceRequest profile to resolve references to DeviceRequest resources passed to CRD Servers (e.g. selections context references) and to populate draftOrders context objects.,SHALL,CRD Client,,false,,
1233
+ hl7.fhir.us.davinci-crd_2.2.1,prof-7,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/StructureDefinition-profile-encounter.html#ci-c-prof-7,"CRD Clients SHALL use the CRD Encounter profile to resolve references to Encounter resources passed to CRD Servers, including encounterId context references.",SHALL,CRD Client,,false,,
1234
+ hl7.fhir.us.davinci-crd_2.2.1,prof-8,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/StructureDefinition-profile-location.html#ci-c-prof-8,CRD Clients **SHALL** use the CRD Location profile to [resolve references](https://hl7.org/fhir/us/davinci-crd/2.2.1/en/foundation.html#additional-data-retrieval) to insurance Location resources passed to CRD Servers.,SHALL,CRD Client,,false,,
1235
+ hl7.fhir.us.davinci-crd_2.2.1,prof-9,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/StructureDefinition-profile-medicationrequest.html#ci-c-prof-9,CRD Clients SHALL use the CRD MedicationRequest profile to resolve references to MedicationRequest resources passed to CRD Servers (e.g. selections context references) and to populate draftOrders context objects,SHALL,CRD Client,,false,,
1236
+ hl7.fhir.us.davinci-crd_2.2.1,prof-10,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/StructureDefinition-profile-nutritionorder.html#ci-c-prof-10,CRD Clients SHALL use CRD NutritionOrder profile to resolve references to NutritionOrder resources passed to CRD Servers (e.g. selections context references) and to populate draftOrders context objects.,SHALL,CRD Client,,false,,
1237
+ hl7.fhir.us.davinci-crd_2.2.1,prof-11,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/StructureDefinition-profile-servicerequest.html#ci-c-prof-11,CRD Clients SHALL use the CRD ServiceRequest profile to resolve references to ServiceRequest resources passed to CRD Servers (e.g. selections context references) and to populate draftOrders context objects.,SHALL,CRD Client,,false,,
1238
+ hl7.fhir.us.davinci-crd_2.2.1,prof-12,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/StructureDefinition-profile-visionprescription.html#ci-c-prof-12,CRD Clients SHALL use the CRD VisionPrescription profile to resolve references to VisionPrescription resources passed to CRD Servers (e.g. selections context references) and to populate draftOrders context objects.,SHALL,CRD Client,,false,,
1239
+ hl7.fhir.us.davinci-crd_2.2.1,prof-13,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/StructureDefinition-profile-location.html#ci-c-prof-13,"If a Location is a fine-grained location such as a bed or room, the address **SHALL** be propagated from the higher-level location it is part of.",SHALL,CRD Client,,true,,
1240
+ hl7.fhir.us.davinci-crd_2.2.1,prof-14,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/StructureDefinition-profile-medicationrequest.html#ci-c-prof-14,"While the codes for the medication are expected to be drawn from RxNorm, EHRs **MAY** send additional coding repetions to communicate other code systems (e.g. HCPCS J codes).",MAY,CRD Client,,false,,
1241
+ hl7.fhir.us.davinci-crd_2.2.1,prof-15,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/ValueSet-coverageAssertionReasons.html#ci-c-prof-15,CRD servers **SHOULD** start sending the ActReason codes in parallel with the CRD-specific codes once they are available to ease transition in future releases when the CRD value set will be deprecated and eventually retired.,SHOULD,CRD Server,,false,,
1242
+ hl7.fhir.us.davinci-crd_2.2.1,resp-1,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/cards.html#ci-c-resp-1,"The `Card.indicator` **SHOULD** be populated from the perspective of the clinical decision maker, not the payer",SHOULD,CRD Server,,false,,
1243
+ hl7.fhir.us.davinci-crd_2.2.1,resp-2,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/cards.html#ci-c-resp-2,Most Coverage Requirements **SHOULD** be marked as 'info'.,SHOULD,CRD Server,,false,,
1244
+ hl7.fhir.us.davinci-crd_2.2.1,resp-3,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/cards.html#ci-c-resp-3,All `Card.suggestion` elements **SHALL** populate the Suggestion.uuid element.,SHALL,CRD Server,,false,,
1245
+ hl7.fhir.us.davinci-crd_2.2.1,resp-4,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/cards.html#ci-c-resp-4,"The `Card.source.label` **SHALL** be populated with an insurer name that the user and patient are likely to recognize (i.e., the responsible insurer on the patient's insurance card), including in situations where coverage recommendations are being returned by a benefits manager or intermediary operating the CRD server on behalf of the payer.",SHALL,CRD Server,,false,,
1246
+ hl7.fhir.us.davinci-crd_2.2.1,resp-5,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/cards.html#ci-c-resp-5,"`Card.source.topic` **SHALL** be populated, and has an [extensible](http://www.hl7.org/fhir/terminologies.html#extensible) binding to the ValueSet [CRD Response Types](https://hl7.org/fhir/us/davinci-crd/2.2.1/en/ValueSet-cardType.html).",SHALL,CRD Server,,false,,
1247
+ hl7.fhir.us.davinci-crd_2.2.1,resp-6,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/cards.html#ci-c-resp-6,`Card.summary` **SHOULD** provide actionable information.,SHOULD,CRD Server,,false,,
1248
+ hl7.fhir.us.davinci-crd_2.2.1,resp-7,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/cards.html#ci-c-resp-7,`Card.detail` and/or external links **SHOULD** only be provided when coverage recommendations cannot be clearly provided in the 140-character limit of `Card.summary`.,SHOULD,CRD Server,,false,,
1249
+ hl7.fhir.us.davinci-crd_2.2.1,resp-8,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/cards.html#ci-c-resp-8,"`Card.detail` **SHOULD** provide graduated information, with critical information being provided in the first paragraph and less critical information towards the end of the page.",SHOULD,CRD Server,,false,,
1250
+ hl7.fhir.us.davinci-crd_2.2.1,resp-9,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/cards.html#ci-c-resp-9,"`Card.detail` **SHOULD** provide enough context that a user can determine whether it is worth their time to launch an app or follow an external link, ideally providing a sense of where to look for and how to use whatever link or app they launch in the specific context of the order they are making.",SHOULD,CRD Server,,false,,
1251
+ hl7.fhir.us.davinci-crd_2.2.1,resp-10,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/cards.html#ci-c-resp-10,"While links are permitted in the markdown content of `Card.detail`, support for this is not universal, so links **SHOULD** also be provided in `[Card.link](http://Card.link)`.",SHOULD,CRD Server,,false,,
1252
+ hl7.fhir.us.davinci-crd_2.2.1,resp-11,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/cards.html#ci-c-resp-11,"CRD client systems might not support all card capabilities, therefore card options **SHOULD** provide sufficient information for a user to perform record changes manually if automated support is not available.",SHOULD,CRD Server,,false,,
1253
+ hl7.fhir.us.davinci-crd_2.2.1,resp-12,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/cards.html#ci-c-resp-12,"Where [systemActions](http://cds-hooks.hl7.org/2026Jan/index.html#system-action) are used, CRD servers **SHOULD NOT** return equivalent information in a card for user display.",SHOULD NOT,CRD Server,,true,,
1254
+ hl7.fhir.us.davinci-crd_2.2.1,resp-13,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/cards.html#ci-c-resp-13,All CRD responses **SHALL** comply with the general profile found [here](https://hl7.org/fhir/us/davinci-crd/2.2.1/en/StructureDefinition-CRDHooksResponseBase.html).,SHALL,CRD Server,,false,,
1255
+ hl7.fhir.us.davinci-crd_2.2.1,resp-14,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/cards.html#ci-c-resp-14,Conformant CRD clients and services **SHALL** support the [Coverage Information](https://hl7.org/fhir/us/davinci-crd/2.2.1/en/conformancedetails.html#coverage-information-response-type) response type.,SHALL,"CRD Client, CRD Server",,false,,
1256
+ hl7.fhir.us.davinci-crd_2.2.1,resp-15,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/cards.html#ci-c-resp-15,Conformant CRD clients and services **SHOULD** support the additional (non-coverage information) types defined by this guide.,SHOULD,"CRD Client, CRD Server",,false,,
1257
+ hl7.fhir.us.davinci-crd_2.2.1,resp-16,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/cards.html#ci-c-resp-16,CRD servers that provide decision support for domains outside of coverage and/or documentation requirements **SHOULD** take reasonable steps to check that the CRD client does not have the information within its store that would allow it to detect the issue itself.,SHOULD,CRD Server,,true,,
1258
+ hl7.fhir.us.davinci-crd_2.2.1,resp-17,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/cards.html#ci-c-resp-17,"CRD servers **SHALL NOT** use ""External Reference"" cards to direct users to a portal for the purpose of initiating prior authorization or determining coverage.",SHALL NOT,CRD Server,,false,,
1259
+ hl7.fhir.us.davinci-crd_2.2.1,resp-18,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/cards.html#ci-c-resp-18,The card **SHALL** have at least one `[Card.link](http://Card.link)`.,SHALL,CRD Server,,false,,
1260
+ hl7.fhir.us.davinci-crd_2.2.1,resp-19,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/cards.html#ci-c-resp-19,"The `Link.type` **SHALL** have a type of ""absolute"".",SHALL,CRD Server,,false,,
1261
+ hl7.fhir.us.davinci-crd_2.2.1,resp-20,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/cards.html#ci-c-resp-20,"When reasonable, an ""External Reference"" card **SHOULD** contain a summary of the actionable information from the external reference in the `detail` element.",SHOULD,CRD Server,,true,,
1262
+ hl7.fhir.us.davinci-crd_2.2.1,resp-21,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/cards.html#ci-c-resp-21,"As much as technically possible, links provided **SHOULD** be 'deep' links that take the user to the specific place in the documentation relevant to the current hook context to minimize provider reading and navigation time.",SHOULD,CRD Server,,true,,
1263
+ hl7.fhir.us.davinci-crd_2.2.1,resp-22,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/cards.html#ci-c-resp-22,External Reference responses **SHALL** comply with the logical model profile found [here](https://hl7.org/fhir/us/davinci-crd/2.2.1/en/StructureDefinition-CRDHooksResponse-externalReference.html).,SHALL,CRD Server,,false,,
1264
+ hl7.fhir.us.davinci-crd_2.2.1,resp-23,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/cards.html#ci-c-resp-23,CRD servers **SHALL NOT** use Instructions Response cards to direct users to a portal for the purpose of initiating prior authorization or determining coverage. Use the [Coverage Information](https://hl7.org/fhir/us/davinci-crd/2.2.1/en/conformancedetails.html#coverage-information-response-type) response instead.,SHALL NOT,CRD Server,,false,,
1265
+ hl7.fhir.us.davinci-crd_2.2.1,resp-24,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/cards.html#ci-c-resp-24,Instructions responses **SHALL** comply with the logical model profile found [here](https://hl7.org/fhir/us/davinci-crd/2.2.1/en/StructureDefinition-CRDHooksResponse-instructions.html).,SHALL,CRD Server,,false,,
1266
+ hl7.fhir.us.davinci-crd_2.2.1,resp-25,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/cards.html#ci-c-resp-25,"Regardless of the content, this ""Coverage Information"" response type **SHALL NOT** use a card.",SHALL NOT,CRD Server,,false,,
1267
+ hl7.fhir.us.davinci-crd_2.2.1,resp-26,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/cards.html#ci-c-resp-26,"CRD servers **SHALL** support supplying coverage information for all primary hooks: order-sign, order-dispatch, and appointment-book.",SHALL,CRD Server,,false,,
1268
+ hl7.fhir.us.davinci-crd_2.2.1,resp-27,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/cards.html#ci-c-resp-27,CRD servers **MAY** support supplying coverage information for all other (non-primary) hooks.,MAY,CRD Server,,false,,
1269
+ hl7.fhir.us.davinci-crd_2.2.1,resp-28,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/cards.html#ci-c-resp-28,CRD servers **SHALL** supply coverage information for all hooks where they support it unless the EHR sends a configuration option asking them not to.,SHALL,CRD Server,,true,,
1270
+ hl7.fhir.us.davinci-crd_2.2.1,resp-29,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/cards.html#ci-c-resp-29,"If coverage information is evaluated, a system action **SHALL** be returned for each in-scope request resource unless that request resource already has a coverage-information extension, and the CRD server has no new information to add.",SHALL,CRD Server,,true,,
1271
+ hl7.fhir.us.davinci-crd_2.2.1,resp-30,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/cards.html#ci-c-resp-30,Such qualifiers around when the coverage assertion is considered valid **SHALL** be included as part of the annotation.,SHALL,CRD Server,,false,,
1272
+ hl7.fhir.us.davinci-crd_2.2.1,resp-31,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/cards.html#ci-c-resp-31,"If a CRD client submits a claim related to an order for which it has received a coverage-information extension for the coverage type associated with the claim, that claim **SHALL** include the `coverage-assertion-id` in the form of a FHIR ServiceRequest or other Request resource with an embedded coverage-information extension as an attachment to the X12 837 submission and, if applicable, the satisfied-pa-id in the X12 837 REF-Prior Authorization segment.",SHALL,CRD Client,,true,,
1273
+ hl7.fhir.us.davinci-crd_2.2.1,resp-32,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/cards.html#ci-c-resp-32,"If multiple extension repetitions of the coverage-information extension are present, all repetitions referencing differing insurance (coverage-information.coverage) **SHALL** have distinct coverage-assertion-ids and satisfied-pa-ids, if present.",SHALL,CRD Server,,true,,
1274
+ hl7.fhir.us.davinci-crd_2.2.1,resp-33,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/cards.html#ci-c-resp-33,"Where multiple repetitions apply to the same coverage, they **MAY** have the same coverage-assertion-ids and satisfied-pa-ids (if present).",MAY,CRD Server,,true,,
1275
+ hl7.fhir.us.davinci-crd_2.2.1,resp-34,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/cards.html#ci-c-resp-34,Systems **MAY** make CRD calls to servers related to orders even if there is already a coverage assertion recorded on the order.,MAY,CRD Client,,false,,
1276
+ hl7.fhir.us.davinci-crd_2.2.1,resp-35,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/cards.html#ci-c-resp-35,"However, CRD servers **SHALL NOT** send a `systemAction` to update the order unless something is new or changed.",SHALL NOT,CRD Server,,false,,
1277
+ hl7.fhir.us.davinci-crd_2.2.1,resp-36,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/cards.html#ci-c-resp-36,CRD servers **SHOULD** take into account the previous decision in deciding how much processing is necessary before returning a response.,SHOULD,CRD Server,,false,,
1278
+ hl7.fhir.us.davinci-crd_2.2.1,resp-37,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/cards.html#ci-c-resp-37,"When returning a `systemAction` to update a resource with the ""Coverage Information"" response type, the resource content **SHALL NOT** make changes to any data elements other than adding or modifying coverage-information extensions.",SHALL NOT,CRD Server,,true,,
1279
+ hl7.fhir.us.davinci-crd_2.2.1,resp-38,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/cards.html#ci-c-resp-38,"If a *coverage-information* extension indicates the need to collect additional information (via 'doc-needed'), the extension **SHOULD** include a reference to the questionnaire(s) to be completed.",SHOULD,CRD Server,,true,,
1280
+ hl7.fhir.us.davinci-crd_2.2.1,resp-39,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/cards.html#ci-c-resp-39,CRD Servers **SHOULD** access information via the FHIR Rest API as part of CRD and only fall back to data capture via DTR when computable access is not possible.,SHOULD,CRD Server,,false,,
1281
+ hl7.fhir.us.davinci-crd_2.2.1,resp-40,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/cards.html#ci-c-resp-40,"When a *coverage-information* response type indicates that additional clinical or patient documentation is needed and the CRD client supports DTR, CRD clients **SHALL** ensure that clinical users have an opportunity to launch their DTR solution as part of the current workflow.",SHALL,CRD Client,,true,,
1282
+ hl7.fhir.us.davinci-crd_2.2.1,resp-41,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/cards.html#ci-c-resp-41,CRD clients **SHOULD** allow clinical users to have an opportunity to launch their DTR solution but **SHOULD** make it clear that the information to be captured is non-clinical.,SHOULD,CRD Client,,false,,
1283
+ hl7.fhir.us.davinci-crd_2.2.1,resp-42,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/cards.html#ci-c-resp-42,The CRD server **SHOULD** either prompt for the additional needed information using DTR or return a coverage-information extension indicating that the patient is not covered with a reason indicating the issue (e.g. the member could not be found/resolved).,SHOULD,CRD Server,,false,,
1284
+ hl7.fhir.us.davinci-crd_2.2.1,resp-43,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/cards.html#ci-c-resp-43,"If the CRD server encounters technical issues that prevent it from determining a coverage, prior auth, or documentation requirement response (e.g. due to internal communication issues, authorization failure, temporary unavailability of the CRD client's FHIR API, etc.), it **SHALL** indicate ""indeterminate"" in the appropriate element with a reason code of [technical](https://hl7.org/fhir/us/davinci-crd/2.2.1/en/ValueSet-coverageAssertionReasons.html#logical-definition-cld) and additional details in the reason.text.",SHALL,CRD Server,,true,,
1285
+ hl7.fhir.us.davinci-crd_2.2.1,resp-44,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/cards.html#ci-c-resp-44,"If the CRD server is unable to resolve the patient for a reason other than technology failure, the Coverage Information **SHALL** indicate ""not-covered"" in 'coverage' with a reason code of [no-member-found](https://hl7.org/fhir/us/davinci-crd/2.2.1/en/ValueSet-coverageAssertionReasons.html#logical-definition-cld).",SHALL,CRD Server,,true,,
1286
+ hl7.fhir.us.davinci-crd_2.2.1,resp-45,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/cards.html#ci-c-resp-45,"If the CRD server is able to resolve the patient but they do not have active coverage or cannot resolve to a single coverage, the Coverage Information **SHALL** indicate ""not-covered"" with a reason of either [coverage-not-found](https://hl7.org/fhir/us/davinci-crd/2.2.1/en/ValueSet-coverageAssertionReasons.html#logical-definition-cld) or [no-active-coverage](https://hl7.org/fhir/us/davinci-crd/2.2.1/en/ValueSet-coverageAssertionReasons.html#logical-definition-cld), as appropriate.",SHALL,CRD Server,,true,,
1287
+ hl7.fhir.us.davinci-crd_2.2.1,resp-46,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/cards.html#ci-c-resp-46,"If a system action containing a coverage-information extension is returned, the CRD client **SHALL** retain that coverage-information extension and expose it as part of the Request resource in all subsequent communications with that payer, including communications made using DTR and PAS.",SHALL,CRD Client,,true,,
1288
+ hl7.fhir.us.davinci-crd_2.2.1,resp-47,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/cards.html#ci-c-resp-47,"When using the ""Coverage Information"" response type, the proposed order or appointment being submitted for update SHALL comply with the required profiles",SHALL,CRD Server,,false,,
1289
+ hl7.fhir.us.davinci-crd_2.2.1,resp-48,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/cards.html#ci-c-resp-48,"CRD clients and servers **SHALL** support the new CDS Hooks system action functionality to cause annotations to automatically be stored on the relevant request, appointment, etc. without any user intervention.",SHALL,"CRD Client, CRD Server",,false,,
1290
+ hl7.fhir.us.davinci-crd_2.2.1,resp-49,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/cards.html#ci-c-resp-49,"In this case, the discrete information propagated into the order extension **SHALL** be available to the user for viewing. However, this might be managed with icons, flyovers, or alternate mechanisms than traditional CDS Hooks card rendering.",SHALL,CRD Client,,false,,
1291
+ hl7.fhir.us.davinci-crd_2.2.1,resp-50,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/cards.html#ci-c-resp-50,"CRD clients **MAY** be configured to not execute system actions under some circumstances, for example if the order has been cancelled or abandoned.",MAY,CRD Client,,false,,
1292
+ hl7.fhir.us.davinci-crd_2.2.1,resp-51,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/cards.html#ci-c-resp-51,"Where CRD servers need data that was not transmitted, they **SHOULD** attempt to infer values from elements that are present.",SHOULD,CRD Server,,false,,
1293
+ hl7.fhir.us.davinci-crd_2.2.1,resp-52,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/cards.html#ci-c-resp-52,Coverage Information responses **SHALL** comply with the logical model profile found [here](https://hl7.org/fhir/us/davinci-crd/2.2.1/en/StructureDefinition-CRDHooksResponse-coverageInformation.html).,SHALL,CRD Server,,false,,
1294
+ hl7.fhir.us.davinci-crd_2.2.1,resp-53,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/cards.html#ci-c-resp-53,"Each suggestion **SHOULD** contain either a single ""update"" action to revise the existing proposed order; or a ""delete"" action for the current proposed order and a ""create"" action for the new proposed order.",SHOULD,CRD Server,,false,,
1295
+ hl7.fhir.us.davinci-crd_2.2.1,resp-54,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/cards.html#ci-c-resp-54,"The choice of ""update"" vs. ""delete + create"" **SHOULD** be based on how significant the change is and how relevant the other decision support on the original request will still be.",SHOULD,CRD Server,,false,,
1296
+ hl7.fhir.us.davinci-crd_2.2.1,resp-55,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/cards.html#ci-c-resp-55,"When using the ""Propose Alternate Request"" response type, the proposed orders (and any associated resources) SHALL comply with the required profiles.",SHALL,CRD Server,,false,,
1297
+ hl7.fhir.us.davinci-crd_2.2.1,resp-56,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/cards.html#ci-c-resp-56,Alternate Request responses **SHALL** comply with the logical model profile found [here](https://hl7.org/fhir/us/davinci-crd/2.2.1/en/StructureDefinition-CRDHooksResponse-alternateRequest.html).,SHALL,CRD Server,,false,,
1298
+ hl7.fhir.us.davinci-crd_2.2.1,resp-57,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/cards.html#ci-c-resp-57,"When using the ""Identify Additional Orders"" response type, the proposed orders and any associated resources SHALL comply with the required profiles",SHALL,CRD Server,,false,,
1299
+ hl7.fhir.us.davinci-crd_2.2.1,resp-58,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/cards.html#ci-c-resp-58,Additional Orders responses **SHALL** comply with the logical model profile= found [here](https://hl7.org/fhir/us/davinci-crd/2.2.1/en/StructureDefinition-CRDHooksResponse-additionalOrders.html).,SHALL,CRD Server,,false,,
1300
+ hl7.fhir.us.davinci-crd_2.2.1,resp-59,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/cards.html#ci-c-resp-59,The Request Form Completion response type **SHALL NOT** be used in place of DTR,SHALL NOT,CRD Server,,false,,
1301
+ hl7.fhir.us.davinci-crd_2.2.1,resp-60,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/cards.html#ci-c-resp-60,"Instead of using a card for ""Request Form Completion"", CRD servers **MAY** opt to use a [systemAction](http://cds-hooks.hl7.org/2026Jan/index.html#system-action).",MAY,CRD Server,,false,,
1302
+ hl7.fhir.us.davinci-crd_2.2.1,resp-61,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/cards.html#ci-c-resp-61,CRD clients supporting the Request Form Completion response type **SHALL** support both the card and systemAction approach.,SHALL,CRD Client,,true,,
1303
+ hl7.fhir.us.davinci-crd_2.2.1,resp-62,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/cards.html#ci-c-resp-62,"When using the ""Request Form Completion"" response type, the resources in the card or system action SHALL comply with the required profiles",SHALL,CRD Server,,false,,
1304
+ hl7.fhir.us.davinci-crd_2.2.1,resp-63,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/cards.html#ci-c-resp-63,CRD servers **SHOULD** use questionnaires that are compliant with either the [Argonaut questionnaire profiles](https://github.com/argonautproject/questionnaire) (for forms to be completed within the CRD client) or the [Structured Data Capture (SDC) profiles](http://hl7.org/fhir/uv/sdc/index.html) (for more sophisticated forms to be created within a SMART on FHIR app or through an external service).,SHOULD,CRD Server,,false,,
1305
+ hl7.fhir.us.davinci-crd_2.2.1,resp-64,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/cards.html#ci-c-resp-64,CRD clients **SHOULD** retain a copy of all completed forms for future reference.,SHOULD,CRD Client,,false,,
1306
+ hl7.fhir.us.davinci-crd_2.2.1,resp-65,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/cards.html#ci-c-resp-65,Form Completion responses **SHALL** comply with the logical model profile found [here](https://hl7.org/fhir/us/davinci-crd/2.2.1/en/StructureDefinition-CRDHooksResponse-formCompletion.html).,SHALL,CRD Server,,false,,
1307
+ hl7.fhir.us.davinci-crd_2.2.1,resp-66,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/cards.html#ci-c-resp-66,"Instead of using a card for ""Update Coverage Records"", CRD servers **MAY** opt to use a [systemAction](http://cds-hooks.hl7.org/2026Jan/index.html#system-action) instead.",MAY,CRD Server,,false,,
1308
+ hl7.fhir.us.davinci-crd_2.2.1,resp-67,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/cards.html#ci-c-resp-67,CRD clients supporting the Update Coverage Records response type **SHALL** support both the card and system action approach.,SHALL,CRD Client,,false,,
1309
+ hl7.fhir.us.davinci-crd_2.2.1,resp-68,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/cards.html#ci-c-resp-68,"If receiving a system action, a CRD client **MAY** opt to place the updated record in a holding area for human review rather than directly modifying their source of truth.",MAY,CRD Client,,true,,
1310
+ hl7.fhir.us.davinci-crd_2.2.1,resp-69,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/cards.html#ci-c-resp-69,This Update Coverage Records capability **SHALL NOT** be used in situations where regulation dictates the use of the X12 functionality.,SHALL NOT,CRD Server,,false,,
1311
+ hl7.fhir.us.davinci-crd_2.2.1,resp-70,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/cards.html#ci-c-resp-70,"If returning a card rather than a system action, the ""Update Coverage Records"" response type **SHOULD NOT** be returned for hook types that are likely to be triggered by clinical users rather than administrative staff. Cards of this type would be appropriate for hooks such as encounter-start or appointment-book but would not be appropriate for order-select or order-sign.",SHOULD NOT,CRD Server,,true,,
1312
+ hl7.fhir.us.davinci-crd_2.2.1,resp-71,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/cards.html#ci-c-resp-71,Adjust Coverage responses **SHALL** comply with the logical model profile found [here](https://hl7.org/fhir/us/davinci-crd/2.2.1/en/StructureDefinition-CRDHooksResponse-adjustCoverage.html).,SHALL,CRD Server,,false,,
1313
+ hl7.fhir.us.davinci-crd_2.2.1,resp-72,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/cards.html#ci-c-resp-72,Launch SMART responses **SHALL** comply with the logical model profile found [here](https://hl7.org/fhir/us/davinci-crd/2.2.1/en/StructureDefinition-CRDHooksResponse-launchSMART.html).,SHALL,CRD Server,,false,,
1314
+ hl7.fhir.us.davinci-crd_2.2.1,sec-1,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/security.html#ci-c-sec-1,Implementers SHALL adhere to inherited security and privacy rules,SHALL,"CRD Client, CRD Server",,false,,
1315
+ hl7.fhir.us.davinci-crd_2.2.1,sec-2,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/security.html#ci-c-sec-2,"As per the CDS Hooks specification, communications between CRD clients and CRD servers **SHALL** use TLS.",SHALL,"CRD Client, CRD Server",,false,,
1316
+ hl7.fhir.us.davinci-crd_2.2.1,sec-3,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/security.html#ci-c-sec-3,CRD servers and CRD clients **SHOULD** enforce a minimum version and other TLS configuration requirements based on [HRex rules](http://hl7.org/fhir/us/davinci-hrex/1.2.0/security.html#exchange-security) for PHI exchange.,SHOULD,"CRD Client, CRD Server",,false,,
1317
+ hl7.fhir.us.davinci-crd_2.2.1,sec-4,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/security.html#ci-c-sec-4,CRD clients that support the Launch SMART Application Response Type **SHALL** support running applications that adhere to the SMART on FHIR [confidential app](https://hl7.org/fhir/smart-app-launch/STU2.2/app-launch.html#support-for-public-and-confidential-apps) profile.,SHALL,CRD Client,,true,,
1318
+ hl7.fhir.us.davinci-crd_2.2.1,sec-5,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/security.html#ci-c-sec-5,CRD servers **SHALL** use information received solely for coverage determination and decision support purposes.,SHALL,CRD Server,,false,,
1319
+ hl7.fhir.us.davinci-crd_2.2.1,sec-6,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/security.html#ci-c-sec-6,Servers **SHALL NOT** retain data received over the CRD interfaces for any purpose other than audit or providing context for form completion using DTR.,SHALL NOT,CRD Server,,false,,
1320
+ hl7.fhir.us.davinci-crd_2.2.1,sec-7,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/security.html#ci-c-sec-7,CRD clients **SHALL** ensure that the resource identifiers exposed over the CRD interface are distinct from and have no determinable relationship with any business identifiers associated with those records.,SHALL,CRD Client,,false,,
1321
+ hl7.fhir.us.davinci-crd_2.2.1,sec-8,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/security.html#ci-c-sec-8,CRD client organizations **SHOULD** audit access to check for reasonableness and appropriateness.,SHOULD,CRD Client Organization,,false,,
1322
+ hl7.fhir.us.davinci-crd_2.2.1,sec-9,https://hl7.org/fhir/us/davinci-crd/2.2.1/en/security.html#ci-c-sec-9,Access tokens provided as part of CRD calls **SHOULD NOT** be forwarded to systems that are not managed by the same organization or have business associate agreements that allow centralized audit of access.,SHOULD NOT,CRD Client Organization,,false,,