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
@@ -2,11 +2,10 @@ require 'inferno/ext/fhir_models'
2
2
 
3
3
  require_relative 'generator/ig_loader'
4
4
  require_relative 'generator/ig_metadata_extractor'
5
- require_relative 'generator/resource_list_generator'
6
- require_relative 'generator/validation_test_generator'
7
- require_relative 'generator/operation_test_generator'
8
- require_relative 'generator/group_generator'
9
- require_relative 'generator/suite_generator'
5
+ require_relative 'generator/use_case_group_generator'
6
+ require_relative 'generator/client_must_support_group_generator'
7
+ require_relative 'generator/server_must_support_group_generator'
8
+ require_relative 'generator/server_suite_generator'
10
9
  require_relative 'generator/must_support_test_generator'
11
10
 
12
11
  module DaVinciPASTestKit
@@ -29,12 +28,14 @@ module DaVinciPASTestKit
29
28
  puts "Generating tests for IG #{File.basename(ig_file_name)}"
30
29
  load_ig_package
31
30
  extract_metadata
32
- generate_resource_list
33
- generate_validation_tests
34
- generate_operation_tests
31
+ FileUtils.mkdir_p(base_server_output_dir)
32
+ FileUtils.mkdir_p(base_client_output_dir)
35
33
  generate_must_support_tests
36
- generate_groups
37
- generate_suites
34
+ generate_use_case_groups
35
+ generate_server_must_support_groups
36
+ generate_client_must_support_groups
37
+ generate_server_suite
38
+ write_profile_metadata
38
39
  end
39
40
 
40
41
  def load_ig_package
@@ -45,36 +46,55 @@ module DaVinciPASTestKit
45
46
  def extract_metadata
46
47
  self.ig_metadata = IGMetadataExtractor.new(ig_resources).extract
47
48
 
48
- FileUtils.mkdir_p(base_output_dir)
49
- File.write(File.join(base_output_dir, 'metadata.yml'), YAML.dump(ig_metadata.to_hash))
49
+ FileUtils.mkdir_p(base_shared_output_dir)
50
+ File.write(File.join(base_shared_output_dir, 'metadata.yml'), YAML.dump(ig_metadata.to_hash))
50
51
  end
51
52
 
52
- def base_output_dir
53
- File.join(__dir__, 'generated', ig_metadata.ig_version)
53
+ def base_shared_output_dir
54
+ File.join(__dir__, 'cross_suite', 'generated', ig_metadata.ig_version)
54
55
  end
55
56
 
56
- def generate_resource_list
57
- ResourceListGenerator.generate(ig_metadata, base_output_dir)
57
+ def base_server_output_dir
58
+ File.join(__dir__, 'server', 'generated', ig_metadata.ig_version)
58
59
  end
59
60
 
60
- def generate_validation_tests
61
- ValidationTestGenerator.generate(ig_metadata, base_output_dir)
61
+ def base_client_output_dir
62
+ File.join(__dir__, 'client', 'generated', ig_metadata.ig_version)
62
63
  end
63
64
 
64
- def generate_operation_tests
65
- OperationTestGenerator.generate(ig_metadata, base_output_dir)
65
+ def generate_must_support_tests
66
+ MustSupportTestGenerator.generate(ig_metadata, base_server_output_dir, base_client_output_dir)
66
67
  end
67
68
 
68
- def generate_groups
69
- GroupGenerator.generate(ig_metadata, base_output_dir)
69
+ def generate_use_case_groups
70
+ UseCaseGroupGenerator.generate(ig_metadata, base_server_output_dir)
70
71
  end
71
72
 
72
- def generate_suites
73
- SuiteGenerator.generate(ig_metadata, base_output_dir)
73
+ def generate_server_must_support_groups
74
+ ServerMustSupportGroupGenerator.generate(ig_metadata, base_server_output_dir)
74
75
  end
75
76
 
