openehr 1.2.4 → 1.2.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 62bd04780c1cc6e2aa0754554f6b53c8878f0000
4
- data.tar.gz: 37716a093625c4e4a2ebfd50469932879e46f945
3
+ metadata.gz: 25bb1088a748632a3c49a91baa2d7d7851e14dbe
4
+ data.tar.gz: a5737fec858751805a134c214c36d6cc3894f1fc
5
5
  SHA512:
6
- metadata.gz: d9e41762ce811781c8f78e528d414fd9d1fb5d0ea71690dbb5d29fa8c5e7209387d4a090b7f4484e4954b79fbf8b332cadb27856581d66da926f5635017ec681
7
- data.tar.gz: 9a1de874df39fec7a6e8ec03399bbce810b0e81d239ca181f84df40ec863a9a21c8845c6728c0efae1ed88170f001f0eddc969b7b4837fef26cc950bfeafb09e
6
+ metadata.gz: 99b27154f9c3a897e44c5c8583ef11975d6e1ce9baa2ed056282c4c63fd6357cd433e048dce3e77dd42c66e18cc2f64ad40054ce7b6359be8049494f16e79f6a
7
+ data.tar.gz: 4b18acd91c8b25d047d63dc127e5b5039846857be4b5be0f8df5f71cb4ae7914e51aeec8c68f276e6b923457f0fdcaabaafdaddb3815b36fdd077a0d4e92c70f
@@ -187,8 +187,23 @@ module OpenEHR
187
187
  def any_allowed?
188
188
  return item.nil?
189
189
  end
190
- end
191
190
 
191
+ %w(assumed_value assumed_value= has_assumed_value? default_value
192
+ any_allowed?, valid_value?).each do |m|
193
+ define_method(m) do |*args|
194
+ self.item.send(m, *args) if !self.item.nil?
195
+ end
196
+ end
197
+
198
+ def method_missing(meth, *args)
199
+ if !self.item.nil? && self.item.respond_to?(meth)
200
+ self.item.send(meth, *args)
201
+ else
202
+ super
203
+ end
204
+ end
205
+ end
206
+
192
207
  class CComplexObject < CDefinedObject
193
208
  attr_accessor :attributes
194
209
 
@@ -14,6 +14,10 @@ module OpenEHR
14
14
  self.code_list = args[:code_list]
15
15
  self.assumed_value = args[:assumed_value]
16
16
  end
17
+
18
+ def any_allowed?
19
+ @terminology_id.nil? && @code_list.nil?
20
+ end
17
21
  end
18
22
  end # of Text
19
23
  end # of Data_Types
@@ -458,7 +458,11 @@ module OpenEHR
458
458
 
459
459
  module ISO8601DateTimeModule
460
460
  include ISO8601DateModule, ISO8601TimeModule
461
-
461
+
462
+ def hour_unknown?
463
+ @hour.nil?
464
+ end
465
+
462
466
  def as_string
463
467
  if (!@year.nil? and !@month.nil? and !@day.nil?)
464
468
  s = Date.new(@year, @month, @day).to_s
@@ -260,7 +260,7 @@ module OpenEHR
260
260
  def value(node = ArchetypeNode.new)
261
261
  args = head.value
262
262
  args[:occurrences] ||= OpenEHR::AssumedLibraryTypes::Interval.new(
263
- :lower => 1, :upper => 1)
263
+ :lower => 1, :upper => 1, :lower_included => true, :upper_included => true)
264
264
  node.id = args[:node_id]
265
265
  if node.root? or node.id.nil?
266
266
  args[:path] = node.path
@@ -275,7 +275,7 @@ module OpenEHR
275
275
  def value(node = ArchetypeNode.new)
276
276
  args = c_complex_object_head.value
277
277
  args[:occurrences] ||= OpenEHR::AssumedLibraryTypes::Interval.new(
278
- :lower => 1, :upper => 1)
278
+ :lower => 1, :upper => 1, :lower_included => true, :upper_included => true)
279
279
  node.id = args[:node_id]
280
280
  args[:path] = node.path
