davinci_crd_test_kit 0.14.0 → 0.14.2
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_server_suite.json.erb → client_against_inferno_crd_server_suite.json.erb} +0 -33
- data/config/presets/{ri_crd_request_generator.json.erb → client_against_ri_crd_request_generator.json.erb} +1 -14
- data/config/presets/client_v221_against_inferno_crd_server_suite.json.erb +84 -0
- data/config/presets/client_v221_against_ri_br_provider.json.erb +31 -0
- data/config/presets/{ri_crd_request_generator.json_v221.json.erb → client_v221_against_ri_crd_request_generator.json.erb} +1 -1
- data/config/presets/{inferno_crd_client_suite.json.erb → server_against_inferno_crd_client_suite.json.erb} +0 -43
- data/config/presets/{ri_crd_server.json.erb → server_against_ri_crd_server.json.erb} +1 -44
- data/config/presets/{inferno_crd_client_suite_v221.json.erb → server_v221_against_inferno_crd_client_suite.json.erb} +48 -45
- data/config/presets/{inferno_crd_client_suite_prefetch_subset_v221.json.erb → server_v221_against_inferno_crd_client_suite_prefetch_subset.json.erb} +0 -46
- data/config/presets/server_v221_against_inferno_g31_suite.json.erb +49 -0
- data/lib/davinci_crd_test_kit/client/cross_hook_helper.rb +26 -0
- data/lib/davinci_crd_test_kit/client/endpoints/custom_service_response.rb +7 -7
- data/lib/davinci_crd_test_kit/client/endpoints/gather_response_generation_data.rb +4 -1
- data/lib/davinci_crd_test_kit/client/endpoints/hook_request_endpoint.rb +70 -39
- data/lib/davinci_crd_test_kit/client/endpoints/mock_service_response.rb +26 -7
- data/lib/davinci_crd_test_kit/client/endpoints/mocked_card_responses/external_reference.json +1 -1
- data/lib/davinci_crd_test_kit/client/endpoints/mocked_card_responses/launch_smart_app.json +0 -7
- data/lib/davinci_crd_test_kit/client/endpoints/scenario_service_response.rb +54 -0
- data/lib/davinci_crd_test_kit/client/tagged_request_load_helper.rb +8 -27
- data/lib/davinci_crd_test_kit/client/v2.0.1/auth/retrieve_jwks_test.rb +35 -23
- data/lib/davinci_crd_test_kit/client/v2.0.1/auth/token_payload_test.rb +34 -21
- data/lib/davinci_crd_test_kit/client/v2.0.1/cds-services-v201.json +20 -20
- data/lib/davinci_crd_test_kit/client/v2.0.1/client_appointment_book_group.rb +12 -10
- data/lib/davinci_crd_test_kit/client/v2.0.1/client_encounter_discharge_group.rb +12 -10
- data/lib/davinci_crd_test_kit/client/v2.0.1/client_encounter_start_group.rb +12 -10
- data/lib/davinci_crd_test_kit/client/v2.0.1/client_hooks_group.rb +5 -5
- data/lib/davinci_crd_test_kit/client/v2.0.1/client_order_dispatch_group.rb +12 -10
- data/lib/davinci_crd_test_kit/client/v2.0.1/client_order_select_group.rb +12 -10
- data/lib/davinci_crd_test_kit/client/v2.0.1/client_order_sign_group.rb +12 -10
- data/lib/davinci_crd_test_kit/client/v2.0.1/must_support/client_card_must_support_coverage_information.rb +3 -36
- data/lib/davinci_crd_test_kit/client/v2.0.1/must_support/client_card_must_support_external_reference.rb +3 -36
- data/lib/davinci_crd_test_kit/client/v2.0.1/must_support/client_card_must_support_instructions.rb +3 -36
- data/lib/davinci_crd_test_kit/client/v2.0.1/verify_request/hook_request_fetched_data_test.rb +4 -13
- data/lib/davinci_crd_test_kit/client/v2.0.1/verify_request/hook_request_prefetch_equals_queried_test.rb +3 -13
- data/lib/davinci_crd_test_kit/client/v2.0.1/verify_response/client_display_cards_attest.rb +3 -13
- data/lib/davinci_crd_test_kit/client/v2.0.1/verify_response/inferno_response_validation.rb +3 -13
- data/lib/davinci_crd_test_kit/client/v2.2.1/api/client_coverage_info_update_test.rb +1 -1
- data/lib/davinci_crd_test_kit/client/v2.2.1/attestations/attestation_instructions.rb +10 -0
- data/lib/davinci_crd_test_kit/client/v2.2.1/attestations/client_authorized_scope_attestation_test.rb +45 -0
- data/lib/davinci_crd_test_kit/client/v2.2.1/attestations/client_coverage_based_invocation_attestation_test.rb +44 -0
- data/lib/davinci_crd_test_kit/client/v2.2.1/attestations/client_data_element_expectations_attestation_test.rb +44 -0
- data/lib/davinci_crd_test_kit/client/v2.2.1/attestations/client_hook_invocation_logging_attestation_test.rb +43 -0
- data/lib/davinci_crd_test_kit/client/v2.2.1/attestations/client_must_support_exposure_attestation_test.rb +43 -0
- data/lib/davinci_crd_test_kit/client/v2.2.1/attestations/client_must_support_use_attestation_test.rb +41 -0
- data/lib/davinci_crd_test_kit/client/v2.2.1/attestations/client_order_sign_support_attestation_test.rb +42 -0
- data/lib/davinci_crd_test_kit/client/v2.2.1/attestations/client_prefetch_key_omission_attestation_test.rb +42 -0
- data/lib/davinci_crd_test_kit/client/v2.2.1/attestations/client_resource_identifiers_attestation_test.rb +43 -0
- data/lib/davinci_crd_test_kit/client/v2.2.1/attestations/client_response_case_distinction_attestation_test.rb +43 -0
- data/lib/davinci_crd_test_kit/client/v2.2.1/attestations/client_security_and_privacy_attestation_test.rb +43 -0
- data/lib/davinci_crd_test_kit/client/v2.2.1/attestations/client_workflow_integration_attestation_test.rb +44 -0
- data/lib/davinci_crd_test_kit/client/v2.2.1/auth/decode_auth_token_test.rb +1 -1
- data/lib/davinci_crd_test_kit/client/v2.2.1/auth/retrieve_jwks_test.rb +29 -18
- data/lib/davinci_crd_test_kit/client/v2.2.1/auth/token_payload_test.rb +35 -22
- data/lib/davinci_crd_test_kit/client/v2.2.1/cds-services-prefetch-subset-v221.json +47 -47
- data/lib/davinci_crd_test_kit/client/v2.2.1/cds-services-v221.json +50 -50
- data/lib/davinci_crd_test_kit/client/v2.2.1/client_appointment_book_group.rb +24 -15
- data/lib/davinci_crd_test_kit/client/v2.2.1/client_attestations_group.rb +49 -0
- data/lib/davinci_crd_test_kit/client/v2.2.1/client_cross_hook_group.rb +22 -6
- data/lib/davinci_crd_test_kit/client/v2.2.1/client_cross_hook_interaction_group.rb +98 -0
- data/lib/davinci_crd_test_kit/client/v2.2.1/client_encounter_discharge_group.rb +19 -11
- data/lib/davinci_crd_test_kit/client/v2.2.1/client_encounter_start_group.rb +19 -11
- data/lib/davinci_crd_test_kit/client/v2.2.1/client_fhir_api_group.rb +14 -12
- data/lib/davinci_crd_test_kit/client/v2.2.1/client_hooks_group.rb +25 -5
- data/lib/davinci_crd_test_kit/client/v2.2.1/client_long_running_hook_group.rb +3 -2
- data/lib/davinci_crd_test_kit/client/v2.2.1/client_order_dispatch_group.rb +23 -15
- data/lib/davinci_crd_test_kit/client/v2.2.1/client_order_select_group.rb +19 -11
- data/lib/davinci_crd_test_kit/client/v2.2.1/client_order_sign_group.rb +23 -15
- data/lib/davinci_crd_test_kit/client/v2.2.1/client_registration_group.rb +6 -0
- data/lib/davinci_crd_test_kit/client/v2.2.1/client_scenarios_group.rb +26 -0
- data/lib/davinci_crd_test_kit/client/v2.2.1/client_self_pay_hook_group.rb +36 -0
- data/lib/davinci_crd_test_kit/client/v2.2.1/client_unknown_content_hook_group.rb +34 -0
- data/lib/davinci_crd_test_kit/client/v2.2.1/crd_client_suite.rb +24 -3
- data/lib/davinci_crd_test_kit/client/v2.2.1/cross_hook/client_card_must_support_coverage_information_test.rb +1 -1
- data/lib/davinci_crd_test_kit/client/v2.2.1/cross_hook/client_fhirpath_collection_as_comma_delimited_string_test.rb +4 -11
- data/lib/davinci_crd_test_kit/client/v2.2.1/cross_hook/client_hook_instances_unique_test.rb +1 -9
- data/lib/davinci_crd_test_kit/client/v2.2.1/cross_hook/client_location_address_propagation_test.rb +6 -2
- data/lib/davinci_crd_test_kit/client/v2.2.1/cross_hook/client_prefetch_complete_and_subset_test.rb +3 -12
- data/lib/davinci_crd_test_kit/client/v2.2.1/invocation/appointment_book_receive_request_test.rb +8 -89
- data/lib/davinci_crd_test_kit/client/v2.2.1/invocation/base_hook_invocation_receive_request_test.rb +163 -0
- data/lib/davinci_crd_test_kit/client/v2.2.1/invocation/cross_hooks_receive_request_test.rb +97 -0
- data/lib/davinci_crd_test_kit/client/v2.2.1/invocation/encounter_discharge_receive_request_test.rb +8 -90
- data/lib/davinci_crd_test_kit/client/v2.2.1/invocation/encounter_start_receive_request_test.rb +8 -90
- data/lib/davinci_crd_test_kit/client/v2.2.1/invocation/order_dispatch_receive_request_test.rb +8 -98
- data/lib/davinci_crd_test_kit/client/v2.2.1/invocation/order_select_receive_request_test.rb +8 -98
- data/lib/davinci_crd_test_kit/client/v2.2.1/invocation/order_sign_receive_request_test.rb +8 -98
- data/lib/davinci_crd_test_kit/client/v2.2.1/long_running/client_long_running_receive_request_test.rb +10 -2
- data/lib/davinci_crd_test_kit/client/v2.2.1/long_running/client_skip_long_running_attestation_test.rb +11 -6
- data/lib/davinci_crd_test_kit/client/v2.2.1/registration/client_service_registration_attestation_test.rb +2 -1
- data/lib/davinci_crd_test_kit/client/v2.2.1/self_pay/client_self_pay_no_request_test.rb +30 -0
- data/lib/davinci_crd_test_kit/client/v2.2.1/self_pay/client_self_pay_workflow_test.rb +55 -0
- data/lib/davinci_crd_test_kit/client/v2.2.1/unknown_content/client_unknown_content_attestation_test.rb +99 -0
- data/lib/davinci_crd_test_kit/client/v2.2.1/unknown_content/client_unknown_content_receive_request_test.rb +62 -0
- data/lib/davinci_crd_test_kit/client/v2.2.1/verify_request/hook_request_conformance_test.rb +1 -1
- data/lib/davinci_crd_test_kit/client/v2.2.1/verify_request/hook_request_coverage_verification_test.rb +10 -2
- data/lib/davinci_crd_test_kit/client/v2.2.1/verify_request/hook_request_data_fetch_verification_test.rb +1 -1
- data/lib/davinci_crd_test_kit/client/v2.2.1/verify_request/hook_request_granted_scopes_test.rb +1 -1
- data/lib/davinci_crd_test_kit/client/v2.2.1/verify_request/hook_request_prefetch_complete_test.rb +7 -1
- data/lib/davinci_crd_test_kit/client/v2.2.1/verify_request/hook_request_prefetch_profiles_test.rb +1 -1
- data/lib/davinci_crd_test_kit/client/v2.2.1/verify_request/hook_request_requested_version_test.rb +1 -1
- data/lib/davinci_crd_test_kit/client/v2.2.1/verify_request/hook_request_secured_transport_test.rb +1 -1
- data/lib/davinci_crd_test_kit/client/v2.2.1/verify_response/client_display_cards_attest.rb +54 -21
- data/lib/davinci_crd_test_kit/client/v2.2.1/verify_response/hook_response_support_coverage_information_test.rb +1 -1
- data/lib/davinci_crd_test_kit/client/v2.2.1/verify_response/inferno_response_validation.rb +6 -3
- data/lib/davinci_crd_test_kit/cross_suite/cards_identification.rb +18 -0
- data/lib/davinci_crd_test_kit/cross_suite/logical_models_override_helper.rb +30 -13
- data/lib/davinci_crd_test_kit/cross_suite/prefetch_completeness_checker.rb +25 -11
- data/lib/davinci_crd_test_kit/cross_suite/prefetch_profile_validation.rb +2 -0
- data/lib/davinci_crd_test_kit/cross_suite/requests_logical_model_validation.rb +28 -28
- data/lib/davinci_crd_test_kit/cross_suite/response_logical_model_validation.rb +211 -43
- data/lib/davinci_crd_test_kit/cross_suite/tags.rb +7 -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 +6 -2
- data/lib/davinci_crd_test_kit/requirements/generated/crd_client_requirements_coverage.csv +107 -107
- data/lib/davinci_crd_test_kit/requirements/generated/crd_client_v221_requirements_coverage.csv +101 -97
- data/lib/davinci_crd_test_kit/requirements/generated/crd_server_requirements_coverage.csv +18 -18
- data/lib/davinci_crd_test_kit/requirements/generated/crd_server_v221_requirements_coverage.csv +43 -39
- 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/jobs/invoke_hook.rb +3 -3
- 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/server/server_abstract_invoke_hook_test.rb +24 -6
- data/lib/davinci_crd_test_kit/server/server_hook_helper.rb +2 -2
- data/lib/davinci_crd_test_kit/server/v2.0.1/crd_server_suite.rb +1 -1
- data/lib/davinci_crd_test_kit/server/v2.0.1/server_hooks_group.rb +5 -5
- data/lib/davinci_crd_test_kit/server/v2.2.1/crd_server_suite.rb +3 -0
- data/lib/davinci_crd_test_kit/server/v2.2.1/discovery/discovery_standard_prefetch_expressions_test.rb +165 -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/server_appointment_book_group.rb +10 -102
- data/lib/davinci_crd_test_kit/server/v2.2.1/server_demonstrate_hook_response_group.rb +3 -2
- data/lib/davinci_crd_test_kit/server/v2.2.1/server_discovery_group.rb +2 -0
- data/lib/davinci_crd_test_kit/server/v2.2.1/server_encounter_discharge_group.rb +10 -97
- data/lib/davinci_crd_test_kit/server/v2.2.1/server_encounter_start_group.rb +10 -97
- data/lib/davinci_crd_test_kit/server/v2.2.1/server_hooks_group.rb +5 -5
- data/lib/davinci_crd_test_kit/server/v2.2.1/server_order_dispatch_group.rb +10 -103
- data/lib/davinci_crd_test_kit/server/v2.2.1/server_order_select_group.rb +12 -116
- data/lib/davinci_crd_test_kit/server/v2.2.1/server_order_sign_group.rb +12 -121
- 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 +1 -0
- data/lib/davinci_crd_test_kit/server/v2.2.1/verify_request/service_request_optional_fields_validation_test.rb +1 -0
- data/lib/davinci_crd_test_kit/server/v2.2.1/verify_request/service_request_required_fields_validation_test.rb +1 -0
- data/lib/davinci_crd_test_kit/server/v2.2.1/verify_response/additional_orders_validation_test.rb +78 -35
- 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 +70 -124
- data/lib/davinci_crd_test_kit/server/v2.2.1/verify_response/create_or_update_coverage_info_response_validation_test.rb +83 -39
- data/lib/davinci_crd_test_kit/server/v2.2.1/verify_response/external_reference_card_validation_test.rb +59 -17
- data/lib/davinci_crd_test_kit/server/v2.2.1/verify_response/form_completion_response_validation_test.rb +80 -45
- data/lib/davinci_crd_test_kit/server/v2.2.1/verify_response/hook_request_resource_resolution.rb +37 -0
- data/lib/davinci_crd_test_kit/server/v2.2.1/verify_response/instructions_card_received_test.rb +57 -6
- data/lib/davinci_crd_test_kit/server/v2.2.1/verify_response/launch_smart_app_card_validation_test.rb +56 -17
- data/lib/davinci_crd_test_kit/server/v2.2.1/verify_response/propose_alternate_request_card_validation_test.rb +52 -25
- data/lib/davinci_crd_test_kit/server/v2.2.1/verify_response/service_response_validation_test.rb +17 -51
- data/lib/davinci_crd_test_kit/server/v2.2.1/verify_response/unknown_cds_hooks_elements_test.rb +1 -1
- data/lib/davinci_crd_test_kit/server/v2.2.1/verify_response/unknown_configuration_test.rb +1 -1
- data/lib/davinci_crd_test_kit/server/v2.2.1/verify_response/unknown_context_test.rb +1 -1
- data/lib/davinci_crd_test_kit/version.rb +2 -2
- metadata +54 -16
- data/config/presets/inferno_crd_server_suite_v221.json.erb +0 -94
- data/lib/davinci_crd_test_kit/server/v2.2.1/verify_response/card_optional_fields_validation_test.rb +0 -57
- data/lib/davinci_crd_test_kit/server/v2.2.1/verify_response/coverage_information_system_action_received_test.rb +0 -65
|
@@ -4,12 +4,11 @@ require_relative 'verify_request/service_request_required_fields_validation_test
|
|
|
4
4
|
require_relative 'verify_request/service_request_optional_fields_validation_test'
|
|
5
5
|
require_relative 'verify_request/service_request_context_validation_test'
|
|
6
6
|
require_relative 'verify_response/service_response_validation_test'
|
|
7
|
-
require_relative 'verify_response/card_optional_fields_validation_test'
|
|
8
7
|
require_relative 'verify_response/external_reference_card_validation_test'
|
|
9
8
|
require_relative 'verify_response/launch_smart_app_card_validation_test'
|
|
10
9
|
require_relative 'verify_response/instructions_card_received_test'
|
|
11
|
-
require_relative 'verify_response/coverage_information_system_action_received_test'
|
|
12
10
|
require_relative 'verify_response/coverage_information_system_action_validation_test'
|
|
11
|
+
require_relative 'verify_response/coverage_information_card_absence_test'
|
|
13
12
|
require_relative 'verify_response/coverage_info_configuration_test'
|
|
14
13
|
require_relative 'verify_response/propose_alternate_request_card_validation_test'
|
|
15
14
|
require_relative 'verify_response/additional_orders_validation_test'
|
|
@@ -79,6 +78,7 @@ module DaVinciCRDTestKit
|
|
|
79
78
|
|
|
80
79
|
group do
|
|
81
80
|
title 'Requests'
|
|
81
|
+
simulation_verification
|
|
82
82
|
|
|
83
83
|
test from: :crd_v221_service_request_required_fields_validation,
|
|
84
84
|
config: {
|
|
@@ -102,84 +102,11 @@ module DaVinciCRDTestKit
|
|
|
102
102
|
group do
|
|
103
103
|
title 'Responses'
|
|
104
104
|
|
|
105
|
-
test from: :crd_v221_service_response_validation
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
},
|
|
111
|
-
valid_system_actions: {
|
|
112
|
-
name: :order_sign_valid_system_actions
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
test from: :crd_v221_card_optional_fields_validation,
|
|
117
|
-
config: {
|
|
118
|
-
inputs: {
|
|
119
|
-
valid_cards: {
|
|
120
|
-
name: :order_sign_valid_cards
|
|
121
|
-
}
|
|
122
|
-
},
|
|
123
|
-
outputs: {
|
|
124
|
-
valid_cards_with_links: {
|
|
125
|
-
name: :order_sign_valid_cards_with_links
|
|
126
|
-
},
|
|
127
|
-
valid_cards_with_suggestions: {
|
|
128
|
-
name: :order_sign_valid_cards_with_suggestions
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
test from: :crd_v221_external_reference_card_validation,
|
|
133
|
-
config: {
|
|
134
|
-
inputs: {
|
|
135
|
-
valid_cards_with_links: {
|
|
136
|
-
name: :order_sign_valid_cards_with_links
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
test from: :crd_v221_launch_smart_app_card_validation,
|
|
141
|
-
config: {
|
|
142
|
-
inputs: {
|
|
143
|
-
valid_cards_with_links: {
|
|
144
|
-
name: :order_sign_valid_cards_with_links
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
test from: :crd_v221_valid_instructions_card_received,
|
|
149
|
-
config: {
|
|
150
|
-
inputs: {
|
|
151
|
-
valid_cards: {
|
|
152
|
-
name: :order_sign_valid_cards
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
test from: :crd_v221_coverage_info_system_action_received,
|
|
157
|
-
config: {
|
|
158
|
-
inputs: {
|
|
159
|
-
valid_system_actions: {
|
|
160
|
-
name: :order_sign_valid_system_actions
|
|
161
|
-
}
|
|
162
|
-
},
|
|
163
|
-
outputs: {
|
|
164
|
-
coverage_info: {
|
|
165
|
-
name: :order_sign_coverage_info
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
},
|
|
169
|
-
verifies_requirements: [
|
|
170
|
-
'hl7.fhir.us.davinci-crd_2.2.1@resp-26'
|
|
171
|
-
]
|
|
172
|
-
test from: :crd_v221_coverage_info_system_action_validation,
|
|
173
|
-
config: {
|
|
174
|
-
inputs: {
|
|
175
|
-
coverage_info: {
|
|
176
|
-
name: :order_sign_coverage_info
|
|
177
|
-
}
|
|
178
|
-
}
|
|
179
|
-
},
|
|
180
|
-
verifies_requirements: [
|
|
181
|
-
'hl7.fhir.us.davinci-crd_2.2.1@resp-25'
|
|
182
|
-
]
|
|
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
|
|
183
110
|
test from: :crd_v221_all_responses_include_coverage_information,
|
|
184
111
|
verifies_requirements: [
|
|
185
112
|
'hl7.fhir.us.davinci-crd_2.2.1@hook-16',
|
|
@@ -190,47 +117,11 @@ module DaVinciCRDTestKit
|
|
|
190
117
|
'hl7.fhir.us.davinci-crd_2.2.1@hook-39',
|
|
191
118
|
'hl7.fhir.us.davinci-crd_2.2.1@resp-29'
|
|
192
119
|
]
|
|
193
|
-
test from: :
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
},
|
|
199
|
-
contexts: {
|
|
200
|
-
name: :order_sign_contexts
|
|
201
|
-
}
|
|
202
|
-
}
|
|
203
|
-
}
|
|
204
|
-
test from: :crd_v221_additional_orders_card_validation,
|
|
205
|
-
config: {
|
|
206
|
-
inputs: {
|
|
207
|
-
valid_cards_with_suggestions: {
|
|
208
|
-
name: :order_sign_valid_cards_with_suggestions
|
|
209
|
-
}
|
|
210
|
-
}
|
|
211
|
-
}
|
|
212
|
-
test from: :crd_v221_request_form_completion_response_validation,
|
|
213
|
-
config: {
|
|
214
|
-
inputs: {
|
|
215
|
-
valid_system_actions: {
|
|
216
|
-
name: :order_sign_valid_system_actions
|
|
217
|
-
},
|
|
218
|
-
valid_cards_with_suggestions: {
|
|
219
|
-
name: :order_sign_valid_cards_with_suggestions
|
|
220
|
-
}
|
|
221
|
-
}
|
|
222
|
-
}
|
|
223
|
-
test from: :crd_v221_create_or_update_coverage_info_response_validation,
|
|
224
|
-
config: {
|
|
225
|
-
inputs: {
|
|
226
|
-
valid_system_actions: {
|
|
227
|
-
name: :order_sign_valid_system_actions
|
|
228
|
-
},
|
|
229
|
-
valid_cards_with_suggestions: {
|
|
230
|
-
name: :order_sign_valid_cards_with_suggestions
|
|
231
|
-
}
|
|
232
|
-
}
|
|
233
|
-
}
|
|
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
|
|
234
125
|
test from: :crd_v221_coverage_info_configuration
|
|
235
126
|
test from: :crd_v221_unknown_configuration
|
|
236
127
|
test from: :crd_v221_unknown_context
|
|
@@ -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
|
data/lib/davinci_crd_test_kit/server/v2.2.1/specific_coverage_responses/coverage_info_reason_test.rb
ADDED
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
module DaVinciCRDTestKit
|
|
2
|
+
module V221
|
|
3
|
+
# Users of this test need to set config options for coverage_code, reason_code, and optionally require_reason_text
|
|
4
|
+
class CoverageInfoReasonTest < Inferno::Test
|
|
5
|
+
id :crd_v221_coverage_info_reason
|
|
6
|
+
title 'Coverage Information responses have the expected coverage and reason codes'
|
|
7
|
+
|
|
8
|
+
description <<~DESCRIPTION
|
|
9
|
+
This test verifies that the Coverage Information responses received contain Coverage Information extensions
|
|
10
|
+
with the expected coverage and reason codes.
|
|
11
|
+
DESCRIPTION
|
|
12
|
+
|
|
13
|
+
input :coverage_info
|
|
14
|
+
|
|
15
|
+
COVERAGE_INFO_EXTENSION_URL =
|
|
16
|
+
'http://hl7.org/fhir/us/davinci-crd/StructureDefinition/ext-coverage-information'.freeze
|
|
17
|
+
|
|
18
|
+
run do
|
|
19
|
+
coverage_info_actions = JSON.parse(coverage_info)
|
|
20
|
+
|
|
21
|
+
skip_if coverage_info_actions.blank?, 'No Coverage Information system actions received'
|
|
22
|
+
|
|
23
|
+
coverage_info_actions.each_with_index do |action, index|
|
|
24
|
+
coverage_info_extensions(action['resource']).each do |extension|
|
|
25
|
+
unless expected_coverage? extension
|
|
26
|
+
coverage_code = coverage_extension_value(extension)
|
|
27
|
+
add_message(
|
|
28
|
+
'error',
|
|
29
|
+
"Coverage should be `#{expected_coverage_code}`, but found `#{coverage_code}` in action ##{index + 1}"
|
|
30
|
+
)
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
unless expected_reason? extension
|
|
34
|
+
reason_code =
|
|
35
|
+
reason_extension_values(extension)
|
|
36
|
+
&.map { |reason| "`#{reason}`" }
|
|
37
|
+
&.join(', ') || 'no reason'
|
|
38
|
+
add_message(
|
|
39
|
+
'error',
|
|
40
|
+
"Coverage reason should be `#{expected_reason_code}`, but found #{reason_code} in action ##{index + 1}"
|
|
41
|
+
)
|
|
42
|
+
|
|
43
|
+
next
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
next unless require_reason_text?
|
|
47
|
+
next if reason_text?(extension)
|
|
48
|
+
|
|
49
|
+
add_message(
|
|
50
|
+
'error',
|
|
51
|
+
"`#{expected_reason_code}` coverage reason contains no additional details in `text` field " \
|
|
52
|
+
"in action ##{index + 1}"
|
|
53
|
+
)
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
assert_no_error_messages(
|
|
58
|
+
"Not all coverage info extensions had `#{expected_coverage_code}` coverage " \
|
|
59
|
+
"with a reason of `#{expected_reason_code}`"
|
|
60
|
+
)
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
def coverage_info_extensions(resource)
|
|
64
|
+
resource['extension'].select { |extension| extension['url'] == COVERAGE_INFO_EXTENSION_URL }
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
def coverage_extension_value(coverage_info_extension)
|
|
68
|
+
coverage_info_extension['extension']
|
|
69
|
+
.find { |extension| extension['url'] == 'covered' }
|
|
70
|
+
&.dig('valueCode')
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
def expected_coverage?(coverage_info_extension)
|
|
74
|
+
coverage_extension_value(coverage_info_extension) == expected_coverage_code
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
def reason_extension_values(coverage_info_extension)
|
|
78
|
+
coverage_info_extension['extension']
|
|
79
|
+
.find { |extension| extension['url'] == 'reason' }
|
|
80
|
+
&.dig('valueCodeableConcept', 'coding')
|
|
81
|
+
&.map { |coding| coding['code'] }
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
def expected_reason?(coverage_info_extension)
|
|
85
|
+
reason_extension_values(coverage_info_extension)&.include? expected_reason_code
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
def reason_text?(coverage_info_extension)
|
|
89
|
+
coverage_info_extension['extension']
|
|
90
|
+
.find { |extension| extension['url'] == 'reason' }
|
|
91
|
+
&.dig('valueCodeableConcept', 'text')
|
|
92
|
+
&.present?
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
def expected_coverage_code
|
|
96
|
+
config.options[:expected_coverage_code]
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
def expected_reason_code
|
|
100
|
+
config.options[:expected_reason_code]
|
|
101
|
+
end
|
|
102
|
+
|
|
103
|
+
def require_reason_text?
|
|
104
|
+
config.options[:require_reason_text] || false
|
|
105
|
+
end
|
|
106
|
+
end
|
|
107
|
+
end
|
|
108
|
+
end
|
data/lib/davinci_crd_test_kit/server/v2.2.1/specific_coverage_responses/coverage_not_found_group.rb
ADDED
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
require_relative '../interaction/server_invoke_hook_single_request_test'
|
|
2
|
+
require_relative 'coverage_info_reason_test'
|
|
3
|
+
|
|
4
|
+
module DaVinciCRDTestKit
|
|
5
|
+
module V221
|
|
6
|
+
class CoverageNotFoundGroup < Inferno::TestGroup
|
|
7
|
+
title 'Coverage Not Found'
|
|
8
|
+
id :crd_v221_server_coverage_not_found_group
|
|
9
|
+
description %(
|
|
10
|
+
This group of tests allows the system to demonstrate its ability to respond to a CRD Hook invocation
|
|
11
|
+
with a `not-covered` coverage determination when the patient can be resolved but coverage cannot be found
|
|
12
|
+
or cannot be resolved to a single coverage.
|
|
13
|
+
|
|
14
|
+
For these tests, provide a hook request body that represents a resolvable patient for whom the CRD Server
|
|
15
|
+
cannot find coverage or cannot resolve to a single coverage. The tests then verify that a Coverage
|
|
16
|
+
Information systemAction is received with `not-covered` coverage for `coverage-not-found` reason.
|
|
17
|
+
)
|
|
18
|
+
|
|
19
|
+
config options: { hook_name: COVERAGE_NOT_FOUND_TAG }
|
|
20
|
+
run_as_group
|
|
21
|
+
|
|
22
|
+
group do
|
|
23
|
+
title 'Interaction'
|
|
24
|
+
|
|
25
|
+
test from: :crd_v221_server_invoke_hook_single_request_test,
|
|
26
|
+
title: 'Inferno invokes the selected hook to elicit coverage not found response',
|
|
27
|
+
description: <<~DESCRIPTION,
|
|
28
|
+
This test initiates a POST request to a specified CDS Service using the JSON body provided
|
|
29
|
+
by the user. The request body should represent a resolvable patient for whom coverage cannot be
|
|
30
|
+
found or cannot be resolved to a single coverage.
|
|
31
|
+
DESCRIPTION
|
|
32
|
+
config: {
|
|
33
|
+
inputs: {
|
|
34
|
+
service_ids: {
|
|
35
|
+
name: :coverage_not_found_service_ids,
|
|
36
|
+
title: 'Service id to use for the "Coverage Not Found" test',
|
|
37
|
+
description: %(
|
|
38
|
+
If blank, Inferno will attempt to infer the service id to use by finding a service entry
|
|
39
|
+
in the Discovery response for the hook indicated in the provided request body. If it
|
|
40
|
+
cannot be inferred, the tests will be skipped.
|
|
41
|
+
)
|
|
42
|
+
},
|
|
43
|
+
service_request_bodies: {
|
|
44
|
+
name: :coverage_not_found_request_body,
|
|
45
|
+
title: 'Request body to use for the "Coverage Not Found" test',
|
|
46
|
+
description: %(
|
|
47
|
+
Provide a single JSON request body to submit for the hook invocation. The type of hook
|
|
48
|
+
invoked will be inferred based on the `hook` element in the request. The body should be
|
|
49
|
+
constructed so that it represents a resolvable patient for whom coverage cannot be found.
|
|
50
|
+
)
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
group do
|
|
57
|
+
title 'Requests'
|
|
58
|
+
simulation_verification
|
|
59
|
+
|
|
60
|
+
test from: :crd_v221_service_request_required_fields_validation,
|
|
61
|
+
config: {
|
|
62
|
+
outputs: {
|
|
63
|
+
contexts: {
|
|
64
|
+
name: :coverage_not_found_contexts
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
test from: :crd_v221_service_request_context_validation,
|
|
69
|
+
config: {
|
|
70
|
+
inputs: {
|
|
71
|
+
contexts: {
|
|
72
|
+
name: :coverage_not_found_contexts
|
|
73
|
+
},
|
|
74
|
+
request_body: {
|
|
75
|
+
name: :coverage_not_found_request_body
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
group do
|
|
82
|
+
title 'Responses'
|
|
83
|
+
|
|
84
|
+
test from: :crd_v221_service_response_validation
|
|
85
|
+
test from: :crd_v221_coverage_info_system_action_validation,
|
|
86
|
+
config: {
|
|
87
|
+
outputs: {
|
|
88
|
+
coverage_info: {
|
|
89
|
+
name: :coverage_not_found_coverage_info
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
test from: :crd_v221_coverage_info_reason,
|
|
94
|
+
title: 'Coverage Information responses have not-covered coverage for coverage-not-found reason',
|
|
95
|
+
description: <<~DESCRIPTION,
|
|
96
|
+
This test verifies that the Coverage Information responses received contain Coverage Information
|
|
97
|
+
extensions with `not-covered` coverage and a `coverage-not-found` reason.
|
|
98
|
+
DESCRIPTION
|
|
99
|
+
config: {
|
|
100
|
+
inputs: {
|
|
101
|
+
coverage_info: {
|
|
102
|
+
name: :coverage_not_found_coverage_info
|
|
103
|
+
}
|
|
104
|
+
},
|
|
105
|
+
options: {
|
|
106
|
+
expected_coverage_code: 'not-covered',
|
|
107
|
+
expected_reason_code: 'coverage-not-found'
|
|
108
|
+
}
|
|
109
|
+
},
|
|
110
|
+
verifies_requirements: [
|
|
111
|
+
'hl7.fhir.us.davinci-crd_2.2.1@resp-45'
|
|
112
|
+
]
|
|
113
|
+
end
|
|
114
|
+
end
|
|
115
|
+
end
|
|
116
|
+
end
|
data/lib/davinci_crd_test_kit/server/v2.2.1/specific_coverage_responses/no_active_coverage_group.rb
ADDED
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
require_relative '../interaction/server_invoke_hook_single_request_test'
|
|
2
|
+
require_relative 'coverage_info_reason_test'
|
|
3
|
+
|
|
4
|
+
module DaVinciCRDTestKit
|
|
5
|
+
module V221
|
|
6
|
+
class NoActiveCoverageGroup < Inferno::TestGroup
|
|
7
|
+
title 'No Active Coverage'
|
|
8
|
+
id :crd_v221_server_no_active_coverage_group
|
|
9
|
+
description %(
|
|
10
|
+
This group of tests allows the system to demonstrate its ability to respond to a CRD Hook invocation
|
|
11
|
+
with a `not-covered` coverage determination when the patient can be resolved but does not have active
|
|
12
|
+
coverage.
|
|
13
|
+
|
|
14
|
+
For these tests, provide a hook request body that represents a resolvable patient without active
|
|
15
|
+
coverage. The tests then verify that a Coverage Information systemAction is received with `not-covered`
|
|
16
|
+
coverage for `no-active-coverage` reason.
|
|
17
|
+
)
|
|
18
|
+
|
|
19
|
+
config options: { hook_name: NO_ACTIVE_COVERAGE_TAG }
|
|
20
|
+
run_as_group
|
|
21
|
+
|
|
22
|
+
group do
|
|
23
|
+
title 'Interaction'
|
|
24
|
+
|
|
25
|
+
test from: :crd_v221_server_invoke_hook_single_request_test,
|
|
26
|
+
title: 'Inferno invokes the selected hook to elicit no active coverage response',
|
|
27
|
+
description: <<~DESCRIPTION,
|
|
28
|
+
This test initiates a POST request to a specified CDS Service using the JSON body provided
|
|
29
|
+
by the user. The request body should represent a resolvable patient without active coverage.
|
|
30
|
+
DESCRIPTION
|
|
31
|
+
config: {
|
|
32
|
+
inputs: {
|
|
33
|
+
service_ids: {
|
|
34
|
+
name: :no_active_coverage_service_ids,
|
|
35
|
+
title: 'Service id to use for the "No Active Coverage" test',
|
|
36
|
+
description: %(
|
|
37
|
+
If blank, Inferno will attempt to infer the service id to use by finding a service entry
|
|
38
|
+
in the Discovery response for the hook indicated in the provided request body. If it
|
|
39
|
+
cannot be inferred, the tests will be skipped.
|
|
40
|
+
)
|
|
41
|
+
},
|
|
42
|
+
service_request_bodies: {
|
|
43
|
+
name: :no_active_coverage_request_body,
|
|
44
|
+
title: 'Request body to use for the "No Active Coverage" test',
|
|
45
|
+
description: %(
|
|
46
|
+
Provide a single JSON request body to submit for the hook invocation. The type of hook
|
|
47
|
+
invoked will be inferred based on the `hook` element in the request. The body should be
|
|
48
|
+
constructed so that it represents a resolvable patient without active coverage.
|
|
49
|
+
)
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
group do
|
|
56
|
+
title 'Requests'
|
|
57
|
+
simulation_verification
|
|
58
|
+
|
|
59
|
+
test from: :crd_v221_service_request_required_fields_validation,
|
|
60
|
+
config: {
|
|
61
|
+
outputs: {
|
|
62
|
+
contexts: {
|
|
63
|
+
name: :no_active_coverage_contexts
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
test from: :crd_v221_service_request_context_validation,
|
|
68
|
+
config: {
|
|
69
|
+
inputs: {
|
|
70
|
+
contexts: {
|
|
71
|
+
name: :no_active_coverage_contexts
|
|
72
|
+
},
|
|
73
|
+
request_body: {
|
|
74
|
+
name: :no_active_coverage_request_body
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
end
|
|
79
|
+
|
|
80
|
+
group do
|
|
81
|
+
title 'Responses'
|
|
82
|
+
|
|
83
|
+
test from: :crd_v221_service_response_validation
|
|
84
|
+
test from: :crd_v221_coverage_info_system_action_validation,
|
|
85
|
+
config: {
|
|
86
|
+
outputs: {
|
|
87
|
+
coverage_info: {
|
|
88
|
+
name: :no_active_coverage_coverage_info
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
test from: :crd_v221_coverage_info_reason,
|
|
93
|
+
title: 'Coverage Information responses have not-covered coverage for no-active-coverage reason',
|
|
94
|
+
description: <<~DESCRIPTION,
|
|
95
|
+
This test verifies that the Coverage Information responses received contain Coverage Information
|
|
96
|
+
extensions with `not-covered` coverage and a `no-active-coverage` reason.
|
|
97
|
+
DESCRIPTION
|
|
98
|
+
config: {
|
|
99
|
+
inputs: {
|
|
100
|
+
coverage_info: {
|
|
101
|
+
name: :no_active_coverage_coverage_info
|
|
102
|
+
}
|
|
103
|
+
},
|
|
104
|
+
options: {
|
|
105
|
+
expected_coverage_code: 'not-covered',
|
|
106
|
+
expected_reason_code: 'no-active-coverage'
|
|
107
|
+
}
|
|
108
|
+
},
|
|
109
|
+
verifies_requirements: [
|
|
110
|
+
'hl7.fhir.us.davinci-crd_2.2.1@resp-45'
|
|
111
|
+
]
|
|
112
|
+
end
|
|
113
|
+
end
|
|
114
|
+
end
|
|
115
|
+
end
|
data/lib/davinci_crd_test_kit/server/v2.2.1/specific_coverage_responses/no_member_found_group.rb
ADDED
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
require_relative '../interaction/server_invoke_hook_single_request_test'
|
|
2
|
+
require_relative 'coverage_info_reason_test'
|
|
3
|
+
|
|
4
|
+
module DaVinciCRDTestKit
|
|
5
|
+
module V221
|
|
6
|
+
class NoMemberFoundGroup < Inferno::TestGroup
|
|
7
|
+
title 'No Member Found'
|
|
8
|
+
id :crd_v221_server_no_member_found_group
|
|
9
|
+
description %(
|
|
10
|
+
This group of tests allows the system to demonstrate its ability to respond to a CRD Hook invocation
|
|
11
|
+
with a `not-covered` coverage determination when it is unable to resolve the patient for a
|
|
12
|
+
non-technical reason.
|
|
13
|
+
|
|
14
|
+
For these tests, provide a hook request body that represents a patient/member the CRD Server cannot
|
|
15
|
+
resolve for a non-technical reason.
|
|
16
|
+
|
|
17
|
+
The tests then verify that a Coverage Information systemAction is received with `not-covered` coverage
|
|
18
|
+
for `no-member-found` reasons.
|
|
19
|
+
)
|
|
20
|
+
|
|
21
|
+
config options: { hook_name: NO_MEMBER_FOUND_TAG }
|
|
22
|
+
run_as_group
|
|
23
|
+
|
|
24
|
+
group do
|
|
25
|
+
title 'Interaction'
|
|
26
|
+
|
|
27
|
+
test from: :crd_v221_server_invoke_hook_single_request_test,
|
|
28
|
+
title: 'Inferno invokes the selected hook to elicit unresolved member response',
|
|
29
|
+
description: <<~DESCRIPTION,
|
|
30
|
+
This test initiates a POST request to a specified CDS Service using the JSON body provided
|
|
31
|
+
by the user. The request body should represent an unrecognized member.
|
|
32
|
+
DESCRIPTION
|
|
33
|
+
config: {
|
|
34
|
+
inputs: {
|
|
35
|
+
service_ids: {
|
|
36
|
+
name: :no_member_found_service_ids,
|
|
37
|
+
title: 'Service id to use for the "No Member Found" test',
|
|
38
|
+
description: %(
|
|
39
|
+
If blank, Inferno will attempt to infer the service id to use by finding a service entry
|
|
40
|
+
in the Discovery response for the hook indicated in the provided request body. If it
|
|
41
|
+
cannot be inferred, the tests will be skipped.
|
|
42
|
+
)
|
|
43
|
+
},
|
|
44
|
+
service_request_bodies: {
|
|
45
|
+
name: :no_member_found_request_body,
|
|
46
|
+
title: 'Request body to use for the "No Member Found" test',
|
|
47
|
+
description: %(
|
|
48
|
+
Provide a single JSON request body to submit for the hook invocation. The type of hook
|
|
49
|
+
invoked will be inferred based on the `hook` element in the request. The body should be
|
|
50
|
+
constructed so that the CRD Server is unable to resolve the patient/member.
|
|
51
|
+
)
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
group do
|
|
58
|
+
title 'Requests'
|
|
59
|
+
simulation_verification
|
|
60
|
+
|
|
61
|
+
test from: :crd_v221_service_request_required_fields_validation,
|
|
62
|
+
config: {
|
|
63
|
+
outputs: {
|
|
64
|
+
contexts: {
|
|
65
|
+
name: :no_member_found_contexts
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
test from: :crd_v221_service_request_context_validation,
|
|
70
|
+
config: {
|
|
71
|
+
inputs: {
|
|
72
|
+
contexts: {
|
|
73
|
+
name: :no_member_found_contexts
|
|
74
|
+
},
|
|
75
|
+
request_body: {
|
|
76
|
+
name: :no_member_found_request_body
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
group do
|
|
83
|
+
title 'Responses'
|
|
84
|
+
|
|
85
|
+
test from: :crd_v221_service_response_validation
|
|
86
|
+
test from: :crd_v221_coverage_info_system_action_validation,
|
|
87
|
+
config: {
|
|
88
|
+
outputs: {
|
|
89
|
+
coverage_info: {
|
|
90
|
+
name: :no_member_found_coverage_info
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
test from: :crd_v221_coverage_info_reason,
|
|
95
|
+
title: 'Coverage Information responses have not-covered coverage for no-member-found reason',
|
|
96
|
+
description: <<~DESCRIPTION,
|
|
97
|
+
This test verifies that the Coverage Information responses received contain Coverage Information
|
|
98
|
+
extensions with `not-covered` coverage and a `no-member-found` reason.
|
|
99
|
+
DESCRIPTION
|
|
100
|
+
config: {
|
|
101
|
+
inputs: {
|
|
102
|
+
coverage_info: {
|
|
103
|
+
name: :no_member_found_coverage_info
|
|
104
|
+
}
|
|
105
|
+
},
|
|
106
|
+
options: {
|
|
107
|
+
expected_coverage_code: 'not-covered',
|
|
108
|
+
expected_reason_code: 'no-member-found'
|
|
109
|
+
}
|
|
110
|
+
},
|
|
111
|
+
verifies_requirements: [
|
|
112
|
+
'hl7.fhir.us.davinci-crd_2.2.1@resp-44'
|
|
113
|
+
]
|
|
114
|
+
end
|
|
115
|
+
end
|
|
116
|
+
end
|
|
117
|
+
end
|