davinci_pas_test_kit 0.15.1 → 0.16.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 (334) hide show
  1. checksums.yaml +4 -4
  2. data/config/presets/g33_br_provider.json +13 -0
  3. data/config/presets/pas_client_example.json +2 -2
  4. data/config/presets/pas_client_v201_run_against_pas_server.json +2 -2
  5. data/config/presets/pas_client_v221_run_against_pas_server.json +3 -3
  6. data/config/presets/pas_ri.json +6 -6
  7. data/config/presets/pas_server_v201_run_against_pas_client.json.erb +6 -6
  8. data/config/presets/pas_server_v221_run_against_pas_client.json.erb +10 -10
  9. data/lib/davinci_pas_test_kit/client/abstract_approval_submit_test.rb +28 -17
  10. data/lib/davinci_pas_test_kit/client/abstract_denial_submit_test.rb +26 -16
  11. data/lib/davinci_pas_test_kit/client/abstract_gather_must_support_test.rb +45 -74
  12. data/lib/davinci_pas_test_kit/client/abstract_modification_submit_test.rb +29 -19
  13. data/lib/davinci_pas_test_kit/client/abstract_response_attest.rb +75 -6
  14. data/lib/davinci_pas_test_kit/client/abstract_subscription_create_test.rb +26 -9
  15. data/lib/davinci_pas_test_kit/client/abstract_subscription_update_delete_test.rb +91 -0
  16. data/lib/davinci_pas_test_kit/client/client_bundle_validation_helper.rb +245 -0
  17. data/lib/davinci_pas_test_kit/client/client_input_descriptions.rb +96 -1
  18. data/lib/davinci_pas_test_kit/client/endpoints/claim_endpoint.rb +128 -72
  19. data/lib/davinci_pas_test_kit/client/endpoints/endpoint_session_identification.rb +24 -0
  20. data/lib/davinci_pas_test_kit/client/endpoints/expired_token.rb +40 -0
  21. data/lib/davinci_pas_test_kit/client/endpoints/subscription_create_endpoint.rb +7 -12
  22. data/lib/davinci_pas_test_kit/client/endpoints/subscription_delete_endpoint.rb +13 -0
  23. data/lib/davinci_pas_test_kit/client/endpoints/subscription_read_endpoint.rb +13 -0
  24. data/lib/davinci_pas_test_kit/client/endpoints/subscription_status_endpoint.rb +15 -20
  25. data/lib/davinci_pas_test_kit/client/endpoints/subscription_update_endpoint.rb +13 -0
  26. data/lib/davinci_pas_test_kit/client/endpoints/token_endpoint.rb +16 -0
  27. data/lib/davinci_pas_test_kit/client/generated/v2.0.1/beneficiary/client_inquire_request_must_support_beneficiary_test.rb +3 -3
  28. data/lib/davinci_pas_test_kit/client/generated/v2.0.1/beneficiary/client_inquire_response_must_support_beneficiary_test.rb +3 -3
  29. data/lib/davinci_pas_test_kit/client/generated/v2.0.1/beneficiary/client_submit_request_must_support_beneficiary_test.rb +3 -3
  30. data/lib/davinci_pas_test_kit/client/generated/v2.0.1/beneficiary/client_submit_response_must_support_beneficiary_test.rb +3 -3
  31. data/lib/davinci_pas_test_kit/client/generated/v2.0.1/claim_inquiry/client_inquire_request_must_support_claim_inquiry_test.rb +3 -3
  32. data/lib/davinci_pas_test_kit/client/generated/v2.0.1/claim_update/client_submit_request_must_support_claim_update_test.rb +3 -3
  33. data/lib/davinci_pas_test_kit/client/generated/v2.0.1/claiminquiryresponse/client_inquire_response_must_support_claiminquiryresponse_test.rb +3 -3
  34. data/lib/davinci_pas_test_kit/client/generated/v2.0.1/claimresponse/client_submit_response_must_support_claimresponse_test.rb +3 -3
  35. data/lib/davinci_pas_test_kit/client/generated/v2.0.1/communication_request/client_submit_response_must_support_communication_request_test.rb +3 -3
  36. data/lib/davinci_pas_test_kit/client/generated/v2.0.1/coverage/client_inquire_request_must_support_coverage_test.rb +3 -3
  37. data/lib/davinci_pas_test_kit/client/generated/v2.0.1/coverage/client_submit_request_must_support_coverage_test.rb +3 -3
  38. data/lib/davinci_pas_test_kit/client/generated/v2.0.1/encounter/client_submit_request_must_support_encounter_test.rb +3 -3
  39. data/lib/davinci_pas_test_kit/client/generated/v2.0.1/insurer/client_inquire_request_must_support_insurer_test.rb +3 -3
  40. data/lib/davinci_pas_test_kit/client/generated/v2.0.1/insurer/client_inquire_response_must_support_insurer_test.rb +3 -3
  41. data/lib/davinci_pas_test_kit/client/generated/v2.0.1/insurer/client_submit_request_must_support_insurer_test.rb +3 -3
  42. data/lib/davinci_pas_test_kit/client/generated/v2.0.1/insurer/client_submit_response_must_support_insurer_test.rb +3 -3
  43. data/lib/davinci_pas_test_kit/client/generated/v2.0.1/pas_client_inquire_must_support_group.rb +1 -1
  44. data/lib/davinci_pas_test_kit/client/generated/v2.0.1/pas_client_inquire_response_must_support_group.rb +9 -31
  45. data/lib/davinci_pas_test_kit/client/generated/v2.0.1/pas_client_submit_must_support_group.rb +1 -1
  46. data/lib/davinci_pas_test_kit/client/generated/v2.0.1/pas_client_submit_response_must_support_group.rb +10 -32
  47. 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 +3 -3
  48. 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 +3 -3
  49. data/lib/davinci_pas_test_kit/client/generated/v2.0.1/pas_request_bundle/client_submit_request_must_support_pas_request_bundle_test.rb +3 -3
  50. data/lib/davinci_pas_test_kit/client/generated/v2.0.1/pas_response_bundle/client_submit_response_must_support_pas_response_bundle_test.rb +3 -3
  51. data/lib/davinci_pas_test_kit/client/generated/v2.0.1/practitioner/client_inquire_request_must_support_practitioner_test.rb +3 -3
  52. data/lib/davinci_pas_test_kit/client/generated/v2.0.1/practitioner/client_inquire_response_must_support_practitioner_test.rb +3 -3
  53. data/lib/davinci_pas_test_kit/client/generated/v2.0.1/practitioner/client_submit_request_must_support_practitioner_test.rb +3 -3
  54. data/lib/davinci_pas_test_kit/client/generated/v2.0.1/practitioner/client_submit_response_must_support_practitioner_test.rb +3 -3
  55. data/lib/davinci_pas_test_kit/client/generated/v2.0.1/practitioner_role/client_inquire_request_must_support_practitioner_role_test.rb +3 -3
  56. data/lib/davinci_pas_test_kit/client/generated/v2.0.1/practitioner_role/client_inquire_response_must_support_practitioner_role_test.rb +3 -3
  57. data/lib/davinci_pas_test_kit/client/generated/v2.0.1/practitioner_role/client_submit_request_must_support_practitioner_role_test.rb +3 -3
  58. data/lib/davinci_pas_test_kit/client/generated/v2.0.1/practitioner_role/client_submit_response_must_support_practitioner_role_test.rb +3 -3
  59. data/lib/davinci_pas_test_kit/client/generated/v2.0.1/requestor/client_inquire_request_must_support_requestor_test.rb +3 -3
  60. data/lib/davinci_pas_test_kit/client/generated/v2.0.1/requestor/client_inquire_response_must_support_requestor_test.rb +3 -3
  61. data/lib/davinci_pas_test_kit/client/generated/v2.0.1/requestor/client_submit_request_must_support_requestor_test.rb +3 -3
  62. data/lib/davinci_pas_test_kit/client/generated/v2.0.1/requestor/client_submit_response_must_support_requestor_test.rb +3 -3
  63. data/lib/davinci_pas_test_kit/client/generated/v2.0.1/subscriber/client_inquire_request_must_support_subscriber_test.rb +3 -3
  64. data/lib/davinci_pas_test_kit/client/generated/v2.0.1/subscriber/client_submit_request_must_support_subscriber_test.rb +3 -3
  65. data/lib/davinci_pas_test_kit/client/generated/v2.2.1/beneficiary/client_inquire_response_must_support_beneficiary_test.rb +4 -3
  66. data/lib/davinci_pas_test_kit/client/generated/v2.2.1/beneficiary/client_submit_response_must_support_beneficiary_test.rb +4 -3
  67. data/lib/davinci_pas_test_kit/client/generated/v2.2.1/claim_inquiry/client_inquire_request_must_support_claim_inquiry_test.rb +3 -3
  68. data/lib/davinci_pas_test_kit/client/generated/v2.2.1/claim_update/client_submit_request_must_support_claim_update_test.rb +3 -3
  69. data/lib/davinci_pas_test_kit/client/generated/v2.2.1/claiminquiryresponse/client_inquire_response_must_support_claiminquiryresponse_test.rb +4 -3
  70. data/lib/davinci_pas_test_kit/client/generated/v2.2.1/claimresponse/client_submit_response_must_support_claimresponse_test.rb +4 -3
  71. data/lib/davinci_pas_test_kit/client/generated/v2.2.1/communication_request/client_submit_response_must_support_communication_request_test.rb +4 -3
  72. data/lib/davinci_pas_test_kit/client/generated/v2.2.1/insurer/client_inquire_response_must_support_insurer_test.rb +4 -3
  73. data/lib/davinci_pas_test_kit/client/generated/v2.2.1/insurer/client_submit_response_must_support_insurer_test.rb +4 -3
  74. data/lib/davinci_pas_test_kit/client/generated/v2.2.1/pas_client_inquire_must_support_group.rb +8 -6
  75. data/lib/davinci_pas_test_kit/client/generated/v2.2.1/pas_client_inquire_response_must_support_group.rb +9 -31
  76. data/lib/davinci_pas_test_kit/client/generated/v2.2.1/pas_client_submit_must_support_group.rb +13 -9
  77. data/lib/davinci_pas_test_kit/client/generated/v2.2.1/pas_client_submit_response_must_support_group.rb +10 -32
  78. 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 +4 -3
  79. data/lib/davinci_pas_test_kit/client/generated/v2.2.1/pas_response_bundle/client_submit_response_must_support_pas_response_bundle_test.rb +4 -3
  80. data/lib/davinci_pas_test_kit/client/generated/v2.2.1/practitioner/client_inquire_response_must_support_practitioner_test.rb +4 -3
  81. data/lib/davinci_pas_test_kit/client/generated/v2.2.1/practitioner/client_submit_response_must_support_practitioner_test.rb +4 -3
  82. data/lib/davinci_pas_test_kit/client/generated/v2.2.1/practitioner_role/client_inquire_response_must_support_practitioner_role_test.rb +4 -3
  83. data/lib/davinci_pas_test_kit/client/generated/v2.2.1/practitioner_role/client_submit_response_must_support_practitioner_role_test.rb +4 -3
  84. data/lib/davinci_pas_test_kit/client/generated/v2.2.1/requestor/client_inquire_response_must_support_requestor_test.rb +4 -3
  85. data/lib/davinci_pas_test_kit/client/generated/v2.2.1/requestor/client_submit_response_must_support_requestor_test.rb +4 -3
  86. data/lib/davinci_pas_test_kit/client/jobs/send_pas_subscription_notification.rb +64 -3
  87. data/lib/davinci_pas_test_kit/client/pas_client_subscription_pas_conformance_test.rb +4 -3
  88. data/lib/davinci_pas_test_kit/client/registration/abstract_configuration_other_display_test.rb +6 -4
  89. data/lib/davinci_pas_test_kit/client/registration/abstract_configuration_smart_display_test.rb +8 -4
  90. data/lib/davinci_pas_test_kit/client/registration/abstract_configuration_udap_display_test.rb +9 -4
  91. data/lib/davinci_pas_test_kit/client/registration/abstract_other_auth_attest_test.rb +5 -4
  92. data/lib/davinci_pas_test_kit/client/request_count_gating.rb +14 -0
  93. data/lib/davinci_pas_test_kit/client/response_generator.rb +50 -9
  94. data/lib/davinci_pas_test_kit/client/session_identification.rb +26 -7
  95. data/lib/davinci_pas_test_kit/client/subscription_notification_trigger.rb +80 -0
  96. data/lib/davinci_pas_test_kit/client/subscription_setup_requirement.rb +59 -0
  97. data/lib/davinci_pas_test_kit/client/user_input_response.rb +50 -10
  98. data/lib/davinci_pas_test_kit/client/v2.0.1/client_suite.rb +30 -15
  99. data/lib/davinci_pas_test_kit/client/v2.0.1/must_support/pas_client_must_support_request_profiles_test.rb +2 -2
  100. data/lib/davinci_pas_test_kit/client/v2.0.1/pas_client_approval_group.rb +8 -7
  101. data/lib/davinci_pas_test_kit/client/v2.0.1/pas_client_auth_smart_group.rb +4 -4
  102. data/lib/davinci_pas_test_kit/client/v2.0.1/pas_client_auth_udap_group.rb +4 -4
  103. data/lib/davinci_pas_test_kit/client/v2.0.1/pas_client_denial_group.rb +8 -7
  104. data/lib/davinci_pas_test_kit/client/v2.0.1/pas_client_must_support_group.rb +38 -52
  105. data/lib/davinci_pas_test_kit/client/v2.0.1/pas_client_pended_group.rb +28 -22
  106. data/lib/davinci_pas_test_kit/client/v2.0.1/pas_client_registration_group.rb +2 -2
  107. data/lib/davinci_pas_test_kit/client/v2.0.1/pas_client_subscription_setup_group.rb +2 -2
  108. data/lib/davinci_pas_test_kit/client/v2.0.1/pas_client_workflows_group.rb +2 -2
  109. data/lib/davinci_pas_test_kit/client/v2.0.1/workflows/pas_client_inquire_request_bundle_validation_test.rb +15 -21
  110. data/lib/davinci_pas_test_kit/client/v2.0.1/workflows/pas_client_inquire_response_bundle_validation_test.rb +29 -29
  111. data/lib/davinci_pas_test_kit/client/v2.0.1/workflows/pas_client_pended_submit_test.rb +49 -40
  112. data/lib/davinci_pas_test_kit/client/v2.0.1/workflows/pas_client_request_bundle_validation_test.rb +15 -21
  113. data/lib/davinci_pas_test_kit/client/v2.0.1/workflows/pas_client_response_bundle_validation_test.rb +29 -29
  114. data/lib/davinci_pas_test_kit/client/v2.2.1/attestations/attestation_instructions.rb +10 -0
  115. data/lib/davinci_pas_test_kit/client/v2.2.1/attestations/client_data_element_expectations_attestation_test.rb +44 -0
  116. data/lib/davinci_pas_test_kit/client/v2.2.1/attestations/client_provider_review_attestation_test.rb +45 -0
  117. data/lib/davinci_pas_test_kit/client/v2.2.1/attestations/client_security_attestation_test.rb +42 -0
  118. data/lib/davinci_pas_test_kit/client/v2.2.1/attestations/client_subscription_error_recovery_attestation_test.rb +42 -0
  119. data/lib/davinci_pas_test_kit/client/v2.2.1/client_suite.rb +64 -12
  120. data/lib/davinci_pas_test_kit/client/v2.2.1/error_handling/pas_client_operation_failure_submit_test.rb +20 -10
  121. data/lib/davinci_pas_test_kit/client/v2.2.1/error_handling/pas_client_operation_outcome_validation_test.rb +11 -5
  122. data/lib/davinci_pas_test_kit/client/v2.2.1/error_handling/pas_client_processing_error_response_validation_test.rb +21 -12
  123. data/lib/davinci_pas_test_kit/client/v2.2.1/error_handling/pas_client_processing_error_submit_test.rb +19 -8
  124. data/lib/davinci_pas_test_kit/client/v2.2.1/must_support/must_support_with_attestation_option.rb +90 -40
  125. data/lib/davinci_pas_test_kit/client/v2.2.1/pas_client_approval_group.rb +12 -11
  126. data/lib/davinci_pas_test_kit/client/v2.2.1/pas_client_attestations_group.rb +32 -0
  127. data/lib/davinci_pas_test_kit/client/v2.2.1/pas_client_auth_smart_group.rb +4 -4
  128. data/lib/davinci_pas_test_kit/client/v2.2.1/pas_client_auth_udap_group.rb +4 -4
  129. data/lib/davinci_pas_test_kit/client/v2.2.1/pas_client_claim_updates_group.rb +24 -6
  130. data/lib/davinci_pas_test_kit/client/v2.2.1/pas_client_denial_group.rb +12 -10
  131. data/lib/davinci_pas_test_kit/client/v2.2.1/pas_client_modification_group.rb +13 -14
  132. data/lib/davinci_pas_test_kit/client/v2.2.1/pas_client_must_support_group.rb +55 -59
  133. data/lib/davinci_pas_test_kit/client/v2.2.1/pas_client_operation_failure_group.rb +8 -5
  134. data/lib/davinci_pas_test_kit/client/v2.2.1/pas_client_pended_group.rb +53 -41
  135. data/lib/davinci_pas_test_kit/client/v2.2.1/pas_client_processing_error_group.rb +9 -7
  136. data/lib/davinci_pas_test_kit/client/v2.2.1/pas_client_registration_group.rb +2 -2
  137. data/lib/davinci_pas_test_kit/client/v2.2.1/pas_client_subscription_setup_group.rb +9 -4
  138. data/lib/davinci_pas_test_kit/client/v2.2.1/pas_client_subscription_update_delete_group.rb +57 -0
  139. data/lib/davinci_pas_test_kit/client/v2.2.1/pas_client_workflows_group.rb +22 -2
  140. data/lib/davinci_pas_test_kit/client/v2.2.1/subscription/pas_client_subscription_create_test.rb +2 -1
  141. data/lib/davinci_pas_test_kit/client/v2.2.1/subscription/pas_client_subscription_put_update_pas_conformance_test.rb +49 -0
  142. data/lib/davinci_pas_test_kit/client/v2.2.1/subscription/pas_client_subscription_update_delete_test.rb +12 -0
  143. data/lib/davinci_pas_test_kit/client/v2.2.1/workflows/pas_client_claim_update_referenced_resources_test.rb +5 -6
  144. data/lib/davinci_pas_test_kit/client/v2.2.1/workflows/pas_client_claim_update_submit_tests.rb +82 -56
  145. data/lib/davinci_pas_test_kit/client/v2.2.1/workflows/pas_client_inquire_request_bundle_validation_test.rb +17 -20
  146. data/lib/davinci_pas_test_kit/client/v2.2.1/workflows/pas_client_inquire_response_bundle_validation_test.rb +59 -27
  147. data/lib/davinci_pas_test_kit/client/v2.2.1/workflows/pas_client_modification_verification_test.rb +0 -3
  148. data/lib/davinci_pas_test_kit/client/v2.2.1/workflows/pas_client_pended_send_notification_test.rb +138 -0
  149. data/lib/davinci_pas_test_kit/client/v2.2.1/workflows/pas_client_pended_submit_test.rb +32 -85
  150. data/lib/davinci_pas_test_kit/client/v2.2.1/workflows/pas_client_request_bundle_validation_test.rb +16 -21
  151. data/lib/davinci_pas_test_kit/client/v2.2.1/workflows/pas_client_response_bundle_validation_test.rb +27 -27
  152. data/lib/davinci_pas_test_kit/cross_suite/fhirpath_utils.rb +13 -3
  153. data/lib/davinci_pas_test_kit/cross_suite/generated/v2.0.1/beneficiary/metadata.yml +4 -0
  154. data/lib/davinci_pas_test_kit/cross_suite/generated/v2.0.1/claim_inquiry/metadata.yml +15 -0
  155. data/lib/davinci_pas_test_kit/cross_suite/generated/v2.0.1/claim_update/metadata.yml +17 -0
  156. data/lib/davinci_pas_test_kit/cross_suite/generated/v2.0.1/claiminquiryresponse/metadata.yml +15 -0
  157. data/lib/davinci_pas_test_kit/cross_suite/generated/v2.0.1/claimresponse/metadata.yml +15 -0
  158. data/lib/davinci_pas_test_kit/cross_suite/generated/v2.0.1/communication_request/metadata.yml +4 -0
  159. data/lib/davinci_pas_test_kit/cross_suite/generated/v2.0.1/coverage/metadata.yml +1 -0
  160. data/lib/davinci_pas_test_kit/cross_suite/generated/v2.0.1/device_request/metadata.yml +2 -0
  161. data/lib/davinci_pas_test_kit/cross_suite/generated/v2.0.1/encounter/metadata.yml +3 -0
  162. data/lib/davinci_pas_test_kit/cross_suite/generated/v2.0.1/insurer/metadata.yml +1 -0
  163. data/lib/davinci_pas_test_kit/cross_suite/generated/v2.0.1/medication_request/metadata.yml +2 -0
  164. data/lib/davinci_pas_test_kit/cross_suite/generated/v2.0.1/metadata.yml +143 -0
  165. data/lib/davinci_pas_test_kit/cross_suite/generated/v2.0.1/nutrition_order/metadata.yml +2 -0
  166. data/lib/davinci_pas_test_kit/cross_suite/generated/v2.0.1/pas_inquiry_request_bundle/metadata.yml +2 -0
  167. data/lib/davinci_pas_test_kit/cross_suite/generated/v2.0.1/pas_inquiry_response_bundle/metadata.yml +2 -0
  168. data/lib/davinci_pas_test_kit/cross_suite/generated/v2.0.1/pas_request_bundle/metadata.yml +2 -0
  169. data/lib/davinci_pas_test_kit/cross_suite/generated/v2.0.1/pas_response_bundle/metadata.yml +2 -0
  170. data/lib/davinci_pas_test_kit/cross_suite/generated/v2.0.1/practitioner/metadata.yml +1 -0
  171. data/lib/davinci_pas_test_kit/cross_suite/generated/v2.0.1/practitioner_role/metadata.yml +1 -0
  172. data/lib/davinci_pas_test_kit/cross_suite/generated/v2.0.1/requestor/metadata.yml +1 -0
  173. data/lib/davinci_pas_test_kit/cross_suite/generated/v2.0.1/service_request/metadata.yml +3 -0
  174. data/lib/davinci_pas_test_kit/cross_suite/generated/v2.0.1/subscriber/metadata.yml +4 -0
  175. data/lib/davinci_pas_test_kit/cross_suite/generated/v2.0.1/task/metadata.yml +1 -4
  176. data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/beneficiary/metadata.yml +1 -0
  177. data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/claim_inquiry/metadata.yml +23 -0
  178. data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/claim_update/metadata.yml +31 -0
  179. data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/claiminquiryresponse/metadata.yml +42 -0
  180. data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/claimresponse/metadata.yml +42 -0
  181. data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/communication_request/metadata.yml +4 -0
  182. data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/coverage/metadata.yml +1 -0
  183. data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/device_request/metadata.yml +2 -0
  184. data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/encounter/metadata.yml +3 -0
  185. data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/insurer/metadata.yml +1 -0
  186. data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/medication_request/metadata.yml +2 -0
  187. data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/metadata.yml +265 -1
  188. data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/nutrition_order/metadata.yml +2 -0
  189. data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/pas_inquiry_request_bundle/metadata.yml +2 -0
  190. data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/pas_inquiry_response_bundle/metadata.yml +2 -0
  191. data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/pas_request_bundle/metadata.yml +2 -0
  192. data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/pas_response_bundle/metadata.yml +2 -0
  193. data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/practitioner/metadata.yml +1 -0
  194. data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/practitioner_role/metadata.yml +1 -0
  195. data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/requestor/metadata.yml +1 -0
  196. data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/service_request/metadata.yml +3 -0
  197. data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/subscriber/metadata.yml +1 -0
  198. data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/task/metadata.yml +4 -4
  199. data/lib/davinci_pas_test_kit/cross_suite/pas_bundle_validation.rb +570 -312
  200. data/lib/davinci_pas_test_kit/cross_suite/pas_constants.rb +13 -0
  201. data/lib/davinci_pas_test_kit/cross_suite/pas_datatype_constraints.rb +166 -0
  202. data/lib/davinci_pas_test_kit/cross_suite/pas_subscription_verification.rb +8 -4
  203. data/lib/davinci_pas_test_kit/cross_suite/referenced_resource_presence_validation.rb +141 -0
  204. data/lib/davinci_pas_test_kit/cross_suite/response_selection_utils.rb +39 -21
  205. data/lib/davinci_pas_test_kit/cross_suite/tags.rb +11 -6
  206. data/lib/davinci_pas_test_kit/cross_suite/validator_configuration.rb +16 -0
  207. data/lib/davinci_pas_test_kit/cross_suite/validator_suppressions.rb +210 -146
  208. data/lib/davinci_pas_test_kit/docs/demo/PAS Client Suite Demonstration.postman_collection.json +7 -7
  209. data/lib/davinci_pas_test_kit/ext/inferno_core/runnable.rb +1 -0
  210. data/lib/davinci_pas_test_kit/generator/client_must_support_group_generator.rb +47 -16
  211. data/lib/davinci_pas_test_kit/generator/must_support_target_profiles.rb +17 -0
  212. data/lib/davinci_pas_test_kit/generator/must_support_test_generator.rb +14 -2
  213. data/lib/davinci_pas_test_kit/generator/pas_must_support_metadata_extractor.rb +1 -2
  214. data/lib/davinci_pas_test_kit/generator/profile_metadata.rb +1 -1
  215. data/lib/davinci_pas_test_kit/generator/server_must_support_group_generator.rb +23 -0
  216. data/lib/davinci_pas_test_kit/generator/server_suite_generator.rb +8 -7
  217. data/lib/davinci_pas_test_kit/generator/templates/client_must_support_group.rb.erb +22 -3
  218. data/lib/davinci_pas_test_kit/generator/templates/client_must_support_response_group.rb.erb +7 -16
  219. data/lib/davinci_pas_test_kit/generator/templates/must_support.rb.erb +11 -10
  220. data/lib/davinci_pas_test_kit/generator/templates/server_must_support_group.rb.erb +22 -0
  221. data/lib/davinci_pas_test_kit/generator/templates/server_suite.rb.erb +9 -11
  222. data/lib/davinci_pas_test_kit/generator/templates/use_case_group.rb.erb +3 -0
  223. data/lib/davinci_pas_test_kit/generator/use_case_group_generator.rb +19 -13
  224. data/lib/davinci_pas_test_kit/parameters_helper.rb +13 -5
  225. data/lib/davinci_pas_test_kit/pas_notification_conformance_test.rb +2 -2
  226. data/lib/davinci_pas_test_kit/requirements/davinci_pas_test_kit_requirements.csv +14 -7
  227. data/lib/davinci_pas_test_kit/requirements/generated/davinci_pas_client_suite_v201_requirements_coverage.csv +21 -21
  228. data/lib/davinci_pas_test_kit/requirements/generated/davinci_pas_client_suite_v221_requirements_coverage.csv +30 -26
  229. data/lib/davinci_pas_test_kit/requirements/generated/davinci_pas_server_suite_v221_requirements_coverage.csv +39 -33
  230. data/lib/davinci_pas_test_kit/requirements/hl7.fhir.us.davinci-pas_2.2.1_requirements.xlsx +0 -0
  231. data/lib/davinci_pas_test_kit/server/claim_operation_logic.rb +1 -1
  232. data/lib/davinci_pas_test_kit/server/generated/v2.0.1/beneficiary/server_inquire_request_must_support_beneficiary_test.rb +1 -1
  233. data/lib/davinci_pas_test_kit/server/generated/v2.0.1/beneficiary/server_inquire_response_must_support_beneficiary_test.rb +1 -1
  234. data/lib/davinci_pas_test_kit/server/generated/v2.0.1/beneficiary/server_submit_request_must_support_beneficiary_test.rb +1 -1
  235. data/lib/davinci_pas_test_kit/server/generated/v2.0.1/beneficiary/server_submit_response_must_support_beneficiary_test.rb +1 -1
  236. data/lib/davinci_pas_test_kit/server/generated/v2.0.1/claim_inquiry/server_inquire_request_must_support_claim_inquiry_test.rb +1 -1
  237. data/lib/davinci_pas_test_kit/server/generated/v2.0.1/claim_update/server_submit_request_must_support_claim_update_test.rb +1 -1
  238. data/lib/davinci_pas_test_kit/server/generated/v2.0.1/claiminquiryresponse/server_inquire_response_must_support_claiminquiryresponse_test.rb +1 -1
  239. data/lib/davinci_pas_test_kit/server/generated/v2.0.1/claimresponse/server_submit_response_must_support_claimresponse_test.rb +1 -1
  240. data/lib/davinci_pas_test_kit/server/generated/v2.0.1/communication_request/server_submit_response_must_support_communication_request_test.rb +1 -1
  241. data/lib/davinci_pas_test_kit/server/generated/v2.0.1/coverage/server_inquire_request_must_support_coverage_test.rb +1 -1
  242. data/lib/davinci_pas_test_kit/server/generated/v2.0.1/coverage/server_submit_request_must_support_coverage_test.rb +1 -1
  243. data/lib/davinci_pas_test_kit/server/generated/v2.0.1/encounter/server_submit_request_must_support_encounter_test.rb +1 -1
  244. data/lib/davinci_pas_test_kit/server/generated/v2.0.1/insurer/server_inquire_request_must_support_insurer_test.rb +1 -1
  245. data/lib/davinci_pas_test_kit/server/generated/v2.0.1/insurer/server_inquire_response_must_support_insurer_test.rb +1 -1
  246. data/lib/davinci_pas_test_kit/server/generated/v2.0.1/insurer/server_submit_request_must_support_insurer_test.rb +1 -1
  247. data/lib/davinci_pas_test_kit/server/generated/v2.0.1/insurer/server_submit_response_must_support_insurer_test.rb +1 -1
  248. 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 +1 -1
  249. 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 +1 -1
  250. data/lib/davinci_pas_test_kit/server/generated/v2.0.1/pas_request_bundle/server_submit_request_must_support_pas_request_bundle_test.rb +1 -1
  251. data/lib/davinci_pas_test_kit/server/generated/v2.0.1/pas_response_bundle/server_submit_response_must_support_pas_response_bundle_test.rb +1 -1
  252. data/lib/davinci_pas_test_kit/server/generated/v2.0.1/pas_server_approval_use_case_group.rb +4 -3
  253. data/lib/davinci_pas_test_kit/server/generated/v2.0.1/pas_server_denial_use_case_group.rb +4 -3
  254. data/lib/davinci_pas_test_kit/server/generated/v2.0.1/pas_server_pended_use_case_group.rb +7 -6
  255. data/lib/davinci_pas_test_kit/server/generated/v2.0.1/practitioner/server_inquire_request_must_support_practitioner_test.rb +1 -1
  256. data/lib/davinci_pas_test_kit/server/generated/v2.0.1/practitioner/server_inquire_response_must_support_practitioner_test.rb +1 -1
  257. data/lib/davinci_pas_test_kit/server/generated/v2.0.1/practitioner/server_submit_request_must_support_practitioner_test.rb +1 -1
  258. data/lib/davinci_pas_test_kit/server/generated/v2.0.1/practitioner/server_submit_response_must_support_practitioner_test.rb +1 -1
  259. data/lib/davinci_pas_test_kit/server/generated/v2.0.1/practitioner_role/server_inquire_request_must_support_practitioner_role_test.rb +1 -1
  260. data/lib/davinci_pas_test_kit/server/generated/v2.0.1/practitioner_role/server_inquire_response_must_support_practitioner_role_test.rb +1 -1
  261. data/lib/davinci_pas_test_kit/server/generated/v2.0.1/practitioner_role/server_submit_request_must_support_practitioner_role_test.rb +1 -1
  262. data/lib/davinci_pas_test_kit/server/generated/v2.0.1/practitioner_role/server_submit_response_must_support_practitioner_role_test.rb +1 -1
  263. data/lib/davinci_pas_test_kit/server/generated/v2.0.1/requestor/server_inquire_request_must_support_requestor_test.rb +1 -1
  264. data/lib/davinci_pas_test_kit/server/generated/v2.0.1/requestor/server_inquire_response_must_support_requestor_test.rb +1 -1
  265. data/lib/davinci_pas_test_kit/server/generated/v2.0.1/requestor/server_submit_request_must_support_requestor_test.rb +1 -1
  266. data/lib/davinci_pas_test_kit/server/generated/v2.0.1/requestor/server_submit_response_must_support_requestor_test.rb +1 -1
  267. data/lib/davinci_pas_test_kit/server/generated/v2.0.1/server_suite.rb +9 -11
  268. data/lib/davinci_pas_test_kit/server/generated/v2.0.1/subscriber/server_inquire_request_must_support_subscriber_test.rb +1 -1
  269. data/lib/davinci_pas_test_kit/server/generated/v2.0.1/subscriber/server_submit_request_must_support_subscriber_test.rb +1 -1
  270. data/lib/davinci_pas_test_kit/server/generated/v2.0.1/task/server_inquire_response_must_support_task_test.rb +1 -1
  271. data/lib/davinci_pas_test_kit/server/generated/v2.0.1/task/server_submit_response_must_support_task_test.rb +1 -1
  272. data/lib/davinci_pas_test_kit/server/generated/v2.2.1/beneficiary/server_inquire_request_must_support_beneficiary_test.rb +1 -1
  273. data/lib/davinci_pas_test_kit/server/generated/v2.2.1/beneficiary/server_inquire_response_must_support_beneficiary_test.rb +1 -1
  274. data/lib/davinci_pas_test_kit/server/generated/v2.2.1/beneficiary/server_submit_request_must_support_beneficiary_test.rb +1 -1
  275. data/lib/davinci_pas_test_kit/server/generated/v2.2.1/beneficiary/server_submit_response_must_support_beneficiary_test.rb +1 -1
  276. data/lib/davinci_pas_test_kit/server/generated/v2.2.1/claim_inquiry/server_inquire_request_must_support_claim_inquiry_test.rb +1 -1
  277. data/lib/davinci_pas_test_kit/server/generated/v2.2.1/claim_update/server_submit_request_must_support_claim_update_test.rb +1 -1
  278. data/lib/davinci_pas_test_kit/server/generated/v2.2.1/claiminquiryresponse/server_inquire_response_must_support_claiminquiryresponse_test.rb +3 -1
  279. data/lib/davinci_pas_test_kit/server/generated/v2.2.1/claimresponse/server_submit_response_must_support_claimresponse_test.rb +3 -1
  280. data/lib/davinci_pas_test_kit/server/generated/v2.2.1/communication_request/server_submit_response_must_support_communication_request_test.rb +1 -1
  281. data/lib/davinci_pas_test_kit/server/generated/v2.2.1/coverage/server_inquire_request_must_support_coverage_test.rb +1 -1
  282. data/lib/davinci_pas_test_kit/server/generated/v2.2.1/coverage/server_submit_request_must_support_coverage_test.rb +1 -1
  283. data/lib/davinci_pas_test_kit/server/generated/v2.2.1/encounter/server_submit_request_must_support_encounter_test.rb +1 -1
  284. data/lib/davinci_pas_test_kit/server/generated/v2.2.1/insurer/server_inquire_request_must_support_insurer_test.rb +1 -1
  285. data/lib/davinci_pas_test_kit/server/generated/v2.2.1/insurer/server_inquire_response_must_support_insurer_test.rb +1 -1
  286. data/lib/davinci_pas_test_kit/server/generated/v2.2.1/insurer/server_submit_request_must_support_insurer_test.rb +1 -1
  287. data/lib/davinci_pas_test_kit/server/generated/v2.2.1/insurer/server_submit_response_must_support_insurer_test.rb +1 -1
  288. 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 +1 -1
  289. 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 +1 -1
  290. data/lib/davinci_pas_test_kit/server/generated/v2.2.1/pas_request_bundle/server_submit_request_must_support_pas_request_bundle_test.rb +1 -1
  291. data/lib/davinci_pas_test_kit/server/generated/v2.2.1/pas_response_bundle/server_submit_response_must_support_pas_response_bundle_test.rb +1 -1
  292. data/lib/davinci_pas_test_kit/server/generated/v2.2.1/pas_server_approval_use_case_group.rb +5 -3
  293. data/lib/davinci_pas_test_kit/server/generated/v2.2.1/pas_server_denial_use_case_group.rb +5 -3
  294. data/lib/davinci_pas_test_kit/server/generated/v2.2.1/pas_server_must_support_group.rb +12 -0
  295. data/lib/davinci_pas_test_kit/server/generated/v2.2.1/pas_server_pended_use_case_group.rb +9 -4
  296. data/lib/davinci_pas_test_kit/server/generated/v2.2.1/practitioner/server_inquire_request_must_support_practitioner_test.rb +1 -1
  297. data/lib/davinci_pas_test_kit/server/generated/v2.2.1/practitioner/server_inquire_response_must_support_practitioner_test.rb +1 -1
  298. data/lib/davinci_pas_test_kit/server/generated/v2.2.1/practitioner/server_submit_request_must_support_practitioner_test.rb +1 -1
  299. data/lib/davinci_pas_test_kit/server/generated/v2.2.1/practitioner/server_submit_response_must_support_practitioner_test.rb +1 -1
  300. data/lib/davinci_pas_test_kit/server/generated/v2.2.1/practitioner_role/server_inquire_request_must_support_practitioner_role_test.rb +1 -1
  301. data/lib/davinci_pas_test_kit/server/generated/v2.2.1/practitioner_role/server_inquire_response_must_support_practitioner_role_test.rb +1 -1
  302. data/lib/davinci_pas_test_kit/server/generated/v2.2.1/practitioner_role/server_submit_request_must_support_practitioner_role_test.rb +1 -1
  303. data/lib/davinci_pas_test_kit/server/generated/v2.2.1/practitioner_role/server_submit_response_must_support_practitioner_role_test.rb +1 -1
  304. data/lib/davinci_pas_test_kit/server/generated/v2.2.1/requestor/server_inquire_request_must_support_requestor_test.rb +1 -1
  305. data/lib/davinci_pas_test_kit/server/generated/v2.2.1/requestor/server_inquire_response_must_support_requestor_test.rb +1 -1
  306. data/lib/davinci_pas_test_kit/server/generated/v2.2.1/requestor/server_submit_request_must_support_requestor_test.rb +1 -1
  307. data/lib/davinci_pas_test_kit/server/generated/v2.2.1/requestor/server_submit_response_must_support_requestor_test.rb +1 -1
  308. data/lib/davinci_pas_test_kit/server/generated/v2.2.1/server_suite.rb +9 -11
  309. data/lib/davinci_pas_test_kit/server/generated/v2.2.1/subscriber/server_inquire_request_must_support_subscriber_test.rb +1 -1
  310. data/lib/davinci_pas_test_kit/server/generated/v2.2.1/subscriber/server_submit_request_must_support_subscriber_test.rb +1 -1
  311. data/lib/davinci_pas_test_kit/server/generated/v2.2.1/task/server_inquire_response_must_support_task_test.rb +1 -1
  312. data/lib/davinci_pas_test_kit/server/generated/v2.2.1/task/server_submit_response_must_support_task_test.rb +1 -1
  313. data/lib/davinci_pas_test_kit/server/pas_claim_response_decision_test.rb +2 -2
  314. data/lib/davinci_pas_test_kit/server/server_request_bundle_validation_test.rb +4 -6
  315. data/lib/davinci_pas_test_kit/server/server_response_bundle_validation_test.rb +17 -10
  316. data/lib/davinci_pas_test_kit/server/v2.0.1/must_support/pas_server_must_support_request_profiles_test.rb +1 -1
  317. data/lib/davinci_pas_test_kit/server/v2.0.1/pas_server_subscription_setup.rb +1 -1
  318. data/lib/davinci_pas_test_kit/server/v2.2.1/claim_inquiry/server_claim_inquiry_response_tests.rb +89 -0
  319. data/lib/davinci_pas_test_kit/server/v2.2.1/must_support/pas_server_must_support_request_profiles_test.rb +1 -1
  320. data/lib/davinci_pas_test_kit/server/v2.2.1/pas_error_group.rb +2 -0
  321. data/lib/davinci_pas_test_kit/server/v2.2.1/pas_server_claim_inquiry_responses_group.rb +17 -0
  322. data/lib/davinci_pas_test_kit/server/v2.2.1/pas_server_claim_updates_group.rb +1 -1
  323. data/lib/davinci_pas_test_kit/server/v2.2.1/pas_server_no_custom_extensions_test.rb +241 -0
  324. data/lib/davinci_pas_test_kit/server/v2.2.1/pas_server_subscription_capability_statement_test.rb +40 -0
  325. data/lib/davinci_pas_test_kit/server/v2.2.1/pas_server_subscription_setup.rb +15 -10
  326. data/lib/davinci_pas_test_kit/server/v2.2.1/server_replaced_pa_inquire_reference_input_test.rb +63 -0
  327. data/lib/davinci_pas_test_kit/server/v2.2.1/server_replaced_pa_inquire_reference_test.rb +109 -0
  328. data/lib/davinci_pas_test_kit/version.rb +2 -2
  329. metadata +38 -13
  330. data/lib/davinci_pas_test_kit/client/generated/v2.0.1/task/client_inquire_response_must_support_task_test.rb +0 -45
  331. data/lib/davinci_pas_test_kit/client/generated/v2.0.1/task/client_submit_response_must_support_task_test.rb +0 -45
  332. data/lib/davinci_pas_test_kit/client/generated/v2.2.1/task/client_inquire_response_must_support_task_test.rb +0 -55
  333. data/lib/davinci_pas_test_kit/client/generated/v2.2.1/task/client_submit_response_must_support_task_test.rb +0 -55
  334. data/lib/davinci_pas_test_kit/client/v2.2.1/pas_client_error_handling_group.rb +0 -20
