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,6 +7,7 @@ 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 DaVinciPASV201
|
|
@@ -14,54 +15,55 @@ module DaVinciPASTestKit
|
|
|
14
15
|
id :pas_client_v201_must_support
|
|
15
16
|
title 'Must Support Elements'
|
|
16
17
|
run_as_group
|
|
17
|
-
description
|
|
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
|
|
18
|
+
description DaVinciPASTestKit.must_support_group_description('v2.0.1', 'da-vinci-pas-v201')
|
|
20
19
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
20
|
+
# The must support response inputs already belong to pas_client_v201_gather_must_support
|
|
21
|
+
# (the wait test below); declaring them here too, before the receive group is defined,
|
|
22
|
+
# propagates them onto the bundle validation tests in that group as well, so they can tell
|
|
23
|
+
# whether a tester-provided response was used - see
|
|
24
|
+
# PasClientResponseBundleValidationTest/PasClientInquireResponseBundleValidationTest
|
|
25
|
+
# #failed_entities_description.
|
|
26
|
+
input :ms_submit_responses, optional: true
|
|
27
|
+
input :ms_inquire_responses, optional: true
|
|
25
28
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
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
|
-
)
|
|
29
|
+
input_order :ms_submit_responses,
|
|
30
|
+
:ms_inquire_responses,
|
|
31
|
+
:client_id,
|
|
32
|
+
:session_url_path
|
|
36
33
|
|
|
37
34
|
# Combined receive group - single wait test for both submit and inquire
|
|
38
35
|
group do
|
|
39
36
|
id :pas_client_v201_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
|
-
)
|
|
37
|
+
title MUST_SUPPORT_RECEIVE_GROUP_TITLE
|
|
38
|
+
description MUST_SUPPORT_RECEIVE_GROUP_DESCRIPTION
|
|
46
39
|
run_as_group
|
|
47
40
|
|
|
48
41
|
test from: :pas_client_v201_gather_must_support
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
42
|
+
test from: :pas_client_v201_response_attest,
|
|
43
|
+
id: :pas_client_v201_response_attest_ms_submit_inquire,
|
|
44
|
+
title: MUST_SUPPORT_SUBMIT_INQUIRE_ATTEST_TITLE,
|
|
45
|
+
description: MUST_SUPPORT_SUBMIT_INQUIRE_ATTEST_DESCRIPTION,
|
|
46
|
+
config: { options: {
|
|
47
|
+
workflow_tag: MUST_SUPPORT_WORKFLOW_TAG,
|
|
48
|
+
no_requests_ok: true,
|
|
49
|
+
multiple_requests_ok: true,
|
|
50
|
+
attest_message: MUST_SUPPORT_SUBMIT_INQUIRE_ATTEST_MESSAGE
|
|
51
|
+
} } do
|
|
52
|
+
verifies_requirements 'hl7.fhir.us.davinci-pas_2.0.1@41'
|
|
53
|
+
end
|
|
60
54
|
|
|
61
55
|
test from: :pas_client_v201_request_bundle_validation_test,
|
|
62
|
-
config: { options: { workflow_tag: MUST_SUPPORT_WORKFLOW_TAG
|
|
56
|
+
config: { options: { workflow_tag: MUST_SUPPORT_WORKFLOW_TAG, no_requests_ok: true,
|
|
57
|
+
multiple_requests_ok: true } }
|
|
63
58
|
test from: :pas_client_v201_response_bundle_validation_test,
|
|
64
|
-
config: { options: { workflow_tag: MUST_SUPPORT_WORKFLOW_TAG
|
|
59
|
+
config: { options: { workflow_tag: MUST_SUPPORT_WORKFLOW_TAG, no_requests_ok: true,
|
|
60
|
+
multiple_requests_ok: true } }
|
|
61
|
+
test from: :pas_client_v201_inquire_request_bundle_validation_test,
|
|
62
|
+
config: { options: { workflow_tag: MUST_SUPPORT_WORKFLOW_TAG, no_requests_ok: true,
|
|
63
|
+
multiple_requests_ok: true } }
|
|
64
|
+
test from: :pas_client_v201_inquire_response_bundle_validation_test,
|
|
65
|
+
config: { options: { workflow_tag: MUST_SUPPORT_WORKFLOW_TAG, no_requests_ok: true,
|
|
66
|
+
multiple_requests_ok: true } }
|
|
65
67
|
end
|
|
66
68
|
|
|
67
69
|
# $submit Request Must Support (fail when errors detected)
|
|
@@ -70,22 +72,6 @@ module DaVinciPASTestKit
|
|
|
70
72
|
# $submit Response Must Support (skip when errors detected)
|
|
71
73
|
group from: :pas_client_v201_submit_response_must_support
|
|
72
74
|
|
|
73
|
-
# $inquire Bundle Conformance Validation
|
|
74
|
-
group do
|
|
75
|
-
title '$inquire Bundle Conformance'
|
|
76
|
-
description %(
|
|
77
|
-
Verify that the $inquire request bundles sent by the client are conformant
|
|
78
|
-
and that the $inquire response bundles provided for Inferno to send back
|
|
79
|
-
are conformant.
|
|
80
|
-
)
|
|
81
|
-
run_as_group
|
|
82
|
-
|
|
83
|
-
test from: :pas_client_v201_inquire_request_bundle_validation_test,
|
|
84
|
-
config: { options: { workflow_tag: MUST_SUPPORT_WORKFLOW_TAG } }
|
|
85
|
-
test from: :pas_client_v201_inquire_response_bundle_validation_test,
|
|
86
|
-
config: { options: { workflow_tag: MUST_SUPPORT_WORKFLOW_TAG } }
|
|
87
|
-
end
|
|
88
|
-
|
|
89
75
|
# $inquire Request Must Support (fail when errors detected)
|
|
90
76
|
group from: :pas_client_v201_inquire_must_support
|
|
91
77
|
|
|
@@ -13,10 +13,10 @@ module DaVinciPASTestKit
|
|
|
13
13
|
include UserInputResponse
|
|
14
14
|
|
|
15
15
|
id :pas_client_v201_pended_group
|
|
16
|
-
title 'Pended
|
|
16
|
+
title 'Pended Response'
|
|
17
17
|
description %(
|
|
18
|
-
During these tests, the client will initiate a prior authorization
|
|
19
|
-
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
|
|
20
20
|
waiting for a notification that an update has been made
|
|
21
21
|
and making an inquiry request to retrieve the final result.
|
|
22
22
|
)
|
|
@@ -31,15 +31,15 @@ module DaVinciPASTestKit
|
|
|
31
31
|
:session_url_path
|
|
32
32
|
|
|
33
33
|
group do
|
|
34
|
-
title 'Perform the pended
|
|
34
|
+
title 'Perform the pended scenario'
|
|
35
35
|
description %(
|
|
36
|
-
All interactions for the pended prior authorization request
|
|
37
|
-
between Inferno and the client
|
|
36
|
+
All interactions for the pended prior authorization request scenario
|
|
37
|
+
between Inferno and the PAS client will be performed during this group
|
|
38
38
|
including
|
|
39
|
-
- A `$submit` request from the client to Inferno where Inferno returns a pended response.
|
|
39
|
+
- A `$submit` request from the PAS client to Inferno where Inferno returns a pended response.
|
|
40
40
|
- A notification that the prior authorization decision has been finalized from Inferno
|
|
41
|
-
to the client
|
|
42
|
-
- An `$inquire` request from the client to Inferno where Inferno returns an approved response.
|
|
41
|
+
to the PAS client.
|
|
42
|
+
- An `$inquire` request from the PAS client to Inferno where Inferno returns an approved response.
|
|
43
43
|
)
|
|
44
44
|
|
|
45
45
|
test from: :pas_client_v201_pended_submit_test
|
|
@@ -53,17 +53,19 @@ module DaVinciPASTestKit
|
|
|
53
53
|
test from: :pas_client_v201_response_bundle_validation_test,
|
|
54
54
|
config: { options: { workflow_tag: PENDED_WORKFLOW_TAG } }
|
|
55
55
|
test from: :pas_client_v201_response_attest,
|
|
56
|
-
title: 'Check that the client registers the request as pended
|
|
56
|
+
title: 'Check that the PAS client registers the request as pended',
|
|
57
57
|
description: %(
|
|
58
|
-
|
|
58
|
+
During this test, the tester will observe the PAS client following
|
|
59
59
|
the receipt of the pended response and attest that users are able to determine
|
|
60
60
|
that the response has been pended and a decision will be forthcoming.
|
|
61
61
|
),
|
|
62
62
|
config: { options: {
|
|
63
63
|
workflow_tag: PENDED_WORKFLOW_TAG,
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
64
|
+
operation_tag: SUBMIT_TAG,
|
|
65
|
+
multiple_requests_ok: true,
|
|
66
|
+
attest_message: "I attest that the PAS client did not error when handling the 'pended' " \
|
|
67
|
+
'response to the submitted claim and that it indicated to users that a final decision ' \
|
|
68
|
+
'on the request had not yet been made.'
|
|
67
69
|
} }
|
|
68
70
|
end
|
|
69
71
|
|
|
@@ -73,7 +75,7 @@ module DaVinciPASTestKit
|
|
|
73
75
|
test from: :subscriptions_r4_client_notification_input_verification,
|
|
74
76
|
title: 'Tester-provided event notification Bundle is conformant',
|
|
75
77
|
description: %(
|
|
76
|
-
This test checks that the notification Bundle sent to the client, which will be either
|
|
78
|
+
This test checks that the notification Bundle sent to the PAS client, which will be either
|
|
77
79
|
the tester-provided notification Bundle in the **Claim updated notification JSON** input
|
|
78
80
|
or mocked by Inferno based on details in the Subscription and submitted Claim, is conformant
|
|
79
81
|
to Subscription Backport IG requirements.
|
|
@@ -87,10 +89,10 @@ module DaVinciPASTestKit
|
|
|
87
89
|
test from: :subscriptions_r4_client_notification_input_payload_verification,
|
|
88
90
|
title: 'Tester-provided event notification Bundle matches the Subscription',
|
|
89
91
|
description: %(
|
|
90
|
-
This test checks that the notification Bundle sent to the client, which will be either
|
|
92
|
+
This test checks that the notification Bundle sent to the PAS client, which will be either
|
|
91
93
|
the tester-provided notification Bundle in the **Claim updated notification JSON** input
|
|
92
94
|
or mocked by Inferno based on details in the Subscription and submitted Claim, matches the details
|
|
93
|
-
requested in the Subscription provided during the
|
|
95
|
+
requested in the Subscription provided during the "Subscription Setup" tests.
|
|
94
96
|
),
|
|
95
97
|
simulation_verification: true,
|
|
96
98
|
config: {
|
|
@@ -102,9 +104,9 @@ module DaVinciPASTestKit
|
|
|
102
104
|
# and testers have to demonstrate and attest that their systems work, which will require some
|
|
103
105
|
# correspondence.
|
|
104
106
|
test from: :subscriptions_r4_client_event_notification_verification,
|
|
105
|
-
title: '
|
|
107
|
+
title: 'PAS client accepts the "claim updated" event notification',
|
|
106
108
|
description: %(
|
|
107
|
-
This test checks that the client responds appropriately to the event notification request.
|
|
109
|
+
This test checks that the PAS client responds appropriately to the event notification request.
|
|
108
110
|
)
|
|
109
111
|
end
|
|
110
112
|
|
|
@@ -116,15 +118,19 @@ module DaVinciPASTestKit
|
|
|
116
118
|
test from: :pas_client_v201_inquire_response_bundle_validation_test,
|
|
117
119
|
config: { options: { workflow_tag: PENDED_WORKFLOW_TAG } }
|
|
118
120
|
test from: :pas_client_v201_response_attest,
|
|
119
|
-
title: 'Check that the client registers the request as approved
|
|
121
|
+
title: 'Check that the PAS client registers the request as approved',
|
|
120
122
|
description: %(
|
|
121
|
-
|
|
123
|
+
During this test, the tester will observe the PAS client following
|
|
122
124
|
the receipt of the inquiry response with a final decision and attest that users
|
|
123
125
|
are able to determine that the response has been approved in full.
|
|
124
126
|
),
|
|
125
127
|
config: { options: {
|
|
126
128
|
workflow_tag: PENDED_WORKFLOW_TAG,
|
|
127
|
-
|
|
129
|
+
operation_tag: INQUIRE_TAG,
|
|
130
|
+
multiple_requests_ok: true,
|
|
131
|
+
attest_message: 'I attest that the PAS client did not error when handling the `$inquire` ' \
|
|
132
|
+
"response and displays the submitted claim as 'approved' meaning that the " \
|
|
133
|
+
'user can proceed with ordering or providing the requested service.'
|
|
128
134
|
} }
|
|
129
135
|
end
|
|
130
136
|
end
|
|
@@ -12,8 +12,8 @@ module DaVinciPASTestKit
|
|
|
12
12
|
id :pas_client_v201_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,8 +8,8 @@ module DaVinciPASTestKit
|
|
|
8
8
|
id :pas_client_v201_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
|
|
@@ -6,9 +6,9 @@ module DaVinciPASTestKit
|
|
|
6
6
|
module DaVinciPASV201
|
|
7
7
|
class PASClientWorkflowsGroup < Inferno::TestGroup
|
|
8
8
|
id :pas_client_v201_workflows
|
|
9
|
-
title 'PAS
|
|
9
|
+
title 'PAS Scenarios'
|
|
10
10
|
description %(
|
|
11
|
-
The
|
|
11
|
+
The scenario tests verify that the PAS client can participate in complete end-to-end prior
|
|
12
12
|
authorization interactions, initiating requests and reacting appropriately to the
|
|
13
13
|
responses returned.
|
|
14
14
|
)
|
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
require_relative '../../../cross_suite/pas_bundle_validation'
|
|
2
|
+
require_relative '../../client_bundle_validation_helper'
|
|
2
3
|
|
|
3
4
|
module DaVinciPASTestKit
|
|
4
5
|
module DaVinciPASV201
|
|
5
6
|
class PasClientInquireRequestBundleValidationTest < Inferno::Test
|
|
6
7
|
include DaVinciPASTestKit::PasBundleValidation
|
|
8
|
+
include DaVinciPASTestKit::ClientBundleValidationHelper
|
|
7
9
|
|
|
8
10
|
id :pas_client_v201_inquire_request_bundle_validation_test
|
|
9
|
-
title '
|
|
11
|
+
title '$inquire request Bundles have the correct structure and content'
|
|
10
12
|
description %(
|
|
11
|
-
This test verifies the conformity of the client's request
|
|
13
|
+
This test verifies the conformity of each of the PAS client's `$inquire` request bodies to the
|
|
12
14
|
[PAS Inquiry Request Bundle](http://hl7.org/fhir/us/davinci-pas/STU2/StructureDefinition-profile-pas-inquiry-request-bundle.html)
|
|
13
15
|
structure. It also checks that other conformance requirements defined in the [PAS Formal
|
|
14
16
|
Specification](https://hl7.org/fhir/us/davinci-pas/STU2/specification.html),
|
|
@@ -37,30 +39,22 @@ module DaVinciPASTestKit
|
|
|
37
39
|
'hl7.fhir.us.davinci-pas_2.0.1@125', 'hl7.fhir.us.davinci-pas_2.0.1@126',
|
|
38
40
|
'hl7.fhir.us.davinci-pas_2.0.1@127', 'hl7.fhir.us.davinci-pas_2.0.1@128'
|
|
39
41
|
|
|
40
|
-
def
|
|
41
|
-
|
|
42
|
+
def operation_name
|
|
43
|
+
'inquire'
|
|
42
44
|
end
|
|
43
45
|
|
|
44
|
-
def
|
|
45
|
-
|
|
46
|
+
def message_direction_name
|
|
47
|
+
'request'
|
|
46
48
|
end
|
|
47
49
|
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
else
|
|
52
|
-
load_tagged_requests(request_type_tag)
|
|
53
|
-
end
|
|
54
|
-
skip_if !request.present?, 'No inquire requests received.'
|
|
50
|
+
def ig_version
|
|
51
|
+
'2.0.1'
|
|
52
|
+
end
|
|
55
53
|
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
'inquire',
|
|
61
|
-
'request_bundle',
|
|
62
|
-
message: 'The Bundle provided for the Claim/$inquire operation is invalid:'
|
|
63
|
-
)
|
|
54
|
+
run do
|
|
55
|
+
failed = non_conformant_bundles
|
|
56
|
+
assert failed.empty?,
|
|
57
|
+
"Non-conformant request Bundles detected: #{failed.join(', ')}. Check messages for issues found."
|
|
64
58
|
end
|
|
65
59
|
end
|
|
66
60
|
end
|
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
require_relative '../../../cross_suite/pas_bundle_validation'
|
|
2
2
|
require_relative '../../user_input_response'
|
|
3
|
-
require_relative '../../
|
|
3
|
+
require_relative '../../client_bundle_validation_helper'
|
|
4
4
|
|
|
5
5
|
module DaVinciPASTestKit
|
|
6
6
|
module DaVinciPASV201
|
|
7
7
|
class PasClientInquireResponseBundleValidationTest < Inferno::Test
|
|
8
8
|
include DaVinciPASTestKit::PasBundleValidation
|
|
9
9
|
include UserInputResponse
|
|
10
|
-
include
|
|
10
|
+
include DaVinciPASTestKit::ClientBundleValidationHelper
|
|
11
11
|
|
|
12
12
|
id :pas_client_v201_inquire_response_bundle_validation_test
|
|
13
|
-
title '
|
|
13
|
+
title '$inquire response Bundles have the correct structure and content'
|
|
14
14
|
description %(
|
|
15
|
-
|
|
15
|
+
This test verifies input provided by the tester instead of the PAS client.
|
|
16
16
|
Errors encountered will be treated as a skip instead of a failure.
|
|
17
17
|
|
|
18
|
-
This test verifies the conformity of
|
|
18
|
+
This test verifies the conformity of each `$inquire` response sent by Inferno, which will have been
|
|
19
19
|
either:
|
|
20
20
|
- the response body provided by the tester in the corresponding input, or
|
|
21
21
|
- created by Inferno from the $inquire Bundle.
|
|
@@ -33,8 +33,11 @@ module DaVinciPASTestKit
|
|
|
33
33
|
to the bound ValueSet. Quantity, Coding, and code element bindings will
|
|
34
34
|
fail if their code/system are not found in the valueset.
|
|
35
35
|
|
|
36
|
-
Note that
|
|
37
|
-
|
|
36
|
+
Note that:
|
|
37
|
+
- To ensure that the PAS client is driving its behavior only based on standard
|
|
38
|
+
PAS information, custom extensions are not allowed within the responses.
|
|
39
|
+
- Because X12 value sets are not public, elements bound to value
|
|
40
|
+
sets containing X12 codes are not validated.
|
|
38
41
|
|
|
39
42
|
**Limitations**
|
|
40
43
|
|
|
@@ -46,12 +49,16 @@ module DaVinciPASTestKit
|
|
|
46
49
|
)
|
|
47
50
|
simulation_verification
|
|
48
51
|
|
|
49
|
-
def
|
|
52
|
+
def operation_name
|
|
50
53
|
'inquire'
|
|
51
54
|
end
|
|
52
55
|
|
|
53
|
-
def
|
|
54
|
-
|
|
56
|
+
def message_direction_name
|
|
57
|
+
'response'
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
def ig_version
|
|
61
|
+
'2.0.1'
|
|
55
62
|
end
|
|
56
63
|
|
|
57
64
|
def target_user_input
|
|
@@ -63,26 +70,19 @@ module DaVinciPASTestKit
|
|
|
63
70
|
end
|
|
64
71
|
end
|
|
65
72
|
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
else
|
|
74
|
-
'Invalid response generated from the submitted claim:'
|
|
75
|
-
end
|
|
73
|
+
def failed_entities_description
|
|
74
|
+
if user_inputted_response? target_user_input
|
|
75
|
+
"built from tester-provided response in '#{input_title(target_user_input)}'"
|
|
76
|
+
else
|
|
77
|
+
'generated from the submitted claim'
|
|
78
|
+
end
|
|
79
|
+
end
|
|
76
80
|
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
'response_bundle',
|
|
83
|
-
skips: true,
|
|
84
|
-
message:
|
|
85
|
-
)
|
|
81
|
+
run do
|
|
82
|
+
failed = non_conformant_bundles
|
|
83
|
+
skip_if failed.present?,
|
|
84
|
+
"Non-conformant response Bundles #{failed_entities_description}: #{failed.join(', ')}. " \
|
|
85
|
+
'Check messages for issues found.'
|
|
86
86
|
end
|
|
87
87
|
end
|
|
88
88
|
end
|
|
@@ -3,6 +3,7 @@ require_relative '../../client_input_descriptions'
|
|
|
3
3
|
require_relative '../../user_input_response'
|
|
4
4
|
require_relative '../../../cross_suite/pas_bundle_validation'
|
|
5
5
|
require_relative '../../session_identification'
|
|
6
|
+
require_relative '../../subscription_setup_requirement'
|
|
6
7
|
|
|
7
8
|
module DaVinciPASTestKit
|
|
8
9
|
module DaVinciPASV201
|
|
@@ -11,15 +12,16 @@ module DaVinciPASTestKit
|
|
|
11
12
|
include SessionIdentification
|
|
12
13
|
include UserInputResponse
|
|
13
14
|
include PasBundleValidation
|
|
15
|
+
include SubscriptionSetupRequirement
|
|
14
16
|
|
|
15
17
|
id :pas_client_v201_pended_submit_test
|
|
16
|
-
title '
|
|
18
|
+
title 'PAS client submits a claim and reacts to a pended response'
|
|
17
19
|
description %(
|
|
18
|
-
Inferno will wait for a prior authorization submission request
|
|
19
|
-
from the client. Upon receipt, Inferno will respond with the
|
|
20
|
+
During this test, Inferno will wait for a prior authorization submission request
|
|
21
|
+
from the PAS client. Upon receipt, Inferno will respond with the
|
|
20
22
|
provided pended response. Subsequently, Inferno will send a
|
|
21
23
|
notification that the claim has been finalized and expect the
|
|
22
|
-
client
|
|
24
|
+
PAS client to send a follow-up inquiry.
|
|
23
25
|
)
|
|
24
26
|
verifies_requirements 'hl7.fhir.us.davinci-pas_2.0.1@58', 'hl7.fhir.us.davinci-pas_2.0.1@62',
|
|
25
27
|
'hl7.fhir.us.davinci-pas_2.0.1@67', 'hl7.fhir.us.davinci-pas_2.0.1@70',
|
|
@@ -27,14 +29,14 @@ module DaVinciPASTestKit
|
|
|
27
29
|
'hl7.fhir.us.davinci-pas_2.0.1@153', 'hl7.fhir.us.davinci-pas_2.0.1@202',
|
|
28
30
|
'hl7.fhir.us.davinci-pas_2.0.1@203'
|
|
29
31
|
|
|
30
|
-
config options: { accepts_multiple_requests: true }
|
|
32
|
+
config options: { accepts_multiple_requests: true, submit_enabled: true, inquire_enabled: true }
|
|
31
33
|
input :notification_bundle,
|
|
32
34
|
title: 'Claim updated notification JSON',
|
|
33
35
|
type: 'textarea',
|
|
34
36
|
optional: true,
|
|
35
37
|
description: %(
|
|
36
38
|
If provided, this JSON will be sent as the notification for the
|
|
37
|
-
PAS Subscription to tell the client that a decision has been made on the pended claim.
|
|
39
|
+
PAS Subscription to tell the PAS client that a decision has been made on the pended claim.
|
|
38
40
|
Before sending, Inferno will update the provided notification with details that the tester cannot
|
|
39
41
|
know ahead of time, including timestamps corresponding to the notification trigger time, and the id of
|
|
40
42
|
the triggering ClaimResponse if Inferno mocks that ClaimResponse because it is not provided by the
|
|
@@ -69,8 +71,8 @@ module DaVinciPASTestKit
|
|
|
69
71
|
optional: true,
|
|
70
72
|
title: 'Client Notification Access Token',
|
|
71
73
|
description: %(
|
|
72
|
-
The bearer token that Inferno will send on requests to the client
|
|
73
|
-
endpoint. Not needed if the client
|
|
74
|
+
The bearer token that Inferno will send on requests to the PAS client's rest-hook notification
|
|
75
|
+
endpoint. Not needed if the PAS client will create a Subscription with an appropriate header value
|
|
74
76
|
in the `channel.header` element. If a value for the `authorization` header is provided in
|
|
75
77
|
`channel.header`, this value will override it.
|
|
76
78
|
)
|
|
@@ -92,13 +94,7 @@ module DaVinciPASTestKit
|
|
|
92
94
|
inquire_respond_with :inquire_json_response
|
|
93
95
|
|
|
94
96
|
run do
|
|
95
|
-
|
|
96
|
-
skip_if requests.empty?, # NOTE: subscription needed ahead of time to support notification generation
|
|
97
|
-
%(
|
|
98
|
-
Pended workflow tests cannot proceed because no Subscription exists to receive notifications
|
|
99
|
-
for pended claims. Run the _PAS Subscription Setup_ tests to provide a Subscription for use
|
|
100
|
-
in delivering notifications before re-running the pended workflow tests.
|
|
101
|
-
)
|
|
97
|
+
require_unmodified_subscription
|
|
102
98
|
|
|
103
99
|
if user_inputted_response? :pended_json_response
|
|
104
100
|
assert_valid_json pended_json_response,
|
|
@@ -141,42 +137,55 @@ module DaVinciPASTestKit
|
|
|
141
137
|
wait(
|
|
142
138
|
identifier: wait_identifier,
|
|
143
139
|
timeout: 600,
|
|
144
|
-
message:
|
|
145
|
-
**Pended
|
|
140
|
+
message: <<~MESSAGE
|
|
141
|
+
**Pended Scenario Test**:
|
|
146
142
|
|
|
147
|
-
|
|
143
|
+
Inferno will wait while the tester uses the PAS client to complete the following steps:
|
|
148
144
|
|
|
149
|
-
|
|
145
|
+
1. Submit a PAS request to Inferno's `$submit` endpoint. Inferno will return a pended response.
|
|
146
|
+
2. Within 5-10 seconds, Inferno will send a notification indicating that the ClaimResponse has
|
|
147
|
+
been finalized to the endpoint provided on the Subscription during the _Subscription Setup_ tests.
|
|
148
|
+
3. Once the notification has been received, submit a PAS inquiry request to Inferno's `$inquire`
|
|
149
|
+
endpoint. Inferno will return an approval response.
|
|
150
150
|
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
151
|
+
Inferno will later ask testers to attest that the PAS client marked the request as pended after
|
|
152
|
+
step 1 (submit) and before step 2 (notification), so testers should check their PAS client's state
|
|
153
|
+
between these steps in order to faithfully answer the attestation.
|
|
154
154
|
|
|
155
|
-
|
|
156
|
-
finalized. If the optional '**#{input_title(:notification_bundle)}**' input is populated
|
|
157
|
-
Inferno will send it as a notification. Otherwise, a notification will be generated
|
|
158
|
-
from Inferno. In either case, the notification will be delivered to the endpoint provided on the
|
|
159
|
-
Subscription during the _PAS Subscription Setup_ tests.
|
|
155
|
+
[Click here](#{confirmation_url}) once the PAS client has completed these steps.
|
|
160
156
|
|
|
161
|
-
|
|
157
|
+
### Endpoints
|
|
162
158
|
|
|
163
|
-
`#{
|
|
159
|
+
- $submit: `#{submit_endpoint}`
|
|
160
|
+
- $inquire: `#{inquire_endpoint}`
|
|
164
161
|
|
|
165
|
-
|
|
166
|
-
be returned, updated with current timestamps. Otherwise, an approval response will
|
|
167
|
-
be generated by Inferno using the received Claim.
|
|
162
|
+
### Authentication and Identification
|
|
168
163
|
|
|
169
|
-
|
|
170
|
-
i.e., that the system marked the pended prior auth request appropriately after step 1 (submit) but
|
|
171
|
-
before step 2 (notification). Thus testers should check their system state as appropriate in order
|
|
172
|
-
to be able to faithfully answer the attestations.
|
|
164
|
+
#{auth_description_for_wait(client_id)}
|
|
173
165
|
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
166
|
+
### Responses
|
|
167
|
+
|
|
168
|
+
#{response_description_for_wait(user_inputted_response?(:pended_json_response),
|
|
169
|
+
input_title(:pended_json_response),
|
|
170
|
+
'$submit')}
|
|
171
|
+
|
|
172
|
+
#{response_description_for_wait(user_inputted_response?(:inquire_json_response),
|
|
173
|
+
input_title(:inquire_json_response),
|
|
174
|
+
'$inquire')}
|
|
175
|
+
|
|
176
|
+
#{notification_description_for_wait}
|
|
177
|
+
MESSAGE
|
|
178
178
|
)
|
|
179
179
|
end
|
|
180
|
+
|
|
181
|
+
def notification_description_for_wait
|
|
182
|
+
if notification_bundle.present?
|
|
183
|
+
"Inferno will send the content of the '**#{input_title(:notification_bundle)}**' input as the " \
|
|
184
|
+
'notification, updated with current timestamps.'
|
|
185
|
+
else
|
|
186
|
+
'Inferno will send a notification generated from the pended response.'
|
|
187
|
+
end
|
|
188
|
+
end
|
|
180
189
|
end
|
|
181
190
|
end
|
|
182
191
|
end
|