Module: DaVinciPASTestKit::MustSupportTest

Extended by:
Forwardable
Includes:
FHIRResourceNavigation
Included in:
DaVinciPASV201::ClientInquireRequestBeneficiaryMustSupportTest, DaVinciPASV201::ClientInquireRequestClaimInquiryMustSupportTest, DaVinciPASV201::ClientInquireRequestCoverageMustSupportTest, DaVinciPASV201::ClientInquireRequestInsurerMustSupportTest, DaVinciPASV201::ClientInquireRequestPasInquiryRequestBundleMustSupportTest, DaVinciPASV201::ClientInquireRequestPractitionerMustSupportTest, DaVinciPASV201::ClientInquireRequestPractitionerRoleMustSupportTest, DaVinciPASV201::ClientInquireRequestRequestorMustSupportTest, DaVinciPASV201::ClientInquireRequestSubscriberMustSupportTest, DaVinciPASV201::ClientSubmitRequestBeneficiaryMustSupportTest, DaVinciPASV201::ClientSubmitRequestClaimUpdateMustSupportTest, DaVinciPASV201::ClientSubmitRequestCoverageMustSupportTest, DaVinciPASV201::ClientSubmitRequestDeviceRequestMustSupportTest, DaVinciPASV201::ClientSubmitRequestEncounterMustSupportTest, DaVinciPASV201::ClientSubmitRequestInsurerMustSupportTest, DaVinciPASV201::ClientSubmitRequestMedicationRequestMustSupportTest, DaVinciPASV201::ClientSubmitRequestNutritionOrderMustSupportTest, DaVinciPASV201::ClientSubmitRequestPasRequestBundleMustSupportTest, DaVinciPASV201::ClientSubmitRequestPractitionerMustSupportTest, DaVinciPASV201::ClientSubmitRequestPractitionerRoleMustSupportTest, DaVinciPASV201::ClientSubmitRequestRequestorMustSupportTest, DaVinciPASV201::ClientSubmitRequestServiceRequestMustSupportTest, DaVinciPASV201::ClientSubmitRequestSubscriberMustSupportTest, DaVinciPASV201::PasClientMustSupportRequirementTest, DaVinciPASV201::PasServerMustSupportRequirementTest, DaVinciPASV201::ServerInquireRequestBeneficiaryMustSupportTest, DaVinciPASV201::ServerInquireRequestClaimInquiryMustSupportTest, DaVinciPASV201::ServerInquireRequestCoverageMustSupportTest, DaVinciPASV201::ServerInquireRequestInsurerMustSupportTest, DaVinciPASV201::ServerInquireRequestPasInquiryRequestBundleMustSupportTest, DaVinciPASV201::ServerInquireRequestPractitionerMustSupportTest, DaVinciPASV201::ServerInquireRequestPractitionerRoleMustSupportTest, DaVinciPASV201::ServerInquireRequestRequestorMustSupportTest, DaVinciPASV201::ServerInquireRequestSubscriberMustSupportTest, DaVinciPASV201::ServerInquireResponseBeneficiaryMustSupportTest, DaVinciPASV201::ServerInquireResponseClaiminquiryresponseMustSupportTest, DaVinciPASV201::ServerInquireResponseInsurerMustSupportTest, DaVinciPASV201::ServerInquireResponsePasInquiryResponseBundleMustSupportTest, DaVinciPASV201::ServerInquireResponsePractitionerMustSupportTest, DaVinciPASV201::ServerInquireResponsePractitionerRoleMustSupportTest, DaVinciPASV201::ServerInquireResponseRequestorMustSupportTest, DaVinciPASV201::ServerInquireResponseTaskMustSupportTest, DaVinciPASV201::ServerSubmitRequestBeneficiaryMustSupportTest, DaVinciPASV201::ServerSubmitRequestClaimUpdateMustSupportTest, DaVinciPASV201::ServerSubmitRequestCoverageMustSupportTest, DaVinciPASV201::ServerSubmitRequestDeviceRequestMustSupportTest, DaVinciPASV201::ServerSubmitRequestEncounterMustSupportTest, DaVinciPASV201::ServerSubmitRequestInsurerMustSupportTest, DaVinciPASV201::ServerSubmitRequestMedicationRequestMustSupportTest, DaVinciPASV201::ServerSubmitRequestNutritionOrderMustSupportTest, DaVinciPASV201::ServerSubmitRequestPasRequestBundleMustSupportTest, DaVinciPASV201::ServerSubmitRequestPractitionerMustSupportTest, DaVinciPASV201::ServerSubmitRequestPractitionerRoleMustSupportTest, DaVinciPASV201::ServerSubmitRequestRequestorMustSupportTest, DaVinciPASV201::ServerSubmitRequestServiceRequestMustSupportTest, DaVinciPASV201::ServerSubmitRequestSubscriberMustSupportTest, DaVinciPASV201::ServerSubmitResponseBeneficiaryMustSupportTest, DaVinciPASV201::ServerSubmitResponseClaimresponseMustSupportTest, DaVinciPASV201::ServerSubmitResponseCommunicationRequestMustSupportTest, DaVinciPASV201::ServerSubmitResponseInsurerMustSupportTest, DaVinciPASV201::ServerSubmitResponsePasResponseBundleMustSupportTest, DaVinciPASV201::ServerSubmitResponsePractitionerMustSupportTest, DaVinciPASV201::ServerSubmitResponsePractitionerRoleMustSupportTest, DaVinciPASV201::ServerSubmitResponseRequestorMustSupportTest, DaVinciPASV201::ServerSubmitResponseTaskMustSupportTest
Defined in:
lib/davinci_pas_test_kit/must_support_test.rb