@@ -3,6 +3,10 @@ require_relative '../../claim_submit_operation_test'
3
3
  require_relative '../../server_response_bundle_validation_test'
4
4
  require_relative '../../claim_inquire_operation_test'
5
5
  require_relative '../../v2.2.1/must_support/pas_server_must_support_request_profiles_test'
6
+ require_relative '../../v2.2.1/pas_server_no_custom_extensions_test'
7
+ require_relative '../../v2.2.1/pas_server_claim_inquiry_responses_group'
8
+ require_relative '../../v2.2.1/server_replaced_pa_inquire_reference_input_test'
9
+ require_relative '../../v2.2.1/server_replaced_pa_inquire_reference_test'
6
10
  require_relative 'pas_request_bundle/server_submit_request_must_support_pas_request_bundle_test'
7
11
  require_relative 'claim_update/server_submit_request_must_support_claim_update_test'
8
12
  require_relative 'coverage/server_submit_request_must_support_coverage_test'
@@ -204,11 +208,14 @@ module DaVinciPASTestKit
204
208
  }
205
209
  )
206
210
  end
211
+
212
+ test from: :pas_server_v221_no_custom_extensions_test
207
213
  end
208
214
 
209
215
  group do
210
216
  title '$submit Request Must Support'
211
217
  simulation_verification
