davinci_crd_test_kit 0.12.2 → 0.14.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/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 +124 -0
- data/config/presets/inferno_crd_server_suite.json.erb +59 -2
- 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 +233 -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}/launch_smart_app.json +8 -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 +102 -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 +96 -0
- data/lib/davinci_crd_test_kit/client/v2.2.1/client_encounter_start_group.rb +95 -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 +64 -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 +101 -0
- data/lib/davinci_crd_test_kit/client/v2.2.1/client_order_select_group.rb +102 -0
- data/lib/davinci_crd_test_kit/client/v2.2.1/client_order_sign_group.rb +107 -0
- data/lib/davinci_crd_test_kit/client/v2.2.1/client_registration_group.rb +27 -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 +229 -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 +49 -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 +107 -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 +127 -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 +74 -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 +312 -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 +462 -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 +202 -0
- data/lib/davinci_crd_test_kit/cross_suite/response_logical_model_validation.rb +274 -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 +42 -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/{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 +165 -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} +1 -1
- 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 +115 -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/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 +213 -0
- data/lib/davinci_crd_test_kit/server/v2.2.1/server_demonstrate_hook_response_group.rb +93 -0
- data/lib/davinci_crd_test_kit/server/v2.2.1/server_discovery_group.rb +69 -0
- data/lib/davinci_crd_test_kit/server/v2.2.1/server_encounter_discharge_group.rb +194 -0
- data/lib/davinci_crd_test_kit/server/v2.2.1/server_encounter_start_group.rb +194 -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 +214 -0
- data/lib/davinci_crd_test_kit/server/v2.2.1/server_order_select_group.rb +219 -0
- data/lib/davinci_crd_test_kit/server/v2.2.1/server_order_sign_group.rb +241 -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/verify_request/service_request_context_validation_test.rb +30 -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 +39 -0
- data/lib/davinci_crd_test_kit/server/v2.2.1/verify_request/service_request_required_fields_validation_test.rb +40 -0
- data/lib/davinci_crd_test_kit/server/v2.2.1/verify_response/additional_orders_validation_test.rb +66 -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/card_optional_fields_validation_test.rb +57 -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_system_action_received_test.rb +65 -0
- data/lib/davinci_crd_test_kit/server/v2.2.1/verify_response/coverage_information_system_action_validation_test.rb +184 -0
- data/lib/davinci_crd_test_kit/server/v2.2.1/verify_response/create_or_update_coverage_info_response_validation_test.rb +75 -0
- data/lib/davinci_crd_test_kit/server/v2.2.1/verify_response/external_reference_card_validation_test.rb +47 -0
- data/lib/davinci_crd_test_kit/server/v2.2.1/verify_response/form_completion_response_validation_test.rb +91 -0
- data/lib/davinci_crd_test_kit/server/v2.2.1/verify_response/hook_request_resource_resolution.rb +137 -0
- data/lib/davinci_crd_test_kit/server/v2.2.1/verify_response/instructions_card_received_test.rb +32 -0
- data/lib/davinci_crd_test_kit/server/v2.2.1/verify_response/launch_smart_app_card_validation_test.rb +49 -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 +54 -0
- data/lib/davinci_crd_test_kit/server/v2.2.1/verify_response/service_response_validation_test.rb +97 -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 +308 -101
- data/lib/davinci_crd_test_kit/client_fhir_api_group.rb +0 -785
- data/lib/davinci_crd_test_kit/client_hooks_group.rb +0 -75
- 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 -41
- data/lib/davinci_crd_test_kit/client_tests/client_fhir_api_read_test.rb +0 -39
- 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 -41
- data/lib/davinci_crd_test_kit/client_tests/client_fhir_api_validation_test.rb +0 -60
- 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 -44
- 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 -185
- 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}/external_reference.json +0 -0
- /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
data/lib/davinci_crd_test_kit/client/v2.2.1/invocation/appointment_book_receive_request_test.rb
ADDED
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
require_relative '../client_urls'
|
|
2
|
+
|
|
3
|
+
module DaVinciCRDTestKit
|
|
4
|
+
module V221
|
|
5
|
+
class AppointmentBookReceiveRequestTest < Inferno::Test
|
|
6
|
+
include ClientURLs
|
|
7
|
+
|
|
8
|
+
id :crd_v221_appointment_book_request
|
|
9
|
+
title 'Client invokes the appointment-book hook'
|
|
10
|
+
description %(
|
|
11
|
+
During this test, Inferno will wait while the client makes one or more [appointment-book](https://hl7.org/fhir/us/davinci-crd/2.2.1/en/hooks.html#appointment-book)
|
|
12
|
+
hook requests against Inferno's simulated CRD servers. Inferno will respond
|
|
13
|
+
based on the response configuration provided when running the test.
|
|
14
|
+
For more details on how Inferno's simulated CRD servers behave during
|
|
15
|
+
hook invocation see the [simulated CRD server](https://github.com/inferno-framework/davinci-crd-test-kit/wiki/Client-Details#crd-server-simulation)
|
|
16
|
+
documentation.
|
|
17
|
+
|
|
18
|
+
Inferno will pause and wait for inbound requests until told explicitly to continue
|
|
19
|
+
by the tester by clicking on the link in the "User Action Required" dialog (NOTE: after
|
|
20
|
+
5 minutes the test will become inactive and unresponsive to anything except cancelation).
|
|
21
|
+
)
|
|
22
|
+
config options: { accepts_multiple_requests: true }
|
|
23
|
+
|
|
24
|
+
input :cds_jwt_iss,
|
|
25
|
+
title: 'CRD JWT Issuer',
|
|
26
|
+
description: %(
|
|
27
|
+
Value of the `iss` claim that must be present in the JWT used to authorize the client's hook
|
|
28
|
+
request sent as the Bearer token in the `Authorization` header.
|
|
29
|
+
Run or re-run the "Registration" group to set or change this value.
|
|
30
|
+
),
|
|
31
|
+
locked: true
|
|
32
|
+
input :appointment_book_response_approach,
|
|
33
|
+
title: 'Response generation approach for appointment-book',
|
|
34
|
+
description: %(
|
|
35
|
+
Determines how Inferno will generate response for appoontment-book
|
|
36
|
+
hook invocations.
|
|
37
|
+
),
|
|
38
|
+
type: 'radio',
|
|
39
|
+
default: 'mocked',
|
|
40
|
+
options: {
|
|
41
|
+
list_options: [
|
|
42
|
+
{
|
|
43
|
+
label: 'Create simple mocks based on selected response types',
|
|
44
|
+
value: 'mocked'
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
label: 'Generate responses based on a tester-provided template',
|
|
48
|
+
value: 'custom'
|
|
49
|
+
}
|
|
50
|
+
]
|
|
51
|
+
}
|
|
52
|
+
input :appointment_book_selected_response_types,
|
|
53
|
+
title: 'Response types to return from appointment-book hook requests',
|
|
54
|
+
description: %(
|
|
55
|
+
Select the CRD response types that the simulated Inferno CRD server will [mock](https://github.com/inferno-framework/davinci-crd-test-kit/wiki/Controlling-Simulated-Responses#mocked-responses)
|
|
56
|
+
when responding to hook invocations. If no types are selected, Inferno will mock and return
|
|
57
|
+
a [Coverage Information](https://hl7.org/fhir/us/davinci-crd/2.2.1/en/cards.html#coverage-information-response-type)
|
|
58
|
+
response for this primary hook.
|
|
59
|
+
),
|
|
60
|
+
type: 'checkbox',
|
|
61
|
+
default: ['coverage_information', 'external_reference', 'instructions'],
|
|
62
|
+
optional: true,
|
|
63
|
+
options: {
|
|
64
|
+
list_options: [
|
|
65
|
+
{
|
|
66
|
+
label: 'External Reference',
|
|
67
|
+
value: 'external_reference'
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
label: 'Instructions',
|
|
71
|
+
value: 'instructions'
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
label: 'Coverage Information',
|
|
75
|
+
value: 'coverage_information'
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
label: 'Request Form Completion',
|
|
79
|
+
value: 'request_form_completion'
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
label: 'Create/Update Coverage Information',
|
|
83
|
+
value: 'create_update_coverage_info'
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
label: 'Launch SMART Application',
|
|
87
|
+
value: 'launch_smart_app'
|
|
88
|
+
}
|
|
89
|
+
]
|
|
90
|
+
},
|
|
91
|
+
enable_when: { input_name: 'appointment_book_response_approach', value: 'mocked' }
|
|
92
|
+
input :appointment_book_custom_response_template,
|
|
93
|
+
title: 'Custom response template for appointment-book hook requests',
|
|
94
|
+
description: %(
|
|
95
|
+
Provide a [custom response template](https://github.com/inferno-framework/davinci-crd-test-kit/wiki/Controlling-Simulated-Responses#tester-directed-custom-responses)
|
|
96
|
+
in JSON form for Inferno to use when responding to hook invocations.
|
|
97
|
+
),
|
|
98
|
+
type: 'textarea',
|
|
99
|
+
optional: true,
|
|
100
|
+
enable_when: { input_name: 'appointment_book_response_approach', value: 'custom' }
|
|
101
|
+
output :continuation_url
|
|
102
|
+
|
|
103
|
+
def configured_response_details
|
|
104
|
+
if appointment_book_response_approach == 'custom'
|
|
105
|
+
# rubocop:disable Layout/LineLength
|
|
106
|
+
'When responding, Inferno will evaluate the provided [custom response template](https://github.com/inferno-framework/davinci-crd-test-kit/wiki/Controlling-Simulated-Responses#tester-directed-custom-responses) ' \
|
|
107
|
+
'from the **Custom response template for appointment-book hook requests** input ' \
|
|
108
|
+
'against the incoming request to create a response.'
|
|
109
|
+
# rubocop:enable Layout/LineLength
|
|
110
|
+
|
|
111
|
+
else
|
|
112
|
+
# rubocop:disable Layout/LineLength
|
|
113
|
+
'When responding, Inferno will [mock](https://github.com/inferno-framework/davinci-crd-test-kit/wiki/Controlling-Simulated-Responses#mocked-responses) ' \
|
|
114
|
+
'the following response types using the incoming request: ' \
|
|
115
|
+
"\n - #{selected_response_types_string}"
|
|
116
|
+
# rubocop:enable Layout/LineLength
|
|
117
|
+
end
|
|
118
|
+
end
|
|
119
|
+
|
|
120
|
+
def selected_response_types_string
|
|
121
|
+
if appointment_book_selected_response_types.present?
|
|
122
|
+
appointment_book_selected_response_types.join("\n - ")
|
|
123
|
+
else
|
|
124
|
+
'Coverage Information' # primary hook default
|
|
125
|
+
end
|
|
126
|
+
end
|
|
127
|
+
|
|
128
|
+
run do
|
|
129
|
+
identifier = cds_jwt_iss
|
|
130
|
+
continuation_url = "#{resume_pass_url}?token=#{identifier}"
|
|
131
|
+
output(continuation_url:)
|
|
132
|
+
|
|
133
|
+
wait(
|
|
134
|
+
identifier:,
|
|
135
|
+
message: %(
|
|
136
|
+
**Invoke the `appointment-book` hook**:
|
|
137
|
+
|
|
138
|
+
Invoke the appointment-book hook by sending requests to
|
|
139
|
+
one or both of the two Inferno simulated CRD servers:
|
|
140
|
+
|
|
141
|
+
- Complete Prefetch: `#{appointment_book_url}`
|
|
142
|
+
- Subset Prefetch: `#{appointment_book_prefetch_subset_url}`
|
|
143
|
+
|
|
144
|
+
For Inferno to recognize these requests and associate them with this session,
|
|
145
|
+
the authentication JWT sent as a Bearer token in the Authorization header
|
|
146
|
+
must have `#{cds_jwt_iss}` as the `iss` claim in the JWT payload.
|
|
147
|
+
|
|
148
|
+
#{configured_response_details}
|
|
149
|
+
|
|
150
|
+
[Click here](#{continuation_url}) when you have finished submitting requests.
|
|
151
|
+
)
|
|
152
|
+
)
|
|
153
|
+
end
|
|
154
|
+
end
|
|
155
|
+
end
|
|
156
|
+
end
|
data/lib/davinci_crd_test_kit/client/v2.2.1/invocation/encounter_discharge_receive_request_test.rb
ADDED
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
require_relative '../client_urls'
|
|
2
|
+
|
|
3
|
+
module DaVinciCRDTestKit
|
|
4
|
+
module V221
|
|
5
|
+
class EncounterDischargeReceiveRequestTest < Inferno::Test
|
|
6
|
+
include ClientURLs
|
|
7
|
+
|
|
8
|
+
id :crd_v221_encounter_discharge_request
|
|
9
|
+
title 'Client invokes the encounter-discharge hook'
|
|
10
|
+
description %(
|
|
11
|
+
During this test, Inferno will wait while the client makes one or more [encounter-discharge](https://hl7.org/fhir/us/davinci-crd/2.2.1/en/hooks.html#encounter-discharge)
|
|
12
|
+
hook requests against Inferno's simulated CRD servers. Inferno will respond
|
|
13
|
+
based on the response configuration provided when running the test.
|
|
14
|
+
For more details on how Inferno's simulated CRD servers behave during
|
|
15
|
+
hook invocation see the [simulated CRD server](https://github.com/inferno-framework/davinci-crd-test-kit/wiki/Client-Details#crd-server-simulation)
|
|
16
|
+
documentation.
|
|
17
|
+
|
|
18
|
+
Inferno will pause and wait for inbound requests until told explicitly to continue
|
|
19
|
+
by the tester by clicking on the link in the "User Action Required" dialog (NOTE: after
|
|
20
|
+
5 minutes the test will become inactive and unresponsive to anything except cancelation).
|
|
21
|
+
)
|
|
22
|
+
|
|
23
|
+
config options: { accepts_multiple_requests: true }
|
|
24
|
+
|
|
25
|
+
input :cds_jwt_iss,
|
|
26
|
+
title: 'CRD JWT Issuer',
|
|
27
|
+
description: %(
|
|
28
|
+
Value of the `iss` claim that must be present in the JWT used to authorize the client's hook
|
|
29
|
+
request sent as the Bearer token in the `Authorization` header.
|
|
30
|
+
Run or re-run the "Registration" group to set or change this value.
|
|
31
|
+
),
|
|
32
|
+
locked: true
|
|
33
|
+
input :encounter_discharge_response_approach,
|
|
34
|
+
title: 'Response generation approach for encounter-discharge',
|
|
35
|
+
description: %(
|
|
36
|
+
Determines how Inferno will generate response for encounter-discharge
|
|
37
|
+
hook invocations.
|
|
38
|
+
),
|
|
39
|
+
type: 'radio',
|
|
40
|
+
default: 'mocked',
|
|
41
|
+
options: {
|
|
42
|
+
list_options: [
|
|
43
|
+
{
|
|
44
|
+
label: 'Create simple mocks based on selected response types',
|
|
45
|
+
value: 'mocked'
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
label: 'Generate responses based on a tester-provided template',
|
|
49
|
+
value: 'custom'
|
|
50
|
+
}
|
|
51
|
+
]
|
|
52
|
+
}
|
|
53
|
+
input :encounter_discharge_selected_response_types,
|
|
54
|
+
title: 'Response types to return from encounter-discharge hook requests',
|
|
55
|
+
description: %(
|
|
56
|
+
Select the CRD response types that the simulated Inferno CRD server will [mock](https://github.com/inferno-framework/davinci-crd-test-kit/wiki/Controlling-Simulated-Responses#mocked-responses)
|
|
57
|
+
when responding to hook invocations. If no types are selected, Inferno will mock and return
|
|
58
|
+
an [Instructions](https://hl7.org/fhir/us/davinci-crd/2.2.1/en/cards.html#instructions-response-type)
|
|
59
|
+
response for this secondary hook.
|
|
60
|
+
),
|
|
61
|
+
type: 'checkbox',
|
|
62
|
+
default: ['coverage_information', 'external_reference', 'instructions'],
|
|
63
|
+
optional: true,
|
|
64
|
+
options: {
|
|
65
|
+
list_options: [
|
|
66
|
+
{
|
|
67
|
+
label: 'External Reference',
|
|
68
|
+
value: 'external_reference'
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
label: 'Instructions',
|
|
72
|
+
value: 'instructions'
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
label: 'Coverage Information',
|
|
76
|
+
value: 'coverage_information'
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
label: 'Request Form Completion',
|
|
80
|
+
value: 'request_form_completion'
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
label: 'Create/Update Coverage Information',
|
|
84
|
+
value: 'create_update_coverage_info'
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
label: 'Launch SMART Application',
|
|
88
|
+
value: 'launch_smart_app'
|
|
89
|
+
}
|
|
90
|
+
]
|
|
91
|
+
},
|
|
92
|
+
enable_when: { input_name: 'encounter_discharge_response_approach', value: 'mocked' }
|
|
93
|
+
input :encounter_discharge_custom_response_template,
|
|
94
|
+
title: 'Custom response template for encounter-discharge hook requests',
|
|
95
|
+
description: %(
|
|
96
|
+
Provide a [custom response template](https://github.com/inferno-framework/davinci-crd-test-kit/wiki/Controlling-Simulated-Responses#tester-directed-custom-responses)
|
|
97
|
+
in JSON form for Inferno to use when responding to hook invocations.
|
|
98
|
+
),
|
|
99
|
+
type: 'textarea',
|
|
100
|
+
optional: true,
|
|
101
|
+
enable_when: { input_name: 'encounter_discharge_response_approach', value: 'custom' }
|
|
102
|
+
output :continuation_url
|
|
103
|
+
|
|
104
|
+
def configured_response_details
|
|
105
|
+
if encounter_discharge_response_approach == 'custom'
|
|
106
|
+
# rubocop:disable Layout/LineLength
|
|
107
|
+
'When responding, Inferno will evaluate the provided [custom response template](https://github.com/inferno-framework/davinci-crd-test-kit/wiki/Controlling-Simulated-Responses#tester-directed-custom-responses) ' \
|
|
108
|
+
'from the **Custom response template for encounter-discharge hook requests** input ' \
|
|
109
|
+
'against the incoming request to create a response.'
|
|
110
|
+
# rubocop:enable Layout/LineLength
|
|
111
|
+
|
|
112
|
+
else
|
|
113
|
+
# rubocop:disable Layout/LineLength
|
|
114
|
+
'When responding, Inferno will [mock](https://github.com/inferno-framework/davinci-crd-test-kit/wiki/Controlling-Simulated-Responses#mocked-responses) ' \
|
|
115
|
+
'the following response types using the incoming request: ' \
|
|
116
|
+
"\n - #{selected_response_types_string}"
|
|
117
|
+
# rubocop:enable Layout/LineLength
|
|
118
|
+
end
|
|
119
|
+
end
|
|
120
|
+
|
|
121
|
+
def selected_response_types_string
|
|
122
|
+
if encounter_discharge_selected_response_types.present?
|
|
123
|
+
encounter_discharge_selected_response_types.join("\n - ")
|
|
124
|
+
else
|
|
125
|
+
'Instructions' # secondary hook default
|
|
126
|
+
end
|
|
127
|
+
end
|
|
128
|
+
|
|
129
|
+
run do
|
|
130
|
+
identifier = cds_jwt_iss
|
|
131
|
+
continuation_url = "#{resume_pass_url}?token=#{identifier}"
|
|
132
|
+
output(continuation_url:)
|
|
133
|
+
|
|
134
|
+
wait(
|
|
135
|
+
identifier:,
|
|
136
|
+
message: %(
|
|
137
|
+
**Invoke the `encounter-discharge` hook**:
|
|
138
|
+
|
|
139
|
+
Invoke the encounter-discharge hook by sending requests to
|
|
140
|
+
one or both of the two Inferno simulated CRD servers:
|
|
141
|
+
|
|
142
|
+
- Complete Prefetch: `#{encounter_discharge_url}`
|
|
143
|
+
- Subset Prefetch: `#{encounter_discharge_prefetch_subset_url}`
|
|
144
|
+
|
|
145
|
+
For Inferno to recognize these requests and associate them with this session,
|
|
146
|
+
the authentication JWT sent as a Bearer token in the Authorization header
|
|
147
|
+
must have `#{cds_jwt_iss}` as the `iss` claim in the JWT payload.
|
|
148
|
+
|
|
149
|
+
#{configured_response_details}
|
|
150
|
+
|
|
151
|
+
[Click here](#{continuation_url}) when you have finished submitting requests.
|
|
152
|
+
)
|
|
153
|
+
)
|
|
154
|
+
end
|
|
155
|
+
end
|
|
156
|
+
end
|
|
157
|
+
end
|
data/lib/davinci_crd_test_kit/client/v2.2.1/invocation/encounter_start_receive_request_test.rb
ADDED
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
require_relative '../client_urls'
|
|
2
|
+
|
|
3
|
+
module DaVinciCRDTestKit
|
|
4
|
+
module V221
|
|
5
|
+
class EncounterStartReceiveRequestTest < Inferno::Test
|
|
6
|
+
include ClientURLs
|
|
7
|
+
|
|
8
|
+
id :crd_v221_encounter_start_request
|
|
9
|
+
title 'Client invokes the encounter-start hook'
|
|
10
|
+
description %(
|
|
11
|
+
During this test, Inferno will wait while the client makes one or more [encounter-start](https://hl7.org/fhir/us/davinci-crd/2.2.1/en/hooks.html#encounter-start)
|
|
12
|
+
hook requests against Inferno's simulated CRD servers. Inferno will respond
|
|
13
|
+
based on the response configuration provided when running the test.
|
|
14
|
+
For more details on how Inferno's simulated CRD servers behave during
|
|
15
|
+
hook invocation see the [simulated CRD server](https://github.com/inferno-framework/davinci-crd-test-kit/wiki/Client-Details#crd-server-simulation)
|
|
16
|
+
documentation.
|
|
17
|
+
|
|
18
|
+
Inferno will pause and wait for inbound requests until told explicitly to continue
|
|
19
|
+
by the tester by clicking on the link in the "User Action Required" dialog (NOTE: after
|
|
20
|
+
5 minutes the test will become inactive and unresponsive to anything except cancelation).
|
|
21
|
+
)
|
|
22
|
+
|
|
23
|
+
config options: { accepts_multiple_requests: true }
|
|
24
|
+
|
|
25
|
+
input :cds_jwt_iss,
|
|
26
|
+
title: 'CRD JWT Issuer',
|
|
27
|
+
description: %(
|
|
28
|
+
Value of the `iss` claim that must be present in the JWT used to authorize the client's hook
|
|
29
|
+
request sent as the Bearer token in the `Authorization` header.
|
|
30
|
+
Run or re-run the "Registration" group to set or change this value.
|
|
31
|
+
),
|
|
32
|
+
locked: true
|
|
33
|
+
input :encounter_start_response_approach,
|
|
34
|
+
title: 'Response generation approach for encounter-start',
|
|
35
|
+
description: %(
|
|
36
|
+
Determines how Inferno will generate response for encounter-start
|
|
37
|
+
hook invocations.
|
|
38
|
+
),
|
|
39
|
+
type: 'radio',
|
|
40
|
+
default: 'mocked',
|
|
41
|
+
options: {
|
|
42
|
+
list_options: [
|
|
43
|
+
{
|
|
44
|
+
label: 'Create simple mocks based on selected response types',
|
|
45
|
+
value: 'mocked'
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
label: 'Generate responses based on a tester-provided template',
|
|
49
|
+
value: 'custom'
|
|
50
|
+
}
|
|
51
|
+
]
|
|
52
|
+
}
|
|
53
|
+
input :encounter_start_selected_response_types,
|
|
54
|
+
title: 'Response types to return from encounter-start hook requests',
|
|
55
|
+
description: %(
|
|
56
|
+
Select the CRD response types that the simulated Inferno CRD server will [mock](https://github.com/inferno-framework/davinci-crd-test-kit/wiki/Controlling-Simulated-Responses#mocked-responses)
|
|
57
|
+
when responding to hook invocations. If no types are selected, Inferno will mock and return
|
|
58
|
+
an [Instructions](https://hl7.org/fhir/us/davinci-crd/2.2.1/en/cards.html#instructions-response-type)
|
|
59
|
+
response for this secondary hook.
|
|
60
|
+
),
|
|
61
|
+
type: 'checkbox',
|
|
62
|
+
default: ['coverage_information', 'external_reference', 'instructions'],
|
|
63
|
+
optional: true,
|
|
64
|
+
options: {
|
|
65
|
+
list_options: [
|
|
66
|
+
{
|
|
67
|
+
label: 'External Reference',
|
|
68
|
+
value: 'external_reference'
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
label: 'Instructions',
|
|
72
|
+
value: 'instructions'
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
label: 'Coverage Information',
|
|
76
|
+
value: 'coverage_information'
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
label: 'Request Form Completion',
|
|
80
|
+
value: 'request_form_completion'
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
label: 'Create/Update Coverage Information',
|
|
84
|
+
value: 'create_update_coverage_info'
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
label: 'Launch SMART Application',
|
|
88
|
+
value: 'launch_smart_app'
|
|
89
|
+
}
|
|
90
|
+
]
|
|
91
|
+
},
|
|
92
|
+
enable_when: { input_name: 'encounter_start_response_approach', value: 'mocked' }
|
|
93
|
+
input :encounter_start_custom_response_template,
|
|
94
|
+
title: 'Custom response template for encounter-start hook requests',
|
|
95
|
+
description: %(
|
|
96
|
+
Provide a [custom response template](https://github.com/inferno-framework/davinci-crd-test-kit/wiki/Controlling-Simulated-Responses#tester-directed-custom-responses)
|
|
97
|
+
in JSON form for Inferno to use when responding to hook invocations.
|
|
98
|
+
),
|
|
99
|
+
type: 'textarea',
|
|
100
|
+
optional: true,
|
|
101
|
+
enable_when: { input_name: 'encounter_start_response_approach', value: 'custom' }
|
|
102
|
+
output :continuation_url
|
|
103
|
+
|
|
104
|
+
def configured_response_details
|
|
105
|
+
if encounter_start_response_approach == 'custom'
|
|
106
|
+
# rubocop:disable Layout/LineLength
|
|
107
|
+
'When responding, Inferno will evaluate the provided [custom response template](https://github.com/inferno-framework/davinci-crd-test-kit/wiki/Controlling-Simulated-Responses#tester-directed-custom-responses) ' \
|
|
108
|
+
'from the **Custom response template for encounter-start hook requests** input ' \
|
|
109
|
+
'against the incoming request to create a response.'
|
|
110
|
+
# rubocop:enable Layout/LineLength
|
|
111
|
+
|
|
112
|
+
else
|
|
113
|
+
# rubocop:disable Layout/LineLength
|
|
114
|
+
'When responding, Inferno will [mock](https://github.com/inferno-framework/davinci-crd-test-kit/wiki/Controlling-Simulated-Responses#mocked-responses) ' \
|
|
115
|
+
'the following response types using the incoming request: ' \
|
|
116
|
+
"\n - #{selected_response_types_string}"
|
|
117
|
+
# rubocop:enable Layout/LineLength
|
|
118
|
+
end
|
|
119
|
+
end
|
|
120
|
+
|
|
121
|
+
def selected_response_types_string
|
|
122
|
+
if encounter_start_selected_response_types.present?
|
|
123
|
+
encounter_start_selected_response_types.join("\n - ")
|
|
124
|
+
else
|
|
125
|
+
'Instructions' # secondary hook default
|
|
126
|
+
end
|
|
127
|
+
end
|
|
128
|
+
|
|
129
|
+
run do
|
|
130
|
+
identifier = cds_jwt_iss
|
|
131
|
+
continuation_url = "#{resume_pass_url}?token=#{identifier}"
|
|
132
|
+
output(continuation_url:)
|
|
133
|
+
|
|
134
|
+
wait(
|
|
135
|
+
identifier:,
|
|
136
|
+
message: %(
|
|
137
|
+
**Invoke the `encounter-start` hook**:
|
|
138
|
+
|
|
139
|
+
Invoke the encounter-start hook by sending requests to
|
|
140
|
+
one or both of the two Inferno simulated CRD servers:
|
|
141
|
+
|
|
142
|
+
- Complete Prefetch: `#{encounter_start_url}`
|
|
143
|
+
- Subset Prefetch: `#{encounter_start_prefetch_subset_url}`
|
|
144
|
+
|
|
145
|
+
For Inferno to recognize these requests and associate them with this session,
|
|
146
|
+
the authentication JWT sent as a Bearer token in the Authorization header
|
|
147
|
+
must have `#{cds_jwt_iss}` as the `iss` claim in the JWT payload.
|
|
148
|
+
|
|
149
|
+
#{configured_response_details}
|
|
150
|
+
|
|
151
|
+
[Click here](#{continuation_url}) when you have finished submitting requests.
|
|
152
|
+
)
|
|
153
|
+
)
|
|
154
|
+
end
|
|
155
|
+
end
|
|
156
|
+
end
|
|
157
|
+
end
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
require_relative '../client_urls'
|
|
2
|
+
|
|
3
|
+
module DaVinciCRDTestKit
|
|
4
|
+
module V221
|
|
5
|
+
class OrderDispatchReceiveRequestTest < Inferno::Test
|
|
6
|
+
include ClientURLs
|
|
7
|
+
|
|
8
|
+
id :crd_v221_order_dispatch_request
|
|
9
|
+
title 'Client invokes the order-dispatch hook'
|
|
10
|
+
description %(
|
|
11
|
+
During this test, Inferno will wait while the client makes one or more [order-dispatch](https://hl7.org/fhir/us/davinci-crd/2.2.1/en/hooks.html#order-dispatch)
|
|
12
|
+
hook requests against Inferno's simulated CRD servers. Inferno will respond
|
|
13
|
+
based on the response configuration provided when running the test.
|
|
14
|
+
For more details on how Inferno's simulated CRD servers behave during
|
|
15
|
+
hook invocation see the [simulated CRD server](https://github.com/inferno-framework/davinci-crd-test-kit/wiki/Client-Details#crd-server-simulation)
|
|
16
|
+
documentation.
|
|
17
|
+
|
|
18
|
+
Inferno will pause and wait for inbound requests until told explicitly to continue
|
|
19
|
+
by the tester by clicking on the link in the "User Action Required" dialog (NOTE: after
|
|
20
|
+
5 minutes the test will become inactive and unresponsive to anything except cancelation).
|
|
21
|
+
)
|
|
22
|
+
|
|
23
|
+
config options: { accepts_multiple_requests: true }
|
|
24
|
+
|
|
25
|
+
input :cds_jwt_iss,
|
|
26
|
+
title: 'CRD JWT Issuer',
|
|
27
|
+
description: %(
|
|
28
|
+
Value of the `iss` claim that must be present in the JWT used to authorize the client's hook
|
|
29
|
+
request sent as the Bearer token in the `Authorization` header.
|
|
30
|
+
Run or re-run the "Registration" group to set or change this value.
|
|
31
|
+
),
|
|
32
|
+
locked: true
|
|
33
|
+
input :order_dispatch_response_approach,
|
|
34
|
+
title: 'Response generation approach for order-dispatch',
|
|
35
|
+
description: %(
|
|
36
|
+
Determines how Inferno will generate response for order-dispatch
|
|
37
|
+
hook invocations.
|
|
38
|
+
),
|
|
39
|
+
type: 'radio',
|
|
40
|
+
default: 'mocked',
|
|
41
|
+
options: {
|
|
42
|
+
list_options: [
|
|
43
|
+
{
|
|
44
|
+
label: 'Create simple mocks based on selected response types',
|
|
45
|
+
value: 'mocked'
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
label: 'Generate responses based on a tester-provided template',
|
|
49
|
+
value: 'custom'
|
|
50
|
+
}
|
|
51
|
+
]
|
|
52
|
+
}
|
|
53
|
+
input :order_dispatch_selected_response_types,
|
|
54
|
+
title: 'Response types to return from order-dispatch hook requests',
|
|
55
|
+
description: %(
|
|
56
|
+
Select the CRD response types that the simulated Inferno CRD server will [mock](https://github.com/inferno-framework/davinci-crd-test-kit/wiki/Controlling-Simulated-Responses#mocked-responses)
|
|
57
|
+
when responding to hook invocations. If no types are selected, Inferno will mock and return
|
|
58
|
+
a [Coverage Information](https://hl7.org/fhir/us/davinci-crd/2.2.1/en/cards.html#coverage-information-response-type)
|
|
59
|
+
response for this primary hook.
|
|
60
|
+
),
|
|
61
|
+
type: 'checkbox',
|
|
62
|
+
default: ['coverage_information', 'external_reference', 'instructions'],
|
|
63
|
+
optional: true,
|
|
64
|
+
options: {
|
|
65
|
+
list_options: [
|
|
66
|
+
{
|
|
67
|
+
label: 'External Reference',
|
|
68
|
+
value: 'external_reference'
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
label: 'Instructions',
|
|
72
|
+
value: 'instructions'
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
label: 'Coverage Information',
|
|
76
|
+
value: 'coverage_information'
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
label: 'Request Form Completion',
|
|
80
|
+
value: 'request_form_completion'
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
label: 'Create/Update Coverage Information',
|
|
84
|
+
value: 'create_update_coverage_info'
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
label: 'Launch SMART Application',
|
|
88
|
+
value: 'launch_smart_app'
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
label: 'Propose Alternate Request',
|
|
92
|
+
value: 'propose_alternate_request'
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
label: 'Additional Orders as Companions/Prerequisites',
|
|
96
|
+
value: 'companions_prerequisites'
|
|
97
|
+
}
|
|
98
|
+
]
|
|
99
|
+
},
|
|
100
|
+
enable_when: { input_name: 'order_dispatch_response_approach', value: 'mocked' }
|
|
101
|
+
input :order_dispatch_custom_response_template,
|
|
102
|
+
title: 'Custom response template for order-dispatch hook requests',
|
|
103
|
+
description: %(
|
|
104
|
+
Provide a [custom response template](https://github.com/inferno-framework/davinci-crd-test-kit/wiki/Controlling-Simulated-Responses#tester-directed-custom-responses)
|
|
105
|
+
in JSON form for Inferno to use when responding to hook invocations.
|
|
106
|
+
),
|
|
107
|
+
type: 'textarea',
|
|
108
|
+
optional: true,
|
|
109
|
+
enable_when: { input_name: 'order_dispatch_response_approach', value: 'custom' }
|
|
110
|
+
output :continuation_url
|
|
111
|
+
|
|
112
|
+
def configured_response_details
|
|
113
|
+
if order_dispatch_response_approach == 'custom'
|
|
114
|
+
# rubocop:disable Layout/LineLength
|
|
115
|
+
'When responding, Inferno will evaluate the provided [custom response template](https://github.com/inferno-framework/davinci-crd-test-kit/wiki/Controlling-Simulated-Responses#tester-directed-custom-responses) ' \
|
|
116
|
+
'from the **Custom response template for order-dispatch hook requests** input ' \
|
|
117
|
+
'against the incoming request to create a response.'
|
|
118
|
+
# rubocop:enable Layout/LineLength
|
|
119
|
+
|
|
120
|
+
else
|
|
121
|
+
# rubocop:disable Layout/LineLength
|
|
122
|
+
'When responding, Inferno will [mock](https://github.com/inferno-framework/davinci-crd-test-kit/wiki/Controlling-Simulated-Responses#mocked-responses) ' \
|
|
123
|
+
'the following response types using the incoming request: ' \
|
|
124
|
+
"\n - #{selected_response_types_string}"
|
|
125
|
+
# rubocop:enable Layout/LineLength
|
|
126
|
+
end
|
|
127
|
+
end
|
|
128
|
+
|
|
129
|
+
def selected_response_types_string
|
|
130
|
+
if order_dispatch_selected_response_types.present?
|
|
131
|
+
order_dispatch_selected_response_types.join("\n - ")
|
|
132
|
+
else
|
|
133
|
+
'Coverage Information' # primary hook default
|
|
134
|
+
end
|
|
135
|
+
end
|
|
136
|
+
|
|
137
|
+
run do
|
|
138
|
+
identifier = cds_jwt_iss
|
|
139
|
+
continuation_url = "#{resume_pass_url}?token=#{identifier}"
|
|
140
|
+
output(continuation_url:)
|
|
141
|
+
|
|
142
|
+
wait(
|
|
143
|
+
identifier:,
|
|
144
|
+
message: %(
|
|
145
|
+
**Invoke the `order-dispatch` hook**:
|
|
146
|
+
|
|
147
|
+
Invoke the order-dispatch hook by sending requests to
|
|
148
|
+
one or both of the two Inferno simulated CRD servers:
|
|
149
|
+
|
|
150
|
+
- Complete Prefetch: `#{order_dispatch_url}`
|
|
151
|
+
- Subset Prefetch: `#{order_dispatch_prefetch_subset_url}`
|
|
152
|
+
|
|
153
|
+
For Inferno to recognize these requests and associate them with this session,
|
|
154
|
+
the authentication JWT sent as a Bearer token in the Authorization header
|
|
155
|
+
must have `#{cds_jwt_iss}` as the `iss` claim in the JWT payload.
|
|
156
|
+
|
|
157
|
+
#{configured_response_details}
|
|
158
|
+
|
|
159
|
+
[Click here](#{continuation_url}) when you have finished submitting requests.
|
|
160
|
+
)
|
|
161
|
+
)
|
|
162
|
+
end
|
|
163
|
+
end
|
|
164
|
+
end
|
|
165
|
+
end
|