open_ehr 0.9.5 → 1.0.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.
Files changed (98) hide show
  1. data/History.txt +3 -0
  2. data/README.rdoc +35 -25
  3. data/VERSION +1 -1
  4. data/lib/open_ehr.rb +2 -3
  5. data/lib/open_ehr/am.rb +1 -2
  6. data/lib/open_ehr/am/openehr_profile.rb +0 -1
  7. data/lib/open_ehr/am/openehr_profile/data_types.rb +2 -1
  8. data/lib/open_ehr/am/openehr_profile/data_types/basic.rb +88 -1
  9. data/lib/open_ehr/am/openehr_profile/data_types/quantity.rb +51 -2
  10. data/lib/open_ehr/am/openehr_profile/data_types/text.rb +2 -2
  11. data/lib/open_ehr/assumed_library_types.rb +5 -0
  12. data/lib/open_ehr/parser/adl.rb +5 -5
  13. data/lib/open_ehr/parser/adl_grammar.tt +13 -16
  14. data/lib/open_ehr/parser/adl_parser.rb +13 -5
  15. data/lib/open_ehr/parser/cadl_grammar.tt +247 -31
  16. data/lib/open_ehr/parser/cadl_node.rb +25 -0
  17. data/lib/open_ehr/parser/dadl_grammar.tt +6 -6
  18. data/lib/open_ehr/parser/shared_token_grammar.tt +14 -5
  19. data/lib/open_ehr/rm.rb +1 -2
  20. data/lib/open_ehr/rm/composition/content/entry.rb +8 -1
  21. data/lib/open_ehr/rm/data_types.rb +2 -2
  22. data/lib/open_ehr/rm/data_types/quantity.rb +1 -2
  23. data/lib/open_ehr/rm/data_types/quantity/date_time.rb +8 -5
  24. data/lib/open_ehr/rm/data_types/text.rb +7 -6
  25. data/lib/open_ehr/rm/support/identification.rb +13 -9
  26. data/open_ehr.gemspec +34 -4
  27. data/spec/lib/open_ehr/am/openehr_profile/data_types/basic/c_dv_state_spec.rb +34 -0
  28. data/spec/lib/open_ehr/am/openehr_profile/data_types/basic/non_terminal_state_spec.rb +36 -0
  29. data/spec/lib/open_ehr/am/openehr_profile/data_types/basic/state_machine_spec.rb +34 -0
  30. data/spec/lib/open_ehr/am/openehr_profile/data_types/basic/state_spec.rb +26 -0
  31. data/spec/lib/open_ehr/am/openehr_profile/data_types/basic/terminal_state_spec.rb +18 -0
  32. data/spec/lib/open_ehr/am/openehr_profile/data_types/basic/transition_spec.rb +62 -0
  33. data/spec/lib/open_ehr/am/openehr_profile/data_types/quantity/c_dv_ordinal_spec.rb +41 -0
  34. data/spec/lib/open_ehr/am/openehr_profile/data_types/quantity/c_dv_quantity_spec.rb +50 -0
  35. data/spec/lib/open_ehr/am/openehr_profile/data_types/quantity/c_quantity_item_spec.rb +46 -0
  36. data/spec/lib/open_ehr/am/openehr_profile/data_types/text/c_code_phrase_spec.rb +0 -1
  37. data/spec/lib/open_ehr/assumed_library_types/interval_spec.rb +5 -0
  38. data/spec/lib/open_ehr/parser/adl14/adl-test-composition.dv_coded_text.test.adl +1 -1
  39. data/spec/lib/open_ehr/parser/adl14/adl-test-entry.archetype_desc_missing_purpose.test.adl +1 -1
  40. data/spec/lib/open_ehr/parser/adl14/adl-test-entry.c_dv_ordinal.test.adl +1 -1
  41. data/spec/lib/open_ehr/parser/adl14/adl-test-entry.c_dv_quantity_empty.test.adl +1 -1
  42. data/spec/lib/open_ehr/parser/adl14/adl-test-entry.c_dv_quantity_full.test.adl +1 -1
  43. data/spec/lib/open_ehr/parser/adl14/adl-test-entry.c_dv_quantity_full2.test.adl +1 -1
  44. data/spec/lib/open_ehr/parser/adl14/adl-test-entry.c_dv_quantity_full3.test.adl +1 -1
  45. data/spec/lib/open_ehr/parser/adl14/adl-test-entry.c_dv_quantity_item_units_only.test.adl +1 -1
  46. data/spec/lib/open_ehr/parser/adl14/adl-test-entry.c_dv_quantity_list.test.adl +1 -1
  47. data/spec/lib/open_ehr/parser/adl14/adl-test-entry.c_dv_quantity_property.test.adl +1 -1
  48. data/spec/lib/open_ehr/parser/adl14/adl-test-entry.c_dv_quantity_reversed.test.adl +1 -1
  49. data/spec/lib/open_ehr/parser/adl14/adl-test-entry.constraint_binding.test.adl +1 -1
  50. data/spec/lib/open_ehr/parser/adl14/adl-test-entry.constraint_ref.test.adl +1 -1
  51. data/spec/lib/open_ehr/parser/adl14/adl-test-entry.empty_other_contributors.test.adl +1 -1
  52. data/spec/lib/open_ehr/parser/adl14/adl-test-entry.missing_language.test.adl +1 -1
  53. data/spec/lib/open_ehr/parser/adl14/adl-test-entry.mixed_node_types.draft.adl +1 -1
  54. data/spec/lib/open_ehr/parser/adl14/adl-test-entry.most_minimal.test.adl +1 -1
  55. data/spec/lib/open_ehr/parser/adl14/adl-test-entry.multi_language.test.adl +1 -1
  56. data/spec/lib/open_ehr/parser/adl14/adl-test-entry.special_string.test.adl +1 -1
  57. data/spec/lib/open_ehr/parser/adl14/adl-test-entry.structure_test1.test.adl +1 -1
  58. data/spec/lib/open_ehr/parser/adl14/adl-test-entry.structure_test2.test.adl +1 -1
  59. data/spec/lib/open_ehr/parser/adl14/adl-test-entry.term_binding.test.adl +1 -1
  60. data/spec/lib/open_ehr/parser/adl14/adl-test-entry.term_binding2.test.adl +1 -1
  61. data/spec/lib/open_ehr/parser/adl14/adl-test-entry.unicode_BOM_support.test.adl +1 -1
  62. data/spec/lib/open_ehr/parser/adl14/adl-test-entry.unicode_support.test.adl +1 -1
  63. data/spec/lib/open_ehr/parser/adl_archetype_ontology_binding_spec.rb +3 -3
  64. data/spec/lib/open_ehr/parser/c_dv_quantity_any_allowed_spec.rb +34 -0
  65. data/spec/lib/open_ehr/parser/c_dv_quantity_shared_example_for_lacked_items_spec.rb +36 -0
  66. data/spec/lib/open_ehr/parser/c_dv_quantity_shared_example_spec.rb +146 -0
  67. data/spec/lib/open_ehr/parser/cdv_ordinal_parse_spec.rb +231 -0
  68. data/spec/lib/open_ehr/parser/code_phrase_spec.rb +7 -2
  69. data/spec/lib/open_ehr/parser/constraint_binding_spec.rb +26 -0
  70. data/spec/lib/open_ehr/parser/constraint_ref_spec.rb +32 -0
  71. data/spec/lib/open_ehr/parser/dv_coded_text_parse_spec.rb +27 -0
  72. data/spec/lib/open_ehr/parser/empty_other_contributors_spec.rb +19 -0
  73. data/spec/lib/open_ehr/parser/missing_language_spec.rb +20 -0
  74. data/spec/lib/open_ehr/parser/missing_purpose_spec.rb +23 -0
  75. data/spec/lib/open_ehr/parser/mixed_node_types_spec.rb +16 -0
  76. data/spec/lib/open_ehr/parser/most_minimal_adl_spec.rb +19 -0
  77. data/spec/lib/open_ehr/parser/multi_language_spec.rb +58 -0
  78. data/spec/lib/open_ehr/parser/path_based_terminology_binding_spec.rb +30 -0
  79. data/spec/lib/open_ehr/parser/special_string_spec.rb +20 -0
  80. data/spec/lib/open_ehr/parser/structure_comment_spec.rb +21 -0
  81. data/spec/lib/open_ehr/parser/structure_nested_comments_spec.rb +22 -0
  82. data/spec/lib/open_ehr/parser/structure_spec.rb +202 -0
  83. data/spec/lib/open_ehr/parser/term_binding_spec.rb +54 -0
  84. data/spec/lib/open_ehr/parser/unicode_bom_spec.rb +17 -0
  85. data/spec/lib/open_ehr/parser/unicode_support_spec.rb +46 -0
  86. data/spec/lib/open_ehr/rm/common/change_control/imported_version_spec.rb +0 -1
  87. data/spec/lib/open_ehr/rm/common/change_control/original_version_spec.rb +2 -2
  88. data/spec/lib/open_ehr/rm/common/change_control/version_spec.rb +0 -1
  89. data/spec/lib/open_ehr/rm/common/change_control/versioned_object_spec.rb +0 -1
  90. data/spec/lib/open_ehr/rm/common/generic/revision_history_item_spec.rb +3 -3
  91. data/spec/lib/open_ehr/rm/composition/content/entry/entry_spec.rb +12 -2
  92. data/spec/lib/open_ehr/rm/data_types/quantity/date_time/dv_date_time_spec.rb +1 -0
  93. data/spec/lib/open_ehr/rm/data_types/quantity/date_time/{dv_tempral_spec.rb → dv_temporal_spec.rb} +1 -0
  94. data/spec/lib/open_ehr/rm/data_types/text/dv_text_spec.rb +25 -3
  95. data/spec/lib/open_ehr/rm/demographic/party_spec.rb +1 -3
  96. data/spec/lib/open_ehr/rm/support/identification/access_group_ref_spec.rb +2 -2
  97. data/spec/lib/open_ehr/rm/support/identification/object_version_id_spec.rb +3 -4
  98. metadata +69 -39
