davinci_pas_test_kit 0.15.2 → 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 (271) hide show
  1. checksums.yaml +4 -4
  2. data/config/presets/g33_br_provider.json +13 -0
  3. data/lib/davinci_pas_test_kit/client/abstract_approval_submit_test.rb +28 -17
  4. data/lib/davinci_pas_test_kit/client/abstract_denial_submit_test.rb +26 -16
  5. data/lib/davinci_pas_test_kit/client/abstract_gather_must_support_test.rb +43 -26
  6. data/lib/davinci_pas_test_kit/client/abstract_modification_submit_test.rb +29 -19
  7. data/lib/davinci_pas_test_kit/client/abstract_response_attest.rb +75 -6
  8. data/lib/davinci_pas_test_kit/client/abstract_subscription_create_test.rb +26 -9
  9. data/lib/davinci_pas_test_kit/client/abstract_subscription_update_delete_test.rb +91 -0
  10. data/lib/davinci_pas_test_kit/client/client_bundle_validation_helper.rb +245 -0
  11. data/lib/davinci_pas_test_kit/client/client_input_descriptions.rb +91 -25
  12. data/lib/davinci_pas_test_kit/client/endpoints/claim_endpoint.rb +108 -68
  13. data/lib/davinci_pas_test_kit/client/endpoints/endpoint_session_identification.rb +24 -0
  14. data/lib/davinci_pas_test_kit/client/endpoints/expired_token.rb +40 -0
  15. data/lib/davinci_pas_test_kit/client/endpoints/subscription_create_endpoint.rb +7 -12
  16. data/lib/davinci_pas_test_kit/client/endpoints/subscription_delete_endpoint.rb +13 -0
  17. data/lib/davinci_pas_test_kit/client/endpoints/subscription_read_endpoint.rb +13 -0
  18. data/lib/davinci_pas_test_kit/client/endpoints/subscription_status_endpoint.rb +15 -20
  19. data/lib/davinci_pas_test_kit/client/endpoints/subscription_update_endpoint.rb +13 -0
  20. data/lib/davinci_pas_test_kit/client/endpoints/token_endpoint.rb +16 -0
  21. data/lib/davinci_pas_test_kit/client/generated/v2.0.1/beneficiary/client_inquire_request_must_support_beneficiary_test.rb +3 -3
  22. data/lib/davinci_pas_test_kit/client/generated/v2.0.1/beneficiary/client_inquire_response_must_support_beneficiary_test.rb +3 -3
  23. data/lib/davinci_pas_test_kit/client/generated/v2.0.1/beneficiary/client_submit_request_must_support_beneficiary_test.rb +3 -3
  24. data/lib/davinci_pas_test_kit/client/generated/v2.0.1/beneficiary/client_submit_response_must_support_beneficiary_test.rb +3 -3
  25. data/lib/davinci_pas_test_kit/client/generated/v2.0.1/claim_inquiry/client_inquire_request_must_support_claim_inquiry_test.rb +3 -3
  26. data/lib/davinci_pas_test_kit/client/generated/v2.0.1/claim_update/client_submit_request_must_support_claim_update_test.rb +3 -3
  27. data/lib/davinci_pas_test_kit/client/generated/v2.0.1/claiminquiryresponse/client_inquire_response_must_support_claiminquiryresponse_test.rb +3 -3
  28. data/lib/davinci_pas_test_kit/client/generated/v2.0.1/claimresponse/client_submit_response_must_support_claimresponse_test.rb +3 -3
  29. data/lib/davinci_pas_test_kit/client/generated/v2.0.1/communication_request/client_submit_response_must_support_communication_request_test.rb +3 -3
  30. data/lib/davinci_pas_test_kit/client/generated/v2.0.1/coverage/client_inquire_request_must_support_coverage_test.rb +3 -3
  31. data/lib/davinci_pas_test_kit/client/generated/v2.0.1/coverage/client_submit_request_must_support_coverage_test.rb +3 -3
  32. data/lib/davinci_pas_test_kit/client/generated/v2.0.1/encounter/client_submit_request_must_support_encounter_test.rb +3 -3
  33. data/lib/davinci_pas_test_kit/client/generated/v2.0.1/insurer/client_inquire_request_must_support_insurer_test.rb +3 -3
  34. data/lib/davinci_pas_test_kit/client/generated/v2.0.1/insurer/client_inquire_response_must_support_insurer_test.rb +3 -3
  35. data/lib/davinci_pas_test_kit/client/generated/v2.0.1/insurer/client_submit_request_must_support_insurer_test.rb +3 -3
  36. data/lib/davinci_pas_test_kit/client/generated/v2.0.1/insurer/client_submit_response_must_support_insurer_test.rb +3 -3
  37. data/lib/davinci_pas_test_kit/client/generated/v2.0.1/pas_client_inquire_must_support_group.rb +1 -1
  38. data/lib/davinci_pas_test_kit/client/generated/v2.0.1/pas_client_inquire_response_must_support_group.rb +9 -31
  39. data/lib/davinci_pas_test_kit/client/generated/v2.0.1/pas_client_submit_must_support_group.rb +1 -1
  40. data/lib/davinci_pas_test_kit/client/generated/v2.0.1/pas_client_submit_response_must_support_group.rb +10 -32
  41. 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
  42. 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
  43. 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
  44. 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
  45. data/lib/davinci_pas_test_kit/client/generated/v2.0.1/practitioner/client_inquire_request_must_support_practitioner_test.rb +3 -3
  46. data/lib/davinci_pas_test_kit/client/generated/v2.0.1/practitioner/client_inquire_response_must_support_practitioner_test.rb +3 -3
  47. data/lib/davinci_pas_test_kit/client/generated/v2.0.1/practitioner/client_submit_request_must_support_practitioner_test.rb +3 -3
  48. data/lib/davinci_pas_test_kit/client/generated/v2.0.1/practitioner/client_submit_response_must_support_practitioner_test.rb +3 -3
  49. data/lib/davinci_pas_test_kit/client/generated/v2.0.1/practitioner_role/client_inquire_request_must_support_practitioner_role_test.rb +3 -3
  50. data/lib/davinci_pas_test_kit/client/generated/v2.0.1/practitioner_role/client_inquire_response_must_support_practitioner_role_test.rb +3 -3
  51. data/lib/davinci_pas_test_kit/client/generated/v2.0.1/practitioner_role/client_submit_request_must_support_practitioner_role_test.rb +3 -3
  52. data/lib/davinci_pas_test_kit/client/generated/v2.0.1/practitioner_role/client_submit_response_must_support_practitioner_role_test.rb +3 -3
  53. data/lib/davinci_pas_test_kit/client/generated/v2.0.1/requestor/client_inquire_request_must_support_requestor_test.rb +3 -3
  54. data/lib/davinci_pas_test_kit/client/generated/v2.0.1/requestor/client_inquire_response_must_support_requestor_test.rb +3 -3
  55. data/lib/davinci_pas_test_kit/client/generated/v2.0.1/requestor/client_submit_request_must_support_requestor_test.rb +3 -3
  56. data/lib/davinci_pas_test_kit/client/generated/v2.0.1/requestor/client_submit_response_must_support_requestor_test.rb +3 -3
  57. data/lib/davinci_pas_test_kit/client/generated/v2.0.1/subscriber/client_inquire_request_must_support_subscriber_test.rb +3 -3
  58. data/lib/davinci_pas_test_kit/client/generated/v2.0.1/subscriber/client_submit_request_must_support_subscriber_test.rb +3 -3
  59. data/lib/davinci_pas_test_kit/client/generated/v2.2.1/beneficiary/client_inquire_response_must_support_beneficiary_test.rb +4 -3
  60. data/lib/davinci_pas_test_kit/client/generated/v2.2.1/beneficiary/client_submit_response_must_support_beneficiary_test.rb +4 -3
  61. data/lib/davinci_pas_test_kit/client/generated/v2.2.1/claim_inquiry/client_inquire_request_must_support_claim_inquiry_test.rb +3 -3
  62. data/lib/davinci_pas_test_kit/client/generated/v2.2.1/claim_update/client_submit_request_must_support_claim_update_test.rb +3 -3
  63. data/lib/davinci_pas_test_kit/client/generated/v2.2.1/claiminquiryresponse/client_inquire_response_must_support_claiminquiryresponse_test.rb +4 -3
  64. data/lib/davinci_pas_test_kit/client/generated/v2.2.1/claimresponse/client_submit_response_must_support_claimresponse_test.rb +4 -3
  65. data/lib/davinci_pas_test_kit/client/generated/v2.2.1/communication_request/client_submit_response_must_support_communication_request_test.rb +4 -3
  66. data/lib/davinci_pas_test_kit/client/generated/v2.2.1/insurer/client_inquire_response_must_support_insurer_test.rb +4 -3
  67. data/lib/davinci_pas_test_kit/client/generated/v2.2.1/insurer/client_submit_response_must_support_insurer_test.rb +4 -3
  68. data/lib/davinci_pas_test_kit/client/generated/v2.2.1/pas_client_inquire_must_support_group.rb +8 -6
  69. data/lib/davinci_pas_test_kit/client/generated/v2.2.1/pas_client_inquire_response_must_support_group.rb +9 -31
  70. data/lib/davinci_pas_test_kit/client/generated/v2.2.1/pas_client_submit_must_support_group.rb +13 -9
  71. data/lib/davinci_pas_test_kit/client/generated/v2.2.1/pas_client_submit_response_must_support_group.rb +10 -32
  72. 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
  73. 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
  74. data/lib/davinci_pas_test_kit/client/generated/v2.2.1/practitioner/client_inquire_response_must_support_practitioner_test.rb +4 -3
  75. data/lib/davinci_pas_test_kit/client/generated/v2.2.1/practitioner/client_submit_response_must_support_practitioner_test.rb +4 -3
  76. data/lib/davinci_pas_test_kit/client/generated/v2.2.1/practitioner_role/client_inquire_response_must_support_practitioner_role_test.rb +4 -3
  77. data/lib/davinci_pas_test_kit/client/generated/v2.2.1/practitioner_role/client_submit_response_must_support_practitioner_role_test.rb +4 -3
  78. data/lib/davinci_pas_test_kit/client/generated/v2.2.1/requestor/client_inquire_response_must_support_requestor_test.rb +4 -3
  79. data/lib/davinci_pas_test_kit/client/generated/v2.2.1/requestor/client_submit_response_must_support_requestor_test.rb +4 -3
  80. data/lib/davinci_pas_test_kit/client/jobs/send_pas_subscription_notification.rb +64 -3
  81. data/lib/davinci_pas_test_kit/client/pas_client_subscription_pas_conformance_test.rb +4 -3
  82. data/lib/davinci_pas_test_kit/client/registration/abstract_configuration_other_display_test.rb +6 -4
  83. data/lib/davinci_pas_test_kit/client/registration/abstract_configuration_smart_display_test.rb +8 -4
  84. data/lib/davinci_pas_test_kit/client/registration/abstract_configuration_udap_display_test.rb +9 -4
  85. data/lib/davinci_pas_test_kit/client/registration/abstract_other_auth_attest_test.rb +5 -4
  86. data/lib/davinci_pas_test_kit/client/request_count_gating.rb +14 -0
  87. data/lib/davinci_pas_test_kit/client/response_generator.rb +50 -9
  88. data/lib/davinci_pas_test_kit/client/session_identification.rb +26 -7
  89. data/lib/davinci_pas_test_kit/client/subscription_notification_trigger.rb +80 -0
  90. data/lib/davinci_pas_test_kit/client/subscription_setup_requirement.rb +59 -0
  91. data/lib/davinci_pas_test_kit/client/user_input_response.rb +27 -6
  92. data/lib/davinci_pas_test_kit/client/v2.0.1/client_suite.rb +30 -15
  93. data/lib/davinci_pas_test_kit/client/v2.0.1/must_support/pas_client_must_support_request_profiles_test.rb +2 -2
  94. data/lib/davinci_pas_test_kit/client/v2.0.1/pas_client_approval_group.rb +8 -7
  95. data/lib/davinci_pas_test_kit/client/v2.0.1/pas_client_auth_smart_group.rb +4 -4
  96. data/lib/davinci_pas_test_kit/client/v2.0.1/pas_client_auth_udap_group.rb +4 -4
  97. data/lib/davinci_pas_test_kit/client/v2.0.1/pas_client_denial_group.rb +8 -7
  98. data/lib/davinci_pas_test_kit/client/v2.0.1/pas_client_must_support_group.rb +38 -52
  99. data/lib/davinci_pas_test_kit/client/v2.0.1/pas_client_pended_group.rb +28 -22
  100. data/lib/davinci_pas_test_kit/client/v2.0.1/pas_client_registration_group.rb +2 -2
  101. data/lib/davinci_pas_test_kit/client/v2.0.1/pas_client_subscription_setup_group.rb +2 -2
  102. data/lib/davinci_pas_test_kit/client/v2.0.1/pas_client_workflows_group.rb +2 -2
  103. data/lib/davinci_pas_test_kit/client/v2.0.1/workflows/pas_client_inquire_request_bundle_validation_test.rb +15 -21
  104. data/lib/davinci_pas_test_kit/client/v2.0.1/workflows/pas_client_inquire_response_bundle_validation_test.rb +29 -29
  105. data/lib/davinci_pas_test_kit/client/v2.0.1/workflows/pas_client_pended_submit_test.rb +49 -40
  106. data/lib/davinci_pas_test_kit/client/v2.0.1/workflows/pas_client_request_bundle_validation_test.rb +15 -21
  107. data/lib/davinci_pas_test_kit/client/v2.0.1/workflows/pas_client_response_bundle_validation_test.rb +29 -29
  108. data/lib/davinci_pas_test_kit/client/v2.2.1/attestations/attestation_instructions.rb +10 -0
  109. data/lib/davinci_pas_test_kit/client/v2.2.1/attestations/client_data_element_expectations_attestation_test.rb +44 -0
  110. data/lib/davinci_pas_test_kit/client/v2.2.1/attestations/client_provider_review_attestation_test.rb +45 -0
  111. data/lib/davinci_pas_test_kit/client/v2.2.1/attestations/client_security_attestation_test.rb +42 -0
  112. data/lib/davinci_pas_test_kit/client/v2.2.1/attestations/client_subscription_error_recovery_attestation_test.rb +42 -0
  113. data/lib/davinci_pas_test_kit/client/v2.2.1/client_suite.rb +64 -12
  114. data/lib/davinci_pas_test_kit/client/v2.2.1/error_handling/pas_client_operation_failure_submit_test.rb +20 -10
  115. data/lib/davinci_pas_test_kit/client/v2.2.1/error_handling/pas_client_operation_outcome_validation_test.rb +11 -5
  116. data/lib/davinci_pas_test_kit/client/v2.2.1/error_handling/pas_client_processing_error_response_validation_test.rb +21 -12
  117. data/lib/davinci_pas_test_kit/client/v2.2.1/error_handling/pas_client_processing_error_submit_test.rb +19 -8
  118. data/lib/davinci_pas_test_kit/client/v2.2.1/must_support/must_support_with_attestation_option.rb +90 -40
  119. data/lib/davinci_pas_test_kit/client/v2.2.1/pas_client_approval_group.rb +12 -11
  120. data/lib/davinci_pas_test_kit/client/v2.2.1/pas_client_attestations_group.rb +32 -0
  121. data/lib/davinci_pas_test_kit/client/v2.2.1/pas_client_auth_smart_group.rb +4 -4
  122. data/lib/davinci_pas_test_kit/client/v2.2.1/pas_client_auth_udap_group.rb +4 -4
  123. data/lib/davinci_pas_test_kit/client/v2.2.1/pas_client_claim_updates_group.rb +24 -6
  124. data/lib/davinci_pas_test_kit/client/v2.2.1/pas_client_denial_group.rb +12 -10
  125. data/lib/davinci_pas_test_kit/client/v2.2.1/pas_client_modification_group.rb +13 -14
  126. data/lib/davinci_pas_test_kit/client/v2.2.1/pas_client_must_support_group.rb +55 -59
  127. data/lib/davinci_pas_test_kit/client/v2.2.1/pas_client_operation_failure_group.rb +8 -5
  128. data/lib/davinci_pas_test_kit/client/v2.2.1/pas_client_pended_group.rb +53 -41
  129. data/lib/davinci_pas_test_kit/client/v2.2.1/pas_client_processing_error_group.rb +9 -7
  130. data/lib/davinci_pas_test_kit/client/v2.2.1/pas_client_registration_group.rb +2 -2
  131. data/lib/davinci_pas_test_kit/client/v2.2.1/pas_client_subscription_setup_group.rb +9 -4
  132. data/lib/davinci_pas_test_kit/client/v2.2.1/pas_client_subscription_update_delete_group.rb +57 -0
  133. data/lib/davinci_pas_test_kit/client/v2.2.1/pas_client_workflows_group.rb +22 -2
  134. data/lib/davinci_pas_test_kit/client/v2.2.1/subscription/pas_client_subscription_create_test.rb +2 -1
  135. data/lib/davinci_pas_test_kit/client/v2.2.1/subscription/pas_client_subscription_put_update_pas_conformance_test.rb +49 -0
  136. data/lib/davinci_pas_test_kit/client/v2.2.1/subscription/pas_client_subscription_update_delete_test.rb +12 -0
  137. data/lib/davinci_pas_test_kit/client/v2.2.1/workflows/pas_client_claim_update_referenced_resources_test.rb +5 -6
  138. data/lib/davinci_pas_test_kit/client/v2.2.1/workflows/pas_client_claim_update_submit_tests.rb +82 -56
  139. data/lib/davinci_pas_test_kit/client/v2.2.1/workflows/pas_client_inquire_request_bundle_validation_test.rb +17 -20
  140. data/lib/davinci_pas_test_kit/client/v2.2.1/workflows/pas_client_inquire_response_bundle_validation_test.rb +59 -27
  141. data/lib/davinci_pas_test_kit/client/v2.2.1/workflows/pas_client_modification_verification_test.rb +0 -3
  142. data/lib/davinci_pas_test_kit/client/v2.2.1/workflows/pas_client_pended_send_notification_test.rb +138 -0
  143. data/lib/davinci_pas_test_kit/client/v2.2.1/workflows/pas_client_pended_submit_test.rb +32 -85
  144. data/lib/davinci_pas_test_kit/client/v2.2.1/workflows/pas_client_request_bundle_validation_test.rb +16 -21
  145. data/lib/davinci_pas_test_kit/client/v2.2.1/workflows/pas_client_response_bundle_validation_test.rb +27 -27
  146. data/lib/davinci_pas_test_kit/cross_suite/generated/v2.0.1/task/metadata.yml +0 -4
  147. data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/metadata.yml +0 -1
  148. data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/task/metadata.yml +0 -4
  149. data/lib/davinci_pas_test_kit/cross_suite/pas_bundle_validation.rb +489 -289
  150. data/lib/davinci_pas_test_kit/cross_suite/pas_constants.rb +7 -0
  151. data/lib/davinci_pas_test_kit/cross_suite/pas_subscription_verification.rb +8 -4
  152. data/lib/davinci_pas_test_kit/cross_suite/referenced_resource_presence_validation.rb +141 -0
  153. data/lib/davinci_pas_test_kit/cross_suite/response_selection_utils.rb +13 -11
  154. data/lib/davinci_pas_test_kit/cross_suite/tags.rb +11 -6
  155. data/lib/davinci_pas_test_kit/cross_suite/validator_configuration.rb +16 -0
  156. data/lib/davinci_pas_test_kit/cross_suite/validator_suppressions.rb +4 -0
  157. data/lib/davinci_pas_test_kit/docs/demo/PAS Client Suite Demonstration.postman_collection.json +3 -3
  158. data/lib/davinci_pas_test_kit/ext/inferno_core/runnable.rb +1 -0
  159. data/lib/davinci_pas_test_kit/generator/client_must_support_group_generator.rb +47 -16
  160. data/lib/davinci_pas_test_kit/generator/must_support_target_profiles.rb +17 -0
  161. data/lib/davinci_pas_test_kit/generator/must_support_test_generator.rb +8 -2
  162. data/lib/davinci_pas_test_kit/generator/profile_metadata.rb +1 -1
  163. data/lib/davinci_pas_test_kit/generator/server_suite_generator.rb +4 -9
  164. data/lib/davinci_pas_test_kit/generator/templates/client_must_support_group.rb.erb +22 -3
  165. data/lib/davinci_pas_test_kit/generator/templates/client_must_support_response_group.rb.erb +7 -16
  166. data/lib/davinci_pas_test_kit/generator/templates/must_support.rb.erb +8 -8
  167. data/lib/davinci_pas_test_kit/generator/templates/server_suite.rb.erb +6 -7
  168. data/lib/davinci_pas_test_kit/generator/use_case_group_generator.rb +5 -5
  169. data/lib/davinci_pas_test_kit/parameters_helper.rb +13 -5
  170. data/lib/davinci_pas_test_kit/pas_notification_conformance_test.rb +2 -2
  171. data/lib/davinci_pas_test_kit/requirements/davinci_pas_test_kit_requirements.csv +14 -7
  172. data/lib/davinci_pas_test_kit/requirements/generated/davinci_pas_client_suite_v201_requirements_coverage.csv +21 -21
  173. data/lib/davinci_pas_test_kit/requirements/generated/davinci_pas_client_suite_v221_requirements_coverage.csv +30 -26
  174. data/lib/davinci_pas_test_kit/requirements/generated/davinci_pas_server_suite_v221_requirements_coverage.csv +12 -6
  175. data/lib/davinci_pas_test_kit/requirements/hl7.fhir.us.davinci-pas_2.2.1_requirements.xlsx +0 -0
  176. data/lib/davinci_pas_test_kit/server/claim_operation_logic.rb +1 -1
  177. data/lib/davinci_pas_test_kit/server/generated/v2.0.1/beneficiary/server_inquire_request_must_support_beneficiary_test.rb +1 -1
  178. data/lib/davinci_pas_test_kit/server/generated/v2.0.1/beneficiary/server_inquire_response_must_support_beneficiary_test.rb +1 -1
  179. data/lib/davinci_pas_test_kit/server/generated/v2.0.1/beneficiary/server_submit_request_must_support_beneficiary_test.rb +1 -1
  180. data/lib/davinci_pas_test_kit/server/generated/v2.0.1/beneficiary/server_submit_response_must_support_beneficiary_test.rb +1 -1
  181. data/lib/davinci_pas_test_kit/server/generated/v2.0.1/claim_inquiry/server_inquire_request_must_support_claim_inquiry_test.rb +1 -1
  182. data/lib/davinci_pas_test_kit/server/generated/v2.0.1/claim_update/server_submit_request_must_support_claim_update_test.rb +1 -1
  183. data/lib/davinci_pas_test_kit/server/generated/v2.0.1/claiminquiryresponse/server_inquire_response_must_support_claiminquiryresponse_test.rb +1 -1
  184. data/lib/davinci_pas_test_kit/server/generated/v2.0.1/claimresponse/server_submit_response_must_support_claimresponse_test.rb +1 -1
  185. data/lib/davinci_pas_test_kit/server/generated/v2.0.1/communication_request/server_submit_response_must_support_communication_request_test.rb +1 -1
  186. data/lib/davinci_pas_test_kit/server/generated/v2.0.1/coverage/server_inquire_request_must_support_coverage_test.rb +1 -1
  187. data/lib/davinci_pas_test_kit/server/generated/v2.0.1/coverage/server_submit_request_must_support_coverage_test.rb +1 -1
  188. data/lib/davinci_pas_test_kit/server/generated/v2.0.1/encounter/server_submit_request_must_support_encounter_test.rb +1 -1
  189. data/lib/davinci_pas_test_kit/server/generated/v2.0.1/insurer/server_inquire_request_must_support_insurer_test.rb +1 -1
  190. data/lib/davinci_pas_test_kit/server/generated/v2.0.1/insurer/server_inquire_response_must_support_insurer_test.rb +1 -1
  191. data/lib/davinci_pas_test_kit/server/generated/v2.0.1/insurer/server_submit_request_must_support_insurer_test.rb +1 -1
  192. data/lib/davinci_pas_test_kit/server/generated/v2.0.1/insurer/server_submit_response_must_support_insurer_test.rb +1 -1
  193. 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
  194. 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
  195. 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
  196. 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
  197. data/lib/davinci_pas_test_kit/server/generated/v2.0.1/pas_server_approval_use_case_group.rb +3 -3
  198. data/lib/davinci_pas_test_kit/server/generated/v2.0.1/pas_server_denial_use_case_group.rb +3 -3
  199. data/lib/davinci_pas_test_kit/server/generated/v2.0.1/pas_server_pended_use_case_group.rb +6 -6
  200. data/lib/davinci_pas_test_kit/server/generated/v2.0.1/practitioner/server_inquire_request_must_support_practitioner_test.rb +1 -1
  201. data/lib/davinci_pas_test_kit/server/generated/v2.0.1/practitioner/server_inquire_response_must_support_practitioner_test.rb +1 -1
  202. data/lib/davinci_pas_test_kit/server/generated/v2.0.1/practitioner/server_submit_request_must_support_practitioner_test.rb +1 -1
  203. data/lib/davinci_pas_test_kit/server/generated/v2.0.1/practitioner/server_submit_response_must_support_practitioner_test.rb +1 -1
  204. data/lib/davinci_pas_test_kit/server/generated/v2.0.1/practitioner_role/server_inquire_request_must_support_practitioner_role_test.rb +1 -1
  205. data/lib/davinci_pas_test_kit/server/generated/v2.0.1/practitioner_role/server_inquire_response_must_support_practitioner_role_test.rb +1 -1
  206. data/lib/davinci_pas_test_kit/server/generated/v2.0.1/practitioner_role/server_submit_request_must_support_practitioner_role_test.rb +1 -1
  207. data/lib/davinci_pas_test_kit/server/generated/v2.0.1/practitioner_role/server_submit_response_must_support_practitioner_role_test.rb +1 -1
  208. data/lib/davinci_pas_test_kit/server/generated/v2.0.1/requestor/server_inquire_request_must_support_requestor_test.rb +1 -1
  209. data/lib/davinci_pas_test_kit/server/generated/v2.0.1/requestor/server_inquire_response_must_support_requestor_test.rb +1 -1
  210. data/lib/davinci_pas_test_kit/server/generated/v2.0.1/requestor/server_submit_request_must_support_requestor_test.rb +1 -1
  211. data/lib/davinci_pas_test_kit/server/generated/v2.0.1/requestor/server_submit_response_must_support_requestor_test.rb +1 -1
  212. data/lib/davinci_pas_test_kit/server/generated/v2.0.1/server_suite.rb +6 -7
  213. data/lib/davinci_pas_test_kit/server/generated/v2.0.1/subscriber/server_inquire_request_must_support_subscriber_test.rb +1 -1
  214. data/lib/davinci_pas_test_kit/server/generated/v2.0.1/subscriber/server_submit_request_must_support_subscriber_test.rb +1 -1
  215. data/lib/davinci_pas_test_kit/server/generated/v2.0.1/task/server_inquire_response_must_support_task_test.rb +1 -1
  216. data/lib/davinci_pas_test_kit/server/generated/v2.0.1/task/server_submit_response_must_support_task_test.rb +1 -1
  217. data/lib/davinci_pas_test_kit/server/generated/v2.2.1/beneficiary/server_inquire_request_must_support_beneficiary_test.rb +1 -1
  218. data/lib/davinci_pas_test_kit/server/generated/v2.2.1/beneficiary/server_inquire_response_must_support_beneficiary_test.rb +1 -1
  219. data/lib/davinci_pas_test_kit/server/generated/v2.2.1/beneficiary/server_submit_request_must_support_beneficiary_test.rb +1 -1
  220. data/lib/davinci_pas_test_kit/server/generated/v2.2.1/beneficiary/server_submit_response_must_support_beneficiary_test.rb +1 -1
  221. data/lib/davinci_pas_test_kit/server/generated/v2.2.1/claim_inquiry/server_inquire_request_must_support_claim_inquiry_test.rb +1 -1
  222. data/lib/davinci_pas_test_kit/server/generated/v2.2.1/claim_update/server_submit_request_must_support_claim_update_test.rb +1 -1
  223. data/lib/davinci_pas_test_kit/server/generated/v2.2.1/claiminquiryresponse/server_inquire_response_must_support_claiminquiryresponse_test.rb +1 -1
  224. data/lib/davinci_pas_test_kit/server/generated/v2.2.1/claimresponse/server_submit_response_must_support_claimresponse_test.rb +1 -1
  225. data/lib/davinci_pas_test_kit/server/generated/v2.2.1/communication_request/server_submit_response_must_support_communication_request_test.rb +1 -1
  226. data/lib/davinci_pas_test_kit/server/generated/v2.2.1/coverage/server_inquire_request_must_support_coverage_test.rb +1 -1
  227. data/lib/davinci_pas_test_kit/server/generated/v2.2.1/coverage/server_submit_request_must_support_coverage_test.rb +1 -1
  228. data/lib/davinci_pas_test_kit/server/generated/v2.2.1/encounter/server_submit_request_must_support_encounter_test.rb +1 -1
  229. data/lib/davinci_pas_test_kit/server/generated/v2.2.1/insurer/server_inquire_request_must_support_insurer_test.rb +1 -1
  230. data/lib/davinci_pas_test_kit/server/generated/v2.2.1/insurer/server_inquire_response_must_support_insurer_test.rb +1 -1
  231. data/lib/davinci_pas_test_kit/server/generated/v2.2.1/insurer/server_submit_request_must_support_insurer_test.rb +1 -1
  232. data/lib/davinci_pas_test_kit/server/generated/v2.2.1/insurer/server_submit_response_must_support_insurer_test.rb +1 -1
  233. 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
  234. 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
  235. 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
  236. 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
  237. data/lib/davinci_pas_test_kit/server/generated/v2.2.1/pas_server_approval_use_case_group.rb +3 -3
  238. data/lib/davinci_pas_test_kit/server/generated/v2.2.1/pas_server_denial_use_case_group.rb +3 -3
  239. data/lib/davinci_pas_test_kit/server/generated/v2.2.1/pas_server_pended_use_case_group.rb +4 -4
  240. data/lib/davinci_pas_test_kit/server/generated/v2.2.1/practitioner/server_inquire_request_must_support_practitioner_test.rb +1 -1
  241. data/lib/davinci_pas_test_kit/server/generated/v2.2.1/practitioner/server_inquire_response_must_support_practitioner_test.rb +1 -1
  242. data/lib/davinci_pas_test_kit/server/generated/v2.2.1/practitioner/server_submit_request_must_support_practitioner_test.rb +1 -1
  243. data/lib/davinci_pas_test_kit/server/generated/v2.2.1/practitioner/server_submit_response_must_support_practitioner_test.rb +1 -1
  244. data/lib/davinci_pas_test_kit/server/generated/v2.2.1/practitioner_role/server_inquire_request_must_support_practitioner_role_test.rb +1 -1
  245. data/lib/davinci_pas_test_kit/server/generated/v2.2.1/practitioner_role/server_inquire_response_must_support_practitioner_role_test.rb +1 -1
  246. data/lib/davinci_pas_test_kit/server/generated/v2.2.1/practitioner_role/server_submit_request_must_support_practitioner_role_test.rb +1 -1
  247. data/lib/davinci_pas_test_kit/server/generated/v2.2.1/practitioner_role/server_submit_response_must_support_practitioner_role_test.rb +1 -1
  248. data/lib/davinci_pas_test_kit/server/generated/v2.2.1/requestor/server_inquire_request_must_support_requestor_test.rb +1 -1
  249. data/lib/davinci_pas_test_kit/server/generated/v2.2.1/requestor/server_inquire_response_must_support_requestor_test.rb +1 -1
  250. data/lib/davinci_pas_test_kit/server/generated/v2.2.1/requestor/server_submit_request_must_support_requestor_test.rb +1 -1
  251. data/lib/davinci_pas_test_kit/server/generated/v2.2.1/requestor/server_submit_response_must_support_requestor_test.rb +1 -1
  252. data/lib/davinci_pas_test_kit/server/generated/v2.2.1/server_suite.rb +6 -7
  253. data/lib/davinci_pas_test_kit/server/generated/v2.2.1/subscriber/server_inquire_request_must_support_subscriber_test.rb +1 -1
  254. data/lib/davinci_pas_test_kit/server/generated/v2.2.1/subscriber/server_submit_request_must_support_subscriber_test.rb +1 -1
  255. data/lib/davinci_pas_test_kit/server/generated/v2.2.1/task/server_inquire_response_must_support_task_test.rb +1 -1
  256. data/lib/davinci_pas_test_kit/server/generated/v2.2.1/task/server_submit_response_must_support_task_test.rb +1 -1
  257. data/lib/davinci_pas_test_kit/server/pas_claim_response_decision_test.rb +2 -2
  258. data/lib/davinci_pas_test_kit/server/server_request_bundle_validation_test.rb +4 -6
  259. data/lib/davinci_pas_test_kit/server/server_response_bundle_validation_test.rb +4 -6
  260. data/lib/davinci_pas_test_kit/server/v2.0.1/must_support/pas_server_must_support_request_profiles_test.rb +1 -1
  261. data/lib/davinci_pas_test_kit/server/v2.0.1/pas_server_subscription_setup.rb +1 -1
  262. data/lib/davinci_pas_test_kit/server/v2.2.1/must_support/pas_server_must_support_request_profiles_test.rb +1 -1
  263. data/lib/davinci_pas_test_kit/server/v2.2.1/pas_server_claim_updates_group.rb +1 -1
  264. data/lib/davinci_pas_test_kit/server/v2.2.1/pas_server_subscription_setup.rb +1 -1
  265. data/lib/davinci_pas_test_kit/version.rb +2 -2
  266. metadata +31 -13
  267. data/lib/davinci_pas_test_kit/client/generated/v2.0.1/task/client_inquire_response_must_support_task_test.rb +0 -45
  268. data/lib/davinci_pas_test_kit/client/generated/v2.0.1/task/client_submit_response_must_support_task_test.rb +0 -45
  269. data/lib/davinci_pas_test_kit/client/generated/v2.2.1/task/client_inquire_response_must_support_task_test.rb +0 -55
  270. data/lib/davinci_pas_test_kit/client/generated/v2.2.1/task/client_submit_response_must_support_task_test.rb +0 -55
  271. data/lib/davinci_pas_test_kit/client/v2.2.1/pas_client_error_handling_group.rb +0 -20
