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,41 @@
1
+ require File.dirname(__FILE__) + '/../../../../../../spec_helper'
2
+ include OpenEHR::AM::Archetype::ConstraintModel::Primitive
3
+ include OpenEHR::RM::DataTypes::Text
4
+
5
+ describe CPrimitive do
6
+ before(:each) do
7
+ default = DvText.new(:value => 'DEFAULT')
8
+ assumed = DvText.new(:value => 'ASSUMED')
9
+ @c_primitive = CPrimitive.new(:default_value => default,
10
+ :assumed_value => assumed)
11
+ end
12
+
13
+ it 'should be an instance of CPrimitive' do
14
+ @c_primitive.should be_an_instance_of CPrimitive
15
+ end
16
+
17
+ it 'type is ANY' do
18
+ @c_primitive.type.should == 'ANY'
19
+ end
20
+
21
+ it 'default value should be assigned properly' do
22
+ @c_primitive.default_value.value.should == 'DEFAULT'
23
+ end
24
+
25
+ it 'assumed_value should be assigned properly' do
26
+ @c_primitive.assumed_value.value.should == 'ASSUMED'
27
+ end
28
+
29
+ it 'should be true when assumed_value is assigned' do
30
+ @c_primitive.should have_assumed_value
31
+ end
32
+
33
+ it 'should not be true when assumed_value is not assigned' do
34
+ @c_primitive.assumed_value = nil
35
+ @c_primitive.should_not have_assumed_value
36
+ end
37
+
38
+ it 'type should not empty' do
39
+ expect {@c_primitive.type = ''}.to raise_error
40
+ end
41
+ end
@@ -0,0 +1,19 @@
1
+ require File.dirname(__FILE__) + '/../../../../../../spec_helper'
2
+ include OpenEHR::AM::Archetype::ConstraintModel::Primitive
3
+
4
+ describe CReal do
5
+ before(:each) do
6
+ @c_real = CReal.new(:default_value => 1.5,
7
+ :assumed_value => 2.3,
8
+ :type => 'Real',
9
+ :list => [-1.5,20.3])
10
+ end
11
+
12
+ it 'should be an instance of CReal' do
13
+ @c_real.should be_an_instance_of CReal
14
+ end
15
+
16
+ it 'type is DvReal' do
17
+ @c_real.type.should == 'Real'
18
+ end
19
+ end
@@ -0,0 +1,73 @@
1
+ require File.dirname(__FILE__) + '/../../../../../../spec_helper'
2
+ include OpenEHR::AM::Archetype::ConstraintModel::Primitive
3
+ include OpenEHR::RM::DataTypes::Text
4
+
5
+ describe CString do
6
+ before(:each) do
7
+ @default_value = DvText.new(:value => 'default')
8
+ @c_string = CString.new(:default_value => @default_value,
9
+ :assumed_value => 'assumed',
10
+ :pattern => 't[a-z]st')
11
+ end
12
+
13
+ it 'should be an instance of CString' do
14
+ @c_string.should be_an_instance_of CString
15
+ end
16
+
17
+ it 'type is always String' do
18
+ @c_string.type.should == 'String'
19
+ end
20
+
21
+ it 'default should be assigned properly' do
22
+ @c_string.default_value.value.should == 'default'
23
+ end
24
+
25
+ it 'assumed_value should be assigned properly' do
26
+ @c_string.assumed_value.should == 'assumed'
27
+ end
28
+
29
+ it 'pattern should be assigned properly by constructor' do
30
+ @c_string.pattern.should == 't[a-z]st'
31
+ end
32
+
33
+ it 'pattern should be assigned properly by method' do
34
+ @c_string.pattern = '.*'
35
+ @c_string.pattern.should == '.*'
36
+ end
37
+
38
+ it 'should raise ArgumentError if either list or pattern is not nil' do
39
+ lambda {
40
+ @c_string.list = ['test','driven']
41
+ }.should raise_error ArgumentError
42
+ end
43
+
44
+ it 'should raise ArgumentError if both list and pattern are nil' do
45
+ lambda {
46
+ @c_string.pattern = nil
47
+ }.should raise_error ArgumentError
48
+ end
49
+
50
+ describe 'list attribute' do
51
+ before(:each) do
52
+ @default_value = DvText.new(:value => 'default')
53
+ @c_string = CString.new(:default_value => @default_value,
54
+ :assumed_value => 'assumed',
55
+ :list => ['test', 'behavior'])
56
+ end
57
+
58
+ it 'list should be assigned properly by constructor' do
59
+ @c_string.list.should == ['test', 'behavior']
60
+ end
61
+
62
+ it 'list shoudl be assigned properly by method' do
63
+ @c_string.list = ['spec']
64
+ @c_string.list.should == ['spec']
65
+ end
66
+
67
+ it 'should raise ArgumentError if both pattern and list is not nil' do
68
+ lambda {
69
+ @c_string.pattern = 'file.*'
70
+ }.should raise_error ArgumentError
71
+ end
72
+ end
73
+ end
@@ -0,0 +1,104 @@
1
+ require File.dirname(__FILE__) + '/../../../../../../spec_helper'
2
+ include OpenEHR::RM::DataTypes::Quantity::DateTime
3
+ include OpenEHR::AM::Archetype
4
+ include OpenEHR::AM::Archetype::ConstraintModel::Primitive
5
+
6
+ describe CTime do
7
+ before(:each) do
8
+ default_value = DvTime.new(:value => '01:23:45')
9
+ assumed_value = DvTime.new(:value => '22:02:33')
10
+ range = Interval.new(:lower => DvTime.new(:value => '01:01:22'),
11
+ :upper => DvTime.new(:value => '23:55:59'))
12
+ @c_time = CTime.new(:default_value => default_value,
13
+ :assumed_value => assumed_value,
14
+ :range => range,
15
+ :minute_validity => ValidityKind::MANDATORY,
16
+ :second_validity => ValidityKind::OPTIONAL,
17
+ :millisecond_validity => ValidityKind::DISALLOWED)
18
+ end
19
+
20
+ it 'should be an instance of CTime' do
21
+ @c_time.should be_an_instance_of CTime
22
+ end
23
+
24
+ it 'type is DvTime' do
25
+ @c_time.type.should == 'ISO8601_TIME'
26
+ end
27
+
28
+ it 'minute_validity should be assigned' do
29
+ @c_time.minute_validity.should be_equal ValidityKind::MANDATORY
30
+ end
31
+
32
+ it 'seconds_validity should be assigned properly' do
33
+ @c_time.second_validity.should be_equal ValidityKind::OPTIONAL
34
+ end
35
+
36
+ it 'millisecond_validity should be assigned properly' do
37
+ @c_time.millisecond_validity.should be_equal ValidityKind::DISALLOWED
38
+ end
39
+
40
+ it 'should be true if range is not nil' do
41
+ @c_time.should be_validity_is_range
42
+ end
43
+
44
+ it 'second_validity should not be MANDATORY if minute_validity is optional' do
45
+ @c_time.second_validity = ValidityKind::MANDATORY
46
+ lambda {
47
+ @c_time.minute_validity = ValidityKind::OPTIONAL
48
+ }.should raise_error ArgumentError
49
+ end
50
+
51
+ it 'second_validity should be DISALLOWED if minute_validity is DISALLOWED' do
52
+ lambda {
53
+ @c_time.minute_validity = ValidityKind::DISALLOWED
54
+ }.should raise_error ArgumentError
55
+ end
56
+
57
+ it 'should not raise ArgumentError if minute_validity and second_validity are DISALLOWED' do
58
+ @c_time.second_validity = ValidityKind::DISALLOWED
59
+ lambda {
60
+ @c_time.minute_validity = ValidityKind::DISALLOWED
61
+ }.should_not raise_error ArgumentError
62
+ end
63
+
64
+ it 'millisecond_validity should not be MANDATORY if second_validity is optional' do
65
+ @c_time.millisecond_validity = ValidityKind::MANDATORY
66
+ lambda {
67
+ @c_time.second_validity = ValidityKind::OPTIONAL
68
+ }.should raise_error ArgumentError
69
+ end
70
+
71
+ it 'millisecond_validity should be DISALLOWED if second_validity is DISALLOWED' do
72
+ lambda {
73
+ @c_time.second_validity = ValidityKind::DISALLOWED
74
+ }.should_not raise_error ArgumentError
75
+ end
76
+
77
+ it 'should raise ArgumentError if second_validity is DISALLOWED and millisecond_validity is OPTIONAL' do
78
+ @c_time.millisecond_validity = ValidityKind::OPTIONAL
79
+ lambda {
80
+ @c_time.second_validity = ValidityKind::DISALLOWED
81
+ }.should raise_error ArgumentError
82
+ end
83
+
84
+ describe 'pattern constraint' do
85
+ before(:all) do
86
+ @c_timep = CTime.new(:pattern => 'hh:mm:ss')
87
+ end
88
+
89
+ it 'pattern is hh:mm:ss' do
90
+ @c_timep.pattern.should == 'hh:mm:ss'
91
+ end
92
+ end
93
+
94
+ describe 'list constraint' do
95
+ before(:all) do
96
+ time = DvTime.new(:value => '09:51:17')
97
+ @c_timel = CTime.new(:list => [time])
98
+ end
99
+
100
+ it 'first item value is 09:51:17' do
101
+ @c_timel.list[0].value.should == '09:51:17'
102
+ end
103
+ end
104
+ end
@@ -0,0 +1,97 @@
1
+ require File.dirname(__FILE__) + '/../../../../../spec_helper'
2
+ include OpenEHR::AM::Archetype::Ontology
3
+ include OpenEHR::RM::DataTypes::Text
4
+
5
+ describe ArchetypeOntology do
6
+ before(:each) do
7
+ items = {'text' => 'Archetype Concept', 'desc' => 'concept description'}
8
+ term1 = {'at0000' => ArchetypeTerm.new(:code => 'at0000', :items => items)}
9
+ items = {'text' => 'Blood pressure'}
10
+ term2 = {'at0001' => ArchetypeTerm.new(:code => 'at0001', :items => items)}
11
+ term3 = {'at0002' => ArchetypeTerm.new(:code => 'at0002', :items => items)}
12
+ term_definitions = {'ja' => (term1.update term2), 'en' => term1}
13
+ items = {'text' => 'test', 'description' => 'test item'}
14
+ term4 = {'ac0003' => ArchetypeTerm.new(:code => 'ac0003', :items => items)}
15
+ constraint_definitions = {'ja' => term4}
16
+ code_phrase = stub(CodePhrase, :code_string => '163020007')
17
+ bind = {'at0000' => code_phrase}
18
+ term_bindings = {'SNOMED-CT(2003)' => bind}
19
+ @archetype_ontology =
20
+ ArchetypeOntology.new(:primary_language => "ja",
21
+ :languages_available => ['ja', 'en'],
22
+ :terminologies_available => ['SNOMED-CT(2003)'],
23
+ :term_definitions => term_definitions,
24
+ :constraint_definitions => constraint_definitions,
25
+ :term_bindings => term_bindings,
26
+ :specialisation_depth => 0)
27
+ end
28
+
29
+ it 'should be an instance of ArchetypeOntology' do
30
+ @archetype_ontology.should be_an_instance_of ArchetypeOntology
31
+ end
32
+
33
+ it 'specialisation depth should be assigned properly' do
34
+ @archetype_ontology.specialisation_depth.should be_equal 0
35
+ end
36
+
37
+ it 'primary language is ja' do
38
+ @archetype_ontology.primary_language.should == 'ja'
39
+ end
40
+
41
+ it 'languages available are ja, en' do
42
+ @archetype_ontology.languages_available.should == ['ja', 'en']
43
+ end
44
+
45
+ it 'term_definition should be assigned properly' do
46
+ @archetype_ontology.term_definition(:lang => 'ja', :code => 'at0000').items['text'].should == 'Archetype Concept'
47
+ end
48
+
49
+ it 'term_codes should returnd all at codes' do
50
+ @archetype_ontology.term_codes.should == ['at0000','at0001']
51
+ end
52
+
53
+ it 'constraint_definitions should be assigned properly' do
54
+ @archetype_ontology.constraint_definition(:lang => 'ja', :code => 'ac0003').items['text'].
55
+ should == 'test'
56
+ end
57
+
58
+ it 'constrant_codes should return all ac codes' do
59
+ @archetype_ontology.constraint_codes.should == ['ac0003']
60
+ end
61
+
62
+ it 'term_bindings should be assigned properly' do
63
+ @archetype_ontology.term_bindings['SNOMED-CT(2003)']['at0000'].
64
+ code_string.should == '163020007'
65
+ end
66
+
67
+ it 'terminologies_available should return available terminology' do
68
+ @archetype_ontology.terminologies_available.should == ['SNOMED-CT(2003)']
69
+ end
70
+
71
+ it 'has language ja' do
72
+ @archetype_ontology.should have_language 'ja'
73
+ end
74
+
75
+ it 'has language en' do
76
+ @archetype_ontology.should have_language 'en'
77
+ end
78
+
79
+ it 'does not have language es' do
80
+ @archetype_ontology.should_not have_language 'es'
81
+ end
82
+
83
+ it 'has terminology SNOMED-CT(2003)' do
84
+ @archetype_ontology.should have_terminology 'SNOMED-CT(2003)'
85
+ end
86
+
87
+ it 'does not have MHLW code' do
88
+ @archetype_ontology.should_not have_terminology 'MHLW'
89
+ end
90
+
91
+ it 'term binding code_string is 163020007' do
92
+ @archetype_ontology.term_binding(:terminology => 'SNOMED-CT(2003)',
93
+ :code => 'at0000').code_string.
94
+ should == '163020007'
95
+ end
96
+ end
97
+
@@ -0,0 +1,43 @@
1
+ require File.dirname(__FILE__) + '/../../../../../spec_helper'
2
+ include OpenEHR::AM::Archetype::Ontology
3
+
4
+ describe ArchetypeTerm do
5
+ before(:each) do
6
+ items = {:text => 'text', :desc => 'description'}
7
+ @archetype_term = ArchetypeTerm.new(:code => 'at0001',
8
+ :items => items)
9
+ end
10
+
11
+ it 'should be an instance of ArchetypeTerm' do
12
+ @archetype_term.should be_an_instance_of ArchetypeTerm
13
+ end
14
+
15
+ it 'code should be assigned properly' do
16
+ @archetype_term.code.should == 'at0001'
17
+ end
18
+
19
+ it 'should raise ArgumentError if code is nil' do
20
+ lambda {
21
+ @archetype_term.code = nil
22
+ }.should raise_error ArgumentError
23
+ end
24
+
25
+ it 'should raise ArgumentError if code is empty' do
26
+ lambda {
27
+ @archetype_term.code = ''
28
+ }.should raise_error ArgumentError
29
+ end
30
+
31
+ it 'items should be assigned properly' do
32
+ @archetype_term.items[:text].should == 'text'
33
+ end
34
+
35
+ it 'keys should be a set of keys of item' do
36
+ @archetype_term.keys.should == Set[:text, :desc]
37
+ end
38
+
39
+ it 'keys should be empty if items are nil' do
40
+ @archetype_term.items = nil
41
+ @archetype_term.keys.should == Set.new
42
+ end
43
+ end
@@ -0,0 +1,42 @@
1
+ require File.dirname(__FILE__) + '/../../../../spec_helper'
2
+ include OpenEHR::AM::Archetype
3
+
4
+ describe ValidityKind do
5
+ before(:each) do
6
+ @validity_kind = ValidityKind.new(:value => 1002)
7
+ end
8
+
9
+ it 'should be an instance of ValidityKind' do
10
+ @validity_kind.should be_an_instance_of ValidityKind
11
+ end
12
+
13
+ it 'mandatory should be equal 1001' do
14
+ ValidityKind::MANDATORY.should be_equal 1001
15
+ end
16
+
17
+ it 'optional should be equal 1002' do
18
+ ValidityKind::OPTIONAL.should be_equal 1002
19
+ end
20
+
21
+ it 'disallowed should be equal 1003' do
22
+ ValidityKind::DISALLOWED.should be_equal 1003
23
+ end
24
+
25
+ it 'should not raise ArgumentError with valid value' do
26
+ lambda {
27
+ [1001, 1002, 1003].each {|value| @validity_kind.value = value}
28
+ }.should_not raise_error ArgumentError
29
+ end
30
+
31
+ it 'should raise ArgumentError with invalid value such as 1000' do
32
+ lambda {
33
+ @validity_kind.value = 1000
34
+ }.should raise_error ArgumentError
35
+ end
36
+
37
+ it 'should raise ArgumentError with invalid value such as 1004' do
38
+ lambda {
39
+ @validity_kind.value = 1004
40
+ }.should raise_error ArgumentError
41
+ end
42
+ end
@@ -0,0 +1,34 @@
1
+ # ticket 192
2
+ require File.dirname(__FILE__) + '/../../../../../../spec_helper'
3
+ require 'openehr/am/openehr_profile/data_types/basic'
4
+ include ::OpenEHR::AM::OpenEHRProfile::DataTypes::Basic
5
+ include ::OpenEHR::AssumedLibraryTypes
6
+ require 'set'
7
+
8
+ describe CDvState do
9
+ before(:each) do
10
+ proposed_state = State.new(:name => 'PROPOSED')
11
+ complete_state = TerminalState.new(:name => 'COMPLETED')
12
+ finish = Transition.new(:event => 'finish', :next_state => complete_state)
13
+ transitions = Set[finish]
14
+ non_terminal_state = NonTerminalState.new(:name => 'IN_EXECUTION',
15
+ :transitions => transitions)
16
+ states = Set[proposed_state, non_terminal_state, complete_state]
17
+ state_machine = StateMachine.new(:states => states)
18
+ occurrences = Interval.new(:upper => 1, :lower => 1)
19
+ @c_dv_state = CDvState.new(:value => state_machine, :path => '/',
20
+ :occurrences => occurrences)
21
+ end
22
+
23
+ it 'is an instance of StateMachine' do
24
+ @c_dv_state.should be_an_instance_of CDvState
25
+ end
26
+
27
+ it 'states size should be 3' do
28
+ @c_dv_state.value.states.size.should be 3
29
+ end
30
+
31
+ it 'raise error if value is nil' do
32
+ expect {@c_dv_state.value = nil}.to raise_error
33
+ end
34
+ end