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,24 @@
1
+ require File.dirname(__FILE__) + '/../../../../../spec_helper'
2
+ include OpenEHR::RM::DataTypes::Quantity
3
+
4
+ describe ProportionKind do
5
+ it 'should be valid proportion kind 0' do
6
+ ProportionKind.should be_valid_proportion_kind 0
7
+ end
8
+
9
+ it 'should be valid proportion kind 2' do
10
+ ProportionKind.should be_valid_proportion_kind 2
11
+ end
12
+
13
+ it 'should be valid proportionkind 4' do
14
+ ProportionKind.should be_valid_proportion_kind 4
15
+ end
16
+
17
+ it 'should not be valid proportionkind -1' do
18
+ ProportionKind.should_not be_valid_proportion_kind -1
19
+ end
20
+
21
+ it 'should not be valid proportionkind 5' do
22
+ ProportionKind.should_not be_valid_proportion_kind 5
23
+ end
24
+ end
@@ -0,0 +1,43 @@
1
+ require File.dirname(__FILE__) + '/../../../../../spec_helper'
2
+ include OpenEHR::RM::DataTypes::Quantity
3
+
4
+ describe ReferenceRange do
5
+ before(:each) do
6
+ dv_interval ||= stub(DvInterval)
7
+ @mock_dv_interval ||= mock('dv_interval')
8
+ @reference_range = ReferenceRange.new(:meaning => 'test',
9
+ :range => dv_interval)
10
+ end
11
+
12
+ it 'should be an instance of DvInterval' do
13
+ @reference_range.should be_an_instance_of ReferenceRange
14
+ end
15
+
16
+ it 's meaning should be test' do
17
+ @reference_range.meaning.should == 'test'
18
+ end
19
+
20
+ it 'should be in range' do
21
+ @mock_dv_interval.should_receive(:has?).with(1).and_return(true)
22
+ @reference_range.range = @mock_dv_interval
23
+ @reference_range.is_in_range?(1).should be_true
24
+ end
25
+
26
+ it 'should be out of range' do
27
+ @mock_dv_interval.should_receive(:has?).with(-1).and_return(false)
28
+ @reference_range.range = @mock_dv_interval
29
+ @reference_range.is_in_range?(-1).should be_false
30
+ end
31
+
32
+ it 'should raise ArgumentError with nil meaning' do
33
+ lambda {
34
+ @reference_range.meaning = nil
35
+ }.should raise_error ArgumentError
36
+ end
37
+
38
+ it 'should raise ArgumentError with nil range' do
39
+ lambda {
40
+ @reference_range.range = nil
41
+ }.should raise_error ArgumentError
42
+ end
43
+ end
@@ -0,0 +1,23 @@
1
+ require File.dirname(__FILE__) + '/../../../../../spec_helper'
2
+ include OpenEHR::RM::DataTypes::Text
3
+ include OpenEHR::RM::Support::Identification
4
+
5
+ describe CodePhrase do
6
+ before(:each) do
7
+ terminology_id = TerminologyID.new(:value => 'openehr')
8
+ @code_phrase = CodePhrase.new(:code_string => '535',
9
+ :terminology_id => terminology_id)
10
+ end
11
+
12
+ it 'should be an instance of CodePhrase' do
13
+ @code_phrase.should be_an_instance_of CodePhrase
14
+ end
15
+
16
+ it 's code_string should be 535' do
17
+ @code_phrase.code_string.should == '535'
18
+ end
19
+
20
+ it 's terminology_id.name should be openehr' do
21
+ @code_phrase.terminology_id.name.should == 'openehr'
22
+ end
23
+ end
@@ -0,0 +1,13 @@
1
+ require File.dirname(__FILE__) + '/../../../../../spec_helper'
2
+ include OpenEHR::RM::DataTypes::Text
3
+
4
+ describe DvParagraph do
5
+ before(:each) do
6
+ items_dummy = Array[1,2]
7
+ @dv_paragraph = DvParagraph.new(:items => items_dummy)
8
+ end
9
+
10
+ it 's items should be_size 2' do
11
+ @dv_paragraph.items.size.should be_equal 2
12
+ end
13
+ end
@@ -0,0 +1,57 @@
1
+ require File.dirname(__FILE__) + '/../../../../../spec_helper'
2
+ include OpenEHR::RM::DataTypes::Text
3
+ include OpenEHR::RM::Support::Identification
4
+
5
+ describe DvText do
6
+ before(:each) do
7
+ terminology_id = TerminologyID.new(:value => 'openehr')
8
+ language = CodePhrase.new(:terminology_id => terminology_id,
9
+ :code_string => 'ja')
10
+ encoding = CodePhrase.new(:terminology_id => terminology_id,
11
+ :code_string => 'utf-8')
12
+ @dv_text = DvText.new(:value => 'test',
13
+ :formatting => 'font = 12pt',
14
+ :language => language,
15
+ :encoding => encoding)
16
+ end
17
+
18
+ it 'should be an instance of DvText' do
19
+ @dv_text.should be_an_instance_of DvText
20
+ end
21
+
22
+ it 's value should be test' do
23
+ @dv_text.value.should == 'test'
24
+ end
25
+
26
+ it 'should raise ArgumentError, when value include \n' do
27
+ lambda {
28
+ @dv_text.value = "not valid value\n"
29
+ }.should raise_error(ArgumentError)
30
+ end
31
+
32
+ it 'should raise ArgumentError, when value is nil' do
33
+ lambda {
34
+ @dv_text.value = nil
35
+ }.should raise_error(ArgumentError)
36
+ end
37
+
38
+ it 'formatting should be font' do
39
+ @dv_text.formatting.should == 'font = 12pt'
40
+ end
41
+
42
+ it 'should raise ArgumentError, when formatting is empty' do
43
+ lambda{@dv_text.formatting = ""}.should raise_error(ArgumentError)
44
+ end
45
+
46
+ it 'should be mapping list'
47
+
48
+ it 'should be hyperlink'
49
+
50
+ it 's language code_string should be ja' do
51
+ @dv_text.language.code_string.should == 'ja'
52
+ end
53
+
54
+ it 's encoding should be utf-8' do
55
+ @dv_text.encoding.code_string.should == 'utf-8'
56
+ end
57
+ end
@@ -0,0 +1,59 @@
1
+ require File.dirname(__FILE__) + '/../../../../../spec_helper'
2
+ include OpenEHR::RM::DataTypes::Text
3
+
4
+ describe TermMapping do
5
+ before(:each) do
6
+ target_stub = stub(DvCodedText, :value => 'TEST')
7
+ purpose_stub = stub(DvCodedText, :value => 'automated')
8
+ @term_mapping = TermMapping.new(:target => target_stub,
9
+ :match => '=',
10
+ :purpose => purpose_stub)
11
+ end
12
+
13
+ it 'should means equivalent' do
14
+ @term_mapping.should be_equivalent
15
+ end
16
+
17
+ it 'should means narrower' do
18
+ @term_mapping.match = '<'
19
+ @term_mapping.should be_narrower
20
+ end
21
+
22
+ it 'should means broader' do
23
+ @term_mapping.match = '>'
24
+ @term_mapping.should be_broader
25
+ end
26
+
27
+ it 'should means unknown' do
28
+ @term_mapping.match = '?'
29
+ @term_mapping.should be_unknown
30
+ end
31
+
32
+ it 'should be valid match code >' do
33
+ TermMapping.is_valid_mach_code?('>').should be_true
34
+ end
35
+
36
+ it 'should be valid match code =' do
37
+ TermMapping.is_valid_mach_code?('=').should be_true
38
+ end
39
+
40
+ it 'should be valid match code <' do
41
+ TermMapping.is_valid_mach_code?('<').should be_true
42
+ end
43
+
44
+ it 'should be valid match code ?' do
45
+ TermMapping.is_valid_mach_code?('?').should be_true
46
+ end
47
+
48
+ it 'should be not valid code /' do
49
+ TermMapping.is_valid_mach_code?('/').should_not be_true
50
+ end
51
+
52
+ it 's purpose should == automated' do
53
+ @term_mapping.purpose.value.should == 'automated'
54
+ end
55
+
56
+ it 'should raise ArgumentError when match is not valid' do
57
+ lambda {@term_mapping.match = '/'}.should raise_error(ArgumentError)
58
+ end
59
+ end
@@ -0,0 +1,21 @@
1
+ require File.dirname(__FILE__) + '/../../../../../spec_helper'
2
+ include OpenEHR::RM::DataTypes::URI
3
+
4
+ describe DvEhrUri do
5
+ before(:each) do
6
+ @dv_ehr_uri = DvEhrUri.new(:value => 'ehr://test/87284370-2D4B-4e3d-A3F3-F303D2F4F34B@2005-08-02T04:30:00')
7
+ end
8
+
9
+ it 'should be an instance of EhrUri' do
10
+ @dv_ehr_uri.should be_an_instance_of DvEhrUri
11
+ end
12
+
13
+ it 's value should be valid' do
14
+ @dv_ehr_uri.value.should ==
15
+ 'ehr://test/87284370-2D4B-4e3d-A3F3-F303D2F4F34B@2005-08-02T04:30:00'
16
+ end
17
+
18
+ it 's scheme should be ehr' do
19
+ @dv_ehr_uri.scheme.should == 'ehr'
20
+ end
21
+ end
@@ -0,0 +1,36 @@
1
+ require File.dirname(__FILE__) + '/../../../../../spec_helper'
2
+ include OpenEHR::RM::DataTypes::URI
3
+
4
+ describe DvUri do
5
+ before(:each) do
6
+ @dv_uri = DvUri.new(:value =>
7
+ "http://www.openehr.jp/changeset/test?cmd=93#file0")
8
+ end
9
+
10
+ it 's fragment_id should be file0' do
11
+ @dv_uri.fragment_id.should == 'file0'
12
+ end
13
+
14
+ it 's path should be /changeset/test' do
15
+ @dv_uri.path.should == '/changeset/test'
16
+ end
17
+
18
+ it 's query should be cmd=93' do
19
+ @dv_uri.query.should == 'cmd=93'
20
+ end
21
+
22
+ it 's scheme should be http' do
23
+ @dv_uri.scheme.should == 'http'
24
+ end
25
+
26
+ it 's value should be http://www.openehr.jp/changeset/test?cmd=93#file0' do
27
+ @dv_uri.value.should == 'http://www.openehr.jp/changeset/test?cmd=93#file0'
28
+ end
29
+
30
+ it 's value change' do
31
+ lambda {
32
+ @dv_uri.value="svn://www.openehr.jp/openehr-jp/"
33
+ }.should change(@dv_uri, :value).to('svn://www.openehr.jp/openehr-jp/')
34
+ end
35
+ end
36
+
@@ -0,0 +1,79 @@
1
+ require File.dirname(__FILE__) + '/../../../../spec_helper'
2
+ include OpenEHR::RM::Demographic
3
+ include OpenEHR::RM::DataTypes::Text
4
+ include OpenEHR::RM::Support::Identification
5
+
6
+ describe Actor do
7
+ before(:each) do
8
+ name = DvText.new(:value => 'actor')
9
+ uid = HierObjectID.new(:value => '01')
10
+ identities = stub(Set, :empty? => false)
11
+ roles = stub(Set, :size => 2, :empty? => false)
12
+ languages = stub(Array, :size => 3, :empty? => false)
13
+ @actor = Actor.new(:archetype_node_id => 'at0000',
14
+ :name => name,
15
+ :uid => uid,
16
+ :identities => identities,
17
+ :roles => roles,
18
+ :languages => languages)
19
+ end
20
+
21
+ it 'should be an instance of Actor' do
22
+ @actor.should be_an_instance_of Actor
23
+ end
24
+
25
+ it 'roles should be assigned properly' do
26
+ @actor.roles.size.should be_equal 2
27
+ end
28
+
29
+ it 'should raise ArgumentError with empty roles' do
30
+ lambda {
31
+ @actor.roles = Set.new
32
+ }.should raise_error ArgumentError
33
+ end
34
+
35
+ it 'should not raise ArgumentError with nil roles' do
36
+ lambda {
37
+ @actor.roles = nil
38
+ }.should_not raise_error ArgumentError
39
+ end
40
+
41
+ it 'languages should be assigned properly' do
42
+ @actor.languages.size.should be_equal 3
43
+ end
44
+
45
+ it 'should raise ArgumentError with empty languages' do
46
+ lambda {
47
+ @actor.languages = Set.new
48
+ }.should raise_error ArgumentError
49
+ end
50
+
51
+ it 'should not raise ArgumentError with nil languages' do
52
+ lambda {
53
+ @actor.languages = nil
54
+ }.should_not raise_error ArgumentError
55
+ end
56
+
57
+ describe 'has_legal_identity' do
58
+ before(:each) do
59
+ @dummy_purpose = DvText.new(:value => 'dummy')
60
+ @dummy_identity = stub(PartyIdentity, :purpose => @dummy_purpose)
61
+ end
62
+
63
+ it 'should not have legal identity' do
64
+ identity = stub(PartyIdentity, :purpose => @dummy_purpose)
65
+ identities = [identity, @dummy_identity].to_set
66
+ @actor.identities = identities
67
+ @actor.has_legal_identity?.should be_false
68
+ end
69
+
70
+ it 'should have legal identity' do
71
+ legal_purpose = DvText.new(:value => 'legal identity')
72
+ legal_identity = stub(PartyIdentity, :purpose => legal_purpose)
73
+ identities = [@dummy_identity, legal_identity].to_set
74
+ @actor.identities = identities
75
+ @actor.has_legal_identity?.should be_true
76
+ end
77
+ end
78
+ end
79
+
@@ -0,0 +1,33 @@
1
+ require File.dirname(__FILE__) + '/../../../../spec_helper'
2
+ include OpenEHR::RM::Demographic
3
+ include OpenEHR::RM::DataTypes::Text
4
+ include OpenEHR::RM::DataStructures::ItemStructure
5
+
6
+ describe Address do
7
+ before(:each) do
8
+ name = DvText.new(:value => 'address')
9
+ details = stub(ItemStructure, :archetype_node_id => 'at0001')
10
+ @address = Address.new(:archetype_node_id => 'at0000',
11
+ :name => name,
12
+ :details => details)
13
+ end
14
+
15
+ it 'should be an instance of Address' do
16
+ @address.should be_an_instance_of Address
17
+ end
18
+
19
+ it 'type is inherit from name' do
20
+ @address.type.value.should == 'address'
21
+ end
22
+
23
+ it 'details should be assigned properly' do
24
+ @address.details.archetype_node_id.should == 'at0001'
25
+ end
26
+
27
+ it 'should raise ArgumentError with nil details' do
28
+ lambda {
29
+ @address.details = nil
30
+ }.should raise_error ArgumentError
31
+ end
32
+ end
33
+
@@ -0,0 +1,37 @@
1
+ require File.dirname(__FILE__) + '/../../../../spec_helper'
2
+ include OpenEHR::RM::Demographic
3
+ include OpenEHR::RM::DataTypes::Text
4
+ include OpenEHR::RM::DataTypes::Quantity::DateTime
5
+ include OpenEHR::RM::Support::Identification
6
+ include OpenEHR::RM::DataStructures::ItemStructure
7
+
8
+ describe Capability do
9
+ before(:each) do
10
+ name = DvText.new(:value => 'party relation')
11
+ credentials = stub(ItemStructure, :archetype_node_id => 'at0001')
12
+ lower = DvDate.new(:value => '2009-11-21')
13
+ time_validity = stub(DvInterval, :lower => lower)
14
+ @capability = Capability.new(:archetype_node_id => 'at0000',
15
+ :name => name,
16
+ :credentials => credentials,
17
+ :time_validity => time_validity)
18
+ end
19
+
20
+ it 'should be an instance of Capability' do
21
+ @capability.should be_an_instance_of Capability
22
+ end
23
+
24
+ it 'credential should be assigned properly' do
25
+ @capability.credentials.archetype_node_id.should == 'at0001'
26
+ end
27
+
28
+ it 'should raise ArgumentError when nil assigned to credentials' do
29
+ lambda {
30
+ @capability.credentials = nil
31
+ }.should raise_error ArgumentError
32
+ end
33
+
34
+ it 'time_validity should be assigned properly' do
35
+ @capability.time_validity.lower.value.should == '2009-11-21'
36
+ end
37
+ end
@@ -0,0 +1,45 @@
1
+ require File.dirname(__FILE__) + '/../../../../spec_helper'
2
+ include OpenEHR::RM::Demographic
3
+ include OpenEHR::RM::DataTypes::Quantity::DateTime
4
+ include OpenEHR::RM::DataTypes::Text
5
+
6
+ describe Contact do
7
+ before(:each) do
8
+ name = DvText.new(:value => 'contact')
9
+ addresses = stub(Array, :size => 2, :empty? => false)
10
+ upper = DvDate.new(:value => '2009-11-20')
11
+ time_validity = stub(DvInterval, :upper => upper)
12
+ @contact = Contact.new(:archetype_node_id => 'at0000',
13
+ :name => name,
14
+ :addresses => addresses,
15
+ :time_validity => time_validity)
16
+ end
17
+
18
+ it 'should be an instance of Contact' do
19
+ @contact.should be_an_instance_of Contact
20
+ end
21
+
22
+ it 'addresses should be assigned properly' do
23
+ @contact.addresses.size.should == 2
24
+ end
25
+
26
+ it 'should raise ArgumentError with nil address' do
27
+ lambda {
28
+ @contact.addresses = nil
29
+ }.should raise_error ArgumentError
30
+ end
31
+
32
+ it 'should raise ArgumentError with empty addresses' do
33
+ lambda {
34
+ @contact.addresses = [ ]
35
+ }.should raise_error ArgumentError
36
+ end
37
+
38
+ it 'time_validity should be assigned properly' do
39
+ @contact.time_validity.upper.value.should == '2009-11-20'
40
+ end
41
+
42
+ it 'purpose should be inherit as name' do
43
+ @contact.purpose.value.should == 'contact'
44
+ end
45
+ end
@@ -0,0 +1,32 @@
1
+ require File.dirname(__FILE__) + '/../../../../spec_helper'
2
+ include OpenEHR::RM::Demographic
3
+ include OpenEHR::RM::DataTypes::Text
4
+ include OpenEHR::RM::DataStructures::ItemStructure
5
+
6
+ describe PartyIdentity do
7
+ before(:each) do
8
+ name = DvText.new(:value => 'test')
9
+ details = stub(ItemStructure, :archetype_node_id => 'at0002')
10
+ @party_identity = PartyIdentity.new(:archetype_node_id => 'at0001',
11
+ :name => name,
12
+ :details => details)
13
+ end
14
+
15
+ it 'should be an instance of PartyIdentity' do
16
+ @party_identity.should be_an_instance_of PartyIdentity
17
+ end
18
+
19
+ it 'details should be assigned properly' do
20
+ @party_identity.details.archetype_node_id.should == 'at0002'
21
+ end
22
+
23
+ it 'should raise ArgumentError with nil details' do
24
+ lambda {
25
+ @party_identity.details = nil
26
+ }.should raise_error ArgumentError
27
+ end
28
+
29
+ it 'purpose should return as same as name' do
30
+ @party_identity.purpose.value.should == 'test'
31
+ end
32
+ end
@@ -0,0 +1,84 @@
1
+ require File.dirname(__FILE__) + '/../../../../spec_helper'
2
+ include OpenEHR::RM::Demographic
3
+ include OpenEHR::RM::DataTypes::Text
4
+ include OpenEHR::RM::DataTypes::Quantity::DateTime
5
+ include OpenEHR::RM::Support::Identification
6
+ include OpenEHR::RM::DataStructures::ItemStructure
7
+
8
+ describe PartyRelationship do
9
+ before(:each) do
10
+ name = DvText.new(:value => 'party relation')
11
+ uid = HierObjectID.new(:value => '01')
12
+ details = stub(ItemStructure, :archetype_node_id => 'at0002')
13
+ upper = DvDate.new(:value => '2009-11-21')
14
+ time_validity = stub(DvInterval, :upper => upper)
15
+ source_id = ObjectID.new(:value => '01')
16
+ source = stub(PartyRef, :id => source_id, :type => 'source')
17
+ target_id = ObjectID.new(:value => '02')
18
+ target = stub(PartyRef, :id => target_id)
19
+ @party_relationship =
20
+ PartyRelationship.new(:archetype_node_id => 'at0000',
21
+ :name => name,
22
+ :uid => uid,
23
+ :details => details,
24
+ :time_validity => time_validity,
25
+ :source => source,
26
+ :target => target)
27
+ end
28
+
29
+ it 'should be an instance of PartyRelationship' do
30
+ @party_relationship.should be_an_instance_of PartyRelationship
31
+ end
32
+
33
+ it 'uid should be assigned properly' do
34
+ @party_relationship.uid.value.should == '01'
35
+ end
36
+
37
+ it 'should raise ArgumentError when nil assigned to uid' do
38
+ lambda {
39
+ @party_relationship.uid = nil
40
+ }.should raise_error ArgumentError
41
+ end
42
+
43
+ it 'details should be assigned properly' do
44
+ @party_relationship.details.archetype_node_id.should == 'at0002'
45
+ end
46
+
47
+ it 'time_validity should be assigned properly' do
48
+ @party_relationship.time_validity.upper.value.should == '2009-11-21'
49
+ end
50
+
51
+ it 'source should be_assigned properly' do
52
+ @party_relationship.source.type.should == 'source'
53
+ end
54
+
55
+ it 'should raise ArgumentError when source is assinged nil' do
56
+ lambda {
57
+ @party_relationship.source = nil
58
+ }.should raise_error ArgumentError
59
+ end
60
+
61
+ it 'should raise ArgumentError when source is not matched with source' do
62
+ invalid_id = ObjectID.new(:value => '10')
63
+ invalid_source = stub(PartyRef, :id => invalid_id)
64
+ lambda {
65
+ @party_relationship.source = invalid_source
66
+ }.should raise_error ArgumentError
67
+ end
68
+
69
+ it 'target should be assined properly' do
70
+ @party_relationship.target.id.value.should == '02'
71
+ end
72
+
73
+ it 'should raise ArgumentError with target is assigned by nil' do
74
+ lambda {
75
+ @party_relationship.target =nil
76
+ }.should raise_error ArgumentError
77
+ end
78
+
79
+ it 'type should be inherited of name' do
80
+ @party_relationship.type.value.should == 'party relation'
81
+ end
82
+ end
83
+
84
+