class HealthDataStandards::Import::CDA::ResultImporter

Public Class Methods

new(entry_finder=EntryFinder.new("//cda:observation[cda:templateId/@root='2.16.840.1.113883.3.88.11.83.15.1'] | //cda:observation[cda:templateId/@root='2.16.840.1.113883.3.88.11.83.15']")) click to toggle source
Calls superclass method
# File lib/health-data-standards/import/cda/result_importer.rb, line 5
def initialize(entry_finder=EntryFinder.new("//cda:observation[cda:templateId/@root='2.16.840.1.113883.3.88.11.83.15.1'] | //cda:observation[cda:templateId/@root='2.16.840.1.113883.3.88.11.83.15']"))
  super(entry_finder)
  @entry_class = LabResult
end

Public Instance Methods

create_entry(entry_element, nrh = NarrativeReferenceHandler.new) click to toggle source
Calls superclass method
# File lib/health-data-standards/import/cda/result_importer.rb, line 10
def create_entry(entry_element, nrh = NarrativeReferenceHandler.new)
  result = super
  extract_interpretation(entry_element, result)
  extract_reference_range(entry_element, result)
  extract_reason_or_negation(entry_element, result)
  extract_reason_description(entry_element, result, nrh)
  result
end

Private Instance Methods

extract_interpretation(parent_element, result) click to toggle source
# File lib/health-data-standards/import/cda/result_importer.rb, line 20
def extract_interpretation(parent_element, result)
  interpretation_element = parent_element.at_xpath("./cda:interpretationCode")
  if interpretation_element
    code = interpretation_element['code']
    code_system = CodeSystemHelper.code_system_for(interpretation_element['codeSystem'])
    result.interpretation = {'code' => code, 'codeSystem' => code_system}
  end
end
extract_reference_range(parent_element, result) click to toggle source
# File lib/health-data-standards/import/cda/result_importer.rb, line 29
def extract_reference_range(parent_element, result)
  result.reference_range = parent_element.at_xpath("./cda:referenceRange/cda:observationRange/cda:text").try(:text)
end