Sha256: 7994aff597e36ee5b623f9a6073dc31903e7503d22cd90bf73dc7817535d8a0f

Contents?: true

Size: 1.38 KB

Versions: 13

Compression:

Stored size: 1.38 KB

Contents

module CarinForBlueButtonTestKit
    class Generator
      class ValueExactor
        attr_accessor :ig_resources, :resource
  
        def initialize(ig_resources, resource)
          self.ig_resources = ig_resources
          self.resource = resource
        end
  
        def value_set_binding(the_element)
          the_element&.binding
        end
  
        def value_set(the_element)
          ig_resources.value_set_by_url(value_set_binding(the_element)&.valueSet)
        end
  
        def bound_systems(the_element)
          value_set(the_element)&.compose&.include&.reject { |code| code.concept.nil? }
        end
  
        def values_from_value_set_binding(the_element)
          bound_systems = bound_systems(the_element)
  
          return [] if bound_systems.blank?
  
          bound_systems.flat_map { |system| system.concept.map { |code| code.code } }.uniq
        end
  
        def fhir_metadata(current_path)
          FHIR.const_get(resource)::METADATA[current_path]
        end
  
        def values_from_resource_metadata(paths)
          values = []
  
          paths.each do |current_path|
            current_metadata = fhir_metadata(current_path)
  
            if current_metadata&.dig('valid_codes').present?
              values = values + current_metadata['valid_codes'].values.flatten
            end
          end
  
          values
        end
      end
    end
  end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
carin_for_blue_button_test_kit-0.14.0 lib/carin_for_blue_button_test_kit/generator/value_extractor.rb
carin_for_blue_button_test_kit-0.13.3 lib/carin_for_blue_button_test_kit/generator/value_extractor.rb
carin_for_blue_button_test_kit-0.13.2 lib/carin_for_blue_button_test_kit/generator/value_extractor.rb
carin_for_blue_button_test_kit-0.13.1 lib/carin_for_blue_button_test_kit/generator/value_extractor.rb
carin_for_blue_button_test_kit-0.13.0 lib/carin_for_blue_button_test_kit/generator/value_extractor.rb
carin_for_blue_button_test_kit-0.12.1 lib/carin_for_blue_button_test_kit/generator/value_extractor.rb
carin_for_blue_button_test_kit-0.12.0 lib/carin_for_blue_button_test_kit/generator/value_extractor.rb
carin_for_blue_button_test_kit-0.11.2 lib/carin_for_blue_button_test_kit/generator/value_extractor.rb
carin_for_blue_button_test_kit-0.11.1 lib/carin_for_blue_button_test_kit/generator/value_extractor.rb
carin_for_blue_button_test_kit-0.11.0 lib/carin_for_blue_button_test_kit/generator/value_extractor.rb
carin_for_blue_button_test_kit-0.10.0 lib/carin_for_blue_button_test_kit/generator/value_extractor.rb
carin_for_blue_button_test_kit-0.9.1 lib/carin_for_blue_button_test_kit/generator/value_extractor.rb
carin_for_blue_button_test_kit-0.9.0 lib/carin_for_blue_button_test_kit/generator/value_extractor.rb