davinci_pas_test_kit 0.14.1 → 0.15.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/pas_client_v201_run_against_pas_server.json +39 -0
- data/config/presets/pas_client_v221_run_against_pas_server.json +85 -0
- data/config/presets/pas_ri.json +2 -2
- data/config/presets/pas_server_v201_run_against_pas_client.json.erb +76 -0
- data/config/presets/pas_server_v221_run_against_pas_client.json.erb +104 -0
- data/lib/davinci_pas_test_kit/client/abstract_approval_submit_test.rb +75 -0
- data/lib/davinci_pas_test_kit/client/abstract_denial_submit_test.rb +74 -0
- data/lib/davinci_pas_test_kit/client/abstract_gather_must_support_test.rb +160 -0
- data/lib/davinci_pas_test_kit/client/abstract_modification_submit_test.rb +78 -0
- data/lib/davinci_pas_test_kit/client/abstract_response_attest.rb +64 -0
- data/lib/davinci_pas_test_kit/client/abstract_subscription_create_test.rb +57 -0
- data/lib/davinci_pas_test_kit/{urls.rb → client/client_urls.rb} +7 -23
- data/lib/davinci_pas_test_kit/client/endpoints/claim_endpoint.rb +303 -0
- data/lib/davinci_pas_test_kit/{endpoints → client/endpoints}/subscription_create_endpoint.rb +1 -1
- data/lib/davinci_pas_test_kit/{endpoints → client/endpoints}/subscription_status_endpoint.rb +1 -1
- data/lib/davinci_pas_test_kit/{endpoints → client/endpoints}/token_endpoint.rb +1 -2
- data/lib/davinci_pas_test_kit/{generated/v2.0.1/beneficiary/client_submit_request_beneficiary_must_support_test.rb → client/generated/v2.0.1/beneficiary/client_inquire_request_must_support_beneficiary_test.rb} +14 -35
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/beneficiary/client_inquire_response_must_support_beneficiary_test.rb +59 -0
- data/lib/davinci_pas_test_kit/{generated/v2.0.1/beneficiary/client_inquire_request_beneficiary_must_support_test.rb → client/generated/v2.0.1/beneficiary/client_submit_request_must_support_beneficiary_test.rb} +14 -35
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/beneficiary/client_submit_response_must_support_beneficiary_test.rb +59 -0
- data/lib/davinci_pas_test_kit/{generated/v2.0.1/claim_inquiry/client_inquire_request_claim_inquiry_must_support_test.rb → client/generated/v2.0.1/claim_inquiry/client_inquire_request_must_support_claim_inquiry_test.rb} +14 -35
- data/lib/davinci_pas_test_kit/{generated/v2.0.1/claim_update/client_submit_request_claim_update_must_support_test.rb → client/generated/v2.0.1/claim_update/client_submit_request_must_support_claim_update_test.rb} +14 -35
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/claiminquiryresponse/client_inquire_response_must_support_claiminquiryresponse_test.rb +57 -0
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/claimresponse/client_submit_response_must_support_claimresponse_test.rb +59 -0
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/communication_request/client_submit_response_must_support_communication_request_test.rb +42 -0
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/coverage/client_inquire_request_must_support_coverage_test.rb +39 -0
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/coverage/client_submit_request_must_support_coverage_test.rb +39 -0
- data/lib/davinci_pas_test_kit/{generated/v2.0.1/encounter/client_submit_request_encounter_must_support_test.rb → client/generated/v2.0.1/encounter/client_submit_request_must_support_encounter_test.rb} +14 -35
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/insurer/client_inquire_request_must_support_insurer_test.rb +44 -0
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/insurer/client_inquire_response_must_support_insurer_test.rb +44 -0
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/insurer/client_submit_request_must_support_insurer_test.rb +44 -0
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/insurer/client_submit_response_must_support_insurer_test.rb +44 -0
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/pas_client_inquire_must_support_group.rb +48 -0
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/pas_client_inquire_response_must_support_group.rb +79 -0
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/pas_client_submit_must_support_group.rb +58 -0
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/pas_client_submit_response_must_support_group.rb +84 -0
- 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 +37 -0
- 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 +36 -0
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/pas_request_bundle/client_submit_request_must_support_pas_request_bundle_test.rb +37 -0
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/pas_response_bundle/client_submit_response_must_support_pas_response_bundle_test.rb +36 -0
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/practitioner/client_inquire_request_must_support_practitioner_test.rb +37 -0
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/practitioner/client_inquire_response_must_support_practitioner_test.rb +37 -0
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/practitioner/client_submit_request_must_support_practitioner_test.rb +37 -0
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/practitioner/client_submit_response_must_support_practitioner_test.rb +37 -0
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/practitioner_role/client_inquire_request_must_support_practitioner_role_test.rb +33 -0
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/practitioner_role/client_inquire_response_must_support_practitioner_role_test.rb +33 -0
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/practitioner_role/client_submit_request_must_support_practitioner_role_test.rb +33 -0
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/practitioner_role/client_submit_response_must_support_practitioner_role_test.rb +33 -0
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/requestor/client_inquire_request_must_support_requestor_test.rb +47 -0
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/requestor/client_inquire_response_must_support_requestor_test.rb +47 -0
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/requestor/client_submit_request_must_support_requestor_test.rb +47 -0
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/requestor/client_submit_response_must_support_requestor_test.rb +47 -0
- data/lib/davinci_pas_test_kit/{generated/v2.0.1/subscriber/client_inquire_request_subscriber_must_support_test.rb → client/generated/v2.0.1/subscriber/client_inquire_request_must_support_subscriber_test.rb} +14 -35
- data/lib/davinci_pas_test_kit/{generated/v2.0.1/subscriber/client_submit_request_subscriber_must_support_test.rb → client/generated/v2.0.1/subscriber/client_submit_request_must_support_subscriber_test.rb} +14 -35
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/task/client_inquire_response_must_support_task_test.rb +45 -0
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/task/client_submit_response_must_support_task_test.rb +45 -0
- data/lib/davinci_pas_test_kit/client/generated/v2.2.1/beneficiary/client_inquire_response_must_support_beneficiary_test.rb +53 -0
- data/lib/davinci_pas_test_kit/client/generated/v2.2.1/beneficiary/client_submit_response_must_support_beneficiary_test.rb +53 -0
- data/lib/davinci_pas_test_kit/client/generated/v2.2.1/claim_inquiry/client_inquire_request_must_support_claim_inquiry_test.rb +123 -0
- data/lib/davinci_pas_test_kit/client/generated/v2.2.1/claim_update/client_submit_request_must_support_claim_update_test.rb +143 -0
- data/lib/davinci_pas_test_kit/client/generated/v2.2.1/claiminquiryresponse/client_inquire_response_must_support_claiminquiryresponse_test.rb +102 -0
- data/lib/davinci_pas_test_kit/client/generated/v2.2.1/claimresponse/client_submit_response_must_support_claimresponse_test.rb +103 -0
- data/lib/davinci_pas_test_kit/client/generated/v2.2.1/communication_request/client_submit_response_must_support_communication_request_test.rb +42 -0
- data/lib/davinci_pas_test_kit/client/generated/v2.2.1/insurer/client_inquire_response_must_support_insurer_test.rb +47 -0
- data/lib/davinci_pas_test_kit/client/generated/v2.2.1/insurer/client_submit_response_must_support_insurer_test.rb +47 -0
- data/lib/davinci_pas_test_kit/client/generated/v2.2.1/pas_client_inquire_must_support_group.rb +60 -0
- data/lib/davinci_pas_test_kit/client/generated/v2.2.1/pas_client_inquire_response_must_support_group.rb +79 -0
- data/lib/davinci_pas_test_kit/client/generated/v2.2.1/pas_client_submit_must_support_group.rb +89 -0
- data/lib/davinci_pas_test_kit/client/generated/v2.2.1/pas_client_submit_response_must_support_group.rb +84 -0
- 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 +38 -0
- data/lib/davinci_pas_test_kit/client/generated/v2.2.1/pas_response_bundle/client_submit_response_must_support_pas_response_bundle_test.rb +39 -0
- data/lib/davinci_pas_test_kit/client/generated/v2.2.1/practitioner/client_inquire_response_must_support_practitioner_test.rb +44 -0
- data/lib/davinci_pas_test_kit/client/generated/v2.2.1/practitioner/client_submit_response_must_support_practitioner_test.rb +44 -0
- data/lib/davinci_pas_test_kit/client/generated/v2.2.1/practitioner_role/client_inquire_response_must_support_practitioner_role_test.rb +40 -0
- data/lib/davinci_pas_test_kit/client/generated/v2.2.1/practitioner_role/client_submit_response_must_support_practitioner_role_test.rb +40 -0
- data/lib/davinci_pas_test_kit/client/generated/v2.2.1/requestor/client_inquire_response_must_support_requestor_test.rb +50 -0
- data/lib/davinci_pas_test_kit/client/generated/v2.2.1/requestor/client_submit_response_must_support_requestor_test.rb +50 -0
- data/lib/davinci_pas_test_kit/client/generated/v2.2.1/task/client_inquire_response_must_support_task_test.rb +55 -0
- data/lib/davinci_pas_test_kit/client/generated/v2.2.1/task/client_submit_response_must_support_task_test.rb +55 -0
- data/lib/davinci_pas_test_kit/{jobs → client/jobs}/send_pas_subscription_notification.rb +12 -7
- data/lib/davinci_pas_test_kit/{jobs → client/jobs}/send_subscription_handshake.rb +1 -1
- data/lib/davinci_pas_test_kit/client/metadata/mock_pas_server.rb +26 -0
- data/lib/davinci_pas_test_kit/client/metadata/pas_server_capability_statement.json +60 -0
- data/lib/davinci_pas_test_kit/client/pas_client_options.rb +23 -0
- data/lib/davinci_pas_test_kit/client/pas_client_subscription_pas_conformance_test.rb +33 -0
- data/lib/davinci_pas_test_kit/client/registration/abstract_configuration_other_display_test.rb +45 -0
- data/lib/davinci_pas_test_kit/client/registration/abstract_configuration_smart_display_test.rb +37 -0
- data/lib/davinci_pas_test_kit/client/registration/abstract_configuration_udap_display_test.rb +37 -0
- data/lib/davinci_pas_test_kit/client/registration/abstract_other_auth_attest_test.rb +39 -0
- data/lib/davinci_pas_test_kit/{response_generator.rb → client/response_generator.rb} +197 -61
- data/lib/davinci_pas_test_kit/{session_identification.rb → client/session_identification.rb} +1 -2
- data/lib/davinci_pas_test_kit/client/user_input_response.rb +64 -0
- data/lib/davinci_pas_test_kit/{client_suite.rb → client/v2.0.1/client_suite.rb} +29 -16
- data/lib/davinci_pas_test_kit/client/v2.0.1/must_support/pas_client_gather_must_support_test.rb +12 -0
- data/lib/davinci_pas_test_kit/{custom_groups/v2.0.1/must_support/pas_client_must_support_requirement_test.rb → client/v2.0.1/must_support/pas_client_must_support_request_profiles_test.rb} +12 -46
- data/lib/davinci_pas_test_kit/{custom_groups → client}/v2.0.1/pas_client_approval_group.rb +5 -5
- data/lib/davinci_pas_test_kit/{custom_groups → client}/v2.0.1/pas_client_auth_smart_group.rb +1 -2
- data/lib/davinci_pas_test_kit/{custom_groups → client}/v2.0.1/pas_client_auth_udap_group.rb +1 -2
- data/lib/davinci_pas_test_kit/{custom_groups → client}/v2.0.1/pas_client_denial_group.rb +6 -6
- data/lib/davinci_pas_test_kit/client/v2.0.1/pas_client_must_support_group.rb +96 -0
- data/lib/davinci_pas_test_kit/{custom_groups → client}/v2.0.1/pas_client_pended_group.rb +12 -10
- data/lib/davinci_pas_test_kit/{custom_groups → client}/v2.0.1/pas_client_registration_group.rb +5 -6
- data/lib/davinci_pas_test_kit/{custom_groups → client}/v2.0.1/pas_client_subscription_setup_group.rb +6 -3
- data/lib/davinci_pas_test_kit/client/v2.0.1/registration/configuration_other_display_test.rb +12 -0
- data/lib/davinci_pas_test_kit/client/v2.0.1/registration/configuration_smart_display_test.rb +12 -0
- data/lib/davinci_pas_test_kit/client/v2.0.1/registration/configuration_udap_display_test.rb +12 -0
- data/lib/davinci_pas_test_kit/client/v2.0.1/registration/other_auth_attest_test.rb +12 -0
- data/lib/davinci_pas_test_kit/client/v2.0.1/subscription/pas_client_subscription_create_test.rb +15 -0
- data/lib/davinci_pas_test_kit/client/v2.0.1/urls.rb +15 -0
- data/lib/davinci_pas_test_kit/client/v2.0.1/workflows/pas_client_approval_submit_test.rb +15 -0
- data/lib/davinci_pas_test_kit/client/v2.0.1/workflows/pas_client_denial_submit_test.rb +15 -0
- data/lib/davinci_pas_test_kit/{custom_groups/v2.0.1/client_tests → client/v2.0.1/workflows}/pas_client_inquire_request_bundle_validation_test.rb +1 -3
- data/lib/davinci_pas_test_kit/{custom_groups/v2.0.1/client_tests → client/v2.0.1/workflows}/pas_client_inquire_response_bundle_validation_test.rb +18 -6
- data/lib/davinci_pas_test_kit/{custom_groups/v2.0.1/client_tests → client/v2.0.1/workflows}/pas_client_pended_submit_test.rb +12 -8
- data/lib/davinci_pas_test_kit/{custom_groups/v2.0.1/client_tests → client/v2.0.1/workflows}/pas_client_request_bundle_validation_test.rb +1 -3
- data/lib/davinci_pas_test_kit/client/v2.0.1/workflows/pas_client_response_attest.rb +12 -0
- data/lib/davinci_pas_test_kit/{custom_groups/v2.0.1/client_tests → client/v2.0.1/workflows}/pas_client_response_bundle_validation_test.rb +10 -5
- data/lib/davinci_pas_test_kit/client/v2.2.1/client_suite.rb +240 -0
- data/lib/davinci_pas_test_kit/client/v2.2.1/error_handling/pas_client_operation_failure_submit_test.rb +76 -0
- data/lib/davinci_pas_test_kit/client/v2.2.1/error_handling/pas_client_operation_outcome_validation_test.rb +38 -0
- data/lib/davinci_pas_test_kit/client/v2.2.1/error_handling/pas_client_processing_error_response_validation_test.rb +55 -0
- data/lib/davinci_pas_test_kit/client/v2.2.1/error_handling/pas_client_processing_error_submit_test.rb +67 -0
- data/lib/davinci_pas_test_kit/client/v2.2.1/must_support/must_support_with_attestation_option.rb +214 -0
- data/lib/davinci_pas_test_kit/client/v2.2.1/must_support/pas_client_gather_must_support_test.rb +12 -0
- data/lib/davinci_pas_test_kit/client/v2.2.1/pas_client_approval_group.rb +40 -0
- data/lib/davinci_pas_test_kit/client/v2.2.1/pas_client_auth_smart_group.rb +31 -0
- data/lib/davinci_pas_test_kit/client/v2.2.1/pas_client_auth_udap_group.rb +30 -0
- data/lib/davinci_pas_test_kit/client/v2.2.1/pas_client_claim_updates_group.rb +112 -0
- data/lib/davinci_pas_test_kit/client/v2.2.1/pas_client_denial_group.rb +47 -0
- data/lib/davinci_pas_test_kit/client/v2.2.1/pas_client_error_handling_group.rb +20 -0
- data/lib/davinci_pas_test_kit/client/v2.2.1/pas_client_modification_group.rb +52 -0
- data/lib/davinci_pas_test_kit/client/v2.2.1/pas_client_must_support_group.rb +96 -0
- data/lib/davinci_pas_test_kit/client/v2.2.1/pas_client_operation_failure_group.rb +45 -0
- data/lib/davinci_pas_test_kit/client/v2.2.1/pas_client_pended_group.rb +125 -0
- data/lib/davinci_pas_test_kit/client/v2.2.1/pas_client_processing_error_group.rb +44 -0
- data/lib/davinci_pas_test_kit/client/v2.2.1/pas_client_registration_group.rb +65 -0
- data/lib/davinci_pas_test_kit/client/v2.2.1/pas_client_subscription_setup_group.rb +31 -0
- data/lib/davinci_pas_test_kit/client/v2.2.1/pas_client_workflows_group.rb +25 -0
- data/lib/davinci_pas_test_kit/client/v2.2.1/registration/configuration_other_display_test.rb +12 -0
- data/lib/davinci_pas_test_kit/client/v2.2.1/registration/configuration_smart_display_test.rb +12 -0
- data/lib/davinci_pas_test_kit/client/v2.2.1/registration/configuration_udap_display_test.rb +12 -0
- data/lib/davinci_pas_test_kit/client/v2.2.1/registration/other_auth_attest_test.rb +12 -0
- data/lib/davinci_pas_test_kit/client/v2.2.1/subscription/pas_client_subscription_create_test.rb +14 -0
- data/lib/davinci_pas_test_kit/client/v2.2.1/urls.rb +15 -0
- data/lib/davinci_pas_test_kit/client/v2.2.1/workflows/pas_client_approval_submit_test.rb +12 -0
- data/lib/davinci_pas_test_kit/client/v2.2.1/workflows/pas_client_claim_update_cancel_request_test.rb +33 -0
- data/lib/davinci_pas_test_kit/client/v2.2.1/workflows/pas_client_claim_update_cancelled_entries_test.rb +50 -0
- data/lib/davinci_pas_test_kit/client/v2.2.1/workflows/pas_client_claim_update_cancelled_items_certtype_test.rb +47 -0
- data/lib/davinci_pas_test_kit/client/v2.2.1/workflows/pas_client_claim_update_changed_entries_test.rb +100 -0
- data/lib/davinci_pas_test_kit/client/v2.2.1/workflows/pas_client_claim_update_entries_preserved_test.rb +51 -0
- data/lib/davinci_pas_test_kit/client/v2.2.1/workflows/pas_client_claim_update_grandparent_excluded_test.rb +52 -0
- data/lib/davinci_pas_test_kit/client/v2.2.1/workflows/pas_client_claim_update_referenced_claim_test.rb +46 -0
- data/lib/davinci_pas_test_kit/client/v2.2.1/workflows/pas_client_claim_update_referenced_resources_test.rb +43 -0
- data/lib/davinci_pas_test_kit/client/v2.2.1/workflows/pas_client_claim_update_submit_tests.rb +238 -0
- data/lib/davinci_pas_test_kit/client/v2.2.1/workflows/pas_client_claim_update_validation_utils.rb +183 -0
- data/lib/davinci_pas_test_kit/client/v2.2.1/workflows/pas_client_denial_submit_test.rb +12 -0
- data/lib/davinci_pas_test_kit/client/v2.2.1/workflows/pas_client_inquire_request_bundle_validation_test.rb +55 -0
- data/lib/davinci_pas_test_kit/client/v2.2.1/workflows/pas_client_inquire_response_bundle_validation_test.rb +78 -0
- data/lib/davinci_pas_test_kit/client/v2.2.1/workflows/pas_client_modification_submit_test.rb +12 -0
- data/lib/davinci_pas_test_kit/client/v2.2.1/workflows/pas_client_modification_verification_test.rb +101 -0
- data/lib/davinci_pas_test_kit/client/v2.2.1/workflows/pas_client_pended_submit_test.rb +148 -0
- data/lib/davinci_pas_test_kit/client/v2.2.1/workflows/pas_client_request_bundle_validation_test.rb +56 -0
- data/lib/davinci_pas_test_kit/client/v2.2.1/workflows/pas_client_response_attest.rb +12 -0
- data/lib/davinci_pas_test_kit/client/v2.2.1/workflows/pas_client_response_bundle_validation_test.rb +84 -0
- data/lib/davinci_pas_test_kit/cross_suite/base_urls.rb +27 -0
- data/lib/davinci_pas_test_kit/cross_suite/fhirpath_utils.rb +55 -0
- data/lib/davinci_pas_test_kit/{generated → cross_suite/generated}/v2.0.1/beneficiary/metadata.yml +16 -13
- data/lib/davinci_pas_test_kit/{generated → cross_suite/generated}/v2.0.1/claim_inquiry/metadata.yml +4 -21
- data/lib/davinci_pas_test_kit/{generated → cross_suite/generated}/v2.0.1/claim_update/metadata.yml +4 -22
- data/lib/davinci_pas_test_kit/{generated → cross_suite/generated}/v2.0.1/claiminquiryresponse/metadata.yml +4 -10
- data/lib/davinci_pas_test_kit/{generated → cross_suite/generated}/v2.0.1/claimresponse/metadata.yml +4 -13
- data/lib/davinci_pas_test_kit/{generated → cross_suite/generated}/v2.0.1/communication_request/metadata.yml +4 -13
- data/lib/davinci_pas_test_kit/{generated → cross_suite/generated}/v2.0.1/coverage/metadata.yml +8 -12
- data/lib/davinci_pas_test_kit/{generated → cross_suite/generated}/v2.0.1/device_request/metadata.yml +0 -6
- data/lib/davinci_pas_test_kit/{generated → cross_suite/generated}/v2.0.1/encounter/metadata.yml +4 -5
- data/lib/davinci_pas_test_kit/{generated → cross_suite/generated}/v2.0.1/insurer/metadata.yml +16 -13
- data/lib/davinci_pas_test_kit/{generated → cross_suite/generated}/v2.0.1/medication_request/metadata.yml +0 -6
- data/lib/davinci_pas_test_kit/{generated → cross_suite/generated}/v2.0.1/metadata.yml +1 -133
- data/lib/davinci_pas_test_kit/{generated → cross_suite/generated}/v2.0.1/nutrition_order/metadata.yml +0 -6
- data/lib/davinci_pas_test_kit/{generated → cross_suite/generated}/v2.0.1/pas_inquiry_request_bundle/metadata.yml +4 -7
- data/lib/davinci_pas_test_kit/{generated → cross_suite/generated}/v2.0.1/pas_inquiry_response_bundle/metadata.yml +4 -5
- data/lib/davinci_pas_test_kit/{generated → cross_suite/generated}/v2.0.1/pas_request_bundle/metadata.yml +4 -7
- data/lib/davinci_pas_test_kit/{generated → cross_suite/generated}/v2.0.1/pas_response_bundle/metadata.yml +4 -5
- data/lib/davinci_pas_test_kit/{generated → cross_suite/generated}/v2.0.1/practitioner/metadata.yml +16 -13
- data/lib/davinci_pas_test_kit/{generated → cross_suite/generated}/v2.0.1/practitioner_role/metadata.yml +16 -19
- data/lib/davinci_pas_test_kit/{generated → cross_suite/generated}/v2.0.1/requestor/metadata.yml +16 -13
- data/lib/davinci_pas_test_kit/{generated → cross_suite/generated}/v2.0.1/service_request/metadata.yml +0 -6
- data/lib/davinci_pas_test_kit/{generated → cross_suite/generated}/v2.0.1/subscriber/metadata.yml +8 -9
- data/lib/davinci_pas_test_kit/{generated → cross_suite/generated}/v2.0.1/task/metadata.yml +8 -5
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/beneficiary/metadata.yml +150 -0
- data/lib/davinci_pas_test_kit/{generated/v2.0.1/claim → cross_suite/generated/v2.2.1/claim_inquiry}/metadata.yml +154 -203
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/claim_update/metadata.yml +733 -0
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/claiminquiryresponse/metadata.yml +456 -0
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/claimresponse/metadata.yml +461 -0
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/communication_request/metadata.yml +120 -0
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/coverage/metadata.yml +163 -0
- data/lib/davinci_pas_test_kit/{custom_groups/v2.0.1/must_support/device_request_metadata.yml → cross_suite/generated/v2.2.1/device_request/metadata.yml} +32 -33
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/encounter/metadata.yml +237 -0
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/insurer/metadata.yml +111 -0
- data/lib/davinci_pas_test_kit/{custom_groups/v2.0.1/must_support/medication_request_metadata.yml → cross_suite/generated/v2.2.1/medication_request/metadata.yml} +59 -26
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/metadata.yml +6544 -0
- data/lib/davinci_pas_test_kit/{custom_groups/v2.0.1/must_support/nutrition_order_metadata.yml → cross_suite/generated/v2.2.1/nutrition_order/metadata.yml} +13 -14
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/pas_inquiry_request_bundle/metadata.yml +74 -0
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/pas_inquiry_response_bundle/metadata.yml +70 -0
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/pas_request_bundle/metadata.yml +74 -0
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/pas_response_bundle/metadata.yml +72 -0
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/practitioner/metadata.yml +101 -0
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/practitioner_role/metadata.yml +101 -0
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/requestor/metadata.yml +114 -0
- data/lib/davinci_pas_test_kit/{custom_groups/v2.0.1/must_support/service_request_metadata.yml → cross_suite/generated/v2.2.1/service_request/metadata.yml} +39 -45
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/subscriber/metadata.yml +136 -0
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/task/metadata.yml +237 -0
- data/lib/davinci_pas_test_kit/cross_suite/must_support/must_support_data_gathering.rb +111 -0
- data/lib/davinci_pas_test_kit/cross_suite/must_support/must_support_request_type_test.rb +75 -0
- data/lib/davinci_pas_test_kit/cross_suite/must_support/must_support_test.rb +67 -0
- data/lib/davinci_pas_test_kit/{pas_bundle_validation.rb → cross_suite/pas_bundle_validation.rb} +380 -53
- data/lib/davinci_pas_test_kit/cross_suite/pas_constants.rb +31 -0
- data/lib/davinci_pas_test_kit/cross_suite/pas_notification_verification.rb +120 -0
- data/lib/davinci_pas_test_kit/cross_suite/pas_subscription_verification.rb +72 -0
- data/lib/davinci_pas_test_kit/cross_suite/response_selection_utils.rb +88 -0
- data/lib/davinci_pas_test_kit/cross_suite/tags.rb +35 -0
- data/lib/davinci_pas_test_kit/cross_suite/validation_test.rb +25 -0
- data/lib/davinci_pas_test_kit/{validator_suppressions.rb → cross_suite/validator_suppressions.rb} +23 -1
- data/lib/davinci_pas_test_kit/ext/inferno_core/runnable.rb +22 -0
- data/lib/davinci_pas_test_kit/generator/client_must_support_group_generator.rb +230 -0
- data/lib/davinci_pas_test_kit/generator/descriptions.rb +95 -0
- data/lib/davinci_pas_test_kit/generator/ig_metadata.rb +45 -38
- data/lib/davinci_pas_test_kit/generator/ig_metadata_extractor.rb +3 -5
- data/lib/davinci_pas_test_kit/generator/{must_support_check_profiles.rb → must_support_target_profiles.rb} +12 -12
- data/lib/davinci_pas_test_kit/generator/must_support_test_generator.rb +63 -83
- data/lib/davinci_pas_test_kit/generator/pas_must_support_metadata_extractor.rb +129 -0
- data/lib/davinci_pas_test_kit/generator/profile_metadata.rb +86 -0
- data/lib/davinci_pas_test_kit/generator/{group_metadata_extractor.rb → profile_metadata_extractor.rb} +11 -78
- data/lib/davinci_pas_test_kit/generator/server_must_support_group_generator.rb +166 -0
- data/lib/davinci_pas_test_kit/generator/{suite_generator.rb → server_suite_generator.rb} +32 -5
- data/lib/davinci_pas_test_kit/generator/templates/client_must_support_group.rb.erb +80 -0
- data/lib/davinci_pas_test_kit/generator/templates/client_must_support_response_group.rb.erb +43 -0
- data/lib/davinci_pas_test_kit/generator/templates/must_support.rb.erb +14 -35
- data/lib/davinci_pas_test_kit/generator/templates/server_must_support_group.rb.erb +121 -0
- data/lib/davinci_pas_test_kit/generator/templates/{suite.rb.erb → server_suite.rb.erb} +15 -23
- data/lib/davinci_pas_test_kit/generator/templates/use_case_group.rb.erb +181 -0
- data/lib/davinci_pas_test_kit/generator/use_case_group_generator.rb +227 -0
- data/lib/davinci_pas_test_kit/generator.rb +46 -26
- data/lib/davinci_pas_test_kit/igs/davinci_pas_2.2.1.tgz +0 -0
- data/lib/davinci_pas_test_kit/metadata.rb +21 -55
- data/lib/davinci_pas_test_kit/parameters_helper.rb +18 -0
- data/lib/davinci_pas_test_kit/pas_notification_conformance_test.rb +40 -0
- data/lib/davinci_pas_test_kit/requirements/davinci_pas_test_kit_requirements.csv +121 -0
- data/lib/davinci_pas_test_kit/requirements/generated/davinci_pas_client_suite_v201_requirements_coverage.csv +22 -22
- data/lib/davinci_pas_test_kit/requirements/generated/davinci_pas_client_suite_v221_requirements_coverage.csv +66 -0
- data/lib/davinci_pas_test_kit/requirements/generated/davinci_pas_server_suite_v201_requirements_coverage.csv +42 -42
- data/lib/davinci_pas_test_kit/requirements/generated/davinci_pas_server_suite_v221_requirements_coverage.csv +212 -0
- 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/{custom_groups/v2.0.1/notification/pas_subscription_notification_test.rb → server/abstract_pas_subscription_notification_wait_test.rb} +13 -21
- data/lib/davinci_pas_test_kit/server/claim_inquire_operation_test.rb +31 -0
- data/lib/davinci_pas_test_kit/server/claim_operation_logic.rb +67 -0
- data/lib/davinci_pas_test_kit/server/claim_submit_operation_test.rb +32 -0
- data/lib/davinci_pas_test_kit/{generated/v2.0.1/beneficiary/server_submit_request_beneficiary_must_support_test.rb → server/generated/v2.0.1/beneficiary/server_inquire_request_must_support_beneficiary_test.rb} +14 -35
- data/lib/davinci_pas_test_kit/{generated/v2.0.1/beneficiary/server_submit_response_beneficiary_must_support_test.rb → server/generated/v2.0.1/beneficiary/server_inquire_response_must_support_beneficiary_test.rb} +16 -36
- data/lib/davinci_pas_test_kit/{generated/v2.0.1/beneficiary/server_inquire_request_beneficiary_must_support_test.rb → server/generated/v2.0.1/beneficiary/server_submit_request_must_support_beneficiary_test.rb} +14 -35
- data/lib/davinci_pas_test_kit/{generated/v2.0.1/beneficiary/server_inquire_response_beneficiary_must_support_test.rb → server/generated/v2.0.1/beneficiary/server_submit_response_must_support_beneficiary_test.rb} +16 -36
- data/lib/davinci_pas_test_kit/{generated/v2.0.1/claim_inquiry/server_inquire_request_claim_inquiry_must_support_test.rb → server/generated/v2.0.1/claim_inquiry/server_inquire_request_must_support_claim_inquiry_test.rb} +14 -35
- data/lib/davinci_pas_test_kit/{generated/v2.0.1/claim_update/server_submit_request_claim_update_must_support_test.rb → server/generated/v2.0.1/claim_update/server_submit_request_must_support_claim_update_test.rb} +14 -35
- data/lib/davinci_pas_test_kit/{generated/v2.0.1/claiminquiryresponse/server_inquire_response_claiminquiryresponse_must_support_test.rb → server/generated/v2.0.1/claiminquiryresponse/server_inquire_response_must_support_claiminquiryresponse_test.rb} +14 -35
- data/lib/davinci_pas_test_kit/{generated/v2.0.1/claimresponse/server_submit_response_claimresponse_must_support_test.rb → server/generated/v2.0.1/claimresponse/server_submit_response_must_support_claimresponse_test.rb} +14 -35
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/communication_request/server_submit_response_must_support_communication_request_test.rb +43 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/coverage/server_inquire_request_must_support_coverage_test.rb +41 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/coverage/server_submit_request_must_support_coverage_test.rb +41 -0
- data/lib/davinci_pas_test_kit/{generated/v2.0.1/encounter/server_submit_request_encounter_must_support_test.rb → server/generated/v2.0.1/encounter/server_submit_request_must_support_encounter_test.rb} +14 -35
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/insurer/server_inquire_request_must_support_insurer_test.rb +46 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/insurer/server_inquire_response_must_support_insurer_test.rb +45 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/insurer/server_submit_request_must_support_insurer_test.rb +46 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/insurer/server_submit_response_must_support_insurer_test.rb +45 -0
- 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 +39 -0
- 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 +37 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/pas_request_bundle/server_submit_request_must_support_pas_request_bundle_test.rb +39 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/pas_response_bundle/server_submit_response_must_support_pas_response_bundle_test.rb +37 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/pas_server_approval_use_case_group.rb +145 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/pas_server_denial_use_case_group.rb +145 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/pas_server_must_support_group.rb +442 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/pas_server_pended_use_case_group.rb +280 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/practitioner/server_inquire_request_must_support_practitioner_test.rb +39 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/practitioner/server_inquire_response_must_support_practitioner_test.rb +38 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/practitioner/server_submit_request_must_support_practitioner_test.rb +39 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/practitioner/server_submit_response_must_support_practitioner_test.rb +38 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/practitioner_role/server_inquire_request_must_support_practitioner_role_test.rb +35 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/practitioner_role/server_inquire_response_must_support_practitioner_role_test.rb +34 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/practitioner_role/server_submit_request_must_support_practitioner_role_test.rb +35 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/practitioner_role/server_submit_response_must_support_practitioner_role_test.rb +34 -0
- data/lib/davinci_pas_test_kit/{generated/v2.0.1/requestor/server_submit_request_requestor_must_support_test.rb → server/generated/v2.0.1/requestor/server_inquire_request_must_support_requestor_test.rb} +14 -35
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/requestor/server_inquire_response_must_support_requestor_test.rb +48 -0
- data/lib/davinci_pas_test_kit/{generated/v2.0.1/requestor/server_inquire_request_requestor_must_support_test.rb → server/generated/v2.0.1/requestor/server_submit_request_must_support_requestor_test.rb} +14 -35
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/requestor/server_submit_response_must_support_requestor_test.rb +48 -0
- data/lib/davinci_pas_test_kit/{generated → server/generated}/v2.0.1/server_suite.rb +10 -20
- data/lib/davinci_pas_test_kit/{generated/v2.0.1/subscriber/server_inquire_request_subscriber_must_support_test.rb → server/generated/v2.0.1/subscriber/server_inquire_request_must_support_subscriber_test.rb} +14 -35
- data/lib/davinci_pas_test_kit/{generated/v2.0.1/subscriber/server_submit_request_subscriber_must_support_test.rb → server/generated/v2.0.1/subscriber/server_submit_request_must_support_subscriber_test.rb} +14 -35
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/task/server_inquire_response_must_support_task_test.rb +46 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/task/server_submit_response_must_support_task_test.rb +46 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/beneficiary/server_inquire_request_must_support_beneficiary_test.rb +55 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/beneficiary/server_inquire_response_must_support_beneficiary_test.rb +53 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/beneficiary/server_submit_request_must_support_beneficiary_test.rb +55 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/beneficiary/server_submit_response_must_support_beneficiary_test.rb +53 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/claim_inquiry/server_inquire_request_must_support_claim_inquiry_test.rb +125 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/claim_update/server_submit_request_must_support_claim_update_test.rb +145 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/claiminquiryresponse/server_inquire_response_must_support_claiminquiryresponse_test.rb +102 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/claimresponse/server_submit_response_must_support_claimresponse_test.rb +103 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/communication_request/server_submit_response_must_support_communication_request_test.rb +42 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/coverage/server_inquire_request_must_support_coverage_test.rb +52 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/coverage/server_submit_request_must_support_coverage_test.rb +52 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/encounter/server_submit_request_must_support_encounter_test.rb +58 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/insurer/server_inquire_request_must_support_insurer_test.rb +49 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/insurer/server_inquire_response_must_support_insurer_test.rb +47 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/insurer/server_submit_request_must_support_insurer_test.rb +49 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/insurer/server_submit_response_must_support_insurer_test.rb +47 -0
- 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 +41 -0
- 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 +38 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/pas_request_bundle/server_submit_request_must_support_pas_request_bundle_test.rb +41 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/pas_response_bundle/server_submit_response_must_support_pas_response_bundle_test.rb +39 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/pas_server_approval_use_case_group.rb +125 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/pas_server_denial_use_case_group.rb +125 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/pas_server_must_support_group.rb +403 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/pas_server_pended_use_case_group.rb +150 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/practitioner/server_inquire_request_must_support_practitioner_test.rb +46 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/practitioner/server_inquire_response_must_support_practitioner_test.rb +44 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/practitioner/server_submit_request_must_support_practitioner_test.rb +46 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/practitioner/server_submit_response_must_support_practitioner_test.rb +44 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/practitioner_role/server_inquire_request_must_support_practitioner_role_test.rb +42 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/practitioner_role/server_inquire_response_must_support_practitioner_role_test.rb +40 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/practitioner_role/server_submit_request_must_support_practitioner_role_test.rb +42 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/practitioner_role/server_submit_response_must_support_practitioner_role_test.rb +40 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/requestor/server_inquire_request_must_support_requestor_test.rb +52 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/requestor/server_inquire_response_must_support_requestor_test.rb +50 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/requestor/server_submit_request_must_support_requestor_test.rb +52 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/requestor/server_submit_response_must_support_requestor_test.rb +50 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/server_suite.rb +148 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/subscriber/server_inquire_request_must_support_subscriber_test.rb +54 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/subscriber/server_submit_request_must_support_subscriber_test.rb +54 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/task/server_inquire_response_must_support_task_test.rb +55 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/task/server_submit_response_must_support_task_test.rb +55 -0
- data/lib/davinci_pas_test_kit/server/pas_claim_response_decision_test.rb +73 -0
- data/lib/davinci_pas_test_kit/server/server_request_bundle_validation_test.rb +64 -0
- data/lib/davinci_pas_test_kit/server/server_response_bundle_validation_test.rb +76 -0
- data/lib/davinci_pas_test_kit/{custom_groups → server}/v2.0.1/error_tests/pas_inquiry_error_test.rb +2 -2
- data/lib/davinci_pas_test_kit/{custom_groups → server}/v2.0.1/error_tests/pas_submission_error_test.rb +2 -2
- data/lib/davinci_pas_test_kit/{custom_groups/v2.0.1/must_support/pas_server_must_support_requirement_test.rb → server/v2.0.1/must_support/pas_server_must_support_request_profiles_test.rb} +12 -45
- data/lib/davinci_pas_test_kit/{custom_groups → server}/v2.0.1/pas_error_group.rb +3 -3
- data/lib/davinci_pas_test_kit/{custom_groups → server}/v2.0.1/pas_server_subscription_input_conformance.rb +4 -3
- data/lib/davinci_pas_test_kit/server/v2.0.1/pas_server_subscription_notification_wait_test.rb +12 -0
- data/lib/davinci_pas_test_kit/{custom_groups → server}/v2.0.1/pas_server_subscription_setup.rb +5 -3
- data/lib/davinci_pas_test_kit/server/v2.0.1/server_urls.rb +13 -0
- data/lib/davinci_pas_test_kit/server/v2.2.1/claim_updates/server_claim_update_response_tests.rb +143 -0
- data/lib/davinci_pas_test_kit/server/v2.2.1/error_tests/nonconformant_pas_bundle.json +16 -0
- data/lib/davinci_pas_test_kit/server/v2.2.1/error_tests/pas_inquiry_error_test.rb +38 -0
- data/lib/davinci_pas_test_kit/server/v2.2.1/error_tests/pas_submission_error_test.rb +56 -0
- data/lib/davinci_pas_test_kit/server/v2.2.1/must_support/pas_server_must_support_request_profiles_test.rb +86 -0
- data/lib/davinci_pas_test_kit/server/v2.2.1/pas_error_group.rb +20 -0
- data/lib/davinci_pas_test_kit/server/v2.2.1/pas_server_claim_updates_group.rb +104 -0
- data/lib/davinci_pas_test_kit/server/v2.2.1/pas_server_subscription_input_conformance.rb +48 -0
- data/lib/davinci_pas_test_kit/server/v2.2.1/pas_server_subscription_notification_wait_test.rb +12 -0
- data/lib/davinci_pas_test_kit/server/v2.2.1/pas_server_subscription_setup.rb +42 -0
- data/lib/davinci_pas_test_kit/server/v2.2.1/server_urls.rb +13 -0
- data/lib/davinci_pas_test_kit/version.rb +2 -2
- data/lib/davinci_pas_test_kit.rb +5 -2
- metadata +364 -186
- data/config/presets/pas_server_subscription_creation_against_pas_client.json +0 -32
- data/lib/davinci_pas_test_kit/custom_groups/v2.0.1/claim_response_decision/pas_claim_response_decision_test.rb +0 -43
- data/lib/davinci_pas_test_kit/custom_groups/v2.0.1/client_registration/configuration_other_display_test.rb +0 -46
- data/lib/davinci_pas_test_kit/custom_groups/v2.0.1/client_registration/configuration_smart_display_test.rb +0 -37
- data/lib/davinci_pas_test_kit/custom_groups/v2.0.1/client_registration/configuration_udap_display_test.rb +0 -37
- data/lib/davinci_pas_test_kit/custom_groups/v2.0.1/client_registration/other_auth_attest_test.rb +0 -36
- data/lib/davinci_pas_test_kit/custom_groups/v2.0.1/client_tests/pas_client_approval_submit_test.rb +0 -80
- data/lib/davinci_pas_test_kit/custom_groups/v2.0.1/client_tests/pas_client_denial_submit_test.rb +0 -79
- data/lib/davinci_pas_test_kit/custom_groups/v2.0.1/client_tests/pas_client_inquire_must_support_test.rb +0 -63
- data/lib/davinci_pas_test_kit/custom_groups/v2.0.1/client_tests/pas_client_response_attest.rb +0 -52
- data/lib/davinci_pas_test_kit/custom_groups/v2.0.1/client_tests/pas_client_submit_must_support_test.rb +0 -72
- data/lib/davinci_pas_test_kit/custom_groups/v2.0.1/client_tests/pas_client_subscription_create_test.rb +0 -62
- data/lib/davinci_pas_test_kit/custom_groups/v2.0.1/client_tests/pas_client_subscription_pas_conformance_test.rb +0 -30
- data/lib/davinci_pas_test_kit/custom_groups/v2.0.1/pas_client_must_support_group.rb +0 -29
- data/lib/davinci_pas_test_kit/custom_groups/v2.0.1/pas_client_options.rb +0 -25
- data/lib/davinci_pas_test_kit/endpoints/claim_endpoint.rb +0 -157
- data/lib/davinci_pas_test_kit/fhir_resource_navigation.rb +0 -72
- data/lib/davinci_pas_test_kit/generated/v2.0.1/claim/claim_operation_test.rb +0 -67
- data/lib/davinci_pas_test_kit/generated/v2.0.1/claim_inquiry/claim_inquiry_operation_test.rb +0 -56
- data/lib/davinci_pas_test_kit/generated/v2.0.1/communication_request/server_submit_response_communication_request_must_support_test.rb +0 -63
- data/lib/davinci_pas_test_kit/generated/v2.0.1/coverage/client_inquire_request_coverage_must_support_test.rb +0 -60
- data/lib/davinci_pas_test_kit/generated/v2.0.1/coverage/client_submit_request_coverage_must_support_test.rb +0 -60
- data/lib/davinci_pas_test_kit/generated/v2.0.1/coverage/server_inquire_request_coverage_must_support_test.rb +0 -62
- data/lib/davinci_pas_test_kit/generated/v2.0.1/coverage/server_submit_request_coverage_must_support_test.rb +0 -62
- data/lib/davinci_pas_test_kit/generated/v2.0.1/device_request/client_submit_request_device_request_must_support_test.rb +0 -56
- data/lib/davinci_pas_test_kit/generated/v2.0.1/device_request/server_submit_request_device_request_must_support_test.rb +0 -58
- data/lib/davinci_pas_test_kit/generated/v2.0.1/insurer/client_inquire_request_insurer_must_support_test.rb +0 -65
- data/lib/davinci_pas_test_kit/generated/v2.0.1/insurer/client_submit_request_insurer_must_support_test.rb +0 -65
- data/lib/davinci_pas_test_kit/generated/v2.0.1/insurer/server_inquire_request_insurer_must_support_test.rb +0 -67
- data/lib/davinci_pas_test_kit/generated/v2.0.1/insurer/server_inquire_response_insurer_must_support_test.rb +0 -65
- data/lib/davinci_pas_test_kit/generated/v2.0.1/insurer/server_submit_request_insurer_must_support_test.rb +0 -67
- data/lib/davinci_pas_test_kit/generated/v2.0.1/insurer/server_submit_response_insurer_must_support_test.rb +0 -65
- data/lib/davinci_pas_test_kit/generated/v2.0.1/medication_request/client_submit_request_medication_request_must_support_test.rb +0 -66
- data/lib/davinci_pas_test_kit/generated/v2.0.1/medication_request/server_submit_request_medication_request_must_support_test.rb +0 -68
- data/lib/davinci_pas_test_kit/generated/v2.0.1/nutrition_order/client_submit_request_nutrition_order_must_support_test.rb +0 -58
- data/lib/davinci_pas_test_kit/generated/v2.0.1/nutrition_order/server_submit_request_nutrition_order_must_support_test.rb +0 -60
- data/lib/davinci_pas_test_kit/generated/v2.0.1/pas_client_inquiry_must_support_use_case_group.rb +0 -51
- data/lib/davinci_pas_test_kit/generated/v2.0.1/pas_client_submit_must_support_use_case_group.rb +0 -61
- data/lib/davinci_pas_test_kit/generated/v2.0.1/pas_inquiry_request_bundle/client_inquire_request_pas_inquiry_request_bundle_must_support_test.rb +0 -58
- data/lib/davinci_pas_test_kit/generated/v2.0.1/pas_inquiry_request_bundle/server_inquire_request_pas_inquiry_request_bundle_must_support_test.rb +0 -60
- data/lib/davinci_pas_test_kit/generated/v2.0.1/pas_inquiry_request_bundle/server_pas_inquiry_request_bundle_validation_test.rb +0 -95
- data/lib/davinci_pas_test_kit/generated/v2.0.1/pas_inquiry_response_bundle/server_inquire_response_pas_inquiry_response_bundle_must_support_test.rb +0 -57
- data/lib/davinci_pas_test_kit/generated/v2.0.1/pas_inquiry_response_bundle/server_pas_inquiry_response_bundle_validation_test.rb +0 -89
- data/lib/davinci_pas_test_kit/generated/v2.0.1/pas_request_bundle/client_submit_request_pas_request_bundle_must_support_test.rb +0 -58
- data/lib/davinci_pas_test_kit/generated/v2.0.1/pas_request_bundle/server_pas_request_bundle_validation_test.rb +0 -95
- data/lib/davinci_pas_test_kit/generated/v2.0.1/pas_request_bundle/server_submit_request_pas_request_bundle_must_support_test.rb +0 -60
- data/lib/davinci_pas_test_kit/generated/v2.0.1/pas_response_bundle/server_pas_response_bundle_validation_test.rb +0 -89
- data/lib/davinci_pas_test_kit/generated/v2.0.1/pas_response_bundle/server_submit_response_pas_response_bundle_must_support_test.rb +0 -57
- data/lib/davinci_pas_test_kit/generated/v2.0.1/pas_server_approval_use_case_group.rb +0 -54
- data/lib/davinci_pas_test_kit/generated/v2.0.1/pas_server_denial_use_case_group.rb +0 -54
- data/lib/davinci_pas_test_kit/generated/v2.0.1/pas_server_must_support_use_case_group.rb +0 -268
- data/lib/davinci_pas_test_kit/generated/v2.0.1/pas_server_pended_use_case_group.rb +0 -90
- data/lib/davinci_pas_test_kit/generated/v2.0.1/practitioner/client_inquire_request_practitioner_must_support_test.rb +0 -58
- data/lib/davinci_pas_test_kit/generated/v2.0.1/practitioner/client_submit_request_practitioner_must_support_test.rb +0 -58
- data/lib/davinci_pas_test_kit/generated/v2.0.1/practitioner/server_inquire_request_practitioner_must_support_test.rb +0 -60
- data/lib/davinci_pas_test_kit/generated/v2.0.1/practitioner/server_inquire_response_practitioner_must_support_test.rb +0 -58
- data/lib/davinci_pas_test_kit/generated/v2.0.1/practitioner/server_submit_request_practitioner_must_support_test.rb +0 -60
- data/lib/davinci_pas_test_kit/generated/v2.0.1/practitioner/server_submit_response_practitioner_must_support_test.rb +0 -58
- data/lib/davinci_pas_test_kit/generated/v2.0.1/practitioner_role/client_inquire_request_practitioner_role_must_support_test.rb +0 -54
- data/lib/davinci_pas_test_kit/generated/v2.0.1/practitioner_role/client_submit_request_practitioner_role_must_support_test.rb +0 -54
- data/lib/davinci_pas_test_kit/generated/v2.0.1/practitioner_role/server_inquire_request_practitioner_role_must_support_test.rb +0 -56
- data/lib/davinci_pas_test_kit/generated/v2.0.1/practitioner_role/server_inquire_response_practitioner_role_must_support_test.rb +0 -54
- data/lib/davinci_pas_test_kit/generated/v2.0.1/practitioner_role/server_submit_request_practitioner_role_must_support_test.rb +0 -56
- data/lib/davinci_pas_test_kit/generated/v2.0.1/practitioner_role/server_submit_response_practitioner_role_must_support_test.rb +0 -54
- data/lib/davinci_pas_test_kit/generated/v2.0.1/requestor/client_inquire_request_requestor_must_support_test.rb +0 -68
- data/lib/davinci_pas_test_kit/generated/v2.0.1/requestor/client_submit_request_requestor_must_support_test.rb +0 -68
- data/lib/davinci_pas_test_kit/generated/v2.0.1/requestor/server_inquire_response_requestor_must_support_test.rb +0 -68
- data/lib/davinci_pas_test_kit/generated/v2.0.1/requestor/server_submit_response_requestor_must_support_test.rb +0 -68
- data/lib/davinci_pas_test_kit/generated/v2.0.1/resource_list.rb +0 -54
- data/lib/davinci_pas_test_kit/generated/v2.0.1/service_request/client_submit_request_service_request_must_support_test.rb +0 -58
- data/lib/davinci_pas_test_kit/generated/v2.0.1/service_request/server_submit_request_service_request_must_support_test.rb +0 -60
- data/lib/davinci_pas_test_kit/generated/v2.0.1/task/server_inquire_response_task_must_support_test.rb +0 -66
- data/lib/davinci_pas_test_kit/generated/v2.0.1/task/server_submit_response_task_must_support_test.rb +0 -66
- data/lib/davinci_pas_test_kit/generator/group_generator.rb +0 -470
- data/lib/davinci_pas_test_kit/generator/group_metadata.rb +0 -73
- data/lib/davinci_pas_test_kit/generator/naming.rb +0 -51
- data/lib/davinci_pas_test_kit/generator/operation_test_generator.rb +0 -149
- data/lib/davinci_pas_test_kit/generator/resource_list_generator.rb +0 -59
- data/lib/davinci_pas_test_kit/generator/templates/group.rb.erb +0 -136
- data/lib/davinci_pas_test_kit/generator/templates/operation.rb.erb +0 -65
- data/lib/davinci_pas_test_kit/generator/templates/resource_list.rb.erb +0 -13
- data/lib/davinci_pas_test_kit/generator/templates/validation.rb.erb +0 -99
- data/lib/davinci_pas_test_kit/generator/validation_test_generator.rb +0 -172
- data/lib/davinci_pas_test_kit/generator/value_extractor.rb +0 -51
- data/lib/davinci_pas_test_kit/must_support_test.rb +0 -71
- data/lib/davinci_pas_test_kit/pas_subscription_verification.rb +0 -30
- data/lib/davinci_pas_test_kit/tags.rb +0 -17
- data/lib/davinci_pas_test_kit/user_input_response.rb +0 -35
- data/lib/davinci_pas_test_kit/validation_test.rb +0 -57
- /data/lib/davinci_pas_test_kit/{certs → client/certs}/InfernoCA.key +0 -0
- /data/lib/davinci_pas_test_kit/{certs → client/certs}/InfernoCA.pem +0 -0
- /data/lib/davinci_pas_test_kit/{certs → client/certs}/TestKit.pem +0 -0
- /data/lib/davinci_pas_test_kit/{certs → client/certs}/TestKitPrivateKey.key +0 -0
- /data/lib/davinci_pas_test_kit/{descriptions.rb → client/client_input_descriptions.rb} +0 -0
- /data/lib/davinci_pas_test_kit/{custom_groups → client}/v2.0.1/pas_client_workflows_group.rb +0 -0
- /data/lib/davinci_pas_test_kit/{custom_groups → server}/v2.0.1/error_tests/nonconformant_pas_bundle.json +0 -0
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
require_relative 'client_input_descriptions'
|
|
2
|
+
require_relative 'user_input_response'
|
|
3
|
+
require_relative 'session_identification'
|
|
4
|
+
|
|
5
|
+
module DaVinciPASTestKit
|
|
6
|
+
# abstract test, needs to be extended to include a version-specific URLs module
|
|
7
|
+
class AbstractApprovalSubmitTest < Inferno::Test
|
|
8
|
+
include UserInputResponse
|
|
9
|
+
include SessionIdentification
|
|
10
|
+
|
|
11
|
+
id :pas_client_approval_submit_test
|
|
12
|
+
title 'PAS client submits a claim using the $submit operation'
|
|
13
|
+
description %(
|
|
14
|
+
Inferno will wait for a prior authorization submission request
|
|
15
|
+
from the client. Upon receipt, Inferno will generate and send a
|
|
16
|
+
response with an approved status.
|
|
17
|
+
)
|
|
18
|
+
|
|
19
|
+
input :approval_json_response,
|
|
20
|
+
title: 'Claim approved response JSON',
|
|
21
|
+
type: 'textarea',
|
|
22
|
+
optional: true,
|
|
23
|
+
description: %(
|
|
24
|
+
If provided, this JSON will be sent in response to $submit requests during this test
|
|
25
|
+
to indicate that the request has been approved.
|
|
26
|
+
It will be updated to make creation timestamps current.
|
|
27
|
+
If not provided, an approval response will be generated from the submitted Claim.
|
|
28
|
+
In either case, the response will be validated against the PAS Response Bundle profile.
|
|
29
|
+
)
|
|
30
|
+
input :client_id,
|
|
31
|
+
title: 'Client Id',
|
|
32
|
+
type: 'text',
|
|
33
|
+
optional: true,
|
|
34
|
+
locked: true,
|
|
35
|
+
description: INPUT_CLIENT_ID_LOCKED
|
|
36
|
+
input :session_url_path,
|
|
37
|
+
title: 'Session-specific URL path extension',
|
|
38
|
+
type: 'text',
|
|
39
|
+
optional: true,
|
|
40
|
+
locked: true,
|
|
41
|
+
description: INPUT_SESSION_URL_PATH_LOCKED
|
|
42
|
+
|
|
43
|
+
submit_respond_with :approval_json_response
|
|
44
|
+
|
|
45
|
+
run do
|
|
46
|
+
if user_inputted_response? :approval_json_response
|
|
47
|
+
assert_valid_json approval_json_response,
|
|
48
|
+
'Input "Claim approved response JSON" must be valid JSON'
|
|
49
|
+
else
|
|
50
|
+
add_message('info', %(
|
|
51
|
+
No approved response provided in input '#{input_title(:approval_json_response)}'. Any responses to $submit
|
|
52
|
+
requests will be generated by Inferno from the submitted Claim.
|
|
53
|
+
))
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
wait_identifier = session_wait_identifier(client_id, session_url_path)
|
|
57
|
+
submit_endpoint = session_endpoint_url(:submit, client_id, session_url_path)
|
|
58
|
+
|
|
59
|
+
wait(
|
|
60
|
+
identifier: wait_identifier,
|
|
61
|
+
message: %(
|
|
62
|
+
**Approval Workflow Test**:
|
|
63
|
+
|
|
64
|
+
Submit a PAS request to
|
|
65
|
+
|
|
66
|
+
`#{submit_endpoint}`
|
|
67
|
+
|
|
68
|
+
If the optional '**#{input_title(:approval_json_response)}**' input is populated, it will
|
|
69
|
+
be returned, updated with current timestamps. Otherwise, an approval response will
|
|
70
|
+
be generated by Inferno using the received Claim.
|
|
71
|
+
)
|
|
72
|
+
)
|
|
73
|
+
end
|
|
74
|
+
end
|
|
75
|
+
end
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
require_relative 'client_input_descriptions'
|
|
2
|
+
require_relative 'user_input_response'
|
|
3
|
+
require_relative 'session_identification'
|
|
4
|
+
|
|
5
|
+
module DaVinciPASTestKit
|
|
6
|
+
# abstract test, needs to be extended to include a version-specific URLs module
|
|
7
|
+
class AbstractDenialSubmitTest < Inferno::Test
|
|
8
|
+
include SessionIdentification
|
|
9
|
+
include UserInputResponse
|
|
10
|
+
|
|
11
|
+
id :pas_client_denial_submit_test
|
|
12
|
+
title 'PAS client submits a claim using the $submit operation'
|
|
13
|
+
description %(
|
|
14
|
+
Inferno will wait for a prior authorization submission request
|
|
15
|
+
from the client. Upon receipt, Inferno will respond with the
|
|
16
|
+
provided denial response.
|
|
17
|
+
)
|
|
18
|
+
|
|
19
|
+
input :denial_json_response,
|
|
20
|
+
title: 'Claim denied response JSON',
|
|
21
|
+
type: 'textarea',
|
|
22
|
+
optional: true,
|
|
23
|
+
description: %(
|
|
24
|
+
If provided, this JSON will be sent in response to $submit requests during this test
|
|
25
|
+
to indicate that the request has been denied.
|
|
26
|
+
It will be updated to make creation timestamps current.
|
|
27
|
+
If not provided, a denial response will be generated from the submitted Claim.
|
|
28
|
+
In either case, the response will be validated against the PAS Response Bundle profile.
|
|
29
|
+
)
|
|
30
|
+
input :client_id,
|
|
31
|
+
title: 'Client Id',
|
|
32
|
+
type: 'text',
|
|
33
|
+
optional: true,
|
|
34
|
+
locked: true,
|
|
35
|
+
description: INPUT_CLIENT_ID_LOCKED
|
|
36
|
+
input :session_url_path,
|
|
37
|
+
title: 'Session-specific URL path extension',
|
|
38
|
+
type: 'text',
|
|
39
|
+
optional: true,
|
|
40
|
+
locked: true,
|
|
41
|
+
description: INPUT_SESSION_URL_PATH_LOCKED
|
|
42
|
+
submit_respond_with :denial_json_response
|
|
43
|
+
|
|
44
|
+
run do
|
|
45
|
+
if user_inputted_response? :denial_json_response
|
|
46
|
+
assert_valid_json denial_json_response,
|
|
47
|
+
'Input "Claim denied response JSON" must be valid JSON'
|
|
48
|
+
else
|
|
49
|
+
add_message('info', %(
|
|
50
|
+
No denied response provided in input '#{input_title(:denial_json_response)}'. Any responses to $submit
|
|
51
|
+
requests will be generated by Inferno from the submitted Claim.
|
|
52
|
+
))
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
wait_identifier = session_wait_identifier(client_id, session_url_path)
|
|
56
|
+
submit_endpoint = session_endpoint_url(:submit, client_id, session_url_path)
|
|
57
|
+
|
|
58
|
+
wait(
|
|
59
|
+
identifier: wait_identifier,
|
|
60
|
+
message: %(
|
|
61
|
+
**Denial Workflow Test**:
|
|
62
|
+
|
|
63
|
+
Submit a PAS request to
|
|
64
|
+
|
|
65
|
+
`#{submit_endpoint}`
|
|
66
|
+
|
|
67
|
+
If the optional '**#{input_title(:denial_json_response)}**' input is populated, it will
|
|
68
|
+
be returned, updated with current timestamps. Otherwise, a denial response will
|
|
69
|
+
be generated by Inferno using the received Claim.
|
|
70
|
+
)
|
|
71
|
+
)
|
|
72
|
+
end
|
|
73
|
+
end
|
|
74
|
+
end
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
require_relative 'client_input_descriptions'
|
|
2
|
+
require_relative 'session_identification'
|
|
3
|
+
|
|
4
|
+
module DaVinciPASTestKit
|
|
5
|
+
# abstract test, needs to be extended to include a version-specific URLs module
|
|
6
|
+
class AbstractGatherMustSupportTest < Inferno::Test
|
|
7
|
+
include SessionIdentification
|
|
8
|
+
|
|
9
|
+
id :pas_client_gather_must_support
|
|
10
|
+
title 'PAS client submits Claims using the $submit and $inquire operations to demonstrate coverage of must ' \
|
|
11
|
+
'support elements'
|
|
12
|
+
description %(
|
|
13
|
+
This test allows the client to send both $submit and $inquire requests for Inferno to evaluate
|
|
14
|
+
coverage of must support elements in both requests and responses. Any requests made during
|
|
15
|
+
previous workflow tests will also be considered.
|
|
16
|
+
|
|
17
|
+
Because Inferno's mocked responses do not cover all must support elements, in order to pass
|
|
18
|
+
these tests testers will need to provide response bundles for Inferno to return when
|
|
19
|
+
responding to $submit and $inquire requests. Each response input takes a single entry or a
|
|
20
|
+
JSON list of entries, where each entry is either a FHIR Bundle or a wrapper object pairing
|
|
21
|
+
a Bundle with selection criteria. For each request, Inferno will respond with the Bundle of
|
|
22
|
+
the first entry whose criteria are all met, generating a default response if none match.
|
|
23
|
+
See the input descriptions for details on the wrapper format, the supported criteria, and
|
|
24
|
+
on substituting values from the request into the returned response.
|
|
25
|
+
|
|
26
|
+
This enables testers to verify that their client can handle responses containing all required
|
|
27
|
+
must support elements.
|
|
28
|
+
)
|
|
29
|
+
|
|
30
|
+
input :client_id,
|
|
31
|
+
title: 'Client Id',
|
|
32
|
+
type: 'text',
|
|
33
|
+
optional: true,
|
|
34
|
+
locked: true,
|
|
35
|
+
description: INPUT_CLIENT_ID_LOCKED
|
|
36
|
+
input :session_url_path,
|
|
37
|
+
title: 'Session-specific URL path extension',
|
|
38
|
+
type: 'text',
|
|
39
|
+
optional: true,
|
|
40
|
+
locked: true,
|
|
41
|
+
description: INPUT_SESSION_URL_PATH_LOCKED
|
|
42
|
+
input :ms_submit_responses,
|
|
43
|
+
title: 'Must Support $submit Response Bundles',
|
|
44
|
+
type: 'textarea',
|
|
45
|
+
optional: true,
|
|
46
|
+
description: %(
|
|
47
|
+
An optional JSON value specifying response Bundles for Inferno to return when
|
|
48
|
+
responding to $submit requests during must support testing. Provide a single entry
|
|
49
|
+
or a list of entries, where each entry is either a FHIR Bundle or a wrapper object
|
|
50
|
+
of the form `{"criteria": {...}, "bundle": {...}}` pairing a FHIR Bundle with the
|
|
51
|
+
selection criteria that a request must meet for that Bundle to be returned.
|
|
52
|
+
|
|
53
|
+
For each request, Inferno will respond with the Bundle of the first entry whose
|
|
54
|
+
criteria are all met. An entry with no criteria (including a bare Bundle) matches
|
|
55
|
+
any request, and an entry with multiple criteria must meet all of them. If no entry
|
|
56
|
+
matches, or none are provided, Inferno will generate a default response. Supported
|
|
57
|
+
`criteria` keys:
|
|
58
|
+
|
|
59
|
+
- `requestRange`: a string of comma-separated request numbers or ranges, e.g.,
|
|
60
|
+
`"1-2,4"`. Met when the number of $submit requests received during this test,
|
|
61
|
+
counting this one, is among the listed values.
|
|
62
|
+
- `fhirpath`: a FHIRPath expression evaluated against the incoming request Bundle.
|
|
63
|
+
Met when the expression evaluates to a single truthy value.
|
|
64
|
+
|
|
65
|
+
A Bundle may also contain tokens of the form `{{fhirpath}}`, e.g.,
|
|
66
|
+
`{{Bundle.entry.first().resource.id}}`. Inferno replaces each token in the returned
|
|
67
|
+
Bundle with the result of evaluating the FHIRPath expression against the incoming
|
|
68
|
+
request Bundle.
|
|
69
|
+
)
|
|
70
|
+
input :ms_inquire_responses,
|
|
71
|
+
title: 'Must Support $inquire Response Bundles',
|
|
72
|
+
type: 'textarea',
|
|
73
|
+
optional: true,
|
|
74
|
+
description: %(
|
|
75
|
+
An optional JSON value specifying response Bundles for Inferno to return when
|
|
76
|
+
responding to $inquire requests during must support testing. Provide a single entry
|
|
77
|
+
or a list of entries, where each entry is either a FHIR Bundle or a wrapper object
|
|
78
|
+
of the form `{"criteria": {...}, "bundle": {...}}` pairing a FHIR Bundle with the
|
|
79
|
+
selection criteria that a request must meet for that Bundle to be returned.
|
|
80
|
+
|
|
81
|
+
For each request, Inferno will respond with the Bundle of the first entry whose
|
|
82
|
+
criteria are all met. An entry with no criteria (including a bare Bundle) matches
|
|
83
|
+
any request, and an entry with multiple criteria must meet all of them. If no entry
|
|
84
|
+
matches, or none are provided, Inferno will generate a default response. Supported
|
|
85
|
+
`criteria` keys:
|
|
86
|
+
|
|
87
|
+
- `requestRange`: a string of comma-separated request numbers or ranges, e.g.,
|
|
88
|
+
`"1-2,4"`. Met when the number of $inquire requests received during this test,
|
|
89
|
+
counting this one, is among the listed values.
|
|
90
|
+
- `fhirpath`: a FHIRPath expression evaluated against the incoming request Bundle.
|
|
91
|
+
Met when the expression evaluates to a single truthy value.
|
|
92
|
+
|
|
93
|
+
A Bundle may also contain tokens of the form `{{fhirpath}}`, e.g.,
|
|
94
|
+
`{{Bundle.entry.first().resource.id}}`. Inferno replaces each token in the returned
|
|
95
|
+
Bundle with the result of evaluating the FHIRPath expression against the incoming
|
|
96
|
+
request Bundle.
|
|
97
|
+
)
|
|
98
|
+
config options: { accepts_multiple_requests: true }
|
|
99
|
+
output :confirmation_url
|
|
100
|
+
|
|
101
|
+
run do
|
|
102
|
+
wait_identifier = session_wait_identifier(client_id, session_url_path)
|
|
103
|
+
submit_endpoint = session_endpoint_url(:submit, client_id, session_url_path)
|
|
104
|
+
inquire_endpoint = session_endpoint_url(:inquire, client_id, session_url_path)
|
|
105
|
+
confirmation_url = "#{resume_pass_url}?token=#{wait_identifier}"
|
|
106
|
+
output(confirmation_url:)
|
|
107
|
+
|
|
108
|
+
wait(
|
|
109
|
+
identifier: wait_identifier,
|
|
110
|
+
message: %(
|
|
111
|
+
The client system may now make multiple $submit and $inquire requests before continuing.
|
|
112
|
+
These requests should cumulatively demonstrate coverage of all required profiles and all
|
|
113
|
+
must support elements within those profiles, as specified by the DaVinci Prior Authorization
|
|
114
|
+
Support implementation guide.
|
|
115
|
+
|
|
116
|
+
For the $submit operation the required profiles include:
|
|
117
|
+
- PAS Request Bundle
|
|
118
|
+
- PAS Claim Update
|
|
119
|
+
- PAS Coverage
|
|
120
|
+
- PAS Beneficiary Patient
|
|
121
|
+
- PAS Subscriber Patient
|
|
122
|
+
- PAS Insurer Organization
|
|
123
|
+
- PAS Requestor Organization
|
|
124
|
+
- PAS Practitioner
|
|
125
|
+
- PAS PractitionerRole
|
|
126
|
+
- PAS Encounter
|
|
127
|
+
- At least one of the following request profiles
|
|
128
|
+
- PAS Device Request
|
|
129
|
+
- PAS Medication Request
|
|
130
|
+
- PAS Nutrition Order
|
|
131
|
+
- PAS Service Request
|
|
132
|
+
|
|
133
|
+
For the $inquire operation the required profiles include:
|
|
134
|
+
- PAS Inquiry Request Bundle
|
|
135
|
+
- PAS Claim Inquiry
|
|
136
|
+
- PAS Coverage
|
|
137
|
+
- PAS Beneficiary Patient
|
|
138
|
+
- PAS Subscriber Patient
|
|
139
|
+
- PAS Insurer Organization
|
|
140
|
+
- PAS Requestor Organization
|
|
141
|
+
- PAS Practitioner
|
|
142
|
+
- PAS PractitionerRole
|
|
143
|
+
|
|
144
|
+
If you would like Inferno to respond with specific response bundles (to demonstrate
|
|
145
|
+
must support coverage on responses), provide them in the input fields above.
|
|
146
|
+
|
|
147
|
+
Submit PAS $submit requests to
|
|
148
|
+
|
|
149
|
+
`#{submit_endpoint}`
|
|
150
|
+
|
|
151
|
+
Submit PAS $inquire requests to
|
|
152
|
+
|
|
153
|
+
`#{inquire_endpoint}`
|
|
154
|
+
|
|
155
|
+
and [click here](#{confirmation_url}) when done.
|
|
156
|
+
)
|
|
157
|
+
)
|
|
158
|
+
end
|
|
159
|
+
end
|
|
160
|
+
end
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
require_relative 'client_input_descriptions'
|
|
2
|
+
require_relative 'user_input_response'
|
|
3
|
+
require_relative 'session_identification'
|
|
4
|
+
|
|
5
|
+
module DaVinciPASTestKit
|
|
6
|
+
# abstract test, needs to be extended to include a version-specific URLs module
|
|
7
|
+
class AbstractModificationSubmitTest < Inferno::Test
|
|
8
|
+
include UserInputResponse
|
|
9
|
+
include SessionIdentification
|
|
10
|
+
|
|
11
|
+
id :pas_client_modification_submit_test
|
|
12
|
+
title 'PAS client submits a claim using the $submit operation'
|
|
13
|
+
description %(
|
|
14
|
+
Inferno will wait for a prior authorization submission request
|
|
15
|
+
from the client. Upon receipt, Inferno will generate and send a
|
|
16
|
+
response in which the payer authorizes items that differ from those
|
|
17
|
+
that were requested (a "payer modification").
|
|
18
|
+
)
|
|
19
|
+
|
|
20
|
+
input :modification_json_response,
|
|
21
|
+
title: 'Claim modified response JSON',
|
|
22
|
+
type: 'textarea',
|
|
23
|
+
optional: true,
|
|
24
|
+
description: %(
|
|
25
|
+
If provided, this JSON will be sent in response to $submit requests during this test
|
|
26
|
+
to indicate that the payer authorized items that differ from those requested.
|
|
27
|
+
It will be updated to make creation timestamps current.
|
|
28
|
+
If not provided, a payer modification response will be generated from the submitted Claim,
|
|
29
|
+
marking each item as modified (adjudication status A6) and adding a corresponding
|
|
30
|
+
`ClaimResponse.addItem` describing what was actually authorized.
|
|
31
|
+
In either case, the response will be validated against the PAS Response Bundle profile.
|
|
32
|
+
)
|
|
33
|
+
input :client_id,
|
|
34
|
+
title: 'Client Id',
|
|
35
|
+
type: 'text',
|
|
36
|
+
optional: true,
|
|
37
|
+
locked: true,
|
|
38
|
+
description: INPUT_CLIENT_ID_LOCKED
|
|
39
|
+
input :session_url_path,
|
|
40
|
+
title: 'Session-specific URL path extension',
|
|
41
|
+
type: 'text',
|
|
42
|
+
optional: true,
|
|
43
|
+
locked: true,
|
|
44
|
+
description: INPUT_SESSION_URL_PATH_LOCKED
|
|
45
|
+
|
|
46
|
+
submit_respond_with :modification_json_response
|
|
47
|
+
|
|
48
|
+
run do
|
|
49
|
+
if user_inputted_response? :modification_json_response
|
|
50
|
+
assert_valid_json modification_json_response,
|
|
51
|
+
'Input "Claim modified response JSON" must be valid JSON'
|
|
52
|
+
else
|
|
53
|
+
add_message('info', %(
|
|
54
|
+
No modified response provided in input '#{input_title(:modification_json_response)}'. Any responses to
|
|
55
|
+
$submit requests will be generated by Inferno from the submitted Claim.
|
|
56
|
+
))
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
wait_identifier = session_wait_identifier(client_id, session_url_path)
|
|
60
|
+
submit_endpoint = session_endpoint_url(:submit, client_id, session_url_path)
|
|
61
|
+
|
|
62
|
+
wait(
|
|
63
|
+
identifier: wait_identifier,
|
|
64
|
+
message: %(
|
|
65
|
+
**Payer Modification Workflow Test**:
|
|
66
|
+
|
|
67
|
+
Submit a PAS request to
|
|
68
|
+
|
|
69
|
+
`#{submit_endpoint}`
|
|
70
|
+
|
|
71
|
+
If the optional '**#{input_title(:modification_json_response)}**' input is populated, it will
|
|
72
|
+
be returned, updated with current timestamps. Otherwise, a payer modification response will
|
|
73
|
+
be generated by Inferno using the received Claim.
|
|
74
|
+
)
|
|
75
|
+
)
|
|
76
|
+
end
|
|
77
|
+
end
|
|
78
|
+
end
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
module DaVinciPASTestKit
|
|
2
|
+
# abstract test, needs to be extended to include a version-specific URLs module
|
|
3
|
+
class AbstractResponseAttest < Inferno::Test
|
|
4
|
+
id :pas_client_response_attest
|
|
5
|
+
title 'PAS client reacts appropriately to the response'
|
|
6
|
+
description %(
|
|
7
|
+
This test provides the tester an opportunity to observe their client following
|
|
8
|
+
the receipt of response and attest that users are able to see the appropriate
|
|
9
|
+
updates to the corresponding prior authorization request in their system.
|
|
10
|
+
)
|
|
11
|
+
attestation
|
|
12
|
+
|
|
13
|
+
def workflow_tag
|
|
14
|
+
config.options[:workflow_tag]
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def attest_message
|
|
18
|
+
config.options[:attest_message]
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def workflow_name
|
|
22
|
+
case workflow_tag
|
|
23
|
+
when APPROVAL_WORKFLOW_TAG
|
|
24
|
+
'Approval'
|
|
25
|
+
when DENIAL_WORKFLOW_TAG
|
|
26
|
+
'Denial'
|
|
27
|
+
when PENDED_WORKFLOW_TAG
|
|
28
|
+
'Pended'
|
|
29
|
+
when MODIFICATION_WORKFLOW_TAG
|
|
30
|
+
'Payer Modification'
|
|
31
|
+
when MUST_SUPPORT_WORKFLOW_TAG
|
|
32
|
+
'Must Support'
|
|
33
|
+
when OPERATION_FAILURE_WORKFLOW_TAG
|
|
34
|
+
'Operation Failure'
|
|
35
|
+
when PROCESSING_ERROR_WORKFLOW_TAG
|
|
36
|
+
'Processing Error'
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
output :attest_true_url
|
|
41
|
+
output :attest_false_url
|
|
42
|
+
|
|
43
|
+
run do
|
|
44
|
+
identifier = test_session_id
|
|
45
|
+
attest_true_url = "#{resume_pass_url}?token=#{identifier}"
|
|
46
|
+
output(attest_true_url:)
|
|
47
|
+
attest_false_url = "#{resume_fail_url}?token=#{identifier}"
|
|
48
|
+
output(attest_false_url:)
|
|
49
|
+
|
|
50
|
+
wait(
|
|
51
|
+
identifier:,
|
|
52
|
+
message: %(
|
|
53
|
+
**#{workflow_name} Workflow Test**:
|
|
54
|
+
|
|
55
|
+
#{attest_message}
|
|
56
|
+
|
|
57
|
+
[Click here](#{attest_true_url}) if the above statement is **true**.
|
|
58
|
+
|
|
59
|
+
[Click here](#{attest_false_url}) if the above statement is **false**.
|
|
60
|
+
)
|
|
61
|
+
)
|
|
62
|
+
end
|
|
63
|
+
end
|
|
64
|
+
end
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
require_relative 'client_input_descriptions'
|
|
2
|
+
require_relative 'session_identification'
|
|
3
|
+
|
|
4
|
+
module DaVinciPASTestKit
|
|
5
|
+
# abstract test, needs to be extended to include a version-specific URLs module
|
|
6
|
+
class AbstractSubscriptionCreateTest < Inferno::Test
|
|
7
|
+
include SessionIdentification
|
|
8
|
+
|
|
9
|
+
id :pas_client_subscription_create_test
|
|
10
|
+
title 'PAS client submits a Subscription creation request'
|
|
11
|
+
description %(
|
|
12
|
+
Inferno will wait for a Subscription creation request
|
|
13
|
+
and then perform a handshake to activate the Subscription.
|
|
14
|
+
)
|
|
15
|
+
|
|
16
|
+
input :client_id,
|
|
17
|
+
title: 'Client Id',
|
|
18
|
+
type: 'text',
|
|
19
|
+
optional: true,
|
|
20
|
+
locked: true,
|
|
21
|
+
description: INPUT_CLIENT_ID_LOCKED
|
|
22
|
+
input :session_url_path,
|
|
23
|
+
title: 'Session-specific URL path extension',
|
|
24
|
+
type: 'text',
|
|
25
|
+
optional: true,
|
|
26
|
+
locked: true,
|
|
27
|
+
description: INPUT_SESSION_URL_PATH_LOCKED
|
|
28
|
+
input :client_endpoint_access_token,
|
|
29
|
+
optional: true,
|
|
30
|
+
title: 'Client Notification Access Token',
|
|
31
|
+
description: %(
|
|
32
|
+
The bearer token that Inferno will send on requests to the client under test's rest-hook notification
|
|
33
|
+
endpoint, including handshake notifications sent after Subscription creation. Not needed if the client
|
|
34
|
+
under test will create a Subscription with an appropriate header value in the `channel.header` element.
|
|
35
|
+
If a value for the `authorization` header is provided in `channel.header`, this value will override it.
|
|
36
|
+
)
|
|
37
|
+
|
|
38
|
+
run do
|
|
39
|
+
wait_identifier = session_wait_identifier(client_id, session_url_path)
|
|
40
|
+
subscription_endpoint = session_endpoint_url(:subscription, client_id, session_url_path)
|
|
41
|
+
|
|
42
|
+
wait(
|
|
43
|
+
identifier: wait_identifier,
|
|
44
|
+
message: %(
|
|
45
|
+
**Subscription Creation Test**:
|
|
46
|
+
|
|
47
|
+
Submit a POST with a Subscription to:
|
|
48
|
+
|
|
49
|
+
`#{subscription_endpoint}`
|
|
50
|
+
|
|
51
|
+
Upon receipt, Inferno will send a handshake request to verify that notifications can be
|
|
52
|
+
delivered and continue the test with a pass or fail based on the result.
|
|
53
|
+
)
|
|
54
|
+
)
|
|
55
|
+
end
|
|
56
|
+
end
|
|
57
|
+
end
|
|
@@ -2,11 +2,14 @@
|
|
|
2
2
|
|
|
3
3
|
require 'udap_security_test_kit'
|
|
4
4
|
require 'smart_app_launch_test_kit'
|
|
5
|
+
require_relative '../cross_suite/base_urls'
|
|
5
6
|
|
|
6
7
|
module DaVinciPASTestKit
|
|
7
8
|
SESSION_PATH_PLACEHOLDER = '/:session_path'
|
|
8
9
|
FHIR_PATH = '/fhir'
|
|
9
10
|
SESSION_FHIR_PATH = SESSION_PATH_PLACEHOLDER + FHIR_PATH
|
|
11
|
+
FHIR_METADATA_PATH = "#{FHIR_PATH}/metadata".freeze
|
|
12
|
+
SESSION_FHIR_METADATA_PATH = SESSION_PATH_PLACEHOLDER + FHIR_METADATA_PATH
|
|
10
13
|
SUBMIT_PATH = "#{FHIR_PATH}/Claim/$submit".freeze
|
|
11
14
|
SESSION_SUBMIT_PATH = SESSION_PATH_PLACEHOLDER + SUBMIT_PATH
|
|
12
15
|
INQUIRE_PATH = "#{FHIR_PATH}/Claim/$inquire".freeze
|
|
@@ -19,14 +22,11 @@ module DaVinciPASTestKit
|
|
|
19
22
|
SESSION_FHIR_SUBSCRIPTION_INSTANCE_STATUS_PATH = SESSION_PATH_PLACEHOLDER + FHIR_SUBSCRIPTION_INSTANCE_STATUS_PATH
|
|
20
23
|
FHIR_SUBSCRIPTION_RESOURCE_STATUS_PATH = "#{FHIR_SUBSCRIPTION_PATH}/$status".freeze
|
|
21
24
|
SESSION_FHIR_SUBSCRIPTION_RESOURCE_STATUS_PATH = SESSION_PATH_PLACEHOLDER + FHIR_SUBSCRIPTION_RESOURCE_STATUS_PATH
|
|
22
|
-
RESUME_PASS_PATH = '/resume_pass'
|
|
23
|
-
RESUME_FAIL_PATH = '/resume_fail'
|
|
24
|
-
RESUME_SKIP_PATH = '/resume_skip'
|
|
25
25
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
26
|
+
# URLs used by client tests
|
|
27
|
+
# suite_id still not provided since not specific to a suite, yet
|
|
28
|
+
module ClientURLs
|
|
29
|
+
include BaseURLs
|
|
30
30
|
|
|
31
31
|
def fhir_base_url
|
|
32
32
|
@fhir_base_url ||= base_url + FHIR_PATH
|
|
@@ -68,18 +68,6 @@ module DaVinciPASTestKit
|
|
|
68
68
|
base_url + SESSION_FHIR_SUBSCRIPTION_PATH.gsub(SESSION_PATH_PLACEHOLDER, "/#{session_path}")
|
|
69
69
|
end
|
|
70
70
|
|
|
71
|
-
def resume_pass_url
|
|
72
|
-
@resume_pass_url ||= base_url + RESUME_PASS_PATH
|
|
73
|
-
end
|
|
74
|
-
|
|
75
|
-
def resume_fail_url
|
|
76
|
-
@resume_fail_url ||= base_url + RESUME_FAIL_PATH
|
|
77
|
-
end
|
|
78
|
-
|
|
79
|
-
def resume_skip_url
|
|
80
|
-
@resume_skip_url ||= base_url + RESUME_SKIP_PATH
|
|
81
|
-
end
|
|
82
|
-
|
|
83
71
|
def udap_discovery_url
|
|
84
72
|
@udap_discovery_url ||= base_url + UDAPSecurityTestKit::UDAP_DISCOVERY_PATH
|
|
85
73
|
end
|
|
@@ -91,9 +79,5 @@ module DaVinciPASTestKit
|
|
|
91
79
|
def registration_url
|
|
92
80
|
@registration_url ||= base_url + UDAPSecurityTestKit::REGISTRATION_PATH
|
|
93
81
|
end
|
|
94
|
-
|
|
95
|
-
def suite_id
|
|
96
|
-
self.class.suite.id
|
|
97
|
-
end
|
|
98
82
|
end
|
|
99
83
|
end
|