openehr 2.4.1 → 2.4.3

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
  SHA256:
3
- metadata.gz: 86ae366cb519cde86548c821f97ad6b6a436e6b6f56bef45be7db6686f35dbc4
4
- data.tar.gz: 9f4f54f3b9ec3b6cf64993d9a33a7ab76cc528b9a4237b44483c9feed1c70bd5
3
+ metadata.gz: 40ff9f4331d4dabef29f1178e862387d3aadb7c416268c97f5ac71bd239509a3
4
+ data.tar.gz: fa2d3bc4b12109804ef131f9f498f1115f8a01e45f3482ede38a714d81e00fd1
5
5
  SHA512:
6
- metadata.gz: ad76805a27fae1e62e90a90e73bf721d517ad7e531ead2776326afe08a5d8ff6efa196dd339aaed0dc3e2ebf93e4e4c8413a8ee5c8f01f0cf15f05a30ee1c3d5
7
- data.tar.gz: b72051c293181e20c55718ab42b8f5083fb4c467a4641af8df30e7ea6fbf5ffed16acd615969c8b02fe7f31058078122cd8edbfad57fb85a8203f6b785d01dca
6
+ metadata.gz: a53690dd8004f16b0f2f130f1ec07f59c848878e1f13e1d4835cb0bb2712ca8a61d8005e2f202a58b7e86e899dcb7e861bc4495546bc7436de907ea81fe457c9
7
+ data.tar.gz: 04eab1bf336f86d3f37790d3bb5d4615058c5f3fdb57e4777bb997b1912cfa8e7178031f5320e7b621c60fa6a82de3d3cbd2ec1850a5ae866f837e4a3ec6cfb3
@@ -449,6 +449,12 @@ module OpenEHR
449
449
  OpenEHR::AM::Archetype::ConstraintModel::ArchetypeSlot.new(args)
450
450
  end
451
451
  }
452
+ / c_archetype_slot_head SYM_MATCHES SYM_START_CBLOCK SYM_END_CBLOCK space {
453
+ # empty slot block (neither include nor exclude): any archetype allowed (#51)
454
+ def value(node)
455
+ OpenEHR::AM::Archetype::ConstraintModel::ArchetypeSlot.new(c_archetype_slot_head.value(node))
456
+ end
457
+ }
452
458
  end
453
459
 
454
460
  rule c_archetype_slot_head
@@ -3225,7 +3231,7 @@ module OpenEHR
3225
3231
  end
3226
3232
 
3227
3233
  rule V_ARCHETYPE_ID
3228
- NAMESTR ('-' NAMESTR) 2..2 '.' NAMESTR ('-' NAMESTR)* '.v' [1-9] [0-9]* {
3234
+ NAMESTR ('-' NAMESTR) 2..2 '.' NAMESTR ('-' NAMESTR)* '.v' [0-9]+ {
3229
3235
  def value
3230
3236
  text_value
3231
3237
  end
@@ -37,7 +37,7 @@ module OpenEHR
37
37
  code, details = lang
38
38
  td = OpenEHR::RM::Common::Resource::TranslationDetails.new(
39
39
  :language => details['language'],
40
- :author => details['author'],
40
+ :author => details['author'] || { },
41
41
  :accreditation => details['accreditation'],
42
42
  :other_details => details['other_details'])
43
43
  trans.update Hash[code, td]
@@ -69,6 +69,7 @@ module OpenEHR
69
69
 
70
70
  def value=(value)
71
71
  if /\A([a-zA-Z]\w+)-([a-zA-Z]\w+)-([a-zA-Z]\w+)\.([a-zA-Z]\w+)(-([a-zA-Z]\w+))?\.(v\d+)\z/ =~ value
72
+ @value = value
72
73
  self.rm_originator = $1
73
74
  self.rm_name = $2
74
75
  self.rm_entity = $3
@@ -171,6 +172,7 @@ module OpenEHR
171
172
 
172
173
  def value=(value)
173
174
  raise ArgumentError, "value not valid" if value.nil? or value.empty?
175
+ @value = value
174
176
  if /(.*)\((.*)\)/ =~ value
175
177
  self.name = $1
176
178
  self.version_id = $2
@@ -24,9 +24,19 @@ module OpenEHR
24
24
  :@hour, :@minute, :@second, :@fractional_second, # DvTime, DvDateTime
25
25
  :@timezone, # DvTime (String), DvDateTime (Timezone)
26
26
  :@root, :@extension, # UIDBasedID, HierObjectID, ObjectVersionID
27
- :@oid, :@creating_system_id, :@version_tree_id # ObjectVersionID
27
+ :@oid, :@creating_system_id, :@version_tree_id, # ObjectVersionID
28
+ :@rm_originator, :@rm_name, :@rm_entity, # ArchetypeID
29
+ :@concept_name, :@specialisation, :@version_id, # ArchetypeID, TerminologyID
30
+ :@name # TerminologyID
28
31
  ].freeze
29
32
 
33
+ ARCHETYPE_ID_IVARS = [
34
+ :@rm_originator, :@rm_name, :@rm_entity,
35
+ :@concept_name, :@specialisation, :@version_id
36
+ ].freeze
37
+ TERMINOLOGY_ID_IVARS = [:@name, :@version_id].freeze
38
+ IDENTIFIER_IVARS = (ARCHETYPE_ID_IVARS + TERMINOLOGY_ID_IVARS).uniq.freeze
39
+
30
40
  def initialize(rm_instance)
31
41
  @rm_instance = rm_instance
32
42
  end
@@ -55,7 +65,7 @@ module OpenEHR
55
65
 
56
66
  seen << value
57
67
  hash = {'_type' => OpenEHR::RM.type_name_of(value)}
58
- (value.instance_variables - EXCLUDED_IVARS).each do |ivar|
68
+ (value.instance_variables - excluded_ivars(value)).each do |ivar|
59
69
  field = value.instance_variable_get(ivar)
60
70
  next if field.nil?
61
71
 
@@ -64,6 +74,18 @@ module OpenEHR
64
74
  seen.delete(value)
65
75
  hash
66
76
  end
77
+
78
+ def excluded_ivars(value)
79
+ exclusions = EXCLUDED_IVARS - IDENTIFIER_IVARS
80
+ case value
81
+ when OpenEHR::RM::Support::Identification::ArchetypeID
82
+ exclusions + ARCHETYPE_ID_IVARS
83
+ when OpenEHR::RM::Support::Identification::TerminologyID
84
+ exclusions + TERMINOLOGY_ID_IVARS
85
+ else
86
+ exclusions
87
+ end
88
+ end
67
89
  end
68
90
 
69
91
  # RMJSONSerializer's reflection walker has no RM-specific logic
@@ -1,3 +1,3 @@
1
1
  module OpenEHR
2
- VERSION = "2.4.1"
2
+ VERSION = "2.4.3"
3
3
  end
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: 2.4.1
4
+ version: 2.4.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Shinji KOBAYASHI