Constant Summary

Constants included from FHIRResourceNavigation

FHIRResourceNavigation::DAR_EXTENSION_URL

Instance Method Summary collapse

Methods included from FHIRResourceNavigation

#find_a_value_at, #get_next_value, #resolve_path

Instance Method Details

#all_must_support_errorsObject



40
41
42
# File 'lib/davinci_pas_test_kit/must_support_test.rb', line 40

def all_must_support_errors
  @all_must_support_errors ||= []
end

#all_scratch_resourcesObject



10
11
12
# File 'lib/davinci_pas_test_kit/must_support_test.rb', line 10

def all_scratch_resources
  scratch_resources[:all] ||= []
end

#perform_must_support_test(resources) ⇒ Object



52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
# File 'lib/davinci_pas_test_kit/must_support_test.rb', line 52

def perform_must_support_test(resources)
  assert resources.present?, "No #{resource_type} resources were found"

  missing_must_support_strings = missing_must_support_elements(resources, nil, metadata:)

  return unless missing_must_support_strings.any?

  all_must_support_errors << "Could not find #{missing_must_support_strings.join(', ')} " \
                             "in the #{resources.length} provided #{resource_type} resource(s)."

  all_must_support_errors.reject! { |err| err.downcase.include?('x12') }
  reset_variables

  # pass if (missing_elements + missing_slices + missing_extensions).empty?

  # assert false, "Could not find #{missing_must_support_strings.join(', ')} in the #{resources.length} " \
  #               "provided #{resource_type} resource(s)"
end

#reset_variablesObject



14
15
16
# File 'lib/davinci_pas_test_kit/must_support_test.rb', line 14

def reset_variables
  @missing_elements = @missing_slices = @missing_extensions = nil
end

#tagged_resources(tag) ⇒ Object



18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/davinci_pas_test_kit/must_support_test.rb', line 18

def tagged_resources(tag)
  resources = []
  load_tagged_requests(tag)
  return resources if requests.empty?

  requests.each do |req|
    begin
      bundle = FHIR.from_contents(req.request_body)
    rescue StandardError
      next
    end

    next unless bundle.is_a?(FHIR::Bundle)

    resources << bundle
    entry_resources = bundle.entry.map(&:resource)
    resources.concat(entry_resources)
  end

  resources
end

#validate_must_support(user_input_validation) ⇒ Object



44
45
46
47
48
49
50
# File 'lib/davinci_pas_test_kit/must_support_test.rb', line 44

def validate_must_support(user_input_validation)
  if user_input_validation
    skip_if !all_must_support_errors.empty?, all_must_support_errors.join("\n")
  else
    assert all_must_support_errors.empty?, all_must_support_errors.join("\n")
  end
end