source: ruby/branches/0.5/lib/open_ehr/rm/data_structures/history.rb@ 343

Last change on this file since 343 was 343, checked in by KOBAYASHI, Shinji, 14 years ago

ref #55
time calculation is difficult

File size: 1.9 KB
Line 
1# rm::data_structures::history
2# history module
3# http://www.openehr.org/uml/release-1.0.1/Browsable/_9_0_76d0249_1109157527311_729550_7234Report.html
4# refs #55
5include OpenEHR::RM::DataStructures
6include OpenEHR::RM::Common::Archetyped
7
8module OpenEHR
9 module RM
10 module DataStructures
11 module History
12 class History < DataStructure
13 attr_reader :origin, :events
14 attr_accessor :duration, :period, :summary
15
16 def initialize(args = { })
17 super(args)
18 self.origin = args[:origin]
19 self.duration = args[:duration]
20 self.period = args[:period]
21 self.events = args[:events]
22 self.summary = args[:summary]
23 end
24
25 def origin=(origin)
26 raise ArgumentError, 'origin is mandatory' if origin.nil?
27 @origin = origin
28 end
29
30 def events=(events)
31 if !events.nil? and events.empty?
32 raise ArgumentError, 'events should not be empty'
33 end
34 @events = events
35 end
36
37 def is_periodic?
38 return !@period.nil?
39 end
40 end
41
42 class Event < Locatable
43 attr_reader :data, :time
44 attr_accessor :state
45
46 def initialize(args = { })
47 super(args)
48 self.data = args[:data]
49 self.time = args[:time]
50 self.state = args[:state]
51 end
52
53 def data=(data)
54 raise ArgumentError, 'data is mandatory' if data.nil?
55 @data = data
56 end
57
58 def time=(time)
59 raise ArgumentError, 'time is mandatory' if time.nil?
60 @time = time
61 end
62
63 def offset
64 return @time.diff(@parent.origin)
65 end
66 end
67 end # end of History
68 end # end of DataStructure
69 end # end of RM
70end # end of OpenEHR
Note: See TracBrowser for help on using the repository browser.