218
+ verifies_requirements 'hl7.fhir.us.davinci-pas_2.2.1@conf-4', 'hl7.fhir.us.davinci-pas_2.2.1@conf-5'
212
219
 
213
220
  test from: :pas_server_v221_must_support_request_profiles
214
221
  test from: :pas_server_v221_submit_request_must_support_pas_request_bundle
@@ -369,11 +376,14 @@ module DaVinciPASTestKit
369
376
  }
370
377
  )
371
378
  end
379
+ test from: :pas_server_v221_replaced_pa_inquire_reference_input_test
380
+ test from: :pas_server_v221_replaced_pa_inquire_reference_test
372
381
  end
373
382
 
374
383
  group do
375
384
  title '$inquire Request Must Support'
376
385
  simulation_verification
386
+ verifies_requirements 'hl7.fhir.us.davinci-pas_2.2.1@conf-4', 'hl7.fhir.us.davinci-pas_2.2.1@conf-5'
377
387
 
378
388
  test from: :pas_server_v221_inquire_request_must_support_pas_inquiry_request_bundle
379
389
  test from: :pas_server_v221_inquire_request_must_support_claim_inquiry
@@ -397,6 +407,8 @@ module DaVinciPASTestKit
397
407
  test from: :pas_server_v221_inquire_response_must_support_practitioner_role