281
281
  OpenEHR::AM::Archetype::ConstraintModel::CComplexObject.new(args)
@@ -337,14 +337,14 @@ module OpenEHR
337
337
  args[:path] = node.path
338
338
  args[:rm_type_name] = 'DV_ORDINAL'
339
339
  args[:occurrences] ||= OpenEHR::AssumedLibraryTypes::Interval.new(
340
- :upper => 1, :lower => 1)
340
+ :upper => 1, :lower => 1, :lower_included => true, :upper_included => true)
341
341
  OpenEHR::AM::OpenEHRProfile::DataTypes::Quantity::CDvOrdinal.new(
342
342
  args)
343
343
  end
344
344
  }
345
345
  / c_primitive_object '' {
346
346
  def value(node)
347
- c_primitive_object.value
347
+ c_primitive_object.value(node)
348
348
  end
349
349
  }
350
350
  / c_complex_object '' {
@@ -395,7 +395,7 @@ module OpenEHR
395
395
  OpenEHR::AM::Archetype::ConstraintModel::ArchetypeInternalRef.new(
396
396
  :rm_type_name => type_identifier.value,
397
397
  :occurrences => OpenEHR::AssumedLibraryTypes::Interval.new(
398
- :lower => 1, :upper => 1),
398
+ :lower => 1, :upper => 1, :lower_included => true, :upper_included => true),
399
399
  :path => node.path,
400
400
  :target_path => object_path.value)
401
401
  end
@@ -439,7 +439,7 @@ module OpenEHR
439
439
  def value(node)
440
440
  args = c_archetype_slot_id.value(node)
441
441
  args[:occurrences] = OpenEHR::AssumedLibraryTypes::Interval.new(
442
- :upper => 1, :lower => 1)
442
+ :upper => 1, :lower => 1, :lower_included => true, :upper_included => true)
443
443
  args
444
444
  end
445
445
  }
@@ -463,8 +463,16 @@ module OpenEHR
463
463
 
464
464
  rule c_primitive_object
465
465
  c_primitive '' {
466
- def value
467
- c_primitive.value
466
+ def value(node)
467
+ OpenEHR::AM::Archetype::ConstraintModel::CPrimitiveObject.new(
468
+ {:item => c_primitive.value,
469
+ :rm_type_name => c_primitive.value.type,
470
+ :occurrences => OpenEHR::AssumedLibraryTypes::Interval.new(
471
+ :upper => 1,
472
+ :lower => 1,
473
+ :lower_included => true,
474
+ :upper_included => true),
475
+ :path => node.path})
468
476
  end
469
477
  }
470
478
  end
@@ -517,8 +525,8 @@ module OpenEHR
517
525
  def value(node)
518
526
  OpenEHR::AM::Archetype::ConstraintModel::CAttribute.new(
519
527
  :path => node.path, :rm_attribute_name => 'ANY',
520
- :exsitence => OpenEHR::AssumedLibraryTypes::Interval.new(
521
- :lower => 1, :upper => 1))
528
+ :existence => OpenEHR::AssumedLibraryTypes::Interval.new(
529
+ :lower => 1, :upper => 1, :lower_included => true, :upper_included => true))
522
530
  end
523
531
  }
524
532
  end
@@ -661,12 +669,20 @@ module OpenEHR
661
669
  rule existence_spec
662
670
  lo:V_INTEGER SYM_ELLIPSIS up:V_INTEGER {
663
671
  def value
664
- OpenEHR::AssumedLibraryTypes::Interval.new(:lower => lo.value, :upper => up.value)
672
+ OpenEHR::AssumedLibraryTypes::Interval.new(
673
+ :lower => lo.value,
674
+ :upper => up.value,
675
+ :lower_included => true,
676
+ :upper_included => true)
665
677
  end
666
678
  }
667
679
  / V_INTEGER '' {
668
680
  def value
669
- OpenEHR::AssumedLibraryTypes::Interval.new(:lower => V_INTEGER.value, :upper => V_INTEGER.value)
681
+ OpenEHR::AssumedLibraryTypes::Interval.new(
682
+ :lower => V_INTEGER.value,
683
+ :upper => V_INTEGER.value,
684
+ :lower_included => true,
685
+ :upper_included => true)
670
686
  end
671
687
  }
