davinci_pas_test_kit 0.15.1 → 0.16.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/config/presets/g33_br_provider.json +13 -0
- data/config/presets/pas_client_example.json +2 -2
- data/config/presets/pas_client_v201_run_against_pas_server.json +2 -2
- data/config/presets/pas_client_v221_run_against_pas_server.json +3 -3
- data/config/presets/pas_ri.json +6 -6
- data/config/presets/pas_server_v201_run_against_pas_client.json.erb +6 -6
- data/config/presets/pas_server_v221_run_against_pas_client.json.erb +10 -10
- data/lib/davinci_pas_test_kit/client/abstract_approval_submit_test.rb +28 -17
- data/lib/davinci_pas_test_kit/client/abstract_denial_submit_test.rb +26 -16
- data/lib/davinci_pas_test_kit/client/abstract_gather_must_support_test.rb +45 -74
- data/lib/davinci_pas_test_kit/client/abstract_modification_submit_test.rb +29 -19
- data/lib/davinci_pas_test_kit/client/abstract_response_attest.rb +75 -6
- data/lib/davinci_pas_test_kit/client/abstract_subscription_create_test.rb +26 -9
- data/lib/davinci_pas_test_kit/client/abstract_subscription_update_delete_test.rb +91 -0
- data/lib/davinci_pas_test_kit/client/client_bundle_validation_helper.rb +245 -0
- data/lib/davinci_pas_test_kit/client/client_input_descriptions.rb +96 -1
- data/lib/davinci_pas_test_kit/client/endpoints/claim_endpoint.rb +128 -72
- data/lib/davinci_pas_test_kit/client/endpoints/endpoint_session_identification.rb +24 -0
- data/lib/davinci_pas_test_kit/client/endpoints/expired_token.rb +40 -0
- data/lib/davinci_pas_test_kit/client/endpoints/subscription_create_endpoint.rb +7 -12
- data/lib/davinci_pas_test_kit/client/endpoints/subscription_delete_endpoint.rb +13 -0
- data/lib/davinci_pas_test_kit/client/endpoints/subscription_read_endpoint.rb +13 -0
- data/lib/davinci_pas_test_kit/client/endpoints/subscription_status_endpoint.rb +15 -20
- data/lib/davinci_pas_test_kit/client/endpoints/subscription_update_endpoint.rb +13 -0
- data/lib/davinci_pas_test_kit/client/endpoints/token_endpoint.rb +16 -0
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/beneficiary/client_inquire_request_must_support_beneficiary_test.rb +3 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/beneficiary/client_inquire_response_must_support_beneficiary_test.rb +3 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/beneficiary/client_submit_request_must_support_beneficiary_test.rb +3 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/beneficiary/client_submit_response_must_support_beneficiary_test.rb +3 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/claim_inquiry/client_inquire_request_must_support_claim_inquiry_test.rb +3 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/claim_update/client_submit_request_must_support_claim_update_test.rb +3 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/claiminquiryresponse/client_inquire_response_must_support_claiminquiryresponse_test.rb +3 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/claimresponse/client_submit_response_must_support_claimresponse_test.rb +3 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/communication_request/client_submit_response_must_support_communication_request_test.rb +3 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/coverage/client_inquire_request_must_support_coverage_test.rb +3 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/coverage/client_submit_request_must_support_coverage_test.rb +3 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/encounter/client_submit_request_must_support_encounter_test.rb +3 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/insurer/client_inquire_request_must_support_insurer_test.rb +3 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/insurer/client_inquire_response_must_support_insurer_test.rb +3 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/insurer/client_submit_request_must_support_insurer_test.rb +3 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/insurer/client_submit_response_must_support_insurer_test.rb +3 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/pas_client_inquire_must_support_group.rb +1 -1
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/pas_client_inquire_response_must_support_group.rb +9 -31
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/pas_client_submit_must_support_group.rb +1 -1
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/pas_client_submit_response_must_support_group.rb +10 -32
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/pas_inquiry_request_bundle/client_inquire_request_must_support_pas_inquiry_request_bundle_test.rb +3 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/pas_inquiry_response_bundle/client_inquire_response_must_support_pas_inquiry_response_bundle_test.rb +3 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/pas_request_bundle/client_submit_request_must_support_pas_request_bundle_test.rb +3 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/pas_response_bundle/client_submit_response_must_support_pas_response_bundle_test.rb +3 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/practitioner/client_inquire_request_must_support_practitioner_test.rb +3 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/practitioner/client_inquire_response_must_support_practitioner_test.rb +3 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/practitioner/client_submit_request_must_support_practitioner_test.rb +3 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/practitioner/client_submit_response_must_support_practitioner_test.rb +3 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/practitioner_role/client_inquire_request_must_support_practitioner_role_test.rb +3 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/practitioner_role/client_inquire_response_must_support_practitioner_role_test.rb +3 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/practitioner_role/client_submit_request_must_support_practitioner_role_test.rb +3 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/practitioner_role/client_submit_response_must_support_practitioner_role_test.rb +3 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/requestor/client_inquire_request_must_support_requestor_test.rb +3 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/requestor/client_inquire_response_must_support_requestor_test.rb +3 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/requestor/client_submit_request_must_support_requestor_test.rb +3 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/requestor/client_submit_response_must_support_requestor_test.rb +3 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/subscriber/client_inquire_request_must_support_subscriber_test.rb +3 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/subscriber/client_submit_request_must_support_subscriber_test.rb +3 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.2.1/beneficiary/client_inquire_response_must_support_beneficiary_test.rb +4 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.2.1/beneficiary/client_submit_response_must_support_beneficiary_test.rb +4 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.2.1/claim_inquiry/client_inquire_request_must_support_claim_inquiry_test.rb +3 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.2.1/claim_update/client_submit_request_must_support_claim_update_test.rb +3 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.2.1/claiminquiryresponse/client_inquire_response_must_support_claiminquiryresponse_test.rb +4 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.2.1/claimresponse/client_submit_response_must_support_claimresponse_test.rb +4 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.2.1/communication_request/client_submit_response_must_support_communication_request_test.rb +4 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.2.1/insurer/client_inquire_response_must_support_insurer_test.rb +4 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.2.1/insurer/client_submit_response_must_support_insurer_test.rb +4 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.2.1/pas_client_inquire_must_support_group.rb +8 -6
- data/lib/davinci_pas_test_kit/client/generated/v2.2.1/pas_client_inquire_response_must_support_group.rb +9 -31
- data/lib/davinci_pas_test_kit/client/generated/v2.2.1/pas_client_submit_must_support_group.rb +13 -9
- data/lib/davinci_pas_test_kit/client/generated/v2.2.1/pas_client_submit_response_must_support_group.rb +10 -32
- data/lib/davinci_pas_test_kit/client/generated/v2.2.1/pas_inquiry_response_bundle/client_inquire_response_must_support_pas_inquiry_response_bundle_test.rb +4 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.2.1/pas_response_bundle/client_submit_response_must_support_pas_response_bundle_test.rb +4 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.2.1/practitioner/client_inquire_response_must_support_practitioner_test.rb +4 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.2.1/practitioner/client_submit_response_must_support_practitioner_test.rb +4 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.2.1/practitioner_role/client_inquire_response_must_support_practitioner_role_test.rb +4 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.2.1/practitioner_role/client_submit_response_must_support_practitioner_role_test.rb +4 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.2.1/requestor/client_inquire_response_must_support_requestor_test.rb +4 -3
- data/lib/davinci_pas_test_kit/client/generated/v2.2.1/requestor/client_submit_response_must_support_requestor_test.rb +4 -3
- data/lib/davinci_pas_test_kit/client/jobs/send_pas_subscription_notification.rb +64 -3
- data/lib/davinci_pas_test_kit/client/pas_client_subscription_pas_conformance_test.rb +4 -3
- data/lib/davinci_pas_test_kit/client/registration/abstract_configuration_other_display_test.rb +6 -4
- data/lib/davinci_pas_test_kit/client/registration/abstract_configuration_smart_display_test.rb +8 -4
- data/lib/davinci_pas_test_kit/client/registration/abstract_configuration_udap_display_test.rb +9 -4
- data/lib/davinci_pas_test_kit/client/registration/abstract_other_auth_attest_test.rb +5 -4
- data/lib/davinci_pas_test_kit/client/request_count_gating.rb +14 -0
- data/lib/davinci_pas_test_kit/client/response_generator.rb +50 -9
- data/lib/davinci_pas_test_kit/client/session_identification.rb +26 -7
- data/lib/davinci_pas_test_kit/client/subscription_notification_trigger.rb +80 -0
- data/lib/davinci_pas_test_kit/client/subscription_setup_requirement.rb +59 -0
- data/lib/davinci_pas_test_kit/client/user_input_response.rb +50 -10
- data/lib/davinci_pas_test_kit/client/v2.0.1/client_suite.rb +30 -15
- data/lib/davinci_pas_test_kit/client/v2.0.1/must_support/pas_client_must_support_request_profiles_test.rb +2 -2
- data/lib/davinci_pas_test_kit/client/v2.0.1/pas_client_approval_group.rb +8 -7
- data/lib/davinci_pas_test_kit/client/v2.0.1/pas_client_auth_smart_group.rb +4 -4
- data/lib/davinci_pas_test_kit/client/v2.0.1/pas_client_auth_udap_group.rb +4 -4
- data/lib/davinci_pas_test_kit/client/v2.0.1/pas_client_denial_group.rb +8 -7
- data/lib/davinci_pas_test_kit/client/v2.0.1/pas_client_must_support_group.rb +38 -52
- data/lib/davinci_pas_test_kit/client/v2.0.1/pas_client_pended_group.rb +28 -22
- data/lib/davinci_pas_test_kit/client/v2.0.1/pas_client_registration_group.rb +2 -2
- data/lib/davinci_pas_test_kit/client/v2.0.1/pas_client_subscription_setup_group.rb +2 -2
- data/lib/davinci_pas_test_kit/client/v2.0.1/pas_client_workflows_group.rb +2 -2
- data/lib/davinci_pas_test_kit/client/v2.0.1/workflows/pas_client_inquire_request_bundle_validation_test.rb +15 -21
- data/lib/davinci_pas_test_kit/client/v2.0.1/workflows/pas_client_inquire_response_bundle_validation_test.rb +29 -29
- data/lib/davinci_pas_test_kit/client/v2.0.1/workflows/pas_client_pended_submit_test.rb +49 -40
- data/lib/davinci_pas_test_kit/client/v2.0.1/workflows/pas_client_request_bundle_validation_test.rb +15 -21
- data/lib/davinci_pas_test_kit/client/v2.0.1/workflows/pas_client_response_bundle_validation_test.rb +29 -29
- data/lib/davinci_pas_test_kit/client/v2.2.1/attestations/attestation_instructions.rb +10 -0
- data/lib/davinci_pas_test_kit/client/v2.2.1/attestations/client_data_element_expectations_attestation_test.rb +44 -0
- data/lib/davinci_pas_test_kit/client/v2.2.1/attestations/client_provider_review_attestation_test.rb +45 -0
- data/lib/davinci_pas_test_kit/client/v2.2.1/attestations/client_security_attestation_test.rb +42 -0
- data/lib/davinci_pas_test_kit/client/v2.2.1/attestations/client_subscription_error_recovery_attestation_test.rb +42 -0
- data/lib/davinci_pas_test_kit/client/v2.2.1/client_suite.rb +64 -12
- data/lib/davinci_pas_test_kit/client/v2.2.1/error_handling/pas_client_operation_failure_submit_test.rb +20 -10
- data/lib/davinci_pas_test_kit/client/v2.2.1/error_handling/pas_client_operation_outcome_validation_test.rb +11 -5
- data/lib/davinci_pas_test_kit/client/v2.2.1/error_handling/pas_client_processing_error_response_validation_test.rb +21 -12
- data/lib/davinci_pas_test_kit/client/v2.2.1/error_handling/pas_client_processing_error_submit_test.rb +19 -8
- data/lib/davinci_pas_test_kit/client/v2.2.1/must_support/must_support_with_attestation_option.rb +90 -40
- data/lib/davinci_pas_test_kit/client/v2.2.1/pas_client_approval_group.rb +12 -11
- data/lib/davinci_pas_test_kit/client/v2.2.1/pas_client_attestations_group.rb +32 -0
- data/lib/davinci_pas_test_kit/client/v2.2.1/pas_client_auth_smart_group.rb +4 -4
- data/lib/davinci_pas_test_kit/client/v2.2.1/pas_client_auth_udap_group.rb +4 -4
- data/lib/davinci_pas_test_kit/client/v2.2.1/pas_client_claim_updates_group.rb +24 -6
- data/lib/davinci_pas_test_kit/client/v2.2.1/pas_client_denial_group.rb +12 -10
- data/lib/davinci_pas_test_kit/client/v2.2.1/pas_client_modification_group.rb +13 -14
- data/lib/davinci_pas_test_kit/client/v2.2.1/pas_client_must_support_group.rb +55 -59
- data/lib/davinci_pas_test_kit/client/v2.2.1/pas_client_operation_failure_group.rb +8 -5
- data/lib/davinci_pas_test_kit/client/v2.2.1/pas_client_pended_group.rb +53 -41
- data/lib/davinci_pas_test_kit/client/v2.2.1/pas_client_processing_error_group.rb +9 -7
- data/lib/davinci_pas_test_kit/client/v2.2.1/pas_client_registration_group.rb +2 -2
- data/lib/davinci_pas_test_kit/client/v2.2.1/pas_client_subscription_setup_group.rb +9 -4
- data/lib/davinci_pas_test_kit/client/v2.2.1/pas_client_subscription_update_delete_group.rb +57 -0
- data/lib/davinci_pas_test_kit/client/v2.2.1/pas_client_workflows_group.rb +22 -2
- data/lib/davinci_pas_test_kit/client/v2.2.1/subscription/pas_client_subscription_create_test.rb +2 -1
- data/lib/davinci_pas_test_kit/client/v2.2.1/subscription/pas_client_subscription_put_update_pas_conformance_test.rb +49 -0
- data/lib/davinci_pas_test_kit/client/v2.2.1/subscription/pas_client_subscription_update_delete_test.rb +12 -0
- data/lib/davinci_pas_test_kit/client/v2.2.1/workflows/pas_client_claim_update_referenced_resources_test.rb +5 -6
- data/lib/davinci_pas_test_kit/client/v2.2.1/workflows/pas_client_claim_update_submit_tests.rb +82 -56
- data/lib/davinci_pas_test_kit/client/v2.2.1/workflows/pas_client_inquire_request_bundle_validation_test.rb +17 -20
- data/lib/davinci_pas_test_kit/client/v2.2.1/workflows/pas_client_inquire_response_bundle_validation_test.rb +59 -27
- data/lib/davinci_pas_test_kit/client/v2.2.1/workflows/pas_client_modification_verification_test.rb +0 -3
- data/lib/davinci_pas_test_kit/client/v2.2.1/workflows/pas_client_pended_send_notification_test.rb +138 -0
- data/lib/davinci_pas_test_kit/client/v2.2.1/workflows/pas_client_pended_submit_test.rb +32 -85
- data/lib/davinci_pas_test_kit/client/v2.2.1/workflows/pas_client_request_bundle_validation_test.rb +16 -21
- data/lib/davinci_pas_test_kit/client/v2.2.1/workflows/pas_client_response_bundle_validation_test.rb +27 -27
- data/lib/davinci_pas_test_kit/cross_suite/fhirpath_utils.rb +13 -3
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.0.1/beneficiary/metadata.yml +4 -0
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.0.1/claim_inquiry/metadata.yml +15 -0
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.0.1/claim_update/metadata.yml +17 -0
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.0.1/claiminquiryresponse/metadata.yml +15 -0
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.0.1/claimresponse/metadata.yml +15 -0
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.0.1/communication_request/metadata.yml +4 -0
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.0.1/coverage/metadata.yml +1 -0
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.0.1/device_request/metadata.yml +2 -0
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.0.1/encounter/metadata.yml +3 -0
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.0.1/insurer/metadata.yml +1 -0
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.0.1/medication_request/metadata.yml +2 -0
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.0.1/metadata.yml +143 -0
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.0.1/nutrition_order/metadata.yml +2 -0
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.0.1/pas_inquiry_request_bundle/metadata.yml +2 -0
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.0.1/pas_inquiry_response_bundle/metadata.yml +2 -0
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.0.1/pas_request_bundle/metadata.yml +2 -0
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.0.1/pas_response_bundle/metadata.yml +2 -0
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.0.1/practitioner/metadata.yml +1 -0
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.0.1/practitioner_role/metadata.yml +1 -0
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.0.1/requestor/metadata.yml +1 -0
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.0.1/service_request/metadata.yml +3 -0
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.0.1/subscriber/metadata.yml +4 -0
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.0.1/task/metadata.yml +1 -4
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/beneficiary/metadata.yml +1 -0
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/claim_inquiry/metadata.yml +23 -0
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/claim_update/metadata.yml +31 -0
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/claiminquiryresponse/metadata.yml +42 -0
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/claimresponse/metadata.yml +42 -0
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/communication_request/metadata.yml +4 -0
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/coverage/metadata.yml +1 -0
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/device_request/metadata.yml +2 -0
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/encounter/metadata.yml +3 -0
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/insurer/metadata.yml +1 -0
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/medication_request/metadata.yml +2 -0
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/metadata.yml +265 -1
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/nutrition_order/metadata.yml +2 -0
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/pas_inquiry_request_bundle/metadata.yml +2 -0
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/pas_inquiry_response_bundle/metadata.yml +2 -0
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/pas_request_bundle/metadata.yml +2 -0
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/pas_response_bundle/metadata.yml +2 -0
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/practitioner/metadata.yml +1 -0
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/practitioner_role/metadata.yml +1 -0
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/requestor/metadata.yml +1 -0
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/service_request/metadata.yml +3 -0
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/subscriber/metadata.yml +1 -0
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/task/metadata.yml +4 -4
- data/lib/davinci_pas_test_kit/cross_suite/pas_bundle_validation.rb +570 -312
- data/lib/davinci_pas_test_kit/cross_suite/pas_constants.rb +13 -0
- data/lib/davinci_pas_test_kit/cross_suite/pas_datatype_constraints.rb +166 -0
- data/lib/davinci_pas_test_kit/cross_suite/pas_subscription_verification.rb +8 -4
- data/lib/davinci_pas_test_kit/cross_suite/referenced_resource_presence_validation.rb +141 -0
- data/lib/davinci_pas_test_kit/cross_suite/response_selection_utils.rb +39 -21
- data/lib/davinci_pas_test_kit/cross_suite/tags.rb +11 -6
- data/lib/davinci_pas_test_kit/cross_suite/validator_configuration.rb +16 -0
- data/lib/davinci_pas_test_kit/cross_suite/validator_suppressions.rb +210 -146
- data/lib/davinci_pas_test_kit/docs/demo/PAS Client Suite Demonstration.postman_collection.json +7 -7
- data/lib/davinci_pas_test_kit/ext/inferno_core/runnable.rb +1 -0
- data/lib/davinci_pas_test_kit/generator/client_must_support_group_generator.rb +47 -16
- data/lib/davinci_pas_test_kit/generator/must_support_target_profiles.rb +17 -0
- data/lib/davinci_pas_test_kit/generator/must_support_test_generator.rb +14 -2
- data/lib/davinci_pas_test_kit/generator/pas_must_support_metadata_extractor.rb +1 -2
- data/lib/davinci_pas_test_kit/generator/profile_metadata.rb +1 -1
- data/lib/davinci_pas_test_kit/generator/server_must_support_group_generator.rb +23 -0
- data/lib/davinci_pas_test_kit/generator/server_suite_generator.rb +8 -7
- data/lib/davinci_pas_test_kit/generator/templates/client_must_support_group.rb.erb +22 -3
- data/lib/davinci_pas_test_kit/generator/templates/client_must_support_response_group.rb.erb +7 -16
- data/lib/davinci_pas_test_kit/generator/templates/must_support.rb.erb +11 -10
- data/lib/davinci_pas_test_kit/generator/templates/server_must_support_group.rb.erb +22 -0
- data/lib/davinci_pas_test_kit/generator/templates/server_suite.rb.erb +9 -11
- data/lib/davinci_pas_test_kit/generator/templates/use_case_group.rb.erb +3 -0
- data/lib/davinci_pas_test_kit/generator/use_case_group_generator.rb +19 -13
- data/lib/davinci_pas_test_kit/parameters_helper.rb +13 -5
- data/lib/davinci_pas_test_kit/pas_notification_conformance_test.rb +2 -2
- data/lib/davinci_pas_test_kit/requirements/davinci_pas_test_kit_requirements.csv +14 -7
- data/lib/davinci_pas_test_kit/requirements/generated/davinci_pas_client_suite_v201_requirements_coverage.csv +21 -21
- data/lib/davinci_pas_test_kit/requirements/generated/davinci_pas_client_suite_v221_requirements_coverage.csv +30 -26
- data/lib/davinci_pas_test_kit/requirements/generated/davinci_pas_server_suite_v221_requirements_coverage.csv +39 -33
- data/lib/davinci_pas_test_kit/requirements/hl7.fhir.us.davinci-pas_2.2.1_requirements.xlsx +0 -0
- data/lib/davinci_pas_test_kit/server/claim_operation_logic.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/beneficiary/server_inquire_request_must_support_beneficiary_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/beneficiary/server_inquire_response_must_support_beneficiary_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/beneficiary/server_submit_request_must_support_beneficiary_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/beneficiary/server_submit_response_must_support_beneficiary_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/claim_inquiry/server_inquire_request_must_support_claim_inquiry_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/claim_update/server_submit_request_must_support_claim_update_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/claiminquiryresponse/server_inquire_response_must_support_claiminquiryresponse_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/claimresponse/server_submit_response_must_support_claimresponse_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/communication_request/server_submit_response_must_support_communication_request_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/coverage/server_inquire_request_must_support_coverage_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/coverage/server_submit_request_must_support_coverage_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/encounter/server_submit_request_must_support_encounter_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/insurer/server_inquire_request_must_support_insurer_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/insurer/server_inquire_response_must_support_insurer_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/insurer/server_submit_request_must_support_insurer_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/insurer/server_submit_response_must_support_insurer_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/pas_inquiry_request_bundle/server_inquire_request_must_support_pas_inquiry_request_bundle_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/pas_inquiry_response_bundle/server_inquire_response_must_support_pas_inquiry_response_bundle_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/pas_request_bundle/server_submit_request_must_support_pas_request_bundle_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/pas_response_bundle/server_submit_response_must_support_pas_response_bundle_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/pas_server_approval_use_case_group.rb +4 -3
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/pas_server_denial_use_case_group.rb +4 -3
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/pas_server_pended_use_case_group.rb +7 -6
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/practitioner/server_inquire_request_must_support_practitioner_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/practitioner/server_inquire_response_must_support_practitioner_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/practitioner/server_submit_request_must_support_practitioner_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/practitioner/server_submit_response_must_support_practitioner_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/practitioner_role/server_inquire_request_must_support_practitioner_role_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/practitioner_role/server_inquire_response_must_support_practitioner_role_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/practitioner_role/server_submit_request_must_support_practitioner_role_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/practitioner_role/server_submit_response_must_support_practitioner_role_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/requestor/server_inquire_request_must_support_requestor_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/requestor/server_inquire_response_must_support_requestor_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/requestor/server_submit_request_must_support_requestor_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/requestor/server_submit_response_must_support_requestor_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/server_suite.rb +9 -11
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/subscriber/server_inquire_request_must_support_subscriber_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/subscriber/server_submit_request_must_support_subscriber_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/task/server_inquire_response_must_support_task_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/task/server_submit_response_must_support_task_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/beneficiary/server_inquire_request_must_support_beneficiary_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/beneficiary/server_inquire_response_must_support_beneficiary_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/beneficiary/server_submit_request_must_support_beneficiary_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/beneficiary/server_submit_response_must_support_beneficiary_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/claim_inquiry/server_inquire_request_must_support_claim_inquiry_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/claim_update/server_submit_request_must_support_claim_update_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/claiminquiryresponse/server_inquire_response_must_support_claiminquiryresponse_test.rb +3 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/claimresponse/server_submit_response_must_support_claimresponse_test.rb +3 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/communication_request/server_submit_response_must_support_communication_request_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/coverage/server_inquire_request_must_support_coverage_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/coverage/server_submit_request_must_support_coverage_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/encounter/server_submit_request_must_support_encounter_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/insurer/server_inquire_request_must_support_insurer_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/insurer/server_inquire_response_must_support_insurer_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/insurer/server_submit_request_must_support_insurer_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/insurer/server_submit_response_must_support_insurer_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/pas_inquiry_request_bundle/server_inquire_request_must_support_pas_inquiry_request_bundle_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/pas_inquiry_response_bundle/server_inquire_response_must_support_pas_inquiry_response_bundle_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/pas_request_bundle/server_submit_request_must_support_pas_request_bundle_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/pas_response_bundle/server_submit_response_must_support_pas_response_bundle_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/pas_server_approval_use_case_group.rb +5 -3
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/pas_server_denial_use_case_group.rb +5 -3
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/pas_server_must_support_group.rb +12 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/pas_server_pended_use_case_group.rb +9 -4
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/practitioner/server_inquire_request_must_support_practitioner_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/practitioner/server_inquire_response_must_support_practitioner_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/practitioner/server_submit_request_must_support_practitioner_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/practitioner/server_submit_response_must_support_practitioner_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/practitioner_role/server_inquire_request_must_support_practitioner_role_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/practitioner_role/server_inquire_response_must_support_practitioner_role_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/practitioner_role/server_submit_request_must_support_practitioner_role_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/practitioner_role/server_submit_response_must_support_practitioner_role_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/requestor/server_inquire_request_must_support_requestor_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/requestor/server_inquire_response_must_support_requestor_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/requestor/server_submit_request_must_support_requestor_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/requestor/server_submit_response_must_support_requestor_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/server_suite.rb +9 -11
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/subscriber/server_inquire_request_must_support_subscriber_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/subscriber/server_submit_request_must_support_subscriber_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/task/server_inquire_response_must_support_task_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/task/server_submit_response_must_support_task_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/pas_claim_response_decision_test.rb +2 -2
- data/lib/davinci_pas_test_kit/server/server_request_bundle_validation_test.rb +4 -6
- data/lib/davinci_pas_test_kit/server/server_response_bundle_validation_test.rb +17 -10
- data/lib/davinci_pas_test_kit/server/v2.0.1/must_support/pas_server_must_support_request_profiles_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/v2.0.1/pas_server_subscription_setup.rb +1 -1
- data/lib/davinci_pas_test_kit/server/v2.2.1/claim_inquiry/server_claim_inquiry_response_tests.rb +89 -0
- data/lib/davinci_pas_test_kit/server/v2.2.1/must_support/pas_server_must_support_request_profiles_test.rb +1 -1
- data/lib/davinci_pas_test_kit/server/v2.2.1/pas_error_group.rb +2 -0
- data/lib/davinci_pas_test_kit/server/v2.2.1/pas_server_claim_inquiry_responses_group.rb +17 -0
- data/lib/davinci_pas_test_kit/server/v2.2.1/pas_server_claim_updates_group.rb +1 -1
- data/lib/davinci_pas_test_kit/server/v2.2.1/pas_server_no_custom_extensions_test.rb +241 -0
- data/lib/davinci_pas_test_kit/server/v2.2.1/pas_server_subscription_capability_statement_test.rb +40 -0
- data/lib/davinci_pas_test_kit/server/v2.2.1/pas_server_subscription_setup.rb +15 -10
- data/lib/davinci_pas_test_kit/server/v2.2.1/server_replaced_pa_inquire_reference_input_test.rb +63 -0
- data/lib/davinci_pas_test_kit/server/v2.2.1/server_replaced_pa_inquire_reference_test.rb +109 -0
- data/lib/davinci_pas_test_kit/version.rb +2 -2
- metadata +38 -13
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/task/client_inquire_response_must_support_task_test.rb +0 -45
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/task/client_submit_response_must_support_task_test.rb +0 -45
- data/lib/davinci_pas_test_kit/client/generated/v2.2.1/task/client_inquire_response_must_support_task_test.rb +0 -55
- data/lib/davinci_pas_test_kit/client/generated/v2.2.1/task/client_submit_response_must_support_task_test.rb +0 -55
- data/lib/davinci_pas_test_kit/client/v2.2.1/pas_client_error_handling_group.rb +0 -20
|
@@ -39,7 +39,7 @@ module DaVinciPASTestKit
|
|
|
39
39
|
target_element
|
|
40
40
|
end
|
|
41
41
|
|
|
42
|
-
# rubocop:disable Metrics/CyclomaticComplexity
|
|
42
|
+
# rubocop:disable-next Metrics/CyclomaticComplexity
|
|
43
43
|
def take_discriminator_step(current_element, path)
|
|
44
44
|
if path.start_with?('extension(')
|
|
45
45
|
ext_url, remaining_path = path.delete_prefix("extension('").split("')", 2)
|
|
@@ -74,7 +74,6 @@ module DaVinciPASTestKit
|
|
|
74
74
|
|
|
75
75
|
[next_element, remaining_path&.delete_prefix('.')]
|
|
76
76
|
end
|
|
77
|
-
# rubocop:enable Metrics/CyclomaticComplexity
|
|
78
77
|
|
|
79
78
|
def value_slices
|
|
80
79
|
must_support_value_slice_elements.map do |current_element|
|
|
@@ -42,7 +42,7 @@ module DaVinciPASTestKit
|
|
|
42
42
|
|
|
43
43
|
# A sorted, bulleted markdown list of this profile's must support elements (slices, elements,
|
|
44
44
|
# extensions, and choices), each line prefixed with `indent` spaces. Shared by the per-profile
|
|
45
|
-
# must support tests and the collapsed
|
|
45
|
+
# must support tests and the collapsed tests so both stay in sync with the metadata.
|
|
46
46
|
def must_support_list_string(indent: 8)
|
|
47
47
|
slice_names = must_supports[:slices].map { |slice| slice[:slice_id] }
|
|
48
48
|
element_names = must_supports[:elements].map { |element| "#{resource}.#{element[:path]}" }
|
|
@@ -110,6 +110,20 @@ module DaVinciPASTestKit
|
|
|
110
110
|
ig_metadata.profiles.select { |profile_metadata| MustSupportTargetProfiles.request_profile?(profile_metadata) }
|
|
111
111
|
end
|
|
112
112
|
|
|
113
|
+
# Additional Claim Inquiry Response checks are v2.2.x-specific, so they are only included
|
|
114
|
+
# in the v2.2+ server element support group.
|
|
115
|
+
def additional_claim_inquiry_response_requirements_supported?
|
|
116
|
+
ig_metadata.ig_version.start_with?('v2.2')
|
|
117
|
+
end
|
|
118
|
+
|
|
119
|
+
def additional_submit_request_requirements_supported?
|
|
120
|
+
ig_metadata.ig_version == 'v2.2.1'
|
|
121
|
+
end
|
|
122
|
+
|
|
123
|
+
def additional_claim_inquiry_response_requirements_group_id
|
|
124
|
+
"pas_server_#{ig_version_for_id}_claim_inquiry_responses"
|
|
125
|
+
end
|
|
126
|
+
|
|
113
127
|
def verifies_requirements
|
|
114
128
|
case ig_metadata.ig_version
|
|
115
129
|
when 'v2.0.1'
|
|
@@ -123,9 +137,18 @@ module DaVinciPASTestKit
|
|
|
123
137
|
['hl7.fhir.us.davinci-pas_2.0.1@35']
|
|
124
138
|
when 'inquire_request_v2.0.1'
|
|
125
139
|
['hl7.fhir.us.davinci-pas_2.0.1@36']
|
|
140
|
+
when 'submit_request_v2.2.1', 'inquire_request_v2.2.1'
|
|
141
|
+
[
|
|
142
|
+
'hl7.fhir.us.davinci-pas_2.2.1@conf-4',
|
|
143
|
+
'hl7.fhir.us.davinci-pas_2.2.1@conf-5'
|
|
144
|
+
]
|
|
126
145
|
end
|
|
127
146
|
end
|
|
128
147
|
|
|
148
|
+
def replaced_pa_inquire_reference_test?
|
|
149
|
+
ig_version == 'v2.2.1'
|
|
150
|
+
end
|
|
151
|
+
|
|
129
152
|
def description
|
|
130
153
|
<<~DESCRIPTION
|
|
131
154
|
Demonstrate the ability of the server to support all PAS-defined profiles
|
|
@@ -46,15 +46,16 @@ module DaVinciPASTestKit
|
|
|
46
46
|
"Da Vinci PAS Server Suite #{ig_metadata.ig_version}"
|
|
47
47
|
end
|
|
48
48
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
49
|
+
# The validator_configuration.rb constant listing the IGs for this version, e.g. V221_VALIDATOR_IGS.
|
|
50
|
+
# A version without one fails when the generated suite loads.
|
|
51
|
+
def validator_igs_constant
|
|
52
|
+
"V#{ig_metadata.ig_version.delete('v.')}_VALIDATOR_IGS"
|
|
52
53
|
end
|
|
53
54
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
55
|
+
# v2.2+ suites use the targeted suppression list; v2.0.1 keeps the legacy list plus the
|
|
56
|
+
# targeted entries.
|
|
57
|
+
def suppressed_messages_constant
|
|
58
|
+
ig_metadata.ig_version.start_with?('v2.2') ? 'V221_SUPPRESSED_MESSAGES' : 'V201_SUPPRESSED_MESSAGES'
|
|
58
59
|
end
|
|
59
60
|
|
|
60
61
|
def ig_link
|
|
@@ -24,8 +24,13 @@ module DaVinciPASTestKit
|
|
|
24
24
|
|
|
25
25
|
<%- if optional_must_support_enabled? -%>
|
|
26
26
|
<%- if operation == 'submit' -%>
|
|
27
|
+
<%- if enable_lax_checks? -%>
|
|
27
28
|
# At least one of the PAS request profiles must be present; unobserved must support
|
|
28
29
|
# elements on the request profiles that are present may be attested as not collected.
|
|
30
|
+
<%- else -%>
|
|
31
|
+
# At least one of the PAS request profiles must be present, with all of its must support
|
|
32
|
+
# elements observed.
|
|
33
|
+
<%- end -%>
|
|
29
34
|
test from: :pas_client_<%= ig_version_for_id %>_must_support_with_attestation_option do
|
|
30
35
|
id :pas_client_<%= ig_version_for_id %>_submit_request_profiles_must_support_with_attestation_option
|
|
31
36
|
title 'At least one instance of a request profile (PAS Medication Request, PAS Service Request, PAS Device Request, or PAS Nutrition Order) is observed with all of its must support elements'
|
|
@@ -37,20 +42,30 @@ module DaVinciPASTestKit
|
|
|
37
42
|
],
|
|
38
43
|
ig_version: '<%= ig_version %>',
|
|
39
44
|
type: 'request',
|
|
40
|
-
operation: '<%= operation %>'
|
|
45
|
+
operation: '<%= operation %>',
|
|
46
|
+
disable_attestation: <%= !enable_lax_checks? %>
|
|
41
47
|
}
|
|
42
48
|
)
|
|
43
49
|
description MustSupportWithAttestationOption.build_description(config.options)
|
|
50
|
+
<%- if verifies_requirements -%>
|
|
51
|
+
verifies_requirements(*verifies_requirements, <%= verifies_requirements.map { |r| "'#{r}'" }.join(', ') %>)
|
|
52
|
+
<%- end -%>
|
|
44
53
|
end
|
|
45
54
|
|
|
46
55
|
<%- end -%>
|
|
47
56
|
<%- claim_profiles.each do |profile_metadata| -%>
|
|
48
57
|
# Mandatory - the <%= profile_metadata.profile_name %> profile must always be demonstrated.
|
|
49
|
-
test from: :<%= test_id_for_profile(profile_metadata) %>
|
|
58
|
+
test from: :<%= test_id_for_profile(profile_metadata) %> <%- if verifies_requirements -%> do
|
|
59
|
+
verifies_requirements(*verifies_requirements, <%= verifies_requirements.map { |r| "'#{r}'" }.join(', ') %>)
|
|
60
|
+
end<%- end -%>
|
|
50
61
|
|
|
51
62
|
<%- end -%>
|
|
63
|
+
<%- if enable_lax_checks? -%>
|
|
52
64
|
# All other <%= operation %> request profiles - unobserved must support elements may be
|
|
53
65
|
# attested as not collected by the client system.
|
|
66
|
+
<%- else -%>
|
|
67
|
+
# All other <%= operation %> request profiles - all must support elements must be observed.
|
|
68
|
+
<%- end -%>
|
|
54
69
|
test from: :pas_client_<%= ig_version_for_id %>_must_support_with_attestation_option do
|
|
55
70
|
id :pas_client_<%= ig_version_for_id %>_<%= operation %>_request_other_must_support_with_attestation_option
|
|
56
71
|
title '<%= other_profiles_title %>'
|
|
@@ -62,10 +77,14 @@ module DaVinciPASTestKit
|
|
|
62
77
|
],
|
|
63
78
|
ig_version: '<%= ig_version %>',
|
|
64
79
|
type: 'request',
|
|
65
|
-
operation: '<%= operation %>'
|
|
80
|
+
operation: '<%= operation %>',
|
|
81
|
+
disable_attestation: <%= !enable_lax_checks? %>
|
|
66
82
|
}
|
|
67
83
|
)
|
|
68
84
|
description MustSupportWithAttestationOption.build_description(config.options)
|
|
85
|
+
<%- if verifies_requirements -%>
|
|
86
|
+
verifies_requirements(*verifies_requirements, <%= verifies_requirements.map { |r| "'#{r}'" }.join(', ') %>)
|
|
87
|
+
<%- end -%>
|
|
69
88
|
end
|
|
70
89
|
<%- else -%>
|
|
71
90
|
<%- if operation == 'submit' -%>
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
<%- profile_test_files.each do |file_name| -%>
|
|
2
2
|
require_relative '<%= file_name %>'
|
|
3
3
|
<%- end -%>
|
|
4
|
-
require_relative '../../<%= ig_version %>/workflows/pas_client_response_attest'
|
|
5
4
|
|
|
6
5
|
module DaVinciPASTestKit
|
|
7
6
|
module <%= module_name %>
|
|
@@ -17,27 +16,19 @@ module DaVinciPASTestKit
|
|
|
17
16
|
<%- if profile_test[:optional] -%>
|
|
18
17
|
test from: :<%= profile_test[:id] %> do
|
|
19
18
|
optional
|
|
19
|
+
simulation_verification
|
|
20
|
+
end
|
|
21
|
+
<%- elsif profile_test[:verifies_response_requirement] -%>
|
|
22
|
+
test from: :<%= profile_test[:id] %> do
|
|
23
|
+
verifies_requirements(*verifies_requirements, '<%= response_verifies_requirement %>')
|
|
24
|
+
simulation_verification
|
|
20
25
|
end
|
|
21
26
|
<%- else -%>
|
|
22
27
|
test from: :<%= profile_test[:id] %> do
|
|
23
|
-
|
|
28
|
+
simulation_verification
|
|
24
29
|
end
|
|
25
30
|
<%- end -%>
|
|
26
31
|
<%- end -%>
|
|
27
|
-
test from: :pas_client_<%= ig_version_for_id %>_response_attest,
|
|
28
|
-
title: 'PAS client handled the $<%= operation %> response must support elements',
|
|
29
|
-
description: %(
|
|
30
|
-
This test provides the tester an opportunity to verify that their client
|
|
31
|
-
correctly processed and used the must support elements present in the
|
|
32
|
-
$<%= operation %> responses received from Inferno during these tests.
|
|
33
|
-
),
|
|
34
|
-
config: { options: {
|
|
35
|
-
workflow_tag: MUST_SUPPORT_WORKFLOW_TAG,
|
|
36
|
-
attest_message: "I attest that the client system correctly processed the must support elements " \
|
|
37
|
-
"contained in the $<%= operation %> responses received from Inferno and did not error."
|
|
38
|
-
} } do
|
|
39
|
-
verifies_requirements 'hl7.fhir.us.davinci-pas_2.2.1@conf-8'
|
|
40
|
-
end
|
|
41
32
|
end
|
|
42
33
|
end
|
|
43
34
|
end
|
|
@@ -7,28 +7,28 @@ module DaVinciPASTestKit
|
|
|
7
7
|
title 'All must support elements for profile <%= profile_name %> are observed on $<%= operation %> <%= request_type.include?('request') ? 'requests' : 'responses' %>'
|
|
8
8
|
description %(
|
|
9
9
|
<% if system == 'client' && request_type.include?('request') %>
|
|
10
|
-
PAS
|
|
11
|
-
must support elements on instances of all profiles included in
|
|
10
|
+
PAS clients are required to be able to populate all
|
|
11
|
+
must support elements on instances of all profiles included in <%= request_type.include?('submit') ? '`$submit`' : '`$inquire`' %>
|
|
12
12
|
requests, including instances of the <%= profile_name %> Profile.
|
|
13
13
|
This test checks all identified instances of the <%= profile_name %>
|
|
14
|
-
Profile on requests sent by the client to ensure that the following
|
|
14
|
+
Profile on requests sent by the PAS client to ensure that the following
|
|
15
15
|
must support elements are observed: <% end %><% if system == 'client' && request_type.include?('response') %>
|
|
16
|
-
PAS
|
|
17
|
-
must support elements on instances of all profiles included in
|
|
16
|
+
PAS clients are required to be able to receive all
|
|
17
|
+
must support elements on instances of all profiles included in <%= request_type.include?('submit') ? '`$submit`' : '`$inquire`' %>
|
|
18
18
|
responses, including instances of the <%= profile_name %> Profile.
|
|
19
19
|
This test checks all identified instances of the <%= profile_name %>
|
|
20
|
-
Profile on responses sent to the client to ensure that the following
|
|
20
|
+
Profile on responses sent to the PAS client to ensure that the following
|
|
21
21
|
must support elements are observed:<% end %><% if system == 'server' && request_type.include?('request') %>
|
|
22
22
|
**USER INPUT VALIDATION**: This test validates input provided by the user instead of the system under test. Errors encountered will be treated as a skip instead of a failure.
|
|
23
23
|
|
|
24
24
|
PAS server systems are required to be able to receive all
|
|
25
|
-
must support elements on instances of all profiles included in
|
|
25
|
+
must support elements on instances of all profiles included in <%= request_type.include?('submit') ? '`$submit`' : '`$inquire`' %>
|
|
26
26
|
requests, including instances of the <%= profile_name %> Profile.
|
|
27
27
|
This test checks all identified instances of the <%= profile_name %>
|
|
28
28
|
Profile on requests sent to the server to ensure that the following
|
|
29
29
|
must support elements are observed:<% end %><% if system == 'server' && request_type.include?('response') %>
|
|
30
30
|
PAS server systems are required to be able to populate all
|
|
31
|
-
must support elements on instances of all profiles included in
|
|
31
|
+
must support elements on instances of all profiles included in <%= request_type.include?('submit') ? '`$submit`' : '`$inquire`' %>
|
|
32
32
|
responses, including instances of the <%= profile_name %> Profile.
|
|
33
33
|
This test checks all identified instances of the <%= profile_name %>
|
|
34
34
|
Profile on responses returned by the server to ensure that the following
|
|
@@ -38,8 +38,9 @@ module DaVinciPASTestKit
|
|
|
38
38
|
)
|
|
39
39
|
<%- if verifies_requirements -%>
|
|
40
40
|
verifies_requirements <%= verifies_requirements.map { |r| "'#{r}'" }.join(', ') %>
|
|
41
|
-
<%- end
|
|
42
|
-
|
|
41
|
+
<%- end -%><%- if tests_conf_6? %>
|
|
42
|
+
verifies_requirements 'hl7.fhir.us.davinci-pas_2.2.1@conf-6'
|
|
43
|
+
<%- end %>
|
|
43
44
|
config(
|
|
44
45
|
options: {
|
|
45
46
|
resource_type: '<%= resource_type %>',
|
|
@@ -3,6 +3,16 @@ require_relative '../../claim_submit_operation_test'
|
|
|
3
3
|
require_relative '../../server_response_bundle_validation_test'
|
|
4
4
|
require_relative '../../claim_inquire_operation_test'
|
|
5
5
|
require_relative '../../<%= ig_version %>/must_support/pas_server_must_support_request_profiles_test'
|
|
6
|
+
<%- if additional_submit_request_requirements_supported? -%>
|
|
7
|
+
require_relative '../../<%= ig_version %>/pas_server_no_custom_extensions_test'
|
|
8
|
+
<%- end -%>
|
|
9
|
+
<%- if additional_claim_inquiry_response_requirements_supported? -%>
|
|
10
|
+
require_relative '../../<%= ig_version %>/pas_server_claim_inquiry_responses_group'
|
|
11
|
+
<%- end -%>
|
|
12
|
+
<% if replaced_pa_inquire_reference_test? -%>
|
|
13
|
+
require_relative '../../<%= ig_version %>/server_replaced_pa_inquire_reference_input_test'
|
|
14
|
+
require_relative '../../<%= ig_version %>/server_replaced_pa_inquire_reference_test'
|
|
15
|
+
<% end -%>
|
|
6
16
|
<%- profile_test_files('submit', 'request').each do |file_name| -%>
|
|
7
17
|
require_relative '<%= file_name %>'
|
|
8
18
|
<%- end -%>
|
|
@@ -92,6 +102,14 @@ module DaVinciPASTestKit
|
|
|
92
102
|
}
|
|
93
103
|
)
|
|
94
104
|
end
|
|
105
|
+
<%- if operation == 'submit' && additional_submit_request_requirements_supported? -%>
|
|
106
|
+
|
|
107
|
+
test from: :pas_server_<%= ig_version_for_id %>_no_custom_extensions_test
|
|
108
|
+
<%- end -%>
|
|
109
|
+
<%- if operation == 'inquire' && replaced_pa_inquire_reference_test? -%>
|
|
110
|
+
test from: :pas_server_<%= ig_version_for_id %>_replaced_pa_inquire_reference_input_test
|
|
111
|
+
test from: :pas_server_<%= ig_version_for_id %>_replaced_pa_inquire_reference_test
|
|
112
|
+
<%- end -%>
|
|
95
113
|
end
|
|
96
114
|
|
|
97
115
|
group do
|
|
@@ -115,6 +133,10 @@ module DaVinciPASTestKit
|
|
|
115
133
|
test from: :<%= id %>
|
|
116
134
|
<%- end -%>
|
|
117
135
|
end
|
|
136
|
+
<%- if operation == 'inquire' && additional_claim_inquiry_response_requirements_supported? -%>
|
|
137
|
+
|
|
138
|
+
group from: :<%= additional_claim_inquiry_response_requirements_group_id %>
|
|
139
|
+
<%- end -%>
|
|
118
140
|
end<%end%>
|
|
119
141
|
end
|
|
120
142
|
end
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
require_relative '../../../cross_suite/validator_configuration'
|
|
1
2
|
require_relative '../../../cross_suite/validator_suppressions'
|
|
2
3
|
require_relative '<%= error_group_file_name %>'
|
|
3
4
|
require_relative '../../<%= ig_metadata.ig_version %>/pas_server_subscription_setup'
|
|
@@ -22,8 +23,7 @@ module DaVinciPASTestKit
|
|
|
22
23
|
|
|
23
24
|
The best place to get started is the [Server Testing
|
|
24
25
|
Instructions](https://github.com/inferno-framework/davinci-pas-test-kit/wiki/Server-Instructions-<%= ig_metadata.ig_version %>),
|
|
25
|
-
which provides a step-by-step guide for running the tests
|
|
26
|
-
an example client implemented in Postman. Visit the [Server Testing
|
|
26
|
+
which provides a step-by-step guide for running the tests. Visit the [Server Testing
|
|
27
27
|
Details](https://github.com/inferno-framework/davinci-pas-test-kit/wiki/Server-Details)
|
|
28
28
|
documentation for information about technical implementation and known limitations of these tests.
|
|
29
29
|
|
|
@@ -34,6 +34,7 @@ module DaVinciPASTestKit
|
|
|
34
34
|
- Approval of a prior authorization request
|
|
35
35
|
- Denial of a prior authorization request
|
|
36
36
|
- Pending of a prior authorization request and a subsequent final decision
|
|
37
|
+
- Claim updates (except in v2.0.1)
|
|
37
38
|
- Inability to process a prior authorization request
|
|
38
39
|
- The ability of the server to handle the full scope of data required by PAS, including
|
|
39
40
|
- Ability to process prior auth requests and inquiries with all PAS profiles and all must support elements on those profiles
|
|
@@ -48,7 +49,7 @@ module DaVinciPASTestKit
|
|
|
48
49
|
required features and functionality are present. HL7® FHIR® resources are
|
|
49
50
|
validated with the Java validator using `tx.fhir.org` as the terminology server.
|
|
50
51
|
|
|
51
|
-
|
|
52
|
+
)
|
|
52
53
|
|
|
53
54
|
links [
|
|
54
55
|
{
|
|
@@ -83,17 +84,14 @@ module DaVinciPASTestKit
|
|
|
83
84
|
)
|
|
84
85
|
|
|
85
86
|
fhir_resource_validator do
|
|
86
|
-
igs
|
|
87
|
+
igs(*<%= validator_igs_constant %>)
|
|
87
88
|
|
|
88
89
|
exclude_message do |message|
|
|
89
|
-
|
|
90
|
-
# We strip `<ResourceType>: <FHIRPath>: ` for the sake of matching
|
|
91
|
-
SUPPRESSED_MESSAGES.match?(message.message.sub(/\A\S+: \S+: /, '')) ||
|
|
92
|
-
message.message.downcase.include?('x12')
|
|
90
|
+
<%= suppressed_messages_constant %>.match?(message.message.sub(VALIDATOR_MESSAGE_LOCATION_PREFIX, ''))
|
|
93
91
|
end
|
|
94
92
|
|
|
95
93
|
validation_context do
|
|
96
|
-
snomedCT
|
|
94
|
+
snomedCT SNOMED_CT_US_EDITION
|
|
97
95
|
end
|
|
98
96
|
end
|
|
99
97
|
|
|
@@ -126,9 +124,9 @@ module DaVinciPASTestKit
|
|
|
126
124
|
|
|
127
125
|
group from: :pas_server_<%= ig_metadata.reformatted_version %>_subscription_setup
|
|
128
126
|
|
|
129
|
-
group 'Demonstrate
|
|
127
|
+
group 'Demonstrate Scenario Support' do
|
|
130
128
|
description %(
|
|
131
|
-
The
|
|
129
|
+
The scenario tests validate that the server can participate in complete
|
|
132
130
|
end-to-end prior authorization interactions, returning responses that are
|
|
133
131
|
conformant and also contain the correct codes.
|
|
134
132
|
)
|
|
@@ -72,6 +72,7 @@ module DaVinciPASTestKit
|
|
|
72
72
|
description %(
|
|
73
73
|
<%= bundle_validation_test_description('submit', 'response').gsub("\n", "\n" + " "*12) %>
|
|
74
74
|
)
|
|
75
|
+
|
|
75
76
|
config(
|
|
76
77
|
options: {
|
|
77
78
|
use_case: '<%= use_case %>',
|
|
@@ -114,6 +115,8 @@ module DaVinciPASTestKit
|
|
|
114
115
|
end
|
|
115
116
|
test from: :pas_notification_pas_conformance_test do
|
|
116
117
|
id :pas_server_<%= ig_version_for_id %>_notification_pas_conformance_<%= use_case %>
|
|
118
|
+
verifies_requirements 'hl7.fhir.us.davinci-pas_2.2.1@spec-61',
|
|
119
|
+
'hl7.fhir.us.davinci-pas_2.2.1@spec-62'
|
|
117
120
|
end
|
|
118
121
|
<% else -%>
|
|
119
122
|
test from: :subscriptions_r4_server_id_only_conformance do
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
require_relative '../cross_suite/pas_constants'
|
|
2
|
+
require_relative 'descriptions'
|
|
2
3
|
|
|
3
4
|
module DaVinciPASTestKit
|
|
4
5
|
class Generator
|
|
@@ -46,7 +47,7 @@ module DaVinciPASTestKit
|
|
|
46
47
|
end
|
|
47
48
|
|
|
48
49
|
def title
|
|
49
|
-
"Successful #{use_case.capitalize}
|
|
50
|
+
"Successful #{use_case.capitalize} Scenario"
|
|
50
51
|
end
|
|
51
52
|
|
|
52
53
|
def output_file_name
|
|
@@ -100,6 +101,8 @@ module DaVinciPASTestKit
|
|
|
100
101
|
case ig_version
|
|
101
102
|
when 'v2.0.1'
|
|
102
103
|
['hl7.fhir.us.davinci-pas_2.0.1@141']
|
|
104
|
+
when 'v2.2.1'
|
|
105
|
+
['hl7.fhir.us.davinci-pas_2.2.1@spec-51', 'hl7.fhir.us.davinci-pas_2.2.1@spec-60']
|
|
103
106
|
end
|
|
104
107
|
end
|
|
105
108
|
|
|
@@ -111,14 +114,18 @@ module DaVinciPASTestKit
|
|
|
111
114
|
end
|
|
112
115
|
|
|
113
116
|
def bundle_response_conformance_requirements_verified(operation)
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
['
|
|
121
|
-
|
|
117
|
+
{
|
|
118
|
+
['submit', 'v2.0.1'] => [
|
|
119
|
+
'hl7.fhir.us.davinci-pas_2.0.1@64', 'hl7.fhir.us.davinci-pas_2.0.1@100',
|
|
120
|
+
'hl7.fhir.us.davinci-pas_2.0.1@101', 'hl7.fhir.us.davinci-pas_2.0.1@102',
|
|
121
|
+
'hl7.fhir.us.davinci-pas_2.0.1@103', 'hl7.fhir.us.davinci-pas_2.0.1@107'
|
|
122
|
+
],
|
|
123
|
+
['submit', 'v2.2.1'] => [
|
|
124
|
+
'hl7.fhir.us.davinci-pas_2.2.1@spec-30', 'hl7.fhir.us.davinci-pas_2.2.1@spec-31',
|
|
125
|
+
'hl7.fhir.us.davinci-pas_2.2.1@spec-33'
|
|
126
|
+
],
|
|
127
|
+
['inquire', 'v2.0.1'] => ['hl7.fhir.us.davinci-pas_2.0.1@131']
|
|
128
|
+
}[[operation, ig_version]]
|
|
122
129
|
end
|
|
123
130
|
|
|
124
131
|
def description
|
|
@@ -138,7 +145,7 @@ module DaVinciPASTestKit
|
|
|
138
145
|
when 'pended'
|
|
139
146
|
if ig_version == 'v2.2.1'
|
|
140
147
|
<<~DESCRIPTION
|
|
141
|
-
Demonstrate a complete prior authorization
|
|
148
|
+
Demonstrate a complete prior authorization scenario including a period
|
|
142
149
|
during which the final decision is pending. This includes demonstrating
|
|
143
150
|
the ability of the server to
|
|
144
151
|
|
|
@@ -148,7 +155,7 @@ module DaVinciPASTestKit
|
|
|
148
155
|
DESCRIPTION
|
|
149
156
|
else
|
|
150
157
|
<<~DESCRIPTION
|
|
151
|
-
Demonstrate a complete prior authorization
|
|
158
|
+
Demonstrate a complete prior authorization scenario including a period
|
|
152
159
|
during which the final decision is pending. This includes demonstrating
|
|
153
160
|
the ability of the server to
|
|
154
161
|
|
|
@@ -175,8 +182,7 @@ module DaVinciPASTestKit
|
|
|
175
182
|
end
|
|
176
183
|
|
|
177
184
|
def profile_link(operation, type)
|
|
178
|
-
|
|
179
|
-
"(#{PASConstants.bundle_profile_url_for_operation_and_type(operation, type)}|#{ig_version})"
|
|
185
|
+
Descriptions.bundle_profile_link(operation, type, ig_version)
|
|
180
186
|
end
|
|
181
187
|
|
|
182
188
|
def bundle_validation_test_description(operation, type)
|
|
@@ -2,15 +2,23 @@ module DaVinciPASTestKit
|
|
|
2
2
|
# Helper module for working with FHIR Parameters resources in v2.2.1
|
|
3
3
|
# Provides utilities to extract Bundles from Parameters.parameter entries
|
|
4
4
|
module ParametersHelper
|
|
5
|
-
# Extracts
|
|
5
|
+
# Extracts the resources from a Parameters resource's entries matching a given parameter name.
|
|
6
6
|
# @param parameters [FHIR::Parameters] The Parameters resource
|
|
7
|
-
# @
|
|
8
|
-
|
|
7
|
+
# @param parameter_name [String] The Parameters.parameter.name to match, e.g. 'return' or 'resource'
|
|
8
|
+
# @return [Array] Resources (one per matching entry, in order; nil for an entry with no resource)
|
|
9
|
+
def extract_resources_from_parameters(parameters, parameter_name)
|
|
9
10
|
return [] unless parameters.is_a?(FHIR::Parameters)
|
|
10
11
|
|
|
11
|
-
parameters.parameter
|
|
12
|
-
.select { |param| param.name ==
|
|
12
|
+
parameters.parameter
|
|
13
|
+
.select { |param| param.name == parameter_name }
|
|
13
14
|
.map(&:resource)
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
# Extracts Bundles from a PAS Inquiry Response Parameters resource
|
|
18
|
+
# @param parameters [FHIR::Parameters] The Parameters resource
|
|
19
|
+
# @return [Array<FHIR::Bundle>] Array of Bundles from return parameters
|
|
20
|
+
def extract_bundles_from_pas_inquiry_response_parameters(parameters)
|
|
21
|
+
extract_resources_from_parameters(parameters, 'return') # rubocop:disable Style/SelectByKind
|
|
14
22
|
.compact
|
|
15
23
|
.select { |resource| resource.is_a?(FHIR::Bundle) }
|
|
16
24
|
end
|
|
@@ -8,8 +8,8 @@ module DaVinciPASTestKit
|
|
|
8
8
|
id :pas_notification_pas_conformance_test
|
|
9
9
|
title 'Notification conforms to PAS-specific requirements'
|
|
10
10
|
description %(
|
|
11
|
-
This test verifies that the notification sent to the client
|
|
12
|
-
for a pended claim update
|
|
11
|
+
This test verifies that the notification sent to the client system
|
|
12
|
+
for a pended claim update conforms
|
|
13
13
|
to PAS-specific requirements beyond the base Subscription Backport IG
|
|
14
14
|
notification requirements. In particular, the focus resource in the
|
|
15
15
|
notification should be the updated ClaimResponse conformant to the
|
|
@@ -250,12 +250,15 @@ hl7.fhir.us.davinci-pas_2.2.1,conf-12,https://hl7.org/fhir/us/davinci-pas/2.2.1/
|
|
|
250
250
|
hl7.fhir.us.davinci-pas_2.2.1,conf-13,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/conformance.html#ci-c-conf-13,"If the proposed change is adopted and published in the PAS continuous integration build or the CI build of one of its dependencies (e.g. US Core), implementations **MAY**, by mutual agreement, pre-adopt the use of those additional profiles and/or mustSupport data elements and not be considered in violation of #1 above.",MAY,"PAS Client, PAS Payer",,false,,
|
|
251
251
|
hl7.fhir.us.davinci-pas_2.2.1,conf-14,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/conformance.html#ci-c-conf-14,"Where cardinality and other constraints present in profiles allow data elements to be omitted, PAS compliant systems **SHALL NOT** treat the omission of those elements as a conformance error.",SHALL NOT,"PAS Client, PAS Payer",,false,,
|
|
252
252
|
hl7.fhir.us.davinci-pas_2.2.1,conf-15,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/conformance.html#ci-c-conf-15,PAS clients and services **SHALL** use standard PAS data elements (i.e. elements found within PAS-defined or inherited profiles and marked as mandatory or mustSupport) to communicate needed data if such elements are intended to convey such information.,SHALL,"PAS Client, PAS Payer",,false,,
|
|
253
|
-
hl7.fhir.us.davinci-pas_2.2.1,conf-16,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/conformance.html#ci-c-conf-16,
|
|
254
|
-
hl7.fhir.us.davinci-pas_2.2.1,
|
|
253
|
+
hl7.fhir.us.davinci-pas_2.2.1,conf-16-A,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/conformance.html#ci-c-conf-16,PAS implementing organizations **SHALL NOT** publish guidance setting expectations for where certain data elements are conveyed within PAS and inherited data structures,SHALL NOT,"PAS Client, PAS Payer",,false,,
|
|
254
|
+
hl7.fhir.us.davinci-pas_2.2.1,conf-16-B,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/conformance.html#ci-c-conf-16,"PAS implementing organizations ... **MAY** submit change requests to PAS, HRex, or US Core requesting that additional guidance be provided to implementers on data structure usage to increase consistency across implementations.",MAY,"PAS Client, PAS Payer",,false,,
|
|
255
|
+
hl7.fhir.us.davinci-pas_2.2.1,metric-1,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/metrics.html#ci-c-metric-1,"Each of these IGs recommends a set of metrics that **SHOULD** or **MAY** be collected by their respective implementations to facilitate the evaluation of adoption, functionality, processes, and improved outcomes.",SHOULD,"PAS Client, PAS Payer",,false,,
|
|
255
256
|
hl7.fhir.us.davinci-pas_2.2.1,metric-2,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/metrics.html#ci-c-metric-2,PAS implementers **SHOULD** store information for each PAS call in a manner that would allow them to respond to measures based on this logical model.,SHOULD,"PAS Client, PAS Payer",,false,,
|
|
256
|
-
hl7.fhir.us.davinci-pas_2.2.1,priv-1,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/privacy.html#ci-c-priv-1,
|
|
257
|
+
hl7.fhir.us.davinci-pas_2.2.1,priv-1-A,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/privacy.html#ci-c-priv-1,Implementations **SHALL** permit provider review of data prior to transmission,SHALL,PAS Client,,false,,
|
|
258
|
+
hl7.fhir.us.davinci-pas_2.2.1,priv-1-B,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/privacy.html#ci-c-priv-1,Implementations ... **SHALL NOT** require [provider review of data prior to transmission],SHALL NOT,PAS Client,,false,,
|
|
257
259
|
hl7.fhir.us.davinci-pas_2.2.1,priv-2,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/privacy.html#ci-c-priv-2,Payers who do not view the FHIR version of the transmitted information **SHOULD** be aware of the possibility of these limitations and ensure they have policies that enforce appropriate sharing constraints on data.,SHOULD,PAS Payer,,false,,
|
|
258
|
-
hl7.fhir.us.davinci-pas_2.2.1,priv-3,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/privacy.html#ci-c-priv-3,PAS Servers **SHOULD** support server-server
|
|
260
|
+
hl7.fhir.us.davinci-pas_2.2.1,priv-3-A,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/privacy.html#ci-c-priv-3,PAS Servers **SHOULD** support server-server Oauth,SHOULD,PAS Payer,,false,,
|
|
261
|
+
hl7.fhir.us.davinci-pas_2.2.1,priv-3-B,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/privacy.html#ci-c-priv-3,PAS Servers ... **MAY** support mutually authenticated TLS.,MAY,PAS Payer,,false,,
|
|
259
262
|
hl7.fhir.us.davinci-pas_2.2.1,prof-1,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/StructureDefinition-profile-datatype-timing.html#ci-c-prof-1,"Timings **SHALL** have at least one of: a count, a frequency and period and periodUnit (with optional frequencyMax and periodMax), a calendarPattern, or a deliveryPattern.",SHALL,PAS Client,,false,,
|
|
260
263
|
hl7.fhir.us.davinci-pas_2.2.1,prof-2,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/StructureDefinition-profile-quantity.html#ci-c-prof-2,Quantities **SHALL** have a value and either a unit or a code,SHALL,"PAS Client, PAS Payer",,false,,
|
|
261
264
|
hl7.fhir.us.davinci-pas_2.2.1,prof-3,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/StructureDefinition-profile-quantity.html#ci-c-prof-3,"If a quantity code is present, it **SHALL** use the X12 quantity units.",SHALL,"PAS Client, PAS Payer",,false,,
|
|
@@ -293,8 +296,10 @@ hl7.fhir.us.davinci-pas_2.2.1,spec-20,https://hl7.org/fhir/us/davinci-pas/2.2.1/
|
|
|
293
296
|
hl7.fhir.us.davinci-pas_2.2.1,spec-21,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/specification.html#ci-c-spec-21,"To attach non-FHIR instance data such as PDFs, CDAs, JPGs, a DocumentReference instance **SHOULD** be used.",SHOULD,PAS Payer,,false,,
|
|
294
297
|
hl7.fhir.us.davinci-pas_2.2.1,spec-22,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/specification.html#ci-c-spec-22,The Claim.supportingInfo.sequence for each entry **SHALL** be unique within the Claim.,SHALL,PAS Payer,,false,,
|
|
295
298
|
hl7.fhir.us.davinci-pas_2.2.1,spec-23,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/specification.html#ci-c-spec-23,All resources **SHALL** comply with their respective profiles.,SHALL,PAS Payer,,false,,
|
|
296
|
-
hl7.fhir.us.davinci-pas_2.2.1,spec-24,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/specification.html#ci-c-spec-24,
|
|
297
|
-
hl7.fhir.us.davinci-pas_2.2.1,spec-
|
|
299
|
+
hl7.fhir.us.davinci-pas_2.2.1,spec-24-A,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/specification.html#ci-c-spec-24,FHIR elements not marked as 'must support' **MAY** be included in resources within the Bundle,MAY,"PAS Client, PAS Payer",,false,,
|
|
300
|
+
hl7.fhir.us.davinci-pas_2.2.1,spec-24-B,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/specification.html#ci-c-spec-24,[C]lient systems **SHOULD** have no expectation of such [non 'must support'] elements being processed by the payer unless prior arrangements have been made.,SHOULD,"PAS Client, PAS Payer",,false,,
|
|
301
|
+
hl7.fhir.us.davinci-pas_2.2.1,spec-25-A,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/specification.html#ci-c-spec-25,Systems that do not process such elements **SHALL** ignore unsupported elements unless they are 'modifier' elements,SHALL,PAS Payer,,false,,
|
|
302
|
+
hl7.fhir.us.davinci-pas_2.2.1,spec-25-B,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/specification.html#ci-c-spec-25,[T]the system **MAY** treat the presence of the [unsupported 'modifier'] element as an error.,MAY,PAS Payer,,false,,
|
|
298
303
|
hl7.fhir.us.davinci-pas_2.2.1,spec-26,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/specification.html#ci-c-spec-26,"In addition, the system **SHALL** make the entire PAS FHIR Bundle available to the intended payer.",SHALL,PAS Payer,,false,,
|
|
299
304
|
hl7.fhir.us.davinci-pas_2.2.1,spec-27,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/specification.html#ci-c-spec-27,The method **MAY** be based on the X12 275 or another method that trading partners have agreed to use.,MAY,PAS Payer,,false,,
|
|
300
305
|
hl7.fhir.us.davinci-pas_2.2.1,spec-28,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/specification.html#ci-c-spec-28,"If the X12 275 is used for this purpose, the 275 BDS01 Filter ID Code element **SHALL** be set to ""B64"" and the CAT02 Attachment Information Format Code element **SHALL** be sent to ""HL"".",SHALL,PAS Payer,,false,,
|
|
@@ -316,7 +321,7 @@ hl7.fhir.us.davinci-pas_2.2.1,spec-43,https://hl7.org/fhir/us/davinci-pas/2.2.1/
|
|
|
316
321
|
hl7.fhir.us.davinci-pas_2.2.1,spec-44,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/specification.html#ci-c-spec-44,This Claim Inquiry Response **SHALL** either reference a Claim or have a Data Absent Reason indicating why the Claim can not be referenced (eg. original claim received by fax).,SHALL,PAS Payer,,false,,
|
|
317
322
|
hl7.fhir.us.davinci-pas_2.2.1,spec-45,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/specification.html#ci-c-spec-45,The referenced Claim instance **SHOULD** be returned if there is information in the Response that needs to be present can not be returned in the Claim Response instance.,SHOULD,PAS Payer,,false,,
|
|
318
323
|
hl7.fhir.us.davinci-pas_2.2.1,spec-46,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/specification.html#ci-c-spec-46,"the returned ClaimResponse **SHALL** include the current results for all submitted items, including any items changed or canceled since the original authoriation request.",SHALL,PAS Payer,,false,,
|
|
319
|
-
hl7.fhir.us.davinci-pas_2.2.1,spec-47,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/specification.html#ci-c-spec-47,"if a specific reference number (either the REF-NT or REF-BB) is submitted and is not the 'current' number (because subsequent additions/changes/cancellations have been made to the prior authorization request), the returned record **SHALL** be the current authorization response - even though it no longer has the same identifier.",SHALL,
|
|
324
|
+
hl7.fhir.us.davinci-pas_2.2.1,spec-47,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/specification.html#ci-c-spec-47,"if a specific reference number (either the REF-NT or REF-BB) is submitted and is not the 'current' number (because subsequent additions/changes/cancellations have been made to the prior authorization request), the returned record **SHALL** be the current authorization response - even though it no longer has the same identifier.",SHALL,PAS Payer,,false,,
|
|
320
325
|
hl7.fhir.us.davinci-pas_2.2.1,spec-48,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/specification.html#ci-c-spec-48,"I.e. If a search is for a 'replaced' prior authorization, the search result **SHALL** include the 'current' prior authorization response for the most recent replacing prior authorization request.",SHALL,PAS Payer,,false,,
|
|
321
326
|
hl7.fhir.us.davinci-pas_2.2.1,spec-49,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/specification.html#ci-c-spec-49,systems **MAY** withhold information about prior authorizations that are 'open' but are deemed to be not relevant to the provider (eg. prior authorization requests for sensitive care where the requesting provider is neither the ordering nor rendering provider) who is checking for the prior authorization status if not searching by a specific Claim identifier.,MAY,PAS Payer,,false,,
|
|
322
327
|
hl7.fhir.us.davinci-pas_2.2.1,spec-50,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/specification.html#ci-c-spec-50,In such situations the response **SHOULD** include an OperationOutcome warning that some prior authorizations have been suppressed and provide an alternative mechanism (e.g. telephone number) to provide further information if needed.,SHOULD,PAS Payer,,false,,
|
|
@@ -349,3 +354,5 @@ hl7.fhir.us.davinci-pas_2.2.1,use-3,https://hl7.org/fhir/us/davinci-pas/2.2.1/en
|
|
|
349
354
|
hl7.fhir.us.davinci-pas_2.2.1,use-4,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/usecases.html#ci-c-use-4,"As well, EHRs **SHOULD** annotate their orders with the decisions contained in the PAS Response.",SHOULD,PAS Client,,false,,
|
|
350
355
|
hl7.fhir.us.davinci-pas_2.2.1,use-5,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/usecases.html#ci-c-use-5,"Prior to sending clinical data as part of the PAS exchange, the provider (or their designated agent) **SHALL** have the ability, but not an obligation, to review patient information and where appropriate amend or withhold the submission to comply with current regulations and relevant provider policies. The provider can choose to turn off the ability to review documentation. The vendor must allow them this option.",SHALL,PAS Client,,false,,
|
|
351
356
|
hl7.fhir.us.davinci-pas_2.2.1,use-6,https://hl7.org/fhir/us/davinci-pas/2.2.1/en/usecases.html#ci-c-use-6,"All exchanges **SHOULD** meet Federal and state regulations, including any HIPAA restrictions and restrictions on sensitive data.",SHOULD,"PAS Client, PAS Payer",,false,,
|
|
357
|
+
hl7.fhir.us.davinci-pas_2.2.1,hrex-conf-1,https://hl7.org/fhir/us/davinci-hrex/1.2.0/en/conformance.html#ci-c-conf-1,Data Sources **SHALL** be capable of populating the data element when sharing resources compliant with the profile.,SHALL,"PAS Client, PAS Payer",,false,,
|
|
358
|
+
hl7.fhir.us.davinci-pas_2.2.1,hrex-conf-2,https://hl7.org/fhir/us/davinci-hrex/1.2.0/en/conformance.html#ci-c-conf-2,Data Consumers **SHALL** be capable of processing resource instances containing the data elements without generating an error or causing the application to fail.,SHALL,"PAS Client, PAS Payer",,false,,
|