76
- def generate_must_support_tests
77
- MustSupportTestGenerator.generate(ig_metadata, base_output_dir)
77
+ def generate_client_must_support_groups
78
+ ClientMustSupportGroupGenerator.generate(ig_metadata, base_client_output_dir)
79
+ end
80
+
81
+ def generate_server_suite
82
+ ServerSuiteGenerator.generate(ig_metadata, base_server_output_dir)
83
+ end
84
+
85
+ def write_profile_metadata
86
+ # metadata files
87
+ profile_metadata_list = ig_metadata.profiles.select do |profile_metadata|
88
+ MustSupportTargetProfiles.submit_request_profile?(profile_metadata) ||
89
+ MustSupportTargetProfiles.submit_response_profile?(profile_metadata) ||
90
+ MustSupportTargetProfiles.inquire_request_profile?(profile_metadata) ||
91
+ MustSupportTargetProfiles.inquire_response_profile?(profile_metadata)
92
+ end
93
+ profile_metadata_list.each do |profile_metadata|
94
+ metadata_file_dir = File.join(base_shared_output_dir, ig_metadata.snake_case_for_profile(profile_metadata))
95
+ FileUtils.mkdir_p(metadata_file_dir)
96
+ File.write(File.join(metadata_file_dir, 'metadata.yml'), YAML.dump(profile_metadata.to_hash))
97
+ end
78
98
  end
79
99
  end
80
100
  end
@@ -7,67 +7,28 @@ module DaVinciPASTestKit
7
7
  description <<~DESCRIPTION
8
8
  The Da Vinci Prior Authorization Support (PAS) Test Kit validates
9
9
  the conformance of both PAS client and server implementations to
