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

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

refs #39
fixed UID_Based_ID

File size: 3.8 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, :version_id
67
68 def initialize(value, name , version_id="")
69 super(value)
70 self.name = name
71 self.version_id = version_id
72 end
73
74 def name=(name)
75 raise ArgumentError, "name not valid" if name.nil? or name.empty?
76 @name = name
77 end
78
79 def version_id=(version_id)
80 raise ArgumentError, "version_id not valid" if version_id.nil?
81 @version_id = version_id
82 end
83 end # of Terminology_ID
84
85 class Generic_ID < Object_ID
86 attr_reader :scheme
87
88 def initialize(value, scheme)
89 super(value)
90 self.scheme = scheme
91 end
92
93 def scheme=(scheme)
94 raise ArgumentError, "scheme not valid" if scheme.nil? or scheme.empty?
95 @scheme = scheme
96 end
97 end # of Generic_ID
98 class UID_Based_ID < Object_ID
99 def initialize(value)
100 super(value)
101 end
102 def extension
103 if self.has_extension?
104 @value[/::.*/][2..-1]
105 else
106 ''
107 end
108 end
109 def has_extension?
110 @value.include? '::'
111 end
112 def root
113 if self.has_extension?
114 @value[/.*::/][0..-3]
115 else
116 @value
117 end
118 end
119 end
120 end # of Identification
121 end # of Support
122 end # of RM
123end # of OpenEHR
Note: See TracBrowser for help on using the repository browser.