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,68 @@
1
+ require File.dirname(__FILE__) + '/../../../spec_helper'
2
+ require File.dirname(__FILE__) + '/parser_spec_helper'
3
+ include OpenEHR::Parser
4
+
5
+ describe ADLParser do
6
+ context 'Language order of translation details' do
7
+ before(:all) do
8
+ target_adl_file = 'adl-test-entry.archetype_language_order_of_translation_details.test.adl'
9
+ ap = ADLParser.new(ADL14DIR + '/' + target_adl_file)
10
+ archetype = ap.parse
11
+ @translations = archetype.translations
12
+ end
13
+
14
+ it 'translation is not nil' do
15
+ @translations.should_not be_nil
16
+ end
17
+
18
+ context 'German translation' do
19
+ before(:all) do
20
+ @de = @translations['de']
21
+ end
22
+
23
+ it 'exists' do
24
+ @de.should_not be_nil
25
+ end
26
+
27
+ context 'author' do
28
+ before(:all) do
29
+ @author = @de.author
30
+ end
31
+
32
+ it 'exists' do
33
+ @author.should_not be_nil
34
+ end
35
+
36
+ it 'name is Harry Potter' do
37
+ @author['name'].should == 'Harry Potter'
38
+ end
39
+
40
+ it 'email is harry@something.somewhere.co.uk' do
41
+ @author['email'].should == 'harry@something.somewhere.co.uk'
42
+ end
43
+ end
44
+
45
+ it 'accreditation is Seven OWLs at Hogwards' do
46
+ @de.accreditation.should == 'Seven OWLs at Hogwards'
47
+ end
48
+
49
+ context 'other details' do
50
+ before(:all) do
51
+ @other_details = @de.other_details
52
+ end
53
+
54
+ it 'review 1 is Ron Weasley' do
55
+ @other_details['review 1'].should == 'Ron Weasley'
56
+ end
57
+
58
+ it 'review 2 is Rubeus Hagrid' do
59
+ @other_details['review 2'].should == 'Rubeus Hagrid'
60
+ end
61
+ end
62
+
63
+ it 'language code is de' do
64
+ @de.language.code_string.should == 'de'
65
+ end
66
+ end
67
+ end
68
+ end
@@ -0,0 +1,119 @@
1
+ require File.dirname(__FILE__) + '/../../../spec_helper'
2
+ require File.dirname(__FILE__) + '/parser_spec_helper'
3
+ include OpenEHR::Parser
4
+
5
+ describe ADLParser do
6
+ context 'Language' do
7
+ before(:all) do
8
+ target_adl_file = 'adl-test-entry.archetype_language.test.adl'
9
+ ap = ADLParser.new(ADL14DIR + target_adl_file)
10
+ @archetype = ap.parse
11
+ end
12
+
13
+ context 'original language' do
14
+ before(:all) do
15
+ @original_language = @archetype.original_language
16
+ end
17
+
18
+ it 'original language is en' do
19
+ @original_language.code_string.should == 'en'
20
+ end
21
+
22
+ it 'terminology_id ISO_639-1' do
23
+ @original_language.terminology_id.value.should == 'ISO_639-1'
24
+ end
25
+ end
26
+
27
+ context 'translations' do
28
+ before(:all) do
29
+ @translations = @archetype.translations
30
+ end
31
+
32
+ it 'translation is not nil' do
33
+ @translations.should_not be_nil
34
+ end
35
+
36
+ context 'German translation' do
37
+ before(:all) do
38
+ @de = @translations['de']
39
+ end
40
+
41
+ it 'translation is not nil' do
42
+ @de.should_not be_nil
43
+ end
44
+
45
+ it 'German code_string is de' do
46
+ @de.language.code_string.should == 'de'
47
+ end
48
+
49
+ it 'terminology id is ISO_639-1' do
50
+ @de.language.terminology_id.value.should == 'ISO_639-1'
51
+ end
52
+
53
+ it 'accreditation is British Medical Translator id 00400595' do
54
+ @de.accreditation.should == 'British Medical Translator id 00400595'
55
+ end
56
+
57
+ context 'author' do
58
+ before(:all) do
59
+ @author = @de.author
60
+ end
61
+
62
+ it 'name is Harry Potter' do
63
+ @author['name'].should == 'Harry Potter'
64
+ end
65
+
66
+ it 'email is harry@something.somewhere.co.uk' do
67
+ @author['email'].should == 'harry@something.somewhere.co.uk'
68
+ end
69
+ end
70
+
71
+ context 'other_details' do
72
+ before(:all) do
73
+ @other_details = @de.other_details
74
+ end
75
+
76
+ it 'review 1 is Ron Weasley' do
77
+ @other_details['review 1'].should == 'Ron Weasley'
78
+ end
79
+
80
+ it 'review 2 is Rubeus Hagrid' do
81
+ @other_details['review 2'].should == 'Rubeus Hagrid'
82
+ end
83
+ end
84
+ end
85
+
86
+ context 'Russian translation' do
87
+ before(:all) do
88
+ @ru = @translations['ru']
89
+ end
90
+
91
+ it 'code is ru' do
92
+ @ru.language.code_string.should == 'ru'
93
+ end
94
+
95
+ it 'terminology id is ISO_639-1' do
96
+ @ru.language.terminology_id.value.should == 'ISO_639-1'
97
+ end
98
+
99
+ it 'accreditation is Russion Translator id 892230A' do
100
+ @ru.accreditation.should == 'Russion Translator id 892230A'
101
+ end
102
+
103
+ context 'author' do
104
+ before(:all) do
105
+ @author = @ru.author
106
+ end
107
+
108
+ it 'name is Vladimir Nabokov' do
109
+ @author['name'].should == 'Vladimir Nabokov'
110
+ end
111
+
112
+ it 'email is vladimir@something.somewhere.ru' do
113
+ @author['email'].should == 'vladimir@something.somewhere.ru'
114
+ end
115
+ end
116
+ end
117
+ end
118
+ end
119
+ end
@@ -0,0 +1,50 @@
1
+ require File.dirname(__FILE__) + '/../../../spec_helper'
2
+ require File.dirname(__FILE__) + '/parser_spec_helper'
3
+ include OpenEHR::Parser
4
+
5
+ describe ADLParser do
6
+ context 'Language author parsing behavior' do
7
+ before(:all) do
8
+ target_adl_file = 'adl-test-entry.translations_author_language.test.adl'
9
+ ap = ADLParser.new(ADL14DIR + target_adl_file)
10
+ archetype = ap.parse
11
+ @translations = archetype.translations
12
+ end
13
+
14
+ it 'translations exists' do
15
+ @translations.should_not be_nil
16
+ end
17
+
18
+ context 'German translation' do
19
+ before(:all) do
20
+ @de = @translations['de']
21
+ end
22
+
23
+ it 'exists' do
24
+ @de.should_not be_nil
25
+ end
26
+
27
+ it 'language code string is de' do
28
+ @de.language.code_string.should == 'de'
29
+ end
30
+
31
+ context 'author' do
32
+ before(:all) do
33
+ @author = @de.author
34
+ end
35
+
36
+ it 'exists' do
37
+ @author.should_not be_nil
38
+ end
39
+
40
+ it 'name is Harry Potter' do
41
+ @author['name'].should == 'Harry Potter'
42
+ end
43
+
44
+ it 'email is harry@something.somewhere.co.uk' do
45
+ @author['email'].should == 'harry@something.somewhere.co.uk'
46
+ end
47
+ end
48
+ end
49
+ end
50
+ end
@@ -0,0 +1,46 @@
1
+ require File.dirname(__FILE__) + '/../../../spec_helper'
2
+ require File.dirname(__FILE__) + '/parser_spec_helper'
3
+ include OpenEHR::Parser
4
+
5
+ describe ADLParser do
6
+ context 'Language author parsing behavior' do
7
+ before(:all) do
8
+ TARGET_ADL_FILE = 'adl-test-entry.translations_language_author.test.adl'
9
+ ap = ADLParser.new(ADL14DIR + TARGET_ADL_FILE)
10
+ archetype = ap.parse
11
+ @translations = archetype.translations
12
+ end
13
+
14
+ it 'translations exists' do
15
+ @translations.should_not be_nil
16
+ end
17
+
18
+ context 'German translation' do
19
+ before(:all) do
20
+ @de = @translations['de']
21
+ end
22
+
23
+ it 'exists' do
24
+ @de.should_not be_nil
25
+ end
26
+
27
+ it 'language code string is de' do
28
+ @de.language.code_string.should == 'de'
29
+ end
30
+
31
+ context 'author' do
32
+ before(:all) do
33
+ @author = @de.author
34
+ end
35
+
36
+ it 'name is Harry Potter' do
37
+ @author['name'].should == 'Harry Potter'
38
+ end
39
+
40
+ it 'email is harry@something.somewhere.co.uk' do
41
+ @author['email'].should == 'harry@something.somewhere.co.uk'
42
+ end
43
+ end
44
+ end
45
+ end
46
+ end
@@ -0,0 +1,347 @@
1
+ require File.dirname(__FILE__) + '/../../../spec_helper'
2
+ include OpenEHR::Parser
3
+ include OpenEHR::AM::Archetype
4
+ include OpenEHR::AM::Archetype::ConstraintModel
5
+ include OpenEHR::AM::Archetype::Assertion
6
+ include OpenEHR::AM::Archetype::Ontology
7
+
8
+ describe ADLParser do
9
+
10
+ before (:all) do
11
+ @adl_dir = File.dirname(__FILE__) + '/adl14/'
12
+ end
13
+
14
+ context 'openEHR-EHR-SECTION-summary.v1.adl' do
15
+ before(:all) do
16
+ @ap = ADLParser.new(@adl_dir + 'openEHR-EHR-SECTION.summary.v1.adl')
17
+ end
18
+
19
+ it 'is an instance fo ADLParser' do
20
+ @ap.should be_an_instance_of ADLParser
21
+ end
22
+
23
+ context 'openEHR-EHR-SECTION.summary.v1 parse' do
24
+ context 'ADL parser generates archetype from ADL' do
25
+ before(:all) do
26
+ @archetype = @ap.parse
27
+ end
28
+
29
+ it 'archetype is an instance of Archetype' do
30
+ @archetype.should be_an_instance_of Archetype
31
+ end
32
+
33
+ it 'archetype_id should be openEHR-EHR-SECTION-summary' do
34
+ @archetype.archetype_id.value.should ==
35
+ 'openEHR-EHR-SECTION.summary.v1'
36
+ end
37
+
38
+ it 'adl_version should be 1.4' do
39
+ @archetype.adl_version.should == '1.4'
40
+ end
41
+
42
+ it 'concept should be at0000' do
43
+ @archetype.concept.should == 'at0000'
44
+ end
45
+
46
+ it 'original language is en' do
47
+ @archetype.original_language.code_string.should == 'en'
48
+ end
49
+
50
+ context 'description' do
51
+ before(:all) do
52
+ @description = @archetype.description
53
+ end
54
+
55
+ context 'original author' do
56
+ before(:all) do
57
+ @original_author = @description.original_author
58
+ end
59
+
60
+ it 'name is Sam Heard' do
61
+ @original_author['name'].should == 'Sam Heard'
62
+ end
63
+
64
+ it 'organisation is Ocean Informatics' do
65
+ @original_author['organisation'].should == 'Ocean Informatics'
66
+ end
67
+
68
+ it 'date is 9/01/2007' do
69
+ @original_author['date'].should == '9/01/2007'
70
+ end
71
+
72
+ it 'email is sam.heard@oceaninformatics.biz' do
73
+ @original_author['email'].should == 'sam.heard@oceaninformatics.biz'
74
+ end
75
+ end
76
+
77
+ context 'details' do
78
+ before(:all) do
79
+ @details = @description.details
80
+ end
81
+
82
+ context 'en details' do
83
+ before(:all) do
84
+ @en = @details['en']
85
+ end
86
+
87
+ it 'language is en' do
88
+ @en.language.code_string.should == 'en'
89
+ end
90
+
91
+ it 'purpose is A heading...' do
92
+ @en.purpose.should == "A heading containing summary information based on particular evaluation entries"
93
+ end
94
+
95
+ it 'use is A heading for...' do
96
+ @en.use.should == "A heading for organising clinical data under a heading of summary"
97
+ end
98
+
99
+ it 'keywords are review, conclusions, risk' do
100
+ @en.keywords.should == ['review', 'conclusions', 'risk']
101
+ end
102
+
103
+ it 'misuse should be nil' do
104
+ @en.misuse.should be_nil
105
+ end
106
+ end
107
+
108
+ it 'lifecycle_state is Initial' do
109
+ @description.lifecycle_state.should == 'Initial'
110
+ end
111
+
112
+ it 'other_contributors is nil' do
113
+ @description.other_contributors.should be_nil
114
+ end
115
+ end # of details
116
+ end # of description
117
+
118
+ context 'definition section' do
119
+ before(:all) do
120
+ @definition = @archetype.definition
121
+ end
122
+
123
+ it 'rm_type is SECTION' do
124
+ @definition.rm_type_name.should == 'SECTION'
125
+ end
126
+
127
+ it 'node_id is at0000' do
128
+ @definition.node_id.should == 'at0000'
129
+ end
130
+
131
+ it 'root path is /' do
132
+ @definition.path.should == '/'
133
+ end
134
+
135
+ it 'not any allowed' do
136
+ @definition.any_allowed?.should == false
137
+ end
138
+
139
+ context 'c_attribute specs' do
140
+ before(:all) do
141
+ @attribute = @definition.attributes[0]
142
+ end
143
+
144
+ it 'attribute is instance of CMultipleAttribute' do
145
+ @attribute.should be_an_instance_of CMultipleAttribute
146
+ end
147
+
148
+ it 'rm_attribute_name is items' do
149
+ @attribute.rm_attribute_name.should == 'items'
150
+ end
151
+
152
+ it 'path is /items' do
153
+ @attribute.path.should == '/items'
154
+ end
155
+
156
+ it 'cardinarity is unorderd' do
157
+ @attribute.cardinality.should_not be_ordered
158
+ end
159
+
160
+ it 'lower interval of cardinality is 0' do
161
+ @attribute.cardinality.interval.lower.should be 0
162
+ end
163
+
164
+ it 'interval of cardinality is upper unbounded' do
165
+ @attribute.cardinality.interval.should be_upper_unbounded
166
+ end
167
+ context 'children archetype slot specs' do
168
+ before(:all) do
169
+ @archetype_slot = @attribute.children[0]
170
+ end
171
+
172
+ it 'is an instance of ArchetypeSlot' do
173
+ @archetype_slot.should be_an_instance_of ArchetypeSlot
174
+ end
175
+
176
+ it 's rm type name is EVALUATION' do
177
+ @archetype_slot.rm_type_name.should == 'EVALUATION'
178
+ end
179
+
180
+ it 's lower of occurrences should be 0' do
181
+ @archetype_slot.occurrences.lower.should be 0
182
+ end
183
+
184
+ it 's upper of occurrences should be 1' do
185
+ @archetype_slot.occurrences.upper.should be 1
186
+ end
187
+
188
+ context 'assertions' do
189
+ before(:all) do
190
+ @includes = @archetype_slot.includes
191
+ end
192
+
193
+ context '1st assertion' do
194
+ before(:all) do
195
+ @assertion0 = @includes[0]
196
+ end
197
+
198
+ it 'assertion0 should be an instance of Assertion' do
199
+ @assertion0.should be_an_instance_of Assertion
200
+ end
201
+
202
+ it 'expression type of assertion0 is Boolean' do
203
+ @assertion0.expression.type.should == 'Boolean'
204
+ end
205
+
206
+ it 'expression value of assertion0 is /clinical_synopsis\.v1/' do
207
+ @assertion0.expression.right_operand.item.pattern.should == '/clinical_synopsis\.v1/'
208
+ end
209
+ end
210
+
211
+ context '2nd assertion' do
212
+ before(:all) do
213
+ @assertion1 = @includes[1]
214
+ end
215
+
216
+ it 'assertion1 is an instanse of Assertion' do
217
+ @assertion1.should be_an_instance_of Assertion
218
+ end
219
+
220
+ it 'Assertion1 type is Boolean' do
221
+ @assertion1.expression.type.should == 'Boolean'
222
+ end
223
+
224
+ it 'expression value of assertion1 is /problem\.v1/' do
225
+ @assertion1.expression.right_operand.item.pattern.should ==
226
+ '/problem\.v1/'
227
+ end
228
+ end
229
+
230
+ context '3rd assertion' do
231
+ before(:all) do
232
+ @assertion2 = @includes[2]
233
+ end
234
+
235
+ it 'assertion2 is an instanse of Assertion' do
236
+ @assertion2.should be_an_instance_of Assertion
237
+ end
238
+
239
+ it 'Assertion2 type is Boolean' do
240
+ @assertion2.expression.type.should == 'Boolean'
241
+ end
242
+
243
+ it 'expression value of Assertion2 is /problem\.v1/' do
244
+ @assertion2.expression.right_operand.item.pattern.should ==
245
+ '/problem-diagnosis\.v1/'
246
+ end
247
+ end
248
+
249
+ context '4th assertion' do
250
+ before(:all) do
251
+ @assertion3 = @includes[3]
252
+ end
253
+
254
+ it 'assertion3 is an instanse of Assertion' do
255
+ @assertion3.should be_an_instance_of Assertion
256
+ end
257
+
258
+ it 'Assertion3 type is Boolean' do
259
+ @assertion3.expression.type.should == 'Boolean'
260
+ end
261
+
262
+ it 'expression value of assertion3 is /problem\.v1/' do
263
+ @assertion3.expression.right_operand.item.pattern.should ==
264
+ '/problem-diagnosis-histological\.v1/'
265
+ end
266
+ end
267
+
268
+ context '5th assertion' do
269
+ before(:all) do
270
+ @assertion4 = @includes[4]
271
+ end
272
+
273
+ it 'assertion4 is an instanse of Assertion' do
274
+ @assertion4.should be_an_instance_of Assertion
275
+ end
276
+
277
+ it 'Assertion4 type is Boolean' do
278
+ @assertion4.expression.type.should == 'Boolean'
279
+ end
280
+
281
+ it 'expression value of assertion4 is /problem\.v1/' do
282
+ @assertion4.expression.right_operand.item.pattern.should ==
283
+ '/problem-genetic\.v1/'
284
+ end
285
+ end
286
+
287
+ context '6th assertion' do
288
+ before(:all) do
289
+ @assertion5 = @includes[5]
290
+ end
291
+
292
+ it 'assertion5 is an instanse of Assertion' do
293
+ @assertion5.should be_an_instance_of Assertion
294
+ end
295
+
296
+ it 'Assertion5 type is Boolean' do
297
+ @assertion5.expression.type.should == 'Boolean'
298
+ end
299
+
300
+ it 'expression value of assertion5 is /problem\.v1/' do
301
+ @assertion5.expression.right_operand.item.pattern.should ==
302
+ '/risk\.v1/'
303
+ end
304
+ end
305
+
306
+ context '7th assertion(is null)' do
307
+ it '7th assersion is nil' do
308
+ @includes[6].should be_nil
309
+ end
310
+ end
311
+ end
312
+ end
313
+ end
314
+ end #definition
315
+
316
+ context 'ontology section' do
317
+ before(:all) do
318
+ @archetype_ontology = @archetype.ontology
319
+ end
320
+
321
+ it 'is an ArchtypeOntology instance' do
322
+ @archetype_ontology.should be_an_instance_of ArchetypeOntology
323
+ end
324
+
325
+ it 'term_definitions parsed and assigned properly' do
326
+ @archetype_ontology.term_definition(:lang => 'en',
327
+ :code => 'at0000').items['text'].should == 'Summary'
328
+ end
329
+
330
+ it 'description term_definitions parsed and assigned properly' do
331
+ @archetype_ontology.term_definition(:lang => 'en',
332
+ :code => 'at0000').items['description'].should ==
333
+ 'A heading for conclusions and other evaluations'
334
+ end
335
+
336
+ it 'term_codes should be assigned properly' do
337
+ @archetype_ontology.term_codes.should == ['at0000']
338
+ end
339
+
340
+ it 'ArchetypeOntology has en lang' do
341
+ @archetype_ontology.should have_language 'en'
342
+ end
343
+ end
344
+ end
345
+ end
346
+ end
347
+ end