open_ehr 0.6.1 → 0.9.0
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.
- data/Gemfile +10 -2
- data/Gemfile.lock +58 -18
- data/Guardfile +2 -1
- data/History.txt +10 -3
- data/Manifest.txt +3 -5
- data/README.rdoc +36 -32
- data/Rakefile +1 -1
- data/VERSION +1 -1
- data/bin/adl_validator.rb +84 -0
- data/lib/open_ehr/am/archetype/constraint_model/primitive.rb +11 -7
- data/lib/open_ehr/am/archetype/constraint_model.rb +4 -16
- data/lib/open_ehr/am/archetype/ontology.rb +37 -6
- data/lib/open_ehr/am/archetype.rb +6 -7
- data/lib/open_ehr/am/open_ehr_profile/data_types/text.rb +5 -2
- data/lib/open_ehr/parser/adl.rb +19 -0
- data/lib/open_ehr/parser/adl_grammar.tt +155 -0
- data/lib/open_ehr/parser/adl_parser.rb +48 -0
- data/lib/open_ehr/parser/cadl_grammar.tt +803 -0
- data/lib/open_ehr/parser/dadl.rb +13 -0
- data/lib/open_ehr/parser/dadl_grammar.tt +358 -0
- data/lib/open_ehr/parser/exception.rb +68 -0
- data/lib/open_ehr/parser/scanner/adl_scanner.rb +819 -0
- data/lib/open_ehr/parser/shared_token_grammar.tt +1200 -0
- data/lib/open_ehr/parser/validator.rb +20 -0
- data/lib/open_ehr/parser.rb +16 -12
- data/lib/open_ehr.rb +1 -0
- data/open_ehr.gemspec +364 -0
- data/spec/lib/open_ehr/am/archetype/archetype_spec.rb +7 -2
- data/spec/lib/open_ehr/am/archetype/constraint_model/c_multiple_attribute_spec.rb +0 -6
- data/spec/lib/open_ehr/am/archetype/constraint_model/c_object_spec.rb +10 -10
- data/spec/lib/open_ehr/am/archetype/constraint_model/c_single_attribute_spec.rb +0 -6
- data/spec/lib/open_ehr/am/archetype/constraint_model/primitive/c_boolean_spec.rb +5 -0
- data/spec/lib/open_ehr/am/archetype/constraint_model/primitive/c_date_time_spec.rb +5 -0
- data/spec/lib/open_ehr/am/archetype/constraint_model/primitive/c_duration_spec.rb +5 -0
- data/spec/lib/open_ehr/am/archetype/constraint_model/primitive/c_integer_spec.rb +5 -0
- data/spec/lib/open_ehr/am/archetype/constraint_model/primitive/c_primitive_spec.rb +8 -6
- data/spec/lib/open_ehr/am/archetype/constraint_model/primitive/c_real_spec.rb +7 -2
- data/spec/lib/open_ehr/am/archetype/constraint_model/primitive/c_string_spec.rb +5 -0
- data/spec/lib/open_ehr/am/archetype/constraint_model/primitive/c_time_spec.rb +5 -0
- data/spec/lib/open_ehr/am/archetype/ontology/archetype_ontology_spec.rb +27 -7
- data/spec/lib/open_ehr/am/archetype/ontology/archetype_term_spec.rb +3 -3
- data/spec/lib/open_ehr/parser/adl/adl-test-ENTRY.assumed_types.v1.adl +88 -0
- data/spec/lib/open_ehr/parser/adl/adl-test-ENTRY.basic_types.v1.adl +143 -0
- data/spec/lib/open_ehr/parser/adl/adl-test-ENTRY.basic_types_fail.v1.adl +50 -0
- data/spec/lib/open_ehr/parser/adl/adl-test-ENTRY.most_minimal.v1.adl +27 -0
- data/spec/lib/open_ehr/parser/adl/adl-test-ENTRY.structure_test1.v1.adl +46 -0
- data/spec/lib/open_ehr/parser/adl/openEHR-EHR-ACTION.imaging.v1.adl +275 -0
- data/spec/lib/open_ehr/parser/adl/openEHR-EHR-ACTION.referral.v1.adl +351 -0
- data/spec/lib/open_ehr/parser/adl/openEHR-EHR-CLUSTER.auscultation-chest.v1.adl +765 -0
- data/spec/lib/open_ehr/parser/adl/openEHR-EHR-CLUSTER.auscultation.v1.adl +217 -0
- data/spec/lib/open_ehr/parser/adl/openEHR-EHR-CLUSTER.dimensions-circumference.v1.adl +134 -0
- data/spec/lib/open_ehr/parser/adl/openEHR-EHR-CLUSTER.dimensions.v1.adl +241 -0
- data/spec/lib/open_ehr/parser/adl/openEHR-EHR-CLUSTER.exam-abdomen.v1.adl +321 -0
- data/spec/lib/open_ehr/parser/adl/openEHR-EHR-CLUSTER.exam-chest.v1.adl +379 -0
- data/spec/lib/open_ehr/parser/adl/openEHR-EHR-CLUSTER.exam-fetus.v1.adl +577 -0
- data/spec/lib/open_ehr/parser/adl/openEHR-EHR-CLUSTER.exam-generic-joint.v1.adl +146 -0
- data/spec/lib/open_ehr/parser/adl/openEHR-EHR-CLUSTER.exam-generic-lymphnode.v1.adl +176 -0
- data/spec/lib/open_ehr/parser/adl/openEHR-EHR-CLUSTER.exam-generic-mass.v1.adl +221 -0
- data/spec/lib/open_ehr/parser/adl/openEHR-EHR-CLUSTER.exam-generic.v1.adl +139 -0
- data/spec/lib/open_ehr/parser/adl/openEHR-EHR-CLUSTER.exam-nervous_system.v1.adl +116 -0
- data/spec/lib/open_ehr/parser/adl/openEHR-EHR-CLUSTER.exam-uterine_cervix.v1.adl +420 -0
- data/spec/lib/open_ehr/parser/adl/openEHR-EHR-CLUSTER.exam-uterus.v1.adl +293 -0
- data/spec/lib/open_ehr/parser/adl/openEHR-EHR-COMPOSITION.discharge.v1draft.adl +53 -0
- data/spec/lib/open_ehr/parser/adl/openEHR-EHR-COMPOSITION.encounter.v1draft.adl +45 -0
- data/spec/lib/open_ehr/parser/adl/openEHR-EHR-EVALUATION.adverse.v1.adl +411 -0
- data/spec/lib/open_ehr/parser/adl/openEHR-EHR-INSTRUCTION.medication.v1.adl +88 -0
- data/spec/lib/open_ehr/parser/adl/openEHR-EHR-INSTRUCTION.referral.v1.adl +84 -0
- data/spec/lib/open_ehr/parser/adl/openEHR-EHR-ITEM_TREE.Laboratory_request.v1.adl +492 -0
- data/spec/lib/open_ehr/parser/adl/openEHR-EHR-ITEM_TREE.follow_up.v1draft.adl +94 -0
- data/spec/lib/open_ehr/parser/adl/openEHR-EHR-ITEM_TREE.imaging.v1.adl +127 -0
- data/spec/lib/open_ehr/parser/adl/openEHR-EHR-ITEM_TREE.medication-formulation.v1.adl +457 -0
- data/spec/lib/open_ehr/parser/adl/openEHR-EHR-ITEM_TREE.medication.v1.adl +869 -0
- data/spec/lib/open_ehr/parser/adl/openEHR-EHR-ITEM_TREE.referral.v1.adl +494 -0
- data/spec/lib/open_ehr/parser/adl/openEHR-EHR-OBSERVATION.apgar.v1.adl +545 -0
- data/spec/lib/open_ehr/parser/adl/openEHR-EHR-OBSERVATION.blood_pressure.v1.adl +673 -0
- data/spec/lib/open_ehr/parser/adl/openEHR-EHR-OBSERVATION.body_mass_index.v1.adl +166 -0
- data/spec/lib/open_ehr/parser/adl/openEHR-EHR-SECTION.findings.v1.adl +47 -0
- data/spec/lib/open_ehr/parser/adl/openEHR-EHR-SECTION.reason_for_encounter.v1.adl +51 -0
- data/spec/lib/open_ehr/parser/adl/openEHR-EHR-SECTION.summary.v1.adl +52 -0
- data/spec/lib/open_ehr/parser/adl/openEHR-EHR-SECTION.vital_signs.v1.adl +54 -0
- data/spec/lib/open_ehr/parser/adl/openEHR-EHR-cadl_sample.v1.adl +9 -0
- data/spec/lib/open_ehr/parser/adl_parser_spec.rb +210 -0
- data/spec/lib/open_ehr/parser/base_spec.rb +19 -0
- data/spec/spec.opts +2 -1
- data/spec/spec_helper.rb +3 -0
- metadata +166 -52
- data/doc/README_rdoc.html +0 -148
- data/doc/created.rid +0 -2
- data/doc/images/brick.png +0 -0
- data/doc/images/brick_link.png +0 -0
- data/doc/images/bug.png +0 -0
- data/doc/images/bullet_black.png +0 -0
- data/doc/images/bullet_toggle_minus.png +0 -0
- data/doc/images/bullet_toggle_plus.png +0 -0
- data/doc/images/date.png +0 -0
- data/doc/images/find.png +0 -0
- data/doc/images/loadingAnimation.gif +0 -0
- data/doc/images/macFFBgHack.png +0 -0
- data/doc/images/package.png +0 -0
- data/doc/images/page_green.png +0 -0
- data/doc/images/page_white_text.png +0 -0
- data/doc/images/page_white_width.png +0 -0
- data/doc/images/plugin.png +0 -0
- data/doc/images/ruby.png +0 -0
- data/doc/images/tag_green.png +0 -0
- data/doc/images/wrench.png +0 -0
- data/doc/images/wrench_orange.png +0 -0
- data/doc/images/zoom.png +0 -0
- data/doc/index.html +0 -54
- data/doc/js/darkfish.js +0 -116
- data/doc/js/jquery.js +0 -32
- data/doc/js/quicksearch.js +0 -114
- data/doc/js/thickbox-compressed.js +0 -10
- data/doc/rdoc.css +0 -706
- data/lib/#open_ehr.rb# +0 -11
|
@@ -0,0 +1,358 @@
|
|
|
1
|
+
require 'shared_token_grammar'
|
|
2
|
+
require 'dadl'
|
|
3
|
+
|
|
4
|
+
module OpenEHR
|
|
5
|
+
module Parser
|
|
6
|
+
grammar DADLGrammar
|
|
7
|
+
|
|
8
|
+
include SharedToken
|
|
9
|
+
|
|
10
|
+
rule V_DADL_TEXT
|
|
11
|
+
attr_vals space {
|
|
12
|
+
def value
|
|
13
|
+
attr_vals.value
|
|
14
|
+
end
|
|
15
|
+
}
|
|
16
|
+
/ complex_object_block space {
|
|
17
|
+
def value
|
|
18
|
+
complex_object_block.value
|
|
19
|
+
end
|
|
20
|
+
}
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
rule attr_vals
|
|
24
|
+
first:attr_val second:(';'? attr_val)* {
|
|
25
|
+
def value
|
|
26
|
+
val = {first.id.to_sym => first.value}
|
|
27
|
+
second.elements.each do |e|
|
|
28
|
+
val[e.attr_val.id.to_sym] = e.attr_val.value
|
|
29
|
+
end
|
|
30
|
+
val
|
|
31
|
+
end
|
|
32
|
+
}
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
rule attr_val
|
|
36
|
+
attr_id SYM_EQ object_block {
|
|
37
|
+
def id
|
|
38
|
+
attr_id.value
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
def value
|
|
42
|
+
object_block.value
|
|
43
|
+
end
|
|
44
|
+
}
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
rule attr_id
|
|
48
|
+
id:V_ATTRIBUTE_IDENTIFIER white_space {
|
|
49
|
+
def value
|
|
50
|
+
id.value
|
|
51
|
+
end
|
|
52
|
+
}
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
rule object_block
|
|
56
|
+
complex_object_block space {
|
|
57
|
+
def value
|
|
58
|
+
complex_object_block.value
|
|
59
|
+
end
|
|
60
|
+
}
|
|
61
|
+
/ primitive_object_block space {
|
|
62
|
+
def value
|
|
63
|
+
primitive_object_block.value
|
|
64
|
+
end
|
|
65
|
+
}
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
rule complex_object_block
|
|
69
|
+
single_attr_object_block '' {
|
|
70
|
+
def value
|
|
71
|
+
single_attr_object_block.value
|
|
72
|
+
end
|
|
73
|
+
}
|
|
74
|
+
/ multiple_attr_object_block '' {
|
|
75
|
+
def value
|
|
76
|
+
multiple_attr_object_block.value
|
|
77
|
+
end
|
|
78
|
+
}
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
rule multiple_attr_object_block
|
|
82
|
+
type_identifier? untyped_multiple_attr_object_block {
|
|
83
|
+
def value
|
|
84
|
+
untyped_multiple_attr_object_block.value
|
|
85
|
+
end
|
|
86
|
+
}
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
rule untyped_multiple_attr_object_block
|
|
90
|
+
multiple_attr_object_block_head keyed_objects SYM_END_DBLOCK {
|
|
91
|
+
def value
|
|
92
|
+
keyed_objects.value
|
|
93
|
+
end
|
|
94
|
+
}
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
rule multiple_attr_object_block_head
|
|
98
|
+
SYM_START_DBLOCK
|
|
99
|
+
end
|
|
100
|
+
|
|
101
|
+
rule keyed_objects
|
|
102
|
+
keyed_object+ {
|
|
103
|
+
def value
|
|
104
|
+
val = {}
|
|
105
|
+
elements.each do |e|
|
|
106
|
+
val[e.key.to_sym] = e.value
|
|
107
|
+
end
|
|
108
|
+
val
|
|
109
|
+
end
|
|
110
|
+
}
|
|
111
|
+
end
|
|
112
|
+
|
|
113
|
+
rule keyed_object
|
|
114
|
+
object_key SYM_EQ object_block {
|
|
115
|
+
def key
|
|
116
|
+
object_key.value
|
|
117
|
+
end
|
|
118
|
+
|
|
119
|
+
def value
|
|
120
|
+
object_block.value
|
|
121
|
+
end
|
|
122
|
+
}
|
|
123
|
+
end
|
|
124
|
+
|
|
125
|
+
rule object_key
|
|
126
|
+
'[' simple_value ']' white_space {
|
|
127
|
+
def value
|
|
128
|
+
simple_value.value
|
|
129
|
+
end
|
|
130
|
+
}
|
|
131
|
+
end
|
|
132
|
+
|
|
133
|
+
rule single_attr_object_block
|
|
134
|
+
type_identifier? untyped_single_attr_object_block {
|
|
135
|
+
def value
|
|
136
|
+
untyped_single_attr_object_block.value
|
|
137
|
+
end
|
|
138
|
+
}
|
|
139
|
+
end
|
|
140
|
+
|
|
141
|
+
rule untyped_single_attr_object_block
|
|
142
|
+
single_attr_object_complex_head attr_vals SYM_END_DBLOCK {
|
|
143
|
+
def value
|
|
144
|
+
elements[1].value
|
|
145
|
+
end
|
|
146
|
+
}
|
|
147
|
+
/ single_attr_object_complex_head SYM_END_DBLOCK {
|
|
148
|
+
def value
|
|
149
|
+
nil
|
|
150
|
+
end
|
|
151
|
+
}
|
|
152
|
+
end
|
|
153
|
+
|
|
154
|
+
rule single_attr_object_complex_head
|
|
155
|
+
SYM_START_DBLOCK
|
|
156
|
+
end
|
|
157
|
+
|
|
158
|
+
rule primitive_object_block
|
|
159
|
+
type_identifier? untyped_primitive_object_block {
|
|
160
|
+
def value
|
|
161
|
+
untyped_primitive_object_block.value
|
|
162
|
+
end
|
|
163
|
+
}
|
|
164
|
+
end
|
|
165
|
+
|
|
166
|
+
rule untyped_primitive_object_block
|
|
167
|
+
SYM_START_DBLOCK primitive_object_value SYM_END_DBLOCK {
|
|
168
|
+
def value
|
|
169
|
+
primitive_object_value.value
|
|
170
|
+
end
|
|
171
|
+
}
|
|
172
|
+
end
|
|
173
|
+
|
|
174
|
+
rule primitive_object_value
|
|
175
|
+
term_code '' {
|
|
176
|
+
def value
|
|
177
|
+
term_code.value
|
|
178
|
+
end
|
|
179
|
+
}
|
|
180
|
+
/ simple_list_value '' {
|
|
181
|
+
def value
|
|
182
|
+
simple_list_value.value
|
|
183
|
+
end
|
|
184
|
+
}
|
|
185
|
+
/ simple_interval_value {
|
|
186
|
+
def value
|
|
187
|
+
simple_interval_value.value
|
|
188
|
+
end
|
|
189
|
+
}
|
|
190
|
+
/ term_code_list_value {
|
|
191
|
+
def value
|
|
192
|
+
term_code_list_value.value
|
|
193
|
+
end
|
|
194
|
+
}
|
|
195
|
+
/ simple_value '' {
|
|
196
|
+
def value
|
|
197
|
+
simple_value.value
|
|
198
|
+
end
|
|
199
|
+
}
|
|
200
|
+
end
|
|
201
|
+
|
|
202
|
+
rule simple_value
|
|
203
|
+
integer_value '' {
|
|
204
|
+
def value
|
|
205
|
+
integer_value.value
|
|
206
|
+
end
|
|
207
|
+
}
|
|
208
|
+
/ real_value '' {
|
|
209
|
+
def value
|
|
210
|
+
real_value.value
|
|
211
|
+
end
|
|
212
|
+
}
|
|
213
|
+
/ boolean_value '' {
|
|
214
|
+
def value
|
|
215
|
+
boolean_value.value
|
|
216
|
+
end
|
|
217
|
+
}
|
|
218
|
+
/ character_value '' {
|
|
219
|
+
def value
|
|
220
|
+
character_value.value
|
|
221
|
+
end
|
|
222
|
+
}
|
|
223
|
+
/ date_value '' {
|
|
224
|
+
def value
|
|
225
|
+
date_value.value
|
|
226
|
+
end
|
|
227
|
+
}
|
|
228
|
+
/ time_value '' {
|
|
229
|
+
def value
|
|
230
|
+
time_value.value
|
|
231
|
+
end
|
|
232
|
+
}
|
|
233
|
+
/ date_time_value '' {
|
|
234
|
+
def value
|
|
235
|
+
date_time_value.value
|
|
236
|
+
end
|
|
237
|
+
}
|
|
238
|
+
/ duration_value '' {
|
|
239
|
+
def value
|
|
240
|
+
duration_value.value
|
|
241
|
+
end
|
|
242
|
+
}
|
|
243
|
+
/ uri_value '' {
|
|
244
|
+
def value
|
|
245
|
+
uri_value.value
|
|
246
|
+
end
|
|
247
|
+
}
|
|
248
|
+
/ string_value '' {
|
|
249
|
+
def value
|
|
250
|
+
string_value.value
|
|
251
|
+
end
|
|
252
|
+
}
|
|
253
|
+
end
|
|
254
|
+
|
|
255
|
+
rule simple_list_value
|
|
256
|
+
integer_list_value '' {
|
|
257
|
+
def value
|
|
258
|
+
integer_list_value.value
|
|
259
|
+
end
|
|
260
|
+
}
|
|
261
|
+
/ real_list_value '' {
|
|
262
|
+
def value
|
|
263
|
+
real_list_value.value
|
|
264
|
+
end
|
|
265
|
+
}
|
|
266
|
+
/ boolean_list_value '' {
|
|
267
|
+
def value
|
|
268
|
+
boolean_list_value.value
|
|
269
|
+
end
|
|
270
|
+
}
|
|
271
|
+
/ character_list_value '' {
|
|
272
|
+
def value
|
|
273
|
+
character_list_value.value
|
|
274
|
+
end
|
|
275
|
+
}
|
|
276
|
+
/ date_list_value '' {
|
|
277
|
+
def value
|
|
278
|
+
date_list_value.value
|
|
279
|
+
end
|
|
280
|
+
}
|
|
281
|
+
/ time_list_value '' {
|
|
282
|
+
def value
|
|
283
|
+
time_list_value.value
|
|
284
|
+
end
|
|
285
|
+
}
|
|
286
|
+
/ date_time_list_value '' {
|
|
287
|
+
def value
|
|
288
|
+
date_time_list_value.value
|
|
289
|
+
end
|
|
290
|
+
}
|
|
291
|
+
/ duration_list_value '' {
|
|
292
|
+
def value
|
|
293
|
+
duration_list_value.value
|
|
294
|
+
end
|
|
295
|
+
}
|
|
296
|
+
/ string_list_value '' {
|
|
297
|
+
def value
|
|
298
|
+
string_list_value.value
|
|
299
|
+
end
|
|
300
|
+
}
|
|
301
|
+
end
|
|
302
|
+
|
|
303
|
+
rule simple_interval_value
|
|
304
|
+
integer_interval_value '' {
|
|
305
|
+
def value
|
|
306
|
+
integer_interval_value.value
|
|
307
|
+
end
|
|
308
|
+
}
|
|
309
|
+
/ real_interval_value '' {
|
|
310
|
+
def value
|
|
311
|
+
real_interval_value.value
|
|
312
|
+
end
|
|
313
|
+
}
|
|
314
|
+
/ date_interval_value '' {
|
|
315
|
+
def value
|
|
316
|
+
date_interval_value.value
|
|
317
|
+
end
|
|
318
|
+
}
|
|
319
|
+
/ time_interval_value '' {
|
|
320
|
+
def value
|
|
321
|
+
time_interval_value.value
|
|
322
|
+
end
|
|
323
|
+
}
|
|
324
|
+
/ date_time_interval_value '' {
|
|
325
|
+
def value
|
|
326
|
+
date_time_interval_value.value
|
|
327
|
+
end
|
|
328
|
+
}
|
|
329
|
+
/ duration_interval_value {
|
|
330
|
+
def value
|
|
331
|
+
duration_interval_value.value
|
|
332
|
+
end
|
|
333
|
+
}
|
|
334
|
+
end
|
|
335
|
+
|
|
336
|
+
rule term_code
|
|
337
|
+
vtref:V_QUALIFIED_TERM_CODE_REF '' {
|
|
338
|
+
def value
|
|
339
|
+
vtref.value
|
|
340
|
+
end
|
|
341
|
+
}
|
|
342
|
+
end
|
|
343
|
+
|
|
344
|
+
rule term_code_list_value
|
|
345
|
+
term_code (',' term_code)+
|
|
346
|
+
/ term_code ',' SYM_LIST_CONTINUE
|
|
347
|
+
end
|
|
348
|
+
|
|
349
|
+
rule uri_value
|
|
350
|
+
V_URI '' {
|
|
351
|
+
def value
|
|
352
|
+
V_URI.value
|
|
353
|
+
end
|
|
354
|
+
}
|
|
355
|
+
end
|
|
356
|
+
end
|
|
357
|
+
end
|
|
358
|
+
end
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
module OpenEHR
|
|
2
|
+
module Parser
|
|
3
|
+
module Exception
|
|
4
|
+
class Base < RuntimeError
|
|
5
|
+
end
|
|
6
|
+
|
|
7
|
+
module Scanner
|
|
8
|
+
class Base < RuntimeError
|
|
9
|
+
end
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
module Parser
|
|
13
|
+
class Base < RuntimeError
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
class Error < Base
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
#
|
|
22
|
+
#
|
|
23
|
+
# c.f. beale07:_archet_defin_languag,p.100
|
|
24
|
+
module Validation
|
|
25
|
+
class Base < RuntimeError
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
class VARID < Base
|
|
29
|
+
MESSAGE = "The archetype must have an identifier value for the archetype_id section. The identifier must conform to the published openEHR specification for archetype identifiers."
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
class VARCN < Base
|
|
33
|
+
MESSAGE = "The archetype must have an archetype term value in concept section. The term must exist in the archetype ontology."
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
class VARDF < Base
|
|
37
|
+
MESSAGE = "The archetype must have a definition section, expressed as a cADL syntax."
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
class VARON < Base
|
|
41
|
+
MESSAGE = "The archetype must have a ontology section, expressed as a dADL syntax."
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
class VARDT < Base
|
|
45
|
+
MESSAGE = "The topmost typename mentioned in the archetype definition section must match the type mentioned in the type-name slot of the first segment of the archetype id."
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
class VATDF < Base
|
|
49
|
+
MESSAGE = "Each archetype term used as a node identifier the archetype definition must be defined in the term_definitions part of the ontology."
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
class VACDF < Base
|
|
53
|
+
MESSAGE = "Each constraint code used in the archetype definition must be defined in the constraint_definition part of the ontology."
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
class VDFAI < Base
|
|
57
|
+
MESSAGE = "Any archetype identifier mentioned in an archetype slot in the definition section must conform to the published openEHR specification for archetype identifiers."
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
class VDFPT < Base
|
|
61
|
+
MESSAGE = "Any path mentioned in the definition section must be valid syntactically, and a valid path with respect to the hierarchical structure of the definition section."
|
|
62
|
+
end
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
end
|
|
66
|
+
end
|
|
67
|
+
end
|
|
68
|
+
|