@@ -0,0 +1,24 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'udap_security_test_kit'
4
+
5
+ module DaVinciPASTestKit
6
+ # Identifies the test session for the claim and Subscription endpoints, using either the session
7
+ # path or the client id embedded in the bearer token.
8
+ module EndpointSessionIdentification
9
+ # Where the session identifier is expected. Used in responses when no session is found.
10
+ LOCATION_DESCRIPTION = 'the path or embedded within the bearer token in the Authorization header'
11
+
12
+ def test_run_identifier_location_description
13
+ LOCATION_DESCRIPTION
14
+ end
15
+
16
+ def test_run_identifier
17
+ return request.params[:session_path] if request.params[:session_path].present?
18
+
19
+ UDAPSecurityTestKit::MockUDAPServer.issued_token_to_client_id(
20
+ request.headers['authorization']&.delete_prefix('Bearer ')
21
+ )
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,40 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'udap_security_test_kit'
4
+
5
+ module DaVinciPASTestKit
6
+ # Checks whether the request's bearer token has expired.
7
+ module ExpiredToken
8
+ private
9
+
10
+ # Memoized so the token is only decoded and parsed once per request, even though both
11
+ # #tags and the response handling need to check it.
12
+ def expired_token?
13
+ return @expired_token if defined?(@expired_token)
14
+
15
+ @expired_token = UDAPSecurityTestKit::MockUDAPServer.request_has_expired_token?(request)
16
+ end
17
+ end
18
+
19
+ # Prepended to endpoints that reject requests made with an expired bearer token before any other
20
+ # handling.
21
+ module ExpiredTokenRejection
22
+ include ExpiredToken
23
+
24
+ def make_response
25
+ if expired_token?
26
+ UDAPSecurityTestKit::MockUDAPServer.update_response_for_expired_token(response, 'Bearer token')
27
+ return
28
+ end
29
+
30
+ super
31
+ end
32
+
33
+ def tags
34
+ # Requests rejected for an expired token are not treated as submissions of any workflow.
35
+ return [] if expired_token?
36
+
37
+ super
38
+ end
39
+ end
40
+ end
@@ -1,25 +1,18 @@
1
1
  require_relative '../../cross_suite/tags'
