class OpenEHR::AM::Archetype::Ontology::ArchetypeOntology

Attributes

constraint_bindings[RW]
constraint_definitions[R]
languages_available[RW]
primary_language[RW]
specialisation_depth[RW]
term_attribute_names[RW]
term_bindings[RW]
term_definitions[R]
terminologies_available[RW]

Public Class Methods

new(args = { }) click to toggle source
# File lib/open_ehr/am/archetype/ontology.rb, line 12
def initialize(args = { })
  self.primary_language = args[:primary_language]
  self.languages_available = args[:languages_available]
  self.terminologies_available = args[:terminologies_available]
  self.specialisation_depth = args[:specialisation_depth]
  self.term_definitions = args[:term_definitions]
  if args[:constraint_definitions]
    self.constraint_definitions = args[:constraint_definitions]
  end
  self.term_bindings = args[:term_bindings]
  self.constraint_bindings = args[:constraint_bindings]
end

Public Instance Methods

constraint_binding(args = {}) click to toggle source
# File lib/open_ehr/am/archetype/ontology.rb, line 44
def constraint_binding(args = {})
  return @constraint_bindings[args[:terminology]][args[:code]]
end
constraint_codes() click to toggle source
# File lib/open_ehr/am/archetype/ontology.rb, line 36
def constraint_codes
  if @constraint_definitions.nil?
    return nil
  else
    code_set @constraint_definitions
  end
end
constraint_definition(args = {}) click to toggle source
# File lib/open_ehr/am/archetype/ontology.rb, line 52
def constraint_definition(args = {})
  return @constraint_definitions[args[:lang]][args[:code]]
end
constraint_definitions=(constraint_definitions) click to toggle source
# File lib/open_ehr/am/archetype/ontology.rb, line 48
def constraint_definitions=(constraint_definitions)
  @constraint_definitions = constraint_definitions
end
has_language?(a_lang) click to toggle source
# File lib/open_ehr/am/archetype/ontology.rb, line 56
def has_language?(a_lang)
  return @term_definitions.has_key? a_lang
end
has_terminology?(a_terminology) click to toggle source
# File lib/open_ehr/am/archetype/ontology.rb, line 60
def has_terminology?(a_terminology)
  if !@terminologies_available.nil? &&
      (@terminologies_available.include? a_terminology)
    return true
  else
    return false
  end
end
term_binding(args = { }) click to toggle source
# File lib/open_ehr/am/archetype/ontology.rb, line 69
def term_binding(args = { })
  return @term_bindings[args[:terminology]][args[:code]]
end
term_codes() click to toggle source
# File lib/open_ehr/am/archetype/ontology.rb, line 32
def term_codes
  code_set @term_definitions
end
term_definition(args = { }) click to toggle source
# File lib/open_ehr/am/archetype/ontology.rb, line 73
def term_definition(args = { })
  return @term_definitions[args[:lang]][args[:code]]
end
term_definitions=(term_definitions) click to toggle source
# File lib/open_ehr/am/archetype/ontology.rb, line 25
def term_definitions=(term_definitions)
  if term_definitions.nil?
    raise ArgumentError, 'term_definitions is mandatory'
  end
  @term_definitions = term_definitions
end

Protected Instance Methods

code_set(definitions) click to toggle source
# File lib/open_ehr/am/archetype/ontology.rb, line 78
def code_set(definitions)
  codes = definitions.values.inject([]) do |codes, item|
    item.keys
  end
  codes.uniq
end