source: ruby/trunk/lib/open_ehr/rm/data_types/basic.rb@ 297

Last change on this file since 297 was 297, checked in by KOBAYASHI, Shinji, 15 years ago

hand merge

File size: 2.7 KB
RevLine 
[89]1# This module is implemented from this UML:
2# http://www.openehr.org/uml/release-1.0.1/Browsable/_9_0_76d0249_1109067591791_562382_3151Report.html
3# Ticket refs #52
[297]4module OpenEHR
[4]5 module RM
[167]6 module DataTypes
[4]7 module Basic
[167]8 module CanonicalFragment
[4]9 end
10
[167]11 class DataValue
[297]12 include OpenEHR::RM::Support::Definition::BasicDefinition
13 attr_accessor :value
14 alias :v :value
15
16 def initialize(args = {})
17 self.value = args[:value]
18 end
19
20 def ==(other)
21 return self.value == other.value
22 end
[4]23 end
24
[167]25 class DvBoolean < DataValue
[297]26 def initialize(args)
27 super(args)
[106]28 end
[297]29
[106]30 def value=(value)
31 raise ArgumentError, "value must not be nil" if value.nil?
[109]32 if value == true or value =~ /TRUE/i
[4]33 @value = true
34 else
35 @value = false
36 end
37 end
[297]38
[4]39 def value?
40 @value == true
41 end
[167]42 end # end of DvBoolean
[4]43
[167]44 class DvState < DataValue
[297]45 attr_reader :is_terminal
[89]46
[297]47 def initialize(args)
48 super(args)
49 self.is_terminal = args[:is_terminal]
[4]50 end
[297]51
[89]52 def value=(v)
53 raise ArgumentError, "value should not be nil" if v.nil?
54 @value = v
55 end
[297]56
[4]57 def is_terminal?
[89]58 @is_terminal
[4]59 end
[297]60
[89]61 def is_terminal=(s)
62 raise ArgumentError, "terminal should not be nil" if s.nil?
63 @is_terminal = s
64 end
[167]65 end # end of DvState
[4]66
[297]67 class DvIdentifier < DataValue
68 attr_reader :issuer, :assigner, :id, :type
69
70 def initialize(args = {})
71 self.issuer = args[:issuer]
72 self.assigner = args[:assigner]
73 self.id = args[:id]
74 self.type = args[:type]
75 end
76
77 def issuer=(issuer)
78 if issuer.nil? or issuer.empty?
79 raise ArgumentError, 'issuer is mandatory'
[4]80 end
81 @issuer = issuer
[297]82 end
83
84 def assigner=(assigner)
85 if assigner.nil? or assigner.empty?
86 raise ArgumentError, 'assigner is mandatory'
87 end
[4]88 @assigner = assigner
[297]89 end
90
91 def id=(id)
92 if id.nil? or id.empty?
93 raise ArgumentError, 'id is manadtory'
94 end
[4]95 @id = id
[297]96 end
97
98 def type=(type)
99 if type.nil? or type.empty?
100 raise ArgumentError, 'type is mandatory'
101 end
[4]102 @type = type
103 end
[167]104 end #end of DvIdentifier
[4]105 end # end of Basic
[167]106 end # end of DataTypes
[4]107 end # end of RM
108end # end of OpenEHR
Note: See TracBrowser for help on using the repository browser.