Module: DaVinciCRDTestKit::SuggestionActionsValidation
- Includes:
- HookRequestFieldValidation
- Included in:
- CardsIdentification, CardsValidation, V201::AdditionalOrdersValidationTest, V201::CreateOrUpdateCoverageInfoResponseValidationTest, V201::FormCompletionResponseValidationTest, V201::ProposeAlternateRequestCardValidationTest, V221::AdditionalOrdersValidationTest, V221::CreateOrUpdateCoverageInfoResponseValidationTest, V221::FormCompletionResponseValidationTest, V221::ProposeAlternateRequestCardValidationTest
- Defined in:
- lib/davinci_crd_test_kit/cross_suite/suggestion_actions_validation.rb
Constant Summary
Constants included from ProfilesAndResourceTypes
ProfilesAndResourceTypes::ORDER_OR_ENCOUNTER_RESOURCE_CLASSES, ProfilesAndResourceTypes::ORDER_RESOURCE_CLASSES, ProfilesAndResourceTypes::ORDER_RESOURCE_TYPES
Constants included from RequestsLogicalModelValidation
RequestsLogicalModelValidation::CRD_CDS_HOOK_REQUEST_MODEL_URL, RequestsLogicalModelValidation::PERFORMER_ALLOWED_RESOURCE_TYPES, RequestsLogicalModelValidation::USER_ID_ALLOWED_RESOURCE_TYPES
Instance Method Summary collapse
- #action_fields_validation(action, ig_version: 'v201') ⇒ Object
-
#action_resource_type_check(action, expected_resource_types) ⇒ Object
rubocop:disable Naming/PredicateMethod.
- #actions_check(actions, contexts = nil, ig_version: 'v201') ⇒ Object
Methods included from HookRequestFieldValidation
#hook_request_context_check, #hook_request_optional_fields_check, #hook_request_prefetch_check, #hook_request_required_fields_check, #json_parse, #no_error_validation
Methods included from ProfilesAndResourceTypes
#structure_definition_map, #structure_definition_map_v201, #structure_definition_map_v221
Methods included from ServerBaseURLs
#client_fhir_base_url, #fhir_url, #instance_url, #search_url
Methods included from BaseURLs
#inferno_base_url, #resume_fail_url, #resume_pass_url
Methods included from RequestsLogicalModelValidation
#validate_request_against_logical_model
Methods included from LogicalModelsOverrideHelper
#allowed_resource_type?, #check_appointment_conformance, #check_order_like_resource_conformance, #check_resource_conformance_to_coverage_profile, #check_resource_conformance_to_order_or_encounter_profile, #check_resource_conformance_to_order_profile, #check_resource_conformance_to_questionnaire_task_profile, #check_resource_type_and_validate, #local_reference?, #manually_check_appointment_validation_errors, #parse_action_resource, #primary_performer_type?, #referenced_resource_present_in_bundle?, #reject_resource_issues, #resolved_participant_patient_slice_issue?, #resolved_participant_primary_performer_slice_issue?
Instance Method Details
#action_fields_validation(action, ig_version: 'v201') ⇒ Object
7 8 9 10 11 12 13 |
# File 'lib/davinci_crd_test_kit/cross_suite/suggestion_actions_validation.rb', line 7 def action_fields_validation(action, ig_version: 'v201') action_required_fields.each do |field, type| validate_presence_and_type(action, field, type, 'Action') end action_type_field_validation(action, ig_version:) end |
#action_resource_type_check(action, expected_resource_types) ⇒ Object
rubocop:disable Naming/PredicateMethod
28 29 30 31 32 33 34 35 |
# File 'lib/davinci_crd_test_kit/cross_suite/suggestion_actions_validation.rb', line 28 def action_resource_type_check(action, expected_resource_types) # rubocop:disable Naming/PredicateMethod resource_type = if ['create', 'update'].include?(action['type']) FHIR.from_contents(action['resource'].to_json)&.resourceType else action['resourceId']&.split('/')&.first end expected_resource_types.include?(resource_type) end |
#actions_check(actions, contexts = nil, ig_version: 'v201') ⇒ Object
15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/davinci_crd_test_kit/cross_suite/suggestion_actions_validation.rb', line 15 def actions_check(actions, contexts = nil, ig_version: 'v201') create_actions_resource_types = extract_resource_types_by_action(actions, 'create') actions.each do |action| case action['type'] when 'create', 'update' create_or_update_action_check(action, contexts, ig_version:) when 'delete' delete_action_check(action, create_actions_resource_types, contexts) end end end |