davinci_pas_test_kit 0.14.0 → 0.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (461) hide show
  1. checksums.yaml +4 -4
  2. data/config/presets/pas_client_v201_run_against_pas_server.json +39 -0
  3. data/config/presets/pas_client_v221_run_against_pas_server.json +85 -0
  4. data/config/presets/pas_ri.json +2 -2
  5. data/config/presets/pas_server_v201_run_against_pas_client.json.erb +76 -0
  6. data/config/presets/pas_server_v221_run_against_pas_client.json.erb +104 -0
  7. data/lib/davinci_pas_test_kit/client/abstract_approval_submit_test.rb +75 -0
  8. data/lib/davinci_pas_test_kit/client/abstract_denial_submit_test.rb +74 -0
  9. data/lib/davinci_pas_test_kit/client/abstract_gather_must_support_test.rb +160 -0
  10. data/lib/davinci_pas_test_kit/client/abstract_modification_submit_test.rb +78 -0
  11. data/lib/davinci_pas_test_kit/client/abstract_response_attest.rb +64 -0
  12. data/lib/davinci_pas_test_kit/client/abstract_subscription_create_test.rb +57 -0
  13. data/lib/davinci_pas_test_kit/{urls.rb → client/client_urls.rb} +7 -23
  14. data/lib/davinci_pas_test_kit/client/endpoints/claim_endpoint.rb +303 -0
  15. data/lib/davinci_pas_test_kit/{endpoints → client/endpoints}/subscription_create_endpoint.rb +1 -1
  16. data/lib/davinci_pas_test_kit/{endpoints → client/endpoints}/subscription_status_endpoint.rb +1 -1
  17. data/lib/davinci_pas_test_kit/{endpoints → client/endpoints}/token_endpoint.rb +1 -2
  18. data/lib/davinci_pas_test_kit/{generated/v2.0.1/beneficiary/client_submit_request_beneficiary_must_support_test.rb → client/generated/v2.0.1/beneficiary/client_inquire_request_must_support_beneficiary_test.rb} +14 -35
  19. data/lib/davinci_pas_test_kit/client/generated/v2.0.1/beneficiary/client_inquire_response_must_support_beneficiary_test.rb +59 -0
  20. data/lib/davinci_pas_test_kit/{generated/v2.0.1/beneficiary/client_inquire_request_beneficiary_must_support_test.rb → client/generated/v2.0.1/beneficiary/client_submit_request_must_support_beneficiary_test.rb} +14 -35
  21. data/lib/davinci_pas_test_kit/client/generated/v2.0.1/beneficiary/client_submit_response_must_support_beneficiary_test.rb +59 -0
  22. data/lib/davinci_pas_test_kit/{generated/v2.0.1/claim_inquiry/client_inquire_request_claim_inquiry_must_support_test.rb → client/generated/v2.0.1/claim_inquiry/client_inquire_request_must_support_claim_inquiry_test.rb} +19 -35
  23. data/lib/davinci_pas_test_kit/{generated/v2.0.1/claim_update/client_submit_request_claim_update_must_support_test.rb → client/generated/v2.0.1/claim_update/client_submit_request_must_support_claim_update_test.rb} +19 -35
  24. data/lib/davinci_pas_test_kit/client/generated/v2.0.1/claiminquiryresponse/client_inquire_response_must_support_claiminquiryresponse_test.rb +57 -0
  25. data/lib/davinci_pas_test_kit/client/generated/v2.0.1/claimresponse/client_submit_response_must_support_claimresponse_test.rb +59 -0
  26. data/lib/davinci_pas_test_kit/client/generated/v2.0.1/communication_request/client_submit_response_must_support_communication_request_test.rb +42 -0
  27. data/lib/davinci_pas_test_kit/client/generated/v2.0.1/coverage/client_inquire_request_must_support_coverage_test.rb +39 -0
  28. data/lib/davinci_pas_test_kit/client/generated/v2.0.1/coverage/client_submit_request_must_support_coverage_test.rb +39 -0
  29. data/lib/davinci_pas_test_kit/{generated/v2.0.1/encounter/client_submit_request_encounter_must_support_test.rb → client/generated/v2.0.1/encounter/client_submit_request_must_support_encounter_test.rb} +14 -35
  30. data/lib/davinci_pas_test_kit/client/generated/v2.0.1/insurer/client_inquire_request_must_support_insurer_test.rb +44 -0
  31. data/lib/davinci_pas_test_kit/client/generated/v2.0.1/insurer/client_inquire_response_must_support_insurer_test.rb +44 -0
  32. data/lib/davinci_pas_test_kit/client/generated/v2.0.1/insurer/client_submit_request_must_support_insurer_test.rb +44 -0
  33. data/lib/davinci_pas_test_kit/client/generated/v2.0.1/insurer/client_submit_response_must_support_insurer_test.rb +44 -0
  34. data/lib/davinci_pas_test_kit/client/generated/v2.0.1/pas_client_inquire_must_support_group.rb +48 -0
  35. data/lib/davinci_pas_test_kit/client/generated/v2.0.1/pas_client_inquire_response_must_support_group.rb +79 -0
  36. data/lib/davinci_pas_test_kit/client/generated/v2.0.1/pas_client_submit_must_support_group.rb +58 -0
  37. data/lib/davinci_pas_test_kit/client/generated/v2.0.1/pas_client_submit_response_must_support_group.rb +84 -0
  38. data/lib/davinci_pas_test_kit/client/generated/v2.0.1/pas_inquiry_request_bundle/client_inquire_request_must_support_pas_inquiry_request_bundle_test.rb +37 -0
  39. data/lib/davinci_pas_test_kit/client/generated/v2.0.1/pas_inquiry_response_bundle/client_inquire_response_must_support_pas_inquiry_response_bundle_test.rb +36 -0
  40. data/lib/davinci_pas_test_kit/client/generated/v2.0.1/pas_request_bundle/client_submit_request_must_support_pas_request_bundle_test.rb +37 -0
  41. data/lib/davinci_pas_test_kit/client/generated/v2.0.1/pas_response_bundle/client_submit_response_must_support_pas_response_bundle_test.rb +36 -0
  42. data/lib/davinci_pas_test_kit/client/generated/v2.0.1/practitioner/client_inquire_request_must_support_practitioner_test.rb +37 -0
  43. data/lib/davinci_pas_test_kit/client/generated/v2.0.1/practitioner/client_inquire_response_must_support_practitioner_test.rb +37 -0
  44. data/lib/davinci_pas_test_kit/client/generated/v2.0.1/practitioner/client_submit_request_must_support_practitioner_test.rb +37 -0
  45. data/lib/davinci_pas_test_kit/client/generated/v2.0.1/practitioner/client_submit_response_must_support_practitioner_test.rb +37 -0
  46. data/lib/davinci_pas_test_kit/client/generated/v2.0.1/practitioner_role/client_inquire_request_must_support_practitioner_role_test.rb +33 -0
  47. data/lib/davinci_pas_test_kit/client/generated/v2.0.1/practitioner_role/client_inquire_response_must_support_practitioner_role_test.rb +33 -0
  48. data/lib/davinci_pas_test_kit/client/generated/v2.0.1/practitioner_role/client_submit_request_must_support_practitioner_role_test.rb +33 -0
  49. data/lib/davinci_pas_test_kit/client/generated/v2.0.1/practitioner_role/client_submit_response_must_support_practitioner_role_test.rb +33 -0
  50. data/lib/davinci_pas_test_kit/client/generated/v2.0.1/requestor/client_inquire_request_must_support_requestor_test.rb +47 -0
  51. data/lib/davinci_pas_test_kit/client/generated/v2.0.1/requestor/client_inquire_response_must_support_requestor_test.rb +47 -0
  52. data/lib/davinci_pas_test_kit/client/generated/v2.0.1/requestor/client_submit_request_must_support_requestor_test.rb +47 -0
  53. data/lib/davinci_pas_test_kit/client/generated/v2.0.1/requestor/client_submit_response_must_support_requestor_test.rb +47 -0
  54. data/lib/davinci_pas_test_kit/{generated/v2.0.1/subscriber/client_inquire_request_subscriber_must_support_test.rb → client/generated/v2.0.1/subscriber/client_inquire_request_must_support_subscriber_test.rb} +14 -35
  55. data/lib/davinci_pas_test_kit/{generated/v2.0.1/subscriber/client_submit_request_subscriber_must_support_test.rb → client/generated/v2.0.1/subscriber/client_submit_request_must_support_subscriber_test.rb} +14 -35
  56. data/lib/davinci_pas_test_kit/client/generated/v2.0.1/task/client_inquire_response_must_support_task_test.rb +45 -0
  57. data/lib/davinci_pas_test_kit/client/generated/v2.0.1/task/client_submit_response_must_support_task_test.rb +45 -0
  58. data/lib/davinci_pas_test_kit/client/generated/v2.2.1/beneficiary/client_inquire_response_must_support_beneficiary_test.rb +53 -0
  59. data/lib/davinci_pas_test_kit/client/generated/v2.2.1/beneficiary/client_submit_response_must_support_beneficiary_test.rb +53 -0
  60. data/lib/davinci_pas_test_kit/client/generated/v2.2.1/claim_inquiry/client_inquire_request_must_support_claim_inquiry_test.rb +123 -0
  61. data/lib/davinci_pas_test_kit/client/generated/v2.2.1/claim_update/client_submit_request_must_support_claim_update_test.rb +143 -0
  62. data/lib/davinci_pas_test_kit/client/generated/v2.2.1/claiminquiryresponse/client_inquire_response_must_support_claiminquiryresponse_test.rb +102 -0
  63. data/lib/davinci_pas_test_kit/client/generated/v2.2.1/claimresponse/client_submit_response_must_support_claimresponse_test.rb +103 -0
  64. data/lib/davinci_pas_test_kit/client/generated/v2.2.1/communication_request/client_submit_response_must_support_communication_request_test.rb +42 -0
  65. data/lib/davinci_pas_test_kit/client/generated/v2.2.1/insurer/client_inquire_response_must_support_insurer_test.rb +47 -0
  66. data/lib/davinci_pas_test_kit/client/generated/v2.2.1/insurer/client_submit_response_must_support_insurer_test.rb +47 -0
  67. data/lib/davinci_pas_test_kit/client/generated/v2.2.1/pas_client_inquire_must_support_group.rb +60 -0
  68. data/lib/davinci_pas_test_kit/client/generated/v2.2.1/pas_client_inquire_response_must_support_group.rb +79 -0
  69. data/lib/davinci_pas_test_kit/client/generated/v2.2.1/pas_client_submit_must_support_group.rb +89 -0
  70. data/lib/davinci_pas_test_kit/client/generated/v2.2.1/pas_client_submit_response_must_support_group.rb +84 -0
  71. data/lib/davinci_pas_test_kit/client/generated/v2.2.1/pas_inquiry_response_bundle/client_inquire_response_must_support_pas_inquiry_response_bundle_test.rb +38 -0
  72. data/lib/davinci_pas_test_kit/client/generated/v2.2.1/pas_response_bundle/client_submit_response_must_support_pas_response_bundle_test.rb +39 -0
  73. data/lib/davinci_pas_test_kit/client/generated/v2.2.1/practitioner/client_inquire_response_must_support_practitioner_test.rb +44 -0
  74. data/lib/davinci_pas_test_kit/client/generated/v2.2.1/practitioner/client_submit_response_must_support_practitioner_test.rb +44 -0
  75. data/lib/davinci_pas_test_kit/client/generated/v2.2.1/practitioner_role/client_inquire_response_must_support_practitioner_role_test.rb +40 -0
  76. data/lib/davinci_pas_test_kit/client/generated/v2.2.1/practitioner_role/client_submit_response_must_support_practitioner_role_test.rb +40 -0
  77. data/lib/davinci_pas_test_kit/client/generated/v2.2.1/requestor/client_inquire_response_must_support_requestor_test.rb +50 -0
  78. data/lib/davinci_pas_test_kit/client/generated/v2.2.1/requestor/client_submit_response_must_support_requestor_test.rb +50 -0
  79. data/lib/davinci_pas_test_kit/client/generated/v2.2.1/task/client_inquire_response_must_support_task_test.rb +55 -0
  80. data/lib/davinci_pas_test_kit/client/generated/v2.2.1/task/client_submit_response_must_support_task_test.rb +55 -0
  81. data/lib/davinci_pas_test_kit/{jobs → client/jobs}/send_pas_subscription_notification.rb +12 -7
  82. data/lib/davinci_pas_test_kit/{jobs → client/jobs}/send_subscription_handshake.rb +1 -1
  83. data/lib/davinci_pas_test_kit/client/metadata/mock_pas_server.rb +26 -0
  84. data/lib/davinci_pas_test_kit/client/metadata/pas_server_capability_statement.json +60 -0
  85. data/lib/davinci_pas_test_kit/client/pas_client_options.rb +23 -0
  86. data/lib/davinci_pas_test_kit/client/pas_client_subscription_pas_conformance_test.rb +33 -0
  87. data/lib/davinci_pas_test_kit/client/registration/abstract_configuration_other_display_test.rb +45 -0
  88. data/lib/davinci_pas_test_kit/client/registration/abstract_configuration_smart_display_test.rb +37 -0
  89. data/lib/davinci_pas_test_kit/client/registration/abstract_configuration_udap_display_test.rb +37 -0
  90. data/lib/davinci_pas_test_kit/client/registration/abstract_other_auth_attest_test.rb +39 -0
  91. data/lib/davinci_pas_test_kit/{response_generator.rb → client/response_generator.rb} +198 -62
  92. data/lib/davinci_pas_test_kit/{session_identification.rb → client/session_identification.rb} +1 -2
  93. data/lib/davinci_pas_test_kit/client/user_input_response.rb +64 -0
  94. data/lib/davinci_pas_test_kit/{client_suite.rb → client/v2.0.1/client_suite.rb} +33 -16
  95. data/lib/davinci_pas_test_kit/client/v2.0.1/must_support/pas_client_gather_must_support_test.rb +12 -0
  96. data/lib/davinci_pas_test_kit/{custom_groups/v2.0.1/must_support/pas_client_must_support_requirement_test.rb → client/v2.0.1/must_support/pas_client_must_support_request_profiles_test.rb} +12 -46
  97. data/lib/davinci_pas_test_kit/{custom_groups → client}/v2.0.1/pas_client_approval_group.rb +5 -5
  98. data/lib/davinci_pas_test_kit/{custom_groups → client}/v2.0.1/pas_client_auth_smart_group.rb +1 -2
  99. data/lib/davinci_pas_test_kit/{custom_groups → client}/v2.0.1/pas_client_auth_udap_group.rb +1 -2
  100. data/lib/davinci_pas_test_kit/{custom_groups → client}/v2.0.1/pas_client_denial_group.rb +7 -6
  101. data/lib/davinci_pas_test_kit/client/v2.0.1/pas_client_must_support_group.rb +96 -0
  102. data/lib/davinci_pas_test_kit/{custom_groups → client}/v2.0.1/pas_client_pended_group.rb +13 -10
  103. data/lib/davinci_pas_test_kit/{custom_groups → client}/v2.0.1/pas_client_registration_group.rb +5 -6
  104. data/lib/davinci_pas_test_kit/{custom_groups → client}/v2.0.1/pas_client_subscription_setup_group.rb +6 -3
  105. data/lib/davinci_pas_test_kit/client/v2.0.1/registration/configuration_other_display_test.rb +12 -0
  106. data/lib/davinci_pas_test_kit/client/v2.0.1/registration/configuration_smart_display_test.rb +12 -0
  107. data/lib/davinci_pas_test_kit/client/v2.0.1/registration/configuration_udap_display_test.rb +12 -0
  108. data/lib/davinci_pas_test_kit/client/v2.0.1/registration/other_auth_attest_test.rb +12 -0
  109. data/lib/davinci_pas_test_kit/client/v2.0.1/subscription/pas_client_subscription_create_test.rb +15 -0
  110. data/lib/davinci_pas_test_kit/client/v2.0.1/urls.rb +15 -0
  111. data/lib/davinci_pas_test_kit/client/v2.0.1/workflows/pas_client_approval_submit_test.rb +15 -0
  112. data/lib/davinci_pas_test_kit/client/v2.0.1/workflows/pas_client_denial_submit_test.rb +15 -0
  113. data/lib/davinci_pas_test_kit/{custom_groups/v2.0.1/client_tests → client/v2.0.1/workflows}/pas_client_inquire_request_bundle_validation_test.rb +1 -3
  114. data/lib/davinci_pas_test_kit/{custom_groups/v2.0.1/client_tests → client/v2.0.1/workflows}/pas_client_inquire_response_bundle_validation_test.rb +18 -6
  115. data/lib/davinci_pas_test_kit/{custom_groups/v2.0.1/client_tests → client/v2.0.1/workflows}/pas_client_pended_submit_test.rb +12 -8
  116. data/lib/davinci_pas_test_kit/{custom_groups/v2.0.1/client_tests → client/v2.0.1/workflows}/pas_client_request_bundle_validation_test.rb +1 -3
  117. data/lib/davinci_pas_test_kit/client/v2.0.1/workflows/pas_client_response_attest.rb +12 -0
  118. data/lib/davinci_pas_test_kit/{custom_groups/v2.0.1/client_tests → client/v2.0.1/workflows}/pas_client_response_bundle_validation_test.rb +10 -5
  119. data/lib/davinci_pas_test_kit/client/v2.2.1/client_suite.rb +240 -0
  120. data/lib/davinci_pas_test_kit/client/v2.2.1/error_handling/pas_client_operation_failure_submit_test.rb +76 -0
  121. data/lib/davinci_pas_test_kit/client/v2.2.1/error_handling/pas_client_operation_outcome_validation_test.rb +38 -0
  122. data/lib/davinci_pas_test_kit/client/v2.2.1/error_handling/pas_client_processing_error_response_validation_test.rb +55 -0
  123. data/lib/davinci_pas_test_kit/client/v2.2.1/error_handling/pas_client_processing_error_submit_test.rb +67 -0
  124. data/lib/davinci_pas_test_kit/client/v2.2.1/must_support/must_support_with_attestation_option.rb +214 -0
  125. data/lib/davinci_pas_test_kit/client/v2.2.1/must_support/pas_client_gather_must_support_test.rb +12 -0
  126. data/lib/davinci_pas_test_kit/client/v2.2.1/pas_client_approval_group.rb +40 -0
  127. data/lib/davinci_pas_test_kit/client/v2.2.1/pas_client_auth_smart_group.rb +31 -0
  128. data/lib/davinci_pas_test_kit/client/v2.2.1/pas_client_auth_udap_group.rb +30 -0
  129. data/lib/davinci_pas_test_kit/client/v2.2.1/pas_client_claim_updates_group.rb +112 -0
  130. data/lib/davinci_pas_test_kit/client/v2.2.1/pas_client_denial_group.rb +47 -0
  131. data/lib/davinci_pas_test_kit/client/v2.2.1/pas_client_error_handling_group.rb +20 -0
  132. data/lib/davinci_pas_test_kit/client/v2.2.1/pas_client_modification_group.rb +52 -0
  133. data/lib/davinci_pas_test_kit/client/v2.2.1/pas_client_must_support_group.rb +96 -0
  134. data/lib/davinci_pas_test_kit/client/v2.2.1/pas_client_operation_failure_group.rb +45 -0
  135. data/lib/davinci_pas_test_kit/client/v2.2.1/pas_client_pended_group.rb +125 -0
  136. data/lib/davinci_pas_test_kit/client/v2.2.1/pas_client_processing_error_group.rb +44 -0
  137. data/lib/davinci_pas_test_kit/client/v2.2.1/pas_client_registration_group.rb +65 -0
  138. data/lib/davinci_pas_test_kit/client/v2.2.1/pas_client_subscription_setup_group.rb +31 -0
  139. data/lib/davinci_pas_test_kit/client/v2.2.1/pas_client_workflows_group.rb +25 -0
  140. data/lib/davinci_pas_test_kit/client/v2.2.1/registration/configuration_other_display_test.rb +12 -0
  141. data/lib/davinci_pas_test_kit/client/v2.2.1/registration/configuration_smart_display_test.rb +12 -0
  142. data/lib/davinci_pas_test_kit/client/v2.2.1/registration/configuration_udap_display_test.rb +12 -0
  143. data/lib/davinci_pas_test_kit/client/v2.2.1/registration/other_auth_attest_test.rb +12 -0
  144. data/lib/davinci_pas_test_kit/client/v2.2.1/subscription/pas_client_subscription_create_test.rb +14 -0
  145. data/lib/davinci_pas_test_kit/client/v2.2.1/urls.rb +15 -0
  146. data/lib/davinci_pas_test_kit/client/v2.2.1/workflows/pas_client_approval_submit_test.rb +12 -0
  147. data/lib/davinci_pas_test_kit/client/v2.2.1/workflows/pas_client_claim_update_cancel_request_test.rb +33 -0
  148. data/lib/davinci_pas_test_kit/client/v2.2.1/workflows/pas_client_claim_update_cancelled_entries_test.rb +50 -0
  149. data/lib/davinci_pas_test_kit/client/v2.2.1/workflows/pas_client_claim_update_cancelled_items_certtype_test.rb +47 -0
  150. data/lib/davinci_pas_test_kit/client/v2.2.1/workflows/pas_client_claim_update_changed_entries_test.rb +100 -0
  151. data/lib/davinci_pas_test_kit/client/v2.2.1/workflows/pas_client_claim_update_entries_preserved_test.rb +51 -0
  152. data/lib/davinci_pas_test_kit/client/v2.2.1/workflows/pas_client_claim_update_grandparent_excluded_test.rb +52 -0
  153. data/lib/davinci_pas_test_kit/client/v2.2.1/workflows/pas_client_claim_update_referenced_claim_test.rb +46 -0
  154. data/lib/davinci_pas_test_kit/client/v2.2.1/workflows/pas_client_claim_update_referenced_resources_test.rb +43 -0
  155. data/lib/davinci_pas_test_kit/client/v2.2.1/workflows/pas_client_claim_update_submit_tests.rb +238 -0
  156. data/lib/davinci_pas_test_kit/client/v2.2.1/workflows/pas_client_claim_update_validation_utils.rb +183 -0
  157. data/lib/davinci_pas_test_kit/client/v2.2.1/workflows/pas_client_denial_submit_test.rb +12 -0
  158. data/lib/davinci_pas_test_kit/client/v2.2.1/workflows/pas_client_inquire_request_bundle_validation_test.rb +55 -0
  159. data/lib/davinci_pas_test_kit/client/v2.2.1/workflows/pas_client_inquire_response_bundle_validation_test.rb +78 -0
  160. data/lib/davinci_pas_test_kit/client/v2.2.1/workflows/pas_client_modification_submit_test.rb +12 -0
  161. data/lib/davinci_pas_test_kit/client/v2.2.1/workflows/pas_client_modification_verification_test.rb +101 -0
  162. data/lib/davinci_pas_test_kit/client/v2.2.1/workflows/pas_client_pended_submit_test.rb +148 -0
  163. data/lib/davinci_pas_test_kit/client/v2.2.1/workflows/pas_client_request_bundle_validation_test.rb +56 -0
  164. data/lib/davinci_pas_test_kit/client/v2.2.1/workflows/pas_client_response_attest.rb +12 -0
  165. data/lib/davinci_pas_test_kit/client/v2.2.1/workflows/pas_client_response_bundle_validation_test.rb +84 -0
  166. data/lib/davinci_pas_test_kit/cross_suite/base_urls.rb +27 -0
  167. data/lib/davinci_pas_test_kit/cross_suite/fhirpath_utils.rb +55 -0
  168. data/lib/davinci_pas_test_kit/{generated → cross_suite/generated}/v2.0.1/beneficiary/metadata.yml +19 -13
  169. data/lib/davinci_pas_test_kit/{generated → cross_suite/generated}/v2.0.1/claim_inquiry/metadata.yml +59 -22
  170. data/lib/davinci_pas_test_kit/{generated → cross_suite/generated}/v2.0.1/claim_update/metadata.yml +60 -22
  171. data/lib/davinci_pas_test_kit/{generated → cross_suite/generated}/v2.0.1/claiminquiryresponse/metadata.yml +17 -10
  172. data/lib/davinci_pas_test_kit/{generated → cross_suite/generated}/v2.0.1/claimresponse/metadata.yml +17 -13
  173. data/lib/davinci_pas_test_kit/{generated → cross_suite/generated}/v2.0.1/communication_request/metadata.yml +7 -13
  174. data/lib/davinci_pas_test_kit/{generated → cross_suite/generated}/v2.0.1/coverage/metadata.yml +8 -12
  175. data/lib/davinci_pas_test_kit/{generated → cross_suite/generated}/v2.0.1/device_request/metadata.yml +1 -6
  176. data/lib/davinci_pas_test_kit/{generated → cross_suite/generated}/v2.0.1/encounter/metadata.yml +6 -5
  177. data/lib/davinci_pas_test_kit/{generated → cross_suite/generated}/v2.0.1/insurer/metadata.yml +16 -13
  178. data/lib/davinci_pas_test_kit/{generated → cross_suite/generated}/v2.0.1/medication_request/metadata.yml +1 -6
  179. data/lib/davinci_pas_test_kit/{generated → cross_suite/generated}/v2.0.1/metadata.yml +276 -135
  180. data/lib/davinci_pas_test_kit/{generated → cross_suite/generated}/v2.0.1/nutrition_order/metadata.yml +1 -6
  181. data/lib/davinci_pas_test_kit/{generated → cross_suite/generated}/v2.0.1/pas_inquiry_request_bundle/metadata.yml +5 -7
  182. data/lib/davinci_pas_test_kit/{generated → cross_suite/generated}/v2.0.1/pas_inquiry_response_bundle/metadata.yml +5 -5
  183. data/lib/davinci_pas_test_kit/{generated → cross_suite/generated}/v2.0.1/pas_request_bundle/metadata.yml +5 -7
  184. data/lib/davinci_pas_test_kit/{generated → cross_suite/generated}/v2.0.1/pas_response_bundle/metadata.yml +5 -5
  185. data/lib/davinci_pas_test_kit/{generated → cross_suite/generated}/v2.0.1/practitioner/metadata.yml +16 -13
  186. data/lib/davinci_pas_test_kit/{generated → cross_suite/generated}/v2.0.1/practitioner_role/metadata.yml +16 -19
  187. data/lib/davinci_pas_test_kit/{generated → cross_suite/generated}/v2.0.1/requestor/metadata.yml +16 -13
  188. data/lib/davinci_pas_test_kit/{generated → cross_suite/generated}/v2.0.1/service_request/metadata.yml +2 -6
  189. data/lib/davinci_pas_test_kit/{generated → cross_suite/generated}/v2.0.1/subscriber/metadata.yml +11 -9
  190. data/lib/davinci_pas_test_kit/{generated → cross_suite/generated}/v2.0.1/task/metadata.yml +8 -5
  191. data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/beneficiary/metadata.yml +150 -0
  192. data/lib/davinci_pas_test_kit/{generated/v2.0.1/claim → cross_suite/generated/v2.2.1/claim_inquiry}/metadata.yml +199 -192
  193. data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/claim_update/metadata.yml +733 -0
  194. data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/claiminquiryresponse/metadata.yml +456 -0
  195. data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/claimresponse/metadata.yml +461 -0
  196. data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/communication_request/metadata.yml +120 -0
  197. data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/coverage/metadata.yml +163 -0
  198. data/lib/davinci_pas_test_kit/{custom_groups/v2.0.1/must_support/device_request_metadata.yml → cross_suite/generated/v2.2.1/device_request/metadata.yml} +32 -33
  199. data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/encounter/metadata.yml +237 -0
  200. data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/insurer/metadata.yml +111 -0
  201. data/lib/davinci_pas_test_kit/{custom_groups/v2.0.1/must_support/medication_request_metadata.yml → cross_suite/generated/v2.2.1/medication_request/metadata.yml} +59 -26
  202. data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/metadata.yml +6544 -0
  203. data/lib/davinci_pas_test_kit/{custom_groups/v2.0.1/must_support/nutrition_order_metadata.yml → cross_suite/generated/v2.2.1/nutrition_order/metadata.yml} +13 -14
  204. data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/pas_inquiry_request_bundle/metadata.yml +74 -0
  205. data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/pas_inquiry_response_bundle/metadata.yml +70 -0
  206. data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/pas_request_bundle/metadata.yml +74 -0
  207. data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/pas_response_bundle/metadata.yml +72 -0
  208. data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/practitioner/metadata.yml +101 -0
  209. data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/practitioner_role/metadata.yml +101 -0
  210. data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/requestor/metadata.yml +114 -0
  211. data/lib/davinci_pas_test_kit/{custom_groups/v2.0.1/must_support/service_request_metadata.yml → cross_suite/generated/v2.2.1/service_request/metadata.yml} +39 -45
  212. data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/subscriber/metadata.yml +136 -0
  213. data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/task/metadata.yml +237 -0
  214. data/lib/davinci_pas_test_kit/cross_suite/must_support/must_support_data_gathering.rb +111 -0
  215. data/lib/davinci_pas_test_kit/cross_suite/must_support/must_support_request_type_test.rb +75 -0
  216. data/lib/davinci_pas_test_kit/cross_suite/must_support/must_support_test.rb +67 -0
  217. data/lib/davinci_pas_test_kit/{pas_bundle_validation.rb → cross_suite/pas_bundle_validation.rb} +383 -56
  218. data/lib/davinci_pas_test_kit/cross_suite/pas_constants.rb +31 -0
  219. data/lib/davinci_pas_test_kit/cross_suite/pas_notification_verification.rb +120 -0
  220. data/lib/davinci_pas_test_kit/cross_suite/pas_subscription_verification.rb +72 -0
  221. data/lib/davinci_pas_test_kit/cross_suite/response_selection_utils.rb +88 -0
  222. data/lib/davinci_pas_test_kit/cross_suite/tags.rb +35 -0
  223. data/lib/davinci_pas_test_kit/cross_suite/validation_test.rb +25 -0
  224. data/lib/davinci_pas_test_kit/{validator_suppressions.rb → cross_suite/validator_suppressions.rb} +23 -1
  225. data/lib/davinci_pas_test_kit/ext/inferno_core/runnable.rb +22 -0
  226. data/lib/davinci_pas_test_kit/generator/client_must_support_group_generator.rb +230 -0
  227. data/lib/davinci_pas_test_kit/generator/descriptions.rb +95 -0
  228. data/lib/davinci_pas_test_kit/generator/ig_metadata.rb +45 -38
  229. data/lib/davinci_pas_test_kit/generator/ig_metadata_extractor.rb +3 -5
  230. data/lib/davinci_pas_test_kit/generator/{must_support_check_profiles.rb → must_support_target_profiles.rb} +12 -12
  231. data/lib/davinci_pas_test_kit/generator/must_support_test_generator.rb +63 -83
  232. data/lib/davinci_pas_test_kit/generator/pas_must_support_metadata_extractor.rb +129 -0
  233. data/lib/davinci_pas_test_kit/generator/profile_metadata.rb +86 -0
  234. data/lib/davinci_pas_test_kit/generator/{group_metadata_extractor.rb → profile_metadata_extractor.rb} +11 -78
  235. data/lib/davinci_pas_test_kit/generator/server_must_support_group_generator.rb +166 -0
  236. data/lib/davinci_pas_test_kit/generator/{suite_generator.rb → server_suite_generator.rb} +32 -5
  237. data/lib/davinci_pas_test_kit/generator/templates/client_must_support_group.rb.erb +80 -0
  238. data/lib/davinci_pas_test_kit/generator/templates/client_must_support_response_group.rb.erb +43 -0
  239. data/lib/davinci_pas_test_kit/generator/templates/must_support.rb.erb +14 -35
  240. data/lib/davinci_pas_test_kit/generator/templates/server_must_support_group.rb.erb +121 -0
  241. data/lib/davinci_pas_test_kit/generator/templates/{suite.rb.erb → server_suite.rb.erb} +19 -23
  242. data/lib/davinci_pas_test_kit/generator/templates/use_case_group.rb.erb +181 -0
  243. data/lib/davinci_pas_test_kit/generator/use_case_group_generator.rb +227 -0
  244. data/lib/davinci_pas_test_kit/generator.rb +46 -26
  245. data/lib/davinci_pas_test_kit/igs/davinci_pas_2.2.1.tgz +0 -0
  246. data/lib/davinci_pas_test_kit/metadata.rb +21 -55
  247. data/lib/davinci_pas_test_kit/parameters_helper.rb +18 -0
  248. data/lib/davinci_pas_test_kit/pas_notification_conformance_test.rb +40 -0
  249. data/lib/davinci_pas_test_kit/requirements/davinci_pas_test_kit_requirements.csv +121 -0
  250. data/lib/davinci_pas_test_kit/requirements/generated/davinci_pas_client_suite_v201_requirements_coverage.csv +22 -22
  251. data/lib/davinci_pas_test_kit/requirements/generated/davinci_pas_client_suite_v221_requirements_coverage.csv +66 -0
  252. data/lib/davinci_pas_test_kit/requirements/generated/davinci_pas_server_suite_v201_requirements_coverage.csv +42 -42
  253. data/lib/davinci_pas_test_kit/requirements/generated/davinci_pas_server_suite_v221_requirements_coverage.csv +212 -0
  254. data/lib/davinci_pas_test_kit/requirements/hl7.fhir.us.davinci-pas_2.2.1_requirements.xlsx +0 -0
  255. data/lib/davinci_pas_test_kit/{custom_groups/v2.0.1/notification/pas_subscription_notification_test.rb → server/abstract_pas_subscription_notification_wait_test.rb} +13 -20
  256. data/lib/davinci_pas_test_kit/server/claim_inquire_operation_test.rb +31 -0
  257. data/lib/davinci_pas_test_kit/server/claim_operation_logic.rb +67 -0
  258. data/lib/davinci_pas_test_kit/server/claim_submit_operation_test.rb +32 -0
  259. data/lib/davinci_pas_test_kit/{generated/v2.0.1/beneficiary/server_submit_request_beneficiary_must_support_test.rb → server/generated/v2.0.1/beneficiary/server_inquire_request_must_support_beneficiary_test.rb} +14 -35
  260. data/lib/davinci_pas_test_kit/{generated/v2.0.1/beneficiary/server_submit_response_beneficiary_must_support_test.rb → server/generated/v2.0.1/beneficiary/server_inquire_response_must_support_beneficiary_test.rb} +16 -36
  261. data/lib/davinci_pas_test_kit/{generated/v2.0.1/beneficiary/server_inquire_request_beneficiary_must_support_test.rb → server/generated/v2.0.1/beneficiary/server_submit_request_must_support_beneficiary_test.rb} +14 -35
  262. data/lib/davinci_pas_test_kit/{generated/v2.0.1/beneficiary/server_inquire_response_beneficiary_must_support_test.rb → server/generated/v2.0.1/beneficiary/server_submit_response_must_support_beneficiary_test.rb} +16 -36
  263. data/lib/davinci_pas_test_kit/{generated/v2.0.1/claim_inquiry/server_inquire_request_claim_inquiry_must_support_test.rb → server/generated/v2.0.1/claim_inquiry/server_inquire_request_must_support_claim_inquiry_test.rb} +19 -35
  264. data/lib/davinci_pas_test_kit/{generated/v2.0.1/claim_update/server_submit_request_claim_update_must_support_test.rb → server/generated/v2.0.1/claim_update/server_submit_request_must_support_claim_update_test.rb} +19 -35
  265. data/lib/davinci_pas_test_kit/{generated/v2.0.1/claiminquiryresponse/server_inquire_response_claiminquiryresponse_must_support_test.rb → server/generated/v2.0.1/claiminquiryresponse/server_inquire_response_must_support_claiminquiryresponse_test.rb} +14 -35
  266. data/lib/davinci_pas_test_kit/{generated/v2.0.1/claimresponse/server_submit_response_claimresponse_must_support_test.rb → server/generated/v2.0.1/claimresponse/server_submit_response_must_support_claimresponse_test.rb} +14 -35
  267. data/lib/davinci_pas_test_kit/server/generated/v2.0.1/communication_request/server_submit_response_must_support_communication_request_test.rb +43 -0
  268. data/lib/davinci_pas_test_kit/server/generated/v2.0.1/coverage/server_inquire_request_must_support_coverage_test.rb +41 -0
  269. data/lib/davinci_pas_test_kit/server/generated/v2.0.1/coverage/server_submit_request_must_support_coverage_test.rb +41 -0
  270. data/lib/davinci_pas_test_kit/{generated/v2.0.1/encounter/server_submit_request_encounter_must_support_test.rb → server/generated/v2.0.1/encounter/server_submit_request_must_support_encounter_test.rb} +14 -35
  271. data/lib/davinci_pas_test_kit/server/generated/v2.0.1/insurer/server_inquire_request_must_support_insurer_test.rb +46 -0
  272. data/lib/davinci_pas_test_kit/server/generated/v2.0.1/insurer/server_inquire_response_must_support_insurer_test.rb +45 -0
  273. data/lib/davinci_pas_test_kit/server/generated/v2.0.1/insurer/server_submit_request_must_support_insurer_test.rb +46 -0
  274. data/lib/davinci_pas_test_kit/server/generated/v2.0.1/insurer/server_submit_response_must_support_insurer_test.rb +45 -0
  275. data/lib/davinci_pas_test_kit/server/generated/v2.0.1/pas_inquiry_request_bundle/server_inquire_request_must_support_pas_inquiry_request_bundle_test.rb +39 -0
  276. data/lib/davinci_pas_test_kit/server/generated/v2.0.1/pas_inquiry_response_bundle/server_inquire_response_must_support_pas_inquiry_response_bundle_test.rb +37 -0
  277. data/lib/davinci_pas_test_kit/server/generated/v2.0.1/pas_request_bundle/server_submit_request_must_support_pas_request_bundle_test.rb +39 -0
  278. data/lib/davinci_pas_test_kit/server/generated/v2.0.1/pas_response_bundle/server_submit_response_must_support_pas_response_bundle_test.rb +37 -0
  279. data/lib/davinci_pas_test_kit/server/generated/v2.0.1/pas_server_approval_use_case_group.rb +145 -0
  280. data/lib/davinci_pas_test_kit/server/generated/v2.0.1/pas_server_denial_use_case_group.rb +145 -0
  281. data/lib/davinci_pas_test_kit/server/generated/v2.0.1/pas_server_must_support_group.rb +442 -0
  282. data/lib/davinci_pas_test_kit/server/generated/v2.0.1/pas_server_pended_use_case_group.rb +280 -0
  283. data/lib/davinci_pas_test_kit/server/generated/v2.0.1/practitioner/server_inquire_request_must_support_practitioner_test.rb +39 -0
  284. data/lib/davinci_pas_test_kit/server/generated/v2.0.1/practitioner/server_inquire_response_must_support_practitioner_test.rb +38 -0
  285. data/lib/davinci_pas_test_kit/server/generated/v2.0.1/practitioner/server_submit_request_must_support_practitioner_test.rb +39 -0
  286. data/lib/davinci_pas_test_kit/server/generated/v2.0.1/practitioner/server_submit_response_must_support_practitioner_test.rb +38 -0
  287. data/lib/davinci_pas_test_kit/server/generated/v2.0.1/practitioner_role/server_inquire_request_must_support_practitioner_role_test.rb +35 -0
  288. data/lib/davinci_pas_test_kit/server/generated/v2.0.1/practitioner_role/server_inquire_response_must_support_practitioner_role_test.rb +34 -0
  289. data/lib/davinci_pas_test_kit/server/generated/v2.0.1/practitioner_role/server_submit_request_must_support_practitioner_role_test.rb +35 -0
  290. data/lib/davinci_pas_test_kit/server/generated/v2.0.1/practitioner_role/server_submit_response_must_support_practitioner_role_test.rb +34 -0
  291. data/lib/davinci_pas_test_kit/{generated/v2.0.1/requestor/server_submit_request_requestor_must_support_test.rb → server/generated/v2.0.1/requestor/server_inquire_request_must_support_requestor_test.rb} +14 -35
  292. data/lib/davinci_pas_test_kit/server/generated/v2.0.1/requestor/server_inquire_response_must_support_requestor_test.rb +48 -0
  293. data/lib/davinci_pas_test_kit/{generated/v2.0.1/requestor/server_inquire_request_requestor_must_support_test.rb → server/generated/v2.0.1/requestor/server_submit_request_must_support_requestor_test.rb} +14 -35
  294. data/lib/davinci_pas_test_kit/server/generated/v2.0.1/requestor/server_submit_response_must_support_requestor_test.rb +48 -0
  295. data/lib/davinci_pas_test_kit/{generated → server/generated}/v2.0.1/server_suite.rb +14 -20
  296. data/lib/davinci_pas_test_kit/{generated/v2.0.1/subscriber/server_inquire_request_subscriber_must_support_test.rb → server/generated/v2.0.1/subscriber/server_inquire_request_must_support_subscriber_test.rb} +14 -35
  297. data/lib/davinci_pas_test_kit/{generated/v2.0.1/subscriber/server_submit_request_subscriber_must_support_test.rb → server/generated/v2.0.1/subscriber/server_submit_request_must_support_subscriber_test.rb} +14 -35
  298. data/lib/davinci_pas_test_kit/server/generated/v2.0.1/task/server_inquire_response_must_support_task_test.rb +46 -0
  299. data/lib/davinci_pas_test_kit/server/generated/v2.0.1/task/server_submit_response_must_support_task_test.rb +46 -0
  300. data/lib/davinci_pas_test_kit/server/generated/v2.2.1/beneficiary/server_inquire_request_must_support_beneficiary_test.rb +55 -0
  301. data/lib/davinci_pas_test_kit/server/generated/v2.2.1/beneficiary/server_inquire_response_must_support_beneficiary_test.rb +53 -0
  302. data/lib/davinci_pas_test_kit/server/generated/v2.2.1/beneficiary/server_submit_request_must_support_beneficiary_test.rb +55 -0
  303. data/lib/davinci_pas_test_kit/server/generated/v2.2.1/beneficiary/server_submit_response_must_support_beneficiary_test.rb +53 -0
  304. data/lib/davinci_pas_test_kit/server/generated/v2.2.1/claim_inquiry/server_inquire_request_must_support_claim_inquiry_test.rb +125 -0
  305. data/lib/davinci_pas_test_kit/server/generated/v2.2.1/claim_update/server_submit_request_must_support_claim_update_test.rb +145 -0
  306. data/lib/davinci_pas_test_kit/server/generated/v2.2.1/claiminquiryresponse/server_inquire_response_must_support_claiminquiryresponse_test.rb +102 -0
  307. data/lib/davinci_pas_test_kit/server/generated/v2.2.1/claimresponse/server_submit_response_must_support_claimresponse_test.rb +103 -0
  308. data/lib/davinci_pas_test_kit/server/generated/v2.2.1/communication_request/server_submit_response_must_support_communication_request_test.rb +42 -0
  309. data/lib/davinci_pas_test_kit/server/generated/v2.2.1/coverage/server_inquire_request_must_support_coverage_test.rb +52 -0
  310. data/lib/davinci_pas_test_kit/server/generated/v2.2.1/coverage/server_submit_request_must_support_coverage_test.rb +52 -0
  311. data/lib/davinci_pas_test_kit/server/generated/v2.2.1/encounter/server_submit_request_must_support_encounter_test.rb +58 -0
  312. data/lib/davinci_pas_test_kit/server/generated/v2.2.1/insurer/server_inquire_request_must_support_insurer_test.rb +49 -0
  313. data/lib/davinci_pas_test_kit/server/generated/v2.2.1/insurer/server_inquire_response_must_support_insurer_test.rb +47 -0
  314. data/lib/davinci_pas_test_kit/server/generated/v2.2.1/insurer/server_submit_request_must_support_insurer_test.rb +49 -0
  315. data/lib/davinci_pas_test_kit/server/generated/v2.2.1/insurer/server_submit_response_must_support_insurer_test.rb +47 -0
  316. data/lib/davinci_pas_test_kit/server/generated/v2.2.1/pas_inquiry_request_bundle/server_inquire_request_must_support_pas_inquiry_request_bundle_test.rb +41 -0
  317. data/lib/davinci_pas_test_kit/server/generated/v2.2.1/pas_inquiry_response_bundle/server_inquire_response_must_support_pas_inquiry_response_bundle_test.rb +38 -0
  318. data/lib/davinci_pas_test_kit/server/generated/v2.2.1/pas_request_bundle/server_submit_request_must_support_pas_request_bundle_test.rb +41 -0
  319. data/lib/davinci_pas_test_kit/server/generated/v2.2.1/pas_response_bundle/server_submit_response_must_support_pas_response_bundle_test.rb +39 -0
  320. data/lib/davinci_pas_test_kit/server/generated/v2.2.1/pas_server_approval_use_case_group.rb +125 -0
  321. data/lib/davinci_pas_test_kit/server/generated/v2.2.1/pas_server_denial_use_case_group.rb +125 -0
  322. data/lib/davinci_pas_test_kit/server/generated/v2.2.1/pas_server_must_support_group.rb +403 -0
  323. data/lib/davinci_pas_test_kit/server/generated/v2.2.1/pas_server_pended_use_case_group.rb +150 -0
  324. data/lib/davinci_pas_test_kit/server/generated/v2.2.1/practitioner/server_inquire_request_must_support_practitioner_test.rb +46 -0
  325. data/lib/davinci_pas_test_kit/server/generated/v2.2.1/practitioner/server_inquire_response_must_support_practitioner_test.rb +44 -0
  326. data/lib/davinci_pas_test_kit/server/generated/v2.2.1/practitioner/server_submit_request_must_support_practitioner_test.rb +46 -0
  327. data/lib/davinci_pas_test_kit/server/generated/v2.2.1/practitioner/server_submit_response_must_support_practitioner_test.rb +44 -0
  328. data/lib/davinci_pas_test_kit/server/generated/v2.2.1/practitioner_role/server_inquire_request_must_support_practitioner_role_test.rb +42 -0
  329. data/lib/davinci_pas_test_kit/server/generated/v2.2.1/practitioner_role/server_inquire_response_must_support_practitioner_role_test.rb +40 -0
  330. data/lib/davinci_pas_test_kit/server/generated/v2.2.1/practitioner_role/server_submit_request_must_support_practitioner_role_test.rb +42 -0
  331. data/lib/davinci_pas_test_kit/server/generated/v2.2.1/practitioner_role/server_submit_response_must_support_practitioner_role_test.rb +40 -0
  332. data/lib/davinci_pas_test_kit/server/generated/v2.2.1/requestor/server_inquire_request_must_support_requestor_test.rb +52 -0
  333. data/lib/davinci_pas_test_kit/server/generated/v2.2.1/requestor/server_inquire_response_must_support_requestor_test.rb +50 -0
  334. data/lib/davinci_pas_test_kit/server/generated/v2.2.1/requestor/server_submit_request_must_support_requestor_test.rb +52 -0
  335. data/lib/davinci_pas_test_kit/server/generated/v2.2.1/requestor/server_submit_response_must_support_requestor_test.rb +50 -0
  336. data/lib/davinci_pas_test_kit/server/generated/v2.2.1/server_suite.rb +148 -0
  337. data/lib/davinci_pas_test_kit/server/generated/v2.2.1/subscriber/server_inquire_request_must_support_subscriber_test.rb +54 -0
  338. data/lib/davinci_pas_test_kit/server/generated/v2.2.1/subscriber/server_submit_request_must_support_subscriber_test.rb +54 -0
  339. data/lib/davinci_pas_test_kit/server/generated/v2.2.1/task/server_inquire_response_must_support_task_test.rb +55 -0
  340. data/lib/davinci_pas_test_kit/server/generated/v2.2.1/task/server_submit_response_must_support_task_test.rb +55 -0
  341. data/lib/davinci_pas_test_kit/server/pas_claim_response_decision_test.rb +73 -0
  342. data/lib/davinci_pas_test_kit/server/server_request_bundle_validation_test.rb +64 -0
  343. data/lib/davinci_pas_test_kit/server/server_response_bundle_validation_test.rb +76 -0
  344. data/lib/davinci_pas_test_kit/{custom_groups → server}/v2.0.1/error_tests/pas_inquiry_error_test.rb +2 -2
  345. data/lib/davinci_pas_test_kit/{custom_groups → server}/v2.0.1/error_tests/pas_submission_error_test.rb +2 -2
  346. data/lib/davinci_pas_test_kit/{custom_groups/v2.0.1/must_support/pas_server_must_support_requirement_test.rb → server/v2.0.1/must_support/pas_server_must_support_request_profiles_test.rb} +12 -45
  347. data/lib/davinci_pas_test_kit/{custom_groups → server}/v2.0.1/pas_error_group.rb +3 -3
  348. data/lib/davinci_pas_test_kit/{custom_groups → server}/v2.0.1/pas_server_subscription_input_conformance.rb +5 -3
  349. data/lib/davinci_pas_test_kit/server/v2.0.1/pas_server_subscription_notification_wait_test.rb +12 -0
  350. data/lib/davinci_pas_test_kit/{custom_groups → server}/v2.0.1/pas_server_subscription_setup.rb +5 -3
  351. data/lib/davinci_pas_test_kit/server/v2.0.1/server_urls.rb +13 -0
  352. data/lib/davinci_pas_test_kit/server/v2.2.1/claim_updates/server_claim_update_response_tests.rb +143 -0
  353. data/lib/davinci_pas_test_kit/server/v2.2.1/error_tests/nonconformant_pas_bundle.json +16 -0
  354. data/lib/davinci_pas_test_kit/server/v2.2.1/error_tests/pas_inquiry_error_test.rb +38 -0
  355. data/lib/davinci_pas_test_kit/server/v2.2.1/error_tests/pas_submission_error_test.rb +56 -0
  356. data/lib/davinci_pas_test_kit/server/v2.2.1/must_support/pas_server_must_support_request_profiles_test.rb +86 -0
  357. data/lib/davinci_pas_test_kit/server/v2.2.1/pas_error_group.rb +20 -0
  358. data/lib/davinci_pas_test_kit/server/v2.2.1/pas_server_claim_updates_group.rb +104 -0
  359. data/lib/davinci_pas_test_kit/server/v2.2.1/pas_server_subscription_input_conformance.rb +48 -0
  360. data/lib/davinci_pas_test_kit/server/v2.2.1/pas_server_subscription_notification_wait_test.rb +12 -0
  361. data/lib/davinci_pas_test_kit/server/v2.2.1/pas_server_subscription_setup.rb +42 -0
  362. data/lib/davinci_pas_test_kit/server/v2.2.1/server_urls.rb +13 -0
  363. data/lib/davinci_pas_test_kit/version.rb +2 -2
  364. data/lib/davinci_pas_test_kit.rb +5 -2
  365. metadata +386 -190
  366. data/config/presets/pas_server_subscription_creation_against_pas_client.json +0 -32
  367. data/lib/davinci_pas_test_kit/custom_groups/v2.0.1/claim_response_decision/pas_claim_response_decision_test.rb +0 -43
  368. data/lib/davinci_pas_test_kit/custom_groups/v2.0.1/client_registration/configuration_other_display_test.rb +0 -46
  369. data/lib/davinci_pas_test_kit/custom_groups/v2.0.1/client_registration/configuration_smart_display_test.rb +0 -37
  370. data/lib/davinci_pas_test_kit/custom_groups/v2.0.1/client_registration/configuration_udap_display_test.rb +0 -37
  371. data/lib/davinci_pas_test_kit/custom_groups/v2.0.1/client_registration/other_auth_attest_test.rb +0 -36
  372. data/lib/davinci_pas_test_kit/custom_groups/v2.0.1/client_tests/pas_client_approval_submit_test.rb +0 -80
  373. data/lib/davinci_pas_test_kit/custom_groups/v2.0.1/client_tests/pas_client_denial_submit_test.rb +0 -79
  374. data/lib/davinci_pas_test_kit/custom_groups/v2.0.1/client_tests/pas_client_inquire_must_support_test.rb +0 -63
  375. data/lib/davinci_pas_test_kit/custom_groups/v2.0.1/client_tests/pas_client_response_attest.rb +0 -52
  376. data/lib/davinci_pas_test_kit/custom_groups/v2.0.1/client_tests/pas_client_submit_must_support_test.rb +0 -72
  377. data/lib/davinci_pas_test_kit/custom_groups/v2.0.1/client_tests/pas_client_subscription_create_test.rb +0 -62
  378. data/lib/davinci_pas_test_kit/custom_groups/v2.0.1/client_tests/pas_client_subscription_pas_conformance_test.rb +0 -30
  379. data/lib/davinci_pas_test_kit/custom_groups/v2.0.1/pas_client_must_support_group.rb +0 -29
  380. data/lib/davinci_pas_test_kit/custom_groups/v2.0.1/pas_client_options.rb +0 -25
  381. data/lib/davinci_pas_test_kit/endpoints/claim_endpoint.rb +0 -157
  382. data/lib/davinci_pas_test_kit/fhir_resource_navigation.rb +0 -72
  383. data/lib/davinci_pas_test_kit/generated/v2.0.1/claim/claim_operation_test.rb +0 -67
  384. data/lib/davinci_pas_test_kit/generated/v2.0.1/claim_inquiry/claim_inquiry_operation_test.rb +0 -56
  385. data/lib/davinci_pas_test_kit/generated/v2.0.1/communication_request/server_submit_response_communication_request_must_support_test.rb +0 -63
  386. data/lib/davinci_pas_test_kit/generated/v2.0.1/coverage/client_inquire_request_coverage_must_support_test.rb +0 -60
  387. data/lib/davinci_pas_test_kit/generated/v2.0.1/coverage/client_submit_request_coverage_must_support_test.rb +0 -60
  388. data/lib/davinci_pas_test_kit/generated/v2.0.1/coverage/server_inquire_request_coverage_must_support_test.rb +0 -62
  389. data/lib/davinci_pas_test_kit/generated/v2.0.1/coverage/server_submit_request_coverage_must_support_test.rb +0 -62
  390. data/lib/davinci_pas_test_kit/generated/v2.0.1/device_request/client_submit_request_device_request_must_support_test.rb +0 -56
  391. data/lib/davinci_pas_test_kit/generated/v2.0.1/device_request/server_submit_request_device_request_must_support_test.rb +0 -58
  392. data/lib/davinci_pas_test_kit/generated/v2.0.1/insurer/client_inquire_request_insurer_must_support_test.rb +0 -65
  393. data/lib/davinci_pas_test_kit/generated/v2.0.1/insurer/client_submit_request_insurer_must_support_test.rb +0 -65
  394. data/lib/davinci_pas_test_kit/generated/v2.0.1/insurer/server_inquire_request_insurer_must_support_test.rb +0 -67
  395. data/lib/davinci_pas_test_kit/generated/v2.0.1/insurer/server_inquire_response_insurer_must_support_test.rb +0 -65
  396. data/lib/davinci_pas_test_kit/generated/v2.0.1/insurer/server_submit_request_insurer_must_support_test.rb +0 -67
  397. data/lib/davinci_pas_test_kit/generated/v2.0.1/insurer/server_submit_response_insurer_must_support_test.rb +0 -65
  398. data/lib/davinci_pas_test_kit/generated/v2.0.1/medication_request/client_submit_request_medication_request_must_support_test.rb +0 -66
  399. data/lib/davinci_pas_test_kit/generated/v2.0.1/medication_request/server_submit_request_medication_request_must_support_test.rb +0 -68
  400. data/lib/davinci_pas_test_kit/generated/v2.0.1/nutrition_order/client_submit_request_nutrition_order_must_support_test.rb +0 -58
  401. data/lib/davinci_pas_test_kit/generated/v2.0.1/nutrition_order/server_submit_request_nutrition_order_must_support_test.rb +0 -60
  402. data/lib/davinci_pas_test_kit/generated/v2.0.1/pas_client_inquiry_must_support_use_case_group.rb +0 -51
  403. data/lib/davinci_pas_test_kit/generated/v2.0.1/pas_client_submit_must_support_use_case_group.rb +0 -61
  404. data/lib/davinci_pas_test_kit/generated/v2.0.1/pas_inquiry_request_bundle/client_inquire_request_pas_inquiry_request_bundle_must_support_test.rb +0 -58
  405. data/lib/davinci_pas_test_kit/generated/v2.0.1/pas_inquiry_request_bundle/server_inquire_request_pas_inquiry_request_bundle_must_support_test.rb +0 -60
  406. data/lib/davinci_pas_test_kit/generated/v2.0.1/pas_inquiry_request_bundle/server_pas_inquiry_request_bundle_validation_test.rb +0 -95
  407. data/lib/davinci_pas_test_kit/generated/v2.0.1/pas_inquiry_response_bundle/server_inquire_response_pas_inquiry_response_bundle_must_support_test.rb +0 -57
  408. data/lib/davinci_pas_test_kit/generated/v2.0.1/pas_inquiry_response_bundle/server_pas_inquiry_response_bundle_validation_test.rb +0 -89
  409. data/lib/davinci_pas_test_kit/generated/v2.0.1/pas_request_bundle/client_submit_request_pas_request_bundle_must_support_test.rb +0 -58
  410. data/lib/davinci_pas_test_kit/generated/v2.0.1/pas_request_bundle/server_pas_request_bundle_validation_test.rb +0 -95
  411. data/lib/davinci_pas_test_kit/generated/v2.0.1/pas_request_bundle/server_submit_request_pas_request_bundle_must_support_test.rb +0 -60
  412. data/lib/davinci_pas_test_kit/generated/v2.0.1/pas_response_bundle/server_pas_response_bundle_validation_test.rb +0 -89
  413. data/lib/davinci_pas_test_kit/generated/v2.0.1/pas_response_bundle/server_submit_response_pas_response_bundle_must_support_test.rb +0 -57
  414. data/lib/davinci_pas_test_kit/generated/v2.0.1/pas_server_approval_use_case_group.rb +0 -54
  415. data/lib/davinci_pas_test_kit/generated/v2.0.1/pas_server_denial_use_case_group.rb +0 -54
  416. data/lib/davinci_pas_test_kit/generated/v2.0.1/pas_server_must_support_use_case_group.rb +0 -268
  417. data/lib/davinci_pas_test_kit/generated/v2.0.1/pas_server_pended_use_case_group.rb +0 -90
  418. data/lib/davinci_pas_test_kit/generated/v2.0.1/practitioner/client_inquire_request_practitioner_must_support_test.rb +0 -58
  419. data/lib/davinci_pas_test_kit/generated/v2.0.1/practitioner/client_submit_request_practitioner_must_support_test.rb +0 -58
  420. data/lib/davinci_pas_test_kit/generated/v2.0.1/practitioner/server_inquire_request_practitioner_must_support_test.rb +0 -60
  421. data/lib/davinci_pas_test_kit/generated/v2.0.1/practitioner/server_inquire_response_practitioner_must_support_test.rb +0 -58
  422. data/lib/davinci_pas_test_kit/generated/v2.0.1/practitioner/server_submit_request_practitioner_must_support_test.rb +0 -60
  423. data/lib/davinci_pas_test_kit/generated/v2.0.1/practitioner/server_submit_response_practitioner_must_support_test.rb +0 -58
  424. data/lib/davinci_pas_test_kit/generated/v2.0.1/practitioner_role/client_inquire_request_practitioner_role_must_support_test.rb +0 -54
  425. data/lib/davinci_pas_test_kit/generated/v2.0.1/practitioner_role/client_submit_request_practitioner_role_must_support_test.rb +0 -54
  426. data/lib/davinci_pas_test_kit/generated/v2.0.1/practitioner_role/server_inquire_request_practitioner_role_must_support_test.rb +0 -56
  427. data/lib/davinci_pas_test_kit/generated/v2.0.1/practitioner_role/server_inquire_response_practitioner_role_must_support_test.rb +0 -54
  428. data/lib/davinci_pas_test_kit/generated/v2.0.1/practitioner_role/server_submit_request_practitioner_role_must_support_test.rb +0 -56
  429. data/lib/davinci_pas_test_kit/generated/v2.0.1/practitioner_role/server_submit_response_practitioner_role_must_support_test.rb +0 -54
  430. data/lib/davinci_pas_test_kit/generated/v2.0.1/requestor/client_inquire_request_requestor_must_support_test.rb +0 -68
  431. data/lib/davinci_pas_test_kit/generated/v2.0.1/requestor/client_submit_request_requestor_must_support_test.rb +0 -68
  432. data/lib/davinci_pas_test_kit/generated/v2.0.1/requestor/server_inquire_response_requestor_must_support_test.rb +0 -68
  433. data/lib/davinci_pas_test_kit/generated/v2.0.1/requestor/server_submit_response_requestor_must_support_test.rb +0 -68
  434. data/lib/davinci_pas_test_kit/generated/v2.0.1/resource_list.rb +0 -54
  435. data/lib/davinci_pas_test_kit/generated/v2.0.1/service_request/client_submit_request_service_request_must_support_test.rb +0 -58
  436. data/lib/davinci_pas_test_kit/generated/v2.0.1/service_request/server_submit_request_service_request_must_support_test.rb +0 -60
  437. data/lib/davinci_pas_test_kit/generated/v2.0.1/task/server_inquire_response_task_must_support_test.rb +0 -66
  438. data/lib/davinci_pas_test_kit/generated/v2.0.1/task/server_submit_response_task_must_support_test.rb +0 -66
  439. data/lib/davinci_pas_test_kit/generator/group_generator.rb +0 -470
  440. data/lib/davinci_pas_test_kit/generator/group_metadata.rb +0 -73
  441. data/lib/davinci_pas_test_kit/generator/naming.rb +0 -50
  442. data/lib/davinci_pas_test_kit/generator/operation_test_generator.rb +0 -149
  443. data/lib/davinci_pas_test_kit/generator/resource_list_generator.rb +0 -59
  444. data/lib/davinci_pas_test_kit/generator/templates/group.rb.erb +0 -136
  445. data/lib/davinci_pas_test_kit/generator/templates/operation.rb.erb +0 -65
  446. data/lib/davinci_pas_test_kit/generator/templates/resource_list.rb.erb +0 -13
  447. data/lib/davinci_pas_test_kit/generator/templates/validation.rb.erb +0 -99
  448. data/lib/davinci_pas_test_kit/generator/validation_test_generator.rb +0 -172
  449. data/lib/davinci_pas_test_kit/generator/value_extractor.rb +0 -51
  450. data/lib/davinci_pas_test_kit/must_support_test.rb +0 -71
  451. data/lib/davinci_pas_test_kit/pas_subscription_verification.rb +0 -30
  452. data/lib/davinci_pas_test_kit/tags.rb +0 -17
  453. data/lib/davinci_pas_test_kit/user_input_response.rb +0 -35
  454. data/lib/davinci_pas_test_kit/validation_test.rb +0 -57
  455. /data/lib/davinci_pas_test_kit/{certs → client/certs}/InfernoCA.key +0 -0
  456. /data/lib/davinci_pas_test_kit/{certs → client/certs}/InfernoCA.pem +0 -0
  457. /data/lib/davinci_pas_test_kit/{certs → client/certs}/TestKit.pem +0 -0
  458. /data/lib/davinci_pas_test_kit/{certs → client/certs}/TestKitPrivateKey.key +0 -0
  459. /data/lib/davinci_pas_test_kit/{descriptions.rb → client/client_input_descriptions.rb} +0 -0
  460. /data/lib/davinci_pas_test_kit/{custom_groups → client}/v2.0.1/pas_client_workflows_group.rb +0 -0
  461. /data/lib/davinci_pas_test_kit/{custom_groups → server}/v2.0.1/error_tests/nonconformant_pas_bundle.json +0 -0
