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.
- data/.document +5 -0
- data/.rspec +2 -0
- data/.travis.yml +3 -0
- data/Gemfile +23 -0
- data/Guardfile +12 -0
- data/History.txt +36 -0
- data/PostInstall.txt +9 -0
- data/README.rdoc +82 -0
- data/Rakefile +44 -0
- data/VERSION +1 -0
- data/doc/openehr_terminology.xml +2700 -0
- data/lib/openehr.rb +11 -0
- data/lib/openehr/am.rb +8 -0
- data/lib/openehr/am/archetype.rb +133 -0
- data/lib/openehr/am/archetype/assertion.rb +190 -0
- data/lib/openehr/am/archetype/constraint_model.rb +328 -0
- data/lib/openehr/am/archetype/constraint_model/primitive.rb +327 -0
- data/lib/openehr/am/archetype/ontology.rb +126 -0
- data/lib/openehr/am/openehr_profile.rb +9 -0
- data/lib/openehr/am/openehr_profile/data_types.rb +13 -0
- data/lib/openehr/am/openehr_profile/data_types/basic.rb +114 -0
- data/lib/openehr/am/openehr_profile/data_types/quantity.rb +67 -0
- data/lib/openehr/am/openehr_profile/data_types/text.rb +22 -0
- data/lib/openehr/assumed_library_types.rb +691 -0
- data/lib/openehr/parser.rb +23 -0
- data/lib/openehr/parser/adl.rb +57 -0
- data/lib/openehr/parser/adl_grammar.tt +245 -0
- data/lib/openehr/parser/adl_parser.rb +52 -0
- data/lib/openehr/parser/cadl_grammar.tt +1527 -0
- data/lib/openehr/parser/cadl_node.rb +44 -0
- data/lib/openehr/parser/dadl.rb +13 -0
- data/lib/openehr/parser/dadl_grammar.tt +358 -0
- data/lib/openehr/parser/exception.rb +68 -0
- data/lib/openehr/parser/shared_token_grammar.tt +1229 -0
- data/lib/openehr/parser/validator.rb +19 -0
- data/lib/openehr/parser/xml_perser.rb +13 -0
- data/lib/openehr/rm.rb +15 -0
- data/lib/openehr/rm/common.rb +14 -0
- data/lib/openehr/rm/common/archetyped.rb +182 -0
- data/lib/openehr/rm/common/change_control.rb +332 -0
- data/lib/openehr/rm/common/directory.rb +29 -0
- data/lib/openehr/rm/common/generic.rb +216 -0
- data/lib/openehr/rm/common/resource.rb +154 -0
- data/lib/openehr/rm/composition.rb +103 -0
- data/lib/openehr/rm/composition/content.rb +22 -0
- data/lib/openehr/rm/composition/content/entry.rb +253 -0
- data/lib/openehr/rm/composition/content/navigation.rb +31 -0
- data/lib/openehr/rm/data_structures.rb +25 -0
- data/lib/openehr/rm/data_structures/history.rb +117 -0
- data/lib/openehr/rm/data_structures/item_structure.rb +218 -0
- data/lib/openehr/rm/data_structures/item_structure/representation.rb +63 -0
- data/lib/openehr/rm/data_types.rb +14 -0
- data/lib/openehr/rm/data_types/basic.rb +108 -0
- data/lib/openehr/rm/data_types/charset.lst +818 -0
- data/lib/openehr/rm/data_types/charset_extract.rb +24 -0
- data/lib/openehr/rm/data_types/encapsulated.rb +98 -0
- data/lib/openehr/rm/data_types/quantity.rb +402 -0
- data/lib/openehr/rm/data_types/quantity/date_time.rb +256 -0
- data/lib/openehr/rm/data_types/text.rb +169 -0
- data/lib/openehr/rm/data_types/time_specification.rb +75 -0
- data/lib/openehr/rm/data_types/uri.rb +83 -0
- data/lib/openehr/rm/demographic.rb +269 -0
- data/lib/openehr/rm/ehr.rb +162 -0
- data/lib/openehr/rm/integration.rb +27 -0
- data/lib/openehr/rm/security.rb +12 -0
- data/lib/openehr/rm/support.rb +14 -0
- data/lib/openehr/rm/support/definition.rb +15 -0
- data/lib/openehr/rm/support/identification.rb +412 -0
- data/lib/openehr/rm/support/measurement.rb +17 -0
- data/lib/openehr/rm/support/terminology.rb +135 -0
- data/lib/openehr/serializer.rb +272 -0
- data/lib/openehr/terminology.rb +7 -0
- data/lib/openehr/terminology/open_ehr_terminology.rb +41 -0
- data/lib/openehr/writer.rb +12 -0
- data/openehr.gemspec +472 -0
- data/spec/lib/openehr/am/archetype/archetype_spec.rb +103 -0
- data/spec/lib/openehr/am/archetype/assertion/assertion_spec.rb +60 -0
- data/spec/lib/openehr/am/archetype/assertion/assertion_variable_spec.rb +30 -0
- data/spec/lib/openehr/am/archetype/assertion/expr_binary_operator.rb +40 -0
- data/spec/lib/openehr/am/archetype/assertion/expr_item_spec.rb +28 -0
- data/spec/lib/openehr/am/archetype/assertion/expr_leaf_spec.rb +34 -0
- data/spec/lib/openehr/am/archetype/assertion/expr_operator_spec.rb +25 -0
- data/spec/lib/openehr/am/archetype/assertion/expr_unary_operator_spec.rb +26 -0
- data/spec/lib/openehr/am/archetype/assertion/operator_kind_spec.rb +114 -0
- data/spec/lib/openehr/am/archetype/constraint_model/archetype_constraint_spec.rb +56 -0
- data/spec/lib/openehr/am/archetype/constraint_model/archetype_internal_ref_spec.rb +36 -0
- data/spec/lib/openehr/am/archetype/constraint_model/archetype_slot_spec.rb +61 -0
- data/spec/lib/openehr/am/archetype/constraint_model/c_attribute_spec.rb +59 -0
- data/spec/lib/openehr/am/archetype/constraint_model/c_complex_object_spec.rb +39 -0
- data/spec/lib/openehr/am/archetype/constraint_model/c_defined_object_spec.rb +53 -0
- data/spec/lib/openehr/am/archetype/constraint_model/c_domain_type_spec.rb +25 -0
- data/spec/lib/openehr/am/archetype/constraint_model/c_multiple_attribute_spec.rb +23 -0
- data/spec/lib/openehr/am/archetype/constraint_model/c_object_spec.rb +61 -0
- data/spec/lib/openehr/am/archetype/constraint_model/c_primitive_object_spec.rb +33 -0
- data/spec/lib/openehr/am/archetype/constraint_model/c_reference_object_spec.rb +17 -0
- data/spec/lib/openehr/am/archetype/constraint_model/c_single_attribute_spec.rb +22 -0
- data/spec/lib/openehr/am/archetype/constraint_model/cardinality_spec.rb +68 -0
- data/spec/lib/openehr/am/archetype/constraint_model/constraint_ref_spec.rb +29 -0
- data/spec/lib/openehr/am/archetype/constraint_model/primitive/c_boolean_spec.rb +57 -0
- data/spec/lib/openehr/am/archetype/constraint_model/primitive/c_date_spec.rb +52 -0
- data/spec/lib/openehr/am/archetype/constraint_model/primitive/c_date_time_spec.rb +136 -0
- data/spec/lib/openehr/am/archetype/constraint_model/primitive/c_duration_spec.rb +41 -0
- data/spec/lib/openehr/am/archetype/constraint_model/primitive/c_integer_spec.rb +67 -0
- data/spec/lib/openehr/am/archetype/constraint_model/primitive/c_primitive_spec.rb +41 -0
- data/spec/lib/openehr/am/archetype/constraint_model/primitive/c_real_spec.rb +19 -0
- data/spec/lib/openehr/am/archetype/constraint_model/primitive/c_string_spec.rb +73 -0
- data/spec/lib/openehr/am/archetype/constraint_model/primitive/c_time_spec.rb +104 -0
- data/spec/lib/openehr/am/archetype/ontology/archetype_ontology_spec.rb +97 -0
- data/spec/lib/openehr/am/archetype/ontology/archetype_term_spec.rb +43 -0
- data/spec/lib/openehr/am/archetype/validity_kind_spec.rb +42 -0
- data/spec/lib/openehr/am/openehr_profile/data_types/basic/c_dv_state_spec.rb +34 -0
- data/spec/lib/openehr/am/openehr_profile/data_types/basic/non_terminal_state_spec.rb +36 -0
- data/spec/lib/openehr/am/openehr_profile/data_types/basic/state_machine_spec.rb +34 -0
- data/spec/lib/openehr/am/openehr_profile/data_types/basic/state_spec.rb +26 -0
- data/spec/lib/openehr/am/openehr_profile/data_types/basic/terminal_state_spec.rb +18 -0
- data/spec/lib/openehr/am/openehr_profile/data_types/basic/transition_spec.rb +62 -0
- data/spec/lib/openehr/am/openehr_profile/data_types/quantity/c_dv_ordinal_spec.rb +41 -0
- data/spec/lib/openehr/am/openehr_profile/data_types/quantity/c_dv_quantity_spec.rb +50 -0
- data/spec/lib/openehr/am/openehr_profile/data_types/quantity/c_quantity_item_spec.rb +46 -0
- data/spec/lib/openehr/am/openehr_profile/data_types/text/c_code_phrase_spec.rb +34 -0
- data/spec/lib/openehr/assumed_library_types/interval_spec.rb +145 -0
- data/spec/lib/openehr/assumed_library_types/iso8601_date_spec.rb +236 -0
- data/spec/lib/openehr/assumed_library_types/iso8601_date_time_spec.rb +47 -0
- data/spec/lib/openehr/assumed_library_types/iso8601_duration_spec.rb +150 -0
- data/spec/lib/openehr/assumed_library_types/iso8601_time_spec.rb +234 -0
- data/spec/lib/openehr/assumed_library_types/iso8601_timezone_spec.rb +57 -0
- data/spec/lib/openehr/assumed_library_types/time_definitions_spec.rb +136 -0
- data/spec/lib/openehr/assumed_library_types/timezone_spec.rb +42 -0
- data/spec/lib/openehr/parser/adl14/adl-test-ENTRY.assumed_types.v1.adl +88 -0
- data/spec/lib/openehr/parser/adl14/adl-test-ENTRY.basic_types.v1.adl +143 -0
- data/spec/lib/openehr/parser/adl14/adl-test-ENTRY.basic_types_fail.v1.adl +50 -0
- data/spec/lib/openehr/parser/adl14/adl-test-ENTRY.most_minimal.v1.adl +27 -0
- data/spec/lib/openehr/parser/adl14/adl-test-ENTRY.structure_test1.v1.adl +46 -0
- data/spec/lib/openehr/parser/adl14/adl-test-SOME_TYPE.generic_type_basic.draft.adl +56 -0
- data/spec/lib/openehr/parser/adl14/adl-test-SOME_TYPE.generic_type_use_node.draft.adl +63 -0
- data/spec/lib/openehr/parser/adl14/adl-test-car.paths.test.adl +80 -0
- data/spec/lib/openehr/parser/adl14/adl-test-car.use_node.test.adl +87 -0
- data/spec/lib/openehr/parser/adl14/adl-test-composition.dv_coded_text.test.adl +29 -0
- data/spec/lib/openehr/parser/adl14/adl-test-entry.archetype_bindings.test.adl +47 -0
- data/spec/lib/openehr/parser/adl14/adl-test-entry.archetype_desc_missing_purpose.test.adl +45 -0
- data/spec/lib/openehr/parser/adl14/adl-test-entry.archetype_description.test.adl +61 -0
- data/spec/lib/openehr/parser/adl14/adl-test-entry.archetype_description2.test.adl +45 -0
- data/spec/lib/openehr/parser/adl14/adl-test-entry.archetype_identification.test.adl +26 -0
- data/spec/lib/openehr/parser/adl14/adl-test-entry.archetype_internal_ref.test.adl +36 -0
- data/spec/lib/openehr/parser/adl14/adl-test-entry.archetype_internal_ref2.test.adl +36 -0
- data/spec/lib/openehr/parser/adl14/adl-test-entry.archetype_language.test.adl +47 -0
- data/spec/lib/openehr/parser/adl14/adl-test-entry.archetype_language_no_accreditation.test.adl +38 -0
- data/spec/lib/openehr/parser/adl14/adl-test-entry.archetype_language_order_of_translation_details.test.adl +40 -0
- data/spec/lib/openehr/parser/adl14/adl-test-entry.archetype_ontology.test.adl +25 -0
- data/spec/lib/openehr/parser/adl14/adl-test-entry.archetype_slot.test.adl +40 -0
- data/spec/lib/openehr/parser/adl14/adl-test-entry.archetype_slot.test2.adl +37 -0
- data/spec/lib/openehr/parser/adl14/adl-test-entry.archetype_uncommonkeys.test.adl +29 -0
- data/spec/lib/openehr/parser/adl14/adl-test-entry.basic_types.test.adl +272 -0
- data/spec/lib/openehr/parser/adl14/adl-test-entry.c_code_phrase.test.adl +77 -0
- data/spec/lib/openehr/parser/adl14/adl-test-entry.c_dv_ordinal.test.adl +66 -0
- data/spec/lib/openehr/parser/adl14/adl-test-entry.c_dv_quantity_empty.test.adl +46 -0
- data/spec/lib/openehr/parser/adl14/adl-test-entry.c_dv_quantity_full.test.adl +64 -0
- data/spec/lib/openehr/parser/adl14/adl-test-entry.c_dv_quantity_full2.test.adl +64 -0
- data/spec/lib/openehr/parser/adl14/adl-test-entry.c_dv_quantity_full3.test.adl +64 -0
- data/spec/lib/openehr/parser/adl14/adl-test-entry.c_dv_quantity_item_units_only.test.adl +55 -0
- data/spec/lib/openehr/parser/adl14/adl-test-entry.c_dv_quantity_list.test.adl +58 -0
- data/spec/lib/openehr/parser/adl14/adl-test-entry.c_dv_quantity_property.test.adl +47 -0
- data/spec/lib/openehr/parser/adl14/adl-test-entry.c_dv_quantity_reversed.test.adl +59 -0
- data/spec/lib/openehr/parser/adl14/adl-test-entry.constraint_binding.test.adl +37 -0
- data/spec/lib/openehr/parser/adl14/adl-test-entry.constraint_ref.test.adl +43 -0
- data/spec/lib/openehr/parser/adl14/adl-test-entry.datetime.test.adl +183 -0
- data/spec/lib/openehr/parser/adl14/adl-test-entry.domain_types.test.adl +97 -0
- data/spec/lib/openehr/parser/adl14/adl-test-entry.durations.test.adl +109 -0
- data/spec/lib/openehr/parser/adl14/adl-test-entry.empty_other_contributors.test.adl +42 -0
- data/spec/lib/openehr/parser/adl14/adl-test-entry.missing_language.test.adl +23 -0
- data/spec/lib/openehr/parser/adl14/adl-test-entry.mixed_node_types.draft.adl +61 -0
- data/spec/lib/openehr/parser/adl14/adl-test-entry.most_minimal.test.adl +23 -0
- data/spec/lib/openehr/parser/adl14/adl-test-entry.multi_language.test.adl +52 -0
- data/spec/lib/openehr/parser/adl14/adl-test-entry.special_string.test.adl +88 -0
- data/spec/lib/openehr/parser/adl14/adl-test-entry.structure_test1.test.adl +45 -0
- data/spec/lib/openehr/parser/adl14/adl-test-entry.structure_test2.test.adl +45 -0
- data/spec/lib/openehr/parser/adl14/adl-test-entry.term_binding.test.adl +37 -0
- data/spec/lib/openehr/parser/adl14/adl-test-entry.term_binding2.test.adl +32 -0
- data/spec/lib/openehr/parser/adl14/adl-test-entry.testtranslations.test.adl +83 -0
- data/spec/lib/openehr/parser/adl14/adl-test-entry.translations_author_language.test.adl +34 -0
- data/spec/lib/openehr/parser/adl14/adl-test-entry.translations_language_author.test.adl +34 -0
- data/spec/lib/openehr/parser/adl14/adl-test-entry.unicode_BOM_support.test.adl +41 -0
- data/spec/lib/openehr/parser/adl14/adl-test-entry.unicode_support.test.adl +41 -0
- data/spec/lib/openehr/parser/adl14/openEHR-EHR-ACTION.imaging.v1.adl +275 -0
- data/spec/lib/openehr/parser/adl14/openEHR-EHR-ACTION.referral.v1.adl +351 -0
- data/spec/lib/openehr/parser/adl14/openEHR-EHR-CLUSTER.auscultation-chest.v1.adl +765 -0
- data/spec/lib/openehr/parser/adl14/openEHR-EHR-CLUSTER.auscultation.v1.adl +48 -0
- data/spec/lib/openehr/parser/adl14/openEHR-EHR-CLUSTER.dimensions-circumference.v1.adl +134 -0
- data/spec/lib/openehr/parser/adl14/openEHR-EHR-CLUSTER.dimensions.v1.adl +241 -0
- data/spec/lib/openehr/parser/adl14/openEHR-EHR-CLUSTER.exam-abdomen.v1.adl +321 -0
- data/spec/lib/openehr/parser/adl14/openEHR-EHR-CLUSTER.exam-chest.v1.adl +379 -0
- data/spec/lib/openehr/parser/adl14/openEHR-EHR-CLUSTER.exam-fetus.v1.adl +577 -0
- data/spec/lib/openehr/parser/adl14/openEHR-EHR-CLUSTER.exam-generic-joint.v1.adl +146 -0
- data/spec/lib/openehr/parser/adl14/openEHR-EHR-CLUSTER.exam-generic-lymphnode.v1.adl +176 -0
- data/spec/lib/openehr/parser/adl14/openEHR-EHR-CLUSTER.exam-generic-mass.v1.adl +221 -0
- data/spec/lib/openehr/parser/adl14/openEHR-EHR-CLUSTER.exam-generic.v1.adl +139 -0
- data/spec/lib/openehr/parser/adl14/openEHR-EHR-CLUSTER.exam-nervous_system.v1.adl +116 -0
- data/spec/lib/openehr/parser/adl14/openEHR-EHR-CLUSTER.exam-uterine_cervix.v1.adl +420 -0
- data/spec/lib/openehr/parser/adl14/openEHR-EHR-CLUSTER.exam-uterus.v1.adl +293 -0
- data/spec/lib/openehr/parser/adl14/openEHR-EHR-COMPOSITION.discharge.v1draft.adl +53 -0
- data/spec/lib/openehr/parser/adl14/openEHR-EHR-COMPOSITION.encounter.v1draft.adl +45 -0
- data/spec/lib/openehr/parser/adl14/openEHR-EHR-EVALUATION.adverse.v1.adl +411 -0
- data/spec/lib/openehr/parser/adl14/openEHR-EHR-EVALUATION.columna_vertebral.v1.adl +85 -0
- data/spec/lib/openehr/parser/adl14/openEHR-EHR-INSTRUCTION.medication.v1.adl +88 -0
- data/spec/lib/openehr/parser/adl14/openEHR-EHR-INSTRUCTION.referral.v1.adl +84 -0
- data/spec/lib/openehr/parser/adl14/openEHR-EHR-ITEM_TREE.Laboratory_request.v1.adl +492 -0
- data/spec/lib/openehr/parser/adl14/openEHR-EHR-ITEM_TREE.follow_up.v1draft.adl +94 -0
- data/spec/lib/openehr/parser/adl14/openEHR-EHR-ITEM_TREE.imaging.v1.adl +127 -0
- data/spec/lib/openehr/parser/adl14/openEHR-EHR-ITEM_TREE.medication-formulation.v1.adl +457 -0
- data/spec/lib/openehr/parser/adl14/openEHR-EHR-ITEM_TREE.medication.v1.adl +869 -0
- data/spec/lib/openehr/parser/adl14/openEHR-EHR-ITEM_TREE.referral.v1.adl +494 -0
- data/spec/lib/openehr/parser/adl14/openEHR-EHR-OBSERVATION.apgar.v1.adl +545 -0
- data/spec/lib/openehr/parser/adl14/openEHR-EHR-OBSERVATION.blood_pressure.v1.adl +673 -0
- data/spec/lib/openehr/parser/adl14/openEHR-EHR-OBSERVATION.body_mass_index.v1.adl +166 -0
- data/spec/lib/openehr/parser/adl14/openEHR-EHR-OBSERVATION.lab_test.v1.adl +376 -0
- data/spec/lib/openehr/parser/adl14/openEHR-EHR-OBSERVATION.testassumedvalue.v1.adl +99 -0
- data/spec/lib/openehr/parser/adl14/openEHR-EHR-SECTION.findings.v1.adl +47 -0
- data/spec/lib/openehr/parser/adl14/openEHR-EHR-SECTION.reason_for_encounter.v1.adl +51 -0
- data/spec/lib/openehr/parser/adl14/openEHR-EHR-SECTION.summary.v1.adl +52 -0
- data/spec/lib/openehr/parser/adl14/openEHR-EHR-SECTION.vital_signs.v1.adl +54 -0
- data/spec/lib/openehr/parser/adl_archetype_internal_ref2_spec.rb +42 -0
- data/spec/lib/openehr/parser/adl_archetype_internal_ref_spec.rb +125 -0
- data/spec/lib/openehr/parser/adl_archetype_internal_ref_with_generics_spec.rb +258 -0
- data/spec/lib/openehr/parser/adl_archetype_ontology_binding_spec.rb +98 -0
- data/spec/lib/openehr/parser/adl_archetype_ontology_spec.rb +42 -0
- data/spec/lib/openehr/parser/adl_archetype_slot_cluster_spec.rb +101 -0
- data/spec/lib/openehr/parser/adl_archetype_slot_spec.rb +193 -0
- data/spec/lib/openehr/parser/adl_archetype_uncommon_term_keys_spec.rb +25 -0
- data/spec/lib/openehr/parser/adl_description_spec.rb +164 -0
- data/spec/lib/openehr/parser/adl_identification_spec.rb +18 -0
- data/spec/lib/openehr/parser/adl_language_no_accreditation_spec.rb +66 -0
- data/spec/lib/openehr/parser/adl_language_order_spec.rb +68 -0
- data/spec/lib/openehr/parser/adl_language_spec.rb +119 -0
- data/spec/lib/openehr/parser/adl_language_translation_author_language_spec.rb +50 -0
- data/spec/lib/openehr/parser/adl_language_translation_language_author_spec.rb +46 -0
- data/spec/lib/openehr/parser/adl_parser_spec.rb +347 -0
- data/spec/lib/openehr/parser/adl_path_spec.rb +176 -0
- data/spec/lib/openehr/parser/base_spec.rb +19 -0
- data/spec/lib/openehr/parser/basic_generic_type_spec.rb +18 -0
- data/spec/lib/openehr/parser/basic_type_spec.rb +2922 -0
- data/spec/lib/openehr/parser/c_dv_quantity_any_allowed_spec.rb +34 -0
- data/spec/lib/openehr/parser/c_dv_quantity_shared_example_for_lacked_items_spec.rb +36 -0
- data/spec/lib/openehr/parser/c_dv_quantity_shared_example_spec.rb +146 -0
- data/spec/lib/openehr/parser/cdv_ordinal_parse_spec.rb +231 -0
- data/spec/lib/openehr/parser/code_phrase_spec.rb +96 -0
- data/spec/lib/openehr/parser/constraint_binding_spec.rb +26 -0
- data/spec/lib/openehr/parser/constraint_ref_spec.rb +32 -0
- data/spec/lib/openehr/parser/date_time_spec.rb +1953 -0
- data/spec/lib/openehr/parser/duration_spec.rb +475 -0
- data/spec/lib/openehr/parser/dv_coded_text_parse_spec.rb +27 -0
- data/spec/lib/openehr/parser/empty_other_contributors_spec.rb +19 -0
- data/spec/lib/openehr/parser/lab_test_parser_spec.rb +14 -0
- data/spec/lib/openehr/parser/missing_language_spec.rb +20 -0
- data/spec/lib/openehr/parser/missing_purpose_spec.rb +23 -0
- data/spec/lib/openehr/parser/mixed_node_types_spec.rb +16 -0
- data/spec/lib/openehr/parser/most_minimal_adl_spec.rb +19 -0
- data/spec/lib/openehr/parser/multi_language_spec.rb +58 -0
- data/spec/lib/openehr/parser/parser_spec_helper.rb +7 -0
- data/spec/lib/openehr/parser/path_based_terminology_binding_spec.rb +30 -0
- data/spec/lib/openehr/parser/special_string_spec.rb +20 -0
- data/spec/lib/openehr/parser/structure_comment_spec.rb +21 -0
- data/spec/lib/openehr/parser/structure_nested_comments_spec.rb +22 -0
- data/spec/lib/openehr/parser/structure_spec.rb +202 -0
- data/spec/lib/openehr/parser/term_binding_spec.rb +54 -0
- data/spec/lib/openehr/parser/unicode_bom_spec.rb +17 -0
- data/spec/lib/openehr/parser/unicode_support_spec.rb +46 -0
- data/spec/lib/openehr/rm/common/archetyped/archetyped_spec.rb +50 -0
- data/spec/lib/openehr/rm/common/archetyped/feeder_audit_details_spec.rb +60 -0
- data/spec/lib/openehr/rm/common/archetyped/feeder_audit_spec.rb +51 -0
- data/spec/lib/openehr/rm/common/archetyped/link_spec.rb +42 -0
- data/spec/lib/openehr/rm/common/archetyped/locatable_spec.rb +89 -0
- data/spec/lib/openehr/rm/common/archetyped/pathable_spec.rb +42 -0
- data/spec/lib/openehr/rm/common/change_control/contribution_spec.rb +56 -0
- data/spec/lib/openehr/rm/common/change_control/imported_version_spec.rb +62 -0
- data/spec/lib/openehr/rm/common/change_control/original_version_spec.rb +71 -0
- data/spec/lib/openehr/rm/common/change_control/version_spec.rb +91 -0
- data/spec/lib/openehr/rm/common/change_control/versioned_object_spec.rb +284 -0
- data/spec/lib/openehr/rm/common/directory/folder_spec.rb +26 -0
- data/spec/lib/openehr/rm/common/generic/attestation_spec.rb +62 -0
- data/spec/lib/openehr/rm/common/generic/audit_details_spec.rb +51 -0
- data/spec/lib/openehr/rm/common/generic/participation_spec.rb +36 -0
- data/spec/lib/openehr/rm/common/generic/party_identified_spec.rb +64 -0
- data/spec/lib/openehr/rm/common/generic/party_proxy_spec.rb +18 -0
- data/spec/lib/openehr/rm/common/generic/party_related_spec.rb +24 -0
- data/spec/lib/openehr/rm/common/generic/revision_history_item_spec.rb +43 -0
- data/spec/lib/openehr/rm/common/generic/revision_history_spec.rb +45 -0
- data/spec/lib/openehr/rm/common/resource/authored_resource_spec.rb +68 -0
- data/spec/lib/openehr/rm/common/resource/resource_description_item_spec.rb +105 -0
- data/spec/lib/openehr/rm/common/resource/resource_description_spec.rb +74 -0
- data/spec/lib/openehr/rm/common/resource/translation_details_spec.rb +35 -0
- data/spec/lib/openehr/rm/composition/composition_spec.rb +92 -0
- data/spec/lib/openehr/rm/composition/content/content_item_spec.rb +14 -0
- data/spec/lib/openehr/rm/composition/content/entry/action_spec.rb +69 -0
- data/spec/lib/openehr/rm/composition/content/entry/activity_spec.rb +61 -0
- data/spec/lib/openehr/rm/composition/content/entry/admin_entry_spec.rb +38 -0
- data/spec/lib/openehr/rm/composition/content/entry/care_entry_spec.rb +37 -0
- data/spec/lib/openehr/rm/composition/content/entry/entry_spec.rb +98 -0
- data/spec/lib/openehr/rm/composition/content/entry/evaluation_spec.rb +37 -0
- data/spec/lib/openehr/rm/composition/content/entry/instruction_details_spec.rb +51 -0
- data/spec/lib/openehr/rm/composition/content/entry/instruction_spec.rb +62 -0
- data/spec/lib/openehr/rm/composition/content/entry/ism_transition_spec.rb +46 -0
- data/spec/lib/openehr/rm/composition/content/entry/observation_spec.rb +45 -0
- data/spec/lib/openehr/rm/composition/content/navigation/section_spec.rb +32 -0
- data/spec/lib/openehr/rm/composition/event_context_spec.rb +88 -0
- data/spec/lib/openehr/rm/data_structures/data_structure_spec.rb +21 -0
- data/spec/lib/openehr/rm/data_structures/history/event_spec.rb +44 -0
- data/spec/lib/openehr/rm/data_structures/history/history_spec.rb +67 -0
- data/spec/lib/openehr/rm/data_structures/history/interval_event_spec.rb +43 -0
- data/spec/lib/openehr/rm/data_structures/item_structure/item_list_spec.rb +53 -0
- data/spec/lib/openehr/rm/data_structures/item_structure/item_single_spec.rb +29 -0
- data/spec/lib/openehr/rm/data_structures/item_structure/item_table_spec.rb +147 -0
- data/spec/lib/openehr/rm/data_structures/item_structure/item_tree_spec.rb +48 -0
- data/spec/lib/openehr/rm/data_structures/item_structure/representation/cluster_spec.rb +26 -0
- data/spec/lib/openehr/rm/data_structures/item_structure/representation/element_spec.rb +22 -0
- data/spec/lib/openehr/rm/data_types/basic/data_value_spec.rb +17 -0
- data/spec/lib/openehr/rm/data_types/basic/dv_boolean_spec.rb +29 -0
- data/spec/lib/openehr/rm/data_types/basic/dv_identifier_spec.rb +108 -0
- data/spec/lib/openehr/rm/data_types/basic/dv_state_spec.rb +44 -0
- data/spec/lib/openehr/rm/data_types/encapsulated/dv_encapsulated_spec.rb +42 -0
- data/spec/lib/openehr/rm/data_types/encapsulated/dv_multimedia_spec.rb +79 -0
- data/spec/lib/openehr/rm/data_types/encapsulated/dv_parsable_spec.rb +34 -0
- data/spec/lib/openehr/rm/data_types/quantity/date_time/dv_date_spec.rb +64 -0
- data/spec/lib/openehr/rm/data_types/quantity/date_time/dv_date_time_spec.rb +26 -0
- data/spec/lib/openehr/rm/data_types/quantity/date_time/dv_duration_spec.rb +44 -0
- data/spec/lib/openehr/rm/data_types/quantity/date_time/dv_temporal_spec.rb +25 -0
- data/spec/lib/openehr/rm/data_types/quantity/date_time/dv_time_spec.rb +41 -0
- data/spec/lib/openehr/rm/data_types/quantity/dv_absolute_quantity_spec.rb +35 -0
- data/spec/lib/openehr/rm/data_types/quantity/dv_amount_spec.rb +105 -0
- data/spec/lib/openehr/rm/data_types/quantity/dv_count_spec.rb +12 -0
- data/spec/lib/openehr/rm/data_types/quantity/dv_interval_spec.rb +17 -0
- data/spec/lib/openehr/rm/data_types/quantity/dv_ordered_spec.rb +60 -0
- data/spec/lib/openehr/rm/data_types/quantity/dv_ordinal_spec.rb +74 -0
- data/spec/lib/openehr/rm/data_types/quantity/dv_proportion_spec.rb +162 -0
- data/spec/lib/openehr/rm/data_types/quantity/dv_quantified_spec.rb +36 -0
- data/spec/lib/openehr/rm/data_types/quantity/dv_quantity_spec.rb +78 -0
- data/spec/lib/openehr/rm/data_types/quantity/proportion_kind_spec.rb +24 -0
- data/spec/lib/openehr/rm/data_types/quantity/reference_range_spec.rb +43 -0
- data/spec/lib/openehr/rm/data_types/text/code_phrase_spec.rb +23 -0
- data/spec/lib/openehr/rm/data_types/text/dv_paragraph_spec.rb +13 -0
- data/spec/lib/openehr/rm/data_types/text/dv_text_spec.rb +79 -0
- data/spec/lib/openehr/rm/data_types/text/term_mapping_spec.rb +59 -0
- data/spec/lib/openehr/rm/data_types/uri/dv_ehr_uri_spec.rb +21 -0
- data/spec/lib/openehr/rm/data_types/uri/dv_uri_spec.rb +36 -0
- data/spec/lib/openehr/rm/demographic/actor_spec.rb +79 -0
- data/spec/lib/openehr/rm/demographic/address_spec.rb +33 -0
- data/spec/lib/openehr/rm/demographic/capability_spec.rb +37 -0
- data/spec/lib/openehr/rm/demographic/contact_spec.rb +45 -0
- data/spec/lib/openehr/rm/demographic/party_identity_spec.rb +32 -0
- data/spec/lib/openehr/rm/demographic/party_relationship_spec.rb +84 -0
- data/spec/lib/openehr/rm/demographic/party_spec.rb +131 -0
- data/spec/lib/openehr/rm/demographic/role_spec.rb +58 -0
- data/spec/lib/openehr/rm/ehr/ehr_access_spec.rb +33 -0
- data/spec/lib/openehr/rm/ehr/ehr_spec.rb +139 -0
- data/spec/lib/openehr/rm/ehr/ehr_status_spec.rb +52 -0
- data/spec/lib/openehr/rm/ehr/versioned_composition_spec.rb +33 -0
- data/spec/lib/openehr/rm/integration/generic_entry_spec.rb +31 -0
- data/spec/lib/openehr/rm/support/identification/access_group_ref_spec.rb +19 -0
- data/spec/lib/openehr/rm/support/identification/archetype_id_spec.rb +152 -0
- data/spec/lib/openehr/rm/support/identification/generic_id_spec.rb +33 -0
- data/spec/lib/openehr/rm/support/identification/hier_object_id_spec.rb +12 -0
- data/spec/lib/openehr/rm/support/identification/internet_id_spec.rb +12 -0
- data/spec/lib/openehr/rm/support/identification/iso_oid_spec.rb +12 -0
- data/spec/lib/openehr/rm/support/identification/locatable_ref_spec.rb +34 -0
- data/spec/lib/openehr/rm/support/identification/object_id_spec.rb +24 -0
- data/spec/lib/openehr/rm/support/identification/object_ref_spec.rb +33 -0
- data/spec/lib/openehr/rm/support/identification/object_version_id_spec.rb +59 -0
- data/spec/lib/openehr/rm/support/identification/party_ref_spec.rb +29 -0
- data/spec/lib/openehr/rm/support/identification/template_id_spec.rb +12 -0
- data/spec/lib/openehr/rm/support/identification/terminology_id_spec.rb +33 -0
- data/spec/lib/openehr/rm/support/identification/uid_based_id_spec.rb +50 -0
- data/spec/lib/openehr/rm/support/identification/uid_spec.rb +29 -0
- data/spec/lib/openehr/rm/support/identification/version_tree_id_spec.rb +104 -0
- data/spec/lib/openehr/rm/support/measurement_service_spec.rb +7 -0
- data/spec/lib/openehr/rm/support/terminology_service_spec.rb +24 -0
- data/spec/lib/openehr/serializer/adl-test-entry.most_minimal.test.adl +20 -0
- data/spec/lib/openehr/serializer/adl_serializer_spec.rb +47 -0
- data/spec/lib/openehr/serializer/openEHR-EHR-SECTION.test.v1.adl +38 -0
- data/spec/lib/openehr/serializer/openEHR-EHR-SECTION.test.v1.xml +58 -0
- data/spec/lib/openehr/serializer/sample_archetype_spec.rb +44 -0
- data/spec/lib/openehr/serializer/xml_serializer_spec.rb +49 -0
- data/spec/lib/openehr/terminology/open_ehr_terminology_spec.rb +40 -0
- data/spec/spec.opts +6 -0
- data/spec/spec_helper.rb +58 -0
- metadata +631 -0
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../../spec_helper'
|
|
2
|
+
require 'set'
|
|
3
|
+
include OpenEHR::AM::Archetype
|
|
4
|
+
include OpenEHR::AM::Archetype::ConstraintModel
|
|
5
|
+
include OpenEHR::AM::Archetype::Ontology
|
|
6
|
+
include OpenEHR::RM::DataTypes::Text
|
|
7
|
+
include OpenEHR::RM::Common::Resource
|
|
8
|
+
include OpenEHR::RM::Support::Identification
|
|
9
|
+
|
|
10
|
+
describe Archetype do
|
|
11
|
+
before(:each) do
|
|
12
|
+
original_language = stub(CodePhrase, :code_string => 'ja')
|
|
13
|
+
archetype_id = ArchetypeID.new(:value => 'openEHR-EHR-SECTION.physical_examination-prenatal.v2')
|
|
14
|
+
definition = stub(CComplexObject, :rm_type_name => 'SECTION')
|
|
15
|
+
items = {:text => 'Physical examination'}
|
|
16
|
+
term1 = ArchetypeTerm.new(:code => 'at0000', :items => items)
|
|
17
|
+
ontology = ArchetypeOntology.new(:specialisation_depth => 1, :term_definitions => {'ja' => {'at0000' =>term1}})
|
|
18
|
+
uid = HierObjectID.new(:value => 'ABCD::1')
|
|
19
|
+
parent_archetype_id = ArchetypeID.new(:value => 'openEHR-EHR-SECTION.physical_examination.v1')
|
|
20
|
+
invariants = stub(Set, :size => 2)
|
|
21
|
+
@archetype = Archetype.new(:original_language => original_language,
|
|
22
|
+
:adl_version => '1.4',
|
|
23
|
+
:archetype_id => archetype_id,
|
|
24
|
+
:concept => 'at0000',
|
|
25
|
+
:definition => definition,
|
|
26
|
+
:ontology => ontology,
|
|
27
|
+
:uid => uid,
|
|
28
|
+
:parent_archetype_id => parent_archetype_id,
|
|
29
|
+
:invariants => invariants)
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
it 'should be an instance of Archetype' do
|
|
33
|
+
@archetype.should be_an_instance_of Archetype
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
it 'adl_version should be assigned properly' do
|
|
37
|
+
@archetype.adl_version.should == '1.4'
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
it 'archetype_id should be assigned prorperly' do
|
|
41
|
+
@archetype.archetype_id.value.should == 'openEHR-EHR-SECTION.physical_examination-prenatal.v2'
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
it 'should raise ArgumentError when archetype_id is nil' do
|
|
45
|
+
lambda {
|
|
46
|
+
@archetype.archetype_id = nil
|
|
47
|
+
}.should raise_error ArgumentError
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
it 'uid should be assigned properly' do
|
|
51
|
+
@archetype.uid.value.should == 'ABCD::1'
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
it 'concept should be assigned properly' do
|
|
55
|
+
@archetype.concept.should == 'at0000'
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
it 'should raise ArgumentError when concept is nil' do
|
|
59
|
+
lambda {
|
|
60
|
+
@archetype.concept = nil
|
|
61
|
+
}.should raise_error ArgumentError
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
it 'parent_archetype_id should be assigned properly' do
|
|
65
|
+
@archetype.parent_archetype_id.value.should == 'openEHR-EHR-SECTION.physical_examination.v1'
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
it 'definition should be assigned properly' do
|
|
69
|
+
@archetype.definition.rm_type_name.should == 'SECTION'
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
it 'should raise ArgumentError when definition is nil' do
|
|
73
|
+
lambda {
|
|
74
|
+
@archetype.definition = nil
|
|
75
|
+
}.should raise_error ArgumentError
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
it 'ontology should be assigned properly' do
|
|
79
|
+
@archetype.ontology.specialisation_depth.should be_equal 1
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
it 'should raise ArgumentError when ontology is nil' do
|
|
83
|
+
lambda {
|
|
84
|
+
@archetype.ontology = nil
|
|
85
|
+
}.should raise_error ArgumentError
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
it 'invariants should be assigned properly' do
|
|
89
|
+
@archetype.invariants.size.should be_equal 2
|
|
90
|
+
end
|
|
91
|
+
|
|
92
|
+
it 'version should be extracted form id' do
|
|
93
|
+
@archetype.version.should == 'v2'
|
|
94
|
+
end
|
|
95
|
+
|
|
96
|
+
it 'short concept name should be extracted from archetype id' do
|
|
97
|
+
@archetype.short_concept_name.should == 'physical_examination'
|
|
98
|
+
end
|
|
99
|
+
|
|
100
|
+
it 'concept name should be extracted from ontology' do
|
|
101
|
+
@archetype.concept_name('ja').should == 'Physical examination'
|
|
102
|
+
end
|
|
103
|
+
end
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../../../spec_helper'
|
|
2
|
+
include OpenEHR::AM::Archetype::Assertion
|
|
3
|
+
|
|
4
|
+
describe Assertion do
|
|
5
|
+
before(:each) do
|
|
6
|
+
expression = stub(ExprItem, :type => 'Boolean')
|
|
7
|
+
$string_expression = "/[at0001]/speed[at0002]/kilometres/magnitude = " +
|
|
8
|
+
"/[at0003]/speed[at0004]/miles/magnitude * 1.6"
|
|
9
|
+
variables = stub(Array, :size => 2)
|
|
10
|
+
@assertion = OpenEHR::AM::Archetype::Assertion::Assertion.new(:tag => 'validity',
|
|
11
|
+
:expression => expression,
|
|
12
|
+
:string_expression => $string_expression,
|
|
13
|
+
:variables => variables)
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
it 'should be an instance of Assertion' do
|
|
17
|
+
@assertion.should be_an_instance_of OpenEHR::AM::Archetype::Assertion::Assertion
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
it 'expression should be assigned properly' do
|
|
21
|
+
@assertion.expression.type.should == 'Boolean'
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
it 'should raise ArgumentError when expression is nil' do
|
|
25
|
+
lambda {
|
|
26
|
+
@assertion.expression = nil
|
|
27
|
+
}.should raise_error ArgumentError
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
it 'should raise ArgumentError when expression type is not Boolean' do
|
|
31
|
+
invalid_expression = stub(ExprItem, :type => 'Real')
|
|
32
|
+
lambda {
|
|
33
|
+
@assertion.expression = invalid_expression
|
|
34
|
+
}.should raise_error ArgumentError
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
it 'tag should be assigned properly' do
|
|
38
|
+
@assertion.tag.should == 'validity'
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
it 'tag should not be empty' do
|
|
42
|
+
lambda {
|
|
43
|
+
@assertion.tag = ''
|
|
44
|
+
}.should raise_error ArgumentError
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
it 'should not raise ArgumentError when tag = nil' do
|
|
48
|
+
lambda {
|
|
49
|
+
@assertion.tag = nil
|
|
50
|
+
}.should_not raise_error ArgumentError
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
it 'string_expression should be assigned properly' do
|
|
54
|
+
@assertion.string_expression.should == $string_expression
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
it 'variables should be assigned properly' do
|
|
58
|
+
@assertion.variables.size.should be_equal 2
|
|
59
|
+
end
|
|
60
|
+
end
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../../../spec_helper'
|
|
2
|
+
include OpenEHR::AM::Archetype::Assertion
|
|
3
|
+
|
|
4
|
+
describe AssertionVariable do
|
|
5
|
+
before(:each) do
|
|
6
|
+
@assertion_variable =
|
|
7
|
+
AssertionVariable.new(:name => 'test',
|
|
8
|
+
:definition => 'examine spec')
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
it 'name should be assigned properly' do
|
|
12
|
+
@assertion_variable.name.should == 'test'
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
it 'should raise ArgumentError when name is nil' do
|
|
16
|
+
lambda {
|
|
17
|
+
@assertion_variable.name = nil
|
|
18
|
+
}.should raise_error ArgumentError
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
it 'definition should be assigned properly' do
|
|
22
|
+
@assertion_variable.definition.should == 'examine spec'
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
it 'should raise ArgumentError if definiton is nil' do
|
|
26
|
+
lambda {
|
|
27
|
+
@assertion_variable.definition = nil
|
|
28
|
+
}.should raise_error ArgumentError
|
|
29
|
+
end
|
|
30
|
+
end
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../../../spec_helper'
|
|
2
|
+
include OpenEHR::AM::Archetype::Assertion
|
|
3
|
+
|
|
4
|
+
describe ExprBinaryOperator do
|
|
5
|
+
before(:each) do
|
|
6
|
+
operator = OperatorKind.new(:value => 2001)
|
|
7
|
+
right_operand = ExprItem.new(:type => 'Real')
|
|
8
|
+
left_operand = stub(ExprItem, :item => 'ANY')
|
|
9
|
+
@expr_binary_operator =
|
|
10
|
+
ExprBinaryOperator.new(:type => 'Integer',
|
|
11
|
+
:item => 'ANY',
|
|
12
|
+
:reference_type => 'operator',
|
|
13
|
+
:operator => operator,
|
|
14
|
+
:precedence_overridden => true,
|
|
15
|
+
:right_operand => right_operand,
|
|
16
|
+
:left_operand => left_operand)
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
it 'right_operand should be assigned properly' do
|
|
21
|
+
@expr_binary_operator.right_operand.type.should == 'Real'
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
it 'should raise ArgumentError when right_operand is nil' do
|
|
25
|
+
lambda {
|
|
26
|
+
@expr_binary_operator.right_operand = nil
|
|
27
|
+
}.should raise_error ArgumentError
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
it 'left_operand should be assigned properly' do
|
|
31
|
+
@expr_binary_operator.left_operand.item.should == 'ANY'
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
it 'should raise ArgumentError when left_oprand is nil' do
|
|
35
|
+
lambda {
|
|
36
|
+
@expr_binary_operator.left_operand = nil
|
|
37
|
+
}.should raise_error ArgumentError
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../../../spec_helper'
|
|
2
|
+
include OpenEHR::AM::Archetype::Assertion
|
|
3
|
+
|
|
4
|
+
describe ExprItem do
|
|
5
|
+
before(:each) do
|
|
6
|
+
@expr_item = ExprItem.new(:type => 'Real')
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
it 'should be an instance of ExprItem' do
|
|
10
|
+
@expr_item.should be_an_instance_of ExprItem
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
it 'type should be assigned properly' do
|
|
14
|
+
@expr_item.type.should == 'Real'
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
it 'should raise ArgumentError when type is nil' do
|
|
18
|
+
lambda {
|
|
19
|
+
@expr_item.type = nil
|
|
20
|
+
}.should raise_error ArgumentError
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
it 'should raise ArgumentError when type is empty' do
|
|
24
|
+
lambda {
|
|
25
|
+
@expr_item.type = ''
|
|
26
|
+
}.should raise_error ArgumentError
|
|
27
|
+
end
|
|
28
|
+
end
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../../../spec_helper'
|
|
2
|
+
include OpenEHR::AM::Archetype::Assertion
|
|
3
|
+
|
|
4
|
+
describe ExprLeaf do
|
|
5
|
+
before(:each) do
|
|
6
|
+
@expr_leaf = ExprLeaf.new(:type => 'Boolean',
|
|
7
|
+
:item => 'ANY',
|
|
8
|
+
:reference_type => 'DV_TEXT')
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
it 'should be an instance of ExprLeaf' do
|
|
12
|
+
@expr_leaf.should be_an_instance_of ExprLeaf
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
it 'item should be assigned properly' do
|
|
16
|
+
@expr_leaf.item.should == 'ANY'
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
it 'should raise ArgumentError when item is nil' do
|
|
20
|
+
lambda {
|
|
21
|
+
@expr_leaf.item = nil
|
|
22
|
+
}.should raise_error ArgumentError
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
it 'reference_type should be assigned properly' do
|
|
26
|
+
@expr_leaf.reference_type.should == 'DV_TEXT'
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
it 'should raise ArgumentError when reference_type is nil' do
|
|
30
|
+
lambda {
|
|
31
|
+
@expr_leaf.reference_type = nil
|
|
32
|
+
}.should raise_error ArgumentError
|
|
33
|
+
end
|
|
34
|
+
end
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../../../spec_helper'
|
|
2
|
+
include OpenEHR::AM::Archetype::Assertion
|
|
3
|
+
|
|
4
|
+
describe ExprOperator do
|
|
5
|
+
before(:each) do
|
|
6
|
+
operator = OperatorKind.new(:value => 2001)
|
|
7
|
+
@expr_operator = ExprOperator.new(:type => 'Integer',
|
|
8
|
+
:item => 'ANY',
|
|
9
|
+
:reference_type => 'operator',
|
|
10
|
+
:operator => operator,
|
|
11
|
+
:precedence_overridden => true)
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
it 'should be an instance of ExprOperator' do
|
|
15
|
+
@expr_operator.should be_an_instance_of ExprOperator
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
it 'operator should be assigned properly' do
|
|
19
|
+
@expr_operator.operator.value.should be_equal 2001
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
it 'precedence_overridden should be assigned properly' do
|
|
23
|
+
@expr_operator.precedence_overridden.should be_true
|
|
24
|
+
end
|
|
25
|
+
end
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../../../spec_helper'
|
|
2
|
+
include OpenEHR::AM::Archetype::Assertion
|
|
3
|
+
|
|
4
|
+
describe ExprUnaryOperator do
|
|
5
|
+
before(:each) do
|
|
6
|
+
operator = OperatorKind.new(:value => 2001)
|
|
7
|
+
operand = stub(ExprItem, :type => 'Real')
|
|
8
|
+
@expr_unary_operator =
|
|
9
|
+
ExprUnaryOperator.new(:type => 'Integer',
|
|
10
|
+
:item => 'ANY',
|
|
11
|
+
:reference_type => 'operator',
|
|
12
|
+
:operator => operator,
|
|
13
|
+
:precedence_overridden => true,
|
|
14
|
+
:operand => operand)
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
it 'operand shoud be assigned properly' do
|
|
18
|
+
@expr_unary_operator.operand.type.should == 'Real'
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
it 'should raise ArgumentError when operand is nil' do
|
|
22
|
+
lambda {
|
|
23
|
+
@expr_unary_operator.operand = nil
|
|
24
|
+
}.should raise_error ArgumentError
|
|
25
|
+
end
|
|
26
|
+
end
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../../../spec_helper'
|
|
2
|
+
include OpenEHR::AM::Archetype::Assertion
|
|
3
|
+
|
|
4
|
+
describe OperatorKind do
|
|
5
|
+
it 'op_eq should be equal 2001' do
|
|
6
|
+
OperatorKind::OP_EQ.should be_equal 2001
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
it 'op_ne should be equal 2002' do
|
|
10
|
+
OperatorKind::OP_NE.should be_equal 2002
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
it 'op_le should be equal 2004' do
|
|
14
|
+
OperatorKind::OP_LE.should be_equal 2003
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
it 'op_lt should be equal 2004' do
|
|
18
|
+
OperatorKind::OP_LT.should be_equal 2004
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
it 'op_ge should be equal 2005' do
|
|
22
|
+
OperatorKind::OP_GE.should be_equal 2005
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
it 'op_gt should be equal 2006' do
|
|
26
|
+
OperatorKind::OP_GT.should be_equal 2006
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
it 'op_matches should be equal 2007' do
|
|
30
|
+
OperatorKind::OP_MATCHES.should be_equal 2007
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
it 'op_not should be equal 2010' do
|
|
34
|
+
OperatorKind::OP_NOT.should be_equal 2010
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
it 'op_and should be equal 2011' do
|
|
38
|
+
OperatorKind::OP_AND.should be_equal 2011
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
it 'op_or should be equal 2012' do
|
|
42
|
+
OperatorKind::OP_OR.should be_equal 2012
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
it 'op_xor should be equal 2013' do
|
|
46
|
+
OperatorKind::OP_XOR.should be_equal 2013
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
it 'op_implies should be equal 2014' do
|
|
50
|
+
OperatorKind::OP_IMPLIES.should be_equal 2014
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
it 'op_for_all should be equal 2015' do
|
|
54
|
+
OperatorKind::OP_FOR_ALL.should be_equal 2015
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
it 'op_exists should be equal 2016' do
|
|
58
|
+
OperatorKind::OP_EXISTS.should be_equal 2016
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
it 'op_plus should be equal 2020' do
|
|
62
|
+
OperatorKind::OP_PLUS.should be_equal 2020
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
it 'op_minus should be equal 2021' do
|
|
66
|
+
OperatorKind::OP_MINUS.should be_equal 2021
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
it 'op_multiply should be equal 2022' do
|
|
70
|
+
OperatorKind::OP_MULTIPLY.should be_equal 2022
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
it 'op_divide should be equal 2023' do
|
|
74
|
+
OperatorKind::OP_DIVIDE.should be_equal 2023
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
it 'op_exp should be equal 2024' do
|
|
78
|
+
OperatorKind::OP_EXP.should be_equal 2024
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
it '2000 should not be valid operator' do
|
|
82
|
+
OperatorKind.should_not be_valid_operator 2000
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
it '2001 should be valid operator' do
|
|
86
|
+
OperatorKind.should be_valid_operator 2001
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
it '2024 should be valid operator' do
|
|
90
|
+
OperatorKind.should be_valid_operator 2024
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
it '2025 should not be valid operator' do
|
|
94
|
+
OperatorKind.should_not be_valid_operator 2025
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
describe 'value should be assigned' do
|
|
98
|
+
before(:each) do
|
|
99
|
+
@operator_kind = OperatorKind.new(:value => 2001)
|
|
100
|
+
end
|
|
101
|
+
|
|
102
|
+
it 'value should be assigned' do
|
|
103
|
+
@operator_kind.value.should be_equal 2001
|
|
104
|
+
end
|
|
105
|
+
|
|
106
|
+
it 'should raise ArgumentError with invalid value' do
|
|
107
|
+
lambda {
|
|
108
|
+
@operator_kind.value = 10001
|
|
109
|
+
}.should raise_error ArgumentError
|
|
110
|
+
end
|
|
111
|
+
end
|
|
112
|
+
end
|
|
113
|
+
|
|
114
|
+
|