2
+ require_relative 'endpoint_session_identification'
3
+ require_relative 'expired_token'
2
4
  require_relative '../jobs/send_subscription_handshake'
3
5
  require 'subscriptions_test_kit'
4
6
 
5
7
  module DaVinciPASTestKit
6
8
  class SubscriptionCreateEndpoint < Inferno::DSL::SuiteEndpoint
7
9
  include SubscriptionsTestKit::SubscriptionsR5BackportR4Client::SubscriptionSimulationUtils
10
+ include EndpointSessionIdentification
11
+ prepend ExpiredTokenRejection
8
12
 
9
- def test_run_identifier
10
- return request.params[:session_path] if request.params[:session_path].present?
11
-
12
- UDAPSecurityTestKit::MockUDAPServer.issued_token_to_client_id(
13
- request.headers['authorization']&.delete_prefix('Bearer ')
14
- )
15
- end
13
+ error_response_format :operation_outcome
16
14
 
17
15
  def make_response
18
- if UDAPSecurityTestKit::MockUDAPServer.request_has_expired_token?(request)
19
- UDAPSecurityTestKit::MockUDAPServer.update_response_for_expired_token(response, 'Bearer token')
20
- return
21
- end
22
-
23
16
  response.format = :json
24
17
  response.status = 400
