open_ehr 0.9.1 → 0.9.2
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile.lock +22 -20
- data/README.rdoc +4 -3
- data/Rakefile +0 -5
- data/VERSION +1 -1
- data/lib/open_ehr/parser/adl_grammar.tt +30 -23
- data/lib/open_ehr/parser/cadl_grammar.tt +85 -59
- data/lib/open_ehr/parser/cadl_node.rb +18 -0
- data/lib/open_ehr/parser/dadl_grammar.tt +1 -1
- data/lib/open_ehr/parser/shared_token_grammar.tt +4 -4
- data/open_ehr.gemspec +104 -55
- data/spec/lib/open_ehr/parser/{adl → adl14}/adl-test-ENTRY.assumed_types.v1.adl +0 -0
- data/spec/lib/open_ehr/parser/{adl → adl14}/adl-test-ENTRY.basic_types.v1.adl +0 -0
- data/spec/lib/open_ehr/parser/{adl → adl14}/adl-test-ENTRY.basic_types_fail.v1.adl +0 -0
- data/spec/lib/open_ehr/parser/{adl → adl14}/adl-test-ENTRY.most_minimal.v1.adl +0 -0
- data/spec/lib/open_ehr/parser/{adl → adl14}/adl-test-ENTRY.structure_test1.v1.adl +0 -0
- data/spec/lib/open_ehr/parser/adl14/adl-test-SOME_TYPE.generic_type_basic.draft.adl +56 -0
- data/spec/lib/open_ehr/parser/adl14/adl-test-SOME_TYPE.generic_type_use_node.draft.adl +63 -0
- data/spec/lib/open_ehr/parser/adl14/adl-test-car.paths.test.adl +80 -0
- data/spec/lib/open_ehr/parser/adl14/adl-test-car.use_node.test.adl +87 -0
- data/spec/lib/open_ehr/parser/adl14/adl-test-composition.dv_coded_text.test.adl +29 -0
- data/spec/lib/open_ehr/parser/adl14/adl-test-entry.archetype_bindings.test.adl +47 -0
- data/spec/lib/open_ehr/parser/adl14/adl-test-entry.archetype_desc_missing_purpose.test.adl +45 -0
- data/spec/lib/open_ehr/parser/adl14/adl-test-entry.archetype_description.test.adl +61 -0
- data/spec/lib/open_ehr/parser/adl14/adl-test-entry.archetype_description2.test.adl +45 -0
- data/spec/lib/open_ehr/parser/adl14/adl-test-entry.archetype_identification.test.adl +26 -0
- data/spec/lib/open_ehr/parser/adl14/adl-test-entry.archetype_internal_ref.test.adl +36 -0
- data/spec/lib/open_ehr/parser/adl14/adl-test-entry.archetype_internal_ref2.test.adl +36 -0
- data/spec/lib/open_ehr/parser/adl14/adl-test-entry.archetype_language.test.adl +47 -0
- data/spec/lib/open_ehr/parser/adl14/adl-test-entry.archetype_language_no_accreditation.test.adl +38 -0
- data/spec/lib/open_ehr/parser/adl14/adl-test-entry.archetype_language_order_of_translation_details.test.adl +40 -0
- data/spec/lib/open_ehr/parser/adl14/adl-test-entry.archetype_ontology.test.adl +25 -0
- data/spec/lib/open_ehr/parser/adl14/adl-test-entry.archetype_slot.test.adl +40 -0
- data/spec/lib/open_ehr/parser/adl14/adl-test-entry.archetype_slot.test2.adl +37 -0
- data/spec/lib/open_ehr/parser/adl14/adl-test-entry.archetype_uncommonkeys.test.adl +29 -0
- data/spec/lib/open_ehr/parser/adl14/adl-test-entry.basic_types.test.adl +272 -0
- data/spec/lib/open_ehr/parser/adl14/adl-test-entry.c_code_phrase.test.adl +77 -0
- data/spec/lib/open_ehr/parser/adl14/adl-test-entry.c_dv_ordinal.test.adl +66 -0
- data/spec/lib/open_ehr/parser/adl14/adl-test-entry.c_dv_quantity_empty.test.adl +46 -0
- data/spec/lib/open_ehr/parser/adl14/adl-test-entry.c_dv_quantity_full.test.adl +64 -0
- data/spec/lib/open_ehr/parser/adl14/adl-test-entry.c_dv_quantity_full2.test.adl +64 -0
- data/spec/lib/open_ehr/parser/adl14/adl-test-entry.c_dv_quantity_full3.test.adl +64 -0
- data/spec/lib/open_ehr/parser/adl14/adl-test-entry.c_dv_quantity_item_units_only.test.adl +55 -0
- data/spec/lib/open_ehr/parser/adl14/adl-test-entry.c_dv_quantity_list.test.adl +58 -0
- data/spec/lib/open_ehr/parser/adl14/adl-test-entry.c_dv_quantity_property.test.adl +47 -0
- data/spec/lib/open_ehr/parser/adl14/adl-test-entry.c_dv_quantity_reversed.test.adl +59 -0
- data/spec/lib/open_ehr/parser/adl14/adl-test-entry.constraint_binding.test.adl +37 -0
- data/spec/lib/open_ehr/parser/adl14/adl-test-entry.constraint_ref.test.adl +43 -0
- data/spec/lib/open_ehr/parser/adl14/adl-test-entry.datetime.test.adl +183 -0
- data/spec/lib/open_ehr/parser/adl14/adl-test-entry.domain_types.test.adl +97 -0
- data/spec/lib/open_ehr/parser/adl14/adl-test-entry.durations.test.adl +111 -0
- data/spec/lib/open_ehr/parser/adl14/adl-test-entry.empty_other_contributors.test.adl +42 -0
- data/spec/lib/open_ehr/parser/adl14/adl-test-entry.missing_language.test.adl +23 -0
- data/spec/lib/open_ehr/parser/adl14/adl-test-entry.mixed_node_types.draft.adl +61 -0
- data/spec/lib/open_ehr/parser/adl14/adl-test-entry.most_minimal.test.adl +23 -0
- data/spec/lib/open_ehr/parser/adl14/adl-test-entry.multi_language.test.adl +52 -0
- data/spec/lib/open_ehr/parser/adl14/adl-test-entry.special_string.test.adl +88 -0
- data/spec/lib/open_ehr/parser/adl14/adl-test-entry.structure_test1.test.adl +45 -0
- data/spec/lib/open_ehr/parser/adl14/adl-test-entry.structure_test2.test.adl +45 -0
- data/spec/lib/open_ehr/parser/adl14/adl-test-entry.term_binding.test.adl +37 -0
- data/spec/lib/open_ehr/parser/adl14/adl-test-entry.term_binding2.test.adl +32 -0
- data/spec/lib/open_ehr/parser/adl14/adl-test-entry.testtranslations.test.adl +83 -0
- data/spec/lib/open_ehr/parser/adl14/adl-test-entry.translations_author_language.test.adl +34 -0
- data/spec/lib/open_ehr/parser/adl14/adl-test-entry.translations_language_author.test.adl +34 -0
- data/spec/lib/open_ehr/parser/adl14/adl-test-entry.unicode_BOM_support.test.adl +41 -0
- data/spec/lib/open_ehr/parser/adl14/adl-test-entry.unicode_support.test.adl +41 -0
- data/spec/lib/open_ehr/parser/{adl → adl14}/openEHR-EHR-ACTION.imaging.v1.adl +0 -0
- data/spec/lib/open_ehr/parser/{adl → adl14}/openEHR-EHR-ACTION.referral.v1.adl +0 -0
- data/spec/lib/open_ehr/parser/{adl → adl14}/openEHR-EHR-CLUSTER.auscultation-chest.v1.adl +0 -0
- data/spec/lib/open_ehr/parser/adl14/openEHR-EHR-CLUSTER.auscultation.v1.adl +48 -0
- data/spec/lib/open_ehr/parser/{adl → adl14}/openEHR-EHR-CLUSTER.dimensions-circumference.v1.adl +0 -0
- data/spec/lib/open_ehr/parser/{adl → adl14}/openEHR-EHR-CLUSTER.dimensions.v1.adl +0 -0
- data/spec/lib/open_ehr/parser/{adl → adl14}/openEHR-EHR-CLUSTER.exam-abdomen.v1.adl +0 -0
- data/spec/lib/open_ehr/parser/{adl → adl14}/openEHR-EHR-CLUSTER.exam-chest.v1.adl +0 -0
- data/spec/lib/open_ehr/parser/{adl → adl14}/openEHR-EHR-CLUSTER.exam-fetus.v1.adl +0 -0
- data/spec/lib/open_ehr/parser/{adl → adl14}/openEHR-EHR-CLUSTER.exam-generic-joint.v1.adl +0 -0
- data/spec/lib/open_ehr/parser/{adl → adl14}/openEHR-EHR-CLUSTER.exam-generic-lymphnode.v1.adl +0 -0
- data/spec/lib/open_ehr/parser/{adl → adl14}/openEHR-EHR-CLUSTER.exam-generic-mass.v1.adl +0 -0
- data/spec/lib/open_ehr/parser/{adl → adl14}/openEHR-EHR-CLUSTER.exam-generic.v1.adl +0 -0
- data/spec/lib/open_ehr/parser/{adl → adl14}/openEHR-EHR-CLUSTER.exam-nervous_system.v1.adl +0 -0
- data/spec/lib/open_ehr/parser/{adl → adl14}/openEHR-EHR-CLUSTER.exam-uterine_cervix.v1.adl +0 -0
- data/spec/lib/open_ehr/parser/{adl → adl14}/openEHR-EHR-CLUSTER.exam-uterus.v1.adl +0 -0
- data/spec/lib/open_ehr/parser/{adl → adl14}/openEHR-EHR-COMPOSITION.discharge.v1draft.adl +0 -0
- data/spec/lib/open_ehr/parser/{adl → adl14}/openEHR-EHR-COMPOSITION.encounter.v1draft.adl +0 -0
- data/spec/lib/open_ehr/parser/{adl → adl14}/openEHR-EHR-EVALUATION.adverse.v1.adl +0 -0
- data/spec/lib/open_ehr/parser/adl14/openEHR-EHR-EVALUATION.columna_vertebral.v1.adl +85 -0
- data/spec/lib/open_ehr/parser/{adl → adl14}/openEHR-EHR-INSTRUCTION.medication.v1.adl +0 -0
- data/spec/lib/open_ehr/parser/{adl → adl14}/openEHR-EHR-INSTRUCTION.referral.v1.adl +0 -0
- data/spec/lib/open_ehr/parser/{adl → adl14}/openEHR-EHR-ITEM_TREE.Laboratory_request.v1.adl +0 -0
- data/spec/lib/open_ehr/parser/{adl → adl14}/openEHR-EHR-ITEM_TREE.follow_up.v1draft.adl +0 -0
- data/spec/lib/open_ehr/parser/{adl → adl14}/openEHR-EHR-ITEM_TREE.imaging.v1.adl +0 -0
- data/spec/lib/open_ehr/parser/{adl → adl14}/openEHR-EHR-ITEM_TREE.medication-formulation.v1.adl +0 -0
- data/spec/lib/open_ehr/parser/{adl → adl14}/openEHR-EHR-ITEM_TREE.medication.v1.adl +0 -0
- data/spec/lib/open_ehr/parser/{adl → adl14}/openEHR-EHR-ITEM_TREE.referral.v1.adl +0 -0
- data/spec/lib/open_ehr/parser/{adl → adl14}/openEHR-EHR-OBSERVATION.apgar.v1.adl +0 -0
- data/spec/lib/open_ehr/parser/{adl → adl14}/openEHR-EHR-OBSERVATION.blood_pressure.v1.adl +0 -0
- data/spec/lib/open_ehr/parser/{adl → adl14}/openEHR-EHR-OBSERVATION.body_mass_index.v1.adl +0 -0
- data/spec/lib/open_ehr/parser/adl14/openEHR-EHR-OBSERVATION.testassumedvalue.v1.adl +99 -0
- data/spec/lib/open_ehr/parser/{adl → adl14}/openEHR-EHR-SECTION.findings.v1.adl +0 -0
- data/spec/lib/open_ehr/parser/{adl → adl14}/openEHR-EHR-SECTION.reason_for_encounter.v1.adl +0 -0
- data/spec/lib/open_ehr/parser/{adl → adl14}/openEHR-EHR-SECTION.summary.v1.adl +0 -0
- data/spec/lib/open_ehr/parser/{adl → adl14}/openEHR-EHR-SECTION.vital_signs.v1.adl +0 -0
- data/spec/lib/open_ehr/parser/adl_parser_spec.rb +2 -2
- data/spec/lib/open_ehr/parser/adl_path_spec.rb +180 -0
- metadata +132 -83
- data/bin/adl_validator.rb +0 -84
- data/lib/open_ehr/parser/scanner/adl_scanner.rb +0 -819
- data/spec/lib/open_ehr/parser/adl/openEHR-EHR-CLUSTER.auscultation.v1.adl +0 -217
- data/spec/lib/open_ehr/parser/adl/openEHR-EHR-cadl_sample.v1.adl +0 -9
- data/spec/rcov.opts +0 -1
@@ -0,0 +1,48 @@
|
|
1
|
+
archetype (adl_version=1.4)
|
2
|
+
openEHR-EHR-CLUSTER.auscultation.v1
|
3
|
+
|
4
|
+
concept
|
5
|
+
[at0000] -- Auscultation
|
6
|
+
language
|
7
|
+
original_language = <[ISO_639-1::en]>
|
8
|
+
|
9
|
+
definition
|
10
|
+
CLUSTER[at0000] matches { -- Auscultation
|
11
|
+
items cardinality matches {0..*; unordered} matches {
|
12
|
+
CLUSTER[at0002] occurrences matches {0..1} matches { -- Findings
|
13
|
+
items cardinality matches {0..*; unordered} matches {
|
14
|
+
CLUSTER[at0009] occurrences matches {0..1} matches { -- Bowel sounds
|
15
|
+
items cardinality matches {0..*; unordered} matches {
|
16
|
+
ELEMENT[at0074] occurrences matches {0..*} matches { -- Specific Findings
|
17
|
+
value matches {
|
18
|
+
DV_CODED_TEXT matches {
|
19
|
+
defining_code matches {
|
20
|
+
[local::
|
21
|
+
at0078, -- Absent bowel sounds
|
22
|
+
at0079, -- Decreased bowel sounds
|
23
|
+
at0080, -- Increased bowel sounds
|
24
|
+
at0081] -- Tinkling bowel sounds
|
25
|
+
}
|
26
|
+
}
|
27
|
+
}
|
28
|
+
}
|
29
|
+
use_node ELEMENT /items[at0004] -- /items[Clinical Description]
|
30
|
+
}
|
31
|
+
}
|
32
|
+
|
33
|
+
}
|
34
|
+
}
|
35
|
+
}
|
36
|
+
}
|
37
|
+
|
38
|
+
ontology
|
39
|
+
term_definitions = <
|
40
|
+
["en"] = <
|
41
|
+
items = <
|
42
|
+
["at0000"] = <
|
43
|
+
text = <"Auscultation">
|
44
|
+
description = <"Findings on Auscultation">
|
45
|
+
>
|
46
|
+
>
|
47
|
+
>
|
48
|
+
>
|
data/spec/lib/open_ehr/parser/{adl → adl14}/openEHR-EHR-CLUSTER.dimensions-circumference.v1.adl
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
data/spec/lib/open_ehr/parser/{adl → adl14}/openEHR-EHR-CLUSTER.exam-generic-lymphnode.v1.adl
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
@@ -0,0 +1,85 @@
|
|
1
|
+
archetype (adl_version=1.4)
|
2
|
+
openEHR-EHR-EVALUATION.columna_vertebral.v1
|
3
|
+
|
4
|
+
concept
|
5
|
+
[at0000] -- Columna vertebral
|
6
|
+
language
|
7
|
+
original_language = <[ISO_639-1::es]>
|
8
|
+
description
|
9
|
+
original_author = <
|
10
|
+
["name"] = <"">
|
11
|
+
>
|
12
|
+
details = <
|
13
|
+
["es"] = <
|
14
|
+
language = <[ISO_639-1::es]>
|
15
|
+
purpose = <"Evaluacion de columna vertebral">
|
16
|
+
use = <"Evaluacion de columna vertebral">
|
17
|
+
misuse = <"">
|
18
|
+
>
|
19
|
+
>
|
20
|
+
lifecycle_state = <"0">
|
21
|
+
other_contributors = <>
|
22
|
+
other_details = <
|
23
|
+
["references"] = <"">
|
24
|
+
["MD5-CAM-1.0.1"] = <"0CD148BEA5220C93A938A3038D526998">
|
25
|
+
>
|
26
|
+
|
27
|
+
definition
|
28
|
+
EVALUATION[at0000] matches { -- Columna vertebral
|
29
|
+
data matches {
|
30
|
+
ITEM_LIST[at0001] matches { -- Lista
|
31
|
+
items cardinality matches {0..*; unordered} matches {
|
32
|
+
ELEMENT[at0002] occurrences matches {0..1} matches { -- Exploracion clinica cervical anormal
|
33
|
+
value matches {
|
34
|
+
DV_BOOLEAN matches {
|
35
|
+
value matches {True, False; True}
|
36
|
+
}
|
37
|
+
}
|
38
|
+
}
|
39
|
+
ELEMENT[at0003] occurrences matches {0..1} matches { -- Indicacion de collar cervical
|
40
|
+
value matches {
|
41
|
+
DV_CODED_TEXT matches {
|
42
|
+
defining_code matches {
|
43
|
+
[local::
|
44
|
+
at0004, -- Si
|
45
|
+
at0005] -- No
|
46
|
+
}
|
47
|
+
}
|
48
|
+
}
|
49
|
+
}
|
50
|
+
}
|
51
|
+
}
|
52
|
+
}
|
53
|
+
}
|
54
|
+
|
55
|
+
ontology
|
56
|
+
term_definitions = <
|
57
|
+
["es"] = <
|
58
|
+
items = <
|
59
|
+
["at0000"] = <
|
60
|
+
text = <"Columna vertebral">
|
61
|
+
description = <"Columna vertebral">
|
62
|
+
>
|
63
|
+
["at0001"] = <
|
64
|
+
text = <"Lista">
|
65
|
+
description = <"@ internal @">
|
66
|
+
>
|
67
|
+
["at0002"] = <
|
68
|
+
text = <"Exploracion clinica cervical anormal">
|
69
|
+
description = <"Exploracion clinica cervical anormal">
|
70
|
+
>
|
71
|
+
["at0003"] = <
|
72
|
+
text = <"Indicacion de collar cervical">
|
73
|
+
description = <"Indicacion de collar cervical">
|
74
|
+
>
|
75
|
+
["at0004"] = <
|
76
|
+
text = <"Si">
|
77
|
+
description = <"hay indicacion de collar cervical">
|
78
|
+
>
|
79
|
+
["at0005"] = <
|
80
|
+
text = <"No">
|
81
|
+
description = <"no hay indicacion de collar cervical">
|
82
|
+
>
|
83
|
+
>
|
84
|
+
>
|
85
|
+
>
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
data/spec/lib/open_ehr/parser/{adl → adl14}/openEHR-EHR-ITEM_TREE.medication-formulation.v1.adl
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
@@ -0,0 +1,99 @@
|
|
1
|
+
archetype (adl_version=1.4)
|
2
|
+
openEHR-EHR-OBSERVATION.testassumedvalue.v1
|
3
|
+
|
4
|
+
concept
|
5
|
+
[at0000] -- Test assumed value
|
6
|
+
language
|
7
|
+
original_language = <[ISO_639-1::en]>
|
8
|
+
description
|
9
|
+
original_author = <
|
10
|
+
["name"] = <"">
|
11
|
+
>
|
12
|
+
details = <
|
13
|
+
["en"] = <
|
14
|
+
language = <[ISO_639-1::en]>
|
15
|
+
purpose = <"">
|
16
|
+
use = <"">
|
17
|
+
misuse = <"">
|
18
|
+
>
|
19
|
+
>
|
20
|
+
lifecycle_state = <"0">
|
21
|
+
other_contributors = <>
|
22
|
+
other_details = <
|
23
|
+
["references"] = <"">
|
24
|
+
["MD5-CAM-1.0.1"] = <"0B09C5A77713C376B458BDB09F83F018">
|
25
|
+
>
|
26
|
+
|
27
|
+
definition
|
28
|
+
OBSERVATION[at0000] matches { -- Test assumed value
|
29
|
+
data matches {
|
30
|
+
HISTORY[at0001] matches { -- Event Series
|
31
|
+
events cardinality matches {1..*; unordered} matches {
|
32
|
+
EVENT[at0002] occurrences matches {0..1} matches { -- Any event
|
33
|
+
data matches {
|
34
|
+
ITEM_TREE[at0003] matches { -- Tree
|
35
|
+
items cardinality matches {0..*; unordered} matches {
|
36
|
+
ELEMENT[at0004] occurrences matches {0..1} matches { -- New element
|
37
|
+
value matches {
|
38
|
+
DV_BOOLEAN matches {
|
39
|
+
value matches {True, False; True}
|
40
|
+
}
|
41
|
+
}
|
42
|
+
}
|
43
|
+
}
|
44
|
+
}
|
45
|
+
}
|
46
|
+
state matches {
|
47
|
+
ITEM_TREE[at0005] matches { -- Tree
|
48
|
+
items cardinality matches {0..*; unordered} matches {
|
49
|
+
ELEMENT[at0006] occurrences matches {0..1} matches { -- New element
|
50
|
+
value matches {
|
51
|
+
DV_BOOLEAN matches {
|
52
|
+
value matches {True, False; True}
|
53
|
+
}
|
54
|
+
}
|
55
|
+
}
|
56
|
+
}
|
57
|
+
}
|
58
|
+
}
|
59
|
+
}
|
60
|
+
}
|
61
|
+
}
|
62
|
+
}
|
63
|
+
}
|
64
|
+
|
65
|
+
ontology
|
66
|
+
term_definitions = <
|
67
|
+
["en"] = <
|
68
|
+
items = <
|
69
|
+
["at0000"] = <
|
70
|
+
text = <"Test assumed value">
|
71
|
+
description = <"unknown">
|
72
|
+
>
|
73
|
+
["at0001"] = <
|
74
|
+
text = <"Event Series">
|
75
|
+
description = <"@ internal @">
|
76
|
+
>
|
77
|
+
["at0002"] = <
|
78
|
+
text = <"Any event">
|
79
|
+
description = <"*">
|
80
|
+
>
|
81
|
+
["at0003"] = <
|
82
|
+
text = <"Tree">
|
83
|
+
description = <"@ internal @">
|
84
|
+
>
|
85
|
+
["at0004"] = <
|
86
|
+
text = <"New element">
|
87
|
+
description = <"*">
|
88
|
+
>
|
89
|
+
["at0005"] = <
|
90
|
+
text = <"Tree">
|
91
|
+
description = <"@ internal @">
|
92
|
+
>
|
93
|
+
["at0006"] = <
|
94
|
+
text = <"New element">
|
95
|
+
description = <"*">
|
96
|
+
>
|
97
|
+
>
|
98
|
+
>
|
99
|
+
>
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
@@ -8,7 +8,7 @@ include OpenEHR::AM::Archetype::Ontology
|
|
8
8
|
describe ADLParser do
|
9
9
|
|
10
10
|
before (:all) do
|
11
|
-
@adl_dir = File.dirname(__FILE__) + '/
|
11
|
+
@adl_dir = File.dirname(__FILE__) + '/adl14/'
|
12
12
|
end
|
13
13
|
|
14
14
|
context 'openEHR-EHR-SECTION-summary.v1.adl' do
|
@@ -39,7 +39,7 @@ describe ADLParser do
|
|
39
39
|
@archetype.adl_version.should == '1.4'
|
40
40
|
end
|
41
41
|
|
42
|
-
it 'concept should be at0000
|
42
|
+
it 'concept should be at0000' do
|
43
43
|
@archetype.concept.should == 'at0000'
|
44
44
|
end
|
45
45
|
|
@@ -0,0 +1,180 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../spec_helper'
|
2
|
+
include OpenEHR::Parser
|
3
|
+
include OpenEHR::AM::Archetype
|
4
|
+
include OpenEHR::AM::Archetype::ConstraintModel
|
5
|
+
include OpenEHR::AM::Archetype::Assertion
|
6
|
+
include OpenEHR::AM::Archetype::Ontology
|
7
|
+
|
8
|
+
describe ADLParser do
|
9
|
+
before(:all) do
|
10
|
+
adl_dir = File.dirname(__FILE__) + '/adl14/'
|
11
|
+
adl_path_test_file = 'adl-test-car.paths.test.adl'
|
12
|
+
ap = OpenEHR::Parser::ADLParser.new(adl_dir + adl_path_test_file)
|
13
|
+
@root = ap.parse.definition
|
14
|
+
end
|
15
|
+
|
16
|
+
|
17
|
+
it 'root path is /' do
|
18
|
+
@root.path.should == '/'
|
19
|
+
end
|
20
|
+
|
21
|
+
context 'wheels' do
|
22
|
+
before(:all) do
|
23
|
+
@wheels = @root.attributes[0]
|
24
|
+
end
|
25
|
+
|
26
|
+
it 'wheels path is /wheels' do
|
27
|
+
@wheels.path.should == '/wheels'
|
28
|
+
end
|
29
|
+
|
30
|
+
context 'first wheel' do
|
31
|
+
before(:all) do
|
32
|
+
@first_wheel = @wheels.children[0]
|
33
|
+
end
|
34
|
+
|
35
|
+
it 'path is /wheels[at0001]' do
|
36
|
+
@first_wheel.path.should == '/wheels[at0001]'
|
37
|
+
end
|
38
|
+
|
39
|
+
it 'description path is /wheels[at0001]/description' do
|
40
|
+
description = @first_wheel.attributes[0]
|
41
|
+
description.path.should == '/wheels[at0001]/description'
|
42
|
+
end
|
43
|
+
|
44
|
+
it 'wheel parts path is /wheels[at0001]/parts' do
|
45
|
+
wheel_parts = @first_wheel.attributes[1]
|
46
|
+
wheel_parts.path.should == '/wheels[at0001]/parts'
|
47
|
+
end
|
48
|
+
|
49
|
+
context 'parts node' do
|
50
|
+
before(:all) do
|
51
|
+
@parts_node = @first_wheel.attributes[1].children[0]
|
52
|
+
end
|
53
|
+
|
54
|
+
it 'parts node path is /wheels[at0001]/parts[at0002]' do
|
55
|
+
@parts_node.path.should == '/wheels[at0001]/parts[at0002]'
|
56
|
+
end
|
57
|
+
|
58
|
+
context 'somthing of wheel part' do
|
59
|
+
before(:all) do
|
60
|
+
@something = @parts_node.attributes[0]
|
61
|
+
end
|
62
|
+
|
63
|
+
it 'something of WHEEL_PART path is /wheels[at0001]/parts[at0002]/something' do
|
64
|
+
@something.path.should == '/wheels[at0001]/parts[at0002]/something'
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
context 'somthing else of wheel part' do
|
69
|
+
before(:all) do
|
70
|
+
@something_else = @parts_node.attributes[1]
|
71
|
+
end
|
72
|
+
|
73
|
+
it 'something else of WHEEL_PART path is /wheels[at0001]/parts[at0002]/something_else' do
|
74
|
+
@something_else.path.should ==
|
75
|
+
'/wheels[at0001]/parts[at0002]/something_else'
|
76
|
+
end
|
77
|
+
end
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
81
|
+
context 'second wheel' do
|
82
|
+
before(:all) do
|
83
|
+
@second_wheel = @wheels.children[1]
|
84
|
+
end
|
85
|
+
|
86
|
+
it 'path is /wheels[at0003]' do
|
87
|
+
@second_wheel.path.should == '/wheels[at0003]'
|
88
|
+
end
|
89
|
+
|
90
|
+
it 'description path is /wheels[at0003]/description' do
|
91
|
+
description = @second_wheel.attributes[0]
|
92
|
+
description.path.should == '/wheels[at0003]/description'
|
93
|
+
end
|
94
|
+
|
95
|
+
it 'wheel parts path is /wheels[at0003]/parts' do
|
96
|
+
wheel_parts = @second_wheel.attributes[1]
|
97
|
+
wheel_parts.path.should == '/wheels[at0003]/parts'
|
98
|
+
end
|
99
|
+
|
100
|
+
context 'parts node' do
|
101
|
+
before(:all) do
|
102
|
+
@parts_node = @second_wheel.attributes[1].children[0]
|
103
|
+
end
|
104
|
+
|
105
|
+
it 'wheel parts node path is /wheels[at0003]/parts' do
|
106
|
+
@parts_node.path.should == '/wheels[at0003]/parts'
|
107
|
+
end
|
108
|
+
|
109
|
+
it 'wheel parts node target path is /wheels[at0001]/parts[at0002]' do
|
110
|
+
@parts_node.target_path.should == '/wheels[at0001]/parts[at0002]'
|
111
|
+
end
|
112
|
+
end
|
113
|
+
end
|
114
|
+
|
115
|
+
context 'third wheel' do
|
116
|
+
before(:all) do
|
117
|
+
@third_wheel = @wheels.children[2]
|
118
|
+
end
|
119
|
+
|
120
|
+
it 'path is /wheels[at0004]' do
|
121
|
+
@third_wheel.path.should == '/wheels[at0004]'
|
122
|
+
end
|
123
|
+
|
124
|
+
it 'description path is /wheels[at0004]/description' do
|
125
|
+
description = @third_wheel.attributes[0]
|
126
|
+
description.path.should == '/wheels[at0004]/description'
|
127
|
+
end
|
128
|
+
|
129
|
+
context 'parts node' do
|
130
|
+
before(:all) do
|
131
|
+
@parts_node = @third_wheel.attributes[1].children[0]
|
132
|
+
end
|
133
|
+
|
134
|
+
it 'parts node path is /wheels[at0004]/parts' do
|
135
|
+
@parts_node.path.should == '/wheels[at0004]/parts'
|
136
|
+
end
|
137
|
+
|
138
|
+
it 'parts node target path is /wheels[at0001]/parts[at0002]' do
|
139
|
+
@parts_node.target_path.should == '/wheels[at0001]/parts[at0002]'
|
140
|
+
end
|
141
|
+
end
|
142
|
+
end
|
143
|
+
|
144
|
+
context 'fourth wheel' do
|
145
|
+
before(:all) do
|
146
|
+
@fourth_wheel = @wheels.children[3]
|
147
|
+
end
|
148
|
+
|
149
|
+
it 'path is /wheels[at0005]' do
|
150
|
+
@fourth_wheel.path.should == '/wheels[at0005]'
|
151
|
+
end
|
152
|
+
|
153
|
+
it 'description path is /wheels[at0005]/description' do
|
154
|
+
description = @fourth_wheel.attributes[0]
|
155
|
+
description.path.should == '/wheels[at0005]/description'
|
156
|
+
end
|
157
|
+
|
158
|
+
context 'parts node' do
|
159
|
+
before(:all) do
|
160
|
+
@parts_node = @fourth_wheel.attributes[1].children[0]
|
161
|
+
end
|
162
|
+
|
163
|
+
it 'parts node path is /wheels[at0005]/parts' do
|
164
|
+
@parts_node.path.should == '/wheels[at0005]/parts'
|
165
|
+
end
|
166
|
+
|
167
|
+
it 'parts node target path is /engine[at0001]/parts[at0002]' do
|
168
|
+
@parts_node.target_path.should == '/engine[at0001]/parts[at0002]'
|
169
|
+
end
|
170
|
+
end
|
171
|
+
end
|
172
|
+
|
173
|
+
context 'fifhth wheel' do
|
174
|
+
it 'fifth wheel is nil' do
|
175
|
+
fifth_wheel = @wheels.children[4]
|
176
|
+
fifth_wheel.should be_nil
|
177
|
+
end
|
178
|
+
end
|
179
|
+
end
|
180
|
+
end
|