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,7 @@ require_relative '../../client_input_descriptions'
3
3
  require_relative '../../user_input_response'
4
4
  require_relative '../../../cross_suite/pas_bundle_validation'
5
5
  require_relative '../../session_identification'
6
+ require_relative '../../subscription_setup_requirement'
6
7
 
7
8
  module DaVinciPASTestKit
8
9
  module DaVinciPASV221
@@ -11,55 +12,24 @@ module DaVinciPASTestKit
11
12
  include SessionIdentification
12
13
  include UserInputResponse
13
14
  include PasBundleValidation
15
+ include SubscriptionSetupRequirement
14
16
 
15
17
  id :pas_client_v221_pended_submit_test
16
- title 'PAS Client submits a claim and receives a final decision via a notification'
18
+ title 'PAS client submits a claim using the $submit operation'
17
19
  description %(
18
- Inferno will wait for a prior authorization submission request
19
- from the client. Upon receipt, Inferno will respond with the
20
- provided pended response. Subsequently, Inferno will send a
21
- full-resource notification containing the final decision.
22
- In v2.2.1, no follow-up `$inquire` request is needed as the
23
- notification includes all details.
20
+ During this test, Inferno will wait for a prior authorization submission request
21
+ from the PAS client using the `$submit` operation. Upon receipt, Inferno will respond
22
+ with a [tester-provided](https://github.com/inferno-framework/davinci-pas-test-kit/wiki/Controlling-Simulated-Responses#tester-directed-custom-responses)
23
+ or [Inferno-mocked](https://github.com/inferno-framework/davinci-pas-test-kit/wiki/Controlling-Simulated-Responses#mocked-responses)
24
+ pended response. Inferno will not respond to `$inquire` operation requests during
25
+ this test.
24
26
  )
25
27
 
26
- config options: { accepts_multiple_requests: true }
27
- input :notification_bundle,
28
- title: 'Claim updated notification JSON',
29
- type: 'textarea',
30
- optional: true,
31
- description: %(
32
- If provided, this JSON will be sent as the notification for the
33
- PAS Subscription to tell the client that a decision has been made on the pended claim.
34
- Before sending, Inferno will update the provided notification with details that the tester cannot
35
- know ahead of time, including timestamps corresponding to the notification trigger time, and the id of
36
- the triggering ClaimResponse if Inferno mocks that ClaimResponse because it is not provided by the
37
- tester through the *Claim pended response JSON* input.
38
- If not provided, a notification will be generated from the returned ClaimResponse.
39
- In either case the response will be validated to ensure that the notification
40
- is conformant. For v2.2.1, the notification will be a full-resource notification
41
- containing the complete ClaimResponse.
42
- )
43
28
  input :pended_json_response,
44
29
  title: 'Claim pended response JSON',
45
30
  type: 'textarea',
46
31
  optional: true,
47
- description: %(
48
- If provided, this JSON will be sent in response to $submit requests during this test
49
- to indicate that the request has been pended awaiting a final decision.
50
- It will be updated to make creation timestamps current.
51
- If not provided, a pended response will be generated from the submitted Claim.
52
- In either case the response will be validated against the PAS Response Bundle profile.
53
- )
54
- input :client_endpoint_access_token,
55
- optional: true,
56
- title: 'Client Notification Access Token',
57
- description: %(
58
- The bearer token that Inferno will send on requests to the client under test's rest-hook notification
59
- endpoint. Not needed if the client under test will create a Subscription with an appropriate header value
60
- in the `channel.header` element. If a value for the `authorization` header is provided in
61
- `channel.header`, this value will override it.
62
- )
32
+ description: DaVinciPASTestKit.user_response_input_description('$submit', 'pended', 'Pended Response')
63
33
  input :client_id,
64
34
  title: 'Client Id',
65
35
  type: 'text',
@@ -74,16 +44,10 @@ module DaVinciPASTestKit
74
44
  description: INPUT_SESSION_URL_PATH_LOCKED
75
45
 
76
46
  submit_respond_with :pended_json_response
77
- output :confirmation_url
47
+ config options: { submit_enabled: true, suppress_notifications: true } # handling notification separately
78
48
 
79
49
  run do
80
- load_tagged_requests(SUBSCRIPTION_CREATE_TAG)
81
- skip_if requests.empty?, # NOTE: subscription needed ahead of time to support notification generation
82
- %(
83
- Pended workflow tests cannot proceed because no Subscription exists to receive notifications
84
- for pended claims. Run the _PAS Subscription Setup_ tests to provide a Subscription for use
85
- in delivering notifications before re-running the pended workflow tests.
86
- )
50
+ require_unmodified_subscription
87
51
 
88
52
  if user_inputted_response? :pended_json_response
89
53
  assert_valid_json pended_json_response,
@@ -95,52 +59,35 @@ module DaVinciPASTestKit
95
59
  ))