672
688
  end
@@ -754,11 +770,14 @@ module OpenEHR
754
770
  def value
755
771
  if ed.value == '*'
756
772
  OpenEHR::AssumedLibraryTypes::Interval.new(
757
- :lower => st.value)
773
+ :lower => st.value,
774
+ :lower_included => true)
758
775
  else
759
776
  OpenEHR::AssumedLibraryTypes::Interval.new(
760
777
  :lower => st.value,
761
- :upper => ed.value)
778
+ :upper => ed.value,
779
+ :lower_included => true,
780
+ :upper_included => true)
762
781
  end
763
782
  end
764
783
  }
@@ -766,7 +785,9 @@ module OpenEHR
766
785
  def value
767
786
  OpenEHR::AssumedLibraryTypes::Interval.new(
768
787
  :lower => cardinality_limit_value.value,
769
- :upper => cardinality_limit_value.value)
788
+ :upper => cardinality_limit_value.value,
789
+ :lower_included => true,
790
+ :upper_included => true)
770
791
  end
771
792
  }
772
793
  end
@@ -1107,7 +1128,11 @@ module OpenEHR
1107
1128
  OpenEHR::AM::Archetype::ConstraintModel::ConstraintRef.new(
1108
1129
  :path => node.path,
1109
1130
  :rm_type_name => 'ConstraintRef',
1110
- :occurrences => OpenEHR::AssumedLibraryTypes::Interval.new(:upper => 1, :lower => 1),
1131
+ :occurrences => OpenEHR::AssumedLibraryTypes::Interval.new(
1132
+ :upper => 1,
1133
+ :lower => 1,
1134
+ :lower_included => true,
1135
+ :upper_included => true),
1111
1136
  :reference => vltcr.value)
1112
1137
  end
1113
1138
  }
@@ -1160,7 +1185,10 @@ module OpenEHR
1160
1185
  ::OpenEHR::AM::OpenEHRProfile::DataTypes::Text::CCodePhrase.new(
1161
1186
  :rm_type_name => 'CodePhrase',
1162
1187
  :occurrences => OpenEHR::AssumedLibraryTypes::Interval.new(
1163
- :upper => 1, :lower => 1),
1188
+ :upper => 1,
1189
+ :lower => 1,
1190
+ :lower_included => true,
1191
+ :upper_included => true),
1164
1192
  :terminology_id => ti.value, :code_list => code_string_spec.value,
1165
1193
  :assumed_value => code_string.value,
1166
1194
  :path => node.path)
@@ -1171,7 +1199,10 @@ module OpenEHR
1171
1199
  ::OpenEHR::AM::OpenEHRProfile::DataTypes::Text::CCodePhrase.new(
1172
1200
  :rm_type_name => 'CodePhrase',
1173
1201
  :occurrences => OpenEHR::AssumedLibraryTypes::Interval.new(
1174
- :upper => 1, :lower => 1),
1202
+ :upper => 1,
1203
+ :lower => 1,
1204
+ :lower_included => true,
1205
+ :upper_included => true),
1175
1206
  :terminology_id => ti.value, :code_list => code_string_spec.value,
1176
1207
  :path => node.path)
1177
1208
  end
@@ -1181,7 +1212,10 @@ module OpenEHR
1181
1212
  ::OpenEHR::AM::OpenEHRProfile::DataTypes::Text::CCodePhrase.new(
1182
1213
  :rm_type_name => 'CodePhrase',
1183
1214
  :occurrences => OpenEHR::AssumedLibraryTypes::Interval.new(
1184
- :upper => 1, :lower => 1),
1215
+ :upper => 1,
1216
+ :lower => 1,
1217
+ :lower_included => true,
1218
+ :upper_included => true),
1185
1219
  :terminology_id => ti.value, :code_list => [], :path => node.path)
1186
1220
  end
1187
1221
  }
