lib/health-data-standards/import/c32/care_goal_importer.rb
module HealthDataStandards
module Import
module C32
class CareGoalImporter < CDA::SectionImporter
def initialize(entry_finder=CDA::EntryFinder.new("//cda:section[cda:templateId/@root='2.16.840.1.113883.3.88.11.83.124']/cda:entry/cda:*[cda:templateId/@root='2.16.840.1.113883.10.20.1.25']"))
super(entry_finder)
end
def create_entry(goal_element, nrh = CDA::NarrativeReferenceHandler.new)
importer = case goal_element.name
when "observation" then CDA::ResultImporter.new
when "supply" then CDA::MedicalEquipment.new
when "substanceAdministration" then CDA::MedicationImporter.new
when "encounter" then CDA::EncounterImporter.new
when "procedure" then CDA::ProcedureImporter.new
else CDA::SectionImporter.new(nil) #don't need entry xpath, since we already have the entry
end
entry = importer.create_entry(goal_element, nrh)
extract_reason_or_negation(goal_element, entry)
entry
end
end
end
end
end