@@ -0,0 +1,212 @@
1
+ Req Set,ID,URL,Requirement,Conformance,Actors,Conditionality,Not Tested Reason,Not Tested Details,Da Vinci PAS Server Suite v2.2.1 Short ID(s),Da Vinci PAS Server Suite v2.2.1 Full ID(s)
2
+ hl7.fhir.us.davinci-pas_2.2.1,ainfo-1,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/additionalinfo.html#ci-c-ainfo-1,"Payers **SHOULD** attempt to use the initial DTR invocation to gather all relevant information relevant to the prior authorization request and only use the ""additional information"" approach when human review or other circumstances not known at the time of the initial DTR call require additional information to be collected.",SHOULD,PAS Payer,false,,,"",""
3
+ hl7.fhir.us.davinci-pas_2.2.1,ainfo-2,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/additionalinfo.html#ci-c-ainfo-2,A payer **MAY** request additional information from the provider to support a prior authorization request by responding to the X12 278 Request with an X12 278 Response,MAY,PAS Payer,false,,,"",""
4
+ hl7.fhir.us.davinci-pas_2.2.1,ainfo-3,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/additionalinfo.html#ci-c-ainfo-3,"When a single LOINC code is used, the TRN at the X12 278 header or line level associated with the 102089-0 LOINC code **SHALL** be the DTR context ID used to retrieve the appropriate questionnaire.",SHALL,PAS Payer,false,,,"",""
5
+ hl7.fhir.us.davinci-pas_2.2.1,conf-1,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/conformance.html#ci-c-conf-1,Payers **SHALL** have a distinct endpoint for each different supported version (which are not inter-version compatible) of the PAS specification.,SHALL,PAS Payer,false,,,"",""
6
+ hl7.fhir.us.davinci-pas_2.2.1,conf-2,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/conformance.html#ci-c-conf-2,"If a payer supports endpoint discovery, they **SHALL** have at most a single endpoint for each combination of version of the specification and coverage (e.g., Medicare, Medicaid, or commercial) they provide coverage under.",SHALL,PAS Payer,false,,,"",""
7
+ hl7.fhir.us.davinci-pas_2.2.1,conf-3,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/conformance.html#ci-c-conf-3,"If a payer does not support endpoint discovery, they **SHALL** expose only one PAS endpoint of each supported version capable of handling all coverages.",SHALL,PAS Payer,false,,,"",""
8
+ hl7.fhir.us.davinci-pas_2.2.1,conf-4,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/conformance.html#ci-c-conf-4,PA Intermediary Systems **SHALL** be capable of processing all data elements that are marked as Must Support on the Claim Request and Claim Inquiry.,SHALL,PAS Payer,false,,,"",""
9
+ hl7.fhir.us.davinci-pas_2.2.1,conf-5,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/conformance.html#ci-c-conf-5,They **SHALL NOT** generate an error or cause the application to fail due the presence of any data element marked as Must Support.,SHALL NOT,PAS Payer,false,,,"",""
10
+ hl7.fhir.us.davinci-pas_2.2.1,conf-6,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/conformance.html#ci-c-conf-6,PA Intermediary Systems **SHALL** be capable of returning resource instances containing any of the data elements that are marked as Must Support on the Claim Response and the Claim Inquiry Response.,SHALL,PAS Payer,false,,,"",""
11
+ hl7.fhir.us.davinci-pas_2.2.1,conf-10,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/conformance.html#ci-c-conf-10,"If these data elements are included in a Claim Request or Claim Inquiry, the receiving PA Intermediary System **MAY** ignore those elements.",MAY,PAS Payer,false,,,"",""
12
+ hl7.fhir.us.davinci-pas_2.2.1,conf-11,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/conformance.html#ci-c-conf-11,"When processing prior auth requests and additional data submissions, PAS services **SHALL NOT** depend on or set expectations for the inclusion of resource instances not compliant with profiles defined in this guide, CRD, DTR, HRex, or US Core.",SHALL NOT,PAS Payer,false,,,"",""
13
+ hl7.fhir.us.davinci-pas_2.2.1,conf-12,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/conformance.html#ci-c-conf-12,"Similarly, they **SHALL NOT** depend on or set expectations for the inclusion of any data elements not marked as mandatory (min cardinality >= 1) or mustSupport in those profiles.",SHALL NOT,PAS Payer,false,,,"",""
14
+ hl7.fhir.us.davinci-pas_2.2.1,conf-13,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/conformance.html#ci-c-conf-13,"If the proposed change is adopted and published in the PAS continuous integration build or the CI build of one of its dependencies (e.g. US Core), implementations **MAY**, by mutual agreement, pre-adopt the use of those additional profiles and/or mustSupport data elements and not be considered in violation of #1 above.",MAY,"PAS Client,PAS Payer",false,,,"",""
15
+ hl7.fhir.us.davinci-pas_2.2.1,conf-14,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/conformance.html#ci-c-conf-14,"Where cardinality and other constraints present in profiles allow data elements to be omitted, PAS compliant systems **SHALL NOT** treat the omission of those elements as a conformance error.",SHALL NOT,"PAS Client,PAS Payer",false,,,"",""
16
+ hl7.fhir.us.davinci-pas_2.2.1,conf-15,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/conformance.html#ci-c-conf-15,PAS clients and services **SHALL** use standard PAS data elements (i.e. elements found within PAS-defined or inherited profiles and marked as mandatory or mustSupport) to communicate needed data if such elements are intended to convey such information.,SHALL,"PAS Client,PAS Payer",false,,,"",""
17
+ hl7.fhir.us.davinci-pas_2.2.1,conf-16,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/conformance.html#ci-c-conf-16,"PAS implementing organizations **SHALL NOT** publish guidance setting expectations for where certain data elements are conveyed within PAS and inherited data structures, but **MAY** submit change requests to PAS, HRex, or US Core requesting that additional guidance be provided to implementers on data structure usage to increase consistency across implementations.",SHALL NOT / MAY,"PAS Client,PAS Payer",false,,,"",""
18
+ hl7.fhir.us.davinci-pas_2.2.1,metric-1,https://hl7.org/fhir/us/davinci-pas/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 / MAY,"PAS Client,PAS Payer",false,,,"",""
19
+ hl7.fhir.us.davinci-pas_2.2.1,metric-2,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/metrics.html#ci-c-metric-2,PAS implementers **SHOULD** store information for each PAS call in a manner that would allow them to respond to measures based on this logical model.,SHOULD,"PAS Client,PAS Payer",false,,,"",""
20
+ hl7.fhir.us.davinci-pas_2.2.1,priv-2,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/privacy.html#ci-c-priv-2,Payers who do not view the FHIR version of the transmitted information **SHOULD** be aware of the possibility of these limitations and ensure they have policies that enforce appropriate sharing constraints on data.,SHOULD,PAS Payer,false,,,"",""
21
+ hl7.fhir.us.davinci-pas_2.2.1,priv-3,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/privacy.html#ci-c-priv-3,PAS Servers **SHOULD** support server-server OAuth and **MAY** support mutually authenticated TLS.,SHOULD / MAY,PAS Payer,false,,,"",""
22
+ hl7.fhir.us.davinci-pas_2.2.1,prof-2,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/StructureDefinition-profile-quantity.html#ci-c-prof-2,Quantities **SHALL** have a value and either a unit or a code,SHALL,"PAS Client,PAS Payer",false,,,"",""
23
+ hl7.fhir.us.davinci-pas_2.2.1,prof-3,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/StructureDefinition-profile-quantity.html#ci-c-prof-3,"If a quantity code is present, it **SHALL** use the X12 quantity units.",SHALL,"PAS Client,PAS Payer",false,,,"",""
24
+ hl7.fhir.us.davinci-pas_2.2.1,prof-ben-1,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/StructureDefinition-profile-beneficiary.html#ci-c-prof-ben-1,"X12 standard requires no dash for ZIP+4 codes and that intermediaries **SHALL** expect the dash to be present and **SHALL** remove the dash, if present, when converting the zip code to meet the X12 standard.",SHALL,PAS Payer,false,,,"",""
25
+ hl7.fhir.us.davinci-pas_2.2.1,prof-sub-1,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/StructureDefinition-profile-subscriber.html#ci-c-prof-sub-1,"X12 standard requires no dash for ZIP+4 codes and that intermediaries **SHALL** expect the dash to be present and **SHALL** remove the dash, if present, when converting the zip code to meet the X12 standard.",SHALL,PAS Payer,false,,,"",""
26
+ hl7.fhir.us.davinci-pas_2.2.1,spec-1,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/specification.html#ci-c-spec-1,"Along with the profiles defined in the PAS implementation guide, implementations **SHALL** also support the relevant US Core profiles for supplementary information.",SHALL,"PAS Client,PAS Payer",true,,,"",""
27
+ hl7.fhir.us.davinci-pas_2.2.1,spec-2,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/specification.html#ci-c-spec-2,They **SHOULD** support any other profiles relevant to the types of prior authorizations they process.,SHOULD,"PAS Client,PAS Payer",true,,,"",""
28
+ hl7.fhir.us.davinci-pas_2.2.1,spec-3,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/specification.html#ci-c-spec-3,Clients and Servers supporting this implementation guide **SHOULD** also comply with the Da Vinci [Coverage Requirements Discovery (CRD)](http://www.hl7.org/fhir/us/davinci-crd) and [Documentation Templates and Rules (DTR)](http://www.hl7.org/fhir/us/davinci-dtr) implementation guides.,SHOULD,"PAS Client,PAS Payer",true,,,"",""
29
+ hl7.fhir.us.davinci-pas_2.2.1,spec-4,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/specification.html#ci-c-spec-4,Every system claiming conformance to this IG **SHALL** comply with the [Security and Privacy page in the Da Vinci HRex guide](http://hl7.org/fhir/us/davinci-hrex/security.html).,SHALL,"PAS Client,PAS Payer",true,,,"",""
30
+ hl7.fhir.us.davinci-pas_2.2.1,spec-5,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/specification.html#ci-c-spec-5,"If a payer supports endpoint discovery, they **SHALL** have at most a single endpoint for each coverage (e.g., Medicare, Medicaid, or commercial) they provide coverage under.",SHALL,PAS Payer,true,,,"",""
31
+ hl7.fhir.us.davinci-pas_2.2.1,spec-6,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/specification.html#ci-c-spec-6,"If a payer does not support endpoint discovery, they **SHALL** expose only one PAS endpoint capable of handling all coverages.",SHALL,PAS Payer,true,,,"",""
32
+ hl7.fhir.us.davinci-pas_2.2.1,spec-7,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/specification.html#ci-c-spec-7,All of this **SHOULD** happen synchronously with a maximum of 15 seconds between the user initiating the prior authorization request and seeing the resulting response - i.e. including network transmission time for request and response.,SHOULD,PAS Payer,false,,,"",""
33
+ hl7.fhir.us.davinci-pas_2.2.1,spec-9,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/specification.html#ci-c-spec-9,"**NOTE**: The Claim Inquiry response does not include all of the information that can be returned in a request response, such as any request for additional information, so the inquire operation **SHOULD NOT** be used by the client while waiting for final results.",SHOULD NOT,"PAS Payer,PAS Client",false,,,"",""
34
+ hl7.fhir.us.davinci-pas_2.2.1,spec-10,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/specification.html#ci-c-spec-10,Provider and EHR Vendor organizations **MAY** leverage the [payer registry](https://www.hl7.org/fhir/us/davinci-pdex/payertopayerexchange.html#mtls-endpoint-discovery) developed by PDex (which will eventually fold into the national directory under FAST) as a means of determining which endpoints exist for which payers as candidates for configuration.,MAY,PAS Payer,false,,,"",""
35
+ hl7.fhir.us.davinci-pas_2.2.1,spec-11,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/specification.html#ci-c-spec-11,The Bundle **SHALL** be encoded in JSON.,SHALL,PAS Payer,false,,,"",""
36
+ hl7.fhir.us.davinci-pas_2.2.1,spec-12,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/specification.html#ci-c-spec-12,The first entry in the Bundle **SHALL** be a Claim resource complying with the [profile](StructureDefinition-profile-claim.html) defined in this IG to ensure the content is sufficient to appropriately populate an X12N/005010X217 message.,SHALL,PAS Payer,false,,,"",""
37
+ hl7.fhir.us.davinci-pas_2.2.1,spec-13,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/specification.html#ci-c-spec-13,"Additional Bundle entries **SHALL** be populated with any resources referenced by the Claim resource (and any resources referenced by *those* resources, fully traversing all references and complying with all identified profiles).",SHALL,PAS Payer,false,,,"",""
38
+ hl7.fhir.us.davinci-pas_2.2.1,spec-14,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/specification.html#ci-c-spec-14,Each unique resource instance **SHALL** only appear at most once in the Bundle.,SHALL,PAS Payer,false,,,"",""
39
+ hl7.fhir.us.davinci-pas_2.2.1,spec-15,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/specification.html#ci-c-spec-15,"Only one unique resource instance **SHOULD** be created to represent the same information. In other words, avoid creating multiple Practitioner instances for the same person.",SHOULD,PAS Payer,false,,,"",""
40
+ hl7.fhir.us.davinci-pas_2.2.1,spec-16,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/specification.html#ci-c-spec-16,"Bundle.entry.fullUrl values **SHALL** be:
41
+ - the URL at which the resource is available from the EHR if exposed via the client's REST interface; or
42
+ - the form ""urn:uuid:[some guid]""",SHALL,PAS Payer,false,,,"",""
43
+ hl7.fhir.us.davinci-pas_2.2.1,spec-17,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/specification.html#ci-c-spec-17,"All GUIDs used **SHALL** be unique, including across independent prior authorization submissions - with the exception that the same resource instance being referenced in distinct prior authorization request Bundles can have the same GUID.",SHALL,PAS Payer,false,,,"",""
44
+ hl7.fhir.us.davinci-pas_2.2.1,spec-18,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/specification.html#ci-c-spec-18,"Relevant resources referenced by those ""supporting information"" resources **SHALL** also be included (e.g. prescriber Practitioner and Medication for a MedicationRequest).",SHALL,PAS Payer,false,,,"",""
45
+ hl7.fhir.us.davinci-pas_2.2.1,spec-19,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/specification.html#ci-c-spec-19,Any such resource that has a US Core profile **SHALL** comply with the relevant US Core profiles.,SHALL,PAS Payer,false,,,"",""
46
+ hl7.fhir.us.davinci-pas_2.2.1,spec-20,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/specification.html#ci-c-spec-20,"All ""supporting information"" resources included in the Bundle **SHALL** be pointed to by the Claim resource using the Claim.supportingInfo.valueReference element.",SHALL,PAS Payer,false,,,"",""
47
+ hl7.fhir.us.davinci-pas_2.2.1,spec-21,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/specification.html#ci-c-spec-21,"To attach non-FHIR instance data such as PDFs, CDAs, JPGs, a DocumentReference instance **SHOULD** be used.",SHOULD,PAS Payer,false,,,"",""
48
+ hl7.fhir.us.davinci-pas_2.2.1,spec-22,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/specification.html#ci-c-spec-22,The Claim.supportingInfo.sequence for each entry **SHALL** be unique within the Claim.,SHALL,PAS Payer,false,,,"",""
49
+ hl7.fhir.us.davinci-pas_2.2.1,spec-23,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/specification.html#ci-c-spec-23,All resources **SHALL** comply with their respective profiles.,SHALL,PAS Payer,false,,,"",""
50
+ hl7.fhir.us.davinci-pas_2.2.1,spec-24,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/specification.html#ci-c-spec-24,"FHIR elements not marked as 'must support' **MAY** be included in resources within the Bundle, but client systems **SHOULD** have no expectation of such elements being processed by the payer unless prior arrangements have been made.",SHOULD / MAY,"PAS Client,PAS Payer",false,,,"",""
51
+ hl7.fhir.us.davinci-pas_2.2.1,spec-25,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/specification.html#ci-c-spec-25,"Systems that do not process such elements **SHALL** ignore unsupported elements unless they are 'modifier' elements, in which case the system **MAY** treat the presence of the element as an error.",SHALL / MAY,PAS Payer,false,,,"",""
52
+ hl7.fhir.us.davinci-pas_2.2.1,spec-26,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/specification.html#ci-c-spec-26,"In addition, the system **SHALL** make the entire PAS FHIR Bundle available to the intended payer.",SHALL,PAS Payer,false,,,"",""
53
+ hl7.fhir.us.davinci-pas_2.2.1,spec-27,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/specification.html#ci-c-spec-27,The method **MAY** be based on the X12 275 or another method that trading partners have agreed to use.,MAY,PAS Payer,false,,,"",""
54
+ hl7.fhir.us.davinci-pas_2.2.1,spec-28,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/specification.html#ci-c-spec-28,"If the X12 275 is used for this purpose, the 275 BDS01 Filter ID Code element **SHALL** be set to ""B64"" and the CAT02 Attachment Information Format Code element **SHALL** be sent to ""HL"".",SHALL,PAS Payer,false,,,"",""
55
+ hl7.fhir.us.davinci-pas_2.2.1,spec-29,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/specification.html#ci-c-spec-29,"Translation/mapping systems **SHOULD** be aware that if the size of the attachments as part of a claims submission would exceed the size limitations of a particular recipient, the intermediary **SHOULD** split the attachments into separate 275s to remain within the overall limit.",SHOULD,PAS Payer,false,,,"",""
56
+ hl7.fhir.us.davinci-pas_2.2.1,spec-30,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/specification.html#ci-c-spec-30,The Bundle **SHALL** start with a [ClaimResponse](StructureDefinition-profile-claimresponse-base.html) entry that contains information mapped from the 278 response.,SHALL,PAS Payer,false,,,"",""
57
+ hl7.fhir.us.davinci-pas_2.2.1,spec-31,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/specification.html#ci-c-spec-31,Each unique resource instance **SHALL** only appear at most once in the Bundle.,SHALL,PAS Payer,false,,,"",""
58
+ hl7.fhir.us.davinci-pas_2.2.1,spec-32,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/specification.html#ci-c-spec-32,"Only one unique resource instance **SHOULD** be created to represent the same information. In other words, avoid creating multiple Practitioner instances for the same person.",SHOULD,PAS Payer,false,,,"",""
59
+ hl7.fhir.us.davinci-pas_2.2.1,spec-33,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/specification.html#ci-c-spec-33,"When echoing back resources that are the same as were present in the prior authorization request, the system **SHALL** ensure that the same fullUrl and resource identifiers are used in the response as appeared in the request.",SHALL,PAS Payer,false,,,"",""
60
+ hl7.fhir.us.davinci-pas_2.2.1,spec-34,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/specification.html#ci-c-spec-34,Each item returned on the PAS ClaimResponse **SHALL** echo the same item.sequence as that same item had on the Claim. The item.sequence element **SHALL** serve as the main tracing identifier of items throughout requests and responses.,SHALL,PAS Payer,false,,,2.4.5.01,davinci_pas_server_suite_v221-Group02-pas_server_v221_claim_updates-Group05-pas_server_v221_claim_update_item_sequence_echo_test
61
+ hl7.fhir.us.davinci-pas_2.2.1,spec-35,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/specification.html#ci-c-spec-35,"In the case of an error in an Operation invocation (e.g., 4XX error), the receiving system **SHALL** return a single OperationOutcome that details why the Bundle could not be processed.",SHALL,PAS Payer,false,,,"",""
62
+ hl7.fhir.us.davinci-pas_2.2.1,spec-36,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/specification.html#ci-c-spec-36,"For instances where the authorized item is a modification of the requested item, the requested item details **SHALL** be returned in the ClaimResponse.item with an adjudication status of A6 - 'Modified'.",SHALL,PAS Payer,false,,,"",""
63
+ hl7.fhir.us.davinci-pas_2.2.1,spec-37,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/specification.html#ci-c-spec-37,The details of what was actually item **SHALL** be returned in the ClaimResponse.addItem.,SHALL,PAS Payer,false,,,"",""
64
+ hl7.fhir.us.davinci-pas_2.2.1,spec-38,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/specification.html#ci-c-spec-38,Recipients of the transactions **SHOULD** respond as indicated below and senders of the transaction **SHOULD** look for the following responses and then take appropriate actions.,SHOULD,"PAS Client,PAS Payer",false,,,"",""
65
+ hl7.fhir.us.davinci-pas_2.2.1,spec-39,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/specification.html#ci-c-spec-39,All transactions in PAS are synchronous and **SHALL** require one of the following HTTP responses:,SHALL,PAS Payer,false,,,"",""
66
+ hl7.fhir.us.davinci-pas_2.2.1,spec-41,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/specification.html#ci-c-spec-41,NOTE: These errors **SHOULD** not be returned to the provider but **SHOULD** be reviewed and addressed by technical staff.,SHOULD,PAS Payer,false,,,"",""
67
+ hl7.fhir.us.davinci-pas_2.2.1,spec-43,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/specification.html#ci-c-spec-43,Intermediaries **SHALL** interpret the 'not-applicable' code as no product or service code.,SHALL,PAS Payer,false,,,"",""
68
+ hl7.fhir.us.davinci-pas_2.2.1,spec-44,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/specification.html#ci-c-spec-44,This Claim Inquiry Response **SHALL** either reference a Claim or have a Data Absent Reason indicating why the Claim can not be referenced (eg. original claim received by fax).,SHALL,PAS Payer,false,,,"",""
69
+ hl7.fhir.us.davinci-pas_2.2.1,spec-45,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/specification.html#ci-c-spec-45,The referenced Claim instance **SHOULD** be returned if there is information in the Response that needs to be present can not be returned in the Claim Response instance.,SHOULD,PAS Payer,false,,,"",""
70
+ hl7.fhir.us.davinci-pas_2.2.1,spec-46,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/specification.html#ci-c-spec-46,"the returned ClaimResponse **SHALL** include the current results for all submitted items, including any items changed or canceled since the original authoriation request.",SHALL,PAS Payer,false,,,2.4.5.02,davinci_pas_server_suite_v221-Group02-pas_server_v221_claim_updates-Group05-pas_server_v221_claim_update_current_results_test
71
+ hl7.fhir.us.davinci-pas_2.2.1,spec-47,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/specification.html#ci-c-spec-47,"if a specific reference number (either the REF-NT or REF-BB) is submitted and is not the 'current' number (because subsequent additions/changes/cancellations have been made to the prior authorization request), the returned record **SHALL** be the current authorization response - even though it no longer has the same identifier.",SHALL,"PAS Client,PAS Payer",false,,,"",""
72
+ hl7.fhir.us.davinci-pas_2.2.1,spec-48,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/specification.html#ci-c-spec-48,"I.e. If a search is for a 'replaced' prior authorization, the search result **SHALL** include the 'current' prior authorization response for the most recent replacing prior authorization request.",SHALL,PAS Payer,false,,,"",""
73
+ hl7.fhir.us.davinci-pas_2.2.1,spec-49,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/specification.html#ci-c-spec-49,systems **MAY** withhold information about prior authorizations that are 'open' but are deemed to be not relevant to the provider (eg. prior authorization requests for sensitive care where the requesting provider is neither the ordering nor rendering provider) who is checking for the prior authorization status if not searching by a specific Claim identifier.,MAY,PAS Payer,false,,,"",""
74
+ hl7.fhir.us.davinci-pas_2.2.1,spec-50,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/specification.html#ci-c-spec-50,In such situations the response **SHOULD** include an OperationOutcome warning that some prior authorizations have been suppressed and provide an alternative mechanism (e.g. telephone number) to provide further information if needed.,SHOULD,PAS Payer,false,,,"",""
75
+ hl7.fhir.us.davinci-pas_2.2.1,spec-51,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/specification.html#ci-c-spec-51,Implementers **SHALL** support subscriptions to provide the final response.,SHALL,PAS Payer,false,,,"",""
76
+ hl7.fhir.us.davinci-pas_2.2.1,spec-52,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/specification.html#ci-c-spec-52,Servers **SHALL** permit access to the prior authorization response to systems other than the original submitter.,SHALL,PAS Payer,false,,,"",""
77
+ hl7.fhir.us.davinci-pas_2.2.1,spec-53,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/specification.html#ci-c-spec-53,"They **SHALL** require a match on the patient member or subscriber id (identifier on the Claim.patient) plus the ordering and/or rendering provider identifier, i.e. the provider's NPI.",SHALL,PAS Payer,false,,,"",""
78
+ hl7.fhir.us.davinci-pas_2.2.1,spec-54,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/specification.html#ci-c-spec-54,Implementers **SHALL** support the R4 Subscriptions referenced in the [Subscriptions for R5 Backport Implementation Guide](http://hl7.org/fhir/uv/subscriptions-backport/).,SHALL,PAS Payer,false,,,"",""
79
+ hl7.fhir.us.davinci-pas_2.2.1,spec-55,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/specification.html#ci-c-spec-55,Servers supporting subscriptions **SHALL** expose this as part of their CapabilityStatement,SHALL,PAS Payer,false,,,"",""
80
+ hl7.fhir.us.davinci-pas_2.2.1,spec-56,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/specification.html#ci-c-spec-56,Servers **SHALL** only support the [rest-hook channel type](https://hl7.org/fhir/uv/subscriptions-backport/channels.html#rest-hook-1),SHALL,PAS Payer,false,,,"",""
81
+ hl7.fhir.us.davinci-pas_2.2.1,spec-57,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/specification.html#ci-c-spec-57,This Subscription **SHALL** conform to the [PAS Subscription profile](StructureDefinition-profile-subscription.html).,SHALL,PAS Payer,false,,,"",""
82
+ hl7.fhir.us.davinci-pas_2.2.1,spec-58,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/specification.html#ci-c-spec-58,The Subscription filter criteria **SHALL** be org-identifier = [sending system identifier].,SHALL,PAS Payer,false,,,"",""
83
+ hl7.fhir.us.davinci-pas_2.2.1,spec-59,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/specification.html#ci-c-spec-59,Intermediaries **SHALL** ensure that subscriptions to monitor a particular sending system's prior authorizations are only created or modified by that sending system.,SHALL,PAS Payer,false,,,"",""
84
+ hl7.fhir.us.davinci-pas_2.2.1,spec-60,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/specification.html#ci-c-spec-60,"Once the [subscription](Subscription-PASSubscriptionExample.html) has been created, the Server **SHALL** send a [notification](Bundle-PASSubscriptionNotification.html) over the requested channel indicating that a prior authorization response submitted by the requesting provider organization has changed.",SHALL,PAS Payer,false,,,"",""
85
+ hl7.fhir.us.davinci-pas_2.2.1,spec-61,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/specification.html#ci-c-spec-61,This notification **SHALL** include a full PAS Response Bundle.,SHALL,PAS Payer,false,,,"",""
86
+ hl7.fhir.us.davinci-pas_2.2.1,spec-62,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/specification.html#ci-c-spec-62,"Due to the inquiry not supporting all of the required information needed in a PAS response, PAS Clients and Intermediaries **SHALL** only support subscriptions with content='full-resource'.",SHALL,"PAS Client,PAS Payer",false,,,"",""
87
+ hl7.fhir.us.davinci-pas_2.2.1,spec-64,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/specification.html#ci-c-spec-64,Servers **MAY** reject updates and require that a new request is made by providing the appropriate X12 error code.,MAY,"PAS Client,PAS Payer",false,,,"",""
88
+ hl7.fhir.us.davinci-pas_2.2.1,spec-69,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/specification.html#ci-c-spec-69,Cancelled entries: item and supportingInfo entries that have been removed from the request **SHALL** include the infoCancelled modifier extension with a valueBoolean of `true` in the Claim.item.modifierExtension or Claim.supportingInfo.modifierExtension element.,SHALL,"PAS Client,PAS Payer",false,,,"",""
89
+ hl7.fhir.us.davinci-pas_2.2.1,spec-70,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/specification.html#ci-c-spec-70,Canceled items **SHALL** additionally contain a certificationType extension with a code of 3 (Cancel) in the Claim.item.extension element.,SHALL,"PAS Client,PAS Payer",false,,,"",""
90
+ hl7.fhir.us.davinci-pas_2.2.1,spec-71,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/specification.html#ci-c-spec-71,"Entries added, modified, or cancelled compared to the immediately prior version of the Claim referenced in the Claim.related.claim element **SHALL** contain a [infoChanged extension](StructureDefinition-extension-infoChanged.html) within the Claim.item or the Claim.supportingInfo element.",SHALL,"PAS Client,PAS Payer",false,,,"",""
91
+ hl7.fhir.us.davinci-pas_2.2.1,spec-73,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/specification.html#ci-c-spec-73,PAS systems **SHALL** ensure that prior authorizations that were initially pended remain available for query for at least 6 months after the anticipated completion of the services whose authorization was requested.,SHALL,PAS Payer,false,,,"",""
92
+ hl7.fhir.us.davinci-pas_2.2.1,use-1,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/usecases.html#ci-c-use-1,The intermediary **SHALL** always exchange a FHIR bundle with the EHR (figure 2.3),SHALL,PAS Payer,false,,,"",""
93
+ hl7.fhir.us.davinci-pas_2.2.1,use-2,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/usecases.html#ci-c-use-2,The intermediary **SHALL** convert the FHIR bundle to and from an X12 278 (and optionally to an X12 275) if necessary to meet the HIPAA transaction requirements,SHALL,PAS Payer,false,,,"",""
94
+ hl7.fhir.us.davinci-pas_2.2.1,use-3,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/usecases.html#ci-c-use-3,The intermediary **MAY** convert the X12 278 to and from a FHIR bundle and exchange it with a payer as long as the PA request and response are in an X12 278 format at some time between the exchange with the EHR and the payer,MAY,PAS Payer,false,,,"",""
95
+ hl7.fhir.us.davinci-pas_2.2.1,use-6,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/usecases.html#ci-c-use-6,"All exchanges **SHOULD** meet Federal and state regulations, including any HIPAA restrictions and restrictions on sensitive data.",SHOULD,"PAS Client,PAS Payer",false,,,"",""
96
+ hl7.fhir.uv.subscriptions_1.1.0,2,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/components.html#subscription-topics-in-r4,"In order to allow for discovery of supported subscription topics, this guide defines the CapabilityStatement SubscriptionTopic Canonical extension. The extension allows server implementers to advertise the canonical URLs of topics available to clients and allows clients to see the list of supported topics on a server. The extension is expected to appear, if supported, on the Subscription resource entry. Note that servers are NOT required to advertise supported topics via this extension.",MAY,Server,,,,"",""
97
+ hl7.fhir.uv.subscriptions_1.1.0,3,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/components.html#subscription-topics-in-r4,"Supported topics can also be advertised, for example, by the CapabilityStatement.instantiates or CapabilityStatement.implementationGuide elements of a CapabilityStatement, as defined by another Implementation Guide.",MAY,Server,,Not Verifiable,Not precise enough to be consistently verified,NA,NA
98
+ hl7.fhir.uv.subscriptions_1.1.0,4,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/components.html#subscription-topics-in-r4,"FHIR R4 servers MAY choose to leave topic discovery completely out-of-band and part of other steps, such as registration or integration.",MAY,Server,,Not Tested,"MAY requirement, support for which doesn't imply other requirements. Additionally, meeting this requirement is simply the absence of other features.",NA,NA
99
+ hl7.fhir.uv.subscriptions_1.1.0,7,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/components.html#accepting-subscription-requests,"When a FHIR Server accepts a request to create a Subscription, the server is indicating to the client that the server:
100
+ - is capable of detecting when events covered by the requested SubscriptionTopic occur, and
101
+ - is willing to make a simple best effort attempt at delivering a notification for each occurrence of a matching event.",SHALL,Server,,,,1.03,davinci_pas_server_suite_v221-pas_server_v221_subscription_setup-subscriptions_r4_server_creation_response_conformance
102
+ hl7.fhir.uv.subscriptions_1.1.0,8,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/components.html#accepting-subscription-requests,When processing a request for a Subscription...a server SHOULD validate…that the SubscriptionTopic is valid and implemented by the server,SHOULD,Server,,,,"",""
103
+ hl7.fhir.uv.subscriptions_1.1.0,9,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/components.html#accepting-subscription-requests,When processing a request for a Subscription...a server SHOULD validate…that all requested filters are defined in the requested topic and are implemented in the server,SHOULD,Server,,,,"",""
104
+ hl7.fhir.uv.subscriptions_1.1.0,10,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/components.html#accepting-subscription-requests,When processing a request for a Subscription...a server SHOULD validate…that the channel type is known and implemented by the server,SHOULD,Server,,,,"",""
105
+ hl7.fhir.uv.subscriptions_1.1.0,11,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/components.html#accepting-subscription-requests,"When processing a request for a Subscription...a server SHOULD validate…that the channel endpoint is valid for the channel provided (e.g., is it a valid URL of the expected type)",SHOULD,Server,,,,"",""
106
+ hl7.fhir.uv.subscriptions_1.1.0,12,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/components.html#accepting-subscription-requests,When processing a request for a Subscription...a server SHOULD validate…that the payload configuration is known and implemented by the server,SHOULD,Server,,,,"",""
107
+ hl7.fhir.uv.subscriptions_1.1.0,13,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/components.html#accepting-subscription-requests,"When processing a request for a Subscription...a server SHOULD validate…that the payload configuration is valid for the channel type requested (e.g., complies with the server’s security policy)",SHOULD,Server,,,,"",""
108
+ hl7.fhir.uv.subscriptions_1.1.0,14,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/components.html#subscription-notifications,"In ... FHIR R4 ... notifications are based on a history Bundle. The first entry always contains SubscriptionStatus information, encoded as ... a Parameters resource using the Backport SubscriptionStatus Profile in FHIR R4",SHALL,Server,,,,"1.04, 2.3.2.02, 2.3.2.03","davinci_pas_server_suite_v221-pas_server_v221_subscription_setup-subscriptions_r4_server_handshake_conformance, davinci_pas_server_suite_v221-Group02-pas_server_v221_pended_use_case-Group02-pas_server_v221_subscription_notification_conformance_pended, davinci_pas_server_suite_v221-Group02-pas_server_v221_pended_use_case-Group02-pas_server_v221_subscription_notification_full_resource_conformance_pended"
109
+ hl7.fhir.uv.subscriptions_1.1.0,15,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/components.html#subscription-notifications,"Note that since notifications use history type Bundles, all notifications need to comply with the requirements for that bundle type. Specifically, there are two invariants on Bundle (bdl-3 and bdl-4) that require a Bundle.entry.request element for every Bundle.entry.
110
+ - For the status resource (entry[0]) the request SHALL be filled out to match a request to the $status operation.
111
+ - for additional entries the request SHOULD be filled out in a way that makes sense given the subscription (e.g., a POST or PUT operation on the resource, etc.). However, a server MAY choose to simply include a GET to the relevant resource instead.",SHALL,Server,,,,"1.04, 2.3.2.02, 2.3.2.03","davinci_pas_server_suite_v221-pas_server_v221_subscription_setup-subscriptions_r4_server_handshake_conformance, davinci_pas_server_suite_v221-Group02-pas_server_v221_pended_use_case-Group02-pas_server_v221_subscription_notification_conformance_pended, davinci_pas_server_suite_v221-Group02-pas_server_v221_pended_use_case-Group02-pas_server_v221_subscription_notification_full_resource_conformance_pended"
112
+ hl7.fhir.uv.subscriptions_1.1.0,16,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/components.html#scoping-responsibilities,"Unless otherwise specified by a server implementation and channel, the Subscriptions Framework does not involve guaranteed delivery of notifications. While the Subscriptions Framework is able to support such mechanisms, defining them are beyond the scope of the standard or this guide. - Servers SHOULD detect errors and take appropriate action where possible. In general, this boundary is when the notification is delivered.",SHOULD,Server,,,,"",""
113
+ hl7.fhir.uv.subscriptions_1.1.0,18,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/workflow.html#workflow-fhir-r4,"[When a client requests a Subscription, the] Server MAY accept the Subscription request and mark it active (e.g., supported channel and payload, no handshake required).",MAY,Server,,Not Tested,"MAY requirement, support for which doesn't imply other requirements.",NA,NA
114
+ hl7.fhir.uv.subscriptions_1.1.0,19,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/workflow.html#workflow-fhir-r4,"[When a client requests a Subscription, the] Server MAY accept the Subscription request and mark it requested (e.g., supported channel and payload, handshake required).",MAY,Server,,Not Tested,"MAY requirement, support for which doesn't imply other requirements.",NA,NA
115
+ hl7.fhir.uv.subscriptions_1.1.0,20,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/workflow.html#workflow-fhir-r4,"[When a server sends a handshake bundle to a Subscription endpoint] If the Endpoint responds appropriately, per the channel requirements (e.g., in REST an HTTP Success code such as 200), the Server updates the subscription to active.",SHALL,Server,,,,"",""
116
+ hl7.fhir.uv.subscriptions_1.1.0,21,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/workflow.html#workflow-fhir-r4,"[When a server sends a handshake bundle to a Subscription endpoint] If the handshake fails (e.g., connection failure, bad response, etc.), the Server updates the subscription to error.",SHALL,Server,,,,"",""
117
+ hl7.fhir.uv.subscriptions_1.1.0,22,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/workflow.html#workflow-fhir-r4,"[When a client requests a Subscription, the] Server MAY reject the Subscription request (e.g., unsupported channel type).",MAY,Server,,Not Tested,"MAY requirement, support for which doesn't imply other requirements.",NA,NA
118
+ hl7.fhir.uv.subscriptions_1.1.0,25,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/channels.html#rest-hook-1,"To convey an event notification, the server POSTs a Bundle to the client’s nominated endpoint URL",SHALL,Server,,,,"1.03, 1.04","davinci_pas_server_suite_v221-pas_server_v221_subscription_setup-subscriptions_r4_server_creation_response_conformance, davinci_pas_server_suite_v221-pas_server_v221_subscription_setup-subscriptions_r4_server_handshake_conformance"
119
+ hl7.fhir.uv.subscriptions_1.1.0,26,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/channels.html#rest-hook-1,The content-type of the [server's event notification] POST SHALL match the MIME type on the Subscription ([Subscription.channel.payload](http://hl7.org/fhir/subscription-definitions.html#Subscription.channel.payload)).,SHALL,Server,,,,2.3.2.02,davinci_pas_server_suite_v221-Group02-pas_server_v221_pended_use_case-Group02-pas_server_v221_subscription_notification_conformance_pended
120
+ hl7.fhir.uv.subscriptions_1.1.0,27,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/channels.html#rest-hook-1,Each [Subscription.channel.header](http://hl7.org/fhir/subscription-definitions.html#Subscription.channel.header) value SHALL be conveyed as an HTTP request header [in the server's event notification POST].,SHALL,Server,,,,2.3.2.02,davinci_pas_server_suite_v221-Group02-pas_server_v221_pended_use_case-Group02-pas_server_v221_subscription_notification_conformance_pended
121
+ hl7.fhir.uv.subscriptions_1.1.0,28,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/channels.html#rest-hook-1,The [server's event notification] bundle SHALL comply with the [Backported R5 Notification Bundle Profile](https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/StructureDefinition-backport-subscription-notification.html).,SHALL,Server,,,,"1.04, 2.3.2.02, 2.3.2.03","davinci_pas_server_suite_v221-pas_server_v221_subscription_setup-subscriptions_r4_server_handshake_conformance, davinci_pas_server_suite_v221-Group02-pas_server_v221_pended_use_case-Group02-pas_server_v221_subscription_notification_conformance_pended, davinci_pas_server_suite_v221-Group02-pas_server_v221_pended_use_case-Group02-pas_server_v221_subscription_notification_full_resource_conformance_pended"
122
+ hl7.fhir.uv.subscriptions_1.1.0,29,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/channels.html#rest-hook-1,"When a Subscription is created for a REST Hook channel type, the server SHALL set initial status to requested, pending verification of the nominated endpoint URL.",SHALL,Server,,,,1.03,davinci_pas_server_suite_v221-pas_server_v221_subscription_setup-subscriptions_r4_server_creation_response_conformance
123
+ hl7.fhir.uv.subscriptions_1.1.0,30,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/channels.html#rest-hook-1,"After a successful handshake notification has been sent and accepted [for a REST Hook channel type], the server SHALL update the status to active.",SHALL,Server,,,,"",""
124
+ hl7.fhir.uv.subscriptions_1.1.0,31,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/channels.html#rest-hook-1,Any errors in the initial handshake [for a REST Hook channel type] SHALL result in the status being changed to error.,SHALL,Server,,,,"",""
125
+ hl7.fhir.uv.subscriptions_1.1.0,32,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/channels.html#security-notes,"HTTP is neither a secure nor an encrypted channel, nor does it provide endpoint verification. It is strongly recommended that implementations refuse requests to send notifications to URLs using the HTTP protocol (use HTTPS instead).",SHOULD,Server,,,,"",""
126
+ hl7.fhir.uv.subscriptions_1.1.0,33,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/notifications.html#event-notifications-and-what-to-include,"In addition to the Subscription Status information, each notification MAY include additional resources or references to resources (URLs or ids).",MAY,Server,,Not Tested,"MAY requirement, support for which doesn't imply other requirements.",NA,NA
127
+ hl7.fhir.uv.subscriptions_1.1.0,34,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/notifications.html#additional-resources,Servers MAY choose to include additional resources [other than the focus] with notifications that may be of interest to clients.,MAY,Server,,Not Tested,"MAY requirement, support for which doesn't imply other requirements.",NA,NA
128
+ hl7.fhir.uv.subscriptions_1.1.0,35,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/notifications.html#additional-resources,"Servers SHALL conform to the payload configuration of the subscription when adding additional resources (e.g., if the subscription is id-only, then only ids of additional resources may be provided; if the subscription is full-resource, then full resources should be provided).",SHALL,Server,,,,2.3.2.03,davinci_pas_server_suite_v221-Group02-pas_server_v221_pended_use_case-Group02-pas_server_v221_subscription_notification_full_resource_conformance_pended
129
+ hl7.fhir.uv.subscriptions_1.1.0,36,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/payloads.html#payload-types,"If a server will not honor a payload type (e.g., will not send full-resource over HTTP), it SHOULD reject the Subscription request",SHOULD,Server,,,,"",""
130
+ hl7.fhir.uv.subscriptions_1.1.0,37,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/payloads.html#payload-types,"If a server will not honor a payload type (e.g., will not send full-resource over HTTP), it ... MAY accept the subscription with modifications.",MAY,Server,,Not Tested,"MAY requirement, support for which doesn't imply other requirements.",NA,NA
131
+ hl7.fhir.uv.subscriptions_1.1.0,38,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/payloads.html#empty,"When populating the SubscriptionStatus.notificationEvent structure for a notification with an empty payload, a server SHALL NOT include references to resources (e.g., SubscriptionStatus.notificationEvent.focus and SubscriptionStatus.notificationEvent.additionalContext SHALL NOT be present).",SHALL NOT,Server,,,,"",""
132
+ hl7.fhir.uv.subscriptions_1.1.0,39,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/payloads.html#empty,"When the content type is empty, notification bundles SHALL not contain Bundle.entry elements other than the SubscriptionStatus for the notification.",SHALL NOT,Server,,,,"",""
133
+ hl7.fhir.uv.subscriptions_1.1.0,40,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/payloads.html#id-only,"When the content type is id-only, notification bundles SHALL include references to the appropriate focus resources in the SubscriptionStatus.notificationEvent.focus element.",SHALL,Server,,,,"",""
134
+ hl7.fhir.uv.subscriptions_1.1.0,41,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/payloads.html#id-only,"Additionally, [id-only] notification bundles MAY contain, in addition to the SubscriptionStatus used to convey status information, at least one Bundle.entry for each resource relevant to the notification. For example, a notification for a topic based on Encounter MAY include a reference to the Encounter and MAY also include additional resources deemed relevant (e.g., the linked Patient).",MAY,Server,,Not Tested,"MAY requirement, support for which doesn't imply other requirements.",NA,NA
135
+ hl7.fhir.uv.subscriptions_1.1.0,42,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/payloads.html#id-only,"Each Bundle.entry for id-only notification SHALL contain a relevant resource URL in the fullUrl and request elements, as is required for history bundles.",SHALL,Server,,,,"",""
136
+ hl7.fhir.uv.subscriptions_1.1.0,43,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/payloads.html#full-resource,"When the content type is full-resource, notification bundles SHALL include references to the appropriate focus resources in the SubscriptionStatus.notificationEvent.focus element.",SHALL,Server,,,,2.3.2.03,davinci_pas_server_suite_v221-Group02-pas_server_v221_pended_use_case-Group02-pas_server_v221_subscription_notification_full_resource_conformance_pended
137
+ hl7.fhir.uv.subscriptions_1.1.0,44,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/payloads.html#full-resource,"Notification bundles for full-resource subscriptions SHALL contain, in addition to the SubscriptionStatus, at least one Bundle.entry for each resource relevant to the notification. For example, a notification for a topic based on the Encounter resource SHALL include an Encounter and MAY include additional resources deemed relevant (e.g., the referenced Patient).",SHALL,Server,,,,2.3.2.03,davinci_pas_server_suite_v221-Group02-pas_server_v221_pended_use_case-Group02-pas_server_v221_subscription_notification_full_resource_conformance_pended
138
+ hl7.fhir.uv.subscriptions_1.1.0,45,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/payloads.html#full-resource,"Each Bundle.entry for a full-resource notification SHALL contain a relevant resource in the entry.resource element. If a server cannot include the resource contents due to an issue with a specific notification, the server SHALL populate the entry.request and/or entry.response elements.",SHALL,Server,,,,2.3.2.03,davinci_pas_server_suite_v221-Group02-pas_server_v221_pended_use_case-Group02-pas_server_v221_subscription_notification_full_resource_conformance_pended
139
+ hl7.fhir.uv.subscriptions_1.1.0,47,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/conformance.html#conformance-in-fhir-r4,"In order to claim conformance with this guide, a server…SHALL support the $status operation on the Subscription resource.",SHALL,Server,,,,"",""
140
+ hl7.fhir.uv.subscriptions_1.1.0,48,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/conformance.html#conformance-in-fhir-r4,"In order to claim conformance with this guide, a server…SHOULD support topic discovery via the CapabilityStatement SubscriptionTopic Canonical extension",SHOULD,Server,,,,"",""
141
+ hl7.fhir.uv.subscriptions_1.1.0,49,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/conformance.html#conformance-in-fhir-r4,"In order to claim conformance with this guide, a server…SHALL support at least one channel type",SHALL,Server,,,,1.03,davinci_pas_server_suite_v221-pas_server_v221_subscription_setup-subscriptions_r4_server_creation_response_conformance
142
+ hl7.fhir.uv.subscriptions_1.1.0,50,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/conformance.html#conformance-in-fhir-r4,"In order to claim conformance with this guide, a server…SHOULD include one [channel type] from this guide",SHOULD,Server,,,,"",""
143
+ hl7.fhir.uv.subscriptions_1.1.0,51,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/conformance.html#conformance-in-fhir-r4,"In order to claim conformance with this guide, a server…SHALL support at least one Payload Type",SHALL,Server,,,,2.3.2.03,davinci_pas_server_suite_v221-Group02-pas_server_v221_pended_use_case-Group02-pas_server_v221_subscription_notification_full_resource_conformance_pended
144
+ hl7.fhir.uv.subscriptions_1.1.0,52,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/conformance.html#conformance-artifacts-1,"FHIR Servers claiming conformance to this Implementation Guide must conform to the expectations described in the Capability Statement appropriate to the implemented FHIR version. For FHIR R4 servers, this guide defines the R4 Server CapabilityStatement (https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/CapabilityStatement-backport-subscription-server-r4.html).",SHALL,Server,,,,"",""
145
+ hl7.fhir.uv.subscriptions_1.1.0,53,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/conformance.html#conformance-artifacts-1,"In addition to the basic support in the CapabilityStatement (e.g., resources, interactions, and operations), a conformant server SHALL support at least one Payload Type … listed in this IG.",SHALL,Server,,,,2.3.2.03,davinci_pas_server_suite_v221-Group02-pas_server_v221_pended_use_case-Group02-pas_server_v221_subscription_notification_full_resource_conformance_pended
146
+ hl7.fhir.uv.subscriptions_1.1.0,54,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/conformance.html#conformance-artifacts-1,"In addition to the basic support in the CapabilityStatement (e.g., resources, interactions, and operations), a conformant server ... SHOULD support one Channel Type listed in this IG.",SHOULD,Server,,,,"",""
147
+ hl7.fhir.uv.subscriptions_1.1.0,57,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/conformance.html#profile-support-1,a conformant server…SHOULD declare conformance with the Backport Subscription Server Capability Statement by including its official URL in the server’s CapabilityStatement.instantiates element: http://hl7.org/fhir/uv/subscriptions-backport/CapabilityStatement/backport-subscription-server-r4.,SHOULD,Server,,,,"",""
148
+ hl7.fhir.uv.subscriptions_1.1.0,58,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/conformance.html#profile-support-1,"a conformant server…SHALL specify the full capability details from the CapabilityStatement it claims to implement, including declaring support for the Backport Subscription Profile by including its official URL in the server’s CapabilityStatement.rest.resource.supportedProfile element: http://hl7.org/fhir/uv/subscriptions-backport/StructureDefinition/backport-subscription",SHALL,Server,,Not Tested,Conflicts with requirement 120 and is removed in future versions of the spec.,NA,NA
149
+ hl7.fhir.uv.subscriptions_1.1.0,59,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/conformance.html#backport-channel-type-1,Servers supporting this guide SHALL be able to read values present in this [backport-channel-type extension - https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/StructureDefinition-backport-channel-type.html] element.,SHALL,Server,,,,"",""
150
+ hl7.fhir.uv.subscriptions_1.1.0,60,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/conformance.html#backport-channel-type-1,A server SHALL reject the subscription request if a client requests an unsupported channel via this [backport-channel-type extension - https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/StructureDefinition-backport-channel-type.html] element.,SHALL,Server,,,,"",""
151
+ hl7.fhir.uv.subscriptions_1.1.0,63,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/conformance.html#backport-filter-criteria-1,"If a server is capable of supporting filter criteria in general but unable to support criteria requested in a subscription [via the extension backport-filter-criteria - https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/StructureDefinition-backport-filter-criteria.html], the server SHALL reject the subscription.",SHALL,Server,,,,"",""
152
+ hl7.fhir.uv.subscriptions_1.1.0,65,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/conformance.html#backport-payload-content-1,Servers supporting this guide SHALL be able to read values from this [backport-payload-content - https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/StructureDefinition-backport-payload-content.html] extension.,SHALL,Server,,,,2.3.2.03,davinci_pas_server_suite_v221-Group02-pas_server_v221_pended_use_case-Group02-pas_server_v221_subscription_notification_full_resource_conformance_pended
153
+ hl7.fhir.uv.subscriptions_1.1.0,66,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/conformance.html#backport-payload-content-1,"A server SHALL reject the subscription request if a client asks for a content level the server does not intend to support (e.g., does not meet security requirements) [using the extension backport-payload-content - https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/StructureDefinition-backport-payload-content.html].",SHALL,Server,,,,"",""
154
+ hl7.fhir.uv.subscriptions_1.1.0,67,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/conformance.html#backport-payload-content-1,Servers SHALL include information in notifications as described in this guide based on this value [in the extension backport-payload-content - https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/StructureDefinition-backport-payload-content.html].,SHALL,Server,,,,2.3.2.03,davinci_pas_server_suite_v221-Group02-pas_server_v221_pended_use_case-Group02-pas_server_v221_subscription_notification_full_resource_conformance_pended
155
+ hl7.fhir.uv.subscriptions_1.1.0,69,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/conformance.html#notification-entry-subscriptionstatus-1,Servers supporting this guide SHALL be able to generate a valid and correct R4 Backported R5 SubscriptionStatus resource for each notification.,SHALL,Server,,,,"1.04, 2.3.2.02, 2.3.2.03","davinci_pas_server_suite_v221-pas_server_v221_subscription_setup-subscriptions_r4_server_handshake_conformance, davinci_pas_server_suite_v221-Group02-pas_server_v221_pended_use_case-Group02-pas_server_v221_subscription_notification_conformance_pended, davinci_pas_server_suite_v221-Group02-pas_server_v221_pended_use_case-Group02-pas_server_v221_subscription_notification_full_resource_conformance_pended"
156
+ hl7.fhir.uv.subscriptions_1.1.0,70,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/conformance.html#notification-entry-subscriptionstatus-1,The status entry SHALL be the first entry of each notification bundle.,SHALL,Server,,,,"1.04, 2.3.2.02, 2.3.2.03","davinci_pas_server_suite_v221-pas_server_v221_subscription_setup-subscriptions_r4_server_handshake_conformance, davinci_pas_server_suite_v221-Group02-pas_server_v221_pended_use_case-Group02-pas_server_v221_subscription_notification_conformance_pended, davinci_pas_server_suite_v221-Group02-pas_server_v221_pended_use_case-Group02-pas_server_v221_subscription_notification_full_resource_conformance_pended"
157
+ hl7.fhir.uv.subscriptions_1.1.0,72,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/conformance.html#subscriptioncriteria-1,"The Subscription.criteria element is required (cardinality of 1..1), so any compatible implementation SHALL be able to read and/or write as necessary.",SHALL,Server,,,,"",""
158
+ hl7.fhir.uv.subscriptions_1.1.0,73,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/conformance.html#subscriptioncriteria-1,"Compared with the core specification, this guide specifies that the [Subscription.criteria] element SHALL contain the canonical URL for the Subscription Topic.",SHALL,Server,,,,"",""
159
+ hl7.fhir.uv.subscriptions_1.1.0,74,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/conformance.html#subscriptioncriteria-1,Servers supporting this guide SHALL be able to read values in this [Subscription.criteria] element and process requests for subscription topics referenced by it.,SHALL,Server,,,,"",""
160
+ hl7.fhir.uv.subscriptions_1.1.0,75,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/conformance.html#subscriptioncriteria-1,"If a server does not support a requested topic [in the Subscription.criteria element] or will not honor the subscription otherwise, a server SHALL reject the subscription request.",SHALL,Server,,,,"",""
161
+ hl7.fhir.uv.subscriptions_1.1.0,77,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/errors.html#handling-errors-as-a-server,A server SHALL…Increment the eventsSinceSubscriptionStart counter internally.,SHALL,Server,,,,"",""
162
+ hl7.fhir.uv.subscriptions_1.1.0,78,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/errors.html#handling-errors-as-a-server,A server SHALL…Update the status of the subscription internally.,SHALL,Server,,,,"",""
163
+ hl7.fhir.uv.subscriptions_1.1.0,79,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/errors.html#handling-errors-as-a-server,A server SHALL…Continue to respond to $status requests.,SHALL,Server,,,,"",""
164
+ hl7.fhir.uv.subscriptions_1.1.0,80,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/errors.html#handling-errors-as-a-server,A server MAY Continue to send heartbeat messages (with an error status set).,MAY,Server,,Not Tested,"MAY requirement, support for which doesn't imply other requirements.",NA,NA
165
+ hl7.fhir.uv.subscriptions_1.1.0,83,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/errors.html#using-the-events-operation,"Servers MAY choose to support the $events operation, as defined in this IG.",MAY,Server,,,,"",""
166
+ hl7.fhir.uv.subscriptions_1.1.0,84,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/errors.html#using-the-events-operation,"Servers which implement the operation MAY use implementation-specific criteria to restrict availability of events (e.g., most recent 10 events, events within the past 30 days, etc.).",MAY,Server,,Not Tested,"MAY requirement, support for which doesn't imply other requirements.",NA,NA
167
+ hl7.fhir.uv.subscriptions_1.1.0,90,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/components.html#subscriptions-and-fhir-versions,"Servers SHALL look for this [Subscription.channel.payload element] parameter during subscription negotiation and SHALL not accept requests for notification FHIR versions it cannot support (servers MAY reject or coerce, according to their policies)",SHALL,Server,,,,"",""
168
+ hl7.fhir.uv.subscriptions_1.1.0,92,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/channels.html#rest-hook-1,Server may send notifications of type heartbeat at any time.,MAY,Server,,Not Tested,"MAY requirement, support for which doesn't imply other requirements.",NA,NA
169
+ hl7.fhir.uv.subscriptions_1.1.0,93,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/StructureDefinition-backport-subscription-definitions.html#root,"Subscription.channel.extension:heartbeatPeriod: If present, a 'hearbeat' notification (keepalive) is sent via this channel with an the interval period equal to this elements integer value in seconds.",SHALL,Server,,,,"",""
170
+ hl7.fhir.uv.subscriptions_1.1.0,94,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/StructureDefinition-backport-subscription-definitions.html#root,"Subscription.channel.extension:heartbeatPeriod: If not present, a heartbeat notification is not sent.",SHALL,Server,,,,"",""
171
+ hl7.fhir.uv.subscriptions_1.1.0,95,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/StructureDefinition-backport-subscription-definitions.html#root,"Subscription.criteria.extension:filterCriteria: When multiple filters are applied, evaluates to true if all the conditions are met; otherwise it returns false. (i.e., logical AND).",SHALL,Server,,,,"",""
172
+ hl7.fhir.uv.subscriptions_1.1.0,97,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/StructureDefinition-backport-subscription-definitions.html#root,"Subscription.channel.extension:timeout: If present, the maximum amount of time a server will allow before failing a notification attempt.",SHALL,Server,,,,"",""
173
+ hl7.fhir.uv.subscriptions_1.1.0,98,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/StructureDefinition-backport-subscription-definitions.html#root,"Subscription.channel.extension:maxCount: If present, the maximum number of triggering resources that will be included in a notification bundle (e.g., a server will not include more than this number of trigger resources in a single notification). Note that this is not a strict limit on the number of entries in a bundle, as dependent resources can be included.",SHALL,Server,,,,"",""
174
+ hl7.fhir.uv.subscriptions_1.1.0,99,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/StructureDefinition-backport-subscription-status-r4-definitions.html,Parameters.parameter:topic.value[x]: This value SHOULD NOT be present when using empty payloads,SHOULD NOT,Server,,,,"",""
175
+ hl7.fhir.uv.subscriptions_1.1.0,100,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/StructureDefinition-backport-subscription-status-r4-definitions.html,Parameters.parameter:topic.value[x]: This value … MAY be present when using id-only payloads,MAY,Server,,Not Tested,"MAY requirement, support for which doesn't imply other requirements.",NA,NA
176
+ hl7.fhir.uv.subscriptions_1.1.0,101,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/StructureDefinition-backport-subscription-status-r4-definitions.html,Parameters.parameter:topic.value[x]: This value … SHOULD be present when using full-resource payloads.,SHOULD,Server,,,,2.3.2.03,davinci_pas_server_suite_v221-Group02-pas_server_v221_pended_use_case-Group02-pas_server_v221_subscription_notification_full_resource_conformance_pended
177
+ hl7.fhir.uv.subscriptions_1.1.0,102,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/StructureDefinition-backport-subscription-status-r4-definitions.html,Parameters.parameter:eventsSinceSubscriptionStart.value[x]: The total number of actual events which have been generated since the Subscription was created (inclusive of this notification) - regardless of how many have been successfully communicated. This number is NOT incremented for handshake and heartbeat notifications.,SHALL,Server,,,,"",""
178
+ hl7.fhir.uv.subscriptions_1.1.0,103,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/StructureDefinition-backport-subscription-status-r4-definitions.html,Parameters.parameter:notificationEvent.part:eventNumber.value[x]: The sequential number of this event in this subscription context.,SHALL,Server,,,,"",""
179
+ hl7.fhir.uv.subscriptions_1.1.0,104,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/StructureDefinition-backport-subscription-status-r4-definitions.html,Parameters.parameter:notificationEvent.part:eventFocus.value[x]: MAY contain a reference to a non-FHIR object.,MAY,Server,,Not Tested,"MAY requirement, support for which doesn't imply other requirements.",NA,NA
180
+ hl7.fhir.uv.subscriptions_1.1.0,105,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/StructureDefinition-backport-subscription-status-r4-definitions.html,Parameters.parameter:notificationEvent.part:eventAdditionalContext.value[x]: MAY refer to non-FHIR objects.,MAY,Server,,Not Tested,"MAY requirement, support for which doesn't imply other requirements.",NA,NA
181
+ hl7.fhir.uv.subscriptions_1.1.0,106,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/OperationDefinition-backport-subscription-status.html,"id Parameter: At the Instance level, this parameter is ignored.",SHALL,Server,,,,"",""
182
+ hl7.fhir.uv.subscriptions_1.1.0,107,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/OperationDefinition-backport-subscription-status.html,"id Parameter: At the Resource level … multiple values are joined via OR (e.g., ""id1"" OR ""id2"").",SHALL,Server,,,,"",""
183
+ hl7.fhir.uv.subscriptions_1.1.0,108,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/OperationDefinition-backport-subscription-status.html,"id Parameter: At the Resource level … In the absence of any specified ids, the server returns the status for all Subscriptions available to the caller.",SHALL,Server,,,,"",""
184
+ hl7.fhir.uv.subscriptions_1.1.0,109,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/OperationDefinition-backport-subscription-status.html,"status Parameter: At the Instance level, this parameter is ignored.",SHALL,Server,,,,"",""
185
+ hl7.fhir.uv.subscriptions_1.1.0,110,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/OperationDefinition-backport-subscription-status.html,"status Parameter: At the resource level, … Multiple values are joined via OR (e.g., ""error"" OR ""off"").",SHALL,Server,,,,"",""
186
+ hl7.fhir.uv.subscriptions_1.1.0,111,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/OperationDefinition-backport-subscription-status.html,"status Parameter: At the resource level, … In the absence of any specified status values, the server does not filter contents based on the status.",SHALL,Server,,,,"",""
187
+ hl7.fhir.uv.subscriptions_1.1.0,112,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/OperationDefinition-backport-subscription-status.html,"return Parameter: The operation returns a bundle containing one or more subscription status resources, one per Subscription being queried. The Bundle type is ""searchset"".",SHALL,Server,,,,"",""
188
+ hl7.fhir.uv.subscriptions_1.1.0,113,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/channels.html#rest-hook-1,Server may send notifications of type event-notification at any time.,MAY,Server,,,,"",""
189
+ hl7.fhir.uv.subscriptions_1.1.0,114,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/CapabilityStatement-backport-subscription-server-r4.html#subscription,[Subscription Resource] Conformance Expectation: SHALL,SHALL,Server,,,,"",""
190
+ hl7.fhir.uv.subscriptions_1.1.0,115,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/OperationDefinition-backport-subscription-events.html,"The [$events] operation returns a valid notification bundle, with the first entry being the subscription status information resource. The bundle type is ""history"".",SHALL,Server,,,,"",""
191
+ hl7.fhir.uv.subscriptions_1.1.0,117,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/OperationDefinition-backport-subscription-events.html,"[the content input indicates the] Requested content style of returned data [from the $events operation]…. This is a hint to the server what a client would prefer, and MAY be ignored.",MAY,Server,,Not Tested,"MAY requirement, support for which doesn't imply other requirements.",NA,NA
192
+ hl7.fhir.uv.subscriptions_1.1.0,118,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/OperationDefinition-backport-subscription-events.html,"[The eventsSinceNumber input indicates] The starting event number, inclusive of this event (lower bound).",SHALL,Server,,,,"",""
193
+ hl7.fhir.uv.subscriptions_1.1.0,119,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/OperationDefinition-backport-subscription-events.html,"[The eventsUntilNumber input indicates] The ending event number, inclusive of this event (upper bound).",SHALL,Server,,,,"",""
194
+ hl7.fhir.uv.subscriptions_1.1.0,120,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/CapabilityStatement-backport-subscription-server-r4.html#summary,"[servers] SHOULD support [profile]: Backported R5 Subscription [NOTE: narrative says SHALL, resource says SHOULD, future versions correct the narrative to SHOULD]",SHOULD,Server,,,,"",""
195
+ hl7.fhir.uv.subscriptions_1.1.0,121,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/CapabilityStatement-backport-subscription-server-r4.html#summary,SHALL support the $status operation,SHALL,Server,,,,"",""
196
+ hl7.fhir.uv.subscriptions_1.1.0,122,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/CapabilityStatement-backport-subscription-server-r4.html#summary,MAY support the $events operation,MAY,Server,,,,"",""
197
+ hl7.fhir.uv.subscriptions_1.1.0,123,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/CapabilityStatement-backport-subscription-server-r4.html#summary,MAY support the $get-ws-binding-token operation,MAY,Server,,Not Tested,Used for Websocket channels that Inferno does not currently support,NA,NA
198
+ hl7.fhir.uv.subscriptions_1.1.0,124,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/CapabilityStatement-backport-subscription-server-r4.html#summary,A Server SHALL be capable of returning a Subscription resource using: GET [base]/Subscription/[id],SHALL,Server,,,,"",""
199
+ hl7.fhir.uv.subscriptions_1.1.0,125,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/CapabilityStatement-backport-subscription-server-r4.html#summary,A Server SHOULD be capable of creating a Subscription resource using either: POST [base]/Subscription or PUT [base]/Subscription/[id],SHOULD,Server,,,,"",""
200
+ hl7.fhir.uv.subscriptions_1.1.0,126,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/CapabilityStatement-backport-subscription-server-r4.html#summary,A Server SHOULD be capable of modifying a Subscription resource using either: PUT [base]/Subscription/[id] or PATCH [base]/Subscription/[id],SHOULD,Server,,,,"",""
201
+ hl7.fhir.uv.subscriptions_1.1.0,127,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/CapabilityStatement-backport-subscription-server-r4.html#summary,A Server SHOULD be capable of deleting a Subscription resource using: DELETE [base]/Subscription/[id],SHOULD,Server,,,,"",""
202
+ hl7.fhir.uv.subscriptions_1.1.0,128,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/CapabilityStatement-backport-subscription-server-r4.html#summary,A Server [MAY] be capable of searching for Subscription resources using: GET [base]/Subscription/?[parameters],MAY,Server,,,,"",""
203
+ hl7.fhir.uv.subscriptions_1.1.0,129,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/CapabilityStatement-backport-subscription-server-r4.html#summary,Search Parameter Summary: SHALL [support] url,SHALL,Server,,,,"",""
204
+ hl7.fhir.uv.subscriptions_1.1.0,130,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/CapabilityStatement-backport-subscription-server-r4.html#summary,Search Parameter Summary: SHOULD [support] status,SHOULD,Server,,,,"",""
205
+ hl7.fhir.uv.subscriptions_1.1.0,131,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/StructureDefinition-backport-subscription-status-r4.html,[several SubscriptionStatus profile elements are flagged as must support],MAY,Server,,Not Verifiable,IG doesn't indicate what must support requirements are for the SubscriptionStatus profile (in contrast to the Subscription profile where they are provided),NA,NA
206
+ hl7.fhir.uv.subscriptions_1.1.0,133,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/conformance.html#conformance-in-fhir-r4,"In order to claim conformance with this guide, a server…SHALL support the Subscription resource (...write).",SHALL,Server,,,,1.02,davinci_pas_server_suite_v221-pas_server_v221_subscription_setup-subscriptions_r4_server_notification_delivery
207
+ hl7.fhir.uv.subscriptions_1.1.0,134,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/conformance.html#conformance-in-fhir-r4,"In order to claim conformance with this guide, a server…SHALL support the Subscription resource (read...).",SHALL,Server,,,,"",""
208
+ hl7.fhir.uv.subscriptions_1.1.0,135,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/conformance.html#backport-filter-criteria-1,Servers supporting this guide SHALL be able to read values in this [backport-filter-criteria - https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/StructureDefinition-backport-filter-criteria.html] extension.,SHALL,Server,,,,"",""
209
+ hl7.fhir.uv.subscriptions_1.1.0,136,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/conformance.html#backport-filter-criteria-1,Servers supporting this guide...SHALL be able to apply filters [from the backport-filter-criteria - https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/StructureDefinition-backport-filter-criteria.html extension] as described by any Subscription Topics the server advertises support for.,SHALL,Server,,,,"",""
210
+ hl7.fhir.uv.subscriptions_1.1.0,137,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/conformance.html#profile-support-1,a conformant server…SHALL communicate all profile data elements that are mandatory by that profile’s StructureDefinition [for the R4/B Topic-Based Subscription profile],SHALL,Server,,,,"",""
211
+ hl7.fhir.uv.subscriptions_1.1.0,138,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/conformance.html#profile-support-1,a conformant server…SHALL communicate all profile data elements that are mandatory by that profile’s StructureDefinition [for the R4 Topic-Based Subscription Notification Bundle],SHALL,Server,,,,"1.04, 2.3.2.02, 2.3.2.03","davinci_pas_server_suite_v221-pas_server_v221_subscription_setup-subscriptions_r4_server_handshake_conformance, davinci_pas_server_suite_v221-Group02-pas_server_v221_pended_use_case-Group02-pas_server_v221_subscription_notification_conformance_pended, davinci_pas_server_suite_v221-Group02-pas_server_v221_pended_use_case-Group02-pas_server_v221_subscription_notification_full_resource_conformance_pended"
212
+ hl7.fhir.uv.subscriptions_1.1.0,139,https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/conformance.html#profile-support-1,a conformant server…SHALL communicate all profile data elements that are mandatory by that profile’s StructureDefinition [for the R4 Backported R5 SubscriptionStatus],SHALL,Server,,,,"1.04, 2.3.2.02, 2.3.2.03","davinci_pas_server_suite_v221-pas_server_v221_subscription_setup-subscriptions_r4_server_handshake_conformance, davinci_pas_server_suite_v221-Group02-pas_server_v221_pended_use_case-Group02-pas_server_v221_subscription_notification_conformance_pended, davinci_pas_server_suite_v221-Group02-pas_server_v221_pended_use_case-Group02-pas_server_v221_subscription_notification_full_resource_conformance_pended"
@@ -1,33 +1,27 @@
1
- require_relative '../../../urls'
2
-
3
1
  module DaVinciPASTestKit
4
- module DaVinciPASV201
5
- # TODO: none of file name, class name, or ID match
6
- class PasUpdateNotificationTest < Inferno::Test
7
- include URLs
8
- id :prior_auth_claim_response_update_notification_validation
9
- title 'Server notifies the client that the pended claim was updated.'
10
- description %(
2
+ class AbstractPASSubscriptionNotificationWaitTest < Inferno::Test
3
+ id :pas_server_subscription_notification_wait
4
+ title 'Server notifies the client that the pended claim was updated.'
5
+ description %(
11
6
  This test validates that the server can notify the client that a final
12
7
  decision has been made about a pended claim so that the client can query
13
- for the details. This test depends on prior successful subscription creation in
8
+ for the details. This test depends on a successful subscription creation in
14
9
  Test Group **1 Subscription Setup**.
15
10
  )
16
- verifies_requirements 'hl7.fhir.us.davinci-pas_2.0.1@141'
17
11
 
18
- input :access_token,
19
- title: 'Notification Access Token',
20
- description: %(
12
+ input :access_token,
13
+ title: 'Notification Access Token',
14
+ description: %(
21
15
  An access token that the server under test will send to Inferno on notifications
22
16
  so that the request gets associated with this test session. The token must be
23
17
  provided as a `Bearer` token in the `Authorization` header of HTTP requests
24
18
  sent to Inferno.
25
19
  )
26
20
 
27
- run do
28
- wait(
29
- identifier: "notification #{access_token}",
30
- message: %(
21
+ run do
22
+ wait(
23
+ identifier: "notification #{access_token}",
24
+ message: %(
31
25
  Inferno has received a 'Pended' claim response indicating that a final decision has not yet been made on the
32
26
  prior authorization request.
33
27
 
@@ -38,8 +32,7 @@ module DaVinciPASTestKit
38
32
  attempted to send a notification, you may
39
33
  **[click here](#{resume_skip_url}?token=notification+#{access_token})** to skip this test._
40
34
  )
41
- )
42
- end
35
+ )
43
36
  end
44
37
  end
45
38
  end
@@ -0,0 +1,31 @@
1
+ require_relative 'claim_operation_logic'
2
+
3
+ module DaVinciPASTestKit
4
+ class ClaimInquireOperationTest < Inferno::Test
5
+ include ClaimOperationLogic
6
+
7
+ id :pas_claim_inquire_operation_test
8
+ title 'Submission of a claim to the $inquire operation succeeds'
9
+ description %(
10
+ Server SHALL support PAS Inquiry requests: a POST interaction to
11
+ the /Claim/$inquire endpoint.
12
+ This test submits a Prior Authorization Inquiry request to the server and verifies that a
13
+ response is returned with HTTP status 2XX.
14
+ )
15
+
16
+ input :pa_inquire_request_payload,
17
+ title: 'PAS Inquire Request Payload',
18
+ description: 'Insert Bundle to be sent for PAS Inquire Request',
19
+ type: 'textarea',
20
+ optional: true
21
+ input_order :server_endpoint, :smart_credentials
22
+
23
+ def operation
24
+ 'inquire'
25
+ end
26
+
27
+ run do
28
+ run_operation_test(pa_inquire_request_payload)
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,67 @@
1
+ require_relative '../cross_suite/tags'
2
+
3
+ module DaVinciPASTestKit
4
+ module ClaimOperationLogic
5
+ def operation_tag
6
+ DaVinciPASTestKit.const_get(:"#{operation.upcase}_TAG")
7
+ end
8
+
9
+ def use_case
10
+ config.options[:use_case]
11
+ end
12
+
13
+ # The workflow tag applied to (and used to reload) the request. Tests that run a single
14
+ # tagged submission per use case (e.g. Claim Updates) set an explicit `request_tag`; the
15
+ # standard workflow tests fall back to the use-case-derived `*_WORKFLOW_TAG`.
16
+ def use_case_tag
17
+ config.options[:request_tag].presence ||
18
+ DaVinciPASTestKit.const_get(:"#{use_case.upcase}_WORKFLOW_TAG")
19
+ end
20
+
21
+ def request_bundles(request_payload)
22
+ parsed_payload = JSON.parse(request_payload)
23
+ [parsed_payload].flatten.compact
24
+ end
25
+
26
+ def perform_operation(request_payload)
27
+ start_time = Time.now
28
+ request = fhir_operation("/Claim/$#{operation}", body: request_payload, tags: [use_case_tag, operation_tag])
29
+ response_time = Time.now - start_time
30
+
31
+ if operation == 'submit' && response_time > 15
32
+ warning %(
33
+ The server took more that 15 seconds to respond to the Prior Authorization
34
+ request.
35
+
36
+ Response Time: #{response_time}
37
+ )
38
+ end
39
+
40
+ request
41
+ end
42
+
43
+ def check_response_status_and_payload(request)
44
+ assert_response_status([200, 201])
45
+ assert_valid_json(request.response_body, "Server response to $#{operation} was not json.")
46
+ resource = FHIR.from_contents(request.response_body)
47
+ if config.options[:ig_version] == 'v2.2.1' && operation == 'inquire'
48
+ assert resource.resourceType == 'Parameters',
49
+ "Expected Parameters resource for v2.2.1 inquire response, but received #{resource.resourceType}"
50
+ else
51
+ assert_resource_type(:bundle, resource:)
52
+ end
53
+ end
54
+
55
+ def run_operation_test(request_payload)
56
+ skip_if request_payload.blank?, "No bundle request provided to perform the #{operation} operation"
57
+ assert_valid_json(request_payload,
58
+ "Provide valid json to use for the $#{operation} during the #{use_case.titleize} workflow.")
59
+
60
+ requests_performed = request_bundles(request_payload).map do |bundle|
61
+ perform_operation(bundle)
62
+ end
63
+
64
+ requests_performed.each { |request| check_response_status_and_payload(request) }
65
+ end
66
+ end
67
+ end
@@ -0,0 +1,32 @@
1
+ require_relative 'claim_operation_logic'
2
+
3
+ module DaVinciPASTestKit
4
+ class ClaimSubmitOperationTest < Inferno::Test
5
+ include ClaimOperationLogic
6
+
7
+ id :pas_claim_submit_operation_test
8
+ title 'Submission of a claim to the $submit operation succeeds'
9
+ description %(
10
+ Server SHALL support PAS Submit requests: a POST interaction to
11
+ the /Claim/$submit endpoint.
12
+ This test submits a Prior Authorization Submit request to the server and verifies that a
13
+ response is returned with HTTP status 2XX.
14
+ The server SHOULD respond within 15 seconds.
15
+ )
16
+
17
+ input :pa_submit_request_payload,
18
+ title: 'PAS Submit Request Payload',
19
+ description: 'Insert Bundle to be sent for PAS Submit Request',
20
+ type: 'textarea',
21
+ optional: true
22
+ input_order :server_endpoint, :smart_credentials
23
+
24
+ def operation
25
+ 'submit'
26
+ end
27
+
28
+ run do
29
+ run_operation_test(pa_submit_request_payload)
30
+ end
31
+ end
32
+ end
@@ -1,13 +1,10 @@
1
- require_relative '../../../must_support_test'
2
- require_relative '../../../generator/group_metadata'
3
- require_relative '../../../tags'
1
+ require_relative '../../../../cross_suite/must_support/must_support_test'
4
2
 
5
3
  module DaVinciPASTestKit
6
4
  module DaVinciPASV201
7
- class ServerSubmitRequestBeneficiaryMustSupportTest < Inferno::Test
8
- include DaVinciPASTestKit::MustSupportTest
9
-
10
- title 'All must support elements for Profile PAS Beneficiary Patient are observed across all instances submitted'
5
+ class ServerInquireRequestMustSupportBeneficiaryTest < DaVinciPASTestKit::MustSupportTest
6
+ id :pas_server_v201_inquire_request_must_support_beneficiary
7
+ title 'All must support elements for profile PAS Beneficiary Patient are observed on $inquire requests'
11
8
  description %(
12
9
 
13
10
  **USER INPUT VALIDATION**: This test validates input provided by the user instead of the system under test. Errors encountered will be treated as a skip instead of a failure.
@@ -49,34 +46,16 @@ module DaVinciPASTestKit
49
46
  * Patient.telecom.value
50
47
  )
51
48
 
52
- id :pas_server_submit_request_v201_beneficiary_must_support_test
53
-
54
- def resource_type
55
- 'Patient'
56
- end
57
-
58
- def user_input_validation
59
- true
60
- end
61
-
62
- def self.metadata
63
- @metadata ||= Generator::GroupMetadata.new(YAML.load_file(File.join(__dir__, 'metadata.yml'), aliases: true))
64
- end
65
-
66
- def scratch_resources
67
- # The scratch key in MS test should be the same as the scratch key in the validation test for a given profile.
68
- scratch[:submit_request_resources] ||= {}
69
- end
70
-
71
- def resources_of_interest
72
- collection = tagged_resources(SUBMIT_TAG).presence || all_scratch_resources
73
- collection.select { |res| res.resourceType == resource_type }
74
- end
75
-
76
- run do
77
- perform_must_support_test(resources_of_interest)
78
- validate_must_support(user_input_validation)
79
- end
49
+ config(
50
+ options: {
51
+ resource_type: 'Patient',
52
+ profile_key: 'beneficiary',
53
+ user_input_validation: true,
54
+ ig_version: 'v2.0.1',
55
+ type: 'request',
56
+ operation: 'inquire'
57
+ }
58
+ )
80
59
  end
81
60
  end
82
61
  end