Class: DaVinciCRDTestKit::V221::ServiceRequestNoCustomExtensionsTest

Inherits:
Inferno::Test
  • Object
show all
Includes:
ResourceExtractor, ServerHookHelper
Defined in:
lib/davinci_crd_test_kit/server/v2.2.1/verify_request/service_request_no_custom_extensions_test.rb

Constant Summary collapse

US_CORE_EXTENSION_URLS =
[
  'http://hl7.org/fhir/us/core/StructureDefinition/us-core-birthsex',
  'http://hl7.org/fhir/us/core/StructureDefinition/us-core-direct',
  'http://hl7.org/fhir/us/core/StructureDefinition/us-core-ethnicity',
  'http://hl7.org/fhir/us/core/StructureDefinition/us-core-race',
  'http://hl7.org/fhir/us/core/StructureDefinition/uscdi-requirement',
  'http://hl7.org/fhir/us/core/StructureDefinition/us-core-extension-questionnaire-uri',
  'http://hl7.org/fhir/us/core/StructureDefinition/us-core-genderIdentity',
  'http://hl7.org/fhir/us/core/StructureDefinition/us-core-jurisdiction',
  'http://hl7.org/fhir/us/core/StructureDefinition/us-core-sex',
  'http://hl7.org/fhir/us/core/StructureDefinition/us-core-tribal-affiliation',
  'http://hl7.org/fhir/us/core/StructureDefinition/us-core-medication-adherence',
  'http://hl7.org/fhir/StructureDefinition/condition-assertedDate'
].freeze
CRD_EXTENSION_URLS =
[
  'http://hl7.org/fhir/us/davinci-crd/StructureDefinition/ext-coverage-information',
  'http://hl7.org/fhir/us/davinci-crd/StructureDefinition/ext-billing-options',
  'http://hl7.org/fhir/us/davinci-crd/StructureDefinition/ext-request-category',
  'http://hl7.org/fhir/StructureDefinition/codeOptions',
  'http://hl7.org/fhir/StructureDefinition/alternate-reference',
  'http://hl7.org/fhir/5.0/StructureDefinition/extension-CommunicationRequest.payload.content',
  'http://hl7.org/fhir/5.0/StructureDefinition/extension-Task.requestedPeriod',
  'http://hl7.org/fhir/5.0/StructureDefinition/extension-Task.requestedPerformer',
  'http://hl7.org/fhir/5.0/StructureDefinition/extension-Task.performer',
  'http://hl7.org/fhir/StructureDefinition/request-doNotPerform',
  'http://hl7.org/fhir/5.0/StructureDefinition/extension-Task.input.value',
  'http://hl7.org/fhir/5.0/StructureDefinition/extension-Task.output.value',
  'http://hl7.org/fhir/5.0/StructureDefinition/extension-Task.statusReason'
].freeze
HREX_EXTENSION_URLS =
[
  'http://hl7.org/fhir/us/davinci-hrex/StructureDefinition/extension-CoverageDavinciWellknownLocation'
].freeze
VALID_EXTENSION_URLS =
(US_CORE_EXTENSION_URLS + CRD_EXTENSION_URLS + HREX_EXTENSION_URLS).freeze

Instance Method Summary collapse

Methods included from ServerHookHelper

#discovered_service_id_for_hook, #identify_hook, #target_service_id, #tested_hook_name

Methods included from ResourceExtractor

#bundle_entry_resources, #context_resources, #parse_fhir_data, #prefetch_resources, #resources_from_hash, #resources_from_request, #resources_from_value

Instance Method Details

#custom_extensions(resource) ⇒ Object



107
108
109
110
111
112
113
114
115
116
117
# File 'lib/davinci_crd_test_kit/server/v2.2.1/verify_request/service_request_no_custom_extensions_test.rb', line 107

def custom_extensions(resource)
  [].tap do |custom_extensions|
    resource.each_element do |value, , path|
      next unless value.is_a? FHIR::Extension

      next if path.scan('extension').length > 1

      custom_extensions << value.url unless VALID_EXTENSION_URLS.include? value.url
    end
  end
end

#no_custom_extensions?(resource) ⇒ Boolean

Returns:

  • (Boolean)


95
96
97
98
99
100
101
102
103
104
105
# File 'lib/davinci_crd_test_kit/server/v2.2.1/verify_request/service_request_no_custom_extensions_test.rb', line 95

def no_custom_extensions?(resource)
  resource.each_element do |value, , path|
    next unless value.is_a? FHIR::Extension

    next if path.scan('extension').length > 1

    return false unless VALID_EXTENSION_URLS.include? value.url
  end

  true
end