source: ruby/trunk/lib/models/rm/data_types/time_specification.rb@ 153

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

refs #62, #47, #65

File size: 2.2 KB
Line 
1# This module is related to the ticket #47
2
3module OpenEHR
4 module RM
5 module Data_Types
6 module Time_Specification
7 class DV_Time_Specification < OpenEHR::RM::Data_Types::Basic::Data_Value
8 attr_reader :value
9
10 def initialize(value)
11 self.value=(value)
12 end
13
14 def value=(value)
15 raise ArgumentError, 'value must be not nil' if value.nil?
16 @value = value
17 end
18
19 def calender_alignment
20 raise NotImlementedError, "calender_alignment must be implemented"
21 end
22
23 def event_alignment
24 raise NotImlementedError, "event_alignment must be implemented"
25 end
26
27 def institution_specified
28 raise NotImlementedError, "institution_specified must be implemented"
29 end
30 end
31
32# I have not implemented two classes bellow,
33# because I could not obtain HL7 specification related them.
34
35
36 class DV_General_Time_Specification < DV_Time_Specification
37 attr_reader :value
38 def initialize(value)
39 super(value)
40 end
41 def value=(value)
42 raise ArgumentError, "value is not valied" unless value.formalism.is_equal?('HL7:GTS')
43 @value = value
44 end
45 private
46 def value_valid(value)
47 end
48 end
49
50 class DV_Periodic_Time_Specification < DV_Time_Specification
51 attr_reader :value, :calender_alignment, :event_alingment, :period
52 def initialize(value)
53 value_valid(value)
54 super(value)
55 end
56 def value=(value)
57 unless value.formalism.is_equal('HL7:PIVL') or value.formalism.is_equal('HL7:EIVL')
58 raise ArgumentError, "value is not valid"
59 end
60 if value.formalism('HL7:PIVL')
61 /^\[(\d+)\;?(\d+)?\]\/\((\d+\w+)\)(@(\w+?))?(IST)?$/ =~ value
62 interval1, interval2, difference, allignment = $1, $2, $3, $5
63 end
64 if value
65 end
66 end
67
68 def institution_specified?
69
70 end
71 end
72 end
73 end # of Data_Type
74 end # of RM
75end # of OpenEHR
Note: See TracBrowser for help on using the repository browser.