openehr 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (384) hide show
  1. data/.document +5 -0
  2. data/.rspec +2 -0
  3. data/.travis.yml +3 -0
  4. data/Gemfile +23 -0
  5. data/Guardfile +12 -0
  6. data/History.txt +36 -0
  7. data/PostInstall.txt +9 -0
  8. data/README.rdoc +82 -0
  9. data/Rakefile +44 -0
  10. data/VERSION +1 -0
  11. data/doc/openehr_terminology.xml +2700 -0
  12. data/lib/openehr.rb +11 -0
  13. data/lib/openehr/am.rb +8 -0
  14. data/lib/openehr/am/archetype.rb +133 -0
  15. data/lib/openehr/am/archetype/assertion.rb +190 -0
  16. data/lib/openehr/am/archetype/constraint_model.rb +328 -0
  17. data/lib/openehr/am/archetype/constraint_model/primitive.rb +327 -0
  18. data/lib/openehr/am/archetype/ontology.rb +126 -0
  19. data/lib/openehr/am/openehr_profile.rb +9 -0
  20. data/lib/openehr/am/openehr_profile/data_types.rb +13 -0
  21. data/lib/openehr/am/openehr_profile/data_types/basic.rb +114 -0
  22. data/lib/openehr/am/openehr_profile/data_types/quantity.rb +67 -0
  23. data/lib/openehr/am/openehr_profile/data_types/text.rb +22 -0
  24. data/lib/openehr/assumed_library_types.rb +691 -0
  25. data/lib/openehr/parser.rb +23 -0
  26. data/lib/openehr/parser/adl.rb +57 -0
  27. data/lib/openehr/parser/adl_grammar.tt +245 -0
  28. data/lib/openehr/parser/adl_parser.rb +52 -0
  29. data/lib/openehr/parser/cadl_grammar.tt +1527 -0
  30. data/lib/openehr/parser/cadl_node.rb +44 -0
  31. data/lib/openehr/parser/dadl.rb +13 -0
  32. data/lib/openehr/parser/dadl_grammar.tt +358 -0
  33. data/lib/openehr/parser/exception.rb +68 -0
  34. data/lib/openehr/parser/shared_token_grammar.tt +1229 -0
  35. data/lib/openehr/parser/validator.rb +19 -0
  36. data/lib/openehr/parser/xml_perser.rb +13 -0
  37. data/lib/openehr/rm.rb +15 -0
  38. data/lib/openehr/rm/common.rb +14 -0
  39. data/lib/openehr/rm/common/archetyped.rb +182 -0
  40. data/lib/openehr/rm/common/change_control.rb +332 -0
  41. data/lib/openehr/rm/common/directory.rb +29 -0
  42. data/lib/openehr/rm/common/generic.rb +216 -0
  43. data/lib/openehr/rm/common/resource.rb +154 -0
  44. data/lib/openehr/rm/composition.rb +103 -0
  45. data/lib/openehr/rm/composition/content.rb +22 -0
  46. data/lib/openehr/rm/composition/content/entry.rb +253 -0
  47. data/lib/openehr/rm/composition/content/navigation.rb +31 -0
  48. data/lib/openehr/rm/data_structures.rb +25 -0
  49. data/lib/openehr/rm/data_structures/history.rb +117 -0
  50. data/lib/openehr/rm/data_structures/item_structure.rb +218 -0
  51. data/lib/openehr/rm/data_structures/item_structure/representation.rb +63 -0
  52. data/lib/openehr/rm/data_types.rb +14 -0
  53. data/lib/openehr/rm/data_types/basic.rb +108 -0
  54. data/lib/openehr/rm/data_types/charset.lst +818 -0
  55. data/lib/openehr/rm/data_types/charset_extract.rb +24 -0
  56. data/lib/openehr/rm/data_types/encapsulated.rb +98 -0
  57. data/lib/openehr/rm/data_types/quantity.rb +402 -0
  58. data/lib/openehr/rm/data_types/quantity/date_time.rb +256 -0
  59. data/lib/openehr/rm/data_types/text.rb +169 -0
  60. data/lib/openehr/rm/data_types/time_specification.rb +75 -0
  61. data/lib/openehr/rm/data_types/uri.rb +83 -0
  62. data/lib/openehr/rm/demographic.rb +269 -0
  63. data/lib/openehr/rm/ehr.rb +162 -0
  64. data/lib/openehr/rm/integration.rb +27 -0
  65. data/lib/openehr/rm/security.rb +12 -0
  66. data/lib/openehr/rm/support.rb +14 -0
  67. data/lib/openehr/rm/support/definition.rb +15 -0
  68. data/lib/openehr/rm/support/identification.rb +412 -0
  69. data/lib/openehr/rm/support/measurement.rb +17 -0
  70. data/lib/openehr/rm/support/terminology.rb +135 -0
  71. data/lib/openehr/serializer.rb +272 -0
  72. data/lib/openehr/terminology.rb +7 -0
  73. data/lib/openehr/terminology/open_ehr_terminology.rb +41 -0
  74. data/lib/openehr/writer.rb +12 -0
  75. data/openehr.gemspec +472 -0
  76. data/spec/lib/openehr/am/archetype/archetype_spec.rb +103 -0
  77. data/spec/lib/openehr/am/archetype/assertion/assertion_spec.rb +60 -0
  78. data/spec/lib/openehr/am/archetype/assertion/assertion_variable_spec.rb +30 -0
  79. data/spec/lib/openehr/am/archetype/assertion/expr_binary_operator.rb +40 -0
  80. data/spec/lib/openehr/am/archetype/assertion/expr_item_spec.rb +28 -0
  81. data/spec/lib/openehr/am/archetype/assertion/expr_leaf_spec.rb +34 -0
  82. data/spec/lib/openehr/am/archetype/assertion/expr_operator_spec.rb +25 -0
  83. data/spec/lib/openehr/am/archetype/assertion/expr_unary_operator_spec.rb +26 -0
  84. data/spec/lib/openehr/am/archetype/assertion/operator_kind_spec.rb +114 -0
  85. data/spec/lib/openehr/am/archetype/constraint_model/archetype_constraint_spec.rb +56 -0
  86. data/spec/lib/openehr/am/archetype/constraint_model/archetype_internal_ref_spec.rb +36 -0
  87. data/spec/lib/openehr/am/archetype/constraint_model/archetype_slot_spec.rb +61 -0
  88. data/spec/lib/openehr/am/archetype/constraint_model/c_attribute_spec.rb +59 -0
  89. data/spec/lib/openehr/am/archetype/constraint_model/c_complex_object_spec.rb +39 -0
  90. data/spec/lib/openehr/am/archetype/constraint_model/c_defined_object_spec.rb +53 -0
  91. data/spec/lib/openehr/am/archetype/constraint_model/c_domain_type_spec.rb +25 -0
  92. data/spec/lib/openehr/am/archetype/constraint_model/c_multiple_attribute_spec.rb +23 -0
  93. data/spec/lib/openehr/am/archetype/constraint_model/c_object_spec.rb +61 -0
  94. data/spec/lib/openehr/am/archetype/constraint_model/c_primitive_object_spec.rb +33 -0
  95. data/spec/lib/openehr/am/archetype/constraint_model/c_reference_object_spec.rb +17 -0
  96. data/spec/lib/openehr/am/archetype/constraint_model/c_single_attribute_spec.rb +22 -0
  97. data/spec/lib/openehr/am/archetype/constraint_model/cardinality_spec.rb +68 -0
  98. data/spec/lib/openehr/am/archetype/constraint_model/constraint_ref_spec.rb +29 -0
  99. data/spec/lib/openehr/am/archetype/constraint_model/primitive/c_boolean_spec.rb +57 -0
  100. data/spec/lib/openehr/am/archetype/constraint_model/primitive/c_date_spec.rb +52 -0
  101. data/spec/lib/openehr/am/archetype/constraint_model/primitive/c_date_time_spec.rb +136 -0
  102. data/spec/lib/openehr/am/archetype/constraint_model/primitive/c_duration_spec.rb +41 -0
  103. data/spec/lib/openehr/am/archetype/constraint_model/primitive/c_integer_spec.rb +67 -0
  104. data/spec/lib/openehr/am/archetype/constraint_model/primitive/c_primitive_spec.rb +41 -0
  105. data/spec/lib/openehr/am/archetype/constraint_model/primitive/c_real_spec.rb +19 -0
  106. data/spec/lib/openehr/am/archetype/constraint_model/primitive/c_string_spec.rb +73 -0
  107. data/spec/lib/openehr/am/archetype/constraint_model/primitive/c_time_spec.rb +104 -0
  108. data/spec/lib/openehr/am/archetype/ontology/archetype_ontology_spec.rb +97 -0
  109. data/spec/lib/openehr/am/archetype/ontology/archetype_term_spec.rb +43 -0
  110. data/spec/lib/openehr/am/archetype/validity_kind_spec.rb +42 -0
  111. data/spec/lib/openehr/am/openehr_profile/data_types/basic/c_dv_state_spec.rb +34 -0
  112. data/spec/lib/openehr/am/openehr_profile/data_types/basic/non_terminal_state_spec.rb +36 -0
  113. data/spec/lib/openehr/am/openehr_profile/data_types/basic/state_machine_spec.rb +34 -0
  114. data/spec/lib/openehr/am/openehr_profile/data_types/basic/state_spec.rb +26 -0
  115. data/spec/lib/openehr/am/openehr_profile/data_types/basic/terminal_state_spec.rb +18 -0
  116. data/spec/lib/openehr/am/openehr_profile/data_types/basic/transition_spec.rb +62 -0
  117. data/spec/lib/openehr/am/openehr_profile/data_types/quantity/c_dv_ordinal_spec.rb +41 -0
  118. data/spec/lib/openehr/am/openehr_profile/data_types/quantity/c_dv_quantity_spec.rb +50 -0
  119. data/spec/lib/openehr/am/openehr_profile/data_types/quantity/c_quantity_item_spec.rb +46 -0
  120. data/spec/lib/openehr/am/openehr_profile/data_types/text/c_code_phrase_spec.rb +34 -0
  121. data/spec/lib/openehr/assumed_library_types/interval_spec.rb +145 -0
  122. data/spec/lib/openehr/assumed_library_types/iso8601_date_spec.rb +236 -0
  123. data/spec/lib/openehr/assumed_library_types/iso8601_date_time_spec.rb +47 -0
  124. data/spec/lib/openehr/assumed_library_types/iso8601_duration_spec.rb +150 -0
  125. data/spec/lib/openehr/assumed_library_types/iso8601_time_spec.rb +234 -0
  126. data/spec/lib/openehr/assumed_library_types/iso8601_timezone_spec.rb +57 -0
  127. data/spec/lib/openehr/assumed_library_types/time_definitions_spec.rb +136 -0
  128. data/spec/lib/openehr/assumed_library_types/timezone_spec.rb +42 -0
  129. data/spec/lib/openehr/parser/adl14/adl-test-ENTRY.assumed_types.v1.adl +88 -0
  130. data/spec/lib/openehr/parser/adl14/adl-test-ENTRY.basic_types.v1.adl +143 -0
  131. data/spec/lib/openehr/parser/adl14/adl-test-ENTRY.basic_types_fail.v1.adl +50 -0
  132. data/spec/lib/openehr/parser/adl14/adl-test-ENTRY.most_minimal.v1.adl +27 -0
  133. data/spec/lib/openehr/parser/adl14/adl-test-ENTRY.structure_test1.v1.adl +46 -0
  134. data/spec/lib/openehr/parser/adl14/adl-test-SOME_TYPE.generic_type_basic.draft.adl +56 -0
  135. data/spec/lib/openehr/parser/adl14/adl-test-SOME_TYPE.generic_type_use_node.draft.adl +63 -0
  136. data/spec/lib/openehr/parser/adl14/adl-test-car.paths.test.adl +80 -0
  137. data/spec/lib/openehr/parser/adl14/adl-test-car.use_node.test.adl +87 -0
  138. data/spec/lib/openehr/parser/adl14/adl-test-composition.dv_coded_text.test.adl +29 -0
  139. data/spec/lib/openehr/parser/adl14/adl-test-entry.archetype_bindings.test.adl +47 -0
  140. data/spec/lib/openehr/parser/adl14/adl-test-entry.archetype_desc_missing_purpose.test.adl +45 -0
  141. data/spec/lib/openehr/parser/adl14/adl-test-entry.archetype_description.test.adl +61 -0
  142. data/spec/lib/openehr/parser/adl14/adl-test-entry.archetype_description2.test.adl +45 -0
  143. data/spec/lib/openehr/parser/adl14/adl-test-entry.archetype_identification.test.adl +26 -0
  144. data/spec/lib/openehr/parser/adl14/adl-test-entry.archetype_internal_ref.test.adl +36 -0
  145. data/spec/lib/openehr/parser/adl14/adl-test-entry.archetype_internal_ref2.test.adl +36 -0
  146. data/spec/lib/openehr/parser/adl14/adl-test-entry.archetype_language.test.adl +47 -0
  147. data/spec/lib/openehr/parser/adl14/adl-test-entry.archetype_language_no_accreditation.test.adl +38 -0
  148. data/spec/lib/openehr/parser/adl14/adl-test-entry.archetype_language_order_of_translation_details.test.adl +40 -0
  149. data/spec/lib/openehr/parser/adl14/adl-test-entry.archetype_ontology.test.adl +25 -0
  150. data/spec/lib/openehr/parser/adl14/adl-test-entry.archetype_slot.test.adl +40 -0
  151. data/spec/lib/openehr/parser/adl14/adl-test-entry.archetype_slot.test2.adl +37 -0
  152. data/spec/lib/openehr/parser/adl14/adl-test-entry.archetype_uncommonkeys.test.adl +29 -0
  153. data/spec/lib/openehr/parser/adl14/adl-test-entry.basic_types.test.adl +272 -0
  154. data/spec/lib/openehr/parser/adl14/adl-test-entry.c_code_phrase.test.adl +77 -0
  155. data/spec/lib/openehr/parser/adl14/adl-test-entry.c_dv_ordinal.test.adl +66 -0
  156. data/spec/lib/openehr/parser/adl14/adl-test-entry.c_dv_quantity_empty.test.adl +46 -0
  157. data/spec/lib/openehr/parser/adl14/adl-test-entry.c_dv_quantity_full.test.adl +64 -0
  158. data/spec/lib/openehr/parser/adl14/adl-test-entry.c_dv_quantity_full2.test.adl +64 -0
  159. data/spec/lib/openehr/parser/adl14/adl-test-entry.c_dv_quantity_full3.test.adl +64 -0
  160. data/spec/lib/openehr/parser/adl14/adl-test-entry.c_dv_quantity_item_units_only.test.adl +55 -0
  161. data/spec/lib/openehr/parser/adl14/adl-test-entry.c_dv_quantity_list.test.adl +58 -0
  162. data/spec/lib/openehr/parser/adl14/adl-test-entry.c_dv_quantity_property.test.adl +47 -0
  163. data/spec/lib/openehr/parser/adl14/adl-test-entry.c_dv_quantity_reversed.test.adl +59 -0
  164. data/spec/lib/openehr/parser/adl14/adl-test-entry.constraint_binding.test.adl +37 -0
  165. data/spec/lib/openehr/parser/adl14/adl-test-entry.constraint_ref.test.adl +43 -0
  166. data/spec/lib/openehr/parser/adl14/adl-test-entry.datetime.test.adl +183 -0
  167. data/spec/lib/openehr/parser/adl14/adl-test-entry.domain_types.test.adl +97 -0
  168. data/spec/lib/openehr/parser/adl14/adl-test-entry.durations.test.adl +109 -0
  169. data/spec/lib/openehr/parser/adl14/adl-test-entry.empty_other_contributors.test.adl +42 -0
  170. data/spec/lib/openehr/parser/adl14/adl-test-entry.missing_language.test.adl +23 -0
  171. data/spec/lib/openehr/parser/adl14/adl-test-entry.mixed_node_types.draft.adl +61 -0
  172. data/spec/lib/openehr/parser/adl14/adl-test-entry.most_minimal.test.adl +23 -0
  173. data/spec/lib/openehr/parser/adl14/adl-test-entry.multi_language.test.adl +52 -0
  174. data/spec/lib/openehr/parser/adl14/adl-test-entry.special_string.test.adl +88 -0
  175. data/spec/lib/openehr/parser/adl14/adl-test-entry.structure_test1.test.adl +45 -0
  176. data/spec/lib/openehr/parser/adl14/adl-test-entry.structure_test2.test.adl +45 -0
  177. data/spec/lib/openehr/parser/adl14/adl-test-entry.term_binding.test.adl +37 -0
  178. data/spec/lib/openehr/parser/adl14/adl-test-entry.term_binding2.test.adl +32 -0
  179. data/spec/lib/openehr/parser/adl14/adl-test-entry.testtranslations.test.adl +83 -0
  180. data/spec/lib/openehr/parser/adl14/adl-test-entry.translations_author_language.test.adl +34 -0
  181. data/spec/lib/openehr/parser/adl14/adl-test-entry.translations_language_author.test.adl +34 -0
  182. data/spec/lib/openehr/parser/adl14/adl-test-entry.unicode_BOM_support.test.adl +41 -0
  183. data/spec/lib/openehr/parser/adl14/adl-test-entry.unicode_support.test.adl +41 -0
  184. data/spec/lib/openehr/parser/adl14/openEHR-EHR-ACTION.imaging.v1.adl +275 -0
  185. data/spec/lib/openehr/parser/adl14/openEHR-EHR-ACTION.referral.v1.adl +351 -0
  186. data/spec/lib/openehr/parser/adl14/openEHR-EHR-CLUSTER.auscultation-chest.v1.adl +765 -0
  187. data/spec/lib/openehr/parser/adl14/openEHR-EHR-CLUSTER.auscultation.v1.adl +48 -0
  188. data/spec/lib/openehr/parser/adl14/openEHR-EHR-CLUSTER.dimensions-circumference.v1.adl +134 -0
  189. data/spec/lib/openehr/parser/adl14/openEHR-EHR-CLUSTER.dimensions.v1.adl +241 -0
  190. data/spec/lib/openehr/parser/adl14/openEHR-EHR-CLUSTER.exam-abdomen.v1.adl +321 -0
  191. data/spec/lib/openehr/parser/adl14/openEHR-EHR-CLUSTER.exam-chest.v1.adl +379 -0
  192. data/spec/lib/openehr/parser/adl14/openEHR-EHR-CLUSTER.exam-fetus.v1.adl +577 -0
  193. data/spec/lib/openehr/parser/adl14/openEHR-EHR-CLUSTER.exam-generic-joint.v1.adl +146 -0
  194. data/spec/lib/openehr/parser/adl14/openEHR-EHR-CLUSTER.exam-generic-lymphnode.v1.adl +176 -0
  195. data/spec/lib/openehr/parser/adl14/openEHR-EHR-CLUSTER.exam-generic-mass.v1.adl +221 -0
  196. data/spec/lib/openehr/parser/adl14/openEHR-EHR-CLUSTER.exam-generic.v1.adl +139 -0
  197. data/spec/lib/openehr/parser/adl14/openEHR-EHR-CLUSTER.exam-nervous_system.v1.adl +116 -0
  198. data/spec/lib/openehr/parser/adl14/openEHR-EHR-CLUSTER.exam-uterine_cervix.v1.adl +420 -0
  199. data/spec/lib/openehr/parser/adl14/openEHR-EHR-CLUSTER.exam-uterus.v1.adl +293 -0
  200. data/spec/lib/openehr/parser/adl14/openEHR-EHR-COMPOSITION.discharge.v1draft.adl +53 -0
  201. data/spec/lib/openehr/parser/adl14/openEHR-EHR-COMPOSITION.encounter.v1draft.adl +45 -0
  202. data/spec/lib/openehr/parser/adl14/openEHR-EHR-EVALUATION.adverse.v1.adl +411 -0
  203. data/spec/lib/openehr/parser/adl14/openEHR-EHR-EVALUATION.columna_vertebral.v1.adl +85 -0
  204. data/spec/lib/openehr/parser/adl14/openEHR-EHR-INSTRUCTION.medication.v1.adl +88 -0
  205. data/spec/lib/openehr/parser/adl14/openEHR-EHR-INSTRUCTION.referral.v1.adl +84 -0
  206. data/spec/lib/openehr/parser/adl14/openEHR-EHR-ITEM_TREE.Laboratory_request.v1.adl +492 -0
  207. data/spec/lib/openehr/parser/adl14/openEHR-EHR-ITEM_TREE.follow_up.v1draft.adl +94 -0
  208. data/spec/lib/openehr/parser/adl14/openEHR-EHR-ITEM_TREE.imaging.v1.adl +127 -0
  209. data/spec/lib/openehr/parser/adl14/openEHR-EHR-ITEM_TREE.medication-formulation.v1.adl +457 -0
  210. data/spec/lib/openehr/parser/adl14/openEHR-EHR-ITEM_TREE.medication.v1.adl +869 -0
  211. data/spec/lib/openehr/parser/adl14/openEHR-EHR-ITEM_TREE.referral.v1.adl +494 -0
  212. data/spec/lib/openehr/parser/adl14/openEHR-EHR-OBSERVATION.apgar.v1.adl +545 -0
  213. data/spec/lib/openehr/parser/adl14/openEHR-EHR-OBSERVATION.blood_pressure.v1.adl +673 -0
  214. data/spec/lib/openehr/parser/adl14/openEHR-EHR-OBSERVATION.body_mass_index.v1.adl +166 -0
  215. data/spec/lib/openehr/parser/adl14/openEHR-EHR-OBSERVATION.lab_test.v1.adl +376 -0
  216. data/spec/lib/openehr/parser/adl14/openEHR-EHR-OBSERVATION.testassumedvalue.v1.adl +99 -0
  217. data/spec/lib/openehr/parser/adl14/openEHR-EHR-SECTION.findings.v1.adl +47 -0
  218. data/spec/lib/openehr/parser/adl14/openEHR-EHR-SECTION.reason_for_encounter.v1.adl +51 -0
  219. data/spec/lib/openehr/parser/adl14/openEHR-EHR-SECTION.summary.v1.adl +52 -0
  220. data/spec/lib/openehr/parser/adl14/openEHR-EHR-SECTION.vital_signs.v1.adl +54 -0
  221. data/spec/lib/openehr/parser/adl_archetype_internal_ref2_spec.rb +42 -0
  222. data/spec/lib/openehr/parser/adl_archetype_internal_ref_spec.rb +125 -0
  223. data/spec/lib/openehr/parser/adl_archetype_internal_ref_with_generics_spec.rb +258 -0
  224. data/spec/lib/openehr/parser/adl_archetype_ontology_binding_spec.rb +98 -0
  225. data/spec/lib/openehr/parser/adl_archetype_ontology_spec.rb +42 -0
  226. data/spec/lib/openehr/parser/adl_archetype_slot_cluster_spec.rb +101 -0
  227. data/spec/lib/openehr/parser/adl_archetype_slot_spec.rb +193 -0
  228. data/spec/lib/openehr/parser/adl_archetype_uncommon_term_keys_spec.rb +25 -0
  229. data/spec/lib/openehr/parser/adl_description_spec.rb +164 -0
  230. data/spec/lib/openehr/parser/adl_identification_spec.rb +18 -0
  231. data/spec/lib/openehr/parser/adl_language_no_accreditation_spec.rb +66 -0
  232. data/spec/lib/openehr/parser/adl_language_order_spec.rb +68 -0
  233. data/spec/lib/openehr/parser/adl_language_spec.rb +119 -0
  234. data/spec/lib/openehr/parser/adl_language_translation_author_language_spec.rb +50 -0
  235. data/spec/lib/openehr/parser/adl_language_translation_language_author_spec.rb +46 -0
  236. data/spec/lib/openehr/parser/adl_parser_spec.rb +347 -0
  237. data/spec/lib/openehr/parser/adl_path_spec.rb +176 -0
  238. data/spec/lib/openehr/parser/base_spec.rb +19 -0
  239. data/spec/lib/openehr/parser/basic_generic_type_spec.rb +18 -0
  240. data/spec/lib/openehr/parser/basic_type_spec.rb +2922 -0
  241. data/spec/lib/openehr/parser/c_dv_quantity_any_allowed_spec.rb +34 -0
  242. data/spec/lib/openehr/parser/c_dv_quantity_shared_example_for_lacked_items_spec.rb +36 -0
  243. data/spec/lib/openehr/parser/c_dv_quantity_shared_example_spec.rb +146 -0
  244. data/spec/lib/openehr/parser/cdv_ordinal_parse_spec.rb +231 -0
  245. data/spec/lib/openehr/parser/code_phrase_spec.rb +96 -0
  246. data/spec/lib/openehr/parser/constraint_binding_spec.rb +26 -0
  247. data/spec/lib/openehr/parser/constraint_ref_spec.rb +32 -0
  248. data/spec/lib/openehr/parser/date_time_spec.rb +1953 -0
  249. data/spec/lib/openehr/parser/duration_spec.rb +475 -0
  250. data/spec/lib/openehr/parser/dv_coded_text_parse_spec.rb +27 -0
  251. data/spec/lib/openehr/parser/empty_other_contributors_spec.rb +19 -0
  252. data/spec/lib/openehr/parser/lab_test_parser_spec.rb +14 -0
  253. data/spec/lib/openehr/parser/missing_language_spec.rb +20 -0
  254. data/spec/lib/openehr/parser/missing_purpose_spec.rb +23 -0
  255. data/spec/lib/openehr/parser/mixed_node_types_spec.rb +16 -0
  256. data/spec/lib/openehr/parser/most_minimal_adl_spec.rb +19 -0
  257. data/spec/lib/openehr/parser/multi_language_spec.rb +58 -0
  258. data/spec/lib/openehr/parser/parser_spec_helper.rb +7 -0
  259. data/spec/lib/openehr/parser/path_based_terminology_binding_spec.rb +30 -0
  260. data/spec/lib/openehr/parser/special_string_spec.rb +20 -0
  261. data/spec/lib/openehr/parser/structure_comment_spec.rb +21 -0
  262. data/spec/lib/openehr/parser/structure_nested_comments_spec.rb +22 -0
  263. data/spec/lib/openehr/parser/structure_spec.rb +202 -0
  264. data/spec/lib/openehr/parser/term_binding_spec.rb +54 -0
  265. data/spec/lib/openehr/parser/unicode_bom_spec.rb +17 -0
  266. data/spec/lib/openehr/parser/unicode_support_spec.rb +46 -0
  267. data/spec/lib/openehr/rm/common/archetyped/archetyped_spec.rb +50 -0
  268. data/spec/lib/openehr/rm/common/archetyped/feeder_audit_details_spec.rb +60 -0
  269. data/spec/lib/openehr/rm/common/archetyped/feeder_audit_spec.rb +51 -0
  270. data/spec/lib/openehr/rm/common/archetyped/link_spec.rb +42 -0
  271. data/spec/lib/openehr/rm/common/archetyped/locatable_spec.rb +89 -0
  272. data/spec/lib/openehr/rm/common/archetyped/pathable_spec.rb +42 -0
  273. data/spec/lib/openehr/rm/common/change_control/contribution_spec.rb +56 -0
  274. data/spec/lib/openehr/rm/common/change_control/imported_version_spec.rb +62 -0
  275. data/spec/lib/openehr/rm/common/change_control/original_version_spec.rb +71 -0
  276. data/spec/lib/openehr/rm/common/change_control/version_spec.rb +91 -0
  277. data/spec/lib/openehr/rm/common/change_control/versioned_object_spec.rb +284 -0
  278. data/spec/lib/openehr/rm/common/directory/folder_spec.rb +26 -0
  279. data/spec/lib/openehr/rm/common/generic/attestation_spec.rb +62 -0
  280. data/spec/lib/openehr/rm/common/generic/audit_details_spec.rb +51 -0
  281. data/spec/lib/openehr/rm/common/generic/participation_spec.rb +36 -0
  282. data/spec/lib/openehr/rm/common/generic/party_identified_spec.rb +64 -0
  283. data/spec/lib/openehr/rm/common/generic/party_proxy_spec.rb +18 -0
  284. data/spec/lib/openehr/rm/common/generic/party_related_spec.rb +24 -0
  285. data/spec/lib/openehr/rm/common/generic/revision_history_item_spec.rb +43 -0
  286. data/spec/lib/openehr/rm/common/generic/revision_history_spec.rb +45 -0
  287. data/spec/lib/openehr/rm/common/resource/authored_resource_spec.rb +68 -0
  288. data/spec/lib/openehr/rm/common/resource/resource_description_item_spec.rb +105 -0
  289. data/spec/lib/openehr/rm/common/resource/resource_description_spec.rb +74 -0
  290. data/spec/lib/openehr/rm/common/resource/translation_details_spec.rb +35 -0
  291. data/spec/lib/openehr/rm/composition/composition_spec.rb +92 -0
  292. data/spec/lib/openehr/rm/composition/content/content_item_spec.rb +14 -0
  293. data/spec/lib/openehr/rm/composition/content/entry/action_spec.rb +69 -0
  294. data/spec/lib/openehr/rm/composition/content/entry/activity_spec.rb +61 -0
  295. data/spec/lib/openehr/rm/composition/content/entry/admin_entry_spec.rb +38 -0
  296. data/spec/lib/openehr/rm/composition/content/entry/care_entry_spec.rb +37 -0
  297. data/spec/lib/openehr/rm/composition/content/entry/entry_spec.rb +98 -0
  298. data/spec/lib/openehr/rm/composition/content/entry/evaluation_spec.rb +37 -0
  299. data/spec/lib/openehr/rm/composition/content/entry/instruction_details_spec.rb +51 -0
  300. data/spec/lib/openehr/rm/composition/content/entry/instruction_spec.rb +62 -0
  301. data/spec/lib/openehr/rm/composition/content/entry/ism_transition_spec.rb +46 -0
  302. data/spec/lib/openehr/rm/composition/content/entry/observation_spec.rb +45 -0
  303. data/spec/lib/openehr/rm/composition/content/navigation/section_spec.rb +32 -0
  304. data/spec/lib/openehr/rm/composition/event_context_spec.rb +88 -0
  305. data/spec/lib/openehr/rm/data_structures/data_structure_spec.rb +21 -0
  306. data/spec/lib/openehr/rm/data_structures/history/event_spec.rb +44 -0
  307. data/spec/lib/openehr/rm/data_structures/history/history_spec.rb +67 -0
  308. data/spec/lib/openehr/rm/data_structures/history/interval_event_spec.rb +43 -0
  309. data/spec/lib/openehr/rm/data_structures/item_structure/item_list_spec.rb +53 -0
  310. data/spec/lib/openehr/rm/data_structures/item_structure/item_single_spec.rb +29 -0
  311. data/spec/lib/openehr/rm/data_structures/item_structure/item_table_spec.rb +147 -0
  312. data/spec/lib/openehr/rm/data_structures/item_structure/item_tree_spec.rb +48 -0
  313. data/spec/lib/openehr/rm/data_structures/item_structure/representation/cluster_spec.rb +26 -0
  314. data/spec/lib/openehr/rm/data_structures/item_structure/representation/element_spec.rb +22 -0
  315. data/spec/lib/openehr/rm/data_types/basic/data_value_spec.rb +17 -0
  316. data/spec/lib/openehr/rm/data_types/basic/dv_boolean_spec.rb +29 -0
  317. data/spec/lib/openehr/rm/data_types/basic/dv_identifier_spec.rb +108 -0
  318. data/spec/lib/openehr/rm/data_types/basic/dv_state_spec.rb +44 -0
  319. data/spec/lib/openehr/rm/data_types/encapsulated/dv_encapsulated_spec.rb +42 -0
  320. data/spec/lib/openehr/rm/data_types/encapsulated/dv_multimedia_spec.rb +79 -0
  321. data/spec/lib/openehr/rm/data_types/encapsulated/dv_parsable_spec.rb +34 -0
  322. data/spec/lib/openehr/rm/data_types/quantity/date_time/dv_date_spec.rb +64 -0
  323. data/spec/lib/openehr/rm/data_types/quantity/date_time/dv_date_time_spec.rb +26 -0
  324. data/spec/lib/openehr/rm/data_types/quantity/date_time/dv_duration_spec.rb +44 -0
  325. data/spec/lib/openehr/rm/data_types/quantity/date_time/dv_temporal_spec.rb +25 -0
  326. data/spec/lib/openehr/rm/data_types/quantity/date_time/dv_time_spec.rb +41 -0
  327. data/spec/lib/openehr/rm/data_types/quantity/dv_absolute_quantity_spec.rb +35 -0
  328. data/spec/lib/openehr/rm/data_types/quantity/dv_amount_spec.rb +105 -0
  329. data/spec/lib/openehr/rm/data_types/quantity/dv_count_spec.rb +12 -0
  330. data/spec/lib/openehr/rm/data_types/quantity/dv_interval_spec.rb +17 -0
  331. data/spec/lib/openehr/rm/data_types/quantity/dv_ordered_spec.rb +60 -0
  332. data/spec/lib/openehr/rm/data_types/quantity/dv_ordinal_spec.rb +74 -0
  333. data/spec/lib/openehr/rm/data_types/quantity/dv_proportion_spec.rb +162 -0
  334. data/spec/lib/openehr/rm/data_types/quantity/dv_quantified_spec.rb +36 -0
  335. data/spec/lib/openehr/rm/data_types/quantity/dv_quantity_spec.rb +78 -0
  336. data/spec/lib/openehr/rm/data_types/quantity/proportion_kind_spec.rb +24 -0
  337. data/spec/lib/openehr/rm/data_types/quantity/reference_range_spec.rb +43 -0
  338. data/spec/lib/openehr/rm/data_types/text/code_phrase_spec.rb +23 -0
  339. data/spec/lib/openehr/rm/data_types/text/dv_paragraph_spec.rb +13 -0
  340. data/spec/lib/openehr/rm/data_types/text/dv_text_spec.rb +79 -0
  341. data/spec/lib/openehr/rm/data_types/text/term_mapping_spec.rb +59 -0
  342. data/spec/lib/openehr/rm/data_types/uri/dv_ehr_uri_spec.rb +21 -0
  343. data/spec/lib/openehr/rm/data_types/uri/dv_uri_spec.rb +36 -0
  344. data/spec/lib/openehr/rm/demographic/actor_spec.rb +79 -0
  345. data/spec/lib/openehr/rm/demographic/address_spec.rb +33 -0
  346. data/spec/lib/openehr/rm/demographic/capability_spec.rb +37 -0
  347. data/spec/lib/openehr/rm/demographic/contact_spec.rb +45 -0
  348. data/spec/lib/openehr/rm/demographic/party_identity_spec.rb +32 -0
  349. data/spec/lib/openehr/rm/demographic/party_relationship_spec.rb +84 -0
  350. data/spec/lib/openehr/rm/demographic/party_spec.rb +131 -0
  351. data/spec/lib/openehr/rm/demographic/role_spec.rb +58 -0
  352. data/spec/lib/openehr/rm/ehr/ehr_access_spec.rb +33 -0
  353. data/spec/lib/openehr/rm/ehr/ehr_spec.rb +139 -0
  354. data/spec/lib/openehr/rm/ehr/ehr_status_spec.rb +52 -0
  355. data/spec/lib/openehr/rm/ehr/versioned_composition_spec.rb +33 -0
  356. data/spec/lib/openehr/rm/integration/generic_entry_spec.rb +31 -0
  357. data/spec/lib/openehr/rm/support/identification/access_group_ref_spec.rb +19 -0
  358. data/spec/lib/openehr/rm/support/identification/archetype_id_spec.rb +152 -0
  359. data/spec/lib/openehr/rm/support/identification/generic_id_spec.rb +33 -0
  360. data/spec/lib/openehr/rm/support/identification/hier_object_id_spec.rb +12 -0
  361. data/spec/lib/openehr/rm/support/identification/internet_id_spec.rb +12 -0
  362. data/spec/lib/openehr/rm/support/identification/iso_oid_spec.rb +12 -0
  363. data/spec/lib/openehr/rm/support/identification/locatable_ref_spec.rb +34 -0
  364. data/spec/lib/openehr/rm/support/identification/object_id_spec.rb +24 -0
  365. data/spec/lib/openehr/rm/support/identification/object_ref_spec.rb +33 -0
  366. data/spec/lib/openehr/rm/support/identification/object_version_id_spec.rb +59 -0
  367. data/spec/lib/openehr/rm/support/identification/party_ref_spec.rb +29 -0
  368. data/spec/lib/openehr/rm/support/identification/template_id_spec.rb +12 -0
  369. data/spec/lib/openehr/rm/support/identification/terminology_id_spec.rb +33 -0
  370. data/spec/lib/openehr/rm/support/identification/uid_based_id_spec.rb +50 -0
  371. data/spec/lib/openehr/rm/support/identification/uid_spec.rb +29 -0
  372. data/spec/lib/openehr/rm/support/identification/version_tree_id_spec.rb +104 -0
  373. data/spec/lib/openehr/rm/support/measurement_service_spec.rb +7 -0
  374. data/spec/lib/openehr/rm/support/terminology_service_spec.rb +24 -0
  375. data/spec/lib/openehr/serializer/adl-test-entry.most_minimal.test.adl +20 -0
  376. data/spec/lib/openehr/serializer/adl_serializer_spec.rb +47 -0
  377. data/spec/lib/openehr/serializer/openEHR-EHR-SECTION.test.v1.adl +38 -0
  378. data/spec/lib/openehr/serializer/openEHR-EHR-SECTION.test.v1.xml +58 -0
  379. data/spec/lib/openehr/serializer/sample_archetype_spec.rb +44 -0
  380. data/spec/lib/openehr/serializer/xml_serializer_spec.rb +49 -0
  381. data/spec/lib/openehr/terminology/open_ehr_terminology_spec.rb +40 -0
  382. data/spec/spec.opts +6 -0
  383. data/spec/spec_helper.rb +58 -0
  384. metadata +631 -0
