Class: DaVinciCRDTestKit::V221::CoverageInfoReasonTest

Inherits:
Inferno::Test
  • Object
show all
Defined in:
lib/davinci_crd_test_kit/server/v2.2.1/specific_coverage_responses/coverage_info_reason_test.rb

Overview

Users of this test need to set config options for coverage_code, reason_code, and optionally require_reason_text

Constant Summary collapse

COVERAGE_INFO_EXTENSION_URL =
'http://hl7.org/fhir/us/davinci-crd/StructureDefinition/ext-coverage-information'.freeze

Instance Method Summary collapse

Instance Method Details

#coverage_extension_value(coverage_info_extension) ⇒ Object



67
68
69
70
71
# File 'lib/davinci_crd_test_kit/server/v2.2.1/specific_coverage_responses/coverage_info_reason_test.rb', line 67

def coverage_extension_value(coverage_info_extension)
  coverage_info_extension['extension']
    .find { |extension| extension['url'] == 'covered' }
    &.dig('valueCode')
end

#coverage_info_extensions(resource) ⇒ Object



63
64
65
# File 'lib/davinci_crd_test_kit/server/v2.2.1/specific_coverage_responses/coverage_info_reason_test.rb', line 63

def coverage_info_extensions(resource)
  resource['extension'].select { |extension| extension['url'] == COVERAGE_INFO_EXTENSION_URL }
end

#expected_coverage?(coverage_info_extension) ⇒ Boolean

Returns:

  • (Boolean)


73
74
75
# File 'lib/davinci_crd_test_kit/server/v2.2.1/specific_coverage_responses/coverage_info_reason_test.rb', line 73

def expected_coverage?(coverage_info_extension)
  coverage_extension_value(coverage_info_extension) == expected_coverage_code
end

#expected_coverage_codeObject



95
96
97
# File 'lib/davinci_crd_test_kit/server/v2.2.1/specific_coverage_responses/coverage_info_reason_test.rb', line 95

def expected_coverage_code
  config.options[:expected_coverage_code]
end

#expected_reason?(coverage_info_extension) ⇒ Boolean

Returns:

  • (Boolean)


84
85
86
# File 'lib/davinci_crd_test_kit/server/v2.2.1/specific_coverage_responses/coverage_info_reason_test.rb', line 84

def expected_reason?(coverage_info_extension)
  reason_extension_values(coverage_info_extension)&.include? expected_reason_code
end

#expected_reason_codeObject



99
100
101
# File 'lib/davinci_crd_test_kit/server/v2.2.1/specific_coverage_responses/coverage_info_reason_test.rb', line 99

def expected_reason_code
  config.options[:expected_reason_code]
end

#reason_extension_values(coverage_info_extension) ⇒ Object



77
78
79
80
81
82
# File 'lib/davinci_crd_test_kit/server/v2.2.1/specific_coverage_responses/coverage_info_reason_test.rb', line 77

def reason_extension_values(coverage_info_extension)
  coverage_info_extension['extension']
    .find { |extension| extension['url'] == 'reason' }
    &.dig('valueCodeableConcept', 'coding')
    &.map { |coding| coding['code'] }
end

#reason_text?(coverage_info_extension) ⇒ Boolean

Returns:

  • (Boolean)


88
89
90
91
92
93
# File 'lib/davinci_crd_test_kit/server/v2.2.1/specific_coverage_responses/coverage_info_reason_test.rb', line 88

def reason_text?(coverage_info_extension)
  coverage_info_extension['extension']
    .find { |extension| extension['url'] == 'reason' }
    &.dig('valueCodeableConcept', 'text')
    &.present?
end

#require_reason_text?Boolean

Returns:

  • (Boolean)


103
104
105
# File 'lib/davinci_crd_test_kit/server/v2.2.1/specific_coverage_responses/coverage_info_reason_test.rb', line 103

def require_reason_text?
  config.options[:require_reason_text] || false
end