25
18
 
@@ -73,6 +66,8 @@ module DaVinciPASTestKit
73
66
  [SUBSCRIPTION_CREATE_TAG]
74
67
  end
75
68
 
69
+ private
70
+
76
71
  def verify_subscription(subscription)
77
72
  unless subscription.is_a? FHIR::Subscription
78
73
  return operation_outcome('error', 'invalid', 'No recognized R4 Subscription in request body')
@@ -0,0 +1,13 @@
1
+ require_relative '../../cross_suite/tags'
2
+ require_relative 'endpoint_session_identification'
3
+ require_relative 'expired_token'
4
+ require 'subscriptions_test_kit'
5
+
6
+ module DaVinciPASTestKit
7
+ class SubscriptionDeleteEndpoint < SubscriptionsTestKit::SubscriptionDeleteEndpoint
8
+ include EndpointSessionIdentification
9
+ prepend ExpiredTokenRejection
10
+
11
+ error_response_format :operation_outcome
12
+ end
13
+ end
@@ -0,0 +1,13 @@
1
+ require_relative '../../cross_suite/tags'
2
+ require_relative 'endpoint_session_identification'
3
+ require_relative 'expired_token'
4
+ require 'subscriptions_test_kit'
5
+
6
+ module DaVinciPASTestKit
7
+ class SubscriptionReadEndpoint < SubscriptionsTestKit::SubscriptionReadEndpoint
8
+ include EndpointSessionIdentification
9
+ prepend ExpiredTokenRejection
10
+
11
+ error_response_format :operation_outcome
12
+ end
13
+ end
@@ -1,34 +1,29 @@
1
1
  require_relative '../../cross_suite/tags'
