class HealthDataStandards::Import::Cat1::EncounterPerformedImporter

Public Class Methods

new(entry_finder=CDA::EntryFinder.new("./cda:entry/cda:encounter[cda:templateId/@root = '2.16.840.1.113883.10.20.24.3.23']")) click to toggle source
Calls superclass method
# File lib/health-data-standards/import/cat1/encounter_performed_importer.rb, line 5
def initialize(entry_finder=CDA::EntryFinder.new("./cda:entry/cda:encounter[cda:templateId/@root = '2.16.840.1.113883.10.20.24.3.23']"))
  super(entry_finder)
  @reason_xpath = "./cda:entryRelationship[@typeCode='RSON']/cda:observation"
  @principal_diagnosis_xpath = "./cda:entryRelationship/cda:observation[cda:code/@code='8319008']"
  @diagnosis_xpath = "./cda:entryRelationship/cda:act/cda:entryRelationship/cda:observation[cda:templateId/@root='2.16.840.1.113883.10.20.22.4.4']"
end

Public Instance Methods

create_entry(entry_element, nrh = NarrativeReferenceHandler.new) click to toggle source
Calls superclass method
# File lib/health-data-standards/import/cat1/encounter_performed_importer.rb, line 12
def create_entry(entry_element, nrh = NarrativeReferenceHandler.new)
  encounter = super
  extract_admit_time(entry_element, encounter)
  extract_reason(entry_element, encounter, nrh)
  encounter.principal_diagnosis = extract_diagnosis(entry_element, @principal_diagnosis_xpath)
  encounter.diagnosis = extract_diagnosis(entry_element, @diagnosis_xpath)
  encounter
end

Private Instance Methods

extract_admit_time(parent_element, encounter) click to toggle source
# File lib/health-data-standards/import/cat1/encounter_performed_importer.rb, line 55
def extract_admit_time(parent_element, encounter)
  encounter.admit_time = encounter.start_time
end
extract_diagnosis(parent_element, xpath) click to toggle source
# File lib/health-data-standards/import/cat1/encounter_performed_importer.rb, line 23
def extract_diagnosis(parent_element, xpath)
  diagnosis_element = parent_element.at_xpath(xpath)
  if(diagnosis_element)
    diagnosis = Entry.new
    extract_workaround_codes(diagnosis_element, diagnosis)
    diagnosis.codes[diagnosis['code_system']] ||= []
    diagnosis.codes[diagnosis['code_system']] << diagnosis['code']
    return diagnosis
  end
  nil
end
extract_reason(parent_element, encounter, nrh) click to toggle source
# File lib/health-data-standards/import/cat1/encounter_performed_importer.rb, line 35
def extract_reason(parent_element, encounter, nrh)
  reason_element = parent_element.at_xpath(@reason_xpath)
  if reason_element
    reason = Entry.new
    extract_codes(reason_element, reason)
    extract_reason_description(reason_element, reason, nrh)
    extract_status(reason_element, reason)
    extract_dates(reason_element, reason)
    extract_workaround_codes(reason_element, reason)
    encounter.reason = reason
  end
end
extract_workaround_codes(parent_element, entry) click to toggle source
# File lib/health-data-standards/import/cat1/encounter_performed_importer.rb, line 48
def extract_workaround_codes(parent_element, entry)
  value = parent_element.at_xpath("./cda:value")
  entry['code'] = value['code']
  entry['code_system'] = CodeSystemHelper.code_system_for(value['codeSystem'])
  entry['codeSystemName'] = CodeSystemHelper.code_system_for(value['codeSystem'])
end