class HealthDataStandards::Import::CDA::ProcedureImporter
Public Class Methods
new(entry_finder=EntryFinder.new("//cda:section[cda:templateId/@root!='2.16.840.1.113883.3.88.11.83.124']//cda:procedure"))
click to toggle source
scoped to not look in the plan of care section so planned procedures do not end up mixed with past procedures
Calls superclass method
# File lib/health-data-standards/import/cda/procedure_importer.rb, line 8 def initialize(entry_finder=EntryFinder.new("//cda:section[cda:templateId/@root!='2.16.840.1.113883.3.88.11.83.124']//cda:procedure")) super(entry_finder) @entry_class = Procedure @value_xpath = "./cda:value | ./cda:entryRelationship[@typeCode='REFR']/cda:observation/cda:value" @ordinality_xpath = "./cda:priorityCode" end
Public Instance Methods
create_entry(entry_element, nrh = NarrativeReferenceHandler.new)
click to toggle source
Calls superclass method
# File lib/health-data-standards/import/cda/procedure_importer.rb, line 15 def create_entry(entry_element, nrh = NarrativeReferenceHandler.new) procedure = super extract_ordinality(entry_element, procedure) extract_performer(entry_element, procedure) extract_anatomical_target(entry_element, procedure) extract_reason_or_negation(entry_element, procedure) extract_scalar(entry_element, procedure) procedure end
Private Instance Methods
extract_anatomical_target(parent_element, procedure)
click to toggle source
# File lib/health-data-standards/import/cda/procedure_importer.rb, line 39 def extract_anatomical_target(parent_element, procedure) procedure.anatomical_target = extract_code(parent_element, "./cda:targetSiteCode") end
extract_ordinality(parent_element, procedure)
click to toggle source
# File lib/health-data-standards/import/cda/procedure_importer.rb, line 27 def extract_ordinality(parent_element, procedure) ordinality_element = parent_element.at_xpath(@ordinality_xpath) if ordinality_element procedure.ordinality = {"code" => ordinality_element['code'], "code_system" => CodeSystemHelper.code_system_for(ordinality_element['codeSystem']), "codeSystemName" => CodeSystemHelper.code_system_for(ordinality_element['codeSystem']), CodeSystemHelper.code_system_for(ordinality_element['codeSystem']) => [ordinality_element['code']]} end end
extract_performer(parent_element, procedure)
click to toggle source
# File lib/health-data-standards/import/cda/procedure_importer.rb, line 34 def extract_performer(parent_element, procedure) performer_element = parent_element.at_xpath("./cda:performer") procedure.performer = import_actor(performer_element) if performer_element end
extract_scalar(parent_element, procedure)
click to toggle source
# File lib/health-data-standards/import/cda/procedure_importer.rb, line 43 def extract_scalar(parent_element, procedure) return unless scalar_element = parent_element.at_xpath("./cda:value") case scalar_element["xsi:type"] when "PQ" procedure.set_value scalar_element['value'].to_i, scalar_element['unit'] when "BL" procedure.set_value scalar_element['value'] when "ST" procedure.set_value scalar_element.content end end