2
+ require_relative 'endpoint_session_identification'
3
+ require_relative 'expired_token'
2
4
  require 'subscriptions_test_kit'
3
5
 
4
6
  module DaVinciPASTestKit
5
7
  class SubscriptionStatusEndpoint < Inferno::DSL::SuiteEndpoint
6
8
  include SubscriptionsTestKit::SubscriptionsR5BackportR4Client::SubscriptionSimulationUtils
7
9
  include ResponseGenerator
10
+ include EndpointSessionIdentification
11
+ prepend ExpiredTokenRejection
8
12
 
9
- def test_run_identifier
10
- return request.params[:session_path] if request.params[:session_path].present?
11
-
12
- UDAPSecurityTestKit::MockUDAPServer.issued_token_to_client_id(
13
- request.headers['authorization']&.delete_prefix('Bearer ')
14
- )
15
- end
13
+ error_response_format :operation_outcome
16
14
 
17
15
  def make_response
18
- if UDAPSecurityTestKit::MockUDAPServer.request_has_expired_token?(request)
19
- UDAPSecurityTestKit::MockUDAPServer.update_response_for_expired_token(response)
20
- return
21
- end
22
-
23
16
  response.format = :json
24
- subscription = find_subscription(test_run.test_session_id)
17
+ # Reflects any updates or deletion of the Subscription by the client
18
+ subscription = find_current_subscription(test_run.test_session_id)
25
19
 
