Sha256: 64140a10643bc690b4b1967d856c121706dacaa8751debbb0f6b115ec4429888

Contents?: true

Size: 1.2 KB

Versions: 5

Compression:

Stored size: 1.2 KB

Contents

module QME
  module Importer
    class MeasurePropertiesGenerator
      include Singleton
      
      def initialize
        @measure_importers = {}
      end
      
      # Adds a GenericImporter that will be used to extract
      # information about a measure from a patient Record.
      def add_measure(measure_id, importer)
        @measure_importers[measure_id] = importer
      end
      
      # Generates denormalized measure information
      # Measure information is contained in a Hash that hash
      # the measure id as a key, and the denormalized
      # measure information as a value
      #
      # @param [Record] patient - populated patient record
      # @returns Hash with denormalized measure information
      def generate_properties(patient)
        measures = {}
        @measure_importers.each_pair do |measure_id, importer|
          measures[measure_id] = importer.parse(patient)
        end
        measures
      end
      
      # The same as generate_properties but addes the denormalized
      # measure information into the Record and saves it.
      def generate_properties!(patient)
        patient['measures'] = generate_properties(patient)
        patient.save!
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
quality-measure-engine-1.1.5 lib/qme/importer/measure_properties_generator.rb
quality-measure-engine-1.1.3 lib/qme/importer/measure_properties_generator.rb
quality-measure-engine-1.1.2 lib/qme/importer/measure_properties_generator.rb
quality-measure-engine-1.1.1 lib/qme/importer/measure_properties_generator.rb
quality-measure-engine-1.1.0 lib/qme/importer/measure_properties_generator.rb