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,12 @@
1
+ require File.dirname(__FILE__) + '/../../../../../spec_helper'
2
+ include OpenEHR::RM::Support::Identification
3
+
4
+ describe HierObjectID do
5
+ before(:each) do
6
+ @hier_object_id = HierObjectID.new(:value => '2003045')
7
+ end
8
+
9
+ it 'should be an instance of HierObjectID' do
10
+ @hier_object_id.should be_an_instance_of HierObjectID
11
+ end
12
+ end
@@ -0,0 +1,12 @@
1
+ require File.dirname(__FILE__) + '/../../../../../spec_helper'
2
+ include OpenEHR::RM::Support::Identification
3
+
4
+ describe InternetID do
5
+ before(:each) do
6
+ @internet_id = InternetID.new(:value => 'jp.openehr')
7
+ end
8
+
9
+ it 'should be an instance of IsoOID' do
10
+ @internet_id.should be_an_instance_of InternetID
11
+ end
12
+ end
@@ -0,0 +1,12 @@
1
+ require File.dirname(__FILE__) + '/../../../../../spec_helper'
2
+ include OpenEHR::RM::Support::Identification
3
+
4
+ describe IsoOID do
5
+ before(:each) do
6
+ @iso_oid = IsoOID.new(:value => '1.3.6.0.1')
7
+ end
8
+
9
+ it 'should be an instance of IsoOID' do
10
+ @iso_oid.should be_an_instance_of IsoOID
11
+ end
12
+ end
@@ -0,0 +1,34 @@
1
+ require File.dirname(__FILE__) + '/../../../../../spec_helper'
2
+ include OpenEHR::RM::Support::Identification
3
+
4
+ describe LocatableRef do
5
+ before(:each) do
6
+ object_version_id = ObjectVersionID.new(:value => 'deadbeef::babe::1')
7
+ @locatable_ref = LocatableRef.new(:id => object_version_id,
8
+ :namespace => 'local',
9
+ :type =>'PERSON',
10
+ :path => 'test/support')
11
+ end
12
+
13
+ it 'should be an instance of LocatableRef' do
14
+ @locatable_ref.should be_an_instance_of LocatableRef
15
+ end
16
+
17
+ it 'id should be deadbeef::babe::1' do
18
+ @locatable_ref.id.value.should == 'deadbeef::babe::1'
19
+ end
20
+
21
+ it 'path should be test/support' do
22
+ @locatable_ref.path.should == 'test/support'
23
+ end
24
+
25
+ it 'as_uri should be ehr://deadbeef::babe::1/test/support' do
26
+ @locatable_ref.as_uri.should == 'ehr://deadbeef::babe::1/test/support'
27
+ end
28
+
29
+ it 'should raise ArgumentError with empty path' do
30
+ lambda {
31
+ @locatable_ref.path = ''
32
+ }.should raise_error ArgumentError
33
+ end
34
+ end
@@ -0,0 +1,24 @@
1
+ require File.dirname(__FILE__) + '/../../../../../spec_helper'
2
+ include OpenEHR::RM::Support::Identification
3
+
4
+ describe ObjectID do
5
+ before(:each) do
6
+ @object_id = ObjectID.new(:value => '1')
7
+ end
8
+
9
+ it 'should be an instance of ObjectID' do
10
+ @object_id.should be_an_instance_of ObjectID
11
+ end
12
+
13
+ it 'value should be 1' do
14
+ @object_id.value.should == '1'
15
+ end
16
+
17
+ it 'should equal with same value' do
18
+ @object_id.should == ObjectID.new(:value => '1')
19
+ end
20
+
21
+ it 'should_not equal with other value' do
22
+ @object_id.should_not == ObjectID.new(:value => 'a')
23
+ end
24
+ end
@@ -0,0 +1,33 @@
1
+ require File.dirname(__FILE__) + '/../../../../../spec_helper'
2
+ include OpenEHR::RM::Support::Identification
3
+
4
+ describe ObjectRef do
5
+ before(:each) do
6
+ object_id = ObjectID.new(:value => 'deadbeefbabe')
7
+ @object_ref = ObjectRef.new(:id => object_id,
8
+ :namespace => 'local',
9
+ :type => 'PARTY')
10
+ end
11
+
12
+ it 'id.value should deadbeefbabe' do
13
+ @object_ref.id.value.should == 'deadbeefbabe'
14
+ end
15
+
16
+ it 'should be an isntance of ObjectRef' do
17
+ @object_ref.should be_an_instance_of ObjectRef
18
+ end
19
+
20
+ it 'namespace should be local' do
21
+ @object_ref.namespace.should == 'local'
22
+ end
23
+
24
+ it 'type should be PARTY' do
25
+ @object_ref.type.should == 'PARTY'
26
+ end
27
+
28
+ it 'should raise ArgumentError with invalid namespace' do
29
+ lambda {
30
+ @object_ref.namespace = 'a****'
31
+ }.should raise_error ArgumentError
32
+ end
33
+ end
@@ -0,0 +1,60 @@
1
+ require File.dirname(__FILE__) + '/../../../../../spec_helper'
2
+ include OpenEHR::RM::Support::Identification
3
+
4
+ describe ObjectVersionID do
5
+ before(:each) do
6
+ @object_version_id = ObjectVersionID.new(:value => 'F7C5C7B7-75DB-4b39-9A1E-C0BA9BFDBDEC::87284370-2D4B-4e3d-A3F3-F303D2F4F34B::2')
7
+
8
+ end
9
+
10
+ it 'should be an instance of ObjectVersionID' do
11
+ @object_version_id.should be_an_instance_of ObjectVersionID
12
+ end
13
+
14
+ it 'value should be F7C5C7B7-75DB-4b39-9A1E-C0BA9BFDBDEC::87284370-2D4B-4e3d-A3F3-F303D2F4F34B::2' do
15
+ @object_version_id.value.should == 'F7C5C7B7-75DB-4b39-9A1E-C0BA9BFDBDEC::87284370-2D4B-4e3d-A3F3-F303D2F4F34B::2'
16
+ end
17
+
18
+ it 'should not be branched' do
19
+ @object_version_id.is_branch?.should be_false
20
+ end
21
+
22
+ it 'should have valid object_id' do
23
+ @object_version_id.object_id.value.should ==
24
+ 'F7C5C7B7-75DB-4b39-9A1E-C0BA9BFDBDEC'
25
+ end
26
+
27
+ it 'should have valid creating_system_id' do
28
+ @object_version_id.creating_system_id.value.should ==
29
+ '87284370-2D4B-4e3d-A3F3-F303D2F4F34B'
30
+ end
31
+
32
+ it 'should raise ArgumentError with invalid format' do
33
+ lambda {
34
+ @object_version_id.value = 'invalid:form'
35
+ }.should raise_error ArgumentError
36
+ end
37
+
38
+ it 'should raise ArgumentError with nil object id' do
39
+ lambda {
40
+ @object_version_id.object_id = nil
41
+ }.should raise_error ArgumentError
42
+ end
43
+
44
+ it 'should raise ArgumentError with nil creating system id' do
45
+ lambda {
46
+ @object_version_id.creating_system_id = nil
47
+ }.should raise_error ArgumentError
48
+ end
49
+
50
+ it 'should raise ArgumentError with nil version_tree_id' do
51
+ lambda {
52
+ @object_version_id.version_tree_id = nil
53
+ }.should raise_error ArgumentError
54
+ end
55
+
56
+ it 'should be branch if version_identifier represent branch' do
57
+ @object_version_id.version_tree_id.value = '2.3.4'
58
+ @object_version_id.is_branch?.should be_true
59
+ end
60
+ end
@@ -0,0 +1,29 @@
1
+ require File.dirname(__FILE__) + '/../../../../../spec_helper'
2
+ include OpenEHR::RM::Support::Identification
3
+
4
+ describe PartyRef do
5
+ before(:each) do
6
+ object_id = stub(ObjectID, :value => 'test')
7
+ @party_ref = PartyRef.new(:id => object_id,
8
+ :type => 'PERSON',
9
+ :namespace => 'test')
10
+ end
11
+
12
+ it 'should be an instance of PartyRef' do
13
+ @party_ref.should be_an_instance_of PartyRef
14
+ end
15
+
16
+ %w[PERSON ORGANISATION GROUP AGENT ROLE PARTY ACTOR].each do |type|
17
+ it "should not raise ArgumentError with #{type} type" do
18
+ lambda {
19
+ @party_ref.type = type
20
+ }.should_not raise_error ArgumentError
21
+ end
22
+ end
23
+
24
+ it 'should raise ArgumentError with UNKNOWN type' do
25
+ lambda {
26
+ @party_ref.type = 'UNKNOWN'
27
+ }.should raise_error ArgumentError
28
+ end
29
+ end
@@ -0,0 +1,12 @@
1
+ require File.dirname(__FILE__) + '/../../../../../spec_helper'
2
+ include OpenEHR::RM::Support::Identification
3
+
4
+ describe TemplateID do
5
+ before(:each) do
6
+ @template_id = TemplateID.new(:value => 'uk.nhs.cfh:openehr-EHR-COMPOSITION.admission_ed.v5')
7
+ end
8
+
9
+ it 'should be an isntance of TemplateID' do
10
+ @template_id.should be_an_instance_of TemplateID
11
+ end
12
+ end
@@ -0,0 +1,33 @@
1
+ require File.dirname(__FILE__) + '/../../../../../spec_helper'
2
+ include OpenEHR::RM::Support::Identification
3
+
4
+ describe TerminologyID do
5
+ before(:each) do
6
+ @terminology_id = TerminologyID.new(:value => 'ICD10(2003)')
7
+ end
8
+
9
+ it 'should be an instance of TerminologyID' do
10
+ @terminology_id.should be_an_instance_of TerminologyID
11
+ end
12
+
13
+ it 's name should be ICD10' do
14
+ @terminology_id.name.should == 'ICD10'
15
+ end
16
+
17
+ it 's version_id should be 2003' do
18
+ @terminology_id.version_id.should == '2003'
19
+ end
20
+
21
+ it 's value should be ICD10(2003)' do
22
+ @terminology_id.value.should == 'ICD10(2003)'
23
+ end
24
+
25
+ it 'should only name when version_id is nil' do
26
+ @terminology_id.version_id = ''
27
+ @terminology_id.value.should == 'ICD10'
28
+ end
29
+
30
+ it 'should has another constructor' do
31
+ @terminology_id = TerminologyID.new(:name => 'SNOMED-CT')
32
+ end
33
+ end
@@ -0,0 +1,50 @@
1
+ require File.dirname(__FILE__) + '/../../../../../spec_helper'
2
+ include OpenEHR::RM::Support::Identification
3
+
4
+ describe UIDBasedID do
5
+ before(:each) do
6
+ @uid_based_id = UIDBasedID.new(:value => 'rrip::0.0.3')
7
+ end
8
+
9
+ it 'should be an instance of UIDBasedID' do
10
+ @uid_based_id.should be_an_instance_of UIDBasedID
11
+ end
12
+
13
+ it 'value should be rrip::0.0.3' do
14
+ @uid_based_id.value.should == 'rrip::0.0.3'
15
+ end
16
+
17
+ it 'root should be rrip' do
18
+ @uid_based_id.root.value.should == 'rrip'
19
+ end
20
+
21
+ it 'extention should be 0.0.3' do
22
+ @uid_based_id.extension.should == '0.0.3'
23
+ end
24
+
25
+ it 'should have extension' do
26
+ @uid_based_id.has_extension?.should be_true
27
+ end
28
+
29
+ describe 'when extension is empty' do
30
+ before(:each) do
31
+ @uid_based_id = UIDBasedID.new(:value => '10001')
32
+ end
33
+
34
+ it 'value should be 10001' do
35
+ @uid_based_id.value.should == '10001'
36
+ end
37
+
38
+ it 'has_extension? should not be true' do
39
+ @uid_based_id.has_extension?.should_not be_true
40
+ end
41
+
42
+ it 's extention should be empty' do
43
+ @uid_based_id.extension.should == ''
44
+ end
45
+
46
+ it 's root should be 10001' do
47
+ @uid_based_id.root.value.should == '10001'
48
+ end
49
+ end
50
+ end
@@ -0,0 +1,29 @@
1
+ require File.dirname(__FILE__) + '/../../../../../spec_helper'
2
+ include OpenEHR::RM::Support::Identification
3
+
4
+ describe UID do
5
+ before(:each) do
6
+ @uid = UID.new(:value => '1001')
7
+ end
8
+
9
+ it 'should be an instance of UID' do
10
+ @uid.should be_an_instance_of UID
11
+ end
12
+
13
+ it 's value should be 1001' do
14
+ @uid.value.should == '1001'
15
+ end
16
+
17
+ it 'should raise ArgumentError with nil value' do
18
+ lambda {
19
+ @uid.value = nil
20
+ }.should raise_error ArgumentError
21
+ end
22
+
23
+ it 'should raise ArgumentError with empty value' do
24
+ lambda {
25
+ @uid.value = ''
26
+ }.should raise_error ArgumentError
27
+ end
28
+ end
29
+
@@ -0,0 +1,104 @@
1
+ require File.dirname(__FILE__) + '/../../../../../spec_helper'
2
+ include OpenEHR::RM::Support::Identification
3
+
4
+ describe VersionTreeID do
5
+ before(:each) do
6
+ @version_tree_id = VersionTreeID.new(:value => '1.2.3')
7
+ end
8
+
9
+ it 'should be an instance of VersionTreeID' do
10
+ @version_tree_id.should be_an_instance_of VersionTreeID
11
+ end
12
+
13
+ it 'value should be 1.2.3' do
14
+ @version_tree_id.value.should == '1.2.3'
15
+ end
16
+
17
+ it 'trunk_version should 1' do
18
+ @version_tree_id.trunk_version.should == '1'
19
+ end
20
+
21
+ it 'branch_number should 2' do
22
+ @version_tree_id.branch_number.should == '2'
23
+ end
24
+
25
+ it 'branch_version should 3' do
26
+ @version_tree_id.branch_version.should == '3'
27
+ end
28
+
29
+ it 'is_first? should be true' do
30
+ @version_tree_id.is_first?.should be_true
31
+ end
32
+
33
+ it 'is_branch? should be true' do
34
+ @version_tree_id.is_branch?.should be_true
35
+ end
36
+
37
+ it 'should raise ArgumentError with nil trunk version' do
38
+ lambda {
39
+ @version_tree_id.trunk_version = nil
40
+ }.should raise_error ArgumentError
41
+ end
42
+
43
+ it 'should raise ArgumentError with 0 trunk version' do
44
+ lambda {
45
+ @version_tree_id.trunk_version = 0
46
+ }.should raise_error ArgumentError
47
+ end
48
+
49
+ it 'should raise ArgumentError with 0 branch number' do
50
+ lambda {
51
+ @version_tree_id.branch_number = 0
52
+ }.should raise_error ArgumentError
53
+ end
54
+
55
+ it 'should raise ArgumentError with 0 branch version' do
56
+ lambda {
57
+ @version_tree_id.branch_version = 0
58
+ }.should raise_error ArgumentError
59
+ end
60
+
61
+ describe 'partial version tree id' do
62
+ describe 'version 4.5' do
63
+ before(:each) do
64
+ @version_tree_id = VersionTreeID.new(:value => '4.5')
65
+ end
66
+
67
+ it 'value should be 4.5' do
68
+ @version_tree_id.value.should == '4.5'
69
+ end
70
+
71
+ it 'should be nil branch version' do
72
+ @version_tree_id.branch_version.should be_nil
73
+ end
74
+
75
+ it 'is_first? should not be true' do
76
+ @version_tree_id.is_first?.should_not be_true
77
+ end
78
+ end
79
+
80
+ describe 'version 6' do
81
+ before(:each) do
82
+ @version_tree_id = VersionTreeID.new(:value => '6')
83
+ end
84
+
85
+ it 'value should be 6' do
86
+ @version_tree_id.value.should == '6'
87
+ end
88
+
89
+ it 'should be nil branch number' do
90
+ @version_tree_id.branch_number.should be_nil
91
+ end
92
+
93
+ it 'is_branch should not be true' do
94
+ @version_tree_id.is_branch?.should_not be_true
95
+ end
96
+
97
+ it 'should raise ArgumentError if assinged branch version' do
98
+ lambda {
99
+ @version_tree_id.branch_version = '7'
100
+ }.should raise_error ArgumentError
101
+ end
102
+ end
103
+ end
104
+ end
@@ -0,0 +1,7 @@
1
+ require File.dirname(__FILE__) + '/../../../../spec_helper'
2
+ include OpenEHR::RM::Support::Measurement
3
+
4
+ describe MeasurementService do
5
+
6
+
7
+ end
@@ -0,0 +1,24 @@
1
+ require File.dirname(__FILE__) + '/../../../../spec_helper'
2
+ include OpenEHR::RM::Support::Terminology
3
+
4
+ describe TerminologyService do
5
+ before(:each) do
6
+ @ts ||= TerminologyService.new
7
+ @terminology_mock = mock('terminology')
8
+ end
9
+
10
+ it 'should get terminology by its name' do
11
+ end
12
+
13
+ it 'should get code_set by its name'
14
+
15
+ it 'should reply if it has terminology or not'
16
+
17
+ it 'should reply if it has terminology or not'
18
+
19
+ it 'should reply all terminology_identifires'
20
+
21
+ it 'should get openehr code stes'
22
+
23
+ it 'should get code_set_identifiers'
24
+ end
@@ -0,0 +1,20 @@
1
+ archetype (adl_version=1.4)
2
+ adl-test-ENTRY.most_minimal.draft
3
+ concept
4
+ [at0000]
5
+ language
6
+ original_language = <[ISO_639-1::en]>
7
+ definition
8
+ ENTRY[at0000] matches {*}
9
+ ontology
10
+ term_definitions = <
11
+ ["en"] = <
12
+ items = <
13
+ ["at0000"] = <
14
+ text = <"most minimal">
15
+ description = <"most minimal">
16
+ >
17
+ >
18
+ >
19
+ >
20
+
@@ -0,0 +1,47 @@
1
+ require File.dirname(__FILE__) + '/../../../spec_helper'
2
+ require File.dirname(__FILE__) + '/sample_archetype_spec'
3
+ include OpenEHR::Serializer
4
+ include OpenEHR::AM::Archetype
5
+ include OpenEHR::AM::Archetype::Ontology
6
+ include OpenEHR::RM::Support::Identification
7
+
8
+ describe ADLSerializer do
9
+
10
+ before(:all) do
11
+ current_dir = File.dirname(__FILE__)
12
+ adl_file = File.open(current_dir + '/openEHR-EHR-SECTION.test.v1.adl')
13
+ adl = adl_file.readlines
14
+ @sample_header = adl[0..7].join
15
+ @sample_description = adl[9..22].join
16
+ @sample_definition = adl[24..25].join
17
+ @sample_ontology = adl[27..37].join
18
+ @sample_total = adl.join
19
+ adl_file.close
20
+ @archetype = sample_archetype
21
+ @adl_serializer = ADLSerializer.new(@archetype)
22
+ end
23
+
24
+ it 'should be an instance of ADLSerializer' do
25
+ @adl_serializer.should be_an_instance_of ADLSerializer
26
+ end
27
+
28
+ it 'header should return archetype context' do
29
+ @adl_serializer.header.should == @sample_header
30
+ end
31
+
32
+ it 'description should return archetype description' do
33
+ @adl_serializer.description.should == @sample_description
34
+ end
35
+
36
+ it 'definition should return ADL formatted definition' do
37
+ @adl_serializer.definition.should == @sample_definition
38
+ end
39
+
40
+ it 'ontology should return ADL formatted ontology' do
41
+ @adl_serializer.ontology.should == @sample_ontology
42
+ end
43
+
44
+ it 'should return serialized ADL format' do
45
+ @adl_serializer.serialize.should == @sample_total
46
+ end
47
+ end
@@ -0,0 +1,38 @@
1
+ archetype
2
+ openEHR-EHR-SECTION.test.v1
3
+
4
+ concept
5
+ [at0000]
6
+
7
+ language
8
+ original_language = <[ISO_639-1::ja]>
9
+
10
+ description
11
+ original_author = <
12
+ ["email"] = <"skoba@moss.gr.jp">
13
+ ["organisation"] = <"openEHR.jp">
14
+ ["name"] = <"Shinji KOBAYASHI">
15
+ >
16
+ lifecycle_state = <"draft">
17
+ details = <
18
+ ["ja"] = <
19
+ language = <[ISO_639-1::ja]>
20
+ purpose = <"Serializer test">
21
+ misuse = <"evaluate message">
22
+ >
23
+ >
24
+
25
+ definition
26
+ SECTION[at0000] matches {*}
27
+
28
+ ontology
29
+ term_definitions = <
30
+ ["ja"] = <
31
+ items = <
32
+ ["at0000"] = <
33
+ text = <"simple test">
34
+ description = <"simple test for serializer">
35
+ >
36
+ >
37
+ >
38
+ >
@@ -0,0 +1,58 @@
1
+ <?xml version='1.0' encoding='UTF-8'?>
2
+ <archetype xmlns="http://schemas.openehr.org/v1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
3
+ <archetype_id>
4
+ <value>openEHR-EHR-SECTION.test.v1</value>
5
+ </archetype_id>
6
+ <concept>at0000</concept>
7
+ <original_language>
8
+ <terminology_id>
9
+ <value>ISO_639-1</value>
10
+ </terminology_id>
11
+ <code_string>ja</code_string>
12
+ </original_language>
13
+ <description>
14
+ <original_author id="email">skoba@moss.gr.jp</original_author>
15
+ <original_author id="organisation">openEHR.jp</original_author>
16
+ <original_author id="name">Shinji KOBAYASHI</original_author>
17
+ <lifecycle_state>draft</lifecycle_state>
18
+ <details>
19
+ <language>
20
+ <terminology_id>
21
+ <value>ISO_639-1</value>
22
+ </terminology_id>
23
+ <code_string>ja</code_string>
24
+ </language>
25
+ <purpose>Serializer test</purpose>
26
+ <misuse>evaluate message</misuse>
27
+ </details>
28
+ </description>
29
+ <definition>
30
+ <rm_type_name>SECTION</rm_type_name>
31
+ <occurrence>
32
+ <lower_unbounded>false</lower_unbounded>
33
+ <upper_unbounded>false</upper_unbounded>
34
+ <lower>1</lower>
35
+ <upper>1</upper>
36
+ </occurrence>
37
+ <node_id>at0000</node_id>
38
+ </definition>
39
+ <ontology>
40
+ <specialisation_depth>0</specialisation_depth>
41
+ <term_definitions>
42
+ <language>ja</language>
43
+ <terms>
44
+ <code>at0000</code>
45
+ <items>
46
+ <item>
47
+ <key>text</key>
48
+ <value>simple test</value>
49
+ </item>
50
+ <item>
51
+ <key>description</key>
52
+ <value>simple test for serializer</value>
53
+ </item>
54
+ </items>
55
+ </terms>
56
+ </term_definitions>
57
+ </ontology>
58
+ </archetype>