26
- unless subscription.present?
20
+ subscription_id = request.params[:id]
21
+ if subscription.blank? || (subscription_id.present? && subscription_id != subscription.id)
27
22
  not_found
28
23
  return
29
24
  end
30
25
 
31
- subscription_id = request.params[:id]
26
+ status_code = current_subscription_status_code(subscription)
32
27
 
33
28
  # Handle resource-level status params
34
29
  unless subscription_id.present?
@@ -40,7 +35,7 @@ module DaVinciPASTestKit
40
35
  return
41
36
  end
42
37
 
43
- unless subscription_params_match?(params, subscription)
38
+ unless subscription_params_match?(params, subscription, status_code)
44
39
  not_found
45
40
  return
46
41
  end
@@ -48,7 +43,6 @@ module DaVinciPASTestKit
48
43
 
49
44
  subscription_url = "#{base_subscription_url}/#{subscription.id}"
50
45
  subscription_topic = subscription.criteria
51
- status_code = determine_subscription_status_code(subscription_id)
52
46
  event_count = determine_event_count(test_run.test_session_id)
53
47
 
54
48
  notification_json = notification_bundle_input(result)
@@ -69,20 +63,21 @@ module DaVinciPASTestKit
69
63
  response.status = 200
70
64
  end
71
65
 
72
- def subscription_params_match?(params, subscription)
66
+ def subscription_params_match?(params, subscription, status_code)
73
67
  id_params = find_params(params, 'id')
74
68
 
75
69
  return false if id_params&.any? && id_params&.none? { |p| p.valueString == subscription.id }
76
70
 
77
71
  status_params = find_params(params, 'status')
78
- subscription_status = determine_subscription_status_code(subscription.id)
79
- status_params.blank? || status_params.any? { |p| p.valueString == subscription_status }
72
+ status_params.blank? || status_params.any? { |p| p.valueString == status_code }
80
73
  end
81
74
 
82
75
  def tags
83
76
  [SUBSCRIPTION_STATUS_TAG]
84
77
  end
85
78
 
79
+ private
80
+
86
81
  def not_found
87
82
  response.status = 404
88
83
  response.body = operation_outcome('error', 'not-found').to_json
@@ -0,0 +1,13 @@
1
+ require_relative '../../cross_suite/tags'
2
+ require_relative 'endpoint_session_identification'
3
+ require_relative 'expired_token'
4
+ require 'subscriptions_test_kit'
5
+
6
+ module DaVinciPASTestKit
7
+ class SubscriptionUpdateEndpoint < SubscriptionsTestKit::SubscriptionUpdateEndpoint
8
+ include EndpointSessionIdentification
9
+ prepend ExpiredTokenRejection
10
+
11
+ error_response_format :operation_outcome
12
+ end
13
+ end
@@ -12,6 +12,22 @@ module DaVinciPASTestKit
12
12
 
13
13
  def test_run_identifier
14
14
  UDAPSecurityTestKit::MockUDAPServer.client_id_from_client_assertion(request.params[:client_assertion])
15
+ rescue JWT::DecodeError
16
+ nil
17
+ end
18
+
19
+ def test_run_identifier_location_description
20
+ "the client assertion's 'iss' claim representing the client's id"
21
+ end
22
+
23
+ def no_session_response
24
+ response.status = 401
25
+ response.format = :json
26
+ response.body = {
27
+ error: 'invalid_client',
28
+ error_description: no_session_message
29
+
30
+ }.to_json
15
31
  end
16
32
 
17
33
  def make_response
@@ -7,11 +7,11 @@ module DaVinciPASTestKit
7
7
  title 'All must support elements for profile PAS Beneficiary Patient are observed on $inquire requests'