@@ -1357,7 +1391,10 @@ module OpenEHR
1357
1391
  OpenEHR::AM::OpenEHRProfile::DataTypes::Quantity::CQuantityItem.new(
1358
1392
  :path => node.path, :rm_type_name => 'DvQuantity',
1359
1393
  :occurrences => OpenEHR::AssumedLibraryTypes::Interval.new(
1360
- :upper => 1, :lower => 1),
1394
+ :upper => 1,
1395
+ :lower => 1,
1396
+ :lower_included => true,
1397
+ :upper_included => true),
1361
1398
  :units => units.value,
1362
1399
  :magnitude => magnitude, :precision => precision)
1363
1400
  end
@@ -2203,7 +2240,7 @@ module OpenEHR
2203
2240
  SYM_INTERVAL_DELIM SYM_GT lo:integer_value SYM_ELLIPSIS SYM_LT up:integer_value SYM_INTERVAL_DELIM {
2204
2241
  def value
2205
2242
  OpenEHR::AssumedLibraryTypes::Interval.new(:lower => lo.value,
2206
- :upper => up.value,
2243
+ :upper => up.value,
2207
2244
  :lower_included => false,
2208
2245
  :upper_included => false)
2209
2246
  end
@@ -10,11 +10,12 @@ include OpenEHR::RM::DataTypes::Text
10
10
  module OpenEHR
11
11
  module Parser
12
12
  class ADLParser < Base
13
+ Treetop.load(File.dirname(__FILE__)+'/adl_grammar.tt')
14
+
13
15
  def initialize(filename)
14
16
  super(filename)
15
17
  file = File.open(filename, 'r:bom|utf-8')
16
18
  data = file.read
17
- Treetop.load(File.dirname(__FILE__)+'/adl_grammar.tt')
18
19
  ap = ADLGrammarParser.new
19
20
  @result = ap.parse(data)
20
21
  file.close
@@ -1,3 +1,3 @@
1
1
  module OpenEHR
2
- VERSION = "1.2.4"
2
+ VERSION = "1.2.5"
3
3
  end
@@ -8,7 +8,8 @@ describe ADLParser do
8
8
  archetype = adl14_archetype('adl-test-entry.structure_test1.test.adl')
9
9
  @definition = archetype.definition
10
10
  @occurrences = OpenEHR::AssumedLibraryTypes::Interval.new(
11
- :upper => 1, :lower => 1)
11
+ :upper => 1, :lower => 1,
12
+ :lower_included => true, :upper_included => true)
12
13
  end
13
14
 
14
15
  context 'root definition object' do
@@ -148,13 +149,15 @@ describe ADLParser do
148
149
 
149
150
  it 'existence are 0..1' do
150
151
  existence = OpenEHR::AssumedLibraryTypes::Interval.new(
151
- :lower => 0, :upper => 1)
152
+ :lower => 0, :upper => 1,
153
+ :lower_included => true, :upper_included => true)
152
154
  @attr.existence.should == existence
153
155
  end
154
156
 
155
157
  it 'cardinality interval is 0..8' do
156
158
  interval = OpenEHR::AssumedLibraryTypes::Interval.new(
157
- :lower => 0, :upper => 8)
159
+ :lower => 0, :upper => 8,
160
+ :lower_included => true, :upper_included => true)
158
161
  @attr.cardinality.interval.should == interval
159
162
  end
160
163
 
@@ -191,7 +194,7 @@ describe ADLParser do
191
194
 
192
195
  it 'occurences is upper unbounded' do
193
196
  occurrences = OpenEHR::AssumedLibraryTypes::Interval.new(
194
- :lower => 0)
197
+ :lower => 0, :lower_included => true)
195
198
  @second.occurrences.should == occurrences
196
199
  end
197
200
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: openehr
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.4
4
+ version: 1.2.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Shinji KOBAYASHI
@@ -12,7 +12,7 @@ authors:
12
12
  autorequire:
13
13
  bindir: bin
14
14
  cert_chain: []
15
- date: 2013-03-21 00:00:00.000000000 Z
15
+ date: 2013-03-23 00:00:00.000000000 Z
16
16
  dependencies:
17
17
  - !ruby/object:Gem::Dependency
18
18
  name: rake