projectcypress/health-data-standards

View on GitHub
lib/health-data-standards/import/c32/care_goal_importer.rb

Summary

Maintainability
A
0 mins
Test Coverage
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