8
8
  description %(
9
9
 
10
- PAS client systems are required to be able to populate all
11
- must support elements on instances of all profiles included in
10
+ PAS clients are required to be able to populate all
11
+ must support elements on instances of all profiles included in `$inquire`
12
12
  requests, including instances of the PAS Beneficiary Patient Profile.
13
13
  This test checks all identified instances of the PAS Beneficiary Patient
14
- Profile on requests sent by the client to ensure that the following
14
+ Profile on requests sent by the PAS client to ensure that the following
15
15
  must support elements are observed:
16
16
 
17
17
  * Patient.address
@@ -7,11 +7,11 @@ module DaVinciPASTestKit
7
7
  title 'All must support elements for profile PAS Beneficiary Patient are observed on $inquire responses'
8
8
  description %(
9
9
 
10
- PAS client systems are required to be able to receive all
11
- must support elements on instances of all profiles included in
10
+ PAS clients are required to be able to receive all
11
+ must support elements on instances of all profiles included in `$inquire`
12
12
  responses, including instances of the PAS Beneficiary Patient Profile.
13
13
  This test checks all identified instances of the PAS Beneficiary Patient
14
- Profile on responses sent to the client to ensure that the following
14
+ Profile on responses sent to the PAS client to ensure that the following
15
15
  must support elements are observed:
16
16
 
17
17
  * Patient.address
@@ -7,11 +7,11 @@ module DaVinciPASTestKit
7
7
  title 'All must support elements for profile PAS Beneficiary Patient are observed on $submit requests'
8
8
  description %(
9
9
 
10
- PAS client systems are required to be able to populate all
11
- must support elements on instances of all profiles included in
10
+ PAS clients are required to be able to populate all
11
+ must support elements on instances of all profiles included in `$submit`
12
12
  requests, including instances of the PAS Beneficiary Patient Profile.
13
13
  This test checks all identified instances of the PAS Beneficiary Patient
14
- Profile on requests sent by the client to ensure that the following
14
+ Profile on requests sent by the PAS client to ensure that the following
15
15
  must support elements are observed:
16
16
 
17
17
  * Patient.address
@@ -7,11 +7,11 @@ module DaVinciPASTestKit
7
7
  title 'All must support elements for profile PAS Beneficiary Patient are observed on $submit responses'
8
8
  description %(
9
9
 
10
- PAS client systems are required to be able to receive all
11
- must support elements on instances of all profiles included in
10
+ PAS clients are required to be able to receive all
11
+ must support elements on instances of all profiles included in `$submit`
12
12
  responses, including instances of the PAS Beneficiary Patient Profile.
13
13
  This test checks all identified instances of the PAS Beneficiary Patient
14
- Profile on responses sent to the client to ensure that the following
14
+ Profile on responses sent to the PAS client to ensure that the following
15
15
  must support elements are observed:
16
16
 
17
17
  * Patient.address
@@ -7,11 +7,11 @@ module DaVinciPASTestKit
7
7
  title 'All must support elements for profile PAS Claim Inquiry are observed on $inquire requests'
8
8
  description %(
9
9
 
10
- PAS client systems are required to be able to populate all
11
- must support elements on instances of all profiles included in
10
+ PAS clients are required to be able to populate all
11
+ must support elements on instances of all profiles included in `$inquire`
12
12
  requests, including instances of the PAS Claim Inquiry Profile.
13
13
  This test checks all identified instances of the PAS Claim Inquiry
14
- Profile on requests sent by the client to ensure that the following
14
+ Profile on requests sent by the PAS client to ensure that the following
15
15
  must support elements are observed:
16
16
 
17
17
  * Claim.accident
@@ -7,11 +7,11 @@ module DaVinciPASTestKit
7
7
  title 'All must support elements for profile PAS Claim Update are observed on $submit requests'
8
8
  description %(
9
9
 
10
- PAS client systems are required to be able to populate all
11
- must support elements on instances of all profiles included in
10
+ PAS clients are required to be able to populate all
11
+ must support elements on instances of all profiles included in `$submit`
12
12
  requests, including instances of the PAS Claim Update Profile.
13
13
  This test checks all identified instances of the PAS Claim Update
14
- Profile on requests sent by the client to ensure that the following
14
+ Profile on requests sent by the PAS client to ensure that the following
15
15
  must support elements are observed:
16
16
 
17
17
  * Claim.accident
@@ -7,11 +7,11 @@ module DaVinciPASTestKit
7
7
  title 'All must support elements for profile PAS Claim Inquiry Response are observed on $inquire responses'
8
8
  description %(
9
9
 
10
- PAS client systems are required to be able to receive all
11
- must support elements on instances of all profiles included in
10
+ PAS clients are required to be able to receive all
11
+ must support elements on instances of all profiles included in `$inquire`
12
12
  responses, including instances of the PAS Claim Inquiry Response Profile.
13
13
  This test checks all identified instances of the PAS Claim Inquiry Response
14
- Profile on responses sent to the client to ensure that the following
14
+ Profile on responses sent to the PAS client to ensure that the following
15
15
  must support elements are observed:
16
16
 
17
17
  * ClaimResponse.created
@@ -7,11 +7,11 @@ module DaVinciPASTestKit
7
7
  title 'All must support elements for profile PAS Claim Response are observed on $submit responses'
8
8
  description %(
9
9
 
10
- PAS client systems are required to be able to receive all
11
- must support elements on instances of all profiles included in
10
+ PAS clients are required to be able to receive all
11
+ must support elements on instances of all profiles included in `$submit`
12
12
  responses, including instances of the PAS Claim Response Profile.
13
13
  This test checks all identified instances of the PAS Claim Response
14
- Profile on responses sent to the client to ensure that the following
14
+ Profile on responses sent to the PAS client to ensure that the following
15
15
  must support elements are observed:
16
16
 
17
17
  * ClaimResponse.communicationRequest
@@ -7,11 +7,11 @@ module DaVinciPASTestKit
7
7
  title 'All must support elements for profile PAS CommunicationRequest are observed on $submit responses'
8
8
  description %(
9
9
 
10
- PAS client systems are required to be able to receive all
11
- must support elements on instances of all profiles included in
10
+ PAS clients are required to be able to receive all
11
+ must support elements on instances of all profiles included in `$submit`
12
12
  responses, including instances of the PAS CommunicationRequest Profile.
13
13
  This test checks all identified instances of the PAS CommunicationRequest
14
- Profile on responses sent to the client to ensure that the following
14
+ Profile on responses sent to the PAS client to ensure that the following
15
15
  must support elements are observed:
16
16
 
17
17
  * CommunicationRequest.category
@@ -7,11 +7,11 @@ module DaVinciPASTestKit
7
7
  title 'All must support elements for profile PAS Coverage are observed on $inquire requests'
8
8
  description %(
9
9
 
10
- PAS client systems are required to be able to populate all
11
- must support elements on instances of all profiles included in
10
+ PAS clients are required to be able to populate all
11
+ must support elements on instances of all profiles included in `$inquire`
12
12
  requests, including instances of the PAS Coverage Profile.
13
13
  This test checks all identified instances of the PAS Coverage
14
- Profile on requests sent by the client to ensure that the following
14
+ Profile on requests sent by the PAS client to ensure that the following
15
15
  must support elements are observed:
16
16
 
17
17
  * Coverage.beneficiary
@@ -7,11 +7,11 @@ module DaVinciPASTestKit
7
7
  title 'All must support elements for profile PAS Coverage are observed on $submit requests'
8
8
  description %(
9
9
 
10
- PAS client systems are required to be able to populate all
11
- must support elements on instances of all profiles included in
10
+ PAS clients are required to be able to populate all
11
+ must support elements on instances of all profiles included in `$submit`
12
12
  requests, including instances of the PAS Coverage Profile.
13
13
  This test checks all identified instances of the PAS Coverage
14
- Profile on requests sent by the client to ensure that the following
14
+ Profile on requests sent by the PAS client to ensure that the following
15
15
  must support elements are observed:
16
16
 
17
17
  * Coverage.beneficiary
@@ -7,11 +7,11 @@ module DaVinciPASTestKit
7
7
  title 'All must support elements for profile PAS Encounter are observed on $submit requests'
8
8
  description %(
9
9
 
10
- PAS client systems are required to be able to populate all
11
- must support elements on instances of all profiles included in
10
+ PAS clients are required to be able to populate all
11
+ must support elements on instances of all profiles included in `$submit`
12
12
  requests, including instances of the PAS Encounter Profile.
13
13
  This test checks all identified instances of the PAS Encounter
14
- Profile on requests sent by the client to ensure that the following
14
+ Profile on requests sent by the PAS client to ensure that the following
15
15
  must support elements are observed:
16
16
 
17
17
  * Encounter.class
@@ -7,11 +7,11 @@ module DaVinciPASTestKit
7
7
  title 'All must support elements for profile PAS Insurer Organization are observed on $inquire requests'
8
8
  description %(
9
9
 
10
- PAS client systems are required to be able to populate all
11
- must support elements on instances of all profiles included in
10
+ PAS clients are required to be able to populate all
11
+ must support elements on instances of all profiles included in `$inquire`
12
12
  requests, including instances of the PAS Insurer Organization Profile.
13
13
  This test checks all identified instances of the PAS Insurer Organization
14
- Profile on requests sent by the client to ensure that the following
14
+ Profile on requests sent by the PAS client to ensure that the following
15
15
  must support elements are observed:
16
16
 
17
17
  * Organization.active
@@ -7,11 +7,11 @@ module DaVinciPASTestKit
7
7
  title 'All must support elements for profile PAS Insurer Organization are observed on $inquire responses'
8
8
  description %(
9
9
 
10
- PAS client systems are required to be able to receive all
11
- must support elements on instances of all profiles included in
10
+ PAS clients are required to be able to receive all
11
+ must support elements on instances of all profiles included in `$inquire`
12
12
  responses, including instances of the PAS Insurer Organization Profile.
13
13
  This test checks all identified instances of the PAS Insurer Organization
14
- Profile on responses sent to the client to ensure that the following
14
+ Profile on responses sent to the PAS client to ensure that the following
15
15
  must support elements are observed:
16
16
 
17
17
  * Organization.active
@@ -7,11 +7,11 @@ module DaVinciPASTestKit
7
7
  title 'All must support elements for profile PAS Insurer Organization are observed on $submit requests'
8
8
  description %(
9
9
 
10
- PAS client systems are required to be able to populate all
11
- must support elements on instances of all profiles included in
10
+ PAS clients are required to be able to populate all
11
+ must support elements on instances of all profiles included in `$submit`
12
12
  requests, including instances of the PAS Insurer Organization Profile.
13
13
  This test checks all identified instances of the PAS Insurer Organization
14
- Profile on requests sent by the client to ensure that the following
14
+ Profile on requests sent by the PAS client to ensure that the following
15
15
  must support elements are observed:
16
16
 
17
17
  * Organization.active
@@ -7,11 +7,11 @@ module DaVinciPASTestKit
7
7
  title 'All must support elements for profile PAS Insurer Organization are observed on $submit responses'
8
8
  description %(
9
9
 
10
- PAS client systems are required to be able to receive all
11
- must support elements on instances of all profiles included in
10
+ PAS clients are required to be able to receive all
11
+ must support elements on instances of all profiles included in `$submit`
12
12
  responses, including instances of the PAS Insurer Organization Profile.
13
13
  This test checks all identified instances of the PAS Insurer Organization
14
- Profile on responses sent to the client to ensure that the following
14
+ Profile on responses sent to the PAS client to ensure that the following
15
15
  must support elements are observed:
16
16
 
17
17
  * Organization.active
@@ -14,7 +14,7 @@ module DaVinciPASTestKit
14
14
  id :pas_client_v201_inquire_must_support
15
15
  title '$inquire Request Must Support Coverage'
16
16
  description %(
17
- Check that the client can demonstrate `$inquire` requests that contain
17
+ Check that the PAS client demonstrated `$inquire` requests that contain
18
18
  all PAS-defined profiles and their must support elements.
19
19
 
20
20
  For `$inquire` requests, this includes the following profiles:
@@ -5,8 +5,6 @@ require_relative 'requestor/client_inquire_response_must_support_requestor_test'
5
5
  require_relative 'beneficiary/client_inquire_response_must_support_beneficiary_test'
6
6
  require_relative 'practitioner/client_inquire_response_must_support_practitioner_test'
7
7
  require_relative 'practitioner_role/client_inquire_response_must_support_practitioner_role_test'
8
- require_relative 'task/client_inquire_response_must_support_task_test'
9
- require_relative '../../v2.0.1/workflows/pas_client_response_attest'
10
8
 
11
9
  module DaVinciPASTestKit
12
10
  module DaVinciPASV201
@@ -14,12 +12,9 @@ module DaVinciPASTestKit
14
12
  id :pas_client_v201_inquire_response_must_support
15
13
  title '$inquire Response Must Support Coverage'
16
14
  description %(
17
- Check that `$inquire` responses provided to the client contain
15
+ Check that `$inquire` responses provided to the PAS client contain
18
16
  all PAS-defined profiles and their must support elements.
19
17
 
20
- **USER INPUT VALIDATION**: These tests validate responses provided by the tester,
21
- not the system under test. Errors will be treated as skips instead of failures.
22
-
23
18
  For `$inquire` responses, this includes the following profiles:
24
19
 
25
20
  - [PAS Inquiry Response Bundle](https://hl7.org/fhir/us/davinci-pas/STU2/StructureDefinition-profile-pas-inquiry-response-bundle.html)
@@ -29,7 +24,6 @@ module DaVinciPASTestKit
29
24
  - [PAS Beneficiary Patient](https://hl7.org/fhir/us/davinci-pas/STU2/StructureDefinition-profile-beneficiary.html)
30
25
  - [PAS Practitioner](https://hl7.org/fhir/us/davinci-pas/STU2/StructureDefinition-profile-practitioner.html)
31
26
  - [PAS PractitionerRole](https://hl7.org/fhir/us/davinci-pas/STU2/StructureDefinition-profile-practitionerrole.html)
32
- - [PAS Task](https://hl7.org/fhir/us/davinci-pas/STU2/StructureDefinition-profile-task.html)
33
27
 
34
28
 
35
29
 
@@ -37,42 +31,26 @@ module DaVinciPASTestKit
37
31
  run_as_group
38
32
 
39
33
  test from: :pas_client_v201_inquire_response_must_support_pas_inquiry_response_bundle do
40
- verifies_requirements 'hl7.fhir.us.davinci-pas_2.2.1@conf-7'
34
+ simulation_verification
41
35
  end
42
36
  test from: :pas_client_v201_inquire_response_must_support_claiminquiryresponse do
43
- verifies_requirements 'hl7.fhir.us.davinci-pas_2.2.1@conf-7'
37
+ verifies_requirements(*verifies_requirements, 'hl7.fhir.us.davinci-pas_2.0.1@40')
38
+ simulation_verification
44
39
  end
45
40
  test from: :pas_client_v201_inquire_response_must_support_insurer do
46
- verifies_requirements 'hl7.fhir.us.davinci-pas_2.2.1@conf-7'
41
+ simulation_verification
47
42
  end
48
43
  test from: :pas_client_v201_inquire_response_must_support_requestor do
49
- verifies_requirements 'hl7.fhir.us.davinci-pas_2.2.1@conf-7'
44
+ simulation_verification
50
45
  end
51
46
  test from: :pas_client_v201_inquire_response_must_support_beneficiary do
52
- verifies_requirements 'hl7.fhir.us.davinci-pas_2.2.1@conf-7'
47
+ simulation_verification
53
48
  end
54
49
  test from: :pas_client_v201_inquire_response_must_support_practitioner do
55
- verifies_requirements 'hl7.fhir.us.davinci-pas_2.2.1@conf-7'
50
+ simulation_verification
56
51
  end
57
52
  test from: :pas_client_v201_inquire_response_must_support_practitioner_role do
58
- verifies_requirements 'hl7.fhir.us.davinci-pas_2.2.1@conf-7'
59
- end
60
- test from: :pas_client_v201_inquire_response_must_support_task do
61
- verifies_requirements 'hl7.fhir.us.davinci-pas_2.2.1@conf-7'
62
- end
63
- test from: :pas_client_v201_response_attest,
64
- title: 'PAS client handled the $inquire response must support elements',
65
- description: %(
66
- This test provides the tester an opportunity to verify that their client
67
- correctly processed and used the must support elements present in the
68
- $inquire responses received from Inferno during these tests.
69
- ),
70
- config: { options: {
71
- workflow_tag: MUST_SUPPORT_WORKFLOW_TAG,
72
- attest_message: "I attest that the client system correctly processed the must support elements " \
73
- "contained in the $inquire responses received from Inferno and did not error."
74
- } } do
75
- verifies_requirements 'hl7.fhir.us.davinci-pas_2.2.1@conf-8'
53
+ simulation_verification
76
54
  end
77
55
  end
78
56
  end
@@ -16,7 +16,7 @@ module DaVinciPASTestKit
16
16
  id :pas_client_v201_submit_must_support
17
17
  title '$submit Request Must Support Coverage'
18
18
  description %(
19
- Check that the client can demonstrate `$submit` requests that contain
19
+ Check that the PAS client demonstrated `$submit` requests that contain
20
20
  all PAS-defined profiles and their must support elements.
21
21
 
22
22
  For `$submit` requests, this includes the following profiles: