davinci_pas_test_kit 0.14.0 → 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} +19 -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} +19 -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} +198 -62
- 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} +33 -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 +7 -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 +13 -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 +19 -13
- data/lib/davinci_pas_test_kit/{generated → cross_suite/generated}/v2.0.1/claim_inquiry/metadata.yml +59 -22
- data/lib/davinci_pas_test_kit/{generated → cross_suite/generated}/v2.0.1/claim_update/metadata.yml +60 -22
- data/lib/davinci_pas_test_kit/{generated → cross_suite/generated}/v2.0.1/claiminquiryresponse/metadata.yml +17 -10
- data/lib/davinci_pas_test_kit/{generated → cross_suite/generated}/v2.0.1/claimresponse/metadata.yml +17 -13
- data/lib/davinci_pas_test_kit/{generated → cross_suite/generated}/v2.0.1/communication_request/metadata.yml +7 -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 +1 -6
- data/lib/davinci_pas_test_kit/{generated → cross_suite/generated}/v2.0.1/encounter/metadata.yml +6 -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 +1 -6
- data/lib/davinci_pas_test_kit/{generated → cross_suite/generated}/v2.0.1/metadata.yml +276 -135
- data/lib/davinci_pas_test_kit/{generated → cross_suite/generated}/v2.0.1/nutrition_order/metadata.yml +1 -6
- data/lib/davinci_pas_test_kit/{generated → cross_suite/generated}/v2.0.1/pas_inquiry_request_bundle/metadata.yml +5 -7
- data/lib/davinci_pas_test_kit/{generated → cross_suite/generated}/v2.0.1/pas_inquiry_response_bundle/metadata.yml +5 -5
- data/lib/davinci_pas_test_kit/{generated → cross_suite/generated}/v2.0.1/pas_request_bundle/metadata.yml +5 -7
- data/lib/davinci_pas_test_kit/{generated → cross_suite/generated}/v2.0.1/pas_response_bundle/metadata.yml +5 -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 +2 -6
- data/lib/davinci_pas_test_kit/{generated → cross_suite/generated}/v2.0.1/subscriber/metadata.yml +11 -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 +199 -192
- 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} +383 -56
- 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} +19 -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 -20
- 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} +19 -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} +19 -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 +14 -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 +5 -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 +386 -190
- 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 -50
- 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
|
@@ -1,23 +1,37 @@
|
|
|
1
|
+
require_relative '../parameters_helper'
|
|
2
|
+
|
|
1
3
|
module DaVinciPASTestKit
|
|
2
4
|
module ResponseGenerator
|
|
3
|
-
|
|
5
|
+
include ParametersHelper
|
|
6
|
+
|
|
7
|
+
def mock_id_only_notification_bundle(submit_response, subscription_reference, subscription_topic,
|
|
8
|
+
ig_version = 'v2.0.1')
|
|
4
9
|
notification_timestamp = Time.now.utc
|
|
5
10
|
mock_notification_bundle = build_mock_notification_bundle(notification_timestamp, subscription_reference,
|
|
6
|
-
subscription_topic, submit_response, 'id-only', nil
|
|
11
|
+
subscription_topic, submit_response, 'id-only', nil,
|
|
12
|
+
ig_version)
|
|
7
13
|
mock_notification_bundle.to_json
|
|
8
14
|
end
|
|
9
15
|
|
|
10
|
-
def mock_full_resource_notification_bundle(submit_response, subscription_reference, subscription_topic, decision
|
|
16
|
+
def mock_full_resource_notification_bundle(submit_response, subscription_reference, subscription_topic, decision,
|
|
17
|
+
ig_version = 'v2.0.1')
|
|
11
18
|
notification_timestamp = Time.now.utc
|
|
12
19
|
mock_notification_bundle = build_mock_notification_bundle(notification_timestamp, subscription_reference,
|
|
13
20
|
subscription_topic, submit_response, 'full-resource',
|
|
14
|
-
decision)
|
|
21
|
+
decision, ig_version)
|
|
15
22
|
mock_notification_bundle.to_json
|
|
16
23
|
end
|
|
17
24
|
|
|
18
|
-
def mock_response_bundle(request_bundle, operation, decision, claim_response_uuid = nil)
|
|
25
|
+
def mock_response_bundle(request_bundle, operation, decision, claim_response_uuid = nil, ig_version = 'v2.0.1')
|
|
19
26
|
mocked_timestamp = Time.now.utc
|
|
20
|
-
build_mock_response_bundle(request_bundle, operation, decision, mocked_timestamp,
|
|
27
|
+
response = build_mock_response_bundle(request_bundle, operation, decision, mocked_timestamp,
|
|
28
|
+
claim_response_uuid, ig_version)
|
|
29
|
+
return nil unless response.present?
|
|
30
|
+
|
|
31
|
+
# For v2.2.1 inquire operations, wrap the Bundle in a Parameters resource
|
|
32
|
+
response = wrap_bundle_in_parameters(response) if ig_version == 'v2.2.1' && operation == 'inquire'
|
|
33
|
+
|
|
34
|
+
response.to_json
|
|
21
35
|
end
|
|
22
36
|
|
|
23
37
|
# update things that tester cannot get right themselves
|
|
@@ -25,20 +39,33 @@ module DaVinciPASTestKit
|
|
|
25
39
|
# - reference to the submitted Claim (may not have control of created id). NOTE: this is likely
|
|
26
40
|
# incomplete - when the Claim is included, there are other things that
|
|
27
41
|
# need to be in the Bundle that may also not be controlled
|
|
28
|
-
def update_tester_provided_response(user_inputted_response, claim_full_url)
|
|
29
|
-
|
|
30
|
-
return user_inputted_response unless
|
|
42
|
+
def update_tester_provided_response(user_inputted_response, claim_full_url, operation, ig_version = 'v2.0.1')
|
|
43
|
+
response_resource = FHIR.from_contents(user_inputted_response)
|
|
44
|
+
return user_inputted_response unless response_resource.present?
|
|
45
|
+
|
|
46
|
+
# For v2.2.1 inquire responses, wrap user's Bundle in Parameters if needed
|
|
47
|
+
if ig_version == 'v2.2.1' && operation == 'inquire' && response_resource.is_a?(FHIR::Bundle)
|
|
48
|
+
response_resource = wrap_bundle_in_parameters(response_resource)
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
# Extract Bundle(s) for updating
|
|
52
|
+
bundles_to_update = []
|
|
53
|
+
is_parameters = response_resource.resourceType == 'Parameters'
|
|
54
|
+
|
|
55
|
+
if is_parameters
|
|
56
|
+
bundles_to_update = extract_bundles_from_pas_inquiry_response_parameters(response_resource)
|
|
57
|
+
elsif response_resource.is_a?(FHIR::Bundle)
|
|
58
|
+
bundles_to_update = [response_resource]
|
|
59
|
+
else
|
|
60
|
+
return user_inputted_response
|
|
61
|
+
end
|
|
31
62
|
|
|
32
63
|
now = Time.now.utc
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
if claim_response_entry.present?
|
|
36
|
-
claim_response_entry.resource.created = now.iso8601 if claim_response_entry.resource.created
|
|
37
|
-
if claim_response_entry.resource.request.present? && claim_full_url.present?
|
|
38
|
-
claim_response_entry.resource.request.reference = claim_full_url
|
|
39
|
-
end
|
|
64
|
+
bundles_to_update.each do |response_bundle|
|
|
65
|
+
update_response_bundle(response_bundle, claim_full_url, now, ig_version)
|
|
40
66
|
end
|
|
41
|
-
|
|
67
|
+
|
|
68
|
+
response_resource.to_json
|
|
42
69
|
end
|
|
43
70
|
|
|
44
71
|
# update things that tester cannot get right themselves
|
|
@@ -94,45 +121,76 @@ module DaVinciPASTestKit
|
|
|
94
121
|
claim_response_entry.resource.id = claim_response_id
|
|
95
122
|
end
|
|
96
123
|
|
|
124
|
+
def update_response_bundle(response_bundle, claim_full_url, now, ig_version)
|
|
125
|
+
response_bundle.timestamp = now.iso8601 if response_bundle&.timestamp.present?
|
|
126
|
+
if ig_version == 'v2.2.1' && response_bundle.identifier.blank?
|
|
127
|
+
response_bundle.identifier = FHIR::Identifier.new(system: 'urn:ietf:rfc:3986',
|
|
128
|
+
value: "urn:uuid:#{SecureRandom.uuid}")
|
|
129
|
+
end
|
|
130
|
+
claim_response_entry = response_bundle&.entry&.find { |e| e&.resource&.resourceType == 'ClaimResponse' }
|
|
131
|
+
return unless claim_response_entry.present?
|
|
132
|
+
|
|
133
|
+
claim_response_entry.resource.created = now.iso8601 if claim_response_entry.resource.created
|
|
134
|
+
return unless claim_full_url.present?
|
|
135
|
+
|
|
136
|
+
if claim_response_entry.resource.request.present?
|
|
137
|
+
claim_response_entry.resource.request.reference = claim_full_url
|
|
138
|
+
elsif ig_version == 'v2.2.1'
|
|
139
|
+
claim_response_entry.resource.request = FHIR::Reference.new(reference: claim_full_url)
|
|
140
|
+
end
|
|
141
|
+
end
|
|
142
|
+
|
|
97
143
|
def build_mock_notification_bundle(notification_timestamp, subscription_reference, subscription_topic,
|
|
98
|
-
submit_response, type, decision)
|
|
99
|
-
|
|
100
|
-
|
|
144
|
+
submit_response, type, decision, _ig_version = 'v2.0.1')
|
|
145
|
+
submit_response_bundle = FHIR.from_contents(submit_response)
|
|
146
|
+
|
|
147
|
+
focus_reference, inner_bundle_full_url = determine_notification_focus(type, submit_response_bundle)
|
|
148
|
+
|
|
101
149
|
mock_notification_bundle = FHIR::Bundle.new(
|
|
102
150
|
id: SecureRandom.uuid,
|
|
103
151
|
timestamp: notification_timestamp.iso8601,
|
|
104
152
|
type: 'history'
|
|
105
153
|
)
|
|
106
154
|
|
|
107
|
-
additional_context_references =
|
|
108
|
-
if type == 'full-resource' && submit_bundle.present? && submit_bundle.is_a?(FHIR::Bundle)
|
|
109
|
-
submit_bundle.entry.reject { |entry| entry.resource&.resourceType == 'ClaimResponse' }.map(&:fullUrl).compact
|
|
110
|
-
else
|
|
111
|
-
[]
|
|
112
|
-
end
|
|
113
155
|
mock_notification_status = build_mock_notification_status(notification_timestamp, subscription_reference,
|
|
114
|
-
subscription_topic,
|
|
115
|
-
additional_context_references)
|
|
156
|
+
subscription_topic, focus_reference, [])
|
|
116
157
|
mock_notification_bundle.entry << build_mock_notification_status_entry(mock_notification_status,
|
|
117
158
|
subscription_reference)
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
update_claim_response_decisions(entry.resource, decision) if entry.resource.resourceType == 'ClaimResponse'
|
|
122
|
-
entry.request = FHIR::Bundle::Entry::Request.new(
|
|
123
|
-
method: 'POST',
|
|
124
|
-
url: "#{fhir_base_url}/#{entry.resource.resourceType}"
|
|
125
|
-
)
|
|
126
|
-
entry.response = FHIR::Bundle::Entry::Response.new(
|
|
127
|
-
status: '201'
|
|
128
|
-
)
|
|
129
|
-
mock_notification_bundle.entry << entry
|
|
130
|
-
end
|
|
131
|
-
end
|
|
159
|
+
|
|
160
|
+
add_notification_entries(mock_notification_bundle, submit_response_bundle, type, decision,
|
|
161
|
+
subscription_reference, inner_bundle_full_url)
|
|
132
162
|
|
|
133
163
|
mock_notification_bundle
|
|
134
164
|
end
|
|
135
165
|
|
|
166
|
+
def determine_notification_focus(type, submit_response_bundle)
|
|
167
|
+
if type == 'full-resource' && submit_response_bundle.is_a?(FHIR::Bundle)
|
|
168
|
+
bundle_full_url = "urn:uuid:#{submit_response_bundle.id}"
|
|
169
|
+
[bundle_full_url, bundle_full_url]
|
|
170
|
+
else
|
|
171
|
+
[claim_response_full_url_from_submit_response_bundle(submit_response_bundle), nil]
|
|
172
|
+
end
|
|
173
|
+
end
|
|
174
|
+
|
|
175
|
+
def add_notification_entries(mock_notification_bundle, submit_response_bundle, type, decision,
|
|
176
|
+
subscription_reference, inner_bundle_full_url)
|
|
177
|
+
return unless type == 'full-resource' && submit_response_bundle.is_a?(FHIR::Bundle)
|
|
178
|
+
|
|
179
|
+
claim_response_entry = submit_response_bundle.entry.find { |e| e.resource&.resourceType == 'ClaimResponse' }
|
|
180
|
+
if claim_response_entry.present?
|
|
181
|
+
update_claim_response_decisions(claim_response_entry.resource, decision)
|
|
182
|
+
claim_response_entry.resource.outcome = 'complete'
|
|
183
|
+
end
|
|
184
|
+
|
|
185
|
+
fhir_base_url = extract_fhir_base_url(subscription_reference)
|
|
186
|
+
mock_notification_bundle.entry << FHIR::Bundle::Entry.new(
|
|
187
|
+
fullUrl: inner_bundle_full_url,
|
|
188
|
+
resource: submit_response_bundle,
|
|
189
|
+
request: FHIR::Bundle::Entry::Request.new(method: 'POST', url: "#{fhir_base_url}/Bundle"),
|
|
190
|
+
response: FHIR::Bundle::Entry::Response.new(status: '201')
|
|
191
|
+
)
|
|
192
|
+
end
|
|
193
|
+
|
|
136
194
|
def update_claim_response_decisions(claim_response, decision)
|
|
137
195
|
claim_response&.item&.each do |item|
|
|
138
196
|
item.adjudication.each do |adjudication|
|
|
@@ -153,15 +211,17 @@ module DaVinciPASTestKit
|
|
|
153
211
|
end
|
|
154
212
|
end
|
|
155
213
|
|
|
156
|
-
def build_mock_response_bundle(request_bundle, operation, decision, timestamp, claim_response_uuid = nil
|
|
214
|
+
def build_mock_response_bundle(request_bundle, operation, decision, timestamp, claim_response_uuid = nil,
|
|
215
|
+
ig_version = 'v2.0.1')
|
|
157
216
|
claim_entry = request_bundle&.entry&.find { |e| e&.resource&.resourceType == 'Claim' }
|
|
158
217
|
claim_full_url = claim_entry&.fullUrl
|
|
159
218
|
return nil if claim_entry.blank? || claim_full_url.blank?
|
|
160
219
|
|
|
161
220
|
root_url = extract_fhir_base_url(claim_full_url)
|
|
162
221
|
mocked_claim_response = build_mock_claim_response(claim_entry.resource, request_bundle, root_url, operation,
|
|
163
|
-
decision, timestamp, claim_response_uuid
|
|
164
|
-
|
|
222
|
+
decision, timestamp, ig_version, claim_response_uuid,
|
|
223
|
+
claim_full_url)
|
|
224
|
+
build_mock_bundle(mocked_claim_response, request_bundle, root_url, operation, timestamp, ig_version)
|
|
165
225
|
end
|
|
166
226
|
|
|
167
227
|
# Note that references from the claim to other resources in the bundle need to be changed to absolute URLs
|
|
@@ -169,16 +229,16 @@ module DaVinciPASTestKit
|
|
|
169
229
|
#
|
|
170
230
|
# @private
|
|
171
231
|
def build_mock_claim_response(claim, request_bundle, root_url, operation, decision, timestamp,
|
|
172
|
-
claim_response_uuid = nil)
|
|
232
|
+
ig_version = 'v2.0.1', claim_response_uuid = nil, claim_full_url = nil)
|
|
173
233
|
claim_response_uuid = SecureRandom.uuid if claim_response_uuid.blank?
|
|
174
234
|
return FHIR::ClaimResponse.new(id: claim_response_uuid) if claim.blank?
|
|
175
235
|
|
|
176
|
-
FHIR::ClaimResponse.new(
|
|
236
|
+
claim_response = FHIR::ClaimResponse.new(
|
|
177
237
|
id: claim_response_uuid,
|
|
178
238
|
meta: FHIR::Meta.new(profile: if operation == 'submit'
|
|
179
|
-
|
|
239
|
+
"http://hl7.org/fhir/us/davinci-pas/StructureDefinition/profile-claimresponse|#{ig_version.delete('v')}"
|
|
180
240
|
else
|
|
181
|
-
|
|
241
|
+
"http://hl7.org/fhir/us/davinci-pas/StructureDefinition/profile-claiminquiryresponse|#{ig_version.delete('v')}"
|
|
182
242
|
end),
|
|
183
243
|
identifier: claim.identifier,
|
|
184
244
|
type: claim.type,
|
|
@@ -188,7 +248,14 @@ module DaVinciPASTestKit
|
|
|
188
248
|
created: timestamp.iso8601,
|
|
189
249
|
insurer: absolute_reference(claim.insurer, request_bundle.entry, root_url),
|
|
190
250
|
requestor: absolute_reference(claim.provider, request_bundle.entry, root_url),
|
|
191
|
-
|
|
251
|
+
request: claim_full_url.present? ? FHIR::Reference.new(reference: claim_full_url) : nil,
|
|
252
|
+
# v2.2.1 removed 'queued' from ClaimResponseOutcome ValueSet; pended status is
|
|
253
|
+
# conveyed via item.extension:reviewActionCode instead.
|
|
254
|
+
outcome: decision == :pended && ig_version != 'v2.2.1' ? 'queued' : 'complete',
|
|
255
|
+
preAuthPeriod: FHIR::Period.new(
|
|
256
|
+
start: timestamp.strftime('%Y-%m-%d'),
|
|
257
|
+
end: (timestamp + 1.month).strftime('%Y-%m-%d')
|
|
258
|
+
),
|
|
192
259
|
item: claim.item.map do |item|
|
|
193
260
|
FHIR::ClaimResponse::Item.new(
|
|
194
261
|
extension: [
|
|
@@ -230,16 +297,61 @@ module DaVinciPASTestKit
|
|
|
230
297
|
)
|
|
231
298
|
end
|
|
232
299
|
)
|
|
300
|
+
|
|
301
|
+
add_modified_items(claim_response, claim) if decision == :modification
|
|
302
|
+
|
|
303
|
+
claim_response
|
|
304
|
+
end
|
|
305
|
+
|
|
306
|
+
# Pairs each modified item (already marked A6 above) with a ClaimResponse.addItem, referenced by
|
|
307
|
+
# the same itemSequence, conveying what the payer authorized (marked A1, 'Certified in total').
|
|
308
|
+
def add_modified_items(claim_response, claim)
|
|
309
|
+
claim_response.addItem = claim.item.map do |item|
|
|
310
|
+
FHIR::ClaimResponse::AddItem.new(
|
|
311
|
+
itemSequence: [item.sequence],
|
|
312
|
+
productOrService: item.productOrService,
|
|
313
|
+
adjudication: [
|
|
314
|
+
FHIR::ClaimResponse::Item::Adjudication.new(
|
|
315
|
+
extension: [
|
|
316
|
+
FHIR::Extension.new(
|
|
317
|
+
url: 'http://hl7.org/fhir/us/davinci-pas/StructureDefinition/extension-reviewAction',
|
|
318
|
+
extension: [
|
|
319
|
+
FHIR::Extension.new(
|
|
320
|
+
url: 'http://hl7.org/fhir/us/davinci-pas/StructureDefinition/extension-reviewActionCode',
|
|
321
|
+
valueCodeableConcept: FHIR::CodeableConcept.new(
|
|
322
|
+
coding: [
|
|
323
|
+
get_review_action_code(:approval)
|
|
324
|
+
]
|
|
325
|
+
)
|
|
326
|
+
)
|
|
327
|
+
]
|
|
328
|
+
)
|
|
329
|
+
],
|
|
330
|
+
category: FHIR::CodeableConcept.new(
|
|
331
|
+
coding: [
|
|
332
|
+
FHIR::Coding.new(system: 'http://terminology.hl7.org/CodeSystem/adjudication', code: 'submitted')
|
|
333
|
+
]
|
|
334
|
+
)
|
|
335
|
+
)
|
|
336
|
+
]
|
|
337
|
+
)
|
|
338
|
+
end
|
|
233
339
|
end
|
|
234
340
|
|
|
235
|
-
def build_mock_bundle(claim_response, request_bundle, root_url, operation, timestamp)
|
|
341
|
+
def build_mock_bundle(claim_response, request_bundle, root_url, operation, timestamp, ig_version = 'v2.0.1')
|
|
236
342
|
response_bundle = FHIR::Bundle.new(
|
|
237
343
|
id: SecureRandom.uuid,
|
|
238
344
|
meta: FHIR::Meta.new(profile: if operation == 'submit'
|
|
239
|
-
|
|
345
|
+
"http://hl7.org/fhir/us/davinci-pas/StructureDefinition/profile-pas-response-bundle|#{ig_version.delete('v')}"
|
|
240
346
|
else
|
|
241
|
-
|
|
347
|
+
"http://hl7.org/fhir/us/davinci-pas/StructureDefinition/profile-pas-inquiry-response-bundle|#{ig_version.delete('v')}"
|
|
242
348
|
end),
|
|
349
|
+
identifier: if ig_version == 'v2.2.1'
|
|
350
|
+
FHIR::Identifier.new(
|
|
351
|
+
system: 'urn:ietf:rfc:3986',
|
|
352
|
+
value: "urn:uuid:#{SecureRandom.uuid}"
|
|
353
|
+
)
|
|
354
|
+
end,
|
|
243
355
|
timestamp: timestamp.iso8601,
|
|
244
356
|
type: 'collection',
|
|
245
357
|
entry: [
|
|
@@ -248,6 +360,7 @@ module DaVinciPASTestKit
|
|
|
248
360
|
]
|
|
249
361
|
)
|
|
250
362
|
response_bundle.entry.concat(referenced_entities(claim_response, request_bundle.entry, root_url))
|
|
363
|
+
|
|
251
364
|
response_bundle
|
|
252
365
|
end
|
|
253
366
|
|
|
@@ -327,6 +440,9 @@ module DaVinciPASTestKit
|
|
|
327
440
|
when :pended
|
|
328
441
|
code = 'A4'
|
|
329
442
|
display = 'Pending'
|
|
443
|
+
when :modification
|
|
444
|
+
code = 'A6'
|
|
445
|
+
display = 'Modified'
|
|
330
446
|
else # approval or no workflow
|
|
331
447
|
code = 'A1'
|
|
332
448
|
display = 'Certified in total'
|
|
@@ -344,19 +460,23 @@ module DaVinciPASTestKit
|
|
|
344
460
|
ref
|
|
345
461
|
end
|
|
346
462
|
|
|
347
|
-
def referenced_entities(resource, entries, root_url)
|
|
348
|
-
matches = []
|
|
463
|
+
def referenced_entities(resource, entries, root_url, matches = [])
|
|
349
464
|
attributes = resource&.source_hash&.keys
|
|
350
|
-
attributes
|
|
465
|
+
attributes&.each do |attr|
|
|
466
|
+
if attr.to_s == 'request' && resource.respond_to?(:resourceType) && resource.resourceType == 'ClaimResponse'
|
|
467
|
+
next
|
|
468
|
+
end
|
|
469
|
+
|
|
351
470
|
value = resource.send(attr.to_sym)
|
|
352
471
|
if value.is_a?(FHIR::Reference) && value.reference.present?
|
|
353
472
|
match = find_matching_entry(value.reference, entries, root_url)
|
|
354
|
-
if match.present? && matches.none?
|
|
473
|
+
if match.present? && matches.none? { |m| m.fullUrl == match.fullUrl }
|
|
355
474
|
value.reference = match.fullUrl
|
|
356
|
-
matches
|
|
475
|
+
matches << match
|
|
476
|
+
referenced_entities(match.resource, entries, root_url, matches)
|
|
357
477
|
end
|
|
358
|
-
elsif value.is_a?(Array) && value.all?
|
|
359
|
-
value.each { |val|
|
|
478
|
+
elsif value.is_a?(Array) && value.all?(FHIR::Model)
|
|
479
|
+
value.each { |val| referenced_entities(val, entries, root_url, matches) }
|
|
360
480
|
end
|
|
361
481
|
end
|
|
362
482
|
|
|
@@ -382,8 +502,10 @@ module DaVinciPASTestKit
|
|
|
382
502
|
url.sub(%r{/[^/]*/[^/]*(/)?\z}, '')
|
|
383
503
|
end
|
|
384
504
|
|
|
385
|
-
def claim_response_full_url_from_submit_response_bundle(
|
|
386
|
-
|
|
505
|
+
def claim_response_full_url_from_submit_response_bundle(submit_response_bundle)
|
|
506
|
+
submit_response_bundle = submit_response_bundle.parameter[0] if submit_response_bundle.is_a?(FHIR::Parameters)
|
|
507
|
+
|
|
508
|
+
claim_response_entry = submit_response_bundle&.entry&.find { |e| e&.resource&.resourceType == 'ClaimResponse' }
|
|
387
509
|
|
|
388
510
|
if claim_response_entry.present?
|
|
389
511
|
return claim_response_entry.fullUrl unless claim_response_entry.fullUrl.blank?
|
|
@@ -393,5 +515,19 @@ module DaVinciPASTestKit
|
|
|
393
515
|
end
|
|
394
516
|
"urn:uuid:#{SecureRandom.uuid}"
|
|
395
517
|
end
|
|
518
|
+
|
|
519
|
+
# Wraps a Bundle in a Parameters resource for v2.2.1 inquire responses
|
|
520
|
+
# @param bundle [FHIR::Bundle] The Bundle to wrap
|
|
521
|
+
# @return [FHIR::Parameters] Parameters resource with the bundle as a return parameter
|
|
522
|
+
def wrap_bundle_in_parameters(bundle)
|
|
523
|
+
return nil unless bundle.is_a?(FHIR::Bundle)
|
|
524
|
+
|
|
525
|
+
parameters = FHIR::Parameters.new
|
|
526
|
+
parameters.parameter << FHIR::Parameters::Parameter.new(
|
|
527
|
+
name: 'return',
|
|
528
|
+
resource: bundle
|
|
529
|
+
)
|
|
530
|
+
parameters
|
|
531
|
+
end
|
|
396
532
|
end
|
|
397
533
|
end
|
data/lib/davinci_pas_test_kit/{session_identification.rb → client/session_identification.rb}
RENAMED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
require 'udap_security_test_kit'
|
|
2
|
-
require_relative 'urls'
|
|
3
2
|
|
|
4
3
|
module DaVinciPASTestKit
|
|
5
4
|
module SessionIdentification
|
|
@@ -12,7 +11,7 @@ module DaVinciPASTestKit
|
|
|
12
11
|
test_session_id
|
|
13
12
|
end
|
|
14
13
|
|
|
15
|
-
def
|
|
14
|
+
def session_endpoint_url(endpoint, client_id, session_url_path)
|
|
16
15
|
path =
|
|
17
16
|
if client_id.present?
|
|
18
17
|
''
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
module DaVinciPASTestKit
|
|
2
|
+
module UserInputResponse
|
|
3
|
+
def self.included(klass)
|
|
4
|
+
klass.extend ClassMethods
|
|
5
|
+
end
|
|
6
|
+
|
|
7
|
+
# Reads an arbitrary input value by name from result.input_json.
|
|
8
|
+
def self.read_input(result, input_name)
|
|
9
|
+
JSON.parse(result.input_json)&.find { |i| i['name'] == input_name.to_s }&.dig('value')
|
|
10
|
+
rescue JSON::ParserError
|
|
11
|
+
nil
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def self.user_inputted_response(configurable, operation, result)
|
|
15
|
+
config_key = operation == 'submit' ? :submit_respond_with : :inquire_respond_with
|
|
16
|
+
input_key = configurable.config.options[config_key]
|
|
17
|
+
return unless input_key.present?
|
|
18
|
+
|
|
19
|
+
read_input(result, input_key)
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
# Returns the tester-provided response candidates for the must support workflow
|
|
23
|
+
# as a list of parsed JSON hashes. The input value may be a single entry or a
|
|
24
|
+
# JSON array of entries, where each entry is either a bare FHIR Bundle or a
|
|
25
|
+
# wrapper object holding the response Bundle under "bundle" alongside optional
|
|
26
|
+
# selection "criteria".
|
|
27
|
+
# Returns nil if the input is not present, not parseable, or malformed.
|
|
28
|
+
def self.response_candidates(result, operation)
|
|
29
|
+
input_name = operation == 'submit' ? 'ms_submit_responses' : 'ms_inquire_responses'
|
|
30
|
+
input_value = JSON.parse(result.input_json)&.find { |i| i['name'] == input_name }&.dig('value')
|
|
31
|
+
return unless input_value.present?
|
|
32
|
+
|
|
33
|
+
candidates = JSON.parse(input_value)
|
|
34
|
+
candidates = [candidates] unless candidates.is_a?(Array)
|
|
35
|
+
candidates if candidates.all? { |candidate| valid_candidate?(candidate) }
|
|
36
|
+
rescue JSON::ParserError
|
|
37
|
+
nil
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
def self.valid_candidate?(candidate)
|
|
41
|
+
return false unless candidate.is_a?(Hash)
|
|
42
|
+
|
|
43
|
+
candidate['resourceType'] == 'Bundle' || candidate['bundle'].is_a?(Hash)
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
def user_inputted_response?(input_key)
|
|
47
|
+
input_key.present? && send(input_key).present?
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
def input_title(input_key)
|
|
51
|
+
config.inputs[input_key]&.title || config.inputs[input_key]&.name
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
module ClassMethods
|
|
55
|
+
def submit_respond_with(key)
|
|
56
|
+
config options: { submit_respond_with: key }
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
def inquire_respond_with(key)
|
|
60
|
+
config options: { inquire_respond_with: key }
|
|
61
|
+
end
|
|
62
|
+
end
|
|
63
|
+
end
|
|
64
|
+
end
|
|
@@ -1,21 +1,20 @@
|
|
|
1
1
|
require 'subscriptions_test_kit'
|
|
2
2
|
require 'udap_security_test_kit'
|
|
3
3
|
require 'smart_app_launch_test_kit'
|
|
4
|
-
require_relative 'validator_suppressions'
|
|
5
|
-
require_relative 'tags'
|
|
6
|
-
require_relative '
|
|
7
|
-
require_relative 'endpoints/
|
|
8
|
-
require_relative 'endpoints/
|
|
9
|
-
require_relative 'endpoints/
|
|
10
|
-
require_relative '
|
|
11
|
-
require_relative '
|
|
12
|
-
require_relative '
|
|
13
|
-
require_relative '
|
|
14
|
-
require_relative '
|
|
15
|
-
require_relative '
|
|
16
|
-
require_relative '
|
|
17
|
-
require_relative '
|
|
18
|
-
require_relative 'descriptions'
|
|
4
|
+
require_relative '../../cross_suite/validator_suppressions'
|
|
5
|
+
require_relative '../../cross_suite/tags'
|
|
6
|
+
require_relative '../endpoints/claim_endpoint'
|
|
7
|
+
require_relative '../endpoints/token_endpoint'
|
|
8
|
+
require_relative '../endpoints/subscription_create_endpoint'
|
|
9
|
+
require_relative '../endpoints/subscription_status_endpoint'
|
|
10
|
+
require_relative '../pas_client_options'
|
|
11
|
+
require_relative 'pas_client_workflows_group'
|
|
12
|
+
require_relative 'pas_client_must_support_group'
|
|
13
|
+
require_relative 'pas_client_subscription_setup_group'
|
|
14
|
+
require_relative 'pas_client_registration_group'
|
|
15
|
+
require_relative 'pas_client_auth_smart_group'
|
|
16
|
+
require_relative 'pas_client_auth_udap_group'
|
|
17
|
+
require_relative '../client_input_descriptions'
|
|
19
18
|
|
|
20
19
|
module DaVinciPASTestKit
|
|
21
20
|
module DaVinciPASV201
|
|
@@ -34,7 +33,7 @@ module DaVinciPASTestKit
|
|
|
34
33
|
requirements and may change the test validation logic.
|
|
35
34
|
|
|
36
35
|
The best place to get started is the [Client Testing
|
|
37
|
-
Walkthrough](https://github.com/inferno-framework/davinci-pas-test-kit/wiki/Client-
|
|
36
|
+
Walkthrough](https://github.com/inferno-framework/davinci-pas-test-kit/wiki/Client-Instructions-v2.0.1),
|
|
38
37
|
which provides a step-by-step guide for running the tests against a client and provides
|
|
39
38
|
an example client implemented in Postman. Visit the [Client Testing
|
|
40
39
|
Details](https://github.com/inferno-framework/davinci-pas-test-kit/wiki/Client-Details)
|
|
@@ -101,6 +100,10 @@ module DaVinciPASTestKit
|
|
|
101
100
|
# We strip `<ResourceType>: <FHIRPath>: ` for the sake of matching
|
|
102
101
|
SUPPRESSED_MESSAGES.match?(message.message.sub(/\A\S+: \S+: /, ''))
|
|
103
102
|
end
|
|
103
|
+
|
|
104
|
+
validation_context do
|
|
105
|
+
snomedCT '731000124108'
|
|
106
|
+
end
|
|
104
107
|
end
|
|
105
108
|
|
|
106
109
|
suite_option :client_type,
|
|
@@ -145,6 +148,14 @@ module DaVinciPASTestKit
|
|
|
145
148
|
suite_endpoint :get, SESSION_FHIR_SUBSCRIPTION_INSTANCE_STATUS_PATH, SubscriptionStatusEndpoint
|
|
146
149
|
suite_endpoint :post, FHIR_SUBSCRIPTION_RESOURCE_STATUS_PATH, SubscriptionStatusEndpoint
|
|
147
150
|
suite_endpoint :post, SESSION_FHIR_SUBSCRIPTION_RESOURCE_STATUS_PATH, SubscriptionStatusEndpoint
|
|
151
|
+
allow_cors UDAPSecurityTestKit::UDAP_DISCOVERY_PATH, SMARTAppLaunch::SMART_DISCOVERY_PATH,
|
|
152
|
+
FHIR_METADATA_PATH, SESSION_FHIR_METADATA_PATH,
|
|
153
|
+
UDAPSecurityTestKit::REGISTRATION_PATH, UDAPSecurityTestKit::TOKEN_PATH,
|
|
154
|
+
SUBMIT_PATH, SESSION_SUBMIT_PATH, INQUIRE_PATH, SESSION_INQUIRE_PATH,
|
|
155
|
+
FHIR_SUBSCRIPTION_PATH, SESSION_FHIR_SUBSCRIPTION_PATH,
|
|
156
|
+
FHIR_SUBSCRIPTION_INSTANCE_PATH, SESSION_FHIR_SUBSCRIPTION_INSTANCE_PATH,
|
|
157
|
+
FHIR_SUBSCRIPTION_INSTANCE_STATUS_PATH, SESSION_FHIR_SUBSCRIPTION_INSTANCE_STATUS_PATH,
|
|
158
|
+
FHIR_SUBSCRIPTION_RESOURCE_STATUS_PATH, SESSION_FHIR_SUBSCRIPTION_RESOURCE_STATUS_PATH
|
|
148
159
|
|
|
149
160
|
resume_test_route :get, RESUME_PASS_PATH do |request|
|
|
150
161
|
request.query_parameters['token']
|
|
@@ -154,6 +165,12 @@ module DaVinciPASTestKit
|
|
|
154
165
|
request.query_parameters['token']
|
|
155
166
|
end
|
|
156
167
|
|
|
168
|
+
config(
|
|
169
|
+
options: {
|
|
170
|
+
ig_version: 'v2.0.1'
|
|
171
|
+
}
|
|
172
|
+
)
|
|
173
|
+
|
|
157
174
|
group from: :pas_client_v201_registration
|
|
158
175
|
|
|
159
176
|
# SMART test groups (with :session_url_path input removed)
|
data/lib/davinci_pas_test_kit/client/v2.0.1/must_support/pas_client_gather_must_support_test.rb
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
require_relative '../../abstract_gather_must_support_test'
|
|
2
|
+
require_relative '../urls'
|
|
3
|
+
|
|
4
|
+
module DaVinciPASTestKit
|
|
5
|
+
module DaVinciPASV201
|
|
6
|
+
class PASClientGatherMustSupportTest < AbstractGatherMustSupportTest
|
|
7
|
+
include URLs
|
|
8
|
+
|
|
9
|
+
id :pas_client_v201_gather_must_support
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
end
|
|
@@ -1,14 +1,9 @@
|
|
|
1
|
-
require_relative '../../../
|
|
2
|
-
require_relative '../../../generator/group_metadata'
|
|
1
|
+
require_relative '../../../cross_suite/must_support/must_support_request_type_test'
|
|
3
2
|
|
|
4
3
|
module DaVinciPASTestKit
|
|
5
4
|
module DaVinciPASV201
|
|
6
|
-
class
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
attr_accessor :resource_type
|
|
10
|
-
|
|
11
|
-
id :pas_client_submit_v201_must_support_requirement
|
|
5
|
+
class PasClientMustSupportRequestProfilesTest < DaVinciPASTestKit::MustSupportRequestTypeTest
|
|
6
|
+
id :pas_client_v201_must_support_request_profiles
|
|
12
7
|
title %(
|
|
13
8
|
At least one instance of a request profile (PAS Medication Request, PAS Service Request,
|
|
14
9
|
PAS Device Request, or PAS Nutrition Order) is observed with all of its must support elements
|
|
@@ -74,44 +69,15 @@ module DaVinciPASTestKit
|
|
|
74
69
|
* NutritionOrder.patient
|
|
75
70
|
)
|
|
76
71
|
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
def scratch_resources
|
|
88
|
-
scratch[:submit_request_resources] ||= {}
|
|
89
|
-
end
|
|
90
|
-
|
|
91
|
-
def all_scratch_resources
|
|
92
|
-
scratch_resources[:all] ||= []
|
|
93
|
-
end
|
|
94
|
-
|
|
95
|
-
def resources_of_interest
|
|
96
|
-
collection = tagged_resources(SUBMIT_TAG).presence || all_scratch_resources
|
|
97
|
-
collection.select { |resource| resource_types.include?(resource.resourceType) }
|
|
98
|
-
end
|
|
99
|
-
|
|
100
|
-
def grouped_resources
|
|
101
|
-
resources_of_interest.group_by(&:resourceType)
|
|
102
|
-
end
|
|
103
|
-
|
|
104
|
-
run do
|
|
105
|
-
msg = 'Request Bundle must include at least one instance of either DeviceRequest, MedicationRequest,
|
|
106
|
-
NutritionOrder, or ServiceRequest resource'
|
|
107
|
-
assert resources_of_interest.present?, msg
|
|
108
|
-
|
|
109
|
-
grouped_resources.each do |type, resources|
|
|
110
|
-
@@resource_type = @resource_type = type # rubocop:disable Style/ClassVars
|
|
111
|
-
perform_must_support_test(resources)
|
|
112
|
-
end
|
|
113
|
-
validate_must_support(false)
|
|
114
|
-
end
|
|
72
|
+
config(
|
|
73
|
+
options: {
|
|
74
|
+
profile_keys: ['device_request', 'medication_request', 'nutrition_order', 'service_request'],
|
|
75
|
+
user_input_validation: false,
|
|
76
|
+
ig_version: 'v2.0.1',
|
|
77
|
+
type: 'request',
|
|
78
|
+
operation: 'submit'
|
|
79
|
+
}
|
|
80
|
+
)
|
|
115
81
|
end
|
|
116
82
|
end
|
|
117
83
|
end
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
require_relative '
|
|
2
|
-
require_relative '
|
|
3
|
-
require_relative '
|
|
4
|
-
require_relative '
|
|
5
|
-
require_relative '../../tags'
|
|
1
|
+
require_relative 'workflows/pas_client_approval_submit_test'
|
|
2
|
+
require_relative 'workflows/pas_client_response_attest'
|
|
3
|
+
require_relative 'workflows/pas_client_request_bundle_validation_test'
|
|
4
|
+
require_relative 'workflows/pas_client_response_bundle_validation_test'
|
|
5
|
+
require_relative '../../cross_suite/tags'
|
|
6
6
|
|
|
7
7
|
module DaVinciPASTestKit
|
|
8
8
|
module DaVinciPASV201
|