398
408
  test from: :pas_server_v221_inquire_response_must_support_task
399
409
  end
410
+
411
+ group from: :pas_server_v221_claim_inquiry_responses
400
412
  end
401
413
  end
402
414
  end
@@ -12,9 +12,9 @@ module DaVinciPASTestKit
12
12
  module DaVinciPASV221
13
13
  class PASServerPendedUseCaseGroup < Inferno::TestGroup
14
14
  id :pas_server_v221_pended_use_case
15
- title 'Successful Pended Workflow'
15
+ title 'Successful Pended Scenario'
16
16
  description %(
17
- Demonstrate a complete prior authorization workflow including a period
17
+ Demonstrate a complete prior authorization scenario including a period
18
18
  during which the final decision is pending. This includes demonstrating
19
19
  the ability of the server to
20
20
 
@@ -37,7 +37,7 @@ module DaVinciPASTestKit
37
37
 
38
38
  This test validates the conformity of the
39
39
  user input to the
40
- [PAS Request Bundle](http://hl7.org/fhir/us/davinci-pas/StructureDefinition/profile-pas-request-bundle|v2.2.1)
40
+ [PAS Request Bundle](https://hl7.org/fhir/us/davinci-pas/2.2.1/StructureDefinition-profile-pas-request-bundle.html)
41
41
  profile, ensuring subsequent tests can accurately simulate content.
42
42
 
43
43
  It also checks that other conformance requirements defined in the [PAS Formal
@@ -91,7 +91,7 @@ module DaVinciPASTestKit
91
91
  description %(
92
92
  This test validates the conformity of the
93
93
  server's response to the
94
- [PAS Response Bundle](http://hl7.org/fhir/us/davinci-pas/StructureDefinition/profile-pas-response-bundle|v2.2.1)
94
+ [PAS Response Bundle](https://hl7.org/fhir/us/davinci-pas/2.2.1/StructureDefinition-profile-pas-response-bundle.html)
95
95
  profile.
96
96
 
97
97
  It also checks that other conformance requirements defined in the [PAS Formal
@@ -109,6 +109,7 @@ module DaVinciPASTestKit
109
109
  sets containing X12 codes are not validated.
110
110
 
111
111
  )
112
+
112
113
  config(
113
114
  options: {
114
115
  use_case: 'pended',
@@ -116,6 +117,7 @@ module DaVinciPASTestKit
116
117
  ig_version: 'v2.2.1'
117
118
  }
118
119
  )
120
+ verifies_requirements 'hl7.fhir.us.davinci-pas_2.2.1@spec-30', 'hl7.fhir.us.davinci-pas_2.2.1@spec-31', 'hl7.fhir.us.davinci-pas_2.2.1@spec-33'
119
121
  end
120
122
  test from: :prior_auth_claim_response_decision_validation do
121
123
  id :pas_server_v221_decision_validation_test_pended
@@ -133,6 +135,7 @@ module DaVinciPASTestKit
133
135
 
134
136
  test from: :pas_server_v221_subscription_notification_wait do
135
137
  id :pas_server_v221_subscription_notification_wait_pended
138
+ verifies_requirements 'hl7.fhir.us.davinci-pas_2.2.1@spec-51', 'hl7.fhir.us.davinci-pas_2.2.1@spec-60'
136
139
  end
137
140
  test from: :subscriptions_r4_server_notification_conformance do
138
141
  id :pas_server_v221_subscription_notification_conformance_pended
@@ -143,6 +146,8 @@ module DaVinciPASTestKit
143
146
  end
144
147
  test from: :pas_notification_pas_conformance_test do
145
148
  id :pas_server_v221_notification_pas_conformance_pended
149
+ verifies_requirements 'hl7.fhir.us.davinci-pas_2.2.1@spec-61',
150
+ 'hl7.fhir.us.davinci-pas_2.2.1@spec-62'
146
151
  end
147
152
  end
148
153
  end
@@ -10,7 +10,7 @@ module DaVinciPASTestKit
10
10
  **USER INPUT VALIDATION**: This test validates input provided by the user instead of the system under test. Errors encountered will be treated as a skip instead of a failure.
11
11
 
12
12
  PAS server systems are required to be able to receive all
13
- must support elements on instances of all profiles included in
13
+ must support elements on instances of all profiles included in `$inquire`
14
14
  requests, including instances of the PAS Practitioner Profile.
15
15
  This test checks all identified instances of the PAS Practitioner
16
16
  Profile on requests sent to the server to ensure that the following
@@ -8,7 +8,7 @@ module DaVinciPASTestKit
8
8
  description %(
9
9
 
10
10
  PAS server systems are required to be able to populate all
11
- must support elements on instances of all profiles included in
11
+ must support elements on instances of all profiles included in `$inquire`
12
12
  responses, including instances of the PAS Practitioner Profile.
13
13
  This test checks all identified instances of the PAS Practitioner
14
14
  Profile on responses returned by the server to ensure that the following
@@ -10,7 +10,7 @@ module DaVinciPASTestKit
10
10
  **USER INPUT VALIDATION**: This test validates input provided by the user instead of the system under test. Errors encountered will be treated as a skip instead of a failure.
11
11
 
12
12
  PAS server systems are required to be able to receive all
13
- must support elements on instances of all profiles included in
13
+ must support elements on instances of all profiles included in `$submit`
14
14
  requests, including instances of the PAS Practitioner Profile.
15
15
  This test checks all identified instances of the PAS Practitioner
16
16
  Profile on requests sent to the server to ensure that the following
@@ -8,7 +8,7 @@ module DaVinciPASTestKit
8
8
  description %(
9
9
 
10
10
  PAS server systems are required to be able to populate all
11
- must support elements on instances of all profiles included in
11
+ must support elements on instances of all profiles included in `$submit`
12
12
  responses, including instances of the PAS Practitioner Profile.
13
13
  This test checks all identified instances of the PAS Practitioner
14
14
  Profile on responses returned by the server to ensure that the following
@@ -10,7 +10,7 @@ module DaVinciPASTestKit
10
10
  **USER INPUT VALIDATION**: This test validates input provided by the user instead of the system under test. Errors encountered will be treated as a skip instead of a failure.
11
11
 
12
12
  PAS server systems are required to be able to receive all
13
- must support elements on instances of all profiles included in
13
+ must support elements on instances of all profiles included in `$inquire`
14
14
  requests, including instances of the PAS PractitionerRole Profile.
15
15
  This test checks all identified instances of the PAS PractitionerRole
16
16
  Profile on requests sent to the server to ensure that the following
@@ -8,7 +8,7 @@ module DaVinciPASTestKit
8
8
  description %(
9
9
 
10
10
  PAS server systems are required to be able to populate all
11
- must support elements on instances of all profiles included in
11
+ must support elements on instances of all profiles included in `$inquire`
12
12
  responses, including instances of the PAS PractitionerRole Profile.
13
13
  This test checks all identified instances of the PAS PractitionerRole
14
14
  Profile on responses returned by the server to ensure that the following
@@ -10,7 +10,7 @@ module DaVinciPASTestKit
10
10
  **USER INPUT VALIDATION**: This test validates input provided by the user instead of the system under test. Errors encountered will be treated as a skip instead of a failure.
11
11
 
12
12
  PAS server systems are required to be able to receive all
13
- must support elements on instances of all profiles included in
13
+ must support elements on instances of all profiles included in `$submit`
14
14
  requests, including instances of the PAS PractitionerRole Profile.
15
15
  This test checks all identified instances of the PAS PractitionerRole
16
16
  Profile on requests sent to the server to ensure that the following
@@ -8,7 +8,7 @@ module DaVinciPASTestKit
8
8
  description %(
9
9
 
10
10
  PAS server systems are required to be able to populate all
11
- must support elements on instances of all profiles included in
11
+ must support elements on instances of all profiles included in `$submit`
12
12
  responses, including instances of the PAS PractitionerRole Profile.
13
13
  This test checks all identified instances of the PAS PractitionerRole
14
14
  Profile on responses returned by the server to ensure that the following
@@ -10,7 +10,7 @@ module DaVinciPASTestKit
10
10
  **USER INPUT VALIDATION**: This test validates input provided by the user instead of the system under test. Errors encountered will be treated as a skip instead of a failure.
11
11
 
12
12
  PAS server systems are required to be able to receive all
13
- must support elements on instances of all profiles included in
13
+ must support elements on instances of all profiles included in `$inquire`
14
14
  requests, including instances of the PAS Requestor Organization Profile.
15
15
  This test checks all identified instances of the PAS Requestor Organization
16
16
  Profile on requests sent to the server to ensure that the following
@@ -8,7 +8,7 @@ module DaVinciPASTestKit
8
8
  description %(
9
9
 
10
10
  PAS server systems are required to be able to populate all
11
- must support elements on instances of all profiles included in
11
+ must support elements on instances of all profiles included in `$inquire`
12
12
  responses, including instances of the PAS Requestor Organization Profile.
13
13
  This test checks all identified instances of the PAS Requestor Organization
14
14
  Profile on responses returned by the server to ensure that the following
@@ -10,7 +10,7 @@ module DaVinciPASTestKit
10
10
  **USER INPUT VALIDATION**: This test validates input provided by the user instead of the system under test. Errors encountered will be treated as a skip instead of a failure.
11
11
 
12
12
  PAS server systems are required to be able to receive all
13
- must support elements on instances of all profiles included in
13
+ must support elements on instances of all profiles included in `$submit`
14
14
  requests, including instances of the PAS Requestor Organization Profile.
15
15
  This test checks all identified instances of the PAS Requestor Organization
16
16
  Profile on requests sent to the server to ensure that the following
@@ -8,7 +8,7 @@ module DaVinciPASTestKit
8
8
  description %(
9
9
 
10
10
  PAS server systems are required to be able to populate all
11
- must support elements on instances of all profiles included in
11
+ must support elements on instances of all profiles included in `$submit`
12
12
  responses, including instances of the PAS Requestor Organization Profile.
13
13
  This test checks all identified instances of the PAS Requestor Organization
14
14
  Profile on responses returned by the server to ensure that the following
@@ -1,3 +1,4 @@
1
+ require_relative '../../../cross_suite/validator_configuration'
1
2
  require_relative '../../../cross_suite/validator_suppressions'
2
3
  require_relative '../../v2.2.1/pas_error_group'
3
4
  require_relative '../../v2.2.1/pas_server_subscription_setup'
@@ -25,8 +26,7 @@ module DaVinciPASTestKit
25
26
 
26
27
  The best place to get started is the [Server Testing
27
28
  Instructions](https://github.com/inferno-framework/davinci-pas-test-kit/wiki/Server-Instructions-v2.2.1),
28
- which provides a step-by-step guide for running the tests against a client and provides
29
- an example client implemented in Postman. Visit the [Server Testing
29
+ which provides a step-by-step guide for running the tests. Visit the [Server Testing
30
30
  Details](https://github.com/inferno-framework/davinci-pas-test-kit/wiki/Server-Details)
31
31
  documentation for information about technical implementation and known limitations of these tests.
32
32
 
@@ -37,6 +37,7 @@ module DaVinciPASTestKit
37
37
  - Approval of a prior authorization request
38
38
  - Denial of a prior authorization request
39
39
  - Pending of a prior authorization request and a subsequent final decision
40
+ - Claim updates (except in v2.0.1)
40
41
  - Inability to process a prior authorization request
41
42
  - The ability of the server to handle the full scope of data required by PAS, including
42
43
  - Ability to process prior auth requests and inquiries with all PAS profiles and all must support elements on those profiles
@@ -51,7 +52,7 @@ module DaVinciPASTestKit
51
52
  required features and functionality are present. HL7® FHIR® resources are
52
53
  validated with the Java validator using `tx.fhir.org` as the terminology server.
53
54
 
54
- %)
55
+ )
55
56
 
56
57
  links [
57
58
  {
@@ -86,17 +87,14 @@ module DaVinciPASTestKit
86
87
  )
87
88
 
88
89
  fhir_resource_validator do
89
- igs "hl7.fhir.us.davinci-pas#2.2.1", "hl7.fhir.us.core#6.1.0"
90
+ igs(*V221_VALIDATOR_IGS)
90
91
 
91
92
  exclude_message do |message|
92
- # Messages expected of the form `<ResourceType>: <FHIRPath>: <message>`
93
- # We strip `<ResourceType>: <FHIRPath>: ` for the sake of matching
94
- SUPPRESSED_MESSAGES.match?(message.message.sub(/\A\S+: \S+: /, '')) ||
95
- message.message.downcase.include?('x12')
93
+ V221_SUPPRESSED_MESSAGES.match?(message.message.sub(VALIDATOR_MESSAGE_LOCATION_PREFIX, ''))
96
94
  end
97
95
 
98
96
  validation_context do
99
- snomedCT '731000124108'
97
+ snomedCT SNOMED_CT_US_EDITION
100
98
  end
101
99
  end
102
100
 
@@ -129,9 +127,9 @@ module DaVinciPASTestKit
129
127
 
130
128
  group from: :pas_server_v221_subscription_setup
131
129
 
132
- group 'Demonstrate Workflow Support' do
130
+ group 'Demonstrate Scenario Support' do
133
131
  description %(
134
- The workflow tests validate that the server can participate in complete
132
+ The scenario tests validate that the server can participate in complete
135
133
  end-to-end prior authorization interactions, returning responses that are
136
134
  conformant and also contain the correct codes.
137
135
  )
@@ -10,7 +10,7 @@ module DaVinciPASTestKit
10
10
  **USER INPUT VALIDATION**: This test validates input provided by the user instead of the system under test. Errors encountered will be treated as a skip instead of a failure.
11
11
 
12
12
  PAS server systems are required to be able to receive all
13
- must support elements on instances of all profiles included in
13
+ must support elements on instances of all profiles included in `$inquire`
14
14
  requests, including instances of the PAS Subscriber Patient Profile.
15
15
  This test checks all identified instances of the PAS Subscriber Patient
16
16
  Profile on requests sent to the server to ensure that the following
@@ -10,7 +10,7 @@ module DaVinciPASTestKit
10
10
  **USER INPUT VALIDATION**: This test validates input provided by the user instead of the system under test. Errors encountered will be treated as a skip instead of a failure.
11
11
 
12
12
  PAS server systems are required to be able to receive all
13
- must support elements on instances of all profiles included in
13
+ must support elements on instances of all profiles included in `$submit`
14
14
  requests, including instances of the PAS Subscriber Patient Profile.
15
15
  This test checks all identified instances of the PAS Subscriber Patient
16
16
  Profile on requests sent to the server to ensure that the following
@@ -8,7 +8,7 @@ module DaVinciPASTestKit
8
8
  description %(
9
9
 
10
10
  PAS server systems are required to be able to populate all
11
- must support elements on instances of all profiles included in
11
+ must support elements on instances of all profiles included in `$inquire`
12
12
  responses, including instances of the PAS Task Profile.
13
13
  This test checks all identified instances of the PAS Task
14
14
  Profile on responses returned by the server to ensure that the following
@@ -8,7 +8,7 @@ module DaVinciPASTestKit
8
8
  description %(
9
9
 
10
10
  PAS server systems are required to be able to populate all
11
- must support elements on instances of all profiles included in
11
+ must support elements on instances of all profiles included in `$submit`
12
12
  responses, including instances of the PAS Task Profile.
13
13
  This test checks all identified instances of the PAS Task
14
14
  Profile on responses returned by the server to ensure that the following
@@ -7,7 +7,7 @@ module DaVinciPASTestKit
7
7
  title 'Server response includes the expected decision code in the ClaimResponse instance'
8
8
  description %(
9
9
  This test checks that the decision in the returned ClaimResponse matches
10
- the decision code required for the workflow under examination.
10
+ the decision code required for the scenario under examination.
11
11
  )
12
12
 
13
13
  def use_case
@@ -60,7 +60,7 @@ module DaVinciPASTestKit
60
60
 
61
61
  skip_if bundles_to_check.blank?,
62
62
  "No Bundles to check - No $#{operation} requests made during the #{use_case.titleize} " \
63
- 'workflow tests returned Bundles.'
63
+ 'scenario tests returned Bundles.'
64
64
 
65
65
  codes_ok = bundles_to_check.all? do |response_bundle|
66
66
  response_has_expected_adjudication_code?(response_bundle)
@@ -39,12 +39,12 @@ module DaVinciPASTestKit
39
39
  run do
40
40
  skip_if bundle_payload.blank?, 'No bundle request input provided.'
41
41
  assert_valid_json(bundle_payload,
42
- "Provide valid json to use for the $#{operation} during the #{use_case.titleize} workflow.")
42
+ "Provide valid json to use for the $#{operation} during the #{use_case.titleize} scenario.")
43
43
  bundles_to_verify = bundles
44
44
 
45
45
  assert bundles_to_verify.present?, 'Provided input is not a Bundle or list of Bundles.'
46
46
 
47
- bundles_to_verify.each do |bundle|
47
+ bundle_messages = bundles_to_verify.flat_map do |bundle|
48
48
  perform_bundle_validation(
49
49
  bundle,
50
50
  operation,
@@ -53,11 +53,9 @@ module DaVinciPASTestKit
53
53
  )
54
54
  end
55
55
 
56
- validation_error_messages.each do |msg|
57
- messages << { type: 'error', message: msg }
58
- end
56
+ messages.concat(bundle_messages)
59
57
 
60
- skip_if validation_error_messages.present?,
58
+ skip_if bundle_messages.any? { |message| message[:type] == 'error' },
61
59
  'Bundle(s) provided are not conformant. Check messages for issues found.'
62
60
  end
63
61
  end
@@ -32,7 +32,15 @@ module DaVinciPASTestKit
32
32
  requests = load_tagged_requests(DaVinciPASTestKit.operation_tag(operation),
33
33
  workflow_tag)
34
34
  bundles = []
35
- requests.map(&:response_body).compact.uniq.each do |response_body|
35
+ seen_response_bodies = []
36
+ requests.each do |request|
37
+ response_body = request.response_body
38
+ next if response_body.blank?
39
+ next if seen_response_bodies.include?(response_body)
40
+
41
+ seen_response_bodies << response_body
42
+
43
+ request_bundle = FHIR.from_contents(request.request_body) if request.request_body.present?
36
44
  resource = FHIR.from_contents(response_body)
37
45
  next unless resource.present?
38
46
 
@@ -40,10 +48,10 @@ module DaVinciPASTestKit
40
48
  if resource.resourceType == 'Parameters'
41
49
  # Extract all Bundles from Parameters.parameter entries
42
50
  parameter_bundles = extract_bundles_from_pas_inquiry_response_parameters(resource)
43
- bundles.concat(parameter_bundles)
51
+ bundles.concat(parameter_bundles.map { |bundle| [bundle, request_bundle] })
44
52
  elsif resource.is_a?(FHIR::Bundle)
45
53
  # Handle Bundle resource (v2.0.1 or v2.2.1 non-inquire)
46
- bundles << resource
54
+ bundles << [resource, request_bundle]
47
55
  end
48
56
  rescue StandardError
49
57
  next
@@ -55,21 +63,20 @@ module DaVinciPASTestKit
55
63
  run do
56
64
  bundles_to_verify = response_bundles
57
65
  assert bundles_to_verify.present?,
58
- "No successful $#{operation} requests made during the #{use_case.titleize} workflow tests."
66
+ "No successful $#{operation} requests made during the #{use_case.titleize} scenario tests."
59
67
 
60
- bundles_to_verify.each do |bundle|
68
+ bundle_messages = bundles_to_verify.flat_map do |bundle, request_bundle|
61
69
  perform_bundle_validation(
62
70
  bundle,
63
71
  operation,
64
72
  'response',
65
- ig_version
73
+ ig_version,
74
+ request_bundle
66
75
  )
67
76
  end
68
77
 
69
- validation_error_messages.each do |msg|
70
- messages << { type: 'error', message: msg }
71
- end
72
- assert validation_error_messages.blank?,
78
+ messages.concat(bundle_messages)
79
+ assert bundle_messages.none? { |message| message[:type] == 'error' },
73
80
  'Bundle response(s) returned are not conformant. Check messages for issues found.'
74
81
  end
75
82
  end
@@ -21,7 +21,7 @@ module DaVinciPASTestKit
21
21
  * PAS Device Request
22
22
  * PAS Nutrition Order
23
23
 
24
- System are allowed to support only the request profiles that fit their use cases. However,
24
+ PAS servers are allowed to support only the request profiles that fit their use cases. However,
25
25
  they must support at least one of them (because `Claim.item.extension:requestedService` is a
26
26
  must support element) and for any request profiles they support, they must be able to
27
27
  populate all of the defined must support elements.
@@ -8,7 +8,7 @@ module DaVinciPASTestKit
8
8
  title 'Subscription Setup'
9
9
  description %(
10
10
  The Subscription Setup tests verify that the server supports creation of a rest-hook Subscription. The
11
- Subscription instance created in these tests will be used for a notification in the pended workflow tests
11
+ Subscription instance created in these tests will be used for a notification in the pended scenario tests
12
12
  later.
13
13
  )
14
14
  config inputs: { url: { name: :server_endpoint } }
@@ -0,0 +1,89 @@
1
+ require_relative '../../../parameters_helper'
2
+ require_relative '../../../cross_suite/pas_constants'
3
+ require_relative '../../../cross_suite/tags'
4
+
5
+ module DaVinciPASTestKit
6
+ module DaVinciPASV221
7
+ module ServerClaimInquiryResponseValidation
8
+ include ParametersHelper
9
+
10
+ def inquiry_response_requests
11
+ load_tagged_requests(INQUIRE_TAG)
12
+ end
13
+
14
+ def response_bundles
15
+ inquiry_response_requests.flat_map do |request|
16
+ parsed_resource = parsed_response_resource(request)
17
+ next [] unless parsed_resource.is_a?(FHIR::Parameters)
18
+
19
+ extract_bundles_from_pas_inquiry_response_parameters(parsed_resource)
20
+ end
21
+ end
22
+
23
+ def parsed_response_resource(request)
24
+ return if request&.response_body.blank?
25
+
26
+ FHIR.from_contents(request.response_body)
27
+ rescue StandardError
28
+ nil
29
+ end
30
+
31
+ def claim_inquiry_responses
32
+ response_bundles.flat_map { |bundle| Array(bundle.entry).filter_map { |entry| entry&.resource } }
33
+ .grep(FHIR::ClaimResponse)
34
+ end
35
+
36
+ def claim_reference?(claim_response)
37
+ claim_response.request&.reference.present?
38
+ end
39
+
40
+ def data_absent_reason?(claim_response)
41
+ Array(claim_response.request&.extension).any? do |extension|
42
+ extension.url == PASConstants::DATA_ABSENT_REASON_EXTENSION_URL && extension.valueCode.present?
43
+ end
44
+ end
45
+
46
+ def claim_reference_or_data_absent_reason?(claim_response)
47
+ claim_reference?(claim_response) || data_absent_reason?(claim_response)
48
+ end
49
+
50
+ def claim_response_label(claim_response, index)
51
+ claim_response.id.present? ? "ClaimResponse/#{claim_response.id}" : "ClaimResponse at index #{index + 1}"
52
+ end
53
+ end
54
+
55
+ class PASServerClaimInquiryResponseClaimReferenceTest < Inferno::Test
56
+ include ServerClaimInquiryResponseValidation
57
+
58
+ id :pas_server_v221_claim_inquiry_response_claim_reference_test
59
+ title 'Server returns Claim Inquiry Responses with a Claim reference or Data Absent Reason'
60
+ description %(
61
+ The PAS IG [requires](https://hl7.org/fhir/us/davinci-pas/2.2.1/en/conformancedetails.html#ci-c-spec-44)
62
+ each Claim Inquiry Response to either reference the Claim that triggered adjudication or carry
63
+ a Data Absent Reason extension explaining why the Claim cannot be referenced.
64
+
65
+ This test examines ClaimResponse resources returned by prior `$inquire` requests and verifies that
66
+ each one includes either `ClaimResponse.request.reference` or the
67
+ `data-absent-reason` extension on `ClaimResponse.request`.
68
+ )
69
+ verifies_requirements 'hl7.fhir.us.davinci-pas_2.2.1@spec-44'
70
+
71
+ run do
72
+ claim_responses = claim_inquiry_responses
73
+ skip_if claim_responses.empty?,
74
+ 'No Claim Inquiry Response ClaimResponse resources were returned by prior $inquire requests.'
75
+
76
+ nonconformant = claim_responses.each_with_index.filter_map do |claim_response, index|
77
+ next if claim_reference_or_data_absent_reason?(claim_response)
78
+
79
+ claim_response_label(claim_response, index)
80
+ end
81
+
82
+ assert nonconformant.empty?,
83
+ 'The following Claim Inquiry Response resources did not include either ' \
84
+ '`ClaimResponse.request.reference` or a Data Absent Reason extension on ' \
85
+ "`ClaimResponse.request`: #{nonconformant.join(', ')}."
86
+ end
87
+ end
88
+ end
89
+ end
@@ -21,7 +21,7 @@ module DaVinciPASTestKit
21
21
  * PAS Device Request
22
22
  * PAS Nutrition Order
23
23
 
24
- System are allowed to support only the request profiles that fit their use cases. However,
24
+ PAS servers are allowed to support only the request profiles that fit their use cases. However,
25
25
  they must support at least one of them (because `Claim.item.extension:requestedService` is a
26
26
  must support element) and for any request profiles they support, they must be able to
27
27
  populate all of the defined must support elements.
@@ -13,6 +13,8 @@ module DaVinciPASTestKit
13
13
  id :pas_v221_error_group
14
14
  run_as_group
15
15
 
16
+ verifies_requirements 'hl7.fhir.us.davinci-pas_2.2.1@spec-39'
17
+
16
18
  test from: :pas_server_v221_prior_auth_submission_error
17
19
  test from: :pas_server_v221_prior_auth_inquiry_error
18
20
  end
@@ -0,0 +1,17 @@
1
+ require_relative 'claim_inquiry/server_claim_inquiry_response_tests'
2
+
3
+ module DaVinciPASTestKit
4
+ module DaVinciPASV221
5
+ class PASServerClaimInquiryResponsesGroup < Inferno::TestGroup
6
+ id :pas_server_v221_claim_inquiry_responses
7
+ title 'Additional $inquire Response Requirements'
8
+ description %(
9
+ Verify additional PAS Claim Inquiry Response rules against the ClaimResponse resources returned
10
+ by prior `$inquire` interactions. This group uses the inquiry responses already collected during
11
+ the server suite, including the Must Support inquiry workflow.
12
+ )
13
+
14
+ test from: :pas_server_v221_claim_inquiry_response_claim_reference_test
15
+ end
16
+ end
17
+ end
@@ -92,7 +92,7 @@ module DaVinciPASTestKit
92
92
  group do
93
93
  title "Verify the server's responses to the claim updates"
94
94
  description %(
95
- These tests check the server's responses from the submission sequence and verify that the server
95
+ The tests in this group check the server's responses from the submission sequence and verify that the server
96
96
  returned current results for all submitted items and echoed the submitted item sequences.
97
97
  )
98
98