openehr 2.4.1 → 2.4.2

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: 836651a22b98dce0fc91c853b66dbeff914d71edf989c3423cf30f8280f95a8a
4
+ data.tar.gz: 5ac2010eb5569ce720d6117822e82dc8edff381cf0d2dd0a61f7dfcb86b92a61
5
5
  SHA512:
6
- metadata.gz: ad76805a27fae1e62e90a90e73bf721d517ad7e531ead2776326afe08a5d8ff6efa196dd339aaed0dc3e2ebf93e4e4c8413a8ee5c8f01f0cf15f05a30ee1c3d5
7
- data.tar.gz: b72051c293181e20c55718ab42b8f5083fb4c467a4641af8df30e7ea6fbf5ffed16acd615969c8b02fe7f31058078122cd8edbfad57fb85a8203f6b785d01dca
6
+ metadata.gz: 371bbfaef6c80ba39391305194d8fa6d056a2e416876b9cb4f190f51c984084d3653972fe4a53abaedac0bff4b13d83ca3c648facb264fc91a956c10bd9a4aab
7
+ data.tar.gz: 39be96359d230f4f007400c50a7f775a7e113b1e8a072a647858729de8fd2969acb5f61acce3642cbead966b255d3ac7c43381e38af62d8aea1ececf7dd6c154
@@ -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.2"
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.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Shinji KOBAYASHI