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.
- checksums.yaml +4 -4
- data/config/presets/g33_br_provider.json +13 -0
- data/lib/davinci_pas_test_kit/client/abstract_approval_submit_test.rb +28 -17
- data/lib/davinci_pas_test_kit/client/abstract_denial_submit_test.rb +26 -16
- data/lib/davinci_pas_test_kit/client/abstract_gather_must_support_test.rb +43 -26
- data/lib/davinci_pas_test_kit/client/abstract_modification_submit_test.rb +29 -19
- data/lib/davinci_pas_test_kit/client/abstract_response_attest.rb +75 -6
- data/lib/davinci_pas_test_kit/client/abstract_subscription_create_test.rb +26 -9
- data/lib/davinci_pas_test_kit/client/abstract_subscription_update_delete_test.rb +91 -0
- data/lib/davinci_pas_test_kit/client/client_bundle_validation_helper.rb +245 -0
- data/lib/davinci_pas_test_kit/client/client_input_descriptions.rb +91 -25
- data/lib/davinci_pas_test_kit/client/endpoints/claim_endpoint.rb +108 -68
- data/lib/davinci_pas_test_kit/client/endpoints/endpoint_session_identification.rb +24 -0
- data/lib/davinci_pas_test_kit/client/endpoints/expired_token.rb +40 -0
- data/lib/davinci_pas_test_kit/client/endpoints/subscription_create_endpoint.rb +7 -12
- data/lib/davinci_pas_test_kit/client/endpoints/subscription_delete_endpoint.rb +13 -0
- data/lib/davinci_pas_test_kit/client/endpoints/subscription_read_endpoint.rb +13 -0
- data/lib/davinci_pas_test_kit/client/endpoints/subscription_status_endpoint.rb +15 -20
- data/lib/davinci_pas_test_kit/client/endpoints/subscription_update_endpoint.rb +13 -0
- data/lib/davinci_pas_test_kit/client/endpoints/token_endpoint.rb +16 -0
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/beneficiary/client_inquire_request_must_support_beneficiary_test.rb +3 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/beneficiary/client_inquire_response_must_support_beneficiary_test.rb +3 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/beneficiary/client_submit_request_must_support_beneficiary_test.rb +3 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/beneficiary/client_submit_response_must_support_beneficiary_test.rb +3 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/claim_inquiry/client_inquire_request_must_support_claim_inquiry_test.rb +3 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/claim_update/client_submit_request_must_support_claim_update_test.rb +3 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/claiminquiryresponse/client_inquire_response_must_support_claiminquiryresponse_test.rb +3 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/claimresponse/client_submit_response_must_support_claimresponse_test.rb +3 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/communication_request/client_submit_response_must_support_communication_request_test.rb +3 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/coverage/client_inquire_request_must_support_coverage_test.rb +3 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/coverage/client_submit_request_must_support_coverage_test.rb +3 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/encounter/client_submit_request_must_support_encounter_test.rb +3 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/insurer/client_inquire_request_must_support_insurer_test.rb +3 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/insurer/client_inquire_response_must_support_insurer_test.rb +3 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/insurer/client_submit_request_must_support_insurer_test.rb +3 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/insurer/client_submit_response_must_support_insurer_test.rb +3 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/pas_client_inquire_must_support_group.rb +1 -1
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/pas_client_inquire_response_must_support_group.rb +9 -31
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/pas_client_submit_must_support_group.rb +1 -1
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/pas_client_submit_response_must_support_group.rb +10 -32
- 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
- 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
- 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
- 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
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/practitioner/client_inquire_request_must_support_practitioner_test.rb +3 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/practitioner/client_inquire_response_must_support_practitioner_test.rb +3 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/practitioner/client_submit_request_must_support_practitioner_test.rb +3 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/practitioner/client_submit_response_must_support_practitioner_test.rb +3 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/practitioner_role/client_inquire_request_must_support_practitioner_role_test.rb +3 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/practitioner_role/client_inquire_response_must_support_practitioner_role_test.rb +3 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/practitioner_role/client_submit_request_must_support_practitioner_role_test.rb +3 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/practitioner_role/client_submit_response_must_support_practitioner_role_test.rb +3 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/requestor/client_inquire_request_must_support_requestor_test.rb +3 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/requestor/client_inquire_response_must_support_requestor_test.rb +3 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/requestor/client_submit_request_must_support_requestor_test.rb +3 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/requestor/client_submit_response_must_support_requestor_test.rb +3 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/subscriber/client_inquire_request_must_support_subscriber_test.rb +3 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/subscriber/client_submit_request_must_support_subscriber_test.rb +3 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.2.1/beneficiary/client_inquire_response_must_support_beneficiary_test.rb +4 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.2.1/beneficiary/client_submit_response_must_support_beneficiary_test.rb +4 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.2.1/claim_inquiry/client_inquire_request_must_support_claim_inquiry_test.rb +3 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.2.1/claim_update/client_submit_request_must_support_claim_update_test.rb +3 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.2.1/claiminquiryresponse/client_inquire_response_must_support_claiminquiryresponse_test.rb +4 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.2.1/claimresponse/client_submit_response_must_support_claimresponse_test.rb +4 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.2.1/communication_request/client_submit_response_must_support_communication_request_test.rb +4 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.2.1/insurer/client_inquire_response_must_support_insurer_test.rb +4 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.2.1/insurer/client_submit_response_must_support_insurer_test.rb +4 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.2.1/pas_client_inquire_must_support_group.rb +8 -6
- data/lib/davinci_pas_test_kit/client/generated/v2.2.1/pas_client_inquire_response_must_support_group.rb +9 -31
- data/lib/davinci_pas_test_kit/client/generated/v2.2.1/pas_client_submit_must_support_group.rb +13 -9
- data/lib/davinci_pas_test_kit/client/generated/v2.2.1/pas_client_submit_response_must_support_group.rb +10 -32
- 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
- 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
- data/lib/davinci_pas_test_kit/client/generated/v2.2.1/practitioner/client_inquire_response_must_support_practitioner_test.rb +4 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.2.1/practitioner/client_submit_response_must_support_practitioner_test.rb +4 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.2.1/practitioner_role/client_inquire_response_must_support_practitioner_role_test.rb +4 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.2.1/practitioner_role/client_submit_response_must_support_practitioner_role_test.rb +4 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.2.1/requestor/client_inquire_response_must_support_requestor_test.rb +4 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.2.1/requestor/client_submit_response_must_support_requestor_test.rb +4 -3
- data/lib/davinci_pas_test_kit/client/jobs/send_pas_subscription_notification.rb +64 -3
- data/lib/davinci_pas_test_kit/client/pas_client_subscription_pas_conformance_test.rb +4 -3
- data/lib/davinci_pas_test_kit/client/registration/abstract_configuration_other_display_test.rb +6 -4
- data/lib/davinci_pas_test_kit/client/registration/abstract_configuration_smart_display_test.rb +8 -4
- data/lib/davinci_pas_test_kit/client/registration/abstract_configuration_udap_display_test.rb +9 -4
- data/lib/davinci_pas_test_kit/client/registration/abstract_other_auth_attest_test.rb +5 -4
- data/lib/davinci_pas_test_kit/client/request_count_gating.rb +14 -0
- data/lib/davinci_pas_test_kit/client/response_generator.rb +50 -9
- data/lib/davinci_pas_test_kit/client/session_identification.rb +26 -7
- data/lib/davinci_pas_test_kit/client/subscription_notification_trigger.rb +80 -0
- data/lib/davinci_pas_test_kit/client/subscription_setup_requirement.rb +59 -0
- data/lib/davinci_pas_test_kit/client/user_input_response.rb +27 -6
- data/lib/davinci_pas_test_kit/client/v2.0.1/client_suite.rb +30 -15
- data/lib/davinci_pas_test_kit/client/v2.0.1/must_support/pas_client_must_support_request_profiles_test.rb +2 -2
- data/lib/davinci_pas_test_kit/client/v2.0.1/pas_client_approval_group.rb +8 -7
- data/lib/davinci_pas_test_kit/client/v2.0.1/pas_client_auth_smart_group.rb +4 -4
- data/lib/davinci_pas_test_kit/client/v2.0.1/pas_client_auth_udap_group.rb +4 -4
- data/lib/davinci_pas_test_kit/client/v2.0.1/pas_client_denial_group.rb +8 -7
- data/lib/davinci_pas_test_kit/client/v2.0.1/pas_client_must_support_group.rb +38 -52
- data/lib/davinci_pas_test_kit/client/v2.0.1/pas_client_pended_group.rb +28 -22
- data/lib/davinci_pas_test_kit/client/v2.0.1/pas_client_registration_group.rb +2 -2
- data/lib/davinci_pas_test_kit/client/v2.0.1/pas_client_subscription_setup_group.rb +2 -2
- data/lib/davinci_pas_test_kit/client/v2.0.1/pas_client_workflows_group.rb +2 -2
- data/lib/davinci_pas_test_kit/client/v2.0.1/workflows/pas_client_inquire_request_bundle_validation_test.rb +15 -21
- data/lib/davinci_pas_test_kit/client/v2.0.1/workflows/pas_client_inquire_response_bundle_validation_test.rb +29 -29
- data/lib/davinci_pas_test_kit/client/v2.0.1/workflows/pas_client_pended_submit_test.rb +49 -40
- data/lib/davinci_pas_test_kit/client/v2.0.1/workflows/pas_client_request_bundle_validation_test.rb +15 -21
- data/lib/davinci_pas_test_kit/client/v2.0.1/workflows/pas_client_response_bundle_validation_test.rb +29 -29
- data/lib/davinci_pas_test_kit/client/v2.2.1/attestations/attestation_instructions.rb +10 -0
- data/lib/davinci_pas_test_kit/client/v2.2.1/attestations/client_data_element_expectations_attestation_test.rb +44 -0
- data/lib/davinci_pas_test_kit/client/v2.2.1/attestations/client_provider_review_attestation_test.rb +45 -0
- data/lib/davinci_pas_test_kit/client/v2.2.1/attestations/client_security_attestation_test.rb +42 -0
- data/lib/davinci_pas_test_kit/client/v2.2.1/attestations/client_subscription_error_recovery_attestation_test.rb +42 -0
- data/lib/davinci_pas_test_kit/client/v2.2.1/client_suite.rb +64 -12
- data/lib/davinci_pas_test_kit/client/v2.2.1/error_handling/pas_client_operation_failure_submit_test.rb +20 -10
- data/lib/davinci_pas_test_kit/client/v2.2.1/error_handling/pas_client_operation_outcome_validation_test.rb +11 -5
- data/lib/davinci_pas_test_kit/client/v2.2.1/error_handling/pas_client_processing_error_response_validation_test.rb +21 -12
- data/lib/davinci_pas_test_kit/client/v2.2.1/error_handling/pas_client_processing_error_submit_test.rb +19 -8
- data/lib/davinci_pas_test_kit/client/v2.2.1/must_support/must_support_with_attestation_option.rb +90 -40
- data/lib/davinci_pas_test_kit/client/v2.2.1/pas_client_approval_group.rb +12 -11
- data/lib/davinci_pas_test_kit/client/v2.2.1/pas_client_attestations_group.rb +32 -0
- data/lib/davinci_pas_test_kit/client/v2.2.1/pas_client_auth_smart_group.rb +4 -4
- data/lib/davinci_pas_test_kit/client/v2.2.1/pas_client_auth_udap_group.rb +4 -4
- data/lib/davinci_pas_test_kit/client/v2.2.1/pas_client_claim_updates_group.rb +24 -6
- data/lib/davinci_pas_test_kit/client/v2.2.1/pas_client_denial_group.rb +12 -10
- data/lib/davinci_pas_test_kit/client/v2.2.1/pas_client_modification_group.rb +13 -14
- data/lib/davinci_pas_test_kit/client/v2.2.1/pas_client_must_support_group.rb +55 -59
- data/lib/davinci_pas_test_kit/client/v2.2.1/pas_client_operation_failure_group.rb +8 -5
- data/lib/davinci_pas_test_kit/client/v2.2.1/pas_client_pended_group.rb +53 -41
- data/lib/davinci_pas_test_kit/client/v2.2.1/pas_client_processing_error_group.rb +9 -7
- data/lib/davinci_pas_test_kit/client/v2.2.1/pas_client_registration_group.rb +2 -2
- data/lib/davinci_pas_test_kit/client/v2.2.1/pas_client_subscription_setup_group.rb +9 -4
- data/lib/davinci_pas_test_kit/client/v2.2.1/pas_client_subscription_update_delete_group.rb +57 -0
- data/lib/davinci_pas_test_kit/client/v2.2.1/pas_client_workflows_group.rb +22 -2
- data/lib/davinci_pas_test_kit/client/v2.2.1/subscription/pas_client_subscription_create_test.rb +2 -1
- data/lib/davinci_pas_test_kit/client/v2.2.1/subscription/pas_client_subscription_put_update_pas_conformance_test.rb +49 -0
- data/lib/davinci_pas_test_kit/client/v2.2.1/subscription/pas_client_subscription_update_delete_test.rb +12 -0
- data/lib/davinci_pas_test_kit/client/v2.2.1/workflows/pas_client_claim_update_referenced_resources_test.rb +5 -6
- data/lib/davinci_pas_test_kit/client/v2.2.1/workflows/pas_client_claim_update_submit_tests.rb +82 -56
- data/lib/davinci_pas_test_kit/client/v2.2.1/workflows/pas_client_inquire_request_bundle_validation_test.rb +17 -20
- data/lib/davinci_pas_test_kit/client/v2.2.1/workflows/pas_client_inquire_response_bundle_validation_test.rb +59 -27
- data/lib/davinci_pas_test_kit/client/v2.2.1/workflows/pas_client_modification_verification_test.rb +0 -3
- data/lib/davinci_pas_test_kit/client/v2.2.1/workflows/pas_client_pended_send_notification_test.rb +138 -0
- data/lib/davinci_pas_test_kit/client/v2.2.1/workflows/pas_client_pended_submit_test.rb +32 -85
- data/lib/davinci_pas_test_kit/client/v2.2.1/workflows/pas_client_request_bundle_validation_test.rb +16 -21
- data/lib/davinci_pas_test_kit/client/v2.2.1/workflows/pas_client_response_bundle_validation_test.rb +27 -27
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.0.1/task/metadata.yml +0 -4
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/metadata.yml +0 -1
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/task/metadata.yml +0 -4
- data/lib/davinci_pas_test_kit/cross_suite/pas_bundle_validation.rb +489 -289
- data/lib/davinci_pas_test_kit/cross_suite/pas_constants.rb +7 -0
- data/lib/davinci_pas_test_kit/cross_suite/pas_subscription_verification.rb +8 -4
- data/lib/davinci_pas_test_kit/cross_suite/referenced_resource_presence_validation.rb +141 -0
- data/lib/davinci_pas_test_kit/cross_suite/response_selection_utils.rb +13 -11
- data/lib/davinci_pas_test_kit/cross_suite/tags.rb +11 -6
- data/lib/davinci_pas_test_kit/cross_suite/validator_configuration.rb +16 -0
- data/lib/davinci_pas_test_kit/cross_suite/validator_suppressions.rb +4 -0
- data/lib/davinci_pas_test_kit/docs/demo/PAS Client Suite Demonstration.postman_collection.json +3 -3
- data/lib/davinci_pas_test_kit/ext/inferno_core/runnable.rb +1 -0
- data/lib/davinci_pas_test_kit/generator/client_must_support_group_generator.rb +47 -16
- data/lib/davinci_pas_test_kit/generator/must_support_target_profiles.rb +17 -0
- data/lib/davinci_pas_test_kit/generator/must_support_test_generator.rb +8 -2
- data/lib/davinci_pas_test_kit/generator/profile_metadata.rb +1 -1
- data/lib/davinci_pas_test_kit/generator/server_suite_generator.rb +4 -9
- data/lib/davinci_pas_test_kit/generator/templates/client_must_support_group.rb.erb +22 -3
- data/lib/davinci_pas_test_kit/generator/templates/client_must_support_response_group.rb.erb +7 -16
- data/lib/davinci_pas_test_kit/generator/templates/must_support.rb.erb +8 -8
- data/lib/davinci_pas_test_kit/generator/templates/server_suite.rb.erb +6 -7
- data/lib/davinci_pas_test_kit/generator/use_case_group_generator.rb +5 -5
- data/lib/davinci_pas_test_kit/parameters_helper.rb +13 -5
- data/lib/davinci_pas_test_kit/pas_notification_conformance_test.rb +2 -2
- data/lib/davinci_pas_test_kit/requirements/davinci_pas_test_kit_requirements.csv +14 -7
- data/lib/davinci_pas_test_kit/requirements/generated/davinci_pas_client_suite_v201_requirements_coverage.csv +21 -21
- data/lib/davinci_pas_test_kit/requirements/generated/davinci_pas_client_suite_v221_requirements_coverage.csv +30 -26
- data/lib/davinci_pas_test_kit/requirements/generated/davinci_pas_server_suite_v221_requirements_coverage.csv +12 -6
- data/lib/davinci_pas_test_kit/requirements/hl7.fhir.us.davinci-pas_2.2.1_requirements.xlsx +0 -0
- data/lib/davinci_pas_test_kit/server/claim_operation_logic.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/beneficiary/server_inquire_request_must_support_beneficiary_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/beneficiary/server_inquire_response_must_support_beneficiary_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/beneficiary/server_submit_request_must_support_beneficiary_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/beneficiary/server_submit_response_must_support_beneficiary_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/claim_inquiry/server_inquire_request_must_support_claim_inquiry_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/claim_update/server_submit_request_must_support_claim_update_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/claiminquiryresponse/server_inquire_response_must_support_claiminquiryresponse_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/claimresponse/server_submit_response_must_support_claimresponse_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/communication_request/server_submit_response_must_support_communication_request_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/coverage/server_inquire_request_must_support_coverage_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/coverage/server_submit_request_must_support_coverage_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/encounter/server_submit_request_must_support_encounter_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/insurer/server_inquire_request_must_support_insurer_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/insurer/server_inquire_response_must_support_insurer_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/insurer/server_submit_request_must_support_insurer_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/insurer/server_submit_response_must_support_insurer_test.rb +1 -1
- 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
- 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
- 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
- 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
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/pas_server_approval_use_case_group.rb +3 -3
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/pas_server_denial_use_case_group.rb +3 -3
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/pas_server_pended_use_case_group.rb +6 -6
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/practitioner/server_inquire_request_must_support_practitioner_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/practitioner/server_inquire_response_must_support_practitioner_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/practitioner/server_submit_request_must_support_practitioner_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/practitioner/server_submit_response_must_support_practitioner_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/practitioner_role/server_inquire_request_must_support_practitioner_role_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/practitioner_role/server_inquire_response_must_support_practitioner_role_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/practitioner_role/server_submit_request_must_support_practitioner_role_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/practitioner_role/server_submit_response_must_support_practitioner_role_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/requestor/server_inquire_request_must_support_requestor_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/requestor/server_inquire_response_must_support_requestor_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/requestor/server_submit_request_must_support_requestor_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/requestor/server_submit_response_must_support_requestor_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/server_suite.rb +6 -7
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/subscriber/server_inquire_request_must_support_subscriber_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/subscriber/server_submit_request_must_support_subscriber_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/task/server_inquire_response_must_support_task_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/task/server_submit_response_must_support_task_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/beneficiary/server_inquire_request_must_support_beneficiary_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/beneficiary/server_inquire_response_must_support_beneficiary_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/beneficiary/server_submit_request_must_support_beneficiary_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/beneficiary/server_submit_response_must_support_beneficiary_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/claim_inquiry/server_inquire_request_must_support_claim_inquiry_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/claim_update/server_submit_request_must_support_claim_update_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/claiminquiryresponse/server_inquire_response_must_support_claiminquiryresponse_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/claimresponse/server_submit_response_must_support_claimresponse_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/communication_request/server_submit_response_must_support_communication_request_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/coverage/server_inquire_request_must_support_coverage_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/coverage/server_submit_request_must_support_coverage_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/encounter/server_submit_request_must_support_encounter_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/insurer/server_inquire_request_must_support_insurer_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/insurer/server_inquire_response_must_support_insurer_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/insurer/server_submit_request_must_support_insurer_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/insurer/server_submit_response_must_support_insurer_test.rb +1 -1
- 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
- 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
- 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
- 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
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/pas_server_approval_use_case_group.rb +3 -3
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/pas_server_denial_use_case_group.rb +3 -3
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/pas_server_pended_use_case_group.rb +4 -4
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/practitioner/server_inquire_request_must_support_practitioner_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/practitioner/server_inquire_response_must_support_practitioner_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/practitioner/server_submit_request_must_support_practitioner_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/practitioner/server_submit_response_must_support_practitioner_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/practitioner_role/server_inquire_request_must_support_practitioner_role_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/practitioner_role/server_inquire_response_must_support_practitioner_role_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/practitioner_role/server_submit_request_must_support_practitioner_role_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/practitioner_role/server_submit_response_must_support_practitioner_role_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/requestor/server_inquire_request_must_support_requestor_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/requestor/server_inquire_response_must_support_requestor_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/requestor/server_submit_request_must_support_requestor_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/requestor/server_submit_response_must_support_requestor_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/server_suite.rb +6 -7
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/subscriber/server_inquire_request_must_support_subscriber_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/subscriber/server_submit_request_must_support_subscriber_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/task/server_inquire_response_must_support_task_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/task/server_submit_response_must_support_task_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/pas_claim_response_decision_test.rb +2 -2
- data/lib/davinci_pas_test_kit/server/server_request_bundle_validation_test.rb +4 -6
- data/lib/davinci_pas_test_kit/server/server_response_bundle_validation_test.rb +4 -6
- data/lib/davinci_pas_test_kit/server/v2.0.1/must_support/pas_server_must_support_request_profiles_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/v2.0.1/pas_server_subscription_setup.rb +1 -1
- data/lib/davinci_pas_test_kit/server/v2.2.1/must_support/pas_server_must_support_request_profiles_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/v2.2.1/pas_server_claim_updates_group.rb +1 -1
- data/lib/davinci_pas_test_kit/server/v2.2.1/pas_server_subscription_setup.rb +1 -1
- data/lib/davinci_pas_test_kit/version.rb +2 -2
- metadata +31 -13
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/task/client_inquire_response_must_support_task_test.rb +0 -45
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/task/client_submit_response_must_support_task_test.rb +0 -45
- data/lib/davinci_pas_test_kit/client/generated/v2.2.1/task/client_inquire_response_must_support_task_test.rb +0 -55
- data/lib/davinci_pas_test_kit/client/generated/v2.2.1/task/client_submit_response_must_support_task_test.rb +0 -55
- data/lib/davinci_pas_test_kit/client/v2.2.1/pas_client_error_handling_group.rb +0 -20
|
@@ -7,90 +7,86 @@ require_relative 'workflows/pas_client_request_bundle_validation_test'
|
|
|
7
7
|
require_relative 'workflows/pas_client_response_bundle_validation_test'
|
|
8
8
|
require_relative 'workflows/pas_client_inquire_request_bundle_validation_test'
|
|
9
9
|
require_relative 'workflows/pas_client_inquire_response_bundle_validation_test'
|
|
10
|
+
require_relative '../client_input_descriptions'
|
|
10
11
|
|
|
11
12
|
module DaVinciPASTestKit
|
|
12
13
|
module DaVinciPASV221
|
|
13
14
|
class PASClientMustSupportGroup < Inferno::TestGroup
|
|
14
15
|
id :pas_client_v221_must_support
|
|
15
16
|
title 'Must Support Elements'
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
During these tests, the client will show that it supports all PAS-defined profiles and the must support
|
|
19
|
-
elements defined in them. This includes
|
|
17
|
+
description "#{DaVinciPASTestKit.must_support_group_description('v2.2.1', 'da-vinci-pas-v221')}\n" \
|
|
18
|
+
"#{MUST_SUPPORT_SEPARATE_GROUPS_DESCRIPTION}"
|
|
20
19
|
|
|
21
|
-
|
|
22
|
-
PAS-defined profiles and their must support elements.
|
|
23
|
-
- The ability to receive in responses to those requests all PAS-defined profiles and their
|
|
24
|
-
must support elements.
|
|
20
|
+
MUST_SUPPORT_INPUT_ORDER = [:ms_submit_responses, :ms_inquire_responses, :client_id, :session_url_path].freeze
|
|
25
21
|
|
|
26
|
-
|
|
27
|
-
of all must support items in the requests. Clients must also demonstrate that they can handle
|
|
28
|
-
all response must support elements. Because Inferno's mocked responses do not include all must
|
|
29
|
-
support elements, testers will need to provide responses that include examples of all must
|
|
30
|
-
support elements for Inferno to respond with.
|
|
31
|
-
|
|
32
|
-
Note that Inferno will consider requests made during the workflow group of tests, so only
|
|
33
|
-
profiles and must support elements not demonstrated during those tests need to be submitted
|
|
34
|
-
as a part of these.
|
|
35
|
-
)
|
|
22
|
+
input_order(*MUST_SUPPORT_INPUT_ORDER)
|
|
36
23
|
|
|
37
24
|
# Combined receive group - single wait test for both submit and inquire
|
|
38
25
|
group do
|
|
39
26
|
id :pas_client_v221_must_support_receive
|
|
40
|
-
title
|
|
41
|
-
description
|
|
42
|
-
Submit $submit and $inquire requests demonstrating coverage of must support elements.
|
|
43
|
-
Optionally, provide response bundles for Inferno to use when responding. Inferno will
|
|
44
|
-
verify both the requests received and the responses provided.
|
|
45
|
-
)
|
|
27
|
+
title MUST_SUPPORT_RECEIVE_GROUP_TITLE
|
|
28
|
+
description MUST_SUPPORT_RECEIVE_GROUP_DESCRIPTION
|
|
46
29
|
run_as_group
|
|
47
30
|
|
|
48
|
-
|
|
49
|
-
|
|
31
|
+
# The must support response inputs already belong to pas_client_v221_gather_must_support
|
|
32
|
+
# (the wait test below); declaring them here too, before the tests are defined, propagates
|
|
33
|
+
# them onto the bundle validation tests as well, so they can tell whether a tester-provided
|
|
34
|
+
# response was used - see PasClientResponseBundleValidationTest/PasClientInquireResponseBundleValidationTest
|
|
35
|
+
# #failed_entities_description. They are declared on this group rather than the parent so they
|
|
36
|
+
# do not also propagate onto the coverage group, which does not use them.
|
|
37
|
+
input :ms_submit_responses, optional: true
|
|
38
|
+
input :ms_inquire_responses, optional: true
|
|
50
39
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
40
|
+
input_order(*MUST_SUPPORT_INPUT_ORDER)
|
|
41
|
+
|
|
42
|
+
test from: :pas_client_v221_gather_must_support
|
|
43
|
+
test from: :pas_client_v221_response_attest,
|
|
44
|
+
id: :pas_client_v221_response_attest_ms_submit_inquire,
|
|
45
|
+
title: MUST_SUPPORT_SUBMIT_INQUIRE_ATTEST_TITLE,
|
|
46
|
+
description: MUST_SUPPORT_SUBMIT_INQUIRE_ATTEST_DESCRIPTION,
|
|
47
|
+
config: { options: {
|
|
48
|
+
workflow_tag: MUST_SUPPORT_WORKFLOW_TAG,
|
|
49
|
+
no_requests_ok: true,
|
|
50
|
+
multiple_requests_ok: true,
|
|
51
|
+
attest_message: MUST_SUPPORT_SUBMIT_INQUIRE_ATTEST_MESSAGE
|
|
52
|
+
} } do
|
|
53
|
+
verifies_requirements 'hl7.fhir.us.davinci-pas_2.2.1@conf-8'
|
|
54
|
+
end
|
|
60
55
|
|
|
61
56
|
test from: :pas_client_v221_request_bundle_validation_test,
|
|
62
|
-
config: { options: { workflow_tag: MUST_SUPPORT_WORKFLOW_TAG
|
|
57
|
+
config: { options: { workflow_tag: MUST_SUPPORT_WORKFLOW_TAG, no_requests_ok: true,
|
|
58
|
+
multiple_requests_ok: true } }
|
|
63
59
|
test from: :pas_client_v221_response_bundle_validation_test,
|
|
64
|
-
config: { options: { workflow_tag: MUST_SUPPORT_WORKFLOW_TAG
|
|
60
|
+
config: { options: { workflow_tag: MUST_SUPPORT_WORKFLOW_TAG, no_requests_ok: true,
|
|
61
|
+
multiple_requests_ok: true } }
|
|
62
|
+
test from: :pas_client_v221_inquire_request_bundle_validation_test,
|
|
63
|
+
config: { options: { workflow_tag: MUST_SUPPORT_WORKFLOW_TAG, no_requests_ok: true,
|
|
64
|
+
multiple_requests_ok: true } }
|
|
65
|
+
test from: :pas_client_v221_inquire_response_bundle_validation_test,
|
|
66
|
+
config: { options: { workflow_tag: MUST_SUPPORT_WORKFLOW_TAG, no_requests_ok: true,
|
|
67
|
+
multiple_requests_ok: true } }
|
|
65
68
|
end
|
|
66
69
|
|
|
67
|
-
#
|
|
68
|
-
group
|
|
69
|
-
|
|
70
|
-
# $submit Response Must Support (skip when errors detected)
|
|
71
|
-
group from: :pas_client_v221_submit_response_must_support
|
|
72
|
-
|
|
73
|
-
# $inquire Bundle Conformance Validation
|
|
70
|
+
# Kept separate from the receive group so the analysis can be re-run without re-running the receive
|
|
71
|
+
# group, which would discard the requests made during its previous run
|
|
74
72
|
group do
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
and that the $inquire response bundles provided for Inferno to send back
|
|
79
|
-
are conformant.
|
|
80
|
-
)
|
|
73
|
+
id :pas_client_v221_must_support_coverage
|
|
74
|
+
title MUST_SUPPORT_COVERAGE_GROUP_TITLE
|
|
75
|
+
description MUST_SUPPORT_COVERAGE_GROUP_DESCRIPTION
|
|
81
76
|
run_as_group
|
|
82
77
|
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
test from: :pas_client_v221_inquire_response_bundle_validation_test,
|
|
86
|
-
config: { options: { workflow_tag: MUST_SUPPORT_WORKFLOW_TAG } }
|
|
87
|
-
end
|
|
78
|
+
# $submit Request Must Support (fail when errors detected)
|
|
79
|
+
group from: :pas_client_v221_submit_must_support
|
|
88
80
|
|
|
89
|
-
|
|
90
|
-
|
|
81
|
+
# $submit Response Must Support (skip when errors detected)
|
|
82
|
+
group from: :pas_client_v221_submit_response_must_support
|
|
91
83
|
|
|
92
|
-
|
|
93
|
-
|
|
84
|
+
# $inquire Request Must Support (fail when errors detected)
|
|
85
|
+
group from: :pas_client_v221_inquire_must_support
|
|
86
|
+
|
|
87
|
+
# $inquire Response Must Support (skip when errors detected)
|
|
88
|
+
group from: :pas_client_v221_inquire_response_must_support
|
|
89
|
+
end
|
|
94
90
|
end
|
|
95
91
|
end
|
|
96
92
|
end
|
|
@@ -9,8 +9,8 @@ module DaVinciPASTestKit
|
|
|
9
9
|
id :pas_client_v221_operation_failure_group
|
|
10
10
|
title 'Operation Failure'
|
|
11
11
|
description %(
|
|
12
|
-
During these tests, the client will initiate a prior authorization
|
|
13
|
-
request and show it can
|
|
12
|
+
During these tests, the PAS client will initiate a prior authorization
|
|
13
|
+
request and show it can react appropriately to an operation failure response —
|
|
14
14
|
a non-2XX HTTP status code accompanied by an OperationOutcome resource.
|
|
15
15
|
)
|
|
16
16
|
run_as_group
|
|
@@ -24,22 +24,25 @@ module DaVinciPASTestKit
|
|
|
24
24
|
:session_url_path
|
|
25
25
|
|
|
26
26
|
test from: :pas_client_v221_operation_failure_submit_test
|
|
27
|
-
test from: :pas_client_v221_operation_outcome_validation_test
|
|
28
27
|
test from: :pas_client_v221_response_attest,
|
|
29
28
|
title: 'PAS client handles the operation failure appropriately',
|
|
30
29
|
description: %(
|
|
31
|
-
|
|
30
|
+
During this test, the tester will observe the PAS client following
|
|
32
31
|
the receipt of the operation failure response and attest that the error details
|
|
33
32
|
from the OperationOutcome were made available to the appropriate users (e.g.,
|
|
34
33
|
technical staff, not the clinical end user).
|
|
35
34
|
),
|
|
36
35
|
config: { options: {
|
|
37
36
|
workflow_tag: OPERATION_FAILURE_WORKFLOW_TAG,
|
|
38
|
-
|
|
37
|
+
operation_tag: SUBMIT_TAG,
|
|
38
|
+
error_status_expected: true,
|
|
39
|
+
attest_message: 'I attest that the PAS client did not error when receiving the operation ' \
|
|
40
|
+
'failure response and handles it ' \
|
|
39
41
|
'appropriately: the OperationOutcome details are available to technical staff ' \
|
|
40
42
|
'for review and the clinical end user is informed that the submission could ' \
|
|
41
43
|
'not be processed.'
|
|
42
44
|
} }
|
|
45
|
+
test from: :pas_client_v221_operation_outcome_validation_test
|
|
43
46
|
end
|
|
44
47
|
end
|
|
45
48
|
end
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
require_relative 'workflows/pas_client_pended_submit_test'
|
|
2
|
+
require_relative 'workflows/pas_client_pended_send_notification_test'
|
|
2
3
|
require_relative 'workflows/pas_client_response_attest'
|
|
3
4
|
require_relative 'workflows/pas_client_response_bundle_validation_test'
|
|
4
5
|
require_relative 'workflows/pas_client_request_bundle_validation_test'
|
|
@@ -12,65 +13,89 @@ module DaVinciPASTestKit
|
|
|
12
13
|
include UserInputResponse
|
|
13
14
|
|
|
14
15
|
id :pas_client_v221_pended_group
|
|
15
|
-
title 'Pended
|
|
16
|
+
title 'Pended Response'
|
|
16
17
|
description %(
|
|
17
|
-
During these tests, the client will initiate a prior authorization
|
|
18
|
-
request and show it can
|
|
18
|
+
During these tests, the PAS client will initiate a prior authorization
|
|
19
|
+
request and show it can react appropriately to a 'pended' decision, including
|
|
19
20
|
waiting for a full-resource notification that contains the final decision.
|
|
20
|
-
In v2.2.1, the notification includes all details so no follow-up `$inquire`
|
|
21
|
-
request is needed.
|
|
21
|
+
In PAS v2.2.1, the notification includes all details so no follow-up `$inquire`
|
|
22
|
+
request is needed and Inferno does not currently accept them during this group.
|
|
22
23
|
)
|
|
23
24
|
run_as_group
|
|
24
25
|
|
|
25
26
|
input :pended_json_response, optional: true
|
|
26
27
|
|
|
27
28
|
input_order :pended_json_response,
|
|
29
|
+
:notification_bundle,
|
|
30
|
+
:client_endpoint_access_token,
|
|
28
31
|
:client_id,
|
|
29
32
|
:session_url_path
|
|
30
33
|
|
|
31
34
|
group do
|
|
32
|
-
title 'Interaction'
|
|
35
|
+
title 'Interaction and Response Handling'
|
|
33
36
|
description %(
|
|
34
|
-
All interactions for the pended prior authorization request
|
|
35
|
-
between Inferno and the client
|
|
37
|
+
All interactions for the pended prior authorization request scenario
|
|
38
|
+
between Inferno and the PAS client will be performed during this group
|
|
36
39
|
including
|
|
37
|
-
- A `$submit` request from the client to Inferno where Inferno returns a pended response.
|
|
40
|
+
- A `$submit` request from the PAS client to Inferno where Inferno returns a pended response.
|
|
38
41
|
- A full-resource notification that the prior authorization decision has been finalized
|
|
39
|
-
from Inferno to the client
|
|
42
|
+
from Inferno to the PAS client.
|
|
43
|
+
|
|
44
|
+
In between these requests, testers will confirm that the PAS client registers
|
|
45
|
+
the request as pended and that it is updated with the final response
|
|
46
|
+
after the notification is received.
|
|
40
47
|
)
|
|
41
48
|
|
|
42
49
|
test from: :pas_client_v221_pended_submit_test
|
|
43
|
-
end
|
|
44
|
-
|
|
45
|
-
group do
|
|
46
|
-
title '$submit Conformance and Handling'
|
|
47
|
-
|
|
48
|
-
test from: :pas_client_v221_request_bundle_validation_test,
|
|
49
|
-
config: { options: { workflow_tag: PENDED_WORKFLOW_TAG } }
|
|
50
|
-
test from: :pas_client_v221_response_bundle_validation_test,
|
|
51
|
-
config: { options: { workflow_tag: PENDED_WORKFLOW_TAG } }
|
|
52
50
|
test from: :pas_client_v221_response_attest,
|
|
51
|
+
id: :pas_client_v221_pended_response_attest,
|
|
53
52
|
title: 'PAS client displays the request as "pended"',
|
|
54
53
|
description: %(
|
|
55
|
-
|
|
54
|
+
During this test, the tester will observe the PAS client following
|
|
56
55
|
the receipt of the pended response and attest that users are able to determine
|
|
57
56
|
that the response has been pended and a decision will be forthcoming.
|
|
58
57
|
),
|
|
59
58
|
config: { options: {
|
|
60
59
|
workflow_tag: PENDED_WORKFLOW_TAG,
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
60
|
+
operation_tag: SUBMIT_TAG,
|
|
61
|
+
attest_message: 'I attest that the PAS client did not error when handling the `$submit` ' \
|
|
62
|
+
"response and displays the submitted claim as 'pended' meaning " \
|
|
63
|
+
'that a final decision on prior authorization of the service has not been made.'
|
|
64
|
+
} }
|
|
65
|
+
test from: :pas_client_v221_pended_notify_and_attest_finalized_test
|
|
66
|
+
test from: :pas_client_v221_response_attest,
|
|
67
|
+
id: :pas_client_v221_pended_finalized_response_attest,
|
|
68
|
+
title: 'PAS client displays the final decision as "approved"',
|
|
69
|
+
description: %(
|
|
70
|
+
During this test, the tester will observe the PAS client following
|
|
71
|
+
the receipt of the full-resource notification containing the approved final decision
|
|
72
|
+
and attest that users are able to determine that the request has been approved.
|
|
73
|
+
),
|
|
74
|
+
config: { options: {
|
|
75
|
+
workflow_tag: PENDED_WORKFLOW_TAG,
|
|
76
|
+
request_tags: [REST_HOOK_EVENT_NOTIFICATION_TAG],
|
|
77
|
+
attest_message: 'I attest that the PAS client did not error when handling the notification ' \
|
|
78
|
+
"and displays the submitted claim as 'approved' meaning that the " \
|
|
79
|
+
'user can proceed with ordering or providing the requested service.'
|
|
64
80
|
} }
|
|
65
81
|
end
|
|
66
82
|
|
|
67
83
|
group do
|
|
68
|
-
title '
|
|
84
|
+
title '$submit Conformance'
|
|
85
|
+
|
|
86
|
+
test from: :pas_client_v221_request_bundle_validation_test,
|
|
87
|
+
config: { options: { workflow_tag: PENDED_WORKFLOW_TAG } }
|
|
88
|
+
test from: :pas_client_v221_response_bundle_validation_test,
|
|
89
|
+
config: { options: { workflow_tag: PENDED_WORKFLOW_TAG } }
|
|
90
|
+
end
|
|
91
|
+
|
|
92
|
+
group do
|
|
93
|
+
title 'Notification Conformance'
|
|
69
94
|
|
|
70
95
|
test from: :subscriptions_r4_client_notification_input_verification,
|
|
71
96
|
title: 'Inferno\'s event notification Bundle is conformant',
|
|
72
97
|
description: %(
|
|
73
|
-
This test checks that the notification Bundle sent to the client, which will be either
|
|
98
|
+
This test checks that the notification Bundle sent to the PAS client, which will be either
|
|
74
99
|
the tester-provided notification Bundle in the **Claim updated notification JSON** input
|
|
75
100
|
or mocked by Inferno based on details in the Subscription and submitted Claim, is conformant
|
|
76
101
|
to Subscription Backport IG requirements.
|
|
@@ -84,10 +109,10 @@ module DaVinciPASTestKit
|
|
|
84
109
|
test from: :subscriptions_r4_client_notification_input_payload_verification,
|
|
85
110
|
title: 'Inferno\'s event notification Bundle matches the Subscription',
|
|
86
111
|
description: %(
|
|
87
|
-
This test checks that the notification Bundle sent to the client, which will be either
|
|
112
|
+
This test checks that the notification Bundle sent to the PAS client, which will be either
|
|
88
113
|
the tester-provided notification Bundle in the **Claim updated notification JSON** input
|
|
89
114
|
or mocked by Inferno based on details in the Subscription and submitted Claim, matches the details
|
|
90
|
-
requested in the Subscription provided during the
|
|
115
|
+
requested in the Subscription provided during the "Subscription Setup" tests.
|
|
91
116
|
),
|
|
92
117
|
simulation_verification: true,
|
|
93
118
|
config: {
|
|
@@ -101,24 +126,11 @@ module DaVinciPASTestKit
|
|
|
101
126
|
test from: :subscriptions_r4_client_event_notification_verification,
|
|
102
127
|
title: 'PAS client accepts the "claim updated" event notification',
|
|
103
128
|
description: %(
|
|
104
|
-
This test checks that the client responds appropriately to the event notification request.
|
|
129
|
+
This test checks that the PAS client responds appropriately to the event notification request.
|
|
105
130
|
) do
|
|
106
131
|
verifies_requirements(*SubscriptionsTestKit::SubscriptionsR5BackportR4Client::EventNotificationVerificationTest.verifies_requirements,
|
|
107
132
|
'hl7.fhir.us.davinci-pas_2.2.1@spec-8')
|
|
108
133
|
end
|
|
109
|
-
test from: :pas_client_v221_response_attest,
|
|
110
|
-
title: 'PAS client displays the final decision as "approved"',
|
|
111
|
-
description: %(
|
|
112
|
-
This test provides the tester an opportunity to observe their client following
|
|
113
|
-
the receipt of the full-resource notification containing the approved final decision
|
|
114
|
-
and attest that users are able to determine that the request has been approved.
|
|
115
|
-
),
|
|
116
|
-
config: { options: {
|
|
117
|
-
workflow_tag: PENDED_WORKFLOW_TAG,
|
|
118
|
-
attest_message: "I attest that the client system displays the submitted claim as 'approved' based " \
|
|
119
|
-
'on the full-resource notification, meaning that the user can proceed with ' \
|
|
120
|
-
'ordering or providing the requested service.'
|
|
121
|
-
} }
|
|
122
134
|
end
|
|
123
135
|
end
|
|
124
136
|
end
|
|
@@ -10,8 +10,8 @@ module DaVinciPASTestKit
|
|
|
10
10
|
id :pas_client_v221_processing_error_group
|
|
11
11
|
title 'Processing Errors'
|
|
12
12
|
description %(
|
|
13
|
-
During these tests, the client will initiate a prior authorization
|
|
14
|
-
request and show it can
|
|
13
|
+
During these tests, the PAS client will initiate a prior authorization
|
|
14
|
+
request and show it can react appropriately to a response containing
|
|
15
15
|
one or more ClaimResponse.error entries.
|
|
16
16
|
)
|
|
17
17
|
run_as_group
|
|
@@ -23,22 +23,24 @@ module DaVinciPASTestKit
|
|
|
23
23
|
:session_url_path
|
|
24
24
|
|
|
25
25
|
test from: :pas_client_v221_processing_error_submit_test
|
|
26
|
-
test from: :pas_client_v221_request_bundle_validation_test,
|
|
27
|
-
config: { options: { workflow_tag: PROCESSING_ERROR_WORKFLOW_TAG } }
|
|
28
|
-
test from: :pas_client_v221_processing_error_response_validation_test
|
|
29
26
|
test from: :pas_client_v221_response_attest,
|
|
30
27
|
title: 'PAS client handles the processing errors appropriately',
|
|
31
28
|
description: %(
|
|
32
|
-
|
|
29
|
+
During this test, the tester will observe the PAS client following
|
|
33
30
|
the receipt of the response containing ClaimResponse.error entries and attest
|
|
34
31
|
that the processing error details were made available to the appropriate users.
|
|
35
32
|
),
|
|
36
33
|
config: { options: {
|
|
37
34
|
workflow_tag: PROCESSING_ERROR_WORKFLOW_TAG,
|
|
38
|
-
|
|
35
|
+
operation_tag: SUBMIT_TAG,
|
|
36
|
+
attest_message: 'I attest that the PAS client did not error when receiving the processing ' \
|
|
37
|
+
'error response and handles it ' \
|
|
39
38
|
'appropriately: the ClaimResponse error details are surfaced to the ' \
|
|
40
39
|
'appropriate users so that corrective action can be taken.'
|
|
41
40
|
} }
|
|
41
|
+
test from: :pas_client_v221_request_bundle_validation_test,
|
|
42
|
+
config: { options: { workflow_tag: PROCESSING_ERROR_WORKFLOW_TAG } }
|
|
43
|
+
test from: :pas_client_v221_processing_error_response_validation_test
|
|
42
44
|
end
|
|
43
45
|
end
|
|
44
46
|
end
|
|
@@ -12,8 +12,8 @@ module DaVinciPASTestKit
|
|
|
12
12
|
id :pas_client_v221_registration
|
|
13
13
|
title 'Client Registration'
|
|
14
14
|
description %(
|
|
15
|
-
Register the client
|
|
16
|
-
including configuration
|
|
15
|
+
Register the PAS client with Inferno's simulated PAS Server,
|
|
16
|
+
including configuration necessary to make requests against
|
|
17
17
|
Inferno's simulated PAS endpoints and enable authentication and authorization of PAS requests.
|
|
18
18
|
)
|
|
19
19
|
run_as_group
|
|
@@ -8,20 +8,25 @@ module DaVinciPASTestKit
|
|
|
8
8
|
id :pas_client_v221_subscription_setup
|
|
9
9
|
title 'Subscription Setup'
|
|
10
10
|
description %(
|
|
11
|
-
These tests verify that the client can create a Subscription instance
|
|
12
|
-
that will tell the Payer how to notify the client when pended claims
|
|
11
|
+
These tests verify that the PAS client can create a Subscription instance
|
|
12
|
+
that will tell the Payer how to notify the PAS client when pended claims
|
|
13
13
|
are updated.
|
|
14
14
|
)
|
|
15
15
|
run_as_group
|
|
16
16
|
|
|
17
|
+
input_order :client_endpoint_access_token
|
|
18
|
+
|
|
17
19
|
test from: :pas_client_v221_subscription_create_test
|
|
20
|
+
test from: :subscriptions_r4_client_subscription_verification,
|
|
21
|
+
title: 'Subscription creation request has the correct structure and content'
|
|
18
22
|
test from: :pas_client_subscription_pas_conformance_test,
|
|
23
|
+
title: 'Subscription creation request meets PAS Subscription requirements',
|
|
19
24
|
description: %(
|
|
20
|
-
This test verifies that the Subscription created by the client
|
|
25
|
+
This test verifies that the Subscription created by the PAS client
|
|
21
26
|
is conformant to PAS requirements on the Subscription, including
|
|
22
27
|
- The use of the [PAS-defined Subscription
|
|
23
28
|
Topic](https://hl7.org/fhir/us/davinci-pas/2.2.1/SubscriptionTopic-PASSubscriptionTopic.html), and
|
|
24
|
-
- Inclusion of filter criteria for the client's organization.
|
|
29
|
+
- Inclusion of filter criteria for the PAS client's organization.
|
|
25
30
|
),
|
|
26
31
|
config: { options: { ig_version: 'v2.2.1' } }
|
|
27
32
|
test from: :subscriptions_r4_client_handshake_notification_verification,
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'subscriptions_test_kit'
|
|
4
|
+
require_relative 'subscription/pas_client_subscription_update_delete_test'
|
|
5
|
+
require_relative 'subscription/pas_client_subscription_put_update_pas_conformance_test'
|
|
6
|
+
|
|
7
|
+
module DaVinciPASTestKit
|
|
8
|
+
module DaVinciPASV221
|
|
9
|
+
class PASClientSubscriptionUpdateDeleteGroup < Inferno::TestGroup
|
|
10
|
+
id :pas_client_v221_subscription_update_delete
|
|
11
|
+
title 'Subscription Update and Deletion'
|
|
12
|
+
description %(
|
|
13
|
+
During this group, the tester will demonstrate the ability of the PAS client
|
|
14
|
+
to update and delete the PAS Subscription instance that it created
|
|
15
|
+
during the "Subscription Setup" group. This group must be run after
|
|
16
|
+
all scenario and must support tests have been run as Inferno will
|
|
17
|
+
not send notifications once the Subscription created during the
|
|
18
|
+
"Subscription Setup" group has been modified or deleted during this
|
|
19
|
+
group.
|
|
20
|
+
|
|
21
|
+
Inferno will wait for the PAS client to send update and delete requests and
|
|
22
|
+
will then verify that the requests are conformant. Note that
|
|
23
|
+
- Update and delete requests are only accepted by Inferno while
|
|
24
|
+
this group is waiting.
|
|
25
|
+
- Only requests for the Subscription created during the most recent
|
|
26
|
+
run of the "Subscription Setup" group in this session will
|
|
27
|
+
be accepted.
|
|
28
|
+
- Once the Subscription has been deleted, Inferno will respond to
|
|
29
|
+
further update and read requests for it with a `404 Not Found`
|
|
30
|
+
until this group is re-run.
|
|
31
|
+
- If this group is re-run, Inferno will forget about the previous
|
|
32
|
+
update and delete interactions sent by the PAS client, including
|
|
33
|
+
deletion. The PAS client can interact with the Subscription as it
|
|
34
|
+
was after it was created. If the PAS client cannot resume
|
|
35
|
+
interacting with a Subscription that it has deleted, re-run
|
|
36
|
+
the *Subscription Setup* group to create a new Subscription.
|
|
37
|
+
)
|
|
38
|
+
run_as_group
|
|
39
|
+
|
|
40
|
+
group 'Subscription Update and Delete Interaction' do
|
|
41
|
+
id :pas_client_v221_subscription_update_delete_interaction
|
|
42
|
+
test from: :pas_client_v221_subscription_update_delete_test
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
group 'Subscription Update and Delete Conformance' do
|
|
46
|
+
id :pas_client_v221_subscription_update_delete_conformance
|
|
47
|
+
test from: :subscriptions_r4_client_put_update_verification do
|
|
48
|
+
title 'Subscription update requests have the correct structure and content'
|
|
49
|
+
end
|
|
50
|
+
test from: :pas_client_v221_subscription_put_update_pas_conformance_test
|
|
51
|
+
test from: :subscriptions_r4_client_delete_verification do
|
|
52
|
+
title 'Subscription delete requests have the correct structure and content'
|
|
53
|
+
end
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
end
|
|
57
|
+
end
|
|
@@ -3,23 +3,43 @@ require_relative 'pas_client_denial_group'
|
|
|
3
3
|
require_relative 'pas_client_pended_group'
|
|
4
4
|
require_relative 'pas_client_claim_updates_group'
|
|
5
5
|
require_relative 'pas_client_modification_group'
|
|
6
|
+
require_relative 'pas_client_operation_failure_group'
|
|
7
|
+
require_relative 'pas_client_processing_error_group'
|
|
6
8
|
|
|
7
9
|
module DaVinciPASTestKit
|
|
8
10
|
module DaVinciPASV221
|
|
9
11
|
class PASClientWorkflowsGroup < Inferno::TestGroup
|
|
10
12
|
id :pas_client_v221_workflows
|
|
11
|
-
title 'PAS
|
|
13
|
+
title 'PAS Scenarios'
|
|
12
14
|
description %(
|
|
13
|
-
The
|
|
15
|
+
The scenario tests verify that the PAS client can participate in complete end-to-end prior
|
|
14
16
|
authorization interactions, initiating requests and reacting appropriately to the
|
|
15
17
|
responses returned.
|
|
16
18
|
)
|
|
17
19
|
|
|
20
|
+
input_order :approval_json_response,
|
|
21
|
+
:denial_json_response,
|
|
22
|
+
:pended_json_response,
|
|
23
|
+
:notification_bundle,
|
|
24
|
+
:client_endpoint_access_token,
|
|
25
|
+
:claim_update_initial_response,
|
|
26
|
+
:claim_update_add_item_response,
|
|
27
|
+
:claim_update_modify_cancel_response,
|
|
28
|
+
:claim_update_cancel_all_response,
|
|
29
|
+
:modification_json_response,
|
|
30
|
+
:operation_failure_operation_outcome,
|
|
31
|
+
:operation_failure_http_status,
|
|
32
|
+
:processing_error_response,
|
|
33
|
+
:client_id,
|
|
34
|
+
:session_url_path
|
|
35
|
+
|
|
18
36
|
group from: :pas_client_v221_approval_group
|
|
19
37
|
group from: :pas_client_v221_denial_group
|
|
20
38
|
group from: :pas_client_v221_pended_group
|
|
21
39
|
group from: :pas_client_v221_claim_updates_group
|
|
22
40
|
group from: :pas_client_v221_modification_group
|
|
41
|
+
group from: :pas_client_v221_operation_failure_group
|
|
42
|
+
group from: :pas_client_v221_processing_error_group
|
|
23
43
|
end
|
|
24
44
|
end
|
|
25
45
|
end
|
data/lib/davinci_pas_test_kit/client/v2.2.1/subscription/pas_client_subscription_create_test.rb
CHANGED
|
@@ -8,7 +8,8 @@ module DaVinciPASTestKit
|
|
|
8
8
|
|
|
9
9
|
id :pas_client_v221_subscription_create_test
|
|
10
10
|
|
|
11
|
-
verifies_requirements 'hl7.fhir.us.davinci-pas_2.2.1@spec-8'
|
|
11
|
+
verifies_requirements 'hl7.fhir.us.davinci-pas_2.2.1@spec-8',
|
|
12
|
+
'hl7.fhir.uv.subscriptions_1.1.0@23'
|
|
12
13
|
end
|
|
13
14
|
end
|
|
14
15
|
end
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'subscriptions_test_kit'
|
|
4
|
+
require_relative '../../../cross_suite/pas_subscription_verification'
|
|
5
|
+
|
|
6
|
+
module DaVinciPASTestKit
|
|
7
|
+
module DaVinciPASV221
|
|
8
|
+
class PASClientSubscriptionPutUpdatePASConformanceTest < Inferno::Test
|
|
9
|
+
include SubscriptionsTestKit::SubscriptionsR5BackportR4Client::UpdateRequestLoading
|
|
10
|
+
include PASSubscriptionVerification
|
|
11
|
+
|
|
12
|
+
id :pas_client_v221_subscription_put_update_pas_conformance_test
|
|
13
|
+
title 'Subscription update requests meet PAS Subscription requirements'
|
|
14
|
+
description %(
|
|
15
|
+
This test verifies that the Subscriptions in the accepted [update](https://hl7.org/fhir/R4/http.html#update)
|
|
16
|
+
(`PUT`) requests that the PAS client sent to Inferno for the Subscription it created during this
|
|
17
|
+
session are conformant to PAS requirements on the Subscription, including
|
|
18
|
+
- Conformance to the [PAS Subscription
|
|
19
|
+
profile](https://hl7.org/fhir/us/davinci-pas/2.2.1/StructureDefinition-profile-subscription.html), and
|
|
20
|
+
- Filter criteria for the PAS client's organization in the format `org-identifier=<identifier>`.
|
|
21
|
+
)
|
|
22
|
+
|
|
23
|
+
verifies_requirements 'hl7.fhir.us.davinci-pas_2.2.1@spec-62', 'hl7.fhir.uv.subscriptions_1.1.0@64',
|
|
24
|
+
'hl7.fhir.uv.subscriptions_1.1.0@96', 'hl7.fhir.uv.subscriptions_1.1.0@116'
|
|
25
|
+
|
|
26
|
+
run do
|
|
27
|
+
load_update_requests('put')
|
|
28
|
+
|
|
29
|
+
# Numbered among all PUT requests so that messages line up with the general update conformance test
|
|
30
|
+
accepted_requests = requests.each.with_index(1).select { |update_request, _| update_request.status == 200 }
|
|
31
|
+
skip_if accepted_requests.none?, %(
|
|
32
|
+
Inferno did not accept any PUT update requests for the created Subscription, so there are no updated
|
|
33
|
+
Subscriptions to check.
|
|
34
|
+
)
|
|
35
|
+
|
|
36
|
+
accepted_requests.each do |update_request, request_number|
|
|
37
|
+
first_message_index = messages.length
|
|
38
|
+
add_pas_subscription_messages(JSON.parse(update_request.request_body), ig_version: 'v2.2.1')
|
|
39
|
+
messages[first_message_index..].each do |message|
|
|
40
|
+
message[:message] = "Request #{request_number}: #{message[:message]}"
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
assert messages.none? { |message| message[:type] == 'error' },
|
|
45
|
+
'Subscription PUT update requests do not conform to PAS requirements - see messages for details.'
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
end
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
require_relative '../../abstract_subscription_update_delete_test'
|
|
2
|
+
require_relative '../urls'
|
|
3
|
+
|
|
4
|
+
module DaVinciPASTestKit
|
|
5
|
+
module DaVinciPASV221
|
|
6
|
+
class PASClientSubscriptionUpdateDeleteTest < AbstractSubscriptionUpdateDeleteTest
|
|
7
|
+
include URLs
|
|
8
|
+
|
|
9
|
+
id :pas_client_v221_subscription_update_delete_test
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
end
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
require_relative 'pas_client_claim_update_validation_utils'
|
|
2
|
-
require_relative '../../../cross_suite/
|
|
2
|
+
require_relative '../../../cross_suite/referenced_resource_presence_validation'
|
|
3
3
|
|
|
4
4
|
module DaVinciPASTestKit
|
|
5
5
|
module DaVinciPASV221
|
|
6
|
-
# spec-67 - reuses the existing
|
|
6
|
+
# spec-67 - reuses the existing reference-presence validation logic.
|
|
7
7
|
class PASClientClaimUpdateReferencedResourcesTest < Inferno::Test
|
|
8
8
|
include ClaimUpdateValidationUtils
|
|
9
|
-
include DaVinciPASTestKit::
|
|
9
|
+
include DaVinciPASTestKit::ReferencedResourcePresenceValidation
|
|
10
10
|
|
|
11
11
|
id :pas_client_v221_claim_update_referenced_resources_test
|
|
12
12
|
title 'Request Bundles updating a Claim include all resources referenced by the updated Claim'
|
|
@@ -28,9 +28,8 @@ module DaVinciPASTestKit
|
|
|
28
28
|
# The reused reference-presence check verifies the primary Update Claim's parent reference and the
|
|
29
29
|
# parent's own referenced resources, while skipping a non-primary Claim's `related` so the
|
|
30
30
|
# deliberately-omitted grandparent (spec-65/66) is not flagged as missing.
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
validation_error_messages.each do |message|
|
|
31
|
+
errors = check_presence_of_referenced_resources(step[:claim], base_url, bundle.entry)
|
|
32
|
+
errors.each do |message|
|
|
34
33
|
add_message('error', "In the #{step[:label]} request: #{message}")
|
|
35
34
|
end
|
|
36
35
|
end
|