open_ehr 0.6.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.
Files changed (253) hide show
  1. data/.document +5 -0
  2. data/Gemfile +14 -0
  3. data/Gemfile.lock +43 -0
  4. data/Guardfile +9 -0
  5. data/History.txt +4 -0
  6. data/Manifest.txt +16 -0
  7. data/PostInstall.txt +9 -0
  8. data/README.rdoc +66 -0
  9. data/Rakefile +49 -0
  10. data/VERSION +1 -0
  11. data/doc/README_rdoc.html +148 -0
  12. data/doc/created.rid +2 -0
  13. data/doc/images/brick.png +0 -0
  14. data/doc/images/brick_link.png +0 -0
  15. data/doc/images/bug.png +0 -0
  16. data/doc/images/bullet_black.png +0 -0
  17. data/doc/images/bullet_toggle_minus.png +0 -0
  18. data/doc/images/bullet_toggle_plus.png +0 -0
  19. data/doc/images/date.png +0 -0
  20. data/doc/images/find.png +0 -0
  21. data/doc/images/loadingAnimation.gif +0 -0
  22. data/doc/images/macFFBgHack.png +0 -0
  23. data/doc/images/package.png +0 -0
  24. data/doc/images/page_green.png +0 -0
  25. data/doc/images/page_white_text.png +0 -0
  26. data/doc/images/page_white_width.png +0 -0
  27. data/doc/images/plugin.png +0 -0
  28. data/doc/images/ruby.png +0 -0
  29. data/doc/images/tag_green.png +0 -0
  30. data/doc/images/wrench.png +0 -0
  31. data/doc/images/wrench_orange.png +0 -0
  32. data/doc/images/zoom.png +0 -0
  33. data/doc/index.html +54 -0
  34. data/doc/js/darkfish.js +116 -0
  35. data/doc/js/jquery.js +32 -0
  36. data/doc/js/quicksearch.js +114 -0
  37. data/doc/js/thickbox-compressed.js +10 -0
  38. data/doc/openehr_terminology.xml +2700 -0
  39. data/doc/rdoc.css +706 -0
  40. data/lib/#open_ehr.rb# +11 -0
  41. data/lib/open_ehr/am/archetype/archetype_description/archetype_description.rb +21 -0
  42. data/lib/open_ehr/am/archetype/assertion.rb +190 -0
  43. data/lib/open_ehr/am/archetype/constraint_model/primitive.rb +296 -0
  44. data/lib/open_ehr/am/archetype/constraint_model.rb +340 -0
  45. data/lib/open_ehr/am/archetype/ontology.rb +97 -0
  46. data/lib/open_ehr/am/archetype.rb +134 -0
  47. data/lib/open_ehr/am/open_ehr_profile/data_types/basic.rb +29 -0
  48. data/lib/open_ehr/am/open_ehr_profile/data_types/quantity.rb +19 -0
  49. data/lib/open_ehr/am/open_ehr_profile/data_types/text.rb +12 -0
  50. data/lib/open_ehr/am.rb +8 -0
  51. data/lib/open_ehr/assumed_library_types.rb +627 -0
  52. data/lib/open_ehr/parser/xml_perser.rb +13 -0
  53. data/lib/open_ehr/parser.rb +19 -0
  54. data/lib/open_ehr/rm/common/archetyped.rb +182 -0
  55. data/lib/open_ehr/rm/common/change_control.rb +332 -0
  56. data/lib/open_ehr/rm/common/directory.rb +29 -0
  57. data/lib/open_ehr/rm/common/generic.rb +216 -0
  58. data/lib/open_ehr/rm/common/resource.rb +154 -0
  59. data/lib/open_ehr/rm/common.rb +14 -0
  60. data/lib/open_ehr/rm/composition/content/entry.rb +246 -0
  61. data/lib/open_ehr/rm/composition/content/navigation.rb +31 -0
  62. data/lib/open_ehr/rm/composition/content.rb +22 -0
  63. data/lib/open_ehr/rm/composition.rb +103 -0
  64. data/lib/open_ehr/rm/data_structures/history.rb +117 -0
  65. data/lib/open_ehr/rm/data_structures/item_structure/representation.rb +63 -0
  66. data/lib/open_ehr/rm/data_structures/item_structure.rb +216 -0
  67. data/lib/open_ehr/rm/data_structures.rb +25 -0
  68. data/lib/open_ehr/rm/data_types/basic.rb +108 -0
  69. data/lib/open_ehr/rm/data_types/charset.lst +818 -0
  70. data/lib/open_ehr/rm/data_types/charset_extract.rb +24 -0
  71. data/lib/open_ehr/rm/data_types/encapsulated.rb +98 -0
  72. data/lib/open_ehr/rm/data_types/quantity/date_time.rb +229 -0
  73. data/lib/open_ehr/rm/data_types/quantity.rb +403 -0
  74. data/lib/open_ehr/rm/data_types/text.rb +168 -0
  75. data/lib/open_ehr/rm/data_types/time_specification.rb +75 -0
  76. data/lib/open_ehr/rm/data_types/uri.rb +82 -0
  77. data/lib/open_ehr/rm/data_types.rb +14 -0
  78. data/lib/open_ehr/rm/demographic.rb +269 -0
  79. data/lib/open_ehr/rm/ehr.rb +162 -0
  80. data/lib/open_ehr/rm/integration.rb +27 -0
  81. data/lib/open_ehr/rm/security.rb +12 -0
  82. data/lib/open_ehr/rm/support/assumed_types.rb +81 -0
  83. data/lib/open_ehr/rm/support/definition.rb +15 -0
  84. data/lib/open_ehr/rm/support/identification.rb +408 -0
  85. data/lib/open_ehr/rm/support/measurement.rb +17 -0
  86. data/lib/open_ehr/rm/support/terminology.rb +135 -0
  87. data/lib/open_ehr/rm/support.rb +14 -0
  88. data/lib/open_ehr/rm.rb +16 -0
  89. data/lib/open_ehr/serializer.rb +272 -0
  90. data/lib/open_ehr/terminology/open_ehr_terminology.rb +41 -0
  91. data/lib/open_ehr/terminology.rb +7 -0
  92. data/lib/open_ehr/writer.rb +12 -0
  93. data/lib/open_ehr.rb +11 -0
  94. data/spec/lib/open_ehr/am/archetype/archetype_spec.rb +98 -0
  95. data/spec/lib/open_ehr/am/archetype/assertion/assertion_spec.rb +60 -0
  96. data/spec/lib/open_ehr/am/archetype/assertion/assertion_variable_spec.rb +30 -0
  97. data/spec/lib/open_ehr/am/archetype/assertion/expr_binary_operator.rb +40 -0
  98. data/spec/lib/open_ehr/am/archetype/assertion/expr_item_spec.rb +28 -0
  99. data/spec/lib/open_ehr/am/archetype/assertion/expr_leaf_spec.rb +34 -0
  100. data/spec/lib/open_ehr/am/archetype/assertion/expr_operator_spec.rb +25 -0
  101. data/spec/lib/open_ehr/am/archetype/assertion/expr_unary_operator_spec.rb +26 -0
  102. data/spec/lib/open_ehr/am/archetype/assertion/operator_kind_spec.rb +110 -0
  103. data/spec/lib/open_ehr/am/archetype/constraint_model/archetype_constraint_spec.rb +56 -0
  104. data/spec/lib/open_ehr/am/archetype/constraint_model/archetype_internal_ref_spec.rb +36 -0
  105. data/spec/lib/open_ehr/am/archetype/constraint_model/archetype_slot_spec.rb +61 -0
  106. data/spec/lib/open_ehr/am/archetype/constraint_model/c_attribute_spec.rb +59 -0
  107. data/spec/lib/open_ehr/am/archetype/constraint_model/c_complex_object_spec.rb +39 -0
  108. data/spec/lib/open_ehr/am/archetype/constraint_model/c_defined_object_spec.rb +53 -0
  109. data/spec/lib/open_ehr/am/archetype/constraint_model/c_domain_type_spec.rb +25 -0
  110. data/spec/lib/open_ehr/am/archetype/constraint_model/c_multiple_attribute_spec.rb +29 -0
  111. data/spec/lib/open_ehr/am/archetype/constraint_model/c_object_spec.rb +61 -0
  112. data/spec/lib/open_ehr/am/archetype/constraint_model/c_primitive_object_spec.rb +33 -0
  113. data/spec/lib/open_ehr/am/archetype/constraint_model/c_reference_object_spec.rb +17 -0
  114. data/spec/lib/open_ehr/am/archetype/constraint_model/c_single_attribute_spec.rb +28 -0
  115. data/spec/lib/open_ehr/am/archetype/constraint_model/cardinality_spec.rb +68 -0
  116. data/spec/lib/open_ehr/am/archetype/constraint_model/constraint_ref_spec.rb +29 -0
  117. data/spec/lib/open_ehr/am/archetype/constraint_model/primitive/c_boolean_spec.rb +52 -0
  118. data/spec/lib/open_ehr/am/archetype/constraint_model/primitive/c_date_spec.rb +80 -0
  119. data/spec/lib/open_ehr/am/archetype/constraint_model/primitive/c_date_time_spec.rb +106 -0
  120. data/spec/lib/open_ehr/am/archetype/constraint_model/primitive/c_duration_spec.rb +69 -0
  121. data/spec/lib/open_ehr/am/archetype/constraint_model/primitive/c_integer_spec.rb +62 -0
  122. data/spec/lib/open_ehr/am/archetype/constraint_model/primitive/c_primitive_spec.rb +39 -0
  123. data/spec/lib/open_ehr/am/archetype/constraint_model/primitive/c_real_spec.rb +14 -0
  124. data/spec/lib/open_ehr/am/archetype/constraint_model/primitive/c_string_spec.rb +69 -0
  125. data/spec/lib/open_ehr/am/archetype/constraint_model/primitive/c_time_spec.rb +79 -0
  126. data/spec/lib/open_ehr/am/archetype/ontology/archetype_ontology_spec.rb +59 -0
  127. data/spec/lib/open_ehr/am/archetype/ontology/archetype_term_spec.rb +43 -0
  128. data/spec/lib/open_ehr/am/archetype/validity_kind_spec.rb +42 -0
  129. data/spec/lib/open_ehr/assumed_library_types/interval_spec.rb +140 -0
  130. data/spec/lib/open_ehr/assumed_library_types/iso8601_date_spec.rb +236 -0
  131. data/spec/lib/open_ehr/assumed_library_types/iso8601_date_time_spec.rb +47 -0
  132. data/spec/lib/open_ehr/assumed_library_types/iso8601_duration_spec.rb +150 -0
  133. data/spec/lib/open_ehr/assumed_library_types/iso8601_time_spec.rb +234 -0
  134. data/spec/lib/open_ehr/assumed_library_types/iso8601_timezone_spec.rb +57 -0
  135. data/spec/lib/open_ehr/assumed_library_types/time_definitions_spec.rb +136 -0
  136. data/spec/lib/open_ehr/rm/common/archetyped/archetyped_spec.rb +50 -0
  137. data/spec/lib/open_ehr/rm/common/archetyped/feeder_audit_details_spec.rb +60 -0
  138. data/spec/lib/open_ehr/rm/common/archetyped/feeder_audit_spec.rb +51 -0
  139. data/spec/lib/open_ehr/rm/common/archetyped/link_spec.rb +42 -0
  140. data/spec/lib/open_ehr/rm/common/archetyped/locatable_spec.rb +89 -0
  141. data/spec/lib/open_ehr/rm/common/archetyped/pathable_spec.rb +42 -0
  142. data/spec/lib/open_ehr/rm/common/change_control/contribution_spec.rb +56 -0
  143. data/spec/lib/open_ehr/rm/common/change_control/imported_version_spec.rb +63 -0
  144. data/spec/lib/open_ehr/rm/common/change_control/original_version_spec.rb +71 -0
  145. data/spec/lib/open_ehr/rm/common/change_control/version_spec.rb +92 -0
  146. data/spec/lib/open_ehr/rm/common/change_control/versioned_object_spec.rb +285 -0
  147. data/spec/lib/open_ehr/rm/common/directory/folder_spec.rb +26 -0
  148. data/spec/lib/open_ehr/rm/common/generic/attestation_spec.rb +62 -0
  149. data/spec/lib/open_ehr/rm/common/generic/audit_details_spec.rb +51 -0
  150. data/spec/lib/open_ehr/rm/common/generic/participation_spec.rb +36 -0
  151. data/spec/lib/open_ehr/rm/common/generic/party_identified_spec.rb +64 -0
  152. data/spec/lib/open_ehr/rm/common/generic/party_proxy_spec.rb +18 -0
  153. data/spec/lib/open_ehr/rm/common/generic/party_related_spec.rb +24 -0
  154. data/spec/lib/open_ehr/rm/common/generic/revision_history_item_spec.rb +43 -0
  155. data/spec/lib/open_ehr/rm/common/generic/revision_history_spec.rb +45 -0
  156. data/spec/lib/open_ehr/rm/common/resource/authored_resource_spec.rb +68 -0
  157. data/spec/lib/open_ehr/rm/common/resource/resource_description_item_spec.rb +105 -0
  158. data/spec/lib/open_ehr/rm/common/resource/resource_description_spec.rb +74 -0
  159. data/spec/lib/open_ehr/rm/common/resource/translation_details_spec.rb +35 -0
  160. data/spec/lib/open_ehr/rm/composition/composition_spec.rb +92 -0
  161. data/spec/lib/open_ehr/rm/composition/content/content_item_spec.rb +14 -0
  162. data/spec/lib/open_ehr/rm/composition/content/entry/action_spec.rb +69 -0
  163. data/spec/lib/open_ehr/rm/composition/content/entry/activity_spec.rb +61 -0
  164. data/spec/lib/open_ehr/rm/composition/content/entry/admin_entry_spec.rb +38 -0
  165. data/spec/lib/open_ehr/rm/composition/content/entry/care_entry_spec.rb +37 -0
  166. data/spec/lib/open_ehr/rm/composition/content/entry/entry_spec.rb +88 -0
  167. data/spec/lib/open_ehr/rm/composition/content/entry/evaluation_spec.rb +37 -0
  168. data/spec/lib/open_ehr/rm/composition/content/entry/instruction_details_spec.rb +51 -0
  169. data/spec/lib/open_ehr/rm/composition/content/entry/instruction_spec.rb +62 -0
  170. data/spec/lib/open_ehr/rm/composition/content/entry/ism_transition_spec.rb +46 -0
  171. data/spec/lib/open_ehr/rm/composition/content/entry/observation_spec.rb +45 -0
  172. data/spec/lib/open_ehr/rm/composition/content/navigation/section_spec.rb +32 -0
  173. data/spec/lib/open_ehr/rm/composition/event_context_spec.rb +88 -0
  174. data/spec/lib/open_ehr/rm/data_structures/data_structure_spec.rb +21 -0
  175. data/spec/lib/open_ehr/rm/data_structures/history/event_spec.rb +44 -0
  176. data/spec/lib/open_ehr/rm/data_structures/history/history_spec.rb +67 -0
  177. data/spec/lib/open_ehr/rm/data_structures/history/interval_event_spec.rb +43 -0
  178. data/spec/lib/open_ehr/rm/data_structures/item_structure/item_list_spec.rb +53 -0
  179. data/spec/lib/open_ehr/rm/data_structures/item_structure/item_single_spec.rb +29 -0
  180. data/spec/lib/open_ehr/rm/data_structures/item_structure/item_table_spec.rb +147 -0
  181. data/spec/lib/open_ehr/rm/data_structures/item_structure/item_tree_spec.rb +48 -0
  182. data/spec/lib/open_ehr/rm/data_structures/item_structure/representation/cluster_spec.rb +26 -0
  183. data/spec/lib/open_ehr/rm/data_structures/item_structure/representation/element_spec.rb +22 -0
  184. data/spec/lib/open_ehr/rm/data_types/basic/data_value_spec.rb +17 -0
  185. data/spec/lib/open_ehr/rm/data_types/basic/dv_boolean_spec.rb +29 -0
  186. data/spec/lib/open_ehr/rm/data_types/basic/dv_identifier_spec.rb +108 -0
  187. data/spec/lib/open_ehr/rm/data_types/basic/dv_state_spec.rb +44 -0
  188. data/spec/lib/open_ehr/rm/data_types/encapsulated/dv_encapsulated_spec.rb +42 -0
  189. data/spec/lib/open_ehr/rm/data_types/encapsulated/dv_multimedia_spec.rb +79 -0
  190. data/spec/lib/open_ehr/rm/data_types/encapsulated/dv_parsable_spec.rb +34 -0
  191. data/spec/lib/open_ehr/rm/data_types/quantity/date_time/dv_date_spec.rb +64 -0
  192. data/spec/lib/open_ehr/rm/data_types/quantity/date_time/dv_date_time_spec.rb +25 -0
  193. data/spec/lib/open_ehr/rm/data_types/quantity/date_time/dv_tempral_spec.rb +24 -0
  194. data/spec/lib/open_ehr/rm/data_types/quantity/date_time/dv_time_spec.rb +37 -0
  195. data/spec/lib/open_ehr/rm/data_types/quantity/dv_absolute_quantity_spec.rb +35 -0
  196. data/spec/lib/open_ehr/rm/data_types/quantity/dv_amount_spec.rb +105 -0
  197. data/spec/lib/open_ehr/rm/data_types/quantity/dv_count_spec.rb +12 -0
  198. data/spec/lib/open_ehr/rm/data_types/quantity/dv_interval_spec.rb +17 -0
  199. data/spec/lib/open_ehr/rm/data_types/quantity/dv_ordered_spec.rb +60 -0
  200. data/spec/lib/open_ehr/rm/data_types/quantity/dv_ordinal_spec.rb +74 -0
  201. data/spec/lib/open_ehr/rm/data_types/quantity/dv_proportion_spec.rb +162 -0
  202. data/spec/lib/open_ehr/rm/data_types/quantity/dv_quantified_spec.rb +36 -0
  203. data/spec/lib/open_ehr/rm/data_types/quantity/dv_quantity_spec.rb +78 -0
  204. data/spec/lib/open_ehr/rm/data_types/quantity/proportion_kind_spec.rb +24 -0
  205. data/spec/lib/open_ehr/rm/data_types/quantity/reference_range_spec.rb +43 -0
  206. data/spec/lib/open_ehr/rm/data_types/text/code_phrase_spec.rb +23 -0
  207. data/spec/lib/open_ehr/rm/data_types/text/dv_paragraph_spec.rb +13 -0
  208. data/spec/lib/open_ehr/rm/data_types/text/dv_text_spec.rb +57 -0
  209. data/spec/lib/open_ehr/rm/data_types/text/term_mapping_spec.rb +59 -0
  210. data/spec/lib/open_ehr/rm/data_types/uri/dv_ehr_uri_spec.rb +21 -0
  211. data/spec/lib/open_ehr/rm/data_types/uri/dv_uri_spec.rb +36 -0
  212. data/spec/lib/open_ehr/rm/demographic/actor_spec.rb +79 -0
  213. data/spec/lib/open_ehr/rm/demographic/address_spec.rb +33 -0
  214. data/spec/lib/open_ehr/rm/demographic/capability_spec.rb +37 -0
  215. data/spec/lib/open_ehr/rm/demographic/contact_spec.rb +45 -0
  216. data/spec/lib/open_ehr/rm/demographic/party_identity_spec.rb +32 -0
  217. data/spec/lib/open_ehr/rm/demographic/party_relationship_spec.rb +84 -0
  218. data/spec/lib/open_ehr/rm/demographic/party_spec.rb +133 -0
  219. data/spec/lib/open_ehr/rm/demographic/role_spec.rb +58 -0
  220. data/spec/lib/open_ehr/rm/ehr/ehr_access_spec.rb +33 -0
  221. data/spec/lib/open_ehr/rm/ehr/ehr_spec.rb +139 -0
  222. data/spec/lib/open_ehr/rm/ehr/ehr_status_spec.rb +52 -0
  223. data/spec/lib/open_ehr/rm/ehr/versioned_composition_spec.rb +33 -0
  224. data/spec/lib/open_ehr/rm/integration/generic_entry_spec.rb +31 -0
  225. data/spec/lib/open_ehr/rm/support/identification/access_group_ref_spec.rb +19 -0
  226. data/spec/lib/open_ehr/rm/support/identification/archetype_id_spec.rb +152 -0
  227. data/spec/lib/open_ehr/rm/support/identification/generic_id_spec.rb +33 -0
  228. data/spec/lib/open_ehr/rm/support/identification/hier_object_id_spec.rb +12 -0
  229. data/spec/lib/open_ehr/rm/support/identification/internet_id_spec.rb +12 -0
  230. data/spec/lib/open_ehr/rm/support/identification/iso_oid_spec.rb +12 -0
  231. data/spec/lib/open_ehr/rm/support/identification/locatable_ref_spec.rb +34 -0
  232. data/spec/lib/open_ehr/rm/support/identification/object_id_spec.rb +24 -0
  233. data/spec/lib/open_ehr/rm/support/identification/object_ref_spec.rb +33 -0
  234. data/spec/lib/open_ehr/rm/support/identification/object_version_id_spec.rb +60 -0
  235. data/spec/lib/open_ehr/rm/support/identification/party_ref_spec.rb +29 -0
  236. data/spec/lib/open_ehr/rm/support/identification/template_id_spec.rb +12 -0
  237. data/spec/lib/open_ehr/rm/support/identification/terminology_id_spec.rb +33 -0
  238. data/spec/lib/open_ehr/rm/support/identification/uid_based_id_spec.rb +50 -0
  239. data/spec/lib/open_ehr/rm/support/identification/uid_spec.rb +29 -0
  240. data/spec/lib/open_ehr/rm/support/identification/version_tree_id_spec.rb +104 -0
  241. data/spec/lib/open_ehr/rm/support/measurement_service_spec.rb +7 -0
  242. data/spec/lib/open_ehr/rm/support/terminology_service_spec.rb +24 -0
  243. data/spec/lib/open_ehr/serializer/adl-test-entry.most_minimal.test.adl +20 -0
  244. data/spec/lib/open_ehr/serializer/adl_serializer_spec.rb +47 -0
  245. data/spec/lib/open_ehr/serializer/openEHR-EHR-SECTION.test.v1.adl +38 -0
  246. data/spec/lib/open_ehr/serializer/openEHR-EHR-SECTION.test.v1.xml +58 -0
  247. data/spec/lib/open_ehr/serializer/sample_archetype_spec.rb +44 -0
  248. data/spec/lib/open_ehr/serializer/xml_serializer_spec.rb +49 -0
  249. data/spec/lib/open_ehr/terminology/open_ehr_terminology_spec.rb +40 -0
  250. data/spec/rcov.opts +1 -0
  251. data/spec/spec.opts +5 -0
  252. data/spec/spec_helper.rb +54 -0
  253. metadata +401 -0
