Changeset 369 for ruby/trunk/lib/open_ehr/rm/demographic.rb
- Timestamp:
- Nov 20, 2009, 3:11:04 PM (14 years ago)
- Location:
- ruby/trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
ruby/trunk
- Property svn:mergeinfo changed
/ruby/branches/0.5 merged: 292,296,300-301,305,308-312,322,330-365
- Property svn:mergeinfo changed
-
ruby/trunk/lib/open_ehr/rm/demographic.rb
r167 r369 2 2 # http://www.openehr.org/uml/release-1.0.1/Browsable/_9_5_76d0249_1118674798473_6021_0Report.html 3 3 # Ticket refs #45 4 include OpenEHR::RM::Common::Archetyped 5 4 6 module OpenEHR 5 7 module RM 6 module Demogrphic 7 class Address < OpenEHR::RM::Common::Archetyped::Locatable 8 attr_reader :details 9 10 def as_string 11 12 end 13 14 def type 15 16 end 17 end 18 19 class Capability < OpenEHR::RM::Common::Archetyped::Locatable 20 attr_reader :credentials, :time_validity 21 22 end 23 24 class Party < OpenEHR::RM::Common::Archetyped::Locatable 25 attr_reader :details, :reverse_relationships, :uid 26 attr_reader :idetities, :contacts, :relationships 27 def initialize(uid, archetype_node_id, name, archetype_details, 28 feeder_audit, links, identities, contacts, 29 relationships, reverse_relationships, details) 30 super(uid, archetype_node_id, name, archetype_details, 31 feeder_audit, links, nil) 32 uid_valid(uid) 8 module Demographic 9 class Party < Locatable 10 attr_reader :uid, :identities, :contacts, :relationships, 11 :reverse_relationships 12 attr_accessor :details 13 alias :type :name 14 15 def initialize(args = { }) 16 super(args) 17 self.uid = args[:uid] 18 self.identities = args[:identities] 19 self.contacts = args[:contacts] 20 self.relationships = args[:relationships] 21 self.reverse_relationships = 22 args[:reverse_relationships] 23 self.details = args[:details] 24 end 25 26 def uid=(uid) 27 raise ArgumentError, 'uid is mandatory' if uid.nil? 33 28 @uid = uid 34 identities_vaild(identities) 29 end 30 31 def identities=(identities) 32 if identities.nil? || identities.empty? 33 raise ArgumentError, 'identities are mandatory' 34 end 35 35 @identities = identities 36 contacts_valid(contacts) 36 end 37 38 def contacts=(contacts) 39 if !contacts.nil? && contacts.empty? 40 raise ArgumentError, 'contacts should not be empty' 41 end 37 42 @contacts = contacts 38 relationships_valid(relationships) 39 end 40 def type 41 return name 42 end 43 def uid=(uid) 44 uid_valid(uid) 45 @uid = uid 46 end 47 def identities=(identities) 48 identities_vaild(identities) 49 @identities = identities 50 def contacts=(contacts) 51 contacts_valid(contacts) 52 @contacts = contacts 53 end 43 end 44 54 45 def parent=(parent) 55 46 @parent = nil 56 47 end 57 private 58 def uid_valid(uid) 59 raise ArgumentError, "uid is not valid" if uid.nil? 60 end 61 def identities_vaild(identities) 62 if identities.nil? 63 raise ArgumentError, "identities must not be nil" 64 elsif identities.empty? 65 raise ArgumentError, "identities must not be empty" 66 end 67 end 68 def contacts_valid(contacts) 69 if contacs.nil? 70 raise ArgumentError, "contacts must not be nil" 71 elsif contacts.empty? 72 raise ArgumentError, "contacts must not be empty" 73 end 74 end 75 end 76 77 class PartyIdentity < OpenEHR::RM::Common::Archetyped::Locatable 48 49 def relationships=(relationships) 50 unless relationships.nil? 51 if relationships.empty? 52 raise ArgumentError, 'relationships should not be empty?' 53 else 54 relationships.each do |rel| 55 if rel.source.id.value != @uid.value 56 raise ArgumentError, 'invalid source of relationships' 57 end 58 end 59 end 60 end 61 @relationships = relationships 62 end 63 64 def reverse_relationships=(reverse_relationships) 65 if !reverse_relationships.nil? && reverse_relationships.empty? 66 raise ArgumentError, 'reverse_relationships should not be empty' 67 end 68 @reverse_relationships = reverse_relationships 69 end 70 end 71 72 class PartyIdentity < Locatable 78 73 attr_reader :details 79 74 80 end 81 82 class PartyRelationship < OpenEHR::RM::Common::Archetyped::Locatable 83 84 end 85 86 class Versioned_Party < OpenEHR::RM::Common::Archetyped::Locatable 87 88 end 89 90 class Role < Party 91 75 def initialize(args = { }) 76 super(args) 77 self.details = args[:details] 78 end 79 80 def details=(details) 81 if details.nil? 82 raise ArgumentError, 'details are mandatory' 83 end 84 @details = details 85 end 86 87 def purpose 88 return @name 89 end 90 end 91 92 class Contact < Locatable 93 attr_accessor :time_validity 94 attr_reader :addresses 95 96 def initialize(args = { }) 97 super(args) 98 self.addresses = args[:addresses] 99 self.time_validity = args[:time_validity] 100 end 101 102 def purpose 103 return @name 104 end 105 106 def addresses=(addresses) 107 if addresses.nil? || addresses.empty? 108 raise ArgumentError, 'address is mandatory' 109 end 110 @addresses = addresses 111 end 112 end 113 114 class Address < Locatable 115 attr_reader :details 116 117 def initialize(args = { }) 118 super(args) 119 self.details = args[:details] 120 end 121 122 def details=(details) 123 if details.nil? 124 raise ArgumentError, 'details are mandatory' 125 end 126 @details = details 127 end 128 129 def type 130 return @name 131 end 92 132 end 93 133 94 134 class Actor < Party 95 LEAGAL_IDENTITY = 'leagal identity' 96 attr_reader :languages, :rules 97 def initialize(uid, archetype_node_id, name, archetype_details, 98 feeder_audit, links, identities, contacts, 99 relationships, reverse_relationships, details, 100 languages, rules) 101 super(uid, archetype_node_id, name, archetype_details, 102 feeder_audit, links, relationships, reverse_relationships, 103 details) 104 has_legal_identity? 105 set_languages(languages) 106 set_rules(rules) 107 end 135 LEAGAL_IDENTITY = 'legal identity' 136 attr_reader :languages, :roles 137 138 def initialize(args = { }) 139 super(args) 140 self.roles = args[:roles] 141 self.languages = args[:languages] 142 end 143 144 def roles=(roles) 145 if !roles.nil? && roles.empty? 146 raise ArgumentError, 'roles should not be empty' 147 end 148 @roles = roles 149 end 150 108 151 def has_legal_identity? 109 @identities.each {|identity|110 if (identity.purpose.value == LEAGAL_IDENTITY)152 @identities.each do |identity| 153 if identity.purpose.value == LEAGAL_IDENTITY 111 154 return true 112 155 end 113 } 114 false 115 end 156 end 157 return false 158 end 159 116 160 def languages=(languages) 117 set_languages(languages) 118 end 119 def values=(values) 120 set_values(values) 121 end 122 private 123 def set_languages(languages) 124 if languages.nil? 125 raise ArgumentError, "languages should not be nil." 126 elsif languages.empty? 127 raise ArgumentError, "languages shouldnot be empty." 161 if !languages.nil? && languages.empty? 162 raise ArgumentError, 'languages should not be empty.' 128 163 end 129 164 @languages = languages 130 165 end 131 def set_values(values) 132 if values.nil? 133 raise ArgumentError, "values should not be nil." 134 elsif values.empty? 135 raise ArgumentError, "values should not be nil." 136 end 137 @values = values 138 end 139 class Contact < OpenEHR::RM::Common::Archetyped::Locatable 166 end 167 168 class Person < Actor 169 170 end 171 172 class Organisation < Actor 173 174 end 175 176 class Group < Actor 177 178 end 179 180 class Agent < Actor 181 182 end 183 184 class Role < Party 185 attr_reader :performer, :capabilities 140 186 attr_accessor :time_validity 141 attr_reader :addresses 142 def initialize(uid, archetype_node_id, name, archetype_details, 143 feeder_audit, links, parent, time_validity, addresses) 144 super(uid, archetype_node_id, name, archetype_details, 145 feeder_audit, links, parent) 146 address_exists?(addresses) 147 @addresses = addresses 148 @time_validity = time_validity 149 end 150 def purpose 151 @name 152 end 153 def purpose=(purpose) 154 @name = purpose 155 end 156 def addresses=(addresses) 157 address_exists?(addresses) 158 @addresses = addresses 159 end 160 private 161 def address_exists?(addresses) 162 if addresses.nil? 163 raise ArgumentError, "address must not be nil" 164 elsif addresses.empty? 165 raise ArgumentError, "address must not be empty" 166 end 167 end 168 end 169 170 class Agent < Actor 171 172 end 173 174 class Organisation < Actor 175 176 end 177 178 class Person < Actor 179 180 end 181 182 class Group < Actor 187 188 def initialize(args = { }) 189 super(args) 190 self.performer = args[:performer] 191 self.capabilities = args[:capabilities] 192 self.time_validity = args[:time_validity] 193 end 194 195 def performer=(performer) 196 if performer.nil? 197 raise ArgumentError, 'performer is mandatory' 198 end 199 @performer = performer 200 end 201 202 def capabilities=(capabilities) 203 if !capabilities.nil? && capabilities.empty? 204 raise ArgumentError, 'capability should not be empty' 205 end 206 @capabilities = capabilities 207 end 208 end 209 210 class Capability < Locatable 211 attr_reader :credentials 212 attr_accessor :time_validity 213 214 def initialize(args = { }) 215 super(args) 216 self.credentials = args[:credentials] 217 self.time_validity = args[:time_validity] 218 end 219 220 def credentials=(credentials) 221 if credentials.nil? 222 raise ArgumentError, 'credentials are mandatory' 223 end 224 @credentials = credentials 225 end 226 end 227 228 class PartyRelationship < Locatable 229 attr_accessor :details, :time_validity 230 attr_reader :source, :target 231 alias :type :name 232 233 def initialize(args = { }) 234 super(args) 235 self.uid = args[:uid] 236 self.details = args[:details] 237 self.time_validity = args[:time_validity] 238 self.source = args[:source] 239 self.target = args[:target] 240 end 241 242 def uid=(uid) 243 if uid.nil? 244 raise ArgumentError, 'uid is mandatory' 245 end 246 @uid = uid 247 end 248 249 def source=(source) 250 if source.nil? or source.id.value != @uid.value 251 raise ArgumentError, 'source is invalid' 252 end 253 @source = source 254 end 255 256 def target=(target) 257 if target.nil? 258 raise ArgumentError, 'taraget is invalid' 259 end 260 @target = target 261 end 262 end 263 264 class VersionedParty < Locatable 183 265 184 266 end
Note:
See TracChangeset
for help on using the changeset viewer.