davinci_crd_test_kit 0.13.0 → 0.14.1
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/inferno_crd_client_suite.json.erb +20 -14
- data/config/presets/inferno_crd_client_suite_prefetch_subset_v221.json.erb +125 -0
- data/config/presets/inferno_crd_client_suite_v221.json.erb +188 -0
- data/config/presets/inferno_crd_server_suite.json.erb +58 -1
- data/config/presets/inferno_crd_server_suite_v221.json.erb +94 -0
- data/config/presets/ri_crd_request_generator.json_v221.json.erb +13 -0
- data/config/presets/ri_crd_server.json.erb +19 -19
- data/lib/davinci_crd_test_kit/client/client_base_urls.rb +80 -0
- data/lib/davinci_crd_test_kit/{client_hook_request_validation.rb → client/client_hook_request_validation.rb} +1 -1
- data/lib/davinci_crd_test_kit/client/crd_client_options.rb +30 -0
- data/lib/davinci_crd_test_kit/client/endpoints/cds_services_discovery_handler.rb +34 -0
- data/lib/davinci_crd_test_kit/client/endpoints/custom_service_response.rb +342 -0
- data/lib/davinci_crd_test_kit/client/endpoints/gather_response_generation_data.rb +410 -0
- data/lib/davinci_crd_test_kit/client/endpoints/hook_request_endpoint.rb +239 -0
- data/lib/davinci_crd_test_kit/{mock_service_response.rb → client/endpoints/mock_service_response.rb} +165 -59
- data/lib/davinci_crd_test_kit/{card_responses → client/endpoints/mocked_card_responses}/companions_prerequisites.json +1 -0
- data/lib/davinci_crd_test_kit/{card_responses → client/endpoints/mocked_card_responses}/create_update_coverage_information.json +3 -2
- data/lib/davinci_crd_test_kit/{card_responses → client/endpoints/mocked_card_responses}/external_reference.json +1 -1
- data/lib/davinci_crd_test_kit/{card_responses → client/endpoints/mocked_card_responses}/launch_smart_app.json +1 -1
- data/lib/davinci_crd_test_kit/{card_responses → client/endpoints/mocked_card_responses}/propose_alternate_request.json +1 -0
- data/lib/davinci_crd_test_kit/{card_responses → client/endpoints/mocked_card_responses}/request_form_completion.json +17 -16
- data/lib/davinci_crd_test_kit/client/multi_request_message_helper.rb +35 -0
- data/lib/davinci_crd_test_kit/client/tagged_request_load_helper.rb +38 -0
- data/lib/davinci_crd_test_kit/client/v2.0.1/api/client_fhir_api_create_test.rb +43 -0
- data/lib/davinci_crd_test_kit/client/v2.0.1/api/client_fhir_api_read_test.rb +43 -0
- data/lib/davinci_crd_test_kit/client/v2.0.1/api/client_fhir_api_search_test.rb +234 -0
- data/lib/davinci_crd_test_kit/client/v2.0.1/api/client_fhir_api_update_test.rb +43 -0
- data/lib/davinci_crd_test_kit/client/v2.0.1/api/client_fhir_api_validation_test.rb +63 -0
- data/lib/davinci_crd_test_kit/client/v2.0.1/auth/decode_auth_token_test.rb +65 -0
- data/lib/davinci_crd_test_kit/client/v2.0.1/auth/retrieve_jwks_test.rb +109 -0
- data/lib/davinci_crd_test_kit/client/v2.0.1/auth/token_header_test.rb +70 -0
- data/lib/davinci_crd_test_kit/client/v2.0.1/auth/token_payload_test.rb +85 -0
- data/lib/davinci_crd_test_kit/{routes/cds-services.json → client/v2.0.1/cds-services-v201.json} +1 -1
- data/lib/davinci_crd_test_kit/client/v2.0.1/client_appointment_book_group.rb +108 -0
- data/lib/davinci_crd_test_kit/client/v2.0.1/client_card_must_support_group.rb +31 -0
- data/lib/davinci_crd_test_kit/client/v2.0.1/client_encounter_discharge_group.rb +105 -0
- data/lib/davinci_crd_test_kit/client/v2.0.1/client_encounter_start_group.rb +105 -0
- data/lib/davinci_crd_test_kit/client/v2.0.1/client_fhir_api_group.rb +790 -0
- data/lib/davinci_crd_test_kit/client/v2.0.1/client_hooks_group.rb +74 -0
- data/lib/davinci_crd_test_kit/client/v2.0.1/client_order_dispatch_group.rb +111 -0
- data/lib/davinci_crd_test_kit/client/v2.0.1/client_order_select_group.rb +116 -0
- data/lib/davinci_crd_test_kit/client/v2.0.1/client_order_sign_group.rb +113 -0
- data/lib/davinci_crd_test_kit/{client_registration_group.rb → client/v2.0.1/client_registration_group.rb} +12 -8
- data/lib/davinci_crd_test_kit/client/v2.0.1/client_urls.rb +13 -0
- data/lib/davinci_crd_test_kit/client/v2.0.1/crd_client_suite.rb +134 -0
- data/lib/davinci_crd_test_kit/client/v2.0.1/invocation/appointment_book_receive_request_test.rb +129 -0
- data/lib/davinci_crd_test_kit/client/v2.0.1/invocation/encounter_discharge_receive_request_test.rb +126 -0
- data/lib/davinci_crd_test_kit/client/v2.0.1/invocation/encounter_start_receive_request_test.rb +126 -0
- data/lib/davinci_crd_test_kit/client/v2.0.1/invocation/order_dispatch_receive_request_test.rb +138 -0
- data/lib/davinci_crd_test_kit/client/v2.0.1/invocation/order_select_receive_request_test.rb +134 -0
- data/lib/davinci_crd_test_kit/client/v2.0.1/invocation/order_sign_receive_request_test.rb +136 -0
- data/lib/davinci_crd_test_kit/client/v2.0.1/must_support/client_card_must_support_coverage_information.rb +93 -0
- data/lib/davinci_crd_test_kit/client/v2.0.1/must_support/client_card_must_support_external_reference.rb +62 -0
- data/lib/davinci_crd_test_kit/client/v2.0.1/must_support/client_card_must_support_instructions.rb +62 -0
- data/lib/davinci_crd_test_kit/client/v2.0.1/registration/client_registration_verification_test.rb +94 -0
- data/lib/davinci_crd_test_kit/client/v2.0.1/registration/client_service_registration_attestation_test.rb +40 -0
- data/lib/davinci_crd_test_kit/client/v2.0.1/verify_request/hook_request_fetched_data_test.rb +86 -0
- data/lib/davinci_crd_test_kit/client/v2.0.1/verify_request/hook_request_optional_fields_test.rb +63 -0
- data/lib/davinci_crd_test_kit/client/v2.0.1/verify_request/hook_request_prefetch_equals_queried_test.rb +96 -0
- data/lib/davinci_crd_test_kit/client/v2.0.1/verify_request/hook_request_required_fields_test.rb +55 -0
- data/lib/davinci_crd_test_kit/client/v2.0.1/verify_request/hook_request_valid_context_test.rb +70 -0
- data/lib/davinci_crd_test_kit/client/v2.0.1/verify_request/hook_request_valid_prefetch_test.rb +62 -0
- data/lib/davinci_crd_test_kit/client/v2.0.1/verify_response/client_display_cards_attest.rb +83 -0
- data/lib/davinci_crd_test_kit/client/v2.0.1/verify_response/inferno_response_validation.rb +79 -0
- data/lib/davinci_crd_test_kit/client/v2.2.1/api/client_coverage_info_update_test.rb +212 -0
- data/lib/davinci_crd_test_kit/client/v2.2.1/api/client_crd_update_verification_group.rb +18 -0
- data/lib/davinci_crd_test_kit/client/v2.2.1/auth/decode_auth_token_test.rb +69 -0
- data/lib/davinci_crd_test_kit/client/v2.2.1/auth/retrieve_jwks_test.rb +120 -0
- data/lib/davinci_crd_test_kit/client/v2.2.1/auth/token_header_test.rb +92 -0
- data/lib/davinci_crd_test_kit/client/v2.2.1/auth/token_payload_test.rb +93 -0
- data/lib/davinci_crd_test_kit/client/v2.2.1/cds-services-prefetch-subset-v221.json +198 -0
- data/lib/davinci_crd_test_kit/client/v2.2.1/cds-services-v221.json +202 -0
- data/lib/davinci_crd_test_kit/client/v2.2.1/client_appointment_book_group.rb +109 -0
- data/lib/davinci_crd_test_kit/client/v2.2.1/client_cross_hook_group.rb +28 -0
- data/lib/davinci_crd_test_kit/client/v2.2.1/client_encounter_discharge_group.rb +102 -0
- data/lib/davinci_crd_test_kit/client/v2.2.1/client_encounter_start_group.rb +101 -0
- data/lib/davinci_crd_test_kit/client/v2.2.1/client_fhir_api_group.rb +88 -0
- data/lib/davinci_crd_test_kit/client/v2.2.1/client_hooks_group.rb +84 -0
- data/lib/davinci_crd_test_kit/client/v2.2.1/client_long_running_hook_group.rb +32 -0
- data/lib/davinci_crd_test_kit/client/v2.2.1/client_order_dispatch_group.rb +107 -0
- data/lib/davinci_crd_test_kit/client/v2.2.1/client_order_select_group.rb +108 -0
- data/lib/davinci_crd_test_kit/client/v2.2.1/client_order_sign_group.rb +113 -0
- data/lib/davinci_crd_test_kit/client/v2.2.1/client_registration_group.rb +33 -0
- data/lib/davinci_crd_test_kit/client/v2.2.1/client_urls.rb +27 -0
- data/lib/davinci_crd_test_kit/client/v2.2.1/crd_client_suite.rb +234 -0
- data/lib/davinci_crd_test_kit/client/v2.2.1/cross_hook/client_card_must_support_coverage_information_test.rb +63 -0
- data/lib/davinci_crd_test_kit/client/v2.2.1/cross_hook/client_fhirpath_collection_as_comma_delimited_string_test.rb +60 -0
- data/lib/davinci_crd_test_kit/client/v2.2.1/cross_hook/client_hook_instances_unique_test.rb +45 -0
- data/lib/davinci_crd_test_kit/client/v2.2.1/cross_hook/client_location_address_propagation_test.rb +135 -0
- data/lib/davinci_crd_test_kit/client/v2.2.1/cross_hook/client_prefetch_complete_and_subset_test.rb +103 -0
- data/lib/davinci_crd_test_kit/client/v2.2.1/invocation/appointment_book_receive_request_test.rb +156 -0
- data/lib/davinci_crd_test_kit/client/v2.2.1/invocation/encounter_discharge_receive_request_test.rb +157 -0
- data/lib/davinci_crd_test_kit/client/v2.2.1/invocation/encounter_start_receive_request_test.rb +157 -0
- data/lib/davinci_crd_test_kit/client/v2.2.1/invocation/order_dispatch_receive_request_test.rb +165 -0
- data/lib/davinci_crd_test_kit/client/v2.2.1/invocation/order_select_receive_request_test.rb +165 -0
- data/lib/davinci_crd_test_kit/client/v2.2.1/invocation/order_sign_receive_request_test.rb +165 -0
- data/lib/davinci_crd_test_kit/client/v2.2.1/long_running/client_long_running_receive_request_test.rb +64 -0
- data/lib/davinci_crd_test_kit/client/v2.2.1/long_running/client_skip_long_running_attestation_test.rb +54 -0
- data/lib/davinci_crd_test_kit/client/v2.2.1/registration/client_registration_verification_test.rb +161 -0
- data/lib/davinci_crd_test_kit/client/v2.2.1/registration/client_service_registration_attestation_test.rb +108 -0
- data/lib/davinci_crd_test_kit/client/v2.2.1/verify_request/hook_request_conformance_test.rb +47 -0
- data/lib/davinci_crd_test_kit/client/v2.2.1/verify_request/hook_request_coverage_verification_test.rb +152 -0
- data/lib/davinci_crd_test_kit/client/v2.2.1/verify_request/hook_request_data_fetch_verification_test.rb +55 -0
- data/lib/davinci_crd_test_kit/client/v2.2.1/verify_request/hook_request_granted_scopes_test.rb +123 -0
- data/lib/davinci_crd_test_kit/client/v2.2.1/verify_request/hook_request_prefetch_complete_test.rb +133 -0
- data/lib/davinci_crd_test_kit/client/v2.2.1/verify_request/hook_request_prefetch_profiles_test.rb +55 -0
- data/lib/davinci_crd_test_kit/client/v2.2.1/verify_request/hook_request_requested_version_test.rb +54 -0
- data/lib/davinci_crd_test_kit/client/v2.2.1/verify_request/hook_request_secured_transport_test.rb +48 -0
- data/lib/davinci_crd_test_kit/client/v2.2.1/verify_response/client_display_cards_attest.rb +75 -0
- data/lib/davinci_crd_test_kit/client/v2.2.1/verify_response/hook_response_support_coverage_information_test.rb +30 -0
- data/lib/davinci_crd_test_kit/client/v2.2.1/verify_response/inferno_response_validation.rb +77 -0
- data/lib/davinci_crd_test_kit/cross_suite/base_urls.rb +20 -0
- data/lib/davinci_crd_test_kit/cross_suite/cards_identification.rb +321 -0
- data/lib/davinci_crd_test_kit/{cards_validation.rb → cross_suite/cards_validation.rb} +104 -47
- data/lib/davinci_crd_test_kit/cross_suite/coverage-information_stu201_metadata.yml +27 -0
- data/lib/davinci_crd_test_kit/cross_suite/coverage-information_stu221_metadata.yml +60 -0
- data/lib/davinci_crd_test_kit/cross_suite/fhirpath_on_cds_request.rb +177 -0
- data/lib/davinci_crd_test_kit/{hook_request_field_validation.rb → cross_suite/hook_request_field_validation.rb} +282 -203
- data/lib/davinci_crd_test_kit/cross_suite/logical_models_override_helper.rb +220 -0
- data/lib/davinci_crd_test_kit/cross_suite/prefetch_completeness_checker.rb +476 -0
- data/lib/davinci_crd_test_kit/cross_suite/prefetch_contents_validation.rb +81 -0
- data/lib/davinci_crd_test_kit/cross_suite/prefetch_profile_validation.rb +48 -0
- data/lib/davinci_crd_test_kit/cross_suite/profiles_and_resource_types.rb +63 -0
- data/lib/davinci_crd_test_kit/cross_suite/replace_tokens.rb +38 -0
- data/lib/davinci_crd_test_kit/cross_suite/requests_logical_model_validation.rb +203 -0
- data/lib/davinci_crd_test_kit/cross_suite/response_logical_model_validation.rb +435 -0
- data/lib/davinci_crd_test_kit/{suggestion_actions_validation.rb → cross_suite/suggestion_actions_validation.rb} +70 -50
- data/lib/davinci_crd_test_kit/cross_suite/tags.rb +46 -0
- data/lib/davinci_crd_test_kit/metadata.rb +10 -44
- data/lib/davinci_crd_test_kit/requirements/cds-hooks-library_1.0.1_requirements.xlsx +0 -0
- data/lib/davinci_crd_test_kit/requirements/cds-hooks_2.0_requirements.xlsx +0 -0
- data/lib/davinci_crd_test_kit/requirements/cds-hooks_3.0.0-ballot_requirements.xlsx +0 -0
- data/lib/davinci_crd_test_kit/requirements/davinci_crd_test_kit_requirements.csv +742 -65
- data/lib/davinci_crd_test_kit/requirements/generated/crd_client_requirements_coverage.csv +279 -54
- data/lib/davinci_crd_test_kit/requirements/generated/crd_client_v221_requirements_coverage.csv +1430 -0
- data/lib/davinci_crd_test_kit/requirements/generated/crd_server_requirements_coverage.csv +36 -45
- data/lib/davinci_crd_test_kit/requirements/generated/crd_server_v221_requirements_coverage.csv +143 -0
- data/lib/davinci_crd_test_kit/requirements/hl7.fhir.us.davinci-crd_2.0.1_requirements.xlsx +0 -0
- data/lib/davinci_crd_test_kit/requirements/hl7.fhir.us.davinci-crd_2.2.1_requirements.xlsx +0 -0
- data/lib/davinci_crd_test_kit/server/endpoints/jwk_set_endpoint_handler.rb +13 -0
- data/lib/davinci_crd_test_kit/server/endpoints/mock_ehr/fhir_create_endpoint.rb +23 -0
- data/lib/davinci_crd_test_kit/server/endpoints/mock_ehr/fhir_delete_endpoint.rb +30 -0
- data/lib/davinci_crd_test_kit/server/endpoints/mock_ehr/fhir_metadata_endpoint.rb +112 -0
- data/lib/davinci_crd_test_kit/server/endpoints/mock_ehr/fhir_read_endpoint.rb +21 -0
- data/lib/davinci_crd_test_kit/server/endpoints/mock_ehr/fhir_request_handler.rb +261 -0
- data/lib/davinci_crd_test_kit/server/endpoints/mock_ehr/fhir_search_endpoint.rb +561 -0
- data/lib/davinci_crd_test_kit/server/endpoints/mock_ehr/fhir_update_endpoint.rb +24 -0
- data/lib/davinci_crd_test_kit/server/endpoints/mock_ehr/stress-test-Bundle.json +54687 -0
- data/lib/davinci_crd_test_kit/server/endpoints/mock_ehr_endpoints.rb +95 -0
- data/lib/davinci_crd_test_kit/server/jobs/invoke_hook.rb +225 -0
- data/lib/davinci_crd_test_kit/server/jobs/invoke_hook_no_special_requests.rb +17 -0
- data/lib/davinci_crd_test_kit/server/jobs/invoke_hook_with_bad_auth.rb +14 -0
- data/lib/davinci_crd_test_kit/{jwt_helper.rb → server/jwt_helper.rb} +1 -12
- data/lib/davinci_crd_test_kit/server/resource_extractor.rb +68 -0
- data/lib/davinci_crd_test_kit/server/server_abstract_invoke_hook_test.rb +183 -0
- data/lib/davinci_crd_test_kit/server/server_base_urls.rb +30 -0
- data/lib/davinci_crd_test_kit/{server_hook_helper.rb → server/server_hook_helper.rb} +3 -3
- data/lib/davinci_crd_test_kit/{server_hook_request_validation.rb → server/server_hook_request_validation.rb} +1 -1
- data/lib/davinci_crd_test_kit/{test_helper.rb → server/server_test_helper.rb} +7 -3
- data/lib/davinci_crd_test_kit/server/v2.0.1/crd_metadata/Appointment.yml +5 -0
- data/lib/davinci_crd_test_kit/server/v2.0.1/crd_metadata/ClaimResponse.yml +5 -0
- data/lib/davinci_crd_test_kit/server/v2.0.1/crd_metadata/CommunicationRequest.yml +5 -0
- data/lib/davinci_crd_test_kit/server/v2.0.1/crd_metadata/Coverage.yml +21 -0
- data/lib/davinci_crd_test_kit/server/v2.0.1/crd_metadata/Device.yml +5 -0
- data/lib/davinci_crd_test_kit/server/v2.0.1/crd_metadata/DeviceRequest.yml +5 -0
- data/lib/davinci_crd_test_kit/server/v2.0.1/crd_metadata/Encounter.yml +7 -0
- data/lib/davinci_crd_test_kit/server/v2.0.1/crd_metadata/Location.yml +5 -0
- data/lib/davinci_crd_test_kit/server/v2.0.1/crd_metadata/MedicationRequest.yml +5 -0
- data/lib/davinci_crd_test_kit/server/v2.0.1/crd_metadata/NutritionOrder.yml +5 -0
- data/lib/davinci_crd_test_kit/server/v2.0.1/crd_metadata/Organization.yml +5 -0
- data/lib/davinci_crd_test_kit/server/v2.0.1/crd_metadata/Patient.yml +5 -0
- data/lib/davinci_crd_test_kit/server/v2.0.1/crd_metadata/Practitioner.yml +5 -0
- data/lib/davinci_crd_test_kit/server/v2.0.1/crd_metadata/PractitionerRole.yml +40 -0
- data/lib/davinci_crd_test_kit/server/v2.0.1/crd_metadata/ServiceRequest.yml +5 -0
- data/lib/davinci_crd_test_kit/server/v2.0.1/crd_metadata/Task.yml +5 -0
- data/lib/davinci_crd_test_kit/server/v2.0.1/crd_metadata/VisionPrescription.yml +5 -0
- data/lib/davinci_crd_test_kit/server/v2.0.1/crd_server_suite.rb +99 -0
- data/lib/davinci_crd_test_kit/server/v2.0.1/discovery/discovery_endpoint_test.rb +90 -0
- data/lib/davinci_crd_test_kit/server/v2.0.1/discovery/discovery_services_validation_test.rb +67 -0
- data/lib/davinci_crd_test_kit/server/v2.0.1/interaction/server_invoke_hook_test.rb +12 -0
- data/lib/davinci_crd_test_kit/server/v2.0.1/must_support/coverage_information_system_action_across_hooks_validation_test.rb +34 -0
- data/lib/davinci_crd_test_kit/server/v2.0.1/must_support/external_reference_card_across_hooks_validation_test.rb +30 -0
- data/lib/davinci_crd_test_kit/server/v2.0.1/must_support/instructions_card_received_across_hooks_test.rb +27 -0
- data/lib/davinci_crd_test_kit/server/v2.0.1/server_appointment_book_group.rb +191 -0
- data/lib/davinci_crd_test_kit/server/v2.0.1/server_demonstrate_hook_response_group.rb +93 -0
- data/lib/davinci_crd_test_kit/server/v2.0.1/server_discovery_group.rb +62 -0
- data/lib/davinci_crd_test_kit/server/v2.0.1/server_encounter_discharge_group.rb +186 -0
- data/lib/davinci_crd_test_kit/server/v2.0.1/server_encounter_start_group.rb +186 -0
- data/lib/davinci_crd_test_kit/server/v2.0.1/server_hooks_group.rb +73 -0
- data/lib/davinci_crd_test_kit/server/v2.0.1/server_order_dispatch_group.rb +191 -0
- data/lib/davinci_crd_test_kit/server/v2.0.1/server_order_select_group.rb +211 -0
- data/lib/davinci_crd_test_kit/server/v2.0.1/server_order_sign_group.rb +216 -0
- data/lib/davinci_crd_test_kit/server/v2.0.1/server_required_card_response_validation_group.rb +28 -0
- data/lib/davinci_crd_test_kit/server/v2.0.1/server_urls.rb +13 -0
- data/lib/davinci_crd_test_kit/server/v2.0.1/verify_request/service_request_context_validation_test.rb +30 -0
- data/lib/davinci_crd_test_kit/server/v2.0.1/verify_request/service_request_optional_fields_validation_test.rb +39 -0
- data/lib/davinci_crd_test_kit/server/v2.0.1/verify_request/service_request_required_fields_validation_test.rb +40 -0
- data/lib/davinci_crd_test_kit/server/v2.0.1/verify_response/additional_orders_validation_test.rb +59 -0
- data/lib/davinci_crd_test_kit/server/v2.0.1/verify_response/card_optional_fields_validation_test.rb +51 -0
- data/lib/davinci_crd_test_kit/server/v2.0.1/verify_response/coverage_information_system_action_received_test.rb +65 -0
- data/lib/davinci_crd_test_kit/server/v2.0.1/verify_response/coverage_information_system_action_validation_test.rb +120 -0
- data/lib/davinci_crd_test_kit/server/v2.0.1/verify_response/create_or_update_coverage_info_response_validation_test.rb +70 -0
- data/lib/davinci_crd_test_kit/server/v2.0.1/verify_response/external_reference_card_validation_test.rb +37 -0
- data/lib/davinci_crd_test_kit/server/v2.0.1/verify_response/form_completion_response_validation_test.rb +67 -0
- data/lib/davinci_crd_test_kit/server/v2.0.1/verify_response/instructions_card_received_test.rb +30 -0
- data/lib/davinci_crd_test_kit/server/v2.0.1/verify_response/launch_smart_app_card_validation_test.rb +39 -0
- data/lib/davinci_crd_test_kit/server/v2.0.1/verify_response/propose_alternate_request_card_validation_test.rb +46 -0
- data/lib/davinci_crd_test_kit/server/v2.0.1/verify_response/service_response_validation_test.rb +83 -0
- data/lib/davinci_crd_test_kit/server/v2.2.1/crd_metadata/Appointment_withorder.yml +5 -0
- data/lib/davinci_crd_test_kit/server/v2.2.1/crd_metadata/Appointment_withoutorder.yml +5 -0
- data/lib/davinci_crd_test_kit/server/v2.2.1/crd_metadata/CommunicationRequest.yml +5 -0
- data/lib/davinci_crd_test_kit/server/v2.2.1/crd_metadata/Coverage.yml +5 -0
- data/lib/davinci_crd_test_kit/server/v2.2.1/crd_metadata/Device.yml +5 -0
- data/lib/davinci_crd_test_kit/server/v2.2.1/crd_metadata/DeviceRequest.yml +5 -0
- data/lib/davinci_crd_test_kit/server/v2.2.1/crd_metadata/Encounter.yml +5 -0
- data/lib/davinci_crd_test_kit/server/v2.2.1/crd_metadata/Location.yml +5 -0
- data/lib/davinci_crd_test_kit/server/v2.2.1/crd_metadata/MedicationRequest.yml +5 -0
- data/lib/davinci_crd_test_kit/server/v2.2.1/crd_metadata/NutritionOrder.yml +5 -0
- data/lib/davinci_crd_test_kit/server/v2.2.1/crd_metadata/Organization.yml +5 -0
- data/lib/davinci_crd_test_kit/server/v2.2.1/crd_metadata/Patient.yml +5 -0
- data/lib/davinci_crd_test_kit/server/v2.2.1/crd_metadata/PractitionerRole.yml +5 -0
- data/lib/davinci_crd_test_kit/server/v2.2.1/crd_metadata/ServiceRequest.yml +5 -0
- data/lib/davinci_crd_test_kit/server/v2.2.1/crd_metadata/VisionPrescription.yml +5 -0
- data/lib/davinci_crd_test_kit/server/v2.2.1/crd_server_suite.rb +118 -0
- data/lib/davinci_crd_test_kit/server/v2.2.1/discovery/discovery_configuration_test.rb +159 -0
- data/lib/davinci_crd_test_kit/server/v2.2.1/discovery/discovery_endpoint_test.rb +90 -0
- data/lib/davinci_crd_test_kit/server/v2.2.1/discovery/discovery_prefetch_support_test.rb +43 -0
- data/lib/davinci_crd_test_kit/server/v2.2.1/discovery/discovery_services_validation_test.rb +121 -0
- data/lib/davinci_crd_test_kit/server/v2.2.1/discovery/discovery_standard_prefetch_expressions_test.rb +166 -0
- data/lib/davinci_crd_test_kit/server/v2.2.1/interaction/server_invoke_hook_single_request_test.rb +22 -0
- data/lib/davinci_crd_test_kit/server/v2.2.1/interaction/server_invoke_hook_test.rb +17 -0
- data/lib/davinci_crd_test_kit/server/v2.2.1/must_support/coverage_information_must_support_test.rb +71 -0
- data/lib/davinci_crd_test_kit/server/v2.2.1/must_support/coverage_information_system_action_across_hooks_validation_test.rb +36 -0
- data/lib/davinci_crd_test_kit/server/v2.2.1/must_support/supported_us_core_versions_test.rb +118 -0
- data/lib/davinci_crd_test_kit/server/v2.2.1/server_appointment_book_group.rb +121 -0
- data/lib/davinci_crd_test_kit/server/v2.2.1/server_demonstrate_hook_response_group.rb +94 -0
- data/lib/davinci_crd_test_kit/server/v2.2.1/server_discovery_group.rb +71 -0
- data/lib/davinci_crd_test_kit/server/v2.2.1/server_encounter_discharge_group.rb +107 -0
- data/lib/davinci_crd_test_kit/server/v2.2.1/server_encounter_start_group.rb +107 -0
- data/lib/davinci_crd_test_kit/server/v2.2.1/server_hooks_group.rb +73 -0
- data/lib/davinci_crd_test_kit/server/v2.2.1/server_order_dispatch_group.rb +121 -0
- data/lib/davinci_crd_test_kit/server/v2.2.1/server_order_select_group.rb +115 -0
- data/lib/davinci_crd_test_kit/server/v2.2.1/server_order_sign_group.rb +132 -0
- data/lib/davinci_crd_test_kit/server/v2.2.1/server_required_card_response_validation_group.rb +30 -0
- data/lib/davinci_crd_test_kit/server/v2.2.1/server_urls.rb +13 -0
- data/lib/davinci_crd_test_kit/server/v2.2.1/specific_coverage_response_group.rb +23 -0
- data/lib/davinci_crd_test_kit/server/v2.2.1/specific_coverage_responses/coverage_info_reason_test.rb +108 -0
- data/lib/davinci_crd_test_kit/server/v2.2.1/specific_coverage_responses/coverage_not_found_group.rb +116 -0
- data/lib/davinci_crd_test_kit/server/v2.2.1/specific_coverage_responses/no_active_coverage_group.rb +115 -0
- data/lib/davinci_crd_test_kit/server/v2.2.1/specific_coverage_responses/no_member_found_group.rb +117 -0
- data/lib/davinci_crd_test_kit/server/v2.2.1/specific_coverage_responses/technical_issues_group.rb +121 -0
- data/lib/davinci_crd_test_kit/server/v2.2.1/specific_coverage_responses/technical_issues_invoke_test.rb +22 -0
- data/lib/davinci_crd_test_kit/server/v2.2.1/verify_request/service_request_context_validation_test.rb +31 -0
- data/lib/davinci_crd_test_kit/server/v2.2.1/verify_request/service_request_no_custom_extensions_test.rb +120 -0
- data/lib/davinci_crd_test_kit/server/v2.2.1/verify_request/service_request_optional_fields_validation_test.rb +40 -0
- data/lib/davinci_crd_test_kit/server/v2.2.1/verify_request/service_request_required_fields_validation_test.rb +41 -0
- data/lib/davinci_crd_test_kit/server/v2.2.1/verify_response/additional_orders_validation_test.rb +109 -0
- data/lib/davinci_crd_test_kit/server/v2.2.1/verify_response/all_responses_include_coverage_information_test.rb +123 -0
- data/lib/davinci_crd_test_kit/server/v2.2.1/verify_response/coverage_info_configuration_test.rb +83 -0
- data/lib/davinci_crd_test_kit/server/v2.2.1/verify_response/coverage_information_card_absence_test.rb +76 -0
- data/lib/davinci_crd_test_kit/server/v2.2.1/verify_response/coverage_information_system_action_validation_test.rb +130 -0
- data/lib/davinci_crd_test_kit/server/v2.2.1/verify_response/create_or_update_coverage_info_response_validation_test.rb +119 -0
- data/lib/davinci_crd_test_kit/server/v2.2.1/verify_response/external_reference_card_validation_test.rb +89 -0
- data/lib/davinci_crd_test_kit/server/v2.2.1/verify_response/form_completion_response_validation_test.rb +126 -0
- data/lib/davinci_crd_test_kit/server/v2.2.1/verify_response/hook_request_resource_resolution.rb +174 -0
- data/lib/davinci_crd_test_kit/server/v2.2.1/verify_response/instructions_card_received_test.rb +83 -0
- data/lib/davinci_crd_test_kit/server/v2.2.1/verify_response/launch_smart_app_card_validation_test.rb +88 -0
- data/lib/davinci_crd_test_kit/server/v2.2.1/verify_response/order_dispatch_coverage_information_test.rb +38 -0
- data/lib/davinci_crd_test_kit/server/v2.2.1/verify_response/propose_alternate_request_card_validation_test.rb +81 -0
- data/lib/davinci_crd_test_kit/server/v2.2.1/verify_response/service_response_validation_test.rb +63 -0
- data/lib/davinci_crd_test_kit/server/v2.2.1/verify_response/unknown_cds_hooks_elements_test.rb +78 -0
- data/lib/davinci_crd_test_kit/server/v2.2.1/verify_response/unknown_configuration_test.rb +78 -0
- data/lib/davinci_crd_test_kit/server/v2.2.1/verify_response/unknown_context_test.rb +78 -0
- data/lib/davinci_crd_test_kit/server/v2.2.1/verify_response/verify_response_without_billing_options_test.rb +43 -0
- data/lib/davinci_crd_test_kit/server/v2.2.1/verify_response/verify_response_without_configuration_test.rb +44 -0
- data/lib/davinci_crd_test_kit/version.rb +2 -2
- data/lib/davinci_crd_test_kit.rb +4 -2
- metadata +307 -93
- data/lib/davinci_crd_test_kit/client_fhir_api_group.rb +0 -785
- data/lib/davinci_crd_test_kit/client_hooks_group.rb +0 -74
- data/lib/davinci_crd_test_kit/client_tests/appointment_book_receive_request_test.rb +0 -93
- data/lib/davinci_crd_test_kit/client_tests/client_appointment_book_group.rb +0 -75
- data/lib/davinci_crd_test_kit/client_tests/client_display_cards_attest.rb +0 -48
- data/lib/davinci_crd_test_kit/client_tests/client_encounter_discharge_group.rb +0 -73
- data/lib/davinci_crd_test_kit/client_tests/client_encounter_start_group.rb +0 -73
- data/lib/davinci_crd_test_kit/client_tests/client_fhir_api_create_test.rb +0 -42
- data/lib/davinci_crd_test_kit/client_tests/client_fhir_api_read_test.rb +0 -40
- data/lib/davinci_crd_test_kit/client_tests/client_fhir_api_search_test.rb +0 -232
- data/lib/davinci_crd_test_kit/client_tests/client_fhir_api_update_test.rb +0 -42
- data/lib/davinci_crd_test_kit/client_tests/client_fhir_api_validation_test.rb +0 -61
- data/lib/davinci_crd_test_kit/client_tests/client_order_dispatch_group.rb +0 -79
- data/lib/davinci_crd_test_kit/client_tests/client_order_select_group.rb +0 -82
- data/lib/davinci_crd_test_kit/client_tests/client_order_sign_group.rb +0 -81
- data/lib/davinci_crd_test_kit/client_tests/client_registration_verification_test.rb +0 -88
- data/lib/davinci_crd_test_kit/client_tests/decode_auth_token_test.rb +0 -60
- data/lib/davinci_crd_test_kit/client_tests/encounter_discharge_receive_request_test.rb +0 -90
- data/lib/davinci_crd_test_kit/client_tests/encounter_start_receive_request_test.rb +0 -90
- data/lib/davinci_crd_test_kit/client_tests/hook_request_optional_fields_test.rb +0 -57
- data/lib/davinci_crd_test_kit/client_tests/hook_request_required_fields_test.rb +0 -49
- data/lib/davinci_crd_test_kit/client_tests/hook_request_valid_context_test.rb +0 -68
- data/lib/davinci_crd_test_kit/client_tests/hook_request_valid_prefetch_test.rb +0 -69
- data/lib/davinci_crd_test_kit/client_tests/order_dispatch_receive_request_test.rb +0 -102
- data/lib/davinci_crd_test_kit/client_tests/order_select_receive_request_test.rb +0 -98
- data/lib/davinci_crd_test_kit/client_tests/order_sign_receive_request_test.rb +0 -101
- data/lib/davinci_crd_test_kit/client_tests/retrieve_jwks_test.rb +0 -105
- data/lib/davinci_crd_test_kit/client_tests/submitted_response_validation.rb +0 -48
- data/lib/davinci_crd_test_kit/client_tests/token_header_test.rb +0 -65
- data/lib/davinci_crd_test_kit/client_tests/token_payload_test.rb +0 -78
- data/lib/davinci_crd_test_kit/crd_client_suite.rb +0 -193
- data/lib/davinci_crd_test_kit/crd_options.rb +0 -9
- data/lib/davinci_crd_test_kit/crd_server_suite.rb +0 -125
- data/lib/davinci_crd_test_kit/igs/davinci-crd-2.0.1.tgz +0 -0
- data/lib/davinci_crd_test_kit/routes/cds_services_discovery_handler.rb +0 -18
- data/lib/davinci_crd_test_kit/routes/hook_request_endpoint.rb +0 -77
- data/lib/davinci_crd_test_kit/routes/jwk_set_endpoint_handler.rb +0 -15
- data/lib/davinci_crd_test_kit/server_appointment_book_group.rb +0 -176
- data/lib/davinci_crd_test_kit/server_demonstrate_hook_response_group.rb +0 -77
- data/lib/davinci_crd_test_kit/server_discovery_group.rb +0 -60
- data/lib/davinci_crd_test_kit/server_encounter_discharge_group.rb +0 -170
- data/lib/davinci_crd_test_kit/server_encounter_start_group.rb +0 -170
- data/lib/davinci_crd_test_kit/server_hooks_group.rb +0 -71
- data/lib/davinci_crd_test_kit/server_order_dispatch_group.rb +0 -176
- data/lib/davinci_crd_test_kit/server_order_select_group.rb +0 -195
- data/lib/davinci_crd_test_kit/server_order_sign_group.rb +0 -201
- data/lib/davinci_crd_test_kit/server_required_card_response_validation_group.rb +0 -26
- data/lib/davinci_crd_test_kit/server_tests/additional_orders_validation_test.rb +0 -68
- data/lib/davinci_crd_test_kit/server_tests/card_optional_fields_validation_test.rb +0 -47
- data/lib/davinci_crd_test_kit/server_tests/coverage_information_system_action_across_hooks_validation_test.rb +0 -32
- data/lib/davinci_crd_test_kit/server_tests/coverage_information_system_action_received_test.rb +0 -63
- data/lib/davinci_crd_test_kit/server_tests/coverage_information_system_action_validation_test.rb +0 -118
- data/lib/davinci_crd_test_kit/server_tests/create_or_update_coverage_info_response_validation_test.rb +0 -71
- data/lib/davinci_crd_test_kit/server_tests/discovery_endpoint_test.rb +0 -88
- data/lib/davinci_crd_test_kit/server_tests/discovery_services_validation_test.rb +0 -65
- data/lib/davinci_crd_test_kit/server_tests/external_reference_card_across_hooks_validation_test.rb +0 -28
- data/lib/davinci_crd_test_kit/server_tests/external_reference_card_validation_test.rb +0 -36
- data/lib/davinci_crd_test_kit/server_tests/form_completion_response_validation_test.rb +0 -78
- data/lib/davinci_crd_test_kit/server_tests/instructions_card_received_across_hooks_test.rb +0 -25
- data/lib/davinci_crd_test_kit/server_tests/instructions_card_received_test.rb +0 -26
- data/lib/davinci_crd_test_kit/server_tests/launch_smart_app_card_validation_test.rb +0 -38
- data/lib/davinci_crd_test_kit/server_tests/propose_alternate_request_card_validation_test.rb +0 -63
- data/lib/davinci_crd_test_kit/server_tests/service_call_test.rb +0 -101
- data/lib/davinci_crd_test_kit/server_tests/service_request_context_validation_test.rb +0 -28
- data/lib/davinci_crd_test_kit/server_tests/service_request_optional_fields_validation_test.rb +0 -37
- data/lib/davinci_crd_test_kit/server_tests/service_request_required_fields_validation_test.rb +0 -38
- data/lib/davinci_crd_test_kit/server_tests/service_response_validation_test.rb +0 -81
- data/lib/davinci_crd_test_kit/tags.rb +0 -10
- data/lib/davinci_crd_test_kit/urls.rb +0 -52
- /data/lib/davinci_crd_test_kit/{card_responses → client/endpoints/mocked_card_responses}/instructions.json +0 -0
- /data/lib/davinci_crd_test_kit/{crd_jwks.json → server/endpoints/crd_jwks.json} +0 -0
- /data/lib/davinci_crd_test_kit/{jwks.rb → server/endpoints/jwks.rb} +0 -0
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
require_relative '../../cross_suite/tags'
|
|
2
|
+
require_relative 'interaction/server_invoke_hook_test'
|
|
3
|
+
require_relative 'verify_request/service_request_required_fields_validation_test'
|
|
4
|
+
require_relative 'verify_request/service_request_optional_fields_validation_test'
|
|
5
|
+
require_relative 'verify_request/service_request_context_validation_test'
|
|
6
|
+
require_relative 'verify_response/service_response_validation_test'
|
|
7
|
+
require_relative 'verify_response/external_reference_card_validation_test'
|
|
8
|
+
require_relative 'verify_response/launch_smart_app_card_validation_test'
|
|
9
|
+
require_relative 'verify_response/instructions_card_received_test'
|
|
10
|
+
require_relative 'verify_response/form_completion_response_validation_test'
|
|
11
|
+
require_relative 'verify_response/create_or_update_coverage_info_response_validation_test'
|
|
12
|
+
require_relative 'verify_response/coverage_information_card_absence_test'
|
|
13
|
+
require_relative 'verify_response/coverage_info_configuration_test'
|
|
14
|
+
require_relative 'verify_response/unknown_configuration_test'
|
|
15
|
+
require_relative 'verify_response/unknown_context_test'
|
|
16
|
+
require_relative 'verify_response/unknown_cds_hooks_elements_test'
|
|
17
|
+
|
|
18
|
+
module DaVinciCRDTestKit
|
|
19
|
+
module V221
|
|
20
|
+
class ServerEncounterStartGroup < Inferno::TestGroup
|
|
21
|
+
title 'encounter-start'
|
|
22
|
+
id :crd_v221_server_encounter_start
|
|
23
|
+
description %(
|
|
24
|
+
This group of tests invokes the encounter-start hook and ensures that
|
|
25
|
+
the user-provided requests are valid as per the requirements described
|
|
26
|
+
in the [CRD IG section on encounter-start hook](https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#encounter-start)
|
|
27
|
+
and the [CDS Hooks specification section on encounter-start context](https://cds-hooks.hl7.org/hooks/encounter-start/2023SepSTU1Ballot/encounter-start/).
|
|
28
|
+
It also ensures that the contents of the server's response are valid as per the requirements described in
|
|
29
|
+
the [CRD IG section on encounter-start hook](https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#encounter-start)
|
|
30
|
+
and the [CDS Hooks section on CDS Service Response](https://cds-hooks.hl7.org/2.0/#cds-service-response).
|
|
31
|
+
|
|
32
|
+
This group includes tests to validate the following CRD response types:
|
|
33
|
+
- [Coverage Information](https://hl7.org/fhir/us/davinci-crd/STU2/cards.html#coverage-information) - optional
|
|
34
|
+
- [Create or update coverage information](https://hl7.org/fhir/us/davinci-crd/STU2/cards.html#create-or-update-coverage-information)\
|
|
35
|
+
- optional
|
|
36
|
+
- [External Reference](https://hl7.org/fhir/us/davinci-crd/STU2/cards.html#external-reference) - optional
|
|
37
|
+
- [Instructions](https://hl7.org/fhir/us/davinci-crd/STU2/cards.html#instructions) - optional
|
|
38
|
+
- [Launch SMART application](https://hl7.org/fhir/us/davinci-crd/STU2/cards.html#launch-smart-application) -
|
|
39
|
+
optional
|
|
40
|
+
- [Request form completion](https://hl7.org/fhir/us/davinci-crd/STU2/cards.html#request-form-completion) -
|
|
41
|
+
optional
|
|
42
|
+
)
|
|
43
|
+
# verifies_requirements 'hl7.fhir.us.davinci-crd_2.0.1@168', 'hl7.fhir.us.davinci-crd_2.0.1@185'
|
|
44
|
+
|
|
45
|
+
config options: { hook_name: ENCOUNTER_START_TAG }
|
|
46
|
+
run_as_group
|
|
47
|
+
|
|
48
|
+
group do
|
|
49
|
+
title 'Interaction'
|
|
50
|
+
|
|
51
|
+
test from: :crd_v221_server_invoke_hook_test,
|
|
52
|
+
config: {
|
|
53
|
+
inputs: {
|
|
54
|
+
service_ids: {
|
|
55
|
+
name: :encounter_start_service_ids,
|
|
56
|
+
title: 'Service id for the service that implements the `encounter-start` hook'
|
|
57
|
+
},
|
|
58
|
+
service_request_bodies: {
|
|
59
|
+
name: :encounter_start_request_bodies,
|
|
60
|
+
title: 'Request body or bodies for invoking the `encounter-start` hook'
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
group do
|
|
67
|
+
title 'Requests'
|
|
68
|
+
simulation_verification
|
|
69
|
+
|
|
70
|
+
test from: :crd_v221_service_request_required_fields_validation,
|
|
71
|
+
config: {
|
|
72
|
+
outputs: {
|
|
73
|
+
contexts: {
|
|
74
|
+
name: :encounter_start_contexts
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
test from: :crd_v221_service_request_context_validation,
|
|
79
|
+
config: {
|
|
80
|
+
inputs: {
|
|
81
|
+
contexts: {
|
|
82
|
+
name: :encounter_start_contexts
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
test from: :crd_v221_service_request_optional_fields_validation
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
group do
|
|
90
|
+
title 'Responses'
|
|
91
|
+
|
|
92
|
+
test from: :crd_v221_service_response_validation
|
|
93
|
+
test from: :crd_v221_external_reference_card_validation
|
|
94
|
+
test from: :crd_v221_launch_smart_app_card_validation
|
|
95
|
+
test from: :crd_v221_valid_instructions_card_received
|
|
96
|
+
test from: :crd_v221_coverage_info_system_action_validation
|
|
97
|
+
test from: :crd_v221_coverage_information_card_absence
|
|
98
|
+
test from: :crd_v221_request_form_completion_response_validation
|
|
99
|
+
test from: :crd_v221_create_or_update_coverage_info_response_validation
|
|
100
|
+
test from: :crd_v221_coverage_info_configuration
|
|
101
|
+
test from: :crd_v221_unknown_configuration
|
|
102
|
+
test from: :crd_v221_unknown_context
|
|
103
|
+
test from: :crd_v221_unknown_cds_hooks_elements
|
|
104
|
+
end
|
|
105
|
+
end
|
|
106
|
+
end
|
|
107
|
+
end
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
require_relative 'server_appointment_book_group'
|
|
2
|
+
require_relative 'server_encounter_start_group'
|
|
3
|
+
require_relative 'server_encounter_discharge_group'
|
|
4
|
+
require_relative 'server_order_select_group'
|
|
5
|
+
require_relative 'server_order_dispatch_group'
|
|
6
|
+
require_relative 'server_order_sign_group'
|
|
7
|
+
require_relative 'server_required_card_response_validation_group'
|
|
8
|
+
|
|
9
|
+
module DaVinciCRDTestKit
|
|
10
|
+
module V221
|
|
11
|
+
class ServerHooksGroup < Inferno::TestGroup
|
|
12
|
+
title 'Hooks'
|
|
13
|
+
id :crd_v221_server_hooks
|
|
14
|
+
description %(
|
|
15
|
+
# Background
|
|
16
|
+
|
|
17
|
+
The #{title} Group verifies that a [CRD Server](https://hl7.org/fhir/us/davinci-crd/STU2/CapabilityStatement-crd-server.html)
|
|
18
|
+
supports at least one of the hooks supported by the [CRD IG](https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#supported-hooks).
|
|
19
|
+
The supported hooks include:
|
|
20
|
+
- [appointment-book](https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#appointment-book)
|
|
21
|
+
- [encounter-start](https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#encounter-start)
|
|
22
|
+
- [encounter-discharge](https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#encounter-discharge)
|
|
23
|
+
- [order-select](https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#order-select)
|
|
24
|
+
- [order-dispatch](https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#order-dispatch)
|
|
25
|
+
- [order-sign](https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#order-sign)
|
|
26
|
+
|
|
27
|
+
The [CRD STU2 IG section on Supported Hooks](https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#supported-hooks)
|
|
28
|
+
states that "CRD Servers conforming to this implementation guide
|
|
29
|
+
SHALL provide a service for all hooks and order resource types required of
|
|
30
|
+
CRD clients by this implementation guide unless the server has determined that
|
|
31
|
+
the hook will not be reasonably useful in determining coverage or documentation
|
|
32
|
+
expectations for the types of coverage provided."
|
|
33
|
+
|
|
34
|
+
# Test Methodology
|
|
35
|
+
|
|
36
|
+
In these tests, Inferno acts as a [CRD Client](https://hl7.org/fhir/us/davinci-crd/STU2/CapabilityStatement-crd-client.html)
|
|
37
|
+
that initiates CDS Hooks calls. This test sequence is broken up into groups,
|
|
38
|
+
each group corresponding to a supported hook and defining a set of tests verifying
|
|
39
|
+
the ability of the server to respond to the given hook invocation. An
|
|
40
|
+
additional group checks that the Coverage Information response type is
|
|
41
|
+
supported for at least one hook.
|
|
42
|
+
|
|
43
|
+
Each hook group test verifies that:
|
|
44
|
+
- The hook can be invoked.
|
|
45
|
+
- The user-provided request payload contains the required fields as specified
|
|
46
|
+
in the [CDS Hooks section on HTTP request requirements](https://cds-hooks.hl7.org/2.0/#http-request_1).
|
|
47
|
+
- The user-provided request payload contains the optional fields as specified
|
|
48
|
+
in the [CDS Hooks section on HTTP request requirements](https://cds-hooks.hl7.org/2.0/#http-request_1) -
|
|
49
|
+
optional.
|
|
50
|
+
- Each card and system action returned by the server is valid as described in the
|
|
51
|
+
[CDS Hooks section on CDS Service Response](https://cds-hooks.hl7.org/2.0/#cds-service-response).
|
|
52
|
+
- Each [CRD response type](https://hl7.org/fhir/us/davinci-crd/STU2/cards.html#potential-crd-response-types)
|
|
53
|
+
returned is valid - optional for some response types. See the individual test groups for more details.
|
|
54
|
+
)
|
|
55
|
+
# verifies_requirements 'hl7.fhir.us.davinci-crd_2.0.1@4', 'hl7.fhir.us.davinci-crd_2.0.1@152',
|
|
56
|
+
# 'hl7.fhir.us.davinci-crd_2.0.1@153'
|
|
57
|
+
|
|
58
|
+
group from: :crd_v221_server_appointment_book,
|
|
59
|
+
optional: true
|
|
60
|
+
group from: :crd_v221_server_encounter_start,
|
|
61
|
+
optional: true
|
|
62
|
+
group from: :crd_v221_server_encounter_discharge,
|
|
63
|
+
optional: true
|
|
64
|
+
group from: :crd_v221_server_order_select,
|
|
65
|
+
optional: true
|
|
66
|
+
group from: :crd_v221_server_order_dispatch,
|
|
67
|
+
optional: true
|
|
68
|
+
group from: :crd_v221_server_order_sign,
|
|
69
|
+
optional: true
|
|
70
|
+
group from: :crd_v221_server_required_card_response_validation
|
|
71
|
+
end
|
|
72
|
+
end
|
|
73
|
+
end
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
require_relative '../../cross_suite/tags'
|
|
2
|
+
require_relative 'interaction/server_invoke_hook_test'
|
|
3
|
+
require_relative 'verify_request/service_request_required_fields_validation_test'
|
|
4
|
+
require_relative 'verify_request/service_request_optional_fields_validation_test'
|
|
5
|
+
require_relative 'verify_request/service_request_context_validation_test'
|
|
6
|
+
require_relative 'verify_response/service_response_validation_test'
|
|
7
|
+
require_relative 'verify_response/external_reference_card_validation_test'
|
|
8
|
+
require_relative 'verify_response/launch_smart_app_card_validation_test'
|
|
9
|
+
require_relative 'verify_response/instructions_card_received_test'
|
|
10
|
+
require_relative 'verify_response/coverage_information_system_action_validation_test'
|
|
11
|
+
require_relative 'verify_response/coverage_information_card_absence_test'
|
|
12
|
+
require_relative 'verify_response/coverage_info_configuration_test'
|
|
13
|
+
require_relative 'verify_response/form_completion_response_validation_test'
|
|
14
|
+
require_relative 'verify_response/create_or_update_coverage_info_response_validation_test'
|
|
15
|
+
require_relative 'verify_response/order_dispatch_coverage_information_test'
|
|
16
|
+
require_relative 'verify_response/unknown_configuration_test'
|
|
17
|
+
require_relative 'verify_response/unknown_context_test'
|
|
18
|
+
require_relative 'verify_response/unknown_cds_hooks_elements_test'
|
|
19
|
+
|
|
20
|
+
module DaVinciCRDTestKit
|
|
21
|
+
module V221
|
|
22
|
+
class ServerOrderDispatchGroup < Inferno::TestGroup
|
|
23
|
+
title 'order-dispatch'
|
|
24
|
+
id :crd_v221_server_order_dispatch
|
|
25
|
+
description %(
|
|
26
|
+
This group of tests invokes the order-dispatch hook and ensures that
|
|
27
|
+
the user-provided requests are valid as per the requirements described
|
|
28
|
+
in the [CRD IG section on order-dispatch hook](https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#order-dispatch)
|
|
29
|
+
and the [CDS Hooks specification section on order-dispatch context](https://cds-hooks.hl7.org/hooks/order-dispatch/2023SepSTU1Ballot/order-dispatch/).
|
|
30
|
+
It also ensures that the contents of the server's response are valid as per the requirements described in
|
|
31
|
+
the [CRD IG section on order-dispatch hook](https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#order-dispatch)
|
|
32
|
+
and the [CDS Hooks section on CDS Service Response](https://cds-hooks.hl7.org/2.0/#cds-service-response).
|
|
33
|
+
|
|
34
|
+
The [CRD IG section on order-dispatch hook](https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#order-dispatch)
|
|
35
|
+
states that "servers SHALL, at minimum, support returning and processing the Coverage Information
|
|
36
|
+
system action for all invocations of this hook."
|
|
37
|
+
|
|
38
|
+
This group includes tests to validate the following CRD response types:
|
|
39
|
+
- [Coverage Information](https://hl7.org/fhir/us/davinci-crd/STU2/cards.html#coverage-information)
|
|
40
|
+
- [Create or update coverage information](https://hl7.org/fhir/us/davinci-crd/STU2/cards.html#create-or-update-coverage-information)\
|
|
41
|
+
- optional
|
|
42
|
+
- [External Reference](https://hl7.org/fhir/us/davinci-crd/STU2/cards.html#external-reference) - optional
|
|
43
|
+
- [Instructions](https://hl7.org/fhir/us/davinci-crd/STU2/cards.html#instructions) - optional
|
|
44
|
+
- [Launch SMART application](https://hl7.org/fhir/us/davinci-crd/STU2/cards.html#launch-smart-application) -
|
|
45
|
+
optional
|
|
46
|
+
- [Request form completion](https://hl7.org/fhir/us/davinci-crd/STU2/cards.html#request-form-completion) -
|
|
47
|
+
optional
|
|
48
|
+
)
|
|
49
|
+
# verifies_requirements 'hl7.fhir.us.davinci-crd_2.0.1@164', 'hl7.fhir.us.davinci-crd_2.0.1@168',
|
|
50
|
+
# 'hl7.fhir.us.davinci-crd_2.0.1@204', 'hl7.fhir.us.davinci-crd_2.0.1@207'
|
|
51
|
+
|
|
52
|
+
config options: { hook_name: ORDER_DISPATCH_TAG }
|
|
53
|
+
run_as_group
|
|
54
|
+
|
|
55
|
+
group do
|
|
56
|
+
title 'Interaction'
|
|
57
|
+
|
|
58
|
+
test from: :crd_v221_server_invoke_hook_test,
|
|
59
|
+
config: {
|
|
60
|
+
inputs: {
|
|
61
|
+
service_ids: {
|
|
62
|
+
name: :order_dispatch_service_ids,
|
|
63
|
+
title: 'Service id for the service that implements the `order-dispatch` hook'
|
|
64
|
+
},
|
|
65
|
+
service_request_bodies: {
|
|
66
|
+
name: :order_dispatch_request_bodies,
|
|
67
|
+
title: 'Request body or bodies for invoking the `order-dispatch` hook'
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
group do
|
|
74
|
+
title 'Requests'
|
|
75
|
+
simulation_verification
|
|
76
|
+
|
|
77
|
+
test from: :crd_v221_service_request_required_fields_validation,
|
|
78
|
+
config: {
|
|
79
|
+
outputs: {
|
|
80
|
+
contexts: {
|
|
81
|
+
name: :order_dispatch_contexts
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
test from: :crd_v221_service_request_context_validation,
|
|
86
|
+
config: {
|
|
87
|
+
inputs: {
|
|
88
|
+
contexts: {
|
|
89
|
+
name: :order_dispatch_contexts
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
test from: :crd_v221_service_request_optional_fields_validation
|
|
94
|
+
end
|
|
95
|
+
|
|
96
|
+
group do
|
|
97
|
+
title 'Responses'
|
|
98
|
+
|
|
99
|
+
test from: :crd_v221_service_response_validation
|
|
100
|
+
test from: :crd_v221_external_reference_card_validation
|
|
101
|
+
test from: :crd_v221_launch_smart_app_card_validation
|
|
102
|
+
test from: :crd_v221_valid_instructions_card_received
|
|
103
|
+
test from: :crd_v221_coverage_info_system_action_validation
|
|
104
|
+
test from: :crd_v221_order_dispatch_coverage_information,
|
|
105
|
+
verifies_requirements: [
|
|
106
|
+
'hl7.fhir.us.davinci-crd_2.2.1@hook-16',
|
|
107
|
+
'hl7.fhir.us.davinci-crd_2.2.1@resp-28',
|
|
108
|
+
'hl7.fhir.us.davinci-crd_2.2.1@hook-33',
|
|
109
|
+
'hl7.fhir.us.davinci-crd_2.2.1@resp-29'
|
|
110
|
+
]
|
|
111
|
+
test from: :crd_v221_coverage_information_card_absence
|
|
112
|
+
test from: :crd_v221_request_form_completion_response_validation
|
|
113
|
+
test from: :crd_v221_create_or_update_coverage_info_response_validation
|
|
114
|
+
test from: :crd_v221_coverage_info_configuration
|
|
115
|
+
test from: :crd_v221_unknown_configuration
|
|
116
|
+
test from: :crd_v221_unknown_context
|
|
117
|
+
test from: :crd_v221_unknown_cds_hooks_elements
|
|
118
|
+
end
|
|
119
|
+
end
|
|
120
|
+
end
|
|
121
|
+
end
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
require_relative '../../cross_suite/tags'
|
|
2
|
+
require_relative 'interaction/server_invoke_hook_test'
|
|
3
|
+
require_relative 'verify_request/service_request_required_fields_validation_test'
|
|
4
|
+
require_relative 'verify_request/service_request_optional_fields_validation_test'
|
|
5
|
+
require_relative 'verify_request/service_request_context_validation_test'
|
|
6
|
+
require_relative 'verify_response/service_response_validation_test'
|
|
7
|
+
require_relative 'verify_response/external_reference_card_validation_test'
|
|
8
|
+
require_relative 'verify_response/launch_smart_app_card_validation_test'
|
|
9
|
+
require_relative 'verify_response/instructions_card_received_test'
|
|
10
|
+
require_relative 'verify_response/propose_alternate_request_card_validation_test'
|
|
11
|
+
require_relative 'verify_response/additional_orders_validation_test'
|
|
12
|
+
require_relative 'verify_response/form_completion_response_validation_test'
|
|
13
|
+
require_relative 'verify_response/create_or_update_coverage_info_response_validation_test'
|
|
14
|
+
require_relative 'verify_response/coverage_information_card_absence_test'
|
|
15
|
+
require_relative 'verify_response/coverage_info_configuration_test'
|
|
16
|
+
require_relative 'verify_response/unknown_configuration_test'
|
|
17
|
+
require_relative 'verify_response/unknown_context_test'
|
|
18
|
+
require_relative 'verify_response/unknown_cds_hooks_elements_test'
|
|
19
|
+
|
|
20
|
+
module DaVinciCRDTestKit
|
|
21
|
+
module V221
|
|
22
|
+
class ServerOrderSelectGroup < Inferno::TestGroup
|
|
23
|
+
title 'order-select'
|
|
24
|
+
id :crd_v221_server_order_select
|
|
25
|
+
description %(
|
|
26
|
+
This group of tests invokes the order-select hook and ensures that
|
|
27
|
+
the user-provided requests are valid as per the requirements described
|
|
28
|
+
in the [CRD IG section on order-select hook](https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#order-select)
|
|
29
|
+
and the [CDS Hooks specification section on order-select context](https://cds-hooks.hl7.org/hooks/order-select/2023SepSTU1Ballot/order-select/).
|
|
30
|
+
It also ensures that the contents of the server's response are valid as per the requirements described in
|
|
31
|
+
the [CRD IG section on order-select hook](https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#order-select)
|
|
32
|
+
and the [CDS Hooks section on CDS Service Response](https://cds-hooks.hl7.org/2.0/#cds-service-response).
|
|
33
|
+
|
|
34
|
+
This group includes tests to validate the following CRD response types:
|
|
35
|
+
- [additional orders as companions/prerequisites](https://hl7.org/fhir/us/davinci-crd/STU2/cards.html#identify-additional-orders-as-companionsprerequisites-for-current-order)\
|
|
36
|
+
- optional
|
|
37
|
+
- [Coverage Information](https://hl7.org/fhir/us/davinci-crd/STU2/cards.html#coverage-information) - optional
|
|
38
|
+
- [Create or update coverage information](https://hl7.org/fhir/us/davinci-crd/STU2/cards.html#create-or-update-coverage-information)\
|
|
39
|
+
- optional
|
|
40
|
+
- [External Reference](https://hl7.org/fhir/us/davinci-crd/STU2/cards.html#external-reference) - optional
|
|
41
|
+
- [Instructions](https://hl7.org/fhir/us/davinci-crd/STU2/cards.html#instructions) - optional
|
|
42
|
+
- [Launch SMART application](https://hl7.org/fhir/us/davinci-crd/STU2/cards.html#launch-smart-application) -
|
|
43
|
+
optional
|
|
44
|
+
- [Propose alternate request](https://hl7.org/fhir/us/davinci-crd/STU2/cards.html#propose-alternate-request) -
|
|
45
|
+
optional
|
|
46
|
+
- [Request form completion](https://hl7.org/fhir/us/davinci-crd/STU2/cards.html#request-form-completion) -
|
|
47
|
+
optional
|
|
48
|
+
)
|
|
49
|
+
# verifies_requirements 'hl7.fhir.us.davinci-crd_2.0.1@168', 'hl7.fhir.us.davinci-crd_2.0.1@208'
|
|
50
|
+
|
|
51
|
+
config options: { hook_name: ORDER_SELECT_TAG }
|
|
52
|
+
run_as_group
|
|
53
|
+
|
|
54
|
+
group do
|
|
55
|
+
title 'Interaction'
|
|
56
|
+
|
|
57
|
+
test from: :crd_v221_server_invoke_hook_test,
|
|
58
|
+
config: {
|
|
59
|
+
inputs: {
|
|
60
|
+
service_ids: {
|
|
61
|
+
name: :order_select_service_ids,
|
|
62
|
+
title: 'Service id for the service that implements the `order-select` hook'
|
|
63
|
+
},
|
|
64
|
+
service_request_bodies: {
|
|
65
|
+
name: :order_select_request_bodies,
|
|
66
|
+
title: 'Request body or bodies for invoking the `order-select` hook'
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
group do
|
|
73
|
+
title 'Requests'
|
|
74
|
+
simulation_verification
|
|
75
|
+
|
|
76
|
+
test from: :crd_v221_service_request_required_fields_validation,
|
|
77
|
+
config: {
|
|
78
|
+
outputs: {
|
|
79
|
+
contexts: {
|
|
80
|
+
name: :order_select_contexts
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
test from: :crd_v221_service_request_context_validation,
|
|
85
|
+
config: {
|
|
86
|
+
inputs: {
|
|
87
|
+
contexts: {
|
|
88
|
+
name: :order_select_contexts
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
test from: :crd_v221_service_request_optional_fields_validation
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
group do
|
|
96
|
+
title 'Responses'
|
|
97
|
+
|
|
98
|
+
test from: :crd_v221_service_response_validation
|
|
99
|
+
test from: :crd_v221_external_reference_card_validation
|
|
100
|
+
test from: :crd_v221_launch_smart_app_card_validation
|
|
101
|
+
test from: :crd_v221_valid_instructions_card_received
|
|
102
|
+
test from: :crd_v221_coverage_info_system_action_validation
|
|
103
|
+
test from: :crd_v221_coverage_information_card_absence
|
|
104
|
+
test from: :crd_v221_propose_alternate_request_card_validation
|
|
105
|
+
test from: :crd_v221_additional_orders_card_validation
|
|
106
|
+
test from: :crd_v221_request_form_completion_response_validation
|
|
107
|
+
test from: :crd_v221_create_or_update_coverage_info_response_validation
|
|
108
|
+
test from: :crd_v221_coverage_info_configuration
|
|
109
|
+
test from: :crd_v221_unknown_configuration
|
|
110
|
+
test from: :crd_v221_unknown_context
|
|
111
|
+
test from: :crd_v221_unknown_cds_hooks_elements
|
|
112
|
+
end
|
|
113
|
+
end
|
|
114
|
+
end
|
|
115
|
+
end
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
require_relative '../../cross_suite/tags'
|
|
2
|
+
require_relative 'interaction/server_invoke_hook_test'
|
|
3
|
+
require_relative 'verify_request/service_request_required_fields_validation_test'
|
|
4
|
+
require_relative 'verify_request/service_request_optional_fields_validation_test'
|
|
5
|
+
require_relative 'verify_request/service_request_context_validation_test'
|
|
6
|
+
require_relative 'verify_response/service_response_validation_test'
|
|
7
|
+
require_relative 'verify_response/external_reference_card_validation_test'
|
|
8
|
+
require_relative 'verify_response/launch_smart_app_card_validation_test'
|
|
9
|
+
require_relative 'verify_response/instructions_card_received_test'
|
|
10
|
+
require_relative 'verify_response/coverage_information_system_action_validation_test'
|
|
11
|
+
require_relative 'verify_response/coverage_information_card_absence_test'
|
|
12
|
+
require_relative 'verify_response/coverage_info_configuration_test'
|
|
13
|
+
require_relative 'verify_response/propose_alternate_request_card_validation_test'
|
|
14
|
+
require_relative 'verify_response/additional_orders_validation_test'
|
|
15
|
+
require_relative 'verify_response/form_completion_response_validation_test'
|
|
16
|
+
require_relative 'verify_response/create_or_update_coverage_info_response_validation_test'
|
|
17
|
+
require_relative 'verify_response/all_responses_include_coverage_information_test'
|
|
18
|
+
require_relative 'verify_response/unknown_configuration_test'
|
|
19
|
+
require_relative 'verify_response/unknown_context_test'
|
|
20
|
+
require_relative 'verify_response/unknown_cds_hooks_elements_test'
|
|
21
|
+
|
|
22
|
+
module DaVinciCRDTestKit
|
|
23
|
+
module V221
|
|
24
|
+
class ServerOrderSignGroup < Inferno::TestGroup
|
|
25
|
+
title 'order-sign'
|
|
26
|
+
id :crd_v221_server_order_sign
|
|
27
|
+
description %(
|
|
28
|
+
This group of tests invokes the order-sign hook and ensures that
|
|
29
|
+
the user-provided requests are valid as per the requirements described
|
|
30
|
+
in the [CRD IG section on order-sign hook](https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#order-sign)
|
|
31
|
+
and the [CDS Hooks specification section on order-sign context](https://cds-hooks.hl7.org/hooks/order-sign/2023SepSTU1Ballot/order-sign/).
|
|
32
|
+
It also ensures that the contents of the server's response are valid as per the requirements described in
|
|
33
|
+
the [CRD IG section on order-sign hook](https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#order-sign)
|
|
34
|
+
and the [CDS Hooks section on CDS Service Response](https://cds-hooks.hl7.org/2.0/#cds-service-response).
|
|
35
|
+
|
|
36
|
+
The [CRD IG section on order-sign hook](https://hl7.org/fhir/us/davinci-crd/STU2/hooks.html#order-sign)
|
|
37
|
+
states that "servers SHALL, at minimum, support returning and processing the Coverage Information
|
|
38
|
+
system action for all invocations of this hook."
|
|
39
|
+
|
|
40
|
+
This group includes tests to validate the following CRD response types:
|
|
41
|
+
- [additional orders as companions/prerequisites](https://hl7.org/fhir/us/davinci-crd/STU2/cards.html#identify-additional-orders-as-companionsprerequisites-for-current-order)\
|
|
42
|
+
- optional
|
|
43
|
+
- [Coverage Information](https://hl7.org/fhir/us/davinci-crd/STU2/cards.html#coverage-information)
|
|
44
|
+
- [Create or update coverage information](https://hl7.org/fhir/us/davinci-crd/STU2/cards.html#create-or-update-coverage-information)\
|
|
45
|
+
- optional
|
|
46
|
+
- [External Reference](https://hl7.org/fhir/us/davinci-crd/STU2/cards.html#external-reference) - optional
|
|
47
|
+
- [Instructions](https://hl7.org/fhir/us/davinci-crd/STU2/cards.html#instructions) - optional
|
|
48
|
+
- [Launch SMART application](https://hl7.org/fhir/us/davinci-crd/STU2/cards.html#launch-smart-application) -
|
|
49
|
+
optional
|
|
50
|
+
- [Propose alternate request](https://hl7.org/fhir/us/davinci-crd/STU2/cards.html#propose-alternate-request) -
|
|
51
|
+
optional
|
|
52
|
+
- [Request form completion](https://hl7.org/fhir/us/davinci-crd/STU2/cards.html#request-form-completion) -
|
|
53
|
+
optional
|
|
54
|
+
)
|
|
55
|
+
# verifies_requirements 'hl7.fhir.us.davinci-crd_2.0.1@164', 'hl7.fhir.us.davinci-crd_2.0.1@168',
|
|
56
|
+
# 'hl7.fhir.us.davinci-crd_2.0.1@217', 'hl7.fhir.us.davinci-crd_2.0.1@226'
|
|
57
|
+
|
|
58
|
+
config options: { hook_name: ORDER_SIGN_TAG }
|
|
59
|
+
run_as_group
|
|
60
|
+
|
|
61
|
+
group do
|
|
62
|
+
title 'Interaction'
|
|
63
|
+
|
|
64
|
+
test from: :crd_v221_server_invoke_hook_test,
|
|
65
|
+
config: {
|
|
66
|
+
inputs: {
|
|
67
|
+
service_ids: {
|
|
68
|
+
name: :order_sign_service_ids,
|
|
69
|
+
title: 'Service id for the service that implements the `order-sign` hook'
|
|
70
|
+
},
|
|
71
|
+
service_request_bodies: {
|
|
72
|
+
name: :order_sign_request_bodies,
|
|
73
|
+
title: 'Request body or bodies for invoking the `order-sign` hook'
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
group do
|
|
80
|
+
title 'Requests'
|
|
81
|
+
simulation_verification
|
|
82
|
+
|
|
83
|
+
test from: :crd_v221_service_request_required_fields_validation,
|
|
84
|
+
config: {
|
|
85
|
+
outputs: {
|
|
86
|
+
contexts: {
|
|
87
|
+
name: :order_sign_contexts
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
test from: :crd_v221_service_request_context_validation,
|
|
92
|
+
config: {
|
|
93
|
+
inputs: {
|
|
94
|
+
contexts: {
|
|
95
|
+
name: :order_sign_contexts
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
test from: :crd_v221_service_request_optional_fields_validation
|
|
100
|
+
end
|
|
101
|
+
|
|
102
|
+
group do
|
|
103
|
+
title 'Responses'
|
|
104
|
+
|
|
105
|
+
test from: :crd_v221_service_response_validation
|
|
106
|
+
test from: :crd_v221_external_reference_card_validation
|
|
107
|
+
test from: :crd_v221_launch_smart_app_card_validation
|
|
108
|
+
test from: :crd_v221_valid_instructions_card_received
|
|
109
|
+
test from: :crd_v221_coverage_info_system_action_validation
|
|
110
|
+
test from: :crd_v221_all_responses_include_coverage_information,
|
|
111
|
+
verifies_requirements: [
|
|
112
|
+
'hl7.fhir.us.davinci-crd_2.2.1@hook-16',
|
|
113
|
+
'hl7.fhir.us.davinci-crd_2.2.1@resp-28',
|
|
114
|
+
# This requirement has a typo. It says 'order-select' but it
|
|
115
|
+
# should be 'order-sign'.
|
|
116
|
+
# https://jira.hl7.org/browse/FHIR-56985
|
|
117
|
+
'hl7.fhir.us.davinci-crd_2.2.1@hook-39',
|
|
118
|
+
'hl7.fhir.us.davinci-crd_2.2.1@resp-29'
|
|
119
|
+
]
|
|
120
|
+
test from: :crd_v221_coverage_information_card_absence
|
|
121
|
+
test from: :crd_v221_propose_alternate_request_card_validation
|
|
122
|
+
test from: :crd_v221_additional_orders_card_validation
|
|
123
|
+
test from: :crd_v221_request_form_completion_response_validation
|
|
124
|
+
test from: :crd_v221_create_or_update_coverage_info_response_validation
|
|
125
|
+
test from: :crd_v221_coverage_info_configuration
|
|
126
|
+
test from: :crd_v221_unknown_configuration
|
|
127
|
+
test from: :crd_v221_unknown_context
|
|
128
|
+
test from: :crd_v221_unknown_cds_hooks_elements
|
|
129
|
+
end
|
|
130
|
+
end
|
|
131
|
+
end
|
|
132
|
+
end
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
require_relative 'must_support/coverage_information_system_action_across_hooks_validation_test'
|
|
2
|
+
require_relative 'must_support/coverage_information_must_support_test'
|
|
3
|
+
require_relative 'verify_response/verify_response_without_billing_options_test'
|
|
4
|
+
require_relative 'must_support/supported_us_core_versions_test'
|
|
5
|
+
require_relative 'verify_response/verify_response_without_configuration_test'
|
|
6
|
+
require_relative 'verify_request/service_request_no_custom_extensions_test'
|
|
7
|
+
|
|
8
|
+
module DaVinciCRDTestKit
|
|
9
|
+
module V221
|
|
10
|
+
class ServerRequiredCardResponseValidationGroup < Inferno::TestGroup
|
|
11
|
+
title 'Cross-Hook Response Validation'
|
|
12
|
+
description %(
|
|
13
|
+
This group contains tests to verify the behavior of the server responses
|
|
14
|
+
across all hooks.
|
|
15
|
+
)
|
|
16
|
+
# verifies_requirements 'hl7.fhir.us.davinci-crd_2.0.1@247', 'hl7.fhir.us.davinci-crd_2.0.1@248',
|
|
17
|
+
# 'hl7.fhir.us.davinci-crd_2.0.1@249'
|
|
18
|
+
|
|
19
|
+
id :crd_v221_server_required_card_response_validation
|
|
20
|
+
run_as_group
|
|
21
|
+
|
|
22
|
+
test from: :crd_v221_coverage_info_system_action_across_hooks_validation
|
|
23
|
+
test from: :crd_v221_coverage_information_must_support
|
|
24
|
+
test from: :verify_response_without_billing_options
|
|
25
|
+
test from: :verify_response_without_configuration
|
|
26
|
+
test from: :crd_v221_supported_us_core_versions
|
|
27
|
+
test from: :crd_v221_service_request_no_custom_extensions
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
require_relative 'specific_coverage_responses/technical_issues_group'
|
|
2
|
+
require_relative 'specific_coverage_responses/no_member_found_group'
|
|
3
|
+
require_relative 'specific_coverage_responses/coverage_not_found_group'
|
|
4
|
+
require_relative 'specific_coverage_responses/no_active_coverage_group'
|
|
5
|
+
|
|
6
|
+
module DaVinciCRDTestKit
|
|
7
|
+
module V221
|
|
8
|
+
class SpecificCoverageResponseGroup < Inferno::TestGroup
|
|
9
|
+
title 'Specific Coverage Responses'
|
|
10
|
+
id :crd_v221_specific_coverage_responses
|
|
11
|
+
|
|
12
|
+
description <<~DESCRIPTION
|
|
13
|
+
This group verifies the ability of a server to return specific
|
|
14
|
+
coverage-info responses in particular situations.
|
|
15
|
+
DESCRIPTION
|
|
16
|
+
|
|
17
|
+
group from: :crd_v221_server_technical_issues_group
|
|
18
|
+
group from: :crd_v221_server_no_member_found_group
|
|
19
|
+
group from: :crd_v221_server_coverage_not_found_group
|
|
20
|
+
group from: :crd_v221_server_no_active_coverage_group
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|