source: ruby/trunk/lib/models/rm/support/identification.rb@ 91

Last change on this file since 91 was 91, checked in by KOBAYASHI, Shinji, 16 years ago

refs #39

File size: 3.2 KB
Line 
1# This module is an implementation of this UML:
2# http://www.openehr.org/uml/release-1.0.1/Browsable/_9_0_76d0249_1109331021343_528780_2066Report.html
3# Ticket refs #39
4module OpenEHR
5 module RM
6 module Support
7 module Identification
8
9 class Object_ID
10 attr_reader :value
11
12 def initialize(value)
13 self.value=value
14 end
15
16 def value=(value)
17 raise ArgumentError, "empty value" if value.nil? or value.empty?
18 @value = value
19 end
20 end # of ObjectID
21
22 class Archetype_ID < Object_ID
23 attr_reader :domain_concept, :rm_name, :rm_entity, :rm_originator, :specialisation, :version_id
24
25 def initialize(value, domain_concept, rm_name, rm_entity, rm_originator, specialisation, version_id)
26 super(value)
27 self.domain_concept = domain_concept
28 self.rm_name = rm_name
29 self.rm_entity = rm_entity
30 self.rm_originator = rm_originator
31 self.specialisation = specialisation
32 self.version_id = version_id
33 end
34
35 def domain_concept=(domain_concept)
36 raise ArgumentError, "domain concept not valid" if domain_concept.nil? or domain_concept.empty?
37 @domain_concept = domain_concept
38 end
39
40 def rm_name=(rm_name)
41 raise ArgumentError, "rm_name not valid" if rm_name.nil? or rm_name.empty?
42 @rm_name = rm_name
43 end
44
45 def rm_entity=(rm_entity)
46 raise ArgumentError, "rm_entity not valid" if rm_entity.nil? or rm_entity.empty?
47 @rm_entity = rm_entity
48 end
49
50 def rm_originator=(rm_originator)
51 raise ArgumentError, "rm_originator not valid" if rm_originator.nil? or rm_originator.empty?
52 @rm_originator = rm_originator
53 end
54
55 def specialisation=(specialisation)
56 raise ArgumentError, "rm_specialisation not valid" if specialisation.nil? or specialisation.empty?
57 @specialisation = specialisation
58 end
59 def version_id=(version_id)
60 raise ArgumentError, "version_id not valid" if version_id.nil? or version_id.empty?
61 @version_id = version_id
62 end
63 end
64
65 class Terminology_ID < Object_ID
66 attr_reader :name
67
68 def initialize(name , version_id)
69 @name , @version_id = name , version_id
70 end
71
72 def setValue(value)
73 loadValue(value)
74 super.value = value
75 end
76
77 def version_id
78 @version
79 end
80
81 private
82
83 def loadValue(value)
84 if /\(.*\)$/ =~ value
85# @name, @version = value.split(\())
86 @version.chop!
87 else
88 @name = value
89 @version = nil
90 end
91 end
92
93 def toValue(name, version)
94 if name == ""
95 raise Exception.new("empty name")
96 end
97 name + (version == nil ? "" : "(" + version + ")")
98 end
99 end # of Terminology_ID
100 end # of Definition
101 end # of Support
102 end # of RM
103end # of OpenEHR
Note: See TracBrowser for help on using the repository browser.