Sha256: 504493d38f09e66cf27b3b0c947857a70652b5dcb7368bf8bc3691e477b718e9

Contents?: true

Size: 1.66 KB

Versions: 2

Compression:

Stored size: 1.66 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)
          extract_removal_time(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_removal_time(entry_element, entry)
          if entry_element.at_xpath("cda:effectiveTime/cda:high")
            entry.removal_time = HL7Helper.timestamp_to_integer(entry_element.at_xpath("cda:effectiveTime/cda:high")['value'])
          end
        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.4.1 lib/health-data-standards/import/cda/medical_equipment_importer.rb
health-data-standards-3.4.0 lib/health-data-standards/import/cda/medical_equipment_importer.rb