96
60
  end
97
61
 
98
- if notification_bundle.present?
99
- assert_valid_json notification_bundle,
100
- "Input '#{input_title(:notification_bundle)}' must be valid JSON"
101
- else
102
- add_message('info', %(
103
- No notification body provided in input '#{input_title(:notification_bundle)}'. When sending a
104
- notification finalizing a pended $submit response, the notification body will be generated by Inferno
105
- from the submitted Claim.
106
- ))
107
- end
108
-
109
62
  wait_identifier = session_wait_identifier(client_id, session_url_path)
110
63
  submit_endpoint = session_endpoint_url(:submit, client_id, session_url_path)
111
- confirmation_url = "#{resume_pass_url}?token=#{wait_identifier}"
112
- output(confirmation_url:)
113
64
 
114
65
  wait(
115
66
  identifier: wait_identifier,
116
- timeout: 600,
117
- message: %(
118
- **Pended Workflow Test**:
67
+ message: <<~MESSAGE
68
+ **Pended Scenario Test**:
69
+
70
+ Inferno will wait while the tester uses the PAS client to submit a PAS request to
71
+ Inferno. The tests will automatically continue once a request has been received.
119
72
 
120
- 1. Submit a PAS request to
73
+ ### Endpoints
74
+
75
+ Submit a PAS request to
121
76
 
122
77
  `#{submit_endpoint}`
123
78
 
124
- If the optional '**#{input_title(:pended_json_response)}**' input is populated, it will
125
- be returned, updated with current timestamps. Otherwise, a pended response will
126
- be generated by Inferno using the received Claim.
127
-
128
- 2. Within 5-10 seconds, Inferno will send a full-resource notification indicating that the
129
- ClaimResponse has been finalized. The notification will contain the complete updated
130
- ClaimResponse. If the optional '**#{input_title(:notification_bundle)}**' input is populated
131
- Inferno will send it as a notification. Otherwise, a notification will be generated
132
- from Inferno. In either case, the notification will be delivered to the endpoint provided on the
133
- Subscription during the _PAS Subscription Setup_ tests.
134
-
135
- Note that Inferno will ask testers to attest to correct behavior of the system between these steps,
136
- i.e., that the system marked the pended prior auth request appropriately after step 1 (submit) but
137
- before step 2 (notification). Thus testers should check their system state as appropriate in order
138
- to be able to faithfully answer the attestations.
139
-
140
- Once the client has completed these steps,
141
- [click here to complete the test](#{confirmation_url})
142
- and continue Inferno's evaluation of the interaction.
143
- )
79
+ ### Authentication and Identification
80
+
81
+ #{auth_description_for_wait(client_id)}
82
+
83
+ ### Responses
84
+
85
+ #{response_description_for_wait(user_inputted_response?(:pended_json_response),
86
+ input_title(:pended_json_response),
87
+ '$submit')}
88
+
89
+ Inferno will not respond to `$inquire` requests during this test.
90
+ MESSAGE
144
91
  )
145
92
  end
146
93
  end
@@ -1,14 +1,16 @@
1
1
  require_relative '../../../cross_suite/pas_bundle_validation'
2
+ require_relative '../../client_bundle_validation_helper'
2
3
 
3
4
  module DaVinciPASTestKit
4
5
  module DaVinciPASV221
5
6
  class PasClientRequestBundleValidationTest < Inferno::Test
