Class: DaVinciCRDTestKit::V221::CoverageInformationCardAbsenceTest

Inherits:
Inferno::Test
  • Object
show all
Includes:
CardsIdentification, ServerHookHelper, HookRequestResourceResolution
Defined in:
lib/davinci_crd_test_kit/server/v2.2.1/verify_response/coverage_information_card_absence_test.rb

Constant Summary

Constants included from CardsIdentification

CardsIdentification::ADDITIONAL_ORDERS_EXPECTED_RESOURCE_TYPES, CardsIdentification::ADDITIONAL_ORDERS_RESPONSE_TYPE, CardsIdentification::COVERAGE_INFORMATION_RESPONSE_TYPE, CardsIdentification::COVERAGE_INFO_CONFIGURATION_CODE, CardsIdentification::COVERAGE_INFO_EXPECTED_RESOURCE_TYPES, CardsIdentification::COVERAGE_INFO_EXT_URL, CardsIdentification::CREATE_OR_UPDATE_COVERAGE_RESPONSE_TYPE, CardsIdentification::EXTERNAL_REFERENCE_RESPONSE_TYPE, CardsIdentification::FORM_COMPLETION_RESPONSE_TYPE, CardsIdentification::INSTRUCTIONS_RESPONSE_TYPE, CardsIdentification::LAUNCH_SMART_APP_RESPONSE_TYPE, CardsIdentification::PROPOSE_ALTERNATIVE_REQUEST_EXPECTED_RESOURCE_TYPES, CardsIdentification::PROPOSE_ALTERNATIVE_REQUEST_RESPONSE_TYPE

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

Methods included from HookRequestResourceResolution

#appointment_based_on_matches_target?, #appointment_book_service_request, #coverage_information_extension_only_payload?, #fallback_source_resource, #find_action_source_resource, #find_appointment_book_resource, #find_draft_orders_resource, #find_resource_by_reference, #find_resource_in_bundle, #find_resource_in_prefetch, #hook_context_resource, #matching_request_for_action, #mock_ehr_bundle_resource, #normalize_value, #only_coverage_information_changed?, #parse_bundle, #parse_request_body, #reference_parts, #strip_coverage_info_extensions

Methods included from CardsIdentification

#additional_orders_response_type?, #cache_sorted_cards, #check_action_type, #coverage_info_card_type?, #coverage_info_configuration_disabled?, #coverage_info_content, #coverage_info_response?, #coverage_info_system_action_response?, #coverage_info_system_action_type?, #coverage_information_response_type?, #create_or_update_coverage_action_response_type?, #create_or_update_coverage_card_response_type?, #create_questionnaire_action_response_type?, #disable_coverage_info_configuration!, #extension_url, #external_reference_response_type?, #extract_coverage_information_extensions, #form_completion_action_response_type?, #form_completion_card_response_type?, #form_completion_task_questionnaire?, #hook_instances_from_requests, #identify_action_type, #identify_card_type, #initialize_sorted_cards_hash, #instructions_response_type?, #launch_smart_app_response_type?, #list_card_types_in_requests, #propose_alternative_request_response_type?, #sort_card_types_from_request, #sorted_cards_cached?, #sorted_cards_from_cache, #sorted_cards_from_requests

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?

Methods included from SuggestionActionsValidation

#action_fields_validation, #action_resource_type_check, #actions_check

Methods included from ServerHookHelper

#discovered_service_id_for_hook, #identify_hook, #target_service_id, #tested_hook_name

Instance Method Details

#coverage_information_card_action?(action, request) ⇒ Boolean

Returns:

  • (Boolean)


42
43
44
45
46
47
48
49
50
# File 'lib/davinci_crd_test_kit/server/v2.2.1/verify_response/coverage_information_card_absence_test.rb', line 42

def coverage_information_card_action?(action, request)
  return false unless coverage_information_response_type?(action)
  return false unless action['type'] == 'update'

  source_resource = find_action_source_resource(action, request)
  return coverage_information_extension_only_payload?(action['resource']) unless source_resource

  only_coverage_information_changed?(source_resource.to_hash, action['resource'])
end

#coverage_information_card_message(response_index, card) ⇒ Object



26
27
28
29
30
31
32
# File 'lib/davinci_crd_test_kit/server/v2.2.1/verify_response/coverage_information_card_absence_test.rb', line 26

def coverage_information_card_message(response_index, card)
  identifier = card['uuid'].present? ? "uuid `#{card['uuid']}`" : 'no uuid'

  "Server response #{response_index + 1} included a card with #{identifier} and a suggestion action that only " \
    'adds or modifies the coverage-information extension. Coverage Information must be returned as a ' \
    'systemAction, not as a card.'
end

#coverage_information_card_response_type?(card, request) ⇒ Boolean

Returns:

  • (Boolean)


34
35
36
37
38
39
40
# File 'lib/davinci_crd_test_kit/server/v2.2.1/verify_response/coverage_information_card_absence_test.rb', line 34

def coverage_information_card_response_type?(card, request)
  Array(card['suggestions']).any? do |suggestion|
    Array(suggestion['actions']).any? do |action|
      coverage_information_card_action?(action, request)
    end
  end
end