@@ -0,0 +1,36 @@
1
+ # ticket 174
2
+ require File.dirname(__FILE__) + '/../../../spec_helper'
3
+ require File.dirname(__FILE__) + '/parser_spec_helper'
4
+ require 'open_ehr/am/openehr_profile/data_types/quantity'
5
+ include ::OpenEHR::AM::OpenEHRProfile::DataTypes::Quantity
6
+ require 'open_ehr/rm/data_types/quantity'
7
+ include ::OpenEHR::RM::DataTypes::Quantity
8
+
9
+ shared_examples 'c_dv_quantity lacked items' do
10
+ it 'parsed to archetypes' do
11
+ archetype.should be_an_instance_of Archetype
12
+ end
13
+ end
14
+
15
+ describe 'items only with property' do
16
+ it_behaves_like 'c_dv_quantity lacked items' do
17
+ let(:archetype) {adl14_archetype('adl-test-entry.c_dv_quantity_property.test.adl')}
18
+ end
19
+ end
20
+
21
+ describe 'items only with list' do
22
+ it_behaves_like 'c_dv_quantity lacked items' do
23
+ let(:archetype) {adl14_archetype('adl-test-entry.c_dv_quantity_list.test.adl')}
24
+ end
25
+ end
26
+
27
+ describe 'reversed items' do
28
+ it_behaves_like 'c_dv_quantity lacked items' do
29
+ let(:archetype) {adl14_archetype('adl-test-entry.c_dv_quantity_reversed.test.adl')}
30
+ end
31
+ end
32
+ describe 'units only' do
33
+ it_behaves_like 'c_dv_quantity lacked items' do
34
+ let(:archetype) {adl14_archetype('adl-test-entry.c_dv_quantity_item_units_only.test.adl')}
35
+ end
36
+ end
@@ -0,0 +1,146 @@
1
+ # ticket 174
2
+ require File.dirname(__FILE__) + '/../../../spec_helper'
3
+ require File.dirname(__FILE__) + '/parser_spec_helper'
4
+ require 'open_ehr/am/openehr_profile/data_types/quantity'
5
+ include ::OpenEHR::AM::OpenEHRProfile::DataTypes::Quantity
6
+ require 'open_ehr/rm/data_types/quantity'
7
+ include ::OpenEHR::RM::DataTypes::Quantity
8
+
9
+ shared_examples 'c_dv_quantity' do
10
+ context 'CDvQuantity item order change' do
11
+ before(:all) do
12
+ @c_dv_quantity = archetype.definition.attributes[0].children[0].attributes[0].children[0].attributes[0].children[0]
13
+ end
14
+
15
+ it 'is an instance of CDvQuantity' do
16
+ @c_dv_quantity.should be_an_instance_of CDvQuantity
17
+ end
18
+
19
+ context 'property' do
20
+ before(:all) do
21
+ @property = @c_dv_quantity.property
22
+ end
23
+
24
+ it 'property should not be nil' do
25
+ @property.should_not be_nil
26
+ end
27
+
28
+ it 'property terminology id should openehr' do
29
+ @property.terminology_id.name.should == 'openehr'
30
+ end
31
+
32
+ it 'property code_string is 128' do
33
+ @property.code_string.should == '128'
34
+ end
35
+ end
36
+
37
+ context 'item list' do
38
+ before(:all) do
39
+ @list = @c_dv_quantity.list
40
+ end
41
+
42
+ it 'size is 2' do
43
+ @list.size.should be 2
44
+ end
45
+
46
+ context 'first item' do
47
+ before(:all) do
48
+ @first = @list[0]
49
+ end
50
+
51
+ it 'first is an isntance of CQuantityItem' do
52
+ @first.should be_an_instance_of CQuantityItem
53
+ end
54
+ it 'units is yr' do
55
+ @first.units.should == 'yr'
56
+ end
57
+
58
+ it 'magnitude lower is 0.0' do
59
+ @first.magnitude.lower.should == 0.0
60
+ end
61
+
62
+ it 'magnitude upper is 200.0' do
63
+ @first.magnitude.upper.should == 200.0
64
+ end
65
+
66
+ it 'precision upper is 2' do
67
+ @first.precision.upper.should be 2
68
+ end
69
+
70
+ it 'precision lower is 2, too' do
71
+ @first.precision.lower.should be 2
72
+ end
73
+ end
74
+
75
+ context 'secocond item' do
76
+ before(:all) do
77
+ @second = @list[1]
78
+ end
79
+
80
+ it 'is an instance of CQuantityItem' do
81
+ @second.should be_an_instance_of CQuantityItem
82
+ end
83
+
84
+ it 'unit is mth' do
85
+ @second.units.should == 'mth'
86
+ end
87
+
88
+ it 'magnitude lower is 1.0' do
89
+ @second.magnitude.lower.should == 1.0
90
+ end
91
+
92
+ it 'magnitude upper is 36.0' do
93
+ @second.magnitude.upper.should == 36.0
94
+ end
95
+
96
+ it 'precision upper is 2' do
97
+ @second.precision.upper.should == 2
98
+ end
99
+
100
+ it 'precision lower is 2' do
101
+ @second.precision.lower.should == 2
102
+ end
103
+ end
104
+
105
+ context 'assumed value' do
106
+ before(:all) do
107
+ @assumed_value = @c_dv_quantity.assumed_value
108
+ end
109
+
110
+ it 'is an instance of CQuantityItem' do
111
+ @assumed_value.should be_an_instance_of DvQuantity
112
+ end
113
+
114
+ it 'units is yr' do
115
+ @assumed_value.units.should == 'yr'
116
+ end
117
+
118
+ it 'magnitude is 8.0' do
119
+ @assumed_value.magnitude.should == 8.0
120
+ end
121
+
122
+ it 'precision is 2' do
123
+ @assumed_value.precision.should be 2
124
+ end
125
+ end
126
+ end
127
+ end
128
+ end
129
+
130
+ describe 'items start with property' do
131
+ it_behaves_like 'c_dv_quantity' do
132
+ let(:archetype) {adl14_archetype('adl-test-entry.c_dv_quantity_full.test.adl')}
133
+ end
134
+ end
135
+
136
+ describe 'items start with list' do
137
+ it_behaves_like 'c_dv_quantity' do
138
+ let(:archetype) {adl14_archetype('adl-test-entry.c_dv_quantity_full2.test.adl')}
139
+ end
140
+ end
141
+
142
+ describe 'items start with assumed_value' do
143
+ it_behaves_like 'c_dv_quantity' do
144
+ let(:archetype) {adl14_archetype('adl-test-entry.c_dv_quantity_full3.test.adl')}
145
+ end
146
+ end
@@ -0,0 +1,231 @@
1
+ require File.dirname(__FILE__) + '/../../../spec_helper'
2
+ require File.dirname(__FILE__) + '/parser_spec_helper'
3
+ require 'open_ehr/am/openehr_profile/data_types/quantity'
4
+ include OpenEHR::AM::OpenEHRProfile::DataTypes::Quantity
5
+
6
+ describe ADLParser do
7
+ describe CDvOrdinal do
8
+ before(:all) do
9
+ archetype = adl14_archetype('adl-test-entry.c_dv_ordinal.test.adl')
10
+ @attributes = archetype.definition.attributes
11
+ end
12
+
13
+ def attr(index)
14
+ return @attributes[0].children[0].attributes[0].children[index-1].attributes[0].children[0]
15
+ end
16
+
17
+ context '1st ordinals' do
18
+ before(:all) do
19
+ @at = attr(1)
20
+ end
21
+
22
+ it 'is an instance of CDvOrdinal' do
23
+ @at.should be_an_instance_of CDvOrdinal
24
+ end
25
+
26
+ context '1st item' do
27
+ before(:all) do
28
+ @item = @at.list[0]
29
+ end
30
+
31
+ it 'value is 0' do
32
+ @item.value.should be 0
33
+ end
34
+
35
+ it 'symbol value is local::at0003.0]' do
36
+ @item.symbol.value.should == '[local::at0003.0]'
37
+ end
38
+
39
+ it 'defining code terminology is local' do
40
+ @item.symbol.defining_code.terminology_id.value.should == 'local'
41
+ end
42
+
43
+ it 'defining code string is at0003.0' do
44
+ @item.symbol.defining_code.code_string.should == 'at0003.0'
45
+ end
46
+ end
47
+
48
+ context '2nd item' do
49
+ before(:all) do
50
+ @item = @at.list[1]
51
+ end
52
+
53
+ it 'value is 1' do
54
+ @item.value.should be 1
55
+ end
56
+
57
+ it 'symbol value is local::at0003.1' do
58
+ @item.symbol.value.should == '[local::at0003.1]'
59
+ end
60
+ end
61
+
62
+ context '3nd item' do
63
+ before(:all) do
64
+ @item = @at.list[2]
65
+ end
66
+
67
+ it 'value is 2' do
68
+ @item.value.should be 2
69
+ end
70
+
71
+ it 'symbol value is local::at0003.2' do
72
+ @item.symbol.value.should == '[local::at0003.2]'
73
+ end
74
+ end
75
+
76
+ context '4th item' do
77
+ before(:all) do
78
+ @item = @at.list[3]
79
+ end
80
+
81
+ it 'value is 3' do
82
+ @item.value.should be 3
83
+ end
84
+
85
+ it 'symbol value is local::at0003.3' do
86
+ @item.symbol.value.should == '[local::at0003.3]'
87
+ end
88
+ end
89
+
90
+ context '5th item' do
91
+ before(:all) do
92
+ @item = @at.list[4]
93
+ end
94
+
95
+ it 'value is 4' do
96
+ @item.value.should be 4
97
+ end
98
+
99
+ it 'symbol value is local::at0003.4' do
100
+ @item.symbol.value.should == '[local::at0003.4]'
101
+ end
102
+ end
103
+
104
+ context '6th item' do
105
+ before(:all) do
106
+ @item = @at.list[5]
107
+ end
108
+
109
+ it 'item is nil' do
110
+ @item.should be_nil
111
+ end
112
+ end
113
+ end
114
+
115
+ context '2nd ordinals chunk' do
116
+ before(:all) do
117
+ @at = attr(2)
118
+ end
119
+
120
+ it 'is an instance of CDvOrdinal' do
121
+ @at.should be_an_instance_of CDvOrdinal
122
+ end
123
+
124
+ context '1st item' do
125
+ before(:all) do
126
+ @item = @at.list[0]
127
+ end
128
+
129
+ it 'value is 0' do
130
+ @item.value.should be 0
131
+ end
132
+
133
+ it 'symbol value is local::at0003.0]' do
134
+ @item.symbol.value.should == '[local::at0003.0]'
135
+ end
136
+
137
+ it 'defining code terminology is local' do
138
+ @item.symbol.defining_code.terminology_id.value.should == 'local'
139
+ end
140
+
141
+ it 'defining code string is at0003.0' do
142
+ @item.symbol.defining_code.code_string.should == 'at0003.0'
143
+ end
144
+ end
145
+
146
+ context '2nd item' do
147
+ before(:all) do
148
+ @item = @at.list[1]
149
+ end
150
+
151
+ it 'value is 1' do
152
+ @item.value.should be 1
153
+ end
154
+
155
+ it 'symbol value is local::at0003.1' do
156
+ @item.symbol.value.should == '[local::at0003.1]'
157
+ end
158
+ end
159
+
160
+ context '3nd item' do
161
+ before(:all) do
162
+ @item = @at.list[2]
163
+ end
164
+
165
+ it 'value is 2' do
166
+ @item.value.should be 2
167
+ end
168
+
169
+ it 'symbol value is local::at0003.2' do
170
+ @item.symbol.value.should == '[local::at0003.2]'
171
+ end
172
+ end
173
+
174
+ context '4th item' do
175
+ before(:all) do
176
+ @item = @at.list[3]
177
+ end
178
+
179
+ it 'value is 3' do
180
+ @item.value.should be 3
181
+ end
182
+
183
+ it 'symbol value is local::at0003.3' do
184
+ @item.symbol.value.should == '[local::at0003.3]'
185
+ end
186
+ end
187
+
188
+ context '5th item' do
189
+ before(:all) do
190
+ @item = @at.list[4]
191
+ end
192
+
193
+ it 'value is 3' do
194
+ @item.value.should be 4
195
+ end
196
+
197
+ it 'symbol value is local::at0003.4' do
198
+ @item.symbol.value.should == '[local::at0003.4]'
199
+ end
200
+ end
201
+
202
+ context '6th item' do
203
+ before(:all) do
204
+ @item = @at.list[5]
205
+ end
206
+
207
+ it 'item is nil' do
208
+ @item.should be_nil
209
+ end
210
+ end
211
+
212
+ it 'has assumed value' do
213
+ @at.should have_assumed_value
214
+ end
215
+
216
+ it 'assumed_value is 0' do
217
+ @at.assumed_value.should be 0
218
+ end
219
+ end
220
+
221
+ context '3rd ordinal is any allowed' do
222
+ before(:all) do
223
+ @at = attr(3)
224
+ end
225
+
226
+ it 'is any allowed' do
227
+ @at.should be_any_allowed
228
+ end
229
+ end
230
+ end
231
+ end
@@ -1,10 +1,11 @@
1
1
  require File.dirname(__FILE__) + '/../../../spec_helper'
