Sha256: 882e4a83c6b1e09565dfc955cdb6f859837fd0dd9f4c93c75b18030782ca712e

Contents?: true

Size: 1.33 KB

Versions: 2

Compression:

Stored size: 1.33 KB

Contents

module HealthDataStandards
  module Import
    module CDA
      class MedicalEquipmentImporter < SectionImporter
        def initialize(entry_finder=EntryFinder.new("//cda:section[cda:templateId/@root='2.16.840.1.113883.3.88.11.83.128']/cda:entry/cda:supply"))
          super(entry_finder)
          @code_xpath = "./cda:participant/cda:participantRole/cda:playingDevice/cda:code"
          @anatomical_xpath = "./cda:targetSiteCode"
          @entry_class = MedicalEquipment
        end

        def create_entry(entry_element, nrh = NarrativeReferenceHandler.new)
          medical_equipment = super
          extract_manufacturer(entry_element, medical_equipment)
          extract_anatomical_structure(entry_element, medical_equipment)
          medical_equipment
        end

        def extract_manufacturer(entry_element, entry)
          manufacturer = entry_element.at_xpath("./cda:participant/cda:participantRole/cda:scopingEntity/cda:desc").try(:inner_text)
          entry.manufacturer = manufacturer.strip if manufacturer
        end

        def extract_anatomical_structure(entry_element, entry) 
          site = entry_element.at_xpath(@anatomical_xpath)
          if site
            entry.anatomical_structure = {CodeSystemHelper.code_system_for(site['codeSystem']) => [site['code']]}
          end
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
health-data-standards-3.2.12 lib/health-data-standards/import/cda/medical_equipment_importer.rb
health-data-standards-3.3.0 lib/health-data-standards/import/cda/medical_equipment_importer.rb