openehr 2.3.0 → 2.3.1
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:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 9d2c2f002014051bc668449dbd7a7c79c2a75d4664d702670e80a9307b43ffb4
|
|
4
|
+
data.tar.gz: 374eccbd5be4cb9b76de4563a4648e5e2f346828a1abbe3988c6280de4278ecb
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 7f5d3125c74f02accf2a6149ddfd7cfb5d79040184b1668de32a5850bf35a1464c2d448d140e865aa9e132adf3d8c93aca0d857a10c2ce96f54af2180a973c17
|
|
7
|
+
data.tar.gz: f0707a9dc5ed67e5ba4277177c1b5b3fe8e053251ca04f06f0abf326038d430a669dd5988de8793d4486dcae087f44d11f139c23b89df2f9409ee6195c9738d4
|
|
@@ -42,6 +42,27 @@ module OpenEHR
|
|
|
42
42
|
end
|
|
43
43
|
end
|
|
44
44
|
end
|
|
45
|
+
|
|
46
|
+
# C_CODE_REFERENCE is defined by Template.xsd (Template OM) as a
|
|
47
|
+
# C_CODE_PHRASE extension carrying a referenceSetUri. nil is accepted
|
|
48
|
+
# for tolerant parsing of real artifacts. valid_value? is inherited:
|
|
49
|
+
# without a terminology service, this class cannot expand the URI's
|
|
50
|
+
# reference set and must retain CCodePhrase's permissive behavior.
|
|
51
|
+
class CCodeReference < CCodePhrase
|
|
52
|
+
attr_reader :reference_set_uri
|
|
53
|
+
|
|
54
|
+
def initialize(args = { })
|
|
55
|
+
super
|
|
56
|
+
self.reference_set_uri = args[:reference_set_uri]
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
def reference_set_uri=(reference_set_uri)
|
|
60
|
+
if !reference_set_uri.nil? && reference_set_uri.empty?
|
|
61
|
+
raise ArgumentError, 'invalid reference_set_uri'
|
|
62
|
+
end
|
|
63
|
+
@reference_set_uri = reference_set_uri
|
|
64
|
+
end
|
|
65
|
+
end
|
|
45
66
|
end # of Text
|
|
46
67
|
end # of Data_Types
|
|
47
68
|
end # of OpenEHR Profile
|
|
@@ -65,7 +65,18 @@ module OpenEHR
|
|
|
65
65
|
child_node = Node.new(node)
|
|
66
66
|
child_node.path = node.path
|
|
67
67
|
child_node.id = node.id
|
|
68
|
-
|
|
68
|
+
type_name = child.attributes['type'].text
|
|
69
|
+
handler = type_name.downcase
|
|
70
|
+
if respond_to?(handler, true)
|
|
71
|
+
send handler, child, child_node
|
|
72
|
+
else
|
|
73
|
+
# children is open to vendor/newer-model constraint extensions;
|
|
74
|
+
# the other xsi:type dispatch sites are schema-closed. Preserve
|
|
75
|
+
# the C_OBJECT core here, while warning that type-specific
|
|
76
|
+
# constraints are dropped and validation becomes more permissive.
|
|
77
|
+
warn "openehr parser: unknown constraint type \"#{type_name}\" at #{child_node.path}; treating as C_COMPLEX_OBJECT (type-specific constraints dropped)"
|
|
78
|
+
c_complex_object(child, child_node)
|
|
79
|
+
end
|
|
69
80
|
end
|
|
70
81
|
end
|
|
71
82
|
|
|
@@ -11,6 +11,20 @@ module OpenEHR
|
|
|
11
11
|
private
|
|
12
12
|
|
|
13
13
|
def c_code_phrase(attr_xml, node)
|
|
14
|
+
OpenEHR::AM::OpenEHRProfile::DataTypes::Text::CCodePhrase.new(
|
|
15
|
+
code_phrase_constraint_args(attr_xml, node)
|
|
16
|
+
)
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def c_code_reference(attr_xml, node)
|
|
20
|
+
args = code_phrase_constraint_args(attr_xml, node)
|
|
21
|
+
args[:code_list] = nil if args[:code_list] && args[:code_list].empty?
|
|
22
|
+
uri = attr_xml.at('referenceSetUri')&.text&.strip
|
|
23
|
+
args[:reference_set_uri] = uri unless uri.nil? || uri.empty?
|
|
24
|
+
OpenEHR::AM::OpenEHRProfile::DataTypes::Text::CCodeReference.new(args)
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def code_phrase_constraint_args(attr_xml, node)
|
|
14
28
|
terminology_id_node = attr_xml.at('terminology_id/value')
|
|
15
29
|
terminology_id = terminology_id_node ? OpenEHR::RM::Support::Identification::TerminologyID.new(value: terminology_id_node.text.strip) : nil
|
|
16
30
|
|
|
@@ -21,13 +35,13 @@ module OpenEHR
|
|
|
21
35
|
occurrences_node = attr_xml.at('occurrences')
|
|
22
36
|
occurrences_obj = occurrences_node ? occurrences(occurrences_node) : nil
|
|
23
37
|
|
|
24
|
-
|
|
38
|
+
{
|
|
25
39
|
terminology_id: terminology_id,
|
|
26
40
|
code_list: code_list,
|
|
27
41
|
path: node.path,
|
|
28
42
|
occurrences: occurrences_obj,
|
|
29
43
|
rm_type_name: 'CODE_PHRASE'
|
|
30
|
-
|
|
44
|
+
}
|
|
31
45
|
end
|
|
32
46
|
|
|
33
47
|
# The <property> element is optional in real templates; return nil rather
|
data/lib/openehr/version.rb
CHANGED