@@ -0,0 +1,162 @@
1
+ require File.dirname(__FILE__) + '/../../../../../spec_helper'
2
+ include OpenEHR::RM::DataTypes::Quantity
3
+ include OpenEHR::RM::DataTypes::Quantity::ProportionKind
4
+
5
+ describe DvProportion do
6
+ before(:all) do
7
+ @dv_proportion0 = DvProportion.new(:numerator => 2,
8
+ :denominator => 3,
9
+ :type => PK_RATIO,
10
+ :accuracy => 1,
11
+ :accuracy_percent => true)
12
+ @dv_proportion1 = DvProportion.new(:numerator => 3,
13
+ :denominator => 1,
14
+ :type => PK_UNITARY)
15
+ @dv_proportion2 = DvProportion.new(:numerator => 5,
16
+ :denominator => 100,
17
+ :type => PK_PERCENT)
18
+ @dv_proportion3 = DvProportion.new(:numerator => 7,
19
+ :denominator => 8,
20
+ :type => PK_FRACTION)
21
+ @dv_proportion4 = DvProportion.new(:numerator => 9,
22
+ :denominator => 10,
23
+ :type => PK_INTEGER_FRACTION)
24
+ end
25
+
26
+ describe 'PK_RATIO type' do
27
+ it 'should be an instance of DvProportion' do
28
+ @dv_proportion0.should be_an_instance_of DvProportion
29
+ end
30
+
31
+ it 's numerator should be equal 2' do
32
+ @dv_proportion0.numerator.should be_equal 2
33
+ end
34
+
35
+ it 's denominator should be equal 3' do
36
+ @dv_proportion0.denominator.should be_equal 3
37
+ end
38
+
39
+ it 's type should be equal 0' do
40
+ @dv_proportion0.type.should == 0
41
+ end
42
+
43
+ it 's magnitude should be 2/3' do
44
+ @dv_proportion0.magnitude.should == 2.0/3.0
45
+ end
46
+
47
+ it 's accuracy should be 1' do
48
+ @dv_proportion0.accuracy.should == 1
49
+ end
50
+
51
+ it 'is_integral? should be true' do
52
+ @dv_proportion0.is_integral?.should be_true
53
+ end
54
+
55
+ it 'should be comperable to same type DvProportion' do
56
+ dv_propotion_type = DvProportion.new(:numerator => 3,
57
+ :denominator => 4,
58
+ :type => 0)
59
+ @dv_proportion0.is_strictly_comparable_to?(dv_propotion_type).
60
+ should be_true
61
+ end
62
+
63
+ it 'should not be comparable to other type DvPropotion' do
64
+ @dv_proportion0.is_strictly_comparable_to?(@dv_proportion1).
65
+ should_not be_true
66
+ end
67
+
68
+ it 'should not be comperable to other class' do
69
+ @dv_proportion0.is_strictly_comparable_to?(1).
70
+ should_not be_true
71
+ end
72
+
73
+ it 'should raise ArguentError with invalid type -1' do
74
+ lambda {
75
+ @dv_proportion0.type = -1
76
+ }.should raise_error ArgumentError
77
+ end
78
+
79
+ it 'should raise ArgumentError with invalid type 5' do
80
+ lambda {
81
+ @dv_proportion0.type = 5
82
+ }.should raise_error ArgumentError
83
+ end
84
+
85
+ it 's precision should be 0' do
86
+ @dv_proportion0.precision = 0
87
+ @dv_proportion0.precision.should == 0
88
+ end
89
+
90
+ it 'should raise ArgumentError when is_integral? and precision !=0' do
91
+ lambda {@dv_proportion0.precision = 1}.should raise_error ArgumentError
92
+ end
93
+
94
+ it 'shoud not raise ArgumentError when is_not ntegral' do
95
+ @dv_proportion0.numerator = 2.5
96
+ lambda {
97
+ @dv_proportion0.precision = 1
98
+ }.should_not raise_error ArgumentError
99
+ end
100
+ end
101
+
102
+ describe 'PK_UNITARY type' do
103
+ it 'should be an instance of DvPropotion' do
104
+ @dv_proportion1.should be_an_instance_of DvProportion
105
+ end
106
+
107
+ it 'should raise ArgumentError without denominator 1' do
108
+ lambda {
109
+ @dv_proportion1.denominator = 10
110
+ }.should raise_error ArgumentError
111
+ end
112
+ end
113
+
114
+ describe 'PK_PERCENT type' do
115
+ it 'should be an instance of DvProportion' do
116
+ @dv_proportion2.should be_an_instance_of DvProportion
117
+ end
118
+
119
+ it 'should raise ArgumentError without denominator 100' do
120
+ lambda {
121
+ @dv_proportion2.denominator = 101
122
+ }.should raise_error ArgumentError
123
+ end
124
+ end
125
+
126
+ describe 'PK_FRACTION type' do
127
+ it 'should be an instance of DvProportion' do
128
+ @dv_proportion3.should be_an_instance_of DvProportion
129
+ end
130
+
131
+ it 'should raise ArgumentError with fractional denominator' do
132
+ lambda {
133
+ @dv_proportion3.denominator = 0.5
134
+ }.should raise_error ArgumentError
135
+ end
136
+
137
+ it 'should raise ArgumentError with fractional numerator' do
138
+ lambda {
139
+ @dv_proportion3.numerator = 0.5
140
+ }.should raise_error ArgumentError
141
+ end
142
+ end
143
+
144
+ describe 'PK_FRACTION_INTEGER type' do
145
+ it 'should be an instance of DvProportion' do
146
+ @dv_proportion4.should be_an_instance_of DvProportion
147
+ end
148
+
149
+ it 'should raise ArgumentError with fractional denominator' do
150
+ lambda {
151
+ @dv_proportion4.denominator = 0.5
152
+ }.should raise_error ArgumentError
153
+
154
+ end
155
+
156
+ it 'should raise ArgumentError with fractional numerator' do
157
+ lambda {
158
+ @dv_proportion4.numerator = 0.5
159
+ }.should raise_error ArgumentError
160
+ end
161
+ end
162
+ end
@@ -0,0 +1,36 @@
1
+ require File.dirname(__FILE__) + '/../../../../../spec_helper'
2
+ include OpenEHR::RM::DataTypes::Quantity
3
+
4
+ describe DvQuantified do
5
+ before(:all) do
6
+ @dv_quantified = DvQuantified.new(:magnitude => 1,
7
+ :magnitude_status => '=')
8
+ end
9
+
10
+ it 'should be an instance of DvQuantified' do
11
+ @dv_quantified.should be_an_instance_of DvQuantified
12
+ end
13
+
14
+ it 's magnitude should be 1' do
15
+ @dv_quantified.magnitude.should be_equal 1
16
+ end
17
+
18
+ it 's magnitude_status should be =' do
19
+ @dv_quantified.magnitude_status.should == '='
20
+ end
21
+
22
+ it 's comparable to other DvQuantified' do
23
+ dv_quantified = DvQuantified.new(:magnitude => 2)
24
+ @dv_quantified.should < dv_quantified
25
+ end
26
+
27
+ it 'should raise ArgumentError with invalid magnitude_status' do
28
+ lambda {
29
+ @dv_quantified.magnitude_status = '+'
30
+ }.should raise_error ArgumentError
31
+ end
32
+
33
+ it 's accuracy should be unknown' do
34
+ @dv_quantified.should be_accuracy_unknown
35
+ end
36
+ end
@@ -0,0 +1,78 @@
1
+ require File.dirname(__FILE__) + '/../../../../../spec_helper'
2
+ include OpenEHR::RM::DataTypes::Quantity
3
+
4
+ describe DvQuantity do
5
+ before(:each) do
6
+ @dv_quantity = DvQuantity.new(:magnitude => 3,
7
+ :units => 'mg',
8
+ :precision => 0)
9
+ end
10
+
11
+ it 'should be an instance of DvQuantity' do
12
+ @dv_quantity.should be_instance_of DvQuantity
13
+ end
14
+
15
+ it 's units should be mg' do
16
+ @dv_quantity.units.should == 'mg'
17
+ end
18
+
19
+ describe 'Mathematical Operation' do
20
+ before(:each) do
21
+ @dv_quantity5 = DvQuantity.new(:magnitude => 5,
22
+ :units => 'mg')
23
+ end
24
+
25
+ it 'should be comparable to 5mg' do
26
+ @dv_quantity.is_strictly_comparable_to?(@dv_quantity5).should be_true
27
+ end
28
+
29
+ it 'should be 8mg added 5mg' do
30
+ dv_quantity = @dv_quantity + @dv_quantity5
31
+ dv_quantity.magnitude.should == 8
32
+ end
33
+
34
+ it 'should be -2mg minus 5mg' do
35
+ dv_quantity = @dv_quantity - @dv_quantity5
36
+ dv_quantity.magnitude.should == -2
37
+ end
38
+
39
+ it 's unit should be mg' do
40
+ (@dv_quantity + @dv_quantity5).units.should == 'mg'
41
+ end
42
+ end
43
+
44
+ it 'should not be comparable to 8km' do
45
+ dv_quantity = DvQuantity.new(:magnitude => 8,
46
+ :units => 'km')
47
+ @dv_quantity.is_strictly_comparable_to?(dv_quantity).should_not be_true
48
+ end
49
+
50
+ it 'should return false with other type' do
51
+ @dv_quantity.is_strictly_comparable_to?(1).should_not be_true
52
+ end
53
+
54
+ it 's precision should be equal 0' do
55
+ @dv_quantity.precision.should == 0
56
+ end
57
+
58
+ it 'should be integral' do
59
+ @dv_quantity.is_integral?.should be_true
60
+ end
61
+
62
+ it 'should not be integral do' do
63
+ @dv_quantity.precision = 3
64
+ @dv_quantity.is_integral?.should_not be_true
65
+ end
66
+
67
+ it 'should not raise ArgumentError with -1 precision' do
68
+ lambda {
69
+ @dv_quantity.precision = -1
70
+ }.should_not raise_error ArgumentError
71
+ end
72
+
73
+ it 'should raise ArgumentError with -2 precision' do
74
+ lambda {
75
+ @dv_quantity.precision = -2
76
+ }.should raise_error ArgumentError
77
+ end
78
+ end
@@ -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,79 @@
1
+ require File.dirname(__FILE__) + '/../../../../../spec_helper'
2
+ include OpenEHR::RM::DataTypes::Text
3
+ include OpenEHR::RM::Support::Identification
4
+ include OpenEHR::RM::DataTypes::URI
5
+
6
+ describe DvText do
7
+ before(:each) do
8
+ terminology_id = TerminologyID.new(:value => 'openehr')
9
+ language = CodePhrase.new(:terminology_id => terminology_id,
10
+ :code_string => 'ja')
11
+ encoding = CodePhrase.new(:terminology_id => terminology_id,
12
+ :code_string => 'utf-8')
13
+ term = stub(CodePhrase, :code_string => 'C92')
14
+ term_mapping = stub(TermMapping, :target => term)
15
+ hyperlink = stub(DvUri, :value => 'http://openehr.jp/ruby')
16
+ @dv_text = DvText.new(:value => 'test',
17
+ :formatting => 'font = 12pt',
18
+ :language => language,
19
+ :encoding => encoding,
20
+ :mappings => [term_mapping],
21
+ :hyperlink => hyperlink)
22
+ end
23
+
24
+ it 'should be an instance of DvText' do
25
+ @dv_text.should be_an_instance_of DvText
26
+ end
27
+
28
+ it 's value should be test' do
29
+ @dv_text.value.should == 'test'
30
+ end
31
+
32
+ it 'should raise ArgumentError, when value include \n' do
33
+ lambda {
34
+ @dv_text.value = "not valid value\n"
35
+ }.should raise_error(ArgumentError)
36
+ end
37
+
38
+ it 'should raise ArgumentError, when value is nil' do
39
+ lambda {
40
+ @dv_text.value = nil
41
+ }.should raise_error(ArgumentError)
42
+ end
43
+
44
+ it 'formatting should be font' do
45
+ @dv_text.formatting.should == 'font = 12pt'
46
+ end
47
+
48
+ it 'should raise ArgumentError, when formatting is empty' do
49
+ lambda{@dv_text.formatting = ""}.should raise_error(ArgumentError)
50
+ end
51
+
52
+ it 'has 1 mapping' do
53
+ @dv_text.mappings.size.should be 1
54
+ end
55
+
56
+ it '1st item of mappings is C92' do
57
+ @dv_text.mappings[0].target.code_string.should == 'C92'
58
+ end
59
+
60
+ it 'raise error if mappings are empty' do
61
+ expect {@dv_text.mappings = Array.new}.to raise_error
62
+ end
63
+
64
+ it 'does not raise error if mappings are nil' do
65
+ expect {@dv_text.mappings = nil}.not_to raise_error
66
+ end
67
+
68
+ it 'hyperlink is http://openehr.jp/ruby' do
69
+ @dv_text.hyperlink.value.should == 'http://openehr.jp/ruby'
70
+ end
71
+
72
+ it 's language code_string should be ja' do
73
+ @dv_text.language.code_string.should == 'ja'
74
+ end
75
+
76
+ it 's encoding should be utf-8' do
77
+ @dv_text.encoding.code_string.should == 'utf-8'
78
+ end
79
+ end