class OpenEHR::RM::Support::Identification::ArchetypeID

Attributes

concept_name[R]
rm_entity[R]
rm_name[R]
rm_originator[R]
specialisation[R]
version_id[R]

Public Class Methods

new(args = {}) click to toggle source
# File lib/open_ehr/rm/support/identification.rb, line 58
def initialize(args = {})
  if args[:value].nil?
    self.rm_originator = args[:rm_originator]
    self.rm_name = args[:rm_name]
    self.rm_entity = args[:rm_entity]
    self.concept_name = args[:concept_name]
    self.version_id = args[:version_id]
    self.specialisation = args[:specialisation]
  else
    super(args)
  end
end

Public Instance Methods

concept_name=(concept_name) click to toggle source
# File lib/open_ehr/rm/support/identification.rb, line 101
def concept_name=(concept_name)
  if concept_name.nil? or concept_name.empty?
    raise ArgumentError, 'concept_name is mandatory'
  end
  @concept_name = concept_name
end
domain_concept() click to toggle source
# File lib/open_ehr/rm/support/identification.rb, line 88
def domain_concept
  if @specialisation.nil?
    return @concept_name
  else
    return @concept_name + '-' + @specialisation
  end
end
domain_concept=(domain_concept) click to toggle source
# File lib/open_ehr/rm/support/identification.rb, line 108
def domain_concept=(domain_concept)
  if domain_concept.nil? or domain_concept.empty?
    raise ArgumentError, "domain concept not valid"
  end
  if /([a-zA-Z]\w+)(-([a-zA-Z]\w))?/ =~ domain_concept
    self.concept_name = $1
    self.specialisation = $3
  else
    raise ArgumentError, 'invalid domain concept form'
  end
end
qualified_rm_entity() click to toggle source
# File lib/open_ehr/rm/support/identification.rb, line 84
def qualified_rm_entity
  return @rm_originator + '-' + @rm_name + '-' + @rm_entity
end
rm_entity=(rm_entity) click to toggle source
# File lib/open_ehr/rm/support/identification.rb, line 125
def rm_entity=(rm_entity)
  if rm_entity.nil? or rm_entity.empty?
    raise ArgumentError, "rm_entity is mandatory"
  end
  @rm_entity = rm_entity
end
rm_name=(rm_name) click to toggle source
# File lib/open_ehr/rm/support/identification.rb, line 120
def rm_name=(rm_name)
  raise ArgumentError, "rm_name not valid" if rm_name.nil? or rm_name.empty?
  @rm_name = rm_name
end
rm_originator=(rm_originator) click to toggle source
# File lib/open_ehr/rm/support/identification.rb, line 132
def rm_originator=(rm_originator)
  if rm_originator.nil? or rm_originator.empty?
    raise ArgumentError, "rm_originator not valid"
  end
  @rm_originator = rm_originator
end
specialisation=(specialisation) click to toggle source
# File lib/open_ehr/rm/support/identification.rb, line 139
def specialisation=(specialisation)
  if !specialisation.nil? and specialisation.empty?
    raise ArgumentError, "rm_specialisation not valid" 
  end
  @specialisation = specialisation
end
value() click to toggle source
# File lib/open_ehr/rm/support/identification.rb, line 96
def value
  return self.qualified_rm_entity + '.' +
    self.domain_concept + '.' + @version_id
end
value=(value) click to toggle source
# File lib/open_ehr/rm/support/identification.rb, line 71
def value=(value)
  if /([a-zA-Z]\w+)-([a-zA-Z]\w+)-([a-zA-Z]\w+)\.([a-zA-Z]\w+)(-([a-zA-Z]\w+))?\.(v[1-9]\d*)/ =~ value
    self.rm_originator = $1
    self.rm_name = $2
    self.rm_entity = $3
    self.concept_name = $4
    self.specialisation = $6
    self.version_id = $7
  else
    raise ArgumentError, 'invalid archetype id form'
  end
end
version_id=(version_id) click to toggle source
# File lib/open_ehr/rm/support/identification.rb, line 146
def version_id=(version_id)
  raise ArgumentError, "version_id not valid" if version_id.nil? or version_id.empty?
  @version_id = version_id
end