Sha256: a328f5a15d964b65700592ea148754f678453be2d78d798758a0a720282cf429
Contents?: true
Size: 1.13 KB
Versions: 6
Compression:
Stored size: 1.13 KB
Contents
module Qa::Authorities module MeshTools class MeshImporter def import_from_file(f) entries = [] trees = [] mesh = Qa::Authorities::MeshTools::MeshDataParser.new(f) mesh.each_mesh_record do |record| entry = [] entry << record['UI'].first entry << record['MH'].first entry << record['MH'].first.downcase entry << get_synonyms(record).join('|') entries << entry unless record['MN'].nil? trees += record['MN'].map do |tree_number| [record['UI'].first, tree_number] end end end Qa::SubjectMeshTerm.import([:term_id, :term, :term_lower, :synonyms], entries) Qa::MeshTree.import([:term_id, :tree_number], trees) end private def get_synonyms(record) first_terms(record, 'PRINT ENTRY') + first_terms(record, 'ENTRY') end def first_terms(record, field) return [] if record[field].nil? record[field].map { |s| s.split('|').first } end def tree_number_to_term_list end end end end
Version data entries
6 entries across 6 versions & 1 rubygems