openehr 1.2.4 → 1.2.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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