Ignore:
Timestamp:
Nov 20, 2009, 3:11:04 PM (14 years ago)
Author:
KOBAYASHI, Shinji
Message:

merge from branches/0.5

Location:
ruby/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • ruby/trunk

  • ruby/trunk/lib/open_ehr/rm/demographic.rb

    r167 r369  
    22# http://www.openehr.org/uml/release-1.0.1/Browsable/_9_5_76d0249_1118674798473_6021_0Report.html
    33# Ticket refs #45
     4include OpenEHR::RM::Common::Archetyped
     5
    46module OpenEHR
    57  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?
    3328          @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
    3535          @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
    3742          @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
    5445        def parent=(parent)
    5546          @parent = nil
    5647        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
    7873        attr_reader :details
    7974
    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
    92132      end
    93133
    94134      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
    108151        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
    111154              return true
    112155            end
    113           }
    114           false
    115         end
     156          end
     157          return false
     158        end
     159
    116160        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.'
    128163          end
    129164          @languages = languages
    130165        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
    140186        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
    183265
    184266      end
Note: See TracChangeset for help on using the changeset viewer.