@@ -0,0 +1,26 @@
1
+ require File.dirname(__FILE__) + '/../../../../../spec_helper'
2
+ include OpenEHR::AM::Archetype::Assertion
3
+
4
+ describe ExprUnaryOperator do
5
+ before(:each) do
6
+ operator = OperatorKind.new(:value => 2001)
7
+ operand = stub(ExprItem, :type => 'Real')
8
+ @expr_unary_operator =
9
+ ExprUnaryOperator.new(:type => 'Integer',
10
+ :item => 'ANY',
11
+ :reference_type => 'operator',
12
+ :operator => operator,
13
+ :precedence_overridden => true,
14
+ :operand => operand)
15
+ end
16
+
17
+ it 'operand shoud be assigned properly' do
18
+ @expr_unary_operator.operand.type.should == 'Real'
19
+ end
20
+
21
+ it 'should raise ArgumentError when operand is nil' do
22
+ lambda {
23
+ @expr_unary_operator.operand = nil
24
+ }.should raise_error ArgumentError
25
+ end
26
+ end
@@ -0,0 +1,110 @@
1
+ require File.dirname(__FILE__) + '/../../../../../spec_helper'
2
+ include OpenEHR::AM::Archetype::Assertion
3
+
4
+ describe OperatorKind do
5
+ it 'op_eq should be equal 2001' do
6
+ OperatorKind::OP_EQ.should be_equal 2001
7
+ end
8
+
9
+ it 'op_ne should be equal 2002' do
10
+ OperatorKind::OP_NE.should be_equal 2002
11
+ end
12
+
13
+ it 'op_le should be equal 2004' do
14
+ OperatorKind::OP_LE.should be_equal 2003
15
+ end
16
+
17
+ it 'op_lt should be equal 2004' do
18
+ OperatorKind::OP_LT.should be_equal 2004
19
+ end
20
+
21
+ it 'op_ge should be equal 2005' do
22
+ OperatorKind::OP_GE.should be_equal 2005
23
+ end
24
+
25
+ it 'op_gt should be equal 2006' do
26
+ OperatorKind::OP_GT.should be_equal 2006
27
+ end
28
+
29
+ it 'op_not should be equal 2010' do
30
+ OperatorKind::OP_NOT.should be_equal 2010
31
+ end
32
+
33
+ it 'op_and should be equal 2011' do
34
+ OperatorKind::OP_AND.should be_equal 2011
35
+ end
36
+
37
+ it 'op_or should be equal 2012' do
38
+ OperatorKind::OP_OR.should be_equal 2012
39
+ end
40
+
41
+ it 'op_xor should be equal 2013' do
42
+ OperatorKind::OP_XOR.should be_equal 2013
43
+ end
44
+
45
+ it 'op_implies should be equal 2014' do
46
+ OperatorKind::OP_IMPLIES.should be_equal 2014
47
+ end
48
+
49
+ it 'op_for_all should be equal 2015' do
50
+ OperatorKind::OP_FOR_ALL.should be_equal 2015
51
+ end
52
+
53
+ it 'op_exists should be equal 2016' do
54
+ OperatorKind::OP_EXISTS.should be_equal 2016
55
+ end
56
+
57
+ it 'op_plus should be equal 2020' do
58
+ OperatorKind::OP_PLUS.should be_equal 2020
59
+ end
60
+
61
+ it 'op_minus should be equal 2021' do
62
+ OperatorKind::OP_MINUS.should be_equal 2021
63
+ end
64
+
65
+ it 'op_multiply should be equal 2022' do
66
+ OperatorKind::OP_MULTIPLY.should be_equal 2022
67
+ end
68
+
69
+ it 'op_divide should be equal 2023' do
70
+ OperatorKind::OP_DIVIDE.should be_equal 2023
71
+ end
72
+
73
+ it 'op_exp should be equal 2024' do
74
+ OperatorKind::OP_EXP.should be_equal 2024
75
+ end
76
+
77
+ it '2000 should not be valid operator' do
78
+ OperatorKind.should_not be_valid_operator 2000
79
+ end
80
+
81
+ it '2001 should be valid operator' do
82
+ OperatorKind.should be_valid_operator 2001
83
+ end
84
+
85
+ it '2024 should be valid operator' do
86
+ OperatorKind.should be_valid_operator 2024
87
+ end
88
+
89
+ it '2025 should not be valid operator' do
90
+ OperatorKind.should_not be_valid_operator 2025
91
+ end
92
+
93
+ describe 'value should be assigned' do
94
+ before(:each) do
95
+ @operator_kind = OperatorKind.new(:value => 2001)
96
+ end
97
+
98
+ it 'value should be assigned' do
99
+ @operator_kind.value.should be_equal 2001
100
+ end
101
+
102
+ it 'should raise ArgumentError with invalid value' do
103
+ lambda {
104
+ @operator_kind.value = 10001
105
+ }.should raise_error ArgumentError
106
+ end
107
+ end
108
+ end
109
+
110
+
@@ -0,0 +1,56 @@
1
+ require File.dirname(__FILE__) + '/../../../../../spec_helper'
2
+ include OpenEHR::AM::Archetype::ConstraintModel
3
+
4
+ describe ArchetypeConstraint do
5
+ before(:each) do
6
+ parent = stub(ArchetypeConstraint, :path => '/data/[at0001]')
7
+ @archetype_constraint =
8
+ ArchetypeConstraint.new(:path => '/data/events[at0003]/data/items[at0025]/value/magnitude',
9
+ :parent => parent)
10
+ end
11
+
12
+ it 'should be an instance of ArchetypeConstraint' do
13
+ @archetype_constraint.should be_an_instance_of ArchetypeConstraint
14
+ end
15
+
16
+ it 'path should be assigned properly' do
17
+ @archetype_constraint.path.should == '/data/events[at0003]/data/items[at0025]/value/magnitude'
18
+ end
19
+
20
+ it 'should raise ArgumentError when path is not assigned' do
21
+ lambda {
22
+ @archetype_constraint.path = nil
23
+ }.should raise_error ArgumentError
24
+ end
25
+
26
+ it 'has_path? should return true if it has path' do
27
+ @archetype_constraint.should have_path 'events[at0003]'
28
+ end
29
+
30
+ it 'has_path? should return false if ti does not have path' do
31
+ @archetype_constraint.should_not have_path 'events[at0004]'
32
+ end
33
+
34
+ it 'parent should assigned properly' do
35
+ @archetype_constraint.parent.path.should == '/data/[at0001]'
36
+ end
37
+
38
+ it 'is congruent means this node starts from parent node' do
39
+ @archetype_constraint.should_not be_congruent
40
+ end
41
+
42
+ it 'is congruent when path starts with parent path' do
43
+ @archetype_constraint.path = '/data/[at0001]/test'
44
+ @archetype_constraint.should be_congruent
45
+ end
46
+
47
+ it 'node_conforms_to return true if path is follower' do
48
+ other = stub(ArchetypeConstraint, :path => '/data/events[at0003]')
49
+ @archetype_constraint.node_conforms_to?(other).should be_true
50
+ end
51
+
52
+ it 'node_conforms_to return false if path is other lineage' do
53
+ other = stub(ArchetypeConstraint, :path => '/event/')
54
+ @archetype_constraint.node_conforms_to?(other).should be_false
55
+ end
56
+ end
@@ -0,0 +1,36 @@
1
+ require File.dirname(__FILE__) + '/../../../../../spec_helper'
2
+ include OpenEHR::AM::Archetype::ConstraintModel
3
+ include OpenEHR::AssumedLibraryTypes
4
+
5
+ describe ArchetypeInternalRef do
6
+ before(:each) do
7
+ occurrences = Interval.new(:lower => 0, :upper => 1)
8
+ @archetype_internal_ref =
9
+ ArchetypeInternalRef.new(:path => '/event/[at0001]/',
10
+ :rm_type_name => 'DV_TIME',
11
+ :node_id => 'ac0001',
12
+ :occurrences => occurrences,
13
+ :target_path => '/data/[at0002]')
14
+ end
15
+
16
+ it 'should be an instance of ArchetypeInternalRef' do
17
+ @archetype_internal_ref.should be_an_instance_of ArchetypeInternalRef
18
+ end
19
+
20
+ it 'target_path should be assigned properly' do
21
+ @archetype_internal_ref.target_path.should == '/data/[at0002]'
22
+ end
23
+
24
+ it 'should raise ArgumentError when target_path is nil.' do
25
+ lambda {
26
+ @archetype_internal_ref.target_path = nil
27
+ }.should raise_error ArgumentError
28
+ end
29
+
30
+ it 'should raise ArgumentError when target_path is empty.' do
31
+ lambda {
32
+ @archetype_internal_ref.target_path = ''
33
+ }.should raise_error ArgumentError
34
+ end
35
+ end
36
+
@@ -0,0 +1,61 @@
1
+ require File.dirname(__FILE__) + '/../../../../../spec_helper'
2
+ include OpenEHR::AM::Archetype::ConstraintModel
3
+ include OpenEHR::AssumedLibraryTypes
4
+
5
+ describe ArchetypeSlot do
6
+ before(:each) do
7
+ occurrences = Interval.new(:lower => 0, :upper => 1)
8
+ includes = stub(Set, :empty? => false, :size => 2)
9
+ excludes = stub(Set, :empty? => false, :size => 10)
10
+ @archetype_slot = ArchetypeSlot.new(:path => '/event/[at0001]/',
11
+ :rm_type_name => 'DV_TIME',
12
+ :node_id => 'ac0001',
13
+ :occurrences => occurrences,
14
+ :includes => includes,
15
+ :excludes => excludes)
16
+ end
17
+
18
+ it 'should be an instance of ArchetypeSlot' do
19
+ @archetype_slot.should be_an_instance_of ArchetypeSlot
20
+ end
21
+
22
+ it 'includes should be assigned properly' do
23
+ @archetype_slot.includes.size.should be_equal 2
24
+ end
25
+
26
+ it 'should raise ArgumentError when includes are empty' do
27
+ lambda {
28
+ @archetype_slot.includes = Set.new
29
+ }.should raise_error ArgumentError
30
+ end
31
+
32
+ it 'excludes should be assigned properly' do
33
+ @archetype_slot.excludes.size.should be_equal 10
34
+ end
35
+
36
+ it 'should raise ArgumentError when excludes are empty' do
37
+ lambda {
38
+ @archetype_slot.excludes = Set.new
39
+ }.should raise_error ArgumentError
40
+ end
41
+
42
+ it 'any_allowed should be false when includes and excludes are not nil' do
43
+ @archetype_slot.should_not be_any_allowed
44
+ end
45
+
46
+ it 'any_allowed should be false when includes are nil and excludes are not nil' do
47
+ @archetype_slot.includes = nil
48
+ @archetype_slot.should_not be_any_allowed
49
+ end
50
+
51
+ it 'any_allowed should be false when includes are not nil and excludes are nil' do
52
+ @archetype_slot.excludes = nil
53
+ @archetype_slot.should_not be_any_allowed
54
+ end
55
+
56
+ it 'any_allowed should be true when includes and excludes are nil' do
57
+ @archetype_slot.includes = nil
58
+ @archetype_slot.excludes = nil
59
+ @archetype_slot.should be_any_allowed
60
+ end
61
+ end
@@ -0,0 +1,59 @@
1
+ require File.dirname(__FILE__) + '/../../../../../spec_helper'
2
+ include OpenEHR::AM::Archetype::ConstraintModel
3
+ include OpenEHR::AssumedLibraryTypes
4
+
5
+ describe CAttribute do
6
+ before(:each) do
7
+ existence = Interval.new(:lower => 0, :upper => 1)
8
+ children = stub(CObject, :rm_type_name => 'DV_AMOUNT')
9
+ @c_attribute = CAttribute.new(:path => '/event/[at0001]/',
10
+ :rm_attribute_name => 'DV_TEXT',
11
+ :existence => existence,
12
+ :children => children)
13
+ end
14
+
15
+ it 'should be an instance of CAttribute' do
16
+ @c_attribute.should be_an_instance_of CAttribute
17
+ end
18
+
19
+ it 'rm_attribute_name should be assigned properly' do
20
+ @c_attribute.rm_attribute_name.should == 'DV_TEXT'
21
+ end
22
+
23
+ it 'should raise ArguemntError rm_attribute_name is empty' do
24
+ lambda {
25
+ @c_attribute.rm_attribute_name = ''
26
+ }.should raise_error ArgumentError
27
+ end
28
+
29
+ it 'should raise ArgumentError rm_attribute_name is nil' do
30
+ lambda {
31
+ @c_attribute.rm_attribute_name = nil
32
+ }.should raise_error ArgumentError
33
+ end
34
+
35
+ it 'existence should be assigned properly' do
36
+ @c_attribute.existence.lower.should be_equal 0
37
+ end
38
+
39
+ it 'existence.lower should be more than 0' do
40
+ invalid_existence = Interval.new(:lower => -1, :upper => 1)
41
+ lambda {
42
+ @c_attribute.existence = invalid_existence
43
+ }.should raise_error ArgumentError
44
+ end
45
+
46
+ it 'existence.upper should be equal or less than 1' do
47
+ invalid_existence = Interval.new(:lower => 0, :upper => 2)
48
+ lambda {
49
+ @c_attribute.existence = invalid_existence
50
+ }.should raise_error ArgumentError
51
+ end
52
+
53
+ it 'children should be assigned properly' do
54
+ @c_attribute.children.rm_type_name.should == 'DV_AMOUNT'
55
+ end
56
+ end
57
+
58
+
59
+
@@ -0,0 +1,39 @@
1
+ require File.dirname(__FILE__) + '/../../../../../spec_helper'
2
+ include OpenEHR::AM::Archetype::ConstraintModel
3
+ include OpenEHR::AssumedLibraryTypes
4
+
5
+ describe CComplexObject do
6
+ before(:each) do
7
+ occurrences = Interval.new(:lower => 0, :upper => 1)
8
+ parent = stub(CAttribute, :rm_attribute_name => 'DV_DATE')
9
+ attributes = stub(Set, :empty? => false, :size => 3)
10
+ @c_complex_object = CComplexObject.new(:path => '/event/[at0001]/',
11
+ :rm_type_name => 'DV_TIME',
12
+ :node_id => 'ac0001',
13
+ :occurrences => occurrences,
14
+ :attributes => attributes)
15
+ end
16
+
17
+ it 'should be an instance of CComplexObject' do
18
+ @c_complex_object.should be_an_instance_of CComplexObject
19
+ end
20
+
21
+ it 'attributes should be assigned properly' do
22
+ @c_complex_object.attributes.size.should be_equal 3
23
+ end
24
+
25
+ it 'any_allowed should be false when attributes are not empty' do
26
+ @c_complex_object.should_not be_any_allowed
27
+ end
28
+
29
+
30
+ it 'any_allowed should be true when attributes are nil' do
31
+ @c_complex_object.attributes = nil
32
+ @c_complex_object.should be_any_allowed
33
+ end
34
+
35
+ it 'any_allowed should be true when attributes are empty' do
36
+ @c_complex_object.attributes = Set.new
37
+ @c_complex_object.should be_any_allowed
38
+ end
39
+ end
@@ -0,0 +1,53 @@
1
+ require File.dirname(__FILE__) + '/../../../../../spec_helper'
2
+ include OpenEHR::AM::Archetype::ConstraintModel
3
+ include OpenEHR::AssumedLibraryTypes
4
+
5
+ describe CDefinedObject do
6
+ before(:each) do
7
+ occurrences = Interval.new(:lower => 0, :upper => 1)
8
+ parent = stub(CAttribute, :rm_attribute_name => 'DV_DATE')
9
+ @c_defined_object = CDefinedObject.new(:path => '/event/[at0001]/',
10
+ :rm_type_name => 'DV_TIME',
11
+ :node_id => 'ac0001',
12
+ :occurrences => occurrences,
13
+ :assumed_value => 'ANY')
14
+ end
15
+
16
+ it 'should be an instance of CDefinedObject' do
17
+ @c_defined_object.should be_an_instance_of CDefinedObject
18
+ end
19
+
20
+ it 'should be assigned properly' do
21
+ @c_defined_object.assumed_value.should == 'ANY'
22
+ end
23
+
24
+ it 'has_assumed_value should be true' do
25
+ @c_defined_object.should have_assumed_value
26
+ end
27
+
28
+ it 'has_assumed_value should not be true' do
29
+ @c_defined_object.assumed_value = nil
30
+ @c_defined_object.should_not have_assumed_value
31
+ end
32
+
33
+ it 'default_value should raise NotImplementedError' do
34
+ lambda {
35
+ @c_defined_object.default_value
36
+ }.should raise_error NotImplementedError
37
+ end
38
+
39
+ it 'valid_value should raise NotImplementedError' do
40
+ lambda {
41
+ @c_defined_object.valid_value?(1)
42
+ }.should raise_error NotImplementedError
43
+ end
44
+
45
+ it 'any_allowed should raise NotImplementedError' do
46
+ lambda {
47
+ @c_defined_object.any_allowed?
48
+ }.should raise_error NotImplementedError
49
+ end
50
+ end
51
+
52
+
53
+
@@ -0,0 +1,25 @@
1
+ require File.dirname(__FILE__) + '/../../../../../spec_helper'
2
+ include OpenEHR::AM::Archetype::ConstraintModel
3
+ include OpenEHR::AssumedLibraryTypes
4
+
5
+ describe CDomainType do
6
+ before(:each) do
7
+ occurrences = Interval.new(:lower => 0, :upper => 1)
8
+ parent = stub(CAttribute, :rm_attribute_name => 'DV_DATE')
9
+ @c_domain_type = CDomainType.new(:path => '/event/[at0001]/',
10
+ :rm_type_name => 'DV_TIME',
11
+ :node_id => 'ac0001',
12
+ :occurrences => occurrences)
13
+ end
14
+
15
+ it 'should be an instance of CDomainType' do
16
+ @c_domain_type.should be_an_instance_of CDomainType
17
+ end
18
+
19
+ it 'standard_equivalent should raise NotImplementedError' do
20
+ lambda {
21
+ @c_domain_type.standard_equivalent
22
+ }.should raise_error NotImplementedError
23
+ end
24
+ end
25
+
@@ -0,0 +1,29 @@
1
+ require File.dirname(__FILE__) + '/../../../../../spec_helper'
2
+ include OpenEHR::AM::Archetype::ConstraintModel
3
+ include OpenEHR::AssumedLibraryTypes
4
+
5
+ describe CMultipleAttribute do
6
+ before(:each) do
7
+ existence = Interval.new(:upper =>0, :lower => 0)
8
+ cardinality = stub(Cardinality, :ordered? => true)
9
+ @c_multiple_attribute =
10
+ CMultipleAttribute.new(:path => '/event/at001',
11
+ :rm_attribute_name => 'DV_DATE',
12
+ :existence => existence,
13
+ :cardinality => cardinality)
14
+ end
15
+
16
+ it 'should be an instance of CMulitipleAttribute' do
17
+ @c_multiple_attribute.should be_an_instance_of CMultipleAttribute
18
+ end
19
+
20
+ it 'cardinality should be assigned properly' do
21
+ @c_multiple_attribute.cardinality.should be_ordered
22
+ end
23
+
24
+ it 'should raise ArgumentError when cardinality is nil' do
25
+ lambda {
26
+ @c_multiple_attribute.cardinality = nil
27
+ }.should raise_error ArgumentError
28
+ end
29
+ end
@@ -0,0 +1,61 @@
1
+ require File.dirname(__FILE__) + '/../../../../../spec_helper'
2
+ include OpenEHR::AM::Archetype::ConstraintModel
3
+ include OpenEHR::AssumedLibraryTypes
4
+
5
+ describe CObject do
6
+ before(:each) do
7
+ occurrences = Interval.new(:lower => 0, :upper => 1)
8
+ parent = stub(CAttribute, :rm_attribute_name => 'DV_DATE')
9
+ @c_object = CObject.new(:path => '/event/[at0001]/',
10
+ :rm_type_name => 'DV_TIME',
11
+ :node_id => 'ac0001',
12
+ :occurrences => occurrences,
13
+ :parent => parent)
14
+ end
15
+
16
+ it 'should be an instance of CObject' do
17
+ @c_object.should be_an_instance_of CObject
18
+ end
19
+
20
+ it 'rm_type_name should be assigned properly' do
21
+ @c_object.rm_type_name.should == 'DV_TIME'
22
+ end
23
+
24
+ it 'should raise ArgumentError when rm_type_name was assigned nil' do
25
+ lambda {
26
+ @c_object.rm_type_name = nil
27
+ }.should raise_error ArgumentError
28
+ end
29
+
30
+ it 'should raise ArgumentError when rm_type_name was assigned empty' do
31
+ lambda {
32
+ @c_object.rm_type_name = ''
33
+ }.should raise_error ArgumentError
34
+ end
35
+
36
+ it 'node_id should be assigned properly' do
37
+ @c_object.node_id.should == 'ac0001'
38
+ end
39
+
40
+ it 'should raise ArgumentError when node_id was assigned nil' do
41
+ lambda {
42
+ @c_object.node_id = nil
43
+ }.should raise_error ArgumentError
44
+ end
45
+
46
+ it 'should raise ArgumentError when node_id was assigned empty' do
47
+ lambda {
48
+ @c_object.node_id = ''
49
+ }.should raise_error ArgumentError
50
+ end
51
+
52
+ it 'occurences should be assigned properly' do
53
+ @c_object.occurrences.lower.should be_equal 0
54
+ end
55
+
56
+ it 'should raise ArgumentError when occurences was assigned nil' do
57
+ lambda {
58
+ @c_object.occurrences = nil
59
+ }.should raise_error ArgumentError
60
+ end
61
+ end
@@ -0,0 +1,33 @@
1
+ require File.dirname(__FILE__) + '/../../../../../spec_helper'
2
+ include OpenEHR::AM::Archetype::ConstraintModel
3
+ include OpenEHR::AM::Archetype::ConstraintModel::Primitive
4
+ include OpenEHR::AssumedLibraryTypes
5
+
6
+ describe CPrimitiveObject do
7
+ before(:each) do
8
+ interval = Interval.new(:lower => 0, :upper => 1)
9
+ item = stub(CPrimitive, :node_id => 'at0001')
10
+ @c_primitive_object = CPrimitiveObject.new(:path => 'event/test',
11
+ :rm_type_name => 'DV_TEXT',
12
+ :node_id => 'ac0001',
13
+ :occurrences => interval,
14
+ :item => item)
15
+ end
16
+
17
+ it 'should be an instance of CPrimitiveObject' do
18
+ @c_primitive_object.should be_an_instance_of CPrimitiveObject
19
+ end
20
+
21
+ it 'item should be assigned properly' do
22
+ @c_primitive_object.item.node_id.should == 'at0001'
23
+ end
24
+
25
+ it 'should allowed any' do
26
+ @c_primitive_object.should_not be_any_allowed
27
+ end
28
+
29
+ it 'should not any allowed' do
30
+ @c_primitive_object.item = nil
31
+ @c_primitive_object.should be_any_allowed
32
+ end
33
+ end
@@ -0,0 +1,17 @@
1
+ require File.dirname(__FILE__) + '/../../../../../spec_helper'
2
+ include OpenEHR::AM::Archetype::ConstraintModel
3
+ include OpenEHR::AssumedLibraryTypes
4
+
5
+ describe CReferenceObject do
6
+ before(:each) do
7
+ occurrences = Interval.new(:lower => 0, :upper => 1)
8
+ @c_reference_object = CReferenceObject.new(:path => '/event/[at0001]/',
9
+ :rm_type_name => 'DV_TIME',
10
+ :node_id => 'ac0001',
11
+ :occurrences => occurrences)
12
+ end
13
+
14
+ it 'should be an instance of CReferenceObject' do
15
+ @c_reference_object.should be_an_instance_of CReferenceObject
16
+ end
17
+ end
@@ -0,0 +1,28 @@
1
+ require File.dirname(__FILE__) + '/../../../../../spec_helper'
2
+ include OpenEHR::AM::Archetype::ConstraintModel
3
+ include OpenEHR::AssumedLibraryTypes
4
+
5
+ describe CSingleAttribute do
6
+ before(:each) do
7
+ existence = Interval.new(:upper =>0, :lower => 0)
8
+ alternatives = stub(Array, :size => 5)
9
+ @c_single_attribute = CSingleAttribute.new(:path => '/event/at001',
10
+ :rm_attribute_name => 'DV_DATE',
11
+ :existence => existence,
12
+ :alternatives => alternatives)
13
+ end
14
+
15
+ it 'should be an instance of CSingleAttribute' do
16
+ @c_single_attribute.should be_an_instance_of CSingleAttribute
17
+ end
18
+
19
+ it 'alternative should be assigned properly' do
20
+ @c_single_attribute.alternatives.size.should be_equal 5
21
+ end
22
+
23
+ it 'should raise ArgumentError when alternative is nil' do
24
+ lambda {
25
+ @c_single_attribute.alternatives = nil
26
+ }.should raise_error ArgumentError
27
+ end
28
+ end