10
- [version 2.0.1 of the Da Vinci PAS Implementation
11
- Guide](https://hl7.org/fhir/us/davinci-pas/STU2/).
10
+ the Da Vinci PAS Implementation Guide. It includes suites covering the
11
+ following versions:
12
+ - [Da Vinci Prior Authorization Support (PAS) v2.0.1](https://hl7.org/fhir/us/davinci-pas/STU2/)
13
+ - [Da Vinci Prior Authorization Support (PAS) v2.2.1](https://hl7.org/fhir/us/davinci-pas/2.2.1/)
12
14
 
13
15
  <!-- break -->
14
16
 
15
- Please visit the [Da Vinci PAS Test Kit documentation
16
- site](https://github.com/inferno-framework/davinci-pas-test-kit/wiki/) for
17
- detailed information on how to use and maintain this test kit.
17
+ ## Status
18
18
 
19
- To validate the behavior of a system Inferno will act as the partner to the
20
- system under test:
21
- - **When testing a client**: Inferno will act as a server, awaiting requests
22
- from the client under test, returning appropriate responses, and validating
23
- the conformance of the client's requests and its ability to handle the
24
- responses appropriately.
25
- - **When testing a server**: Inferno will act as a client, making requests
26
- against the server under test and validating the conformance and
27
- appropriateness of the server's responses.
19
+ These tests are a **DRAFT** intended to allow PAS implementers to perform
20
+ preliminary checks of their implementations against the PAS IG requirements and
21
+ provide feedback on the tests. Future versions of these tests may validate other
22
+ requirements and may change how these are tested.
28
23
 
29
- The test suites for both PAS clients and servers follow the same basic outline,
30
- each testing:
24
+ Additional details on the IG requirements that underlie this test kit can be
25
+ found in the [Specification Requirements display within the testing UI](https://inferno-framework.github.io/docs/user-interface.html#specification-requirements)
26
+ and other artifacts of Inferno's [requirements tracking tools](https://inferno-framework.github.io/docs/advanced-test-features/requirements.html).
31
27
 
32
- - The implementation's ability to use PAS-defined APIs to participate in the
33
- submission of and decision on a prior authorization request, including:
34
- - Approval of a prior authorization request.
35
- - Denial of a prior authorization request.
36
- - Pending of a prior authorization request and a subsequent final decision.
37
- - The implementation ability to provide and handle data covering the full scope
38
- of PAS must support requirements on:
39
- - Prior authorization submissions.
40
- - Prior authorization inquiries.
28
+ ## Additional Details
41
29
 
42
- The Da Vinci PAS Test Kit is built using the [Inferno
43
- Framework](https://inferno-framework.github.io/). The Inferno Framework is
44
- designed for reuse and aims to make it easier to build test kits for any
45
- FHIR-based data exchange.
46
-
47
- ## Known Limitations
48
-
49
- The following areas of the IG are not fully tested in this draft version of the test kit:
50
-
51
- - Private X12 details including value set expansions
52
- - The use of Subscriptions to alert clients of updates to pended requests
53
- - Prior Authorization update workflows
54
- - Requests for additional information handled through the CDex framework
55
- - PDF, CDA, and JPG attachments
56
- - US Core profile support for supporting information
57
- - Server inquiry matching and subsetting logic
58
- - Server inquiry requests from non-submitting systems
59
- - Server collection of metrics
60
- - Client handling of responses containing all PAS-defined profiles and must support elements
61
- - Client handling of situations that requiring manual review of the client system,
62
- e.g., the requirement that clinicians can update details of the prior authorization
63
- request before submitting them
64
-
65
- ### Known IG Issues
66
-
67
- Through testing with this test kit, issues have been identified in the version of the PAS
68
- specification that this test kit tests against which cause false failures. The full list
69
- of known issues can be found on the [repository's issues page with the 'source ig issue'
70
- label](https://github.com/inferno-framework/davinci-pas-test-kit/labels/source%20ig%20issue).
30
+ Additional details about design, scope, and limitations of the suites within this
31
+ test kit can be found on the [PAS Test Kit Wiki](https://github.com/inferno-framework/davinci-pas-test-kit/wiki)
71
32
 
72
33
  ## Reporting Issues
73
34
 
@@ -76,7 +37,12 @@ module DaVinciPASTestKit
76
37
  section of the
77
38
  [open source code repository](https://github.com/inferno-framework/davinci-pas-test-kit).
78
39
  DESCRIPTION
79
- suite_ids [:davinci_pas_server_suite_v201, :davinci_pas_client_suite_v201]
40
+ suite_ids [
41
+ :davinci_pas_server_suite_v201,
42
+ :davinci_pas_server_suite_v221,
43
+ :davinci_pas_client_suite_v201,
44
+ :davinci_pas_client_suite_v221
45
+ ]
80
46
  tags ['Da Vinci', 'PAS']
81
47
  last_updated LAST_UPDATED
82
48
  version VERSION
@@ -0,0 +1,18 @@
1
+ module DaVinciPASTestKit
2
+ # Helper module for working with FHIR Parameters resources in v2.2.1
3
+ # Provides utilities to extract Bundles from Parameters.parameter entries
4
+ module ParametersHelper
5
+ # Extracts Bundles from a PAS Inquiry Response Parameters resource
6
+ # @param parameters [FHIR::Parameters] The Parameters resource
7
+ # @return [Array<FHIR::Bundle>] Array of Bundles from return parameters
8
+ def extract_bundles_from_pas_inquiry_response_parameters(parameters)
9
+ return [] unless parameters.is_a?(FHIR::Parameters)
10
+
11
+ parameters.parameter # rubocop:disable Style/SelectByKind
12
+ .select { |param| param.name == 'return' }
13
+ .map(&:resource)
14
+ .compact
15
+ .select { |resource| resource.is_a?(FHIR::Bundle) }
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,40 @@
1
+ require_relative 'cross_suite/pas_notification_verification'
2
+ require_relative 'cross_suite/tags'
3
+
4
+ module DaVinciPASTestKit
5
+ class NotificationPASConformanceTest < Inferno::Test
6
+ include PASNotificationVerification
7
+
8
+ id :pas_notification_pas_conformance_test
9
+ title 'Notification conforms to PAS-specific requirements'
10
+ description %(
11
+ This test verifies that the notification sent to the client under test
12
+ for a pended claim update (or sent by the server under test) conforms
13
+ to PAS-specific requirements beyond the base Subscription Backport IG
14
+ notification requirements. In particular, the focus resource in the
15
+ notification should be the updated ClaimResponse conformant to the
16
+ PAS Response Bundle profile.
17
+ )
18
+
19
+ run do
20
+ # Client tests tag the outgoing notification with REST_HOOK_EVENT_NOTIFICATION_TAG
21
+ load_tagged_requests(REST_HOOK_EVENT_NOTIFICATION_TAG)
22
+
23
+ # Server tests tag incoming notifications with the Subscription ID
24
+ if requests.none?
25
+ subscription_requests = load_tagged_requests('subscription_creation').select { |req| req.status == 201 }
26
+ latest_subscription = subscription_requests.max_by(&:created_at)
27
+
28
+ if latest_subscription.present?
29
+ subscription = JSON.parse(latest_subscription.response_body)
30
+ load_tagged_requests(subscription['id'])
31
+ end
32
+ end
33
+
34
+ skip_if(requests.none?, 'Inferno did not send or receive an event notification')
35
+
36
+ notification_body = request.request_body
37
+ verify_pas_notification(notification_body)
38
+ end
39
+ end
40
+ end
@@ -228,3 +228,124 @@ hl7.fhir.us.davinci-pas_2.0.1,220,https://hl7.org/fhir/us/davinci-hrex/STU1/conf
228
228
  hl7.fhir.us.davinci-pas_2.0.1,221,https://hl7.org/fhir/us/davinci-hrex/STU1/conformance.html,[R]eceivers **SHOULD NOT** reject instances that contain unexpected [non-must support] data elements if those elements are not [modifier elements](http://hl7.org/fhir/R4/conformance-rules.html#isModifier).,SHOULD NOT,Client,,true,,
229
229
  hl7.fhir.us.davinci-pas_2.0.1,222,https://hl7.org/fhir/us/davinci-hrex/STU1/conformance.html,"[Data Sources] should be aware that they can't count on receivers storing, processing or doing anything other than ignoring data that is not marked as mustSupport.",SHOULD,Server,,true,Not Verifiable,Can only be tested in the context of a specific trading partner
230
230
  hl7.fhir.us.davinci-pas_2.0.1,223,https://hl7.org/fhir/us/davinci-hrex/STU1/conformance.html,"Many of the profiles in this guide reference other FHIR resources that are US Core profiles. This is defined in the formal profile definitions. For example, US Core Patient. For any other references not formally defined in a US Core profiles, the referenced resource **SHOULD** be a US Core profile if a US Core profile exists for the resource type.",SHOULD,Server,,true,,
231
+ 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,,
232
+ 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,,
233
+ 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,,
234
+ hl7.fhir.us.davinci-pas_2.2.1,ainfo-4,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/additionalinfo.html#ci-c-ainfo-4,The [PAS task profile](StructureDefinition-profile-task.html) **SHALL** be used to convey PAS X12 278 Response information to CDex.,SHALL,PAS Client,,false,,
235
+ hl7.fhir.us.davinci-pas_2.2.1,ainfo-5,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/additionalinfo.html#ci-c-ainfo-5,All of the additional information request codes **SHOULD** be used as input to a CDex task.,SHOULD,PAS Client,,false,,
236
+ hl7.fhir.us.davinci-pas_2.2.1,ainfo-6,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/additionalinfo.html#ci-c-ainfo-6,"When the LOINC code 102089-0 is present, the associated TRNs **SHALL** also be exchange as Task.input.",SHALL,PAS Client,,false,,
237
+ hl7.fhir.us.davinci-pas_2.2.1,ainfo-7,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/additionalinfo.html#ci-c-ainfo-7,"A separate task **SHALL** be created for each of the above attachment request types (PWK01, LOINC, questionnaire).",SHALL,PAS Client,,false,,
238
+ 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,,
239
+ 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,,
240
+ 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,,
241
+ 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,,
242
+ 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,,
243
+ 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,,
244
+ hl7.fhir.us.davinci-pas_2.2.1,conf-7,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/conformance.html#ci-c-conf-7,PA Client Systems **SHALL** be capable of receiving all data elements that are marked as Must Support on the Claim Response and the Claim Inquiry Response.,SHALL,PAS Client,,false,,
245
+ hl7.fhir.us.davinci-pas_2.2.1,conf-8,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/conformance.html#ci-c-conf-8,They **SHALL NOT** generate an error or cause the application to fail when receiving any data element that is marked as Must Support.,SHALL NOT,PAS Client,,false,,
246
+ hl7.fhir.us.davinci-pas_2.2.1,conf-9,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/conformance.html#ci-c-conf-9,PA Client Systems **SHOULD NOT** send any data elements that are not marked as Must Support.,SHOULD NOT,PAS Client,,false,,
247
+ 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,,
248
+ 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,,
249
+ 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,,
250
+ 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,,
251
+ 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,,
252
+ 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,,
253
+ 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,,
254
+ 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,,
255
+ 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,,
256
+ hl7.fhir.us.davinci-pas_2.2.1,priv-1,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/privacy.html#ci-c-priv-1,"Implementations **SHALL** permit provider review of data prior to transmission, but **SHALL NOT** require such review.",SHALL NOT / SHALL,PAS Client,,false,,
257
+ 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,,
258
+ 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,,
259
+ hl7.fhir.us.davinci-pas_2.2.1,prof-1,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/StructureDefinition-profile-datatype-timing.html#ci-c-prof-1,"Timings **SHALL** have at least one of: a count, a frequency and period and periodUnit (with optional frequencyMax and periodMax), a calendarPattern, or a deliveryPattern.",SHALL,PAS Client,,false,,
260
+ 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,,
261
+ 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,,
262
+ hl7.fhir.us.davinci-pas_2.2.1,prof-4,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/StructureDefinition-profile-claim-update.html#ci-c-prof-4,The Claim instance of the [update Bundle](specification.html#updating-authorization-requests) **SHALL** reference the updated Claim instance within the `Claim.related.claim` element. Note that the presence of this reference and the requirement that referenced instances be included in the submitted Bundle implies that the instance representing the prior version of the Claim **SHALL** be included in the update Bundle.,SHALL,PAS Client,,false,,
263
+ hl7.fhir.us.davinci-pas_2.2.1,prof-5,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/StructureDefinition-profile-claim-update.html#ci-c-prof-5,"The Claim instance of the update Bundle **SHALL** contain within the `Claim.item` element each item requested in the updated claim and any prior versions of the claim, including requested items that have been added, modified, deleted, or left unchanged during this or previous updates.",SHALL,PAS Client,,false,,
264
+ hl7.fhir.us.davinci-pas_2.2.1,prof-6,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/StructureDefinition-profile-claim-update.html#ci-c-prof-6,"The Claim instance of the update Bundle **SHALL** contain within the `Claim.supportingInfo` element each piece of supporting documentation submitted with the updated claim and any prior versions of claim, including supporting documentation that has been added, modified, deleted, or left unchanged during this or previous updates.",SHALL,PAS Client,,false,,
265
+ hl7.fhir.us.davinci-pas_2.2.1,prof-7,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/StructureDefinition-profile-claim-update.html#ci-c-prof-7,"Each `Claim.item` entry that represents an item no longer being requested, whether removed in this update or a previous one, **SHALL** be flagged using the infoCancelledFlag modifierExtension and **SHALL** have the code `3` (Cancel) in the Certification Type extension.",SHALL,PAS Client,,false,,
266
+ hl7.fhir.us.davinci-pas_2.2.1,prof-8,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/StructureDefinition-profile-claim-update.html#ci-c-prof-8,"Each `Claim.supportingInfo` entry that is no longer to be used when evaluating the request, whether removed in this update or a previous one, **SHALL** be flagged using the infoCancelledFlag modifierExtension.",SHALL,PAS Client,,false,,
267
+ hl7.fhir.us.davinci-pas_2.2.1,prof-9,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/StructureDefinition-profile-claim-update.html#ci-c-prof-9,"Each `Claim.item` and `Claim.supportingInfo` entry that has been changed as a part of this most recent update, including removal, **SHALL** be flagged using the changed extension with a value of `changed`.",SHALL,PAS Client,,false,,
268
+ hl7.fhir.us.davinci-pas_2.2.1,prof-10,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/StructureDefinition-profile-claim-update.html#ci-c-prof-10,"Each `Claim.item` and `Claim.supportingInfo` entry that has been added as a part of this most recent update, **SHALL** be flagged using the changed extension with a value of `added`.",SHALL,PAS Client,,false,,
269
+ 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,,
270
+ 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,,
271
+ 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,,
272
+ 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,,
273
+ 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,,
274
+ 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,,
275
+ 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,,
276
+ 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,,
277
+ 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,,
278
+ hl7.fhir.us.davinci-pas_2.2.1,spec-8,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/specification.html#ci-c-spec-8,A subscription-based mechanism **SHALL** be used by the client to be informed of updates to the authorization.,SHALL,PAS Client,,false,,
279
+ 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,,
280
+ 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,,
281
+ 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,,
282
+ 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,,
283
+ 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,,
284
+ 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,,
285
+ 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,,
286
+ 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:
287
+ - the URL at which the resource is available from the EHR if exposed via the client's REST interface; or
288
+ - the form ""urn:uuid:[some guid]""",SHALL,PAS Payer,,false,,
289
+ 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,,
290
+ 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,,
291
+ 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,,
292
+ 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,,
293
+ 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,,
294
+ 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,,
295
+ 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,,
296
+ 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,,
297
+ 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,,
298
+ 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,,
299
+ 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,,
300
+ 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,,
301
+ 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,,
302
+ 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,,
303
+ 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,,
304
+ 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,,
305
+ 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,,
306
+ 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,,
307
+ 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,,
308
+ 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,,
309
+ 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,,
310
+ 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,,
311
+ 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,,
312
+ hl7.fhir.us.davinci-pas_2.2.1,spec-40,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/specification.html#ci-c-spec-40,"If an OperationOutcome is received, it may have information regarding errors that **SHOULD** be addressed in the future, but did not cause the transaction to fail.",SHOULD,PAS Client,,false,,
313
+ 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,,
314
+ hl7.fhir.us.davinci-pas_2.2.1,spec-42,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/specification.html#ci-c-spec-42,"Although there are no constraints on the frequency of the query, clients **SHOULD** ensure that no repetitive inquiries do not happen so as not to stress payer systems.",SHOULD,PAS Client,,false,,
315
+ 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,,
316
+ 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,,
317
+ 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,,
318
+ 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,,
319
+ 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,,
320
+ 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,,
321
+ 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,,
322
+ 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,,
323
+ 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,,
324
+ 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,,
325
+ 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,,
326
+ 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,,
327
+ 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,,
328
+ 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,,
329
+ 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,,
330
+ 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,,
331
+ 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,,
332
+ 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,,
333
+ 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,,
334
+ 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,,
335
+ hl7.fhir.us.davinci-pas_2.2.1,spec-63,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/specification.html#ci-c-spec-63,"When details of a submitted request change and a provider needs to request prior authorization of a different set of items, clients **SHOULD** submit an update to the previously submitted Claim.",SHOULD,PAS Client,,false,,
336
+ 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,,
337
+ hl7.fhir.us.davinci-pas_2.2.1,spec-65,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/specification.html#ci-c-spec-65,The Claim that is being updated **SHALL** be referenced in the Claim.related.claim element and included in the Bundle.,SHALL,PAS Client,,false,,
338
+ hl7.fhir.us.davinci-pas_2.2.1,spec-66,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/specification.html#ci-c-spec-66,"If that Claim instance is itself a Claim Update, its referenced Claim **SHALL NOT** be included.",SHALL NOT,PAS Client,,false,,
339
+ hl7.fhir.us.davinci-pas_2.2.1,spec-67,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/specification.html#ci-c-spec-67,All other referenced resources **SHALL** be included in the Bundle.,SHALL,PAS Client,,false,,
340
+ hl7.fhir.us.davinci-pas_2.2.1,spec-68,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/specification.html#ci-c-spec-68,"When changing the details of the request, the Claim instance **SHALL** contain all item and supportingInfo entries from the original Claim and any previous update Claims with `sequence` values preserved, but with the current request details.",SHALL,PAS Client,,false,,
341
+ 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,,
342
+ 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,,
343
+ 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,,
344
+ hl7.fhir.us.davinci-pas_2.2.1,spec-72,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/specification.html#ci-c-spec-72,The [infoChanged extension](StructureDefinition-extension-infoChanged.html) for added entries **SHALL** have a valueCode of `changed` and those for modified or deleted entries SHALL have a valueCode of `changed` (newly marking an item as canceled is considered a 'change').,SHALL,PAS Client,,false,,
345
+ 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,,
346
+ 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,,
347
+ 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,,
348
+ 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,,
349
+ hl7.fhir.us.davinci-pas_2.2.1,use-4,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/usecases.html#ci-c-use-4,"As well, EHRs **SHOULD** annotate their orders with the decisions contained in the PAS Response.",SHOULD,PAS Client,,false,,
350
+ hl7.fhir.us.davinci-pas_2.2.1,use-5,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/usecases.html#ci-c-use-5,"Prior to sending clinical data as part of the PAS exchange, the provider (or their designated agent) **SHALL** have the ability, but not an obligation, to review patient information and where appropriate amend or withhold the submission to comply with current regulations and relevant provider policies. The provider can choose to turn off the ability to review documentation. The vendor must allow them this option.",SHALL,PAS Client,,false,,
351
+ 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,,