2
2
  require File.dirname(__FILE__) + '/parser_spec_helper'
3
-
3
+ require 'open_ehr/am/openehr_profile/data_types/text'
4
+ include ::OpenEHR::AM::OpenEHRProfile::DataTypes::Text
4
5
  # ticket 171
5
6
 
6
7
  describe ADLParser do
7
- context 'CodePhase type' do
8
+ context 'CCodePhase type' do
8
9
  before(:all) do
9
10
  archetype = adl14_archetype('adl-test-entry.c_code_phrase.test.adl')
10
11
  @attributes = archetype.definition.attributes
@@ -19,6 +20,10 @@ describe ADLParser do
19
20
  @at = attr(1)
20
21
  end
21
22
 
23
+ it 'at is an instance of CCodePhrase' do
24
+ @at.should be_an_instance_of CCodePhrase
25
+ end
26
+
22
27
  it 'terminology id is icd10' do
23
28
  @at.terminology_id.value.should == 'icd10'
24
29
  end
@@ -0,0 +1,26 @@
1
+ # ticket #175
2
+ require File.dirname(__FILE__) + '/../../../spec_helper'
3
+ require File.dirname(__FILE__) + '/parser_spec_helper'
4
+
5
+ describe ADLParser do
6
+ context 'Constraint Bindings' do
7
+ before(:all) do
8
+ at = adl14_archetype('adl-test-entry.constraint_binding.test.adl')
9
+ @ao = at.ontology
10
+ end
11
+
12
+ it 'contraint bindings size is two' do
13
+ @ao.constraint_bindings.size.should be 2
14
+ end
15
+
16
+ it 'SNOMED_CT binds local ac0001 to http://terminology.org/?terminology_id=snomed_ct&&has_relation=102002;with_target=128004' do
17
+ @ao.constraint_binding(:terminology => 'SNOMED_CT', :code => 'ac0001').
18
+ value.should == 'http://terminology.org/?terminology_id=snomed_ct&&has_relation=102002;with_target=128004'
19
+ end
20
+
21
+ it 'ICD10 binds local ac0001 to http://terminology.org/?terminology_id=icd10&&has_relation=a2;with_target=b19' do
22
+ @ao.constraint_binding(:terminology => 'ICD10', :code => 'ac0001').
23
+ value.should == 'http://terminology.org/?terminology_id=icd10&&has_relation=a2;with_target=b19'
24
+ end
25
+ end
26
+ end