6
7
  include DaVinciPASTestKit::PasBundleValidation
8
+ include DaVinciPASTestKit::ClientBundleValidationHelper
7
9
 
8
10
  id :pas_client_v221_request_bundle_validation_test
9
11
  title '$submit request Bundles have the correct structure and content'
10
12
  description %(
11
- This test verifies the conformity of the client's submit request body to the
13
+ This test verifies the conformity of each of the PAS client's `$submit` request bodies to the
12
14
  [PAS Request Bundle](http://hl7.org/fhir/us/davinci-pas/2.2.1/StructureDefinition-profile-pas-request-bundle.html)
13
15
  structure. It also checks that other conformance requirements defined in the [PAS Formal
14
16
  Specification](https://hl7.org/fhir/us/davinci-pas/2.2.1/specification.html),
@@ -24,32 +26,25 @@ module DaVinciPASTestKit
24
26
  Note that because X12 value sets are not public, elements bound to value
25
27
  sets containing X12 codes are not validated.
26
28
  )
27
- verifies_requirements 'hl7.fhir.us.davinci-pas_2.2.1@spec-1'
29
+ verifies_requirements 'hl7.fhir.us.davinci-pas_2.2.1@spec-1', 'hl7.fhir.us.davinci-pas_2.2.1@prof-1',
30
+ 'hl7.fhir.us.davinci-pas_2.2.1@prof-2', 'hl7.fhir.us.davinci-pas_2.2.1@prof-3'
28
31
 
29
- def workflow_tag
30
- config.options[:workflow_tag]
32
+ def operation_name
33
+ 'submit'
31
34
  end
32
35
 
33
- def request_type_tag
34
- SUBMIT_TAG
36
+ def message_direction_name
37
+ 'request'
38
+ end
39
+
40
+ def ig_version
41
+ '2.2.1'
35
42
  end
36
43
 
37
44
  run do
38
- if workflow_tag.present?
39
- load_tagged_requests(request_type_tag, workflow_tag)
40
- else
41
- load_tagged_requests(request_type_tag)
42
- end
43
- skip_if !request.present?, 'No submit requests received.'
44
-
45
- validate_pas_bundle_json(
46
- request.request_body,
47
- 'http://hl7.org/fhir/us/davinci-pas/StructureDefinition/profile-pas-request-bundle',
48
- '2.2.1',
49
- 'submit',
50
- 'request_bundle',
51
- message: 'The Bundle provided for the Claim/$submit operation is invalid:'
52
- )
45
+ failed = non_conformant_bundles
46
+ assert failed.empty?,
47
+ "Non-conformant request Bundles detected: #{failed.join(', ')}. Check messages for issues found."
53
48
  end
54
49
  end
55
50
  end
@@ -1,18 +1,18 @@
1
1
  require_relative '../../../cross_suite/pas_bundle_validation'
2
2
  require_relative '../../user_input_response'
3
- require_relative '../../response_generator'
3
+ require_relative '../../client_bundle_validation_helper'
4
4
 
5
5
  module DaVinciPASTestKit
6
6
  module DaVinciPASV221
7
7
  class PasClientResponseBundleValidationTest < Inferno::Test
8
8
  include DaVinciPASTestKit::PasBundleValidation
9
9
  include UserInputResponse
10
- include ResponseGenerator
10
+ include DaVinciPASTestKit::ClientBundleValidationHelper
11
11
 
12
12
  id :pas_client_v221_response_bundle_validation_test
13
13
  title '$submit response Bundles have the correct structure and content'
14
14
  description %(
15
- This test verifies the conformity of the submit response sent by Inferno, which will have been
15
+ This test verifies the conformity of each `$submit` response sent by Inferno, which will have been
16
16
  either:
17
17
  - the response body provided by the tester in the corresponding input, or
18
18
  - created by Inferno from the $submit Bundle.
@@ -30,17 +30,24 @@ module DaVinciPASTestKit
30
30
  to the bound ValueSet. Quantity, Coding, and code element bindings will
31
31
  fail if their code/system are not found in the valueset.
32
32
 
33
- Note that because X12 value sets are not public, elements bound to value
34
- sets containing X12 codes are not validated.
33
+ Note that:
34
+ - To ensure that the PAS client is driving its behavior only based on standard
35
+ PAS information, custom extensions are not allowed within the responses.
36
+ - Because X12 value sets are not public, elements bound to value
37
+ sets containing X12 codes are not validated.
35
38
  )
36
39
  simulation_verification
37
40
 
38
- def request_type
41
+ def operation_name
39
42
  'submit'
40
43
  end
41
44
 
42
- def workflow_tag
43
- config.options[:workflow_tag]
45
+ def message_direction_name
46
+ 'response'
47
+ end
48
+
49
+ def ig_version
50
+ '2.2.1'
44
51
  end
45
52
 
46
53
  def target_user_input
@@ -58,26 +65,19 @@ module DaVinciPASTestKit
58
65
  end
59
66
  end
60
67
 
61
- run do
62
- load_tagged_requests(workflow_tag, SUBMIT_TAG)
63
- skip_if requests.empty?, 'No responses to verify because no submit requests were made.'
64
- message = if workflow_tag == MUST_SUPPORT_WORKFLOW_TAG
65
- 'Invalid must support response bundle provided:'
66
- elsif user_inputted_response? target_user_input
67
- "Invalid response generated from provided input '#{input_title(target_user_input)}':"
68
- else
69
- 'Invalid response generated from the submitted claim:'
70
- end
68
+ def failed_entities_description
69
+ if user_inputted_response? target_user_input
70
+ "built from tester-provided response in '#{input_title(target_user_input)}'"
71
+ else
72
+ 'generated from the submitted claim'
73
+ end
74
+ end
71
75
 
72
- validate_pas_bundle_json(
73
- request.response_body,
74
- 'http://hl7.org/fhir/us/davinci-pas/StructureDefinition/profile-pas-response-bundle',
75
- '2.2.1',
76
- request_type,
77
- 'response_bundle',
78
- skips: true,
79
- message:
80
- )
76
+ run do
77
+ failed = non_conformant_bundles
78
+ skip_if failed.present?,
79
+ "Non-conformant response Bundles #{failed_entities_description}: #{failed.join(', ')}. " \
80
+ 'Check messages for issues found.'
81
81
  end
82
82
  end
83
83
  end
@@ -3,6 +3,9 @@ module DaVinciPASTestKit
3
3
  # the FHIRPath evaluation service and for replacing {{fhirpath}} tokens in
4
4
  # serialized resources with values pulled from a request.
5
5
  module FhirpathUtils
6
+ # Raised when the FHIRPath service cannot be reached or does not return a usable
7
+ # result. Messages name the query and end with the service's response or the
8
+ # connection error so that they can be shown to the tester as-is.
6
9
  class FhirpathServiceError < StandardError; end
7
10
 
8
11
  def fhirpath_evaluator
@@ -14,8 +17,10 @@ module DaVinciPASTestKit
14
17
  return fhirpath_result if fhirpath_result.status.to_s.start_with?('2')
15
18
 
16
19
  raise FhirpathServiceError,
17
- "FHIRPath service returned #{fhirpath_result.status} for query '#{query}' " \
18
- "on resource #{body}: #{fhirpath_result.body}"
20
+ "The FHIRPath service returned HTTP #{fhirpath_result.status} for query '#{query}': " \
21
+ "#{fhirpath_result.body}"
22
+ rescue Faraday::Error => e
23
+ raise FhirpathServiceError, "The FHIRPath service request for query '#{query}' failed: #{e.message}"
19
24
  end
20
25
 
21
26
  def interpret_fhirpath_result_as_boolean(fhirpath_result)
@@ -45,11 +50,16 @@ module DaVinciPASTestKit
45
50
  end
46
51
 
47
52
  def calculate_expression_string_value(request, expression)
48
- JSON.parse(execute_fhirpath(request, expression).body)
53
+ fhirpath_result = execute_fhirpath(request, expression)
54
+ JSON.parse(fhirpath_result.body)
49
55
  .map { |result| result['element'] }
50
56
  .map { |element| element.is_a?(Array) || element.is_a?(Hash) ? nil : element }
51
57
  .compact
52
58
  .join(',')
59
+ rescue JSON::ParserError
60
+ raise FhirpathServiceError,
61
+ "The FHIRPath service returned an unparseable response for query '#{expression}': " \
62
+ "#{fhirpath_result.body}"
53
63
  end
54
64
  end
55
65
  end
@@ -16,14 +16,17 @@
16
16
  :must_supports:
17
17
  :extensions:
18
18
  - :id: Patient.extension:race
19
+ :slice_name: race
19
20
  :path: extension
20
21
  :url: http://hl7.org/fhir/us/core/StructureDefinition/us-core-race
21
22
  :modifier_extension: false
22
23
  - :id: Patient.extension:ethnicity
24
+ :slice_name: ethnicity
23
25
  :path: extension
24
26
  :url: http://hl7.org/fhir/us/core/StructureDefinition/us-core-ethnicity
25
27
  :modifier_extension: false
26
28
  - :id: Patient.extension:birthsex
29
+ :slice_name: birthsex
27
30
  :path: extension
28
31
  :url: http://hl7.org/fhir/us/core/StructureDefinition/us-core-birthsex
29
32
  :modifier_extension: false
@@ -59,6 +62,7 @@
59
62
  - :path: address.period
60
63
  - :path: communication
61
64
  - :path: communication.language
65
+ :recursive_elements: []
62
66
  :mandatory_elements:
63
67
  - Patient.identifier
64
68
  - Patient.identifier.system
@@ -32,58 +32,72 @@
32
32
  :must_supports:
33
33
  :extensions:
34
34
  - :id: Claim.extension:levelOfServiceType
35
+ :slice_name: levelOfServiceType
35
36
  :path: extension
36
37
  :url: http://hl7.org/fhir/us/davinci-pas/StructureDefinition/extension-levelOfServiceCode
37
38
  :modifier_extension: false
38
39
  - :id: Claim.extension:certificationType
40
+ :slice_name: certificationType
39
41
  :path: extension
40
42
  :url: http://hl7.org/fhir/us/davinci-pas/StructureDefinition/extension-certificationType
41
43
  :modifier_extension: false
42
44
  - :id: Claim.careTeam.extension:careTeamClaimScope
45
+ :slice_name: careTeamClaimScope
43
46
  :path: careTeam.extension
44
47
  :url: http://hl7.org/fhir/us/davinci-pas/StructureDefinition/extension-careTeamClaimScope
45
48
  :modifier_extension: false
46
49
  - :id: Claim.careTeam:OverallClaimMember.extension:careTeamClaimScope
50
+ :slice_name: careTeamClaimScope
47
51
  :path: careTeam.extension
48
52
  :url: http://hl7.org/fhir/us/davinci-pas/StructureDefinition/extension-careTeamClaimScope
49
53
  :modifier_extension: false
50
54
  - :id: Claim.careTeam:ItemClaimMember.extension:careTeamClaimScope
55
+ :slice_name: careTeamClaimScope
51
56
  :path: careTeam.extension
52
57
  :url: http://hl7.org/fhir/us/davinci-pas/StructureDefinition/extension-careTeamClaimScope
53
58
  :modifier_extension: false
54
59
  - :id: Claim.item.extension:itemTraceNumber
60
+ :slice_name: itemTraceNumber
55
61
  :path: item.extension
56
62
  :url: http://hl7.org/fhir/us/davinci-pas/StructureDefinition/extension-itemTraceNumber
57
63
  :modifier_extension: false
58
64
  - :id: Claim.item.extension:authorizationNumber
65
+ :slice_name: authorizationNumber
59
66
  :path: item.extension
60
67
  :url: http://hl7.org/fhir/us/davinci-pas/StructureDefinition/extension-authorizationNumber
61
68
  :modifier_extension: false
62
69
  - :id: Claim.item.extension:administrationReferenceNumber
70
+ :slice_name: administrationReferenceNumber
63
71
  :path: item.extension
64
72
  :url: http://hl7.org/fhir/us/davinci-pas/StructureDefinition/extension-administrationReferenceNumber
65
73
  :modifier_extension: false
66
74
  - :id: Claim.item.extension:requestType
75
+ :slice_name: requestType
67
76
  :path: item.extension
68
77
  :url: http://hl7.org/fhir/us/davinci-pas/StructureDefinition/extension-serviceItemRequestType
69
78
  :modifier_extension: false
70
79
  - :id: Claim.item.extension:certificationType
80
+ :slice_name: certificationType
71
81
  :path: item.extension
72
82
  :url: http://hl7.org/fhir/us/davinci-pas/StructureDefinition/extension-certificationType
73
83
  :modifier_extension: false
74
84
  - :id: Claim.item.extension:certIssueDate
85
+ :slice_name: certIssueDate
75
86
  :path: item.extension
76
87
  :url: http://hl7.org/fhir/us/davinci-pas/StructureDefinition/extension-itemCertificationIssueDate
77
88
  :modifier_extension: false
78
89
  - :id: Claim.item.extension:certExpirationDate
90
+ :slice_name: certExpirationDate
79
91
  :path: item.extension
80
92
  :url: http://hl7.org/fhir/us/davinci-pas/StructureDefinition/extension-itemCertificationExpirationDate
81
93
  :modifier_extension: false
82
94
  - :id: Claim.item.extension:certEffectiveDate
95
+ :slice_name: certEffectiveDate
83
96
  :path: item.extension
84
97
  :url: http://hl7.org/fhir/us/davinci-pas/StructureDefinition/extension-itemCertificationEffectiveDate
85
98
  :modifier_extension: false
86
99
  - :id: Claim.item.extension:reviewActionCode
100
+ :slice_name: reviewActionCode
87
101
  :path: item.extension
88
102
  :url: http://hl7.org/fhir/us/davinci-pas/StructureDefinition/extension-reviewActionCode
89
103
  :modifier_extension: false
@@ -177,6 +191,7 @@
177
191
  - :path: item.serviced[x]
178
192
  - :path: item.location[x]
179
193
  - :path: item.quantity
194
+ :recursive_elements: []
180
195
  :mandatory_elements:
181
196
  - Claim.status
182
197
  - Claim.type
@@ -33,66 +33,82 @@
33
33
  :must_supports:
34
34
  :extensions:
35
35
  - :id: Claim.extension:levelOfServiceType
36
+ :slice_name: levelOfServiceType
36
37
  :path: extension
37
38
  :url: http://hl7.org/fhir/us/davinci-pas/StructureDefinition/extension-levelOfServiceCode
38
39
  :modifier_extension: false
39
40
  - :id: Claim.extension:encounter
41
+ :slice_name: encounter
40
42
  :path: extension
41
43
  :url: http://hl7.org/fhir/5.0/StructureDefinition/extension-Claim.encounter
42
44
  :modifier_extension: false
43
45
  - :id: Claim.careTeam.extension:careTeamClaimScope
46
+ :slice_name: careTeamClaimScope
44
47
  :path: careTeam.extension
45
48
  :url: http://hl7.org/fhir/us/davinci-pas/StructureDefinition/extension-careTeamClaimScope
46
49
  :modifier_extension: false
47
50
  - :id: Claim.careTeam:OverallClaimMember.extension:careTeamClaimScope
51
+ :slice_name: careTeamClaimScope
48
52
  :path: careTeam.extension
49
53
  :url: http://hl7.org/fhir/us/davinci-pas/StructureDefinition/extension-careTeamClaimScope
50
54
  :modifier_extension: false
51
55
  - :id: Claim.careTeam:ItemClaimMember.extension:careTeamClaimScope
56
+ :slice_name: careTeamClaimScope
52
57
  :path: careTeam.extension
53
58
  :url: http://hl7.org/fhir/us/davinci-pas/StructureDefinition/extension-careTeamClaimScope
54
59
  :modifier_extension: false
55
60
  - :id: Claim.diagnosis.extension:recordedDate
61
+ :slice_name: recordedDate
56
62
  :path: diagnosis.extension
57
63
  :url: http://hl7.org/fhir/us/davinci-pas/StructureDefinition/extension-diagnosisRecordedDate
58
64
  :modifier_extension: false
59
65
  - :id: Claim.item.extension:itemTraceNumber
66
+ :slice_name: itemTraceNumber
60
67
  :path: item.extension
61
68
  :url: http://hl7.org/fhir/us/davinci-pas/StructureDefinition/extension-itemTraceNumber
62
69
  :modifier_extension: false
63
70
  - :id: Claim.item.extension:authorizationNumber
71
+ :slice_name: authorizationNumber
64
72
  :path: item.extension
65
73
  :url: http://hl7.org/fhir/us/davinci-pas/StructureDefinition/extension-authorizationNumber
66
74
  :modifier_extension: false
67
75
  - :id: Claim.item.extension:administrationReferenceNumber
76
+ :slice_name: administrationReferenceNumber
68
77
  :path: item.extension
69
78
  :url: http://hl7.org/fhir/us/davinci-pas/StructureDefinition/extension-administrationReferenceNumber
70
79
  :modifier_extension: false
71
80
  - :id: Claim.item.extension:requestType
81
+ :slice_name: requestType
72
82
  :path: item.extension
73
83
  :url: http://hl7.org/fhir/us/davinci-pas/StructureDefinition/extension-serviceItemRequestType
74
84
  :modifier_extension: false
75
85
  - :id: Claim.item.extension:certificationType
86
+ :slice_name: certificationType
76
87
  :path: item.extension
77
88
  :url: http://hl7.org/fhir/us/davinci-pas/StructureDefinition/extension-certificationType
78
89
  :modifier_extension: false
79
90
  - :id: Claim.item.extension:epsdtIndicator
91
+ :slice_name: epsdtIndicator
80
92
  :path: item.extension
81
93
  :url: http://hl7.org/fhir/us/davinci-pas/StructureDefinition/extension-epsdtIndicator
82
94
  :modifier_extension: false
83
95
  - :id: Claim.item.extension:nursingHomeResidentialStatus
96
+ :slice_name: nursingHomeResidentialStatus
84
97
  :path: item.extension
85
98
  :url: http://hl7.org/fhir/us/davinci-pas/StructureDefinition/extension-nursingHomeResidentialStatus
86
99
  :modifier_extension: false
87
100
  - :id: Claim.item.extension:nursingHomeLevelOfCare
101
+ :slice_name: nursingHomeLevelOfCare
88
102
  :path: item.extension
89
103
  :url: http://hl7.org/fhir/us/davinci-pas/StructureDefinition/extension-nursingHomeLevelOfCare
90
104
  :modifier_extension: false
91
105
  - :id: Claim.item.extension:revenueUnitRateLimit
106
+ :slice_name: revenueUnitRateLimit
92
107
  :path: item.extension
93
108
  :url: http://hl7.org/fhir/us/davinci-pas/StructureDefinition/extension-revenueUnitRateLimit
94
109
  :modifier_extension: false
95
110
  - :id: Claim.item.extension:requestedService
111
+ :slice_name: requestedService
96
112
  :path: item.extension
97
113
  :url: http://hl7.org/fhir/us/davinci-pas/StructureDefinition/extension-requestedService
98
114
  :modifier_extension: false
@@ -211,6 +227,7 @@
211
227
  - :path: item.location[x]
212
228
  - :path: item.quantity
213
229
  - :path: item.unitPrice
230
+ :recursive_elements: []
214
231
  :mandatory_elements:
215
232
  - Claim.extension.url
216
233
  - Claim.extension.value[x]
@@ -17,54 +17,67 @@
17
17
  :must_supports:
18
18
  :extensions:
19
19
  - :id: ClaimResponse.item.extension:itemTraceNumber
20
+ :slice_name: itemTraceNumber
20
21
  :path: item.extension
21
22
  :url: http://hl7.org/fhir/us/davinci-pas/StructureDefinition/extension-itemTraceNumber
22
23
  :modifier_extension: false
23
24
  - :id: ClaimResponse.item.extension:preAuthIssueDate
25
+ :slice_name: preAuthIssueDate
24
26
  :path: item.extension
25
27
  :url: http://hl7.org/fhir/us/davinci-pas/StructureDefinition/extension-itemPreAuthIssueDate
26
28
  :modifier_extension: false
27
29
  - :id: ClaimResponse.item.extension:preAuthPeriod
30
+ :slice_name: preAuthPeriod
28
31
  :path: item.extension
29
32
  :url: http://hl7.org/fhir/us/davinci-pas/StructureDefinition/extension-itemPreAuthPeriod
30
33
  :modifier_extension: false
31
34
  - :id: ClaimResponse.item.extension:previousAuthorizationNumber
35
+ :slice_name: previousAuthorizationNumber
32
36
  :path: item.extension
33
37
  :url: http://hl7.org/fhir/us/davinci-pas/StructureDefinition/extension-authorizationNumber
34
38
  :modifier_extension: false
35
39
  - :id: ClaimResponse.item.extension:administrationReferenceNumber
40
+ :slice_name: administrationReferenceNumber
36
41
  :path: item.extension
37
42
  :url: http://hl7.org/fhir/us/davinci-pas/StructureDefinition/extension-administrationReferenceNumber
38
43
  :modifier_extension: false
39
44
  - :id: ClaimResponse.item.extension:requestedServiceDate
45
+ :slice_name: requestedServiceDate
40
46
  :path: item.extension
41
47
  :url: http://hl7.org/fhir/us/davinci-pas/StructureDefinition/extension-itemRequestedServiceDate
42
48
  :modifier_extension: false
43
49
  - :id: ClaimResponse.item.extension:authorizedItemDetail
50
+ :slice_name: authorizedItemDetail
44
51
  :path: item.extension
45
52
  :url: http://hl7.org/fhir/us/davinci-pas/StructureDefinition/extension-itemAuthorizedDetail
46
53
  :modifier_extension: false
47
54
  - :id: ClaimResponse.item.extension:authorizedProvider
55
+ :slice_name: authorizedProvider
48
56
  :path: item.extension
49
57
  :url: http://hl7.org/fhir/us/davinci-pas/StructureDefinition/extension-itemAuthorizedProvider
50
58
  :modifier_extension: false
51
59
  - :id: ClaimResponse.item.extension:communicatedDiagnosis
60
+ :slice_name: communicatedDiagnosis
52
61
  :path: item.extension
53
62
  :url: http://hl7.org/fhir/us/davinci-pas/StructureDefinition/extension-communicatedDiagnosis
54
63
  :modifier_extension: false
55
64
  - :id: ClaimResponse.item.adjudication.extension:reviewAction
65
+ :slice_name: reviewAction
56
66
  :path: item.adjudication.extension
57
67
  :url: http://hl7.org/fhir/us/davinci-pas/StructureDefinition/extension-reviewAction
58
68
  :modifier_extension: false
59
69
  - :id: ClaimResponse.error.extension:followupAction
70
+ :slice_name: followupAction
60
71
  :path: error.extension
61
72
  :url: http://hl7.org/fhir/us/davinci-pas/StructureDefinition/extension-errorFollowupAction
62
73
  :modifier_extension: false
63
74
  - :id: ClaimResponse.error.extension:errorElement
75
+ :slice_name: errorElement
64
76
  :path: error.extension
65
77
  :url: http://hl7.org/fhir/us/davinci-pas/StructureDefinition/extension-errorElement
66
78
  :modifier_extension: false
67
79
  - :id: ClaimResponse.error.extension:errorPath
80
+ :slice_name: errorPath
68
81
  :path: error.extension
69
82
  :url: http://hl7.org/fhir/us/davinci-pas/StructureDefinition/extension-errorPath
70
83
  :modifier_extension: false
@@ -97,6 +110,8 @@
97
110
  - :path: item.adjudication
98
111
  - :path: error
99
112
  - :path: error.code
113
+ :recursive_elements:
114
+ - adjudication
100
115
  :mandatory_elements:
101
116
  - ClaimResponse.status
102
117
  - ClaimResponse.type