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,37 @@
1
+ require File.dirname(__FILE__) + '/../../../../../../spec_helper'
2
+ #require File.dirname(__FILE__) + '/shared_examples_spec'
3
+ include OpenEHR::RM::DataStructures::ItemStructure
4
+ include OpenEHR::RM::Composition::Content::Entry
5
+ include OpenEHR::RM::DataTypes::Text
6
+
7
+ describe Evaluation do
8
+ let(:name) {DvText.new(:value => 'entry package')}
9
+ let(:language) { double('language',:code_string => 'ja')}
10
+ let(:encoding) { double('encoding', :code_string => 'UTF-8')}
11
+ let(:subject) { double('PartyProxy')}
12
+ # it_should_behave_like 'entry'
13
+
14
+ before(:each) do
15
+ data = stub(ItemStructure, :archetype_node_id => 'at0002')
16
+ @evaluation = Evaluation.new(:archetype_node_id => 'at0001',
17
+ :name => name,
18
+ :language => language,
19
+ :encoding => encoding,
20
+ :subject => subject,
21
+ :data => data)
22
+ end
23
+
24
+ it 'should be an instance of Evaluation' do
25
+ @evaluation.should be_an_instance_of Evaluation
26
+ end
27
+
28
+ it 'data should be properly assigned' do
29
+ @evaluation.data.archetype_node_id.should == 'at0002'
30
+ end
31
+
32
+ it 'should raise ArgumentError when nil assigned to data' do
33
+ lambda {
34
+ @evaluation.data = nil
35
+ }.should raise_error ArgumentError
36
+ end
37
+ end
@@ -0,0 +1,51 @@
1
+ require File.dirname(__FILE__) + '/../../../../../../spec_helper'
2
+ include OpenEHR::RM::DataStructures::ItemStructure
3
+ include OpenEHR::RM::Composition::Content::Entry
4
+ include OpenEHR::RM::Support::Identification
5
+
6
+ describe InstructionDetails do
7
+ before(:each) do
8
+ instruction_id = stub(LocatableRef, :path => '[instruction]/[test]')
9
+ wf_details = stub(ItemStructure, :archetype_node_id => 'at0004')
10
+ @instruction_details =
11
+ InstructionDetails.new(:instruction_id => instruction_id,
12
+ :activity_id => 'at0003',
13
+ :wf_details => wf_details)
14
+ end
15
+
16
+ it 'should be an instance of InstructionDetails' do
17
+ @instruction_details.should be_an_instance_of InstructionDetails
18
+ end
19
+
20
+ it 'instruction_id should be assigned properly' do
21
+ @instruction_details.instruction_id.path.should ==
22
+ '[instruction]/[test]'
23
+ end
24
+
25
+ it 'should raise ArgumentError with nil instruction_id' do
26
+ lambda {
27
+ @instruction_details.instruction_id = nil
28
+ }.should raise_error ArgumentError
29
+ end
30
+
31
+ it 'activity_id should be assigned properly' do
32
+ @instruction_details.activity_id.should == 'at0003'
33
+ end
34
+
35
+ it 'should raise ArgumentError with nil activity_id' do
36
+ lambda {
37
+ @instruction_details.activity_id = nil
38
+ }.should raise_error ArgumentError
39
+ end
40
+
41
+ it 'should raise ArgumentError with empty activity_id' do
42
+ lambda {
43
+ @instruction_details.activity_id = ''
44
+ }.should raise_error ArgumentError
45
+ end
46
+
47
+ it 'wf_details should be assigned properly' do
48
+ @instruction_details.wf_details.archetype_node_id.should ==
49
+ 'at0004'
50
+ end
51
+ end
@@ -0,0 +1,62 @@
1
+ require File.dirname(__FILE__) + '/../../../../../../spec_helper'
2
+ #require File.dirname(__FILE__) + '/shared_examples_spec'
3
+ include OpenEHR::RM::Composition::Content::Entry
4
+ include OpenEHR::RM::DataTypes::Text
5
+ include OpenEHR::RM::DataTypes::Quantity::DateTime
6
+ include OpenEHR::RM::DataTypes::Encapsulated
7
+
8
+ describe Instruction do
9
+ # it_should_behave_like 'entry'
10
+ let(:name) {DvText.new(:value => 'entry package')}
11
+ let(:language) { double('language',:code_string => 'ja')}
12
+ let(:encoding) { double('encoding', :code_string => 'UTF-8')}
13
+ let(:subject) { double('PartyProxy')}
14
+
15
+ before(:each) do
16
+ narrative = DvText.new(:value => 'instruction test')
17
+ activities = stub(Array, :size => 5, :empty? => false)
18
+ expiry_time = DvDateTime.new(:value => '2009-11-18T20:58:34')
19
+ wf_definition = stub(DvParsable, :value => 'behavior driven')
20
+ @instruction= Instruction.new(:archetype_node_id => 'at0001',
21
+ :name => name,
22
+ :language => language,
23
+ :encoding => encoding,
24
+ :subject => subject,
25
+ :narrative => narrative,
26
+ :activities => activities,
27
+ :expiry_time => expiry_time,
28
+ :wf_definition => wf_definition)
29
+ end
30
+
31
+ it 'should be an instance of Instruction' do
32
+ @instruction.should be_an_instance_of Instruction
33
+ end
34
+
35
+ it 'narrative should be assigned properly' do
36
+ @instruction.narrative.value.should == 'instruction test'
37
+ end
38
+
39
+ it 'should raise ArgumentError when narrative is assined with nil' do
40
+ lambda {
41
+ @instruction.narrative = nil
42
+ }.should raise_error ArgumentError
43
+ end
44
+
45
+ it 'activities should be assigned properly' do
46
+ @instruction.activities.size.should be_equal 5
47
+ end
48
+
49
+ it 'should raise ArgumentError with empty activities' do
50
+ lambda {
51
+ @instruction.activities = [ ]
52
+ }.should raise_error ArgumentError
53
+ end
54
+
55
+ it 'expiry_time should be assigned properly' do
56
+ @instruction.expiry_time.value.should == '2009-11-18T20:58:34'
57
+ end
58
+
59
+ it 'wf_definition should be assigned properly' do
60
+ @instruction.wf_definition.value.should == 'behavior driven'
61
+ end
62
+ end
@@ -0,0 +1,46 @@
1
+ require File.dirname(__FILE__) + '/../../../../../../spec_helper'
2
+ include OpenEHR::RM::Composition::Content::Entry
3
+ include OpenEHR::RM::DataTypes::Text
4
+
5
+ describe IsmTransition do
6
+ before(:each) do
7
+ current_state = stub(DvCodedText, :value => 'planned')
8
+ transition = stub(DvCodedText, :value => 'scheduled')
9
+ careflow_step = stub(DvCodedText, :value => 'completed')
10
+ @ism_transition = IsmTransition.new(:current_state => current_state,
11
+ :transition => transition,
12
+ :careflow_step => careflow_step)
13
+ end
14
+
15
+ it 'should be an instance of IsmTransition' do
16
+ @ism_transition.should be_an_instance_of IsmTransition
17
+ end
18
+
19
+ it 'current_status should be assigned properly' do
20
+ @ism_transition.current_state.value.should == 'planned'
21
+ end
22
+
23
+ it 'should raise ArgumentError with nil current state' do
24
+ lambda {
25
+ @ism_transition.current_state = nil
26
+ }.should raise_error ArgumentError
27
+ end
28
+
29
+ it 'should raise ArgumentError when current_state has invalid code'
30
+
31
+ it 'transition should be assined properly' do
32
+ @ism_transition.transition.value.should == 'scheduled'
33
+ end
34
+
35
+ it 'should raise ArgumentError with nil transition' do
36
+ lambda {
37
+ @ism_transition.transition = nil
38
+ }.should raise_error ArgumentError
39
+ end
40
+
41
+ it 'should raise ArugmentError with invalid transition code'
42
+
43
+ it 'careflow_step should be assigned properly' do
44
+ @ism_transition.careflow_step.value.should == 'completed'
45
+ end
46
+ end
@@ -0,0 +1,45 @@
1
+ $:.unshift(File.dirname(__FILE__)) unless
2
+ $:.include?(File.dirname(__FILE__)) || $:.include?(File.expand_path(File.dirname(__FILE__)))
3
+ require File.dirname(__FILE__) + '/../../../../../../spec_helper'
4
+ #require File.dirname(__FILE__) + '/shared_examples_spec'
5
+ include OpenEHR::RM::DataStructures::History
6
+ include OpenEHR::RM::Composition::Content::Entry
7
+ include OpenEHR::RM::DataTypes::Text
8
+
9
+ describe Observation do
10
+ # it_should_behave_like 'entry'
11
+ let(:name) {DvText.new(:value => 'entry package')}
12
+ let(:language) { double('language',:code_string => 'ja')}
13
+ let(:encoding) { double('encoding', :code_string => 'UTF-8')}
14
+ let(:subject) { double('PartyProxy')}
15
+
16
+ before(:each) do
17
+ data = stub(History, :archetype_node_id => 'at0002')
18
+ state = stub(History, :archetype_node_id => 'at0003')
19
+ @observation = Observation.new(:archetype_node_id => 'at0001',
20
+ :name => name,
21
+ :language => language,
22
+ :encoding => encoding,
23
+ :subject => subject,
24
+ :data => data,
25
+ :state => state)
26
+ end
27
+
28
+ it 'should be an instance of Observation' do
29
+ @observation.should be_an_instance_of Observation
30
+ end
31
+
32
+ it 'data should be assigned properly' do
33
+ @observation.data.archetype_node_id.should == 'at0002'
34
+ end
35
+
36
+ it 'should raise ArgumentError when nil assigned to data' do
37
+ lambda {
38
+ @observation.data = nil
39
+ }.should raise_error ArgumentError
40
+ end
41
+
42
+ it 'state should be assigned properly' do
43
+ @observation.state.archetype_node_id.should == 'at0003'
44
+ end
45
+ end
@@ -0,0 +1,32 @@
1
+ require File.dirname(__FILE__) + '/../../../../../../spec_helper'
2
+ include OpenEHR::RM::Composition::Content::Navigation
3
+ include OpenEHR::RM::DataTypes::Text
4
+
5
+ describe Section do
6
+ before(:each) do
7
+ items = stub(Array, :empty? => false, :size => 10)
8
+ @section = Section.new(:archetype_node_id => 'at0001',
9
+ :name => DvText.new(:value => 'section'),
10
+ :items => items)
11
+ end
12
+
13
+ it 'should be an instance of Section' do
14
+ @section.should be_an_instance_of Section
15
+ end
16
+
17
+ it 'items should be assigned properly' do
18
+ @section.items.size.should be_equal 10
19
+ end
20
+
21
+ it 'empty items should raise ArgumentError' do
22
+ lambda {
23
+ @section.items = [ ]
24
+ }.should raise_error ArgumentError
25
+ end
26
+
27
+ it 'nil items should not raise ArgumentError' do
28
+ lambda {
29
+ @section.items = nil
30
+ }.should_not raise_error ArgumentError
31
+ end
32
+ end
@@ -0,0 +1,88 @@
1
+ require File.dirname(__FILE__) + '/../../../../spec_helper'
2
+ include OpenEHR::RM::Composition
3
+ include OpenEHR::RM::DataTypes::Quantity::DateTime
4
+ include OpenEHR::RM::DataTypes::Text
5
+ include OpenEHR::RM::DataStructures::ItemStructure
6
+
7
+ describe EventContext do
8
+ before(:each) do
9
+ start = DvDateTime.new(:value => '2009-11-13T20:46:57')
10
+ setting_group = stub(CodePhrase, :code_string => '225')
11
+ setting = stub(DvCodedText, :defining_code => setting_group)
12
+ ending = DvDateTime.new(:value => '2010-10-14T09:00:00')
13
+ participations = stub(Array, :size => 5, :empty? => false)
14
+ other_context = stub(ItemStructure, :archetype_node_id => 'at0002')
15
+ @event_context = EventContext.new(:start_time => start,
16
+ :end_time => ending,
17
+ :setting => setting,
18
+ :participations => participations,
19
+ :location => 'ehime',
20
+ :other_context => other_context)
21
+ end
22
+
23
+ it 'should be an instance of EventContext' do
24
+ @event_context.should be_an_instance_of EventContext
25
+ end
26
+
27
+ it 'start_time should be assigned properly' do
28
+ @event_context.start_time.value.should == '2009-11-13T20:46:57'
29
+ end
30
+
31
+ it 'should raise ArgumentError with nil start_time' do
32
+ lambda {
33
+ @event_context.start_time = nil
34
+ }.should raise_error ArgumentError
35
+ end
36
+
37
+ it 'setting should be assigned properly' do
38
+ @event_context.setting.defining_code.code_string.should == '225'
39
+ end
40
+
41
+ it 'should raise ArgumentError with nil setting' do
42
+ lambda {
43
+ @event_context.setting = nil
44
+ }.should raise_error ArgumentError
45
+ end
46
+
47
+ it 'should vaildate setting code with Terminology service'
48
+
49
+ it 'end_time should be assigned properly' do
50
+ @event_context.end_time.value.should == '2010-10-14T09:00:00'
51
+ end
52
+
53
+ it 'participations should be properly assigned' do
54
+ @event_context.participations.size.should be_equal 5
55
+ end
56
+
57
+ it 'should raise ArgumentError with empty participations' do
58
+ lambda {
59
+ @event_context.participations = [ ]
60
+ }.should raise_error ArgumentError
61
+ end
62
+
63
+ it 'should not raise ArgumentError with nil participations' do
64
+ lambda {
65
+ @event_context.participations = nil
66
+ }.should_not raise_error ArgumentError
67
+ end
68
+
69
+ it 'location should be assigned properly' do
70
+ @event_context.location.should == 'ehime'
71
+ end
72
+
73
+ it 'should raise ArgumentError with empty location' do
74
+ lambda {
75
+ @event_context.location = ''
76
+ }.should raise_error ArgumentError
77
+ end
78
+
79
+ it 'should not raise ArgumentError with nil location' do
80
+ lambda {
81
+ @event_context.location = nil
82
+ }.should_not raise_error ArgumentError
83
+ end
84
+
85
+ it 'other_context should be assigned properly' do
86
+ @event_context.other_context.archetype_node_id.should == 'at0002'
87
+ end
88
+ end
@@ -0,0 +1,21 @@
1
+ require File.dirname(__FILE__) + '/../../../../spec_helper'
2
+ include OpenEHR::RM::DataStructures
3
+ include OpenEHR::RM::DataTypes::Text
4
+
5
+ describe DataStructure do
6
+ before(:each) do
7
+ name = DvText.new(:value => 'test')
8
+ @data_structure = DataStructure.new(:archetype_node_id => 'at0001',
9
+ :name => name)
10
+ end
11
+
12
+ it 'should be an instance of DataStructure' do
13
+ @data_structure.should be_an_instance_of DataStructure
14
+ end
15
+
16
+ it 'should raise NotImplementedError' do
17
+ lambda {
18
+ @data_structure.as_hierarchy
19
+ }.should raise_error NotImplementedError
20
+ end
21
+ end
@@ -0,0 +1,44 @@
1
+ require File.dirname(__FILE__) + '/../../../../../spec_helper'
2
+ include OpenEHR::RM::DataStructures::History
3
+ include OpenEHR::RM::DataStructures::ItemStructure
4
+ include OpenEHR::RM::DataTypes::Text
5
+ include OpenEHR::RM::DataTypes::Quantity::DateTime
6
+
7
+ describe Event do
8
+ before(:each) do
9
+ time = DvDateTime.new(:value => '2009-11-12T10:19:33')
10
+ state = stub(ItemStructure, :archetype_node_id => 'at0002')
11
+ origin = DvDateTime.new(:value => '2009-11-11T10:20:40')
12
+ parent = stub(History, :origin => origin)
13
+ @event = Event.new(:archetype_node_id => 'at0001',
14
+ :name => DvText.new(:value => 'Event test'),
15
+ :time => time,
16
+ :data => 'data',
17
+ :state => state,
18
+ :parent => parent)
19
+ end
20
+
21
+ it 'should be an instance of Event' do
22
+ @event.should be_an_instance_of Event
23
+ end
24
+
25
+ it 'data should be assigned properly' do
26
+ @event.data.should == 'data'
27
+ end
28
+
29
+ it 'time should be assigned properly' do
30
+ @event.time.value.should == '2009-11-12T10:19:33'
31
+ end
32
+
33
+ it 'state should be assigned properly' do
34
+ @event.state.archetype_node_id.should == 'at0002'
35
+ end
36
+
37
+ it 'parent should be properly assigned' do
38
+ @event.parent.origin.value.should == '2009-11-11T10:20:40'
39
+ end
40
+
41
+ it 'offset should be diff of parent.origin from time' do
42
+ @event.offset.value.should == 'P0Y0M0W0DT23H58M53S'
43
+ end
44
+ end
@@ -0,0 +1,67 @@
1
+ require File.dirname(__FILE__) + '/../../../../../spec_helper'
2
+ include OpenEHR::RM::DataStructures::History
3
+ include OpenEHR::RM::DataStructures::ItemStructure
4
+ include OpenEHR::RM::DataTypes::Text
5
+ include OpenEHR::RM::DataTypes::Quantity::DateTime
6
+
7
+ describe History do
8
+ before(:each) do
9
+ origin = DvDateTime.new(:value => '2009-11-01T00:00:00')
10
+ period = DvDuration.new(:value => 'P1Y2M3W4D')
11
+ duration = DvDuration.new(:value => 'P0Y0M0W6D')
12
+ events = [stub(Event, :archetype_node_id => 'at0002')]
13
+ summary = stub(ItemStructure, :archetype_node_id => 'at0003')
14
+ @history = History.new(:archetype_node_id => 'at0001',
15
+ :name => DvText.new(:value => 'history test'),
16
+ :origin => origin,
17
+ :period => period,
18
+ :duration => duration,
19
+ :events => events,
20
+ :summary => summary)
21
+ end
22
+
23
+ it 'should be an instance of History' do
24
+ @history.should be_an_instance_of History
25
+ end
26
+
27
+ it 'origin should be properly assigned' do
28
+ @history.origin.value.should == '2009-11-01T00:00:00'
29
+ end
30
+
31
+ it 'should raise ArgumentError with nil origin' do
32
+ lambda {
33
+ @history.origin = nil
34
+ }.should raise_error ArgumentError
35
+ end
36
+
37
+ it 'period should be properly assigned' do
38
+ @history.period.value.should == 'P1Y2M3W4D'
39
+ end
40
+
41
+ it 'duration should be properly assigned' do
42
+ @history.duration.value.should == 'P0Y0M0W6D'
43
+ end
44
+
45
+ it 'is_periodic? should be true when period is not nil' do
46
+ @history.is_periodic?.should be_true
47
+ end
48
+
49
+ it 'is_periodic? should be false when period is nil' do
50
+ @history.period = nil
51
+ @history.is_periodic?.should be_false
52
+ end
53
+
54
+ it 'events should be properly assigned' do
55
+ @history.events[0].archetype_node_id.should == 'at0002'
56
+ end
57
+
58
+ it 'empty events should raise ArgumentError' do
59
+ lambda {
60
+ @history.events = []
61
+ }.should raise_error ArgumentError
62
+ end
63
+
64
+ it 'summary should be properly assigned' do
65
+ @history.summary.archetype_node_id.should == 'at0003'
66
+ end
67
+ end
@@ -0,0 +1,43 @@
1
+ require File.dirname(__FILE__) + '/../../../../../spec_helper'
2
+ include OpenEHR::RM::DataStructures::History
3
+ include OpenEHR::RM::DataStructures::ItemStructure
4
+ include OpenEHR::RM::DataTypes::Text
5
+ include OpenEHR::RM::DataTypes::Quantity::DateTime
6
+
7
+ describe IntervalEvent do
8
+ before(:each) do
9
+ time = DvDateTime.new(:value => '2009-11-12T10:19:33')
10
+ state = stub(ItemStructure, :archetype_node_id => 'at0002')
11
+ origin = DvDateTime.new(:value => '2009-11-11T10:20:40')
12
+ parent = stub(History, :origin => origin)
13
+ math_function = stub(DvCodedText, :value => 'mean')
14
+ width = DvDuration.new(:value => 'P0Y2M1W3DT5H7M3S')
15
+ @interval_event = IntervalEvent.new(:archetype_node_id => 'at0001',
16
+ :name => DvText.new(:value => 'Event test'),
17
+ :time => time,
18
+ :data => 'data',
19
+ :width => width,
20
+ :math_function => math_function,
21
+ :sample_count => 1234)
22
+ end
23
+
24
+ it 'should be an instance of IntervalEvent' do
25
+ @interval_event.should be_an_instance_of IntervalEvent
26
+ end
27
+
28
+ it 'width should be assigned properly' do
29
+ @interval_event.width.value.should == 'P0Y2M1W3DT5H7M3S'
30
+ end
31
+
32
+ it 'math_function should be assigned properly' do
33
+ @interval_event.math_function.value.should == 'mean'
34
+ end
35
+
36
+ it 'sample_count should be assigned properly' do
37
+ @interval_event.sample_count.should be_equal 1234
38
+ end
39
+
40
+ it 'should subtract time for interval start time' do
41
+ @interval_event.interval_start_time.value.should == '2009-09-09T05:12:30+09:00'
42
+ end
43
+ end
@@ -0,0 +1,53 @@
1
+ require File.dirname(__FILE__) + '/../../../../../spec_helper'
2
+ include OpenEHR::RM::DataStructures::ItemStructure
3
+ include OpenEHR::RM::DataStructures::ItemStructure::Representation
4
+ include OpenEHR::RM::DataTypes::Text
5
+
6
+ describe ItemList do
7
+ before(:each) do
8
+ items = %w{one two three}.collect do |n|
9
+ Element.new(:name => DvText.new(:value => n),
10
+ :archetype_node_id => 'test')
11
+ end
12
+ item_list_name = DvText.new(:value => 'item list')
13
+ @item_list = ItemList.new(:name => item_list_name,
14
+ :archetype_node_id => 'test',
15
+ :items => items)
16
+
17
+ end
18
+
19
+ it 'should be instance of ItemList' do
20
+ @item_list.should be_an_instance_of ItemList
21
+ end
22
+
23
+ it 'count should be 3' do
24
+ @item_list.item_count.should be_equal 3
25
+ end
26
+
27
+ it 'count should be 0' do
28
+ @item_list.items = nil
29
+ @item_list.item_count.should be_equal 0
30
+ end
31
+
32
+
33
+ it 'retrieve the names of all items' do
34
+ @item_list.names.should == %w{one two three}.collect{|n|
35
+ DvText.new(:value => n)}
36
+ end
37
+
38
+ it 'should return the item with a name' do
39
+ @item_list.named_item('one').name.value.should == 'one'
40
+ end
41
+
42
+ it 'should return nil when item is not exist' do
43
+ @item_list.named_item('four').should be_nil
44
+ end
45
+
46
+ it 'retrieve the ith item with number' do
47
+ @item_list.ith_item(1).name.value.should == 'one'
48
+ end
49
+
50
+ it 'generate cluster of items' do
51
+ @item_list.as_hierarchy.name.value.should == 'item list'
52
+ end
53
+ end
@@ -0,0 +1,29 @@
1
+ require File.dirname(__FILE__) + '/../../../../../spec_helper'
2
+
3
+ include OpenEHR::RM::DataStructures::ItemStructure
4
+ include OpenEHR::RM::DataStructures::ItemStructure::Representation
5
+ include OpenEHR::RM::DataTypes::Text
6
+
7
+ describe ItemSingle do
8
+ before(:each) do
9
+ element = stub(Element, :archetype_node_id => 'at0002')
10
+ item_single_name = DvText.new(:value => 'item single')
11
+ @item_single = ItemSingle.new(:name => item_single_name,
12
+ :archetype_node_id => 'at0001',
13
+ :item => element)
14
+ end
15
+
16
+ it 'should be an instance of ItemSingle' do
17
+ @item_single.should be_an_instance_of ItemSingle
18
+ end
19
+
20
+ it 'should raise ArgumentError with nil item' do
21
+ lambda {
22
+ @item_single.item = nil
23
+ }.should raise_error ArgumentError
24
+ end
25
+
26
+ it 'should return as_hierarchy' do
27
+ @item_single.as_hierarchy.archetype_node_id.should == 'at0002'
28
+ end
29
+ end