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,17 @@
|
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../../../spec_helper'
|
|
2
|
+
include OpenEHR::AM::Archetype::ConstraintModel
|
|
3
|
+
include OpenEHR::AssumedLibraryTypes
|
|
4
|
+
|
|
5
|
+
describe CReferenceObject do
|
|
6
|
+
before(:each) do
|
|
7
|
+
occurrences = Interval.new(:lower => 0, :upper => 1)
|
|
8
|
+
@c_reference_object = CReferenceObject.new(:path => '/event/[at0001]/',
|
|
9
|
+
:rm_type_name => 'DV_TIME',
|
|
10
|
+
:node_id => 'ac0001',
|
|
11
|
+
:occurrences => occurrences)
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
it 'should be an instance of CReferenceObject' do
|
|
15
|
+
@c_reference_object.should be_an_instance_of CReferenceObject
|
|
16
|
+
end
|
|
17
|
+
end
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../../../spec_helper'
|
|
2
|
+
include OpenEHR::AM::Archetype::ConstraintModel
|
|
3
|
+
include OpenEHR::AssumedLibraryTypes
|
|
4
|
+
|
|
5
|
+
describe CSingleAttribute do
|
|
6
|
+
before(:each) do
|
|
7
|
+
existence = Interval.new(:upper =>0, :lower => 0)
|
|
8
|
+
alternatives = stub(Array, :size => 5)
|
|
9
|
+
@c_single_attribute = CSingleAttribute.new(:path => '/event/at001',
|
|
10
|
+
:rm_attribute_name => 'DV_DATE',
|
|
11
|
+
:existence => existence,
|
|
12
|
+
:alternatives => alternatives)
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
it 'should be an instance of CSingleAttribute' do
|
|
16
|
+
@c_single_attribute.should be_an_instance_of CSingleAttribute
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
it 'alternative should be assigned properly' do
|
|
20
|
+
@c_single_attribute.alternatives.size.should be_equal 5
|
|
21
|
+
end
|
|
22
|
+
end
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../../../spec_helper'
|
|
2
|
+
include OpenEHR::AM::Archetype::ConstraintModel
|
|
3
|
+
include OpenEHR::AssumedLibraryTypes
|
|
4
|
+
|
|
5
|
+
describe Cardinality do
|
|
6
|
+
before(:each) do
|
|
7
|
+
interval = Interval.new(:upper => 1, :lower => 0)
|
|
8
|
+
@cardinality = Cardinality.new(:is_ordered => true,
|
|
9
|
+
:is_unique => true,
|
|
10
|
+
:interval => interval)
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
it 'should be an instance of Cardinality' do
|
|
14
|
+
@cardinality.should be_an_instance_of Cardinality
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
it 'is_ordered should be assigned properly' do
|
|
18
|
+
@cardinality.should be_ordered
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
it 'is_ordered should be false' do
|
|
22
|
+
@cardinality.is_ordered = false
|
|
23
|
+
@cardinality.should_not be_ordered
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
it 'is_unique should be assigned properly' do
|
|
27
|
+
@cardinality.should be_unique
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
it 'is_unique should not be true' do
|
|
31
|
+
@cardinality.is_unique = false
|
|
32
|
+
@cardinality.should_not be_unique
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
it 'interval should be assigned properly' do
|
|
36
|
+
@cardinality.interval.upper.should be_equal 1
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
it 'is_set represent not ordered and unique' do
|
|
40
|
+
@cardinality.should_not be_set
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
it 'is_set should be true' do
|
|
44
|
+
@cardinality.is_unique = true
|
|
45
|
+
@cardinality.is_ordered = false
|
|
46
|
+
@cardinality.should be_set
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
it 'is_list represent ordered and not unique' do
|
|
50
|
+
@cardinality.is_ordered = true
|
|
51
|
+
@cardinality.is_unique = false
|
|
52
|
+
@cardinality.should be_list
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
it 'is_list should not be true' do
|
|
56
|
+
@cardinality.should_not be_list
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
it 'is_bag represent not ordered and not unique' do
|
|
60
|
+
@cardinality.is_ordered = false
|
|
61
|
+
@cardinality.is_unique = false
|
|
62
|
+
@cardinality.should be_bag
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
it 'is_bag? should not be true' do
|
|
66
|
+
@cardinality.should_not be_bag
|
|
67
|
+
end
|
|
68
|
+
end
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../../../spec_helper'
|
|
2
|
+
include OpenEHR::AM::Archetype::ConstraintModel
|
|
3
|
+
include OpenEHR::AssumedLibraryTypes
|
|
4
|
+
|
|
5
|
+
describe ConstraintRef do
|
|
6
|
+
before(:each) do
|
|
7
|
+
occurrences = Interval.new(:lower => 0, :upper => 1)
|
|
8
|
+
@constraint_ref =
|
|
9
|
+
ConstraintRef.new(:path => '/event/[at0001]/',
|
|
10
|
+
:rm_type_name => 'DV_TIME',
|
|
11
|
+
:node_id => 'ac0001',
|
|
12
|
+
:occurrences => occurrences,
|
|
13
|
+
:reference => 'ac0002')
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
it 'should be an instance of ConstraintRef' do
|
|
17
|
+
@constraint_ref.should be_an_instance_of ConstraintRef
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
it 'reference should be assigned properly' do
|
|
21
|
+
@constraint_ref.reference.should == 'ac0002'
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
it 'should raise ArgumentError when reference is nil' do
|
|
25
|
+
lambda {
|
|
26
|
+
@constraint_ref.reference = nil
|
|
27
|
+
}.should raise_error ArgumentError
|
|
28
|
+
end
|
|
29
|
+
end
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../../../../spec_helper'
|
|
2
|
+
include OpenEHR::AM::Archetype::ConstraintModel::Primitive
|
|
3
|
+
include OpenEHR::RM::DataTypes::Basic
|
|
4
|
+
|
|
5
|
+
describe CBoolean do
|
|
6
|
+
before(:each) do
|
|
7
|
+
default_value = DvBoolean.new(:value => true)
|
|
8
|
+
@c_boolean = CBoolean.new(:default_value => true,
|
|
9
|
+
:type => 'Boolean',
|
|
10
|
+
:true_valid => true,
|
|
11
|
+
:false_valid => true)
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
it 'should be_an_instance_of CBoolean' do
|
|
15
|
+
@c_boolean.should be_an_instance_of CBoolean
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
it 'true_valid should be assigned properly' do
|
|
19
|
+
@c_boolean.should be_true_valid
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
it 'false_valid should be assigned properly' do
|
|
23
|
+
@c_boolean.should be_false_valid
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
it 'type should be DvBoolean' do
|
|
27
|
+
@c_boolean.type.should == 'Boolean'
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
it 'should raise ArgumentError when both true_valid and false_valid are false' do
|
|
31
|
+
lambda {
|
|
32
|
+
@c_boolean.true_valid = false
|
|
33
|
+
@c_boolean.false_valid = false
|
|
34
|
+
}.should raise_error ArgumentError
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
it 'should raise ArgumentError if both false_valid and true_valid are false' do
|
|
38
|
+
lambda {
|
|
39
|
+
@c_boolean.false_valid = false
|
|
40
|
+
@c_boolean.true_valid = false
|
|
41
|
+
}.should raise_error ArgumentError
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
it 'should raise ArgumentError if default_value is false and false_valid is false' do
|
|
45
|
+
lambda {
|
|
46
|
+
@c_boolean.false_valid = false
|
|
47
|
+
@c_boolean.default_value = false
|
|
48
|
+
}.should raise_error ArgumentError
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
it 'should raise ArgumentError if default_value is true and true_valid is false' do
|
|
52
|
+
lambda {
|
|
53
|
+
@c_boolean.true_valid = false
|
|
54
|
+
@c_boolean.default_value = true
|
|
55
|
+
}.should raise_error ArgumentError
|
|
56
|
+
end
|
|
57
|
+
end
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../../../../spec_helper'
|
|
2
|
+
include OpenEHR::AM::Archetype
|
|
3
|
+
include OpenEHR::AM::Archetype::ConstraintModel::Primitive
|
|
4
|
+
include OpenEHR::RM::DataTypes::Quantity::DateTime
|
|
5
|
+
|
|
6
|
+
describe CDate do
|
|
7
|
+
before(:all) do
|
|
8
|
+
default_value = DvDate.new(:value => '2010-01-18')
|
|
9
|
+
assumed_value = DvDate.new(:value => '2007-02-19')
|
|
10
|
+
range = Interval.new(:lower => DvDate.new(:value => '2001-01-01'),
|
|
11
|
+
:upper => DvDate.new(:value => '2010-12-31'))
|
|
12
|
+
@c_date = CDate.new(:default_value => default_value,
|
|
13
|
+
:assumed_value => assumed_value,
|
|
14
|
+
:range => range)
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
it 'should be an instance of CDate' do
|
|
18
|
+
@c_date.should be_an_instance_of CDate
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
it 'range should be assigned properly' do
|
|
22
|
+
@c_date.range.upper.month.should be_equal 12
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
it 'validity_is_range should be true if range is assigned' do
|
|
26
|
+
@c_date.should be_validity_is_range
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
it 'raise ArgumentError unless range xor pattern' do
|
|
30
|
+
@c_date.range.should raise_error
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
describe 'pattern attribute' do
|
|
34
|
+
before(:all) do
|
|
35
|
+
@c_date = CDate.new(:pattern => 'yyyy-mm-dd')
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
it 'pattern should be yyyy-mm-dd' do
|
|
39
|
+
@c_date.pattern.should == 'yyyy-mm-dd'
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
describe 'list attribute' do
|
|
44
|
+
before(:all) do
|
|
45
|
+
@c_date = CDate.new(:list => [DvDate.new(:value => '2011-11-28')])
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
it 'head of list is 2011-11-28' do
|
|
49
|
+
@c_date.list[0].value.should == '2011-11-28'
|
|
50
|
+
end
|
|
51
|
+
end
|
|
52
|
+
end
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../../../../spec_helper'
|
|
2
|
+
include OpenEHR::AM::Archetype
|
|
3
|
+
include OpenEHR::AM::Archetype::ConstraintModel::Primitive
|
|
4
|
+
include OpenEHR::RM::DataTypes::Quantity::DateTime
|
|
5
|
+
|
|
6
|
+
describe CDateTime do
|
|
7
|
+
before(:each) do
|
|
8
|
+
default_value = DvDateTime.new(:value => '2010-01-25T01:23:45.1')
|
|
9
|
+
assumed_value = DvDateTime.new(:value => '2001-12-23T22:02:33.2')
|
|
10
|
+
range = Interval.new(:lower => DvDateTime.new(:value =>'1995-04-19T01:01:22'),
|
|
11
|
+
:upper => DvDateTime.new(:value => '2022-12-31T23:55:59'))
|
|
12
|
+
@c_date_time =
|
|
13
|
+
CDateTime.new(:default_value => default_value,
|
|
14
|
+
:assumed_value => assumed_value,
|
|
15
|
+
:range => range,
|
|
16
|
+
:month_validity => ValidityKind::MANDATORY,
|
|
17
|
+
:day_validity => ValidityKind::MANDATORY,
|
|
18
|
+
:hour_vaildity => ValidityKind::MANDATORY,
|
|
19
|
+
:minute_validity => ValidityKind::MANDATORY,
|
|
20
|
+
:second_validity => ValidityKind::OPTIONAL,
|
|
21
|
+
:millisecond_validity => ValidityKind::DISALLOWED,
|
|
22
|
+
:timezone_validity => ValidityKind::OPTIONAL)
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
it 'should be an instance of CDateTime' do
|
|
26
|
+
@c_date_time.should be_an_instance_of CDateTime
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
it 'type is ISO8601_DATE_TIME' do
|
|
30
|
+
@c_date_time.type.should == 'ISO8601_DATE_TIME'
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
it 'hour_validity should be assigned properly' do
|
|
34
|
+
@c_date_time.hour_validity.should be_equal ValidityKind::MANDATORY
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
it 'should raise ArgumentError if hour_validity is DISALLOWED and minute_validity is not DISALLOWED' do
|
|
38
|
+
lambda {
|
|
39
|
+
@c_date_time.hour_validity = ValidityKind::DISALLOWED
|
|
40
|
+
}.should raise_error ArgumentError
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
it 'range is properly assigned, lower value is 1995-04-19T01:01:22' do
|
|
44
|
+
@c_date_time.range.lower.value.should == '1995-04-19T01:01:22'
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
it 'should not raise ArgumentError if hour_validity is DISALLOWED and minute_validity is DISALLOWED' do
|
|
49
|
+
@c_date_time.second_validity = ValidityKind::DISALLOWED
|
|
50
|
+
@c_date_time.minute_validity = ValidityKind::DISALLOWED
|
|
51
|
+
lambda {
|
|
52
|
+
@c_date_time.hour_validity = ValidityKind::DISALLOWED
|
|
53
|
+
}.should_not raise_error ArgumentError
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
it 'should raise ArgumentError if hour_validity is OPTIONAL and minute_validity is MANDATORY' do
|
|
57
|
+
lambda {
|
|
58
|
+
@c_date_time.hour_validity = ValidityKind::OPTIONAL
|
|
59
|
+
}.should raise_error ArgumentError
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
it 'should not raise ArgumentError if hour_validity is OPTIONAL and minute_validity is OPTIONAL' do
|
|
63
|
+
@c_date_time.minute_validity = ValidityKind::OPTIONAL
|
|
64
|
+
lambda {
|
|
65
|
+
@c_date_time.hour_validity = ValidityKind::OPTIONAL
|
|
66
|
+
}.should_not raise_error ArgumentError
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
it 'should not raise Argument Error if hour_validity is OPTIONAL and minute_validity is DISALLOWED' do
|
|
70
|
+
@c_date_time.second_validity = ValidityKind::DISALLOWED
|
|
71
|
+
@c_date_time.minute_validity = ValidityKind::DISALLOWED
|
|
72
|
+
lambda {
|
|
73
|
+
@c_date_time.hour_validity = ValidityKind::OPTIONAL
|
|
74
|
+
}.should_not raise_error ArgumentError
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
it 'should raise ArgumentError if day_validity is DISALLOWED and hour_validity is not DISALLOWED' do
|
|
78
|
+
lambda {
|
|
79
|
+
@c_date_time.day_validity = ValidityKind::DISALLOWED
|
|
80
|
+
}.should raise_error ArgumentError
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
it 'should not raise ArgumentError if day_validity is DISALLOWED and hour_validity is DISALLOWED' do
|
|
84
|
+
@c_date_time.second_validity = ValidityKind::DISALLOWED
|
|
85
|
+
@c_date_time.minute_validity = ValidityKind::DISALLOWED
|
|
86
|
+
@c_date_time.hour_validity = ValidityKind::DISALLOWED
|
|
87
|
+
lambda {
|
|
88
|
+
@c_date_time.day_validity = ValidityKind::DISALLOWED
|
|
89
|
+
}.should_not raise_error ArgumentError
|
|
90
|
+
end
|
|
91
|
+
|
|
92
|
+
it 'should raise ArgumentError if day_validity is OPTIONAL and hour_validity is MANDATORY' do
|
|
93
|
+
lambda {
|
|
94
|
+
@c_date_time.day_validity = ValidityKind::OPTIONAL
|
|
95
|
+
}.should raise_error ArgumentError
|
|
96
|
+
end
|
|
97
|
+
|
|
98
|
+
it 'should not raise ArgumentError if day_validity OPTIONAL and hour_validity is OPTIONAL' do
|
|
99
|
+
@c_date_time.second_validity = ValidityKind::DISALLOWED
|
|
100
|
+
@c_date_time.minute_validity = ValidityKind::DISALLOWED
|
|
101
|
+
@c_date_time.hour_validity = ValidityKind::OPTIONAL
|
|
102
|
+
lambda {
|
|
103
|
+
@c_date_time.day_validity = ValidityKind::OPTIONAL
|
|
104
|
+
}.should_not raise_error ArgumentError
|
|
105
|
+
end
|
|
106
|
+
|
|
107
|
+
it 'should not raise ArgumentError if day_validity OPTIONAL and hour_validity is DISALLOWED' do
|
|
108
|
+
@c_date_time.second_validity = ValidityKind::DISALLOWED
|
|
109
|
+
@c_date_time.minute_validity = ValidityKind::DISALLOWED
|
|
110
|
+
@c_date_time.hour_validity = ValidityKind::DISALLOWED
|
|
111
|
+
lambda {
|
|
112
|
+
@c_date_time.day_validity = ValidityKind::OPTIONAL
|
|
113
|
+
}.should_not raise_error ArgumentError
|
|
114
|
+
end
|
|
115
|
+
|
|
116
|
+
describe 'pattern constraint' do
|
|
117
|
+
before(:all) do
|
|
118
|
+
@c_date_timep = CDateTime.new(:pattern => 'yyyy-mm-dd hh:mm:ss')
|
|
119
|
+
end
|
|
120
|
+
|
|
121
|
+
it 'pattern is yyyy-mm-dd hh:mm:ss' do
|
|
122
|
+
@c_date_timep.pattern.should == 'yyyy-mm-dd hh:mm:ss'
|
|
123
|
+
end
|
|
124
|
+
end
|
|
125
|
+
|
|
126
|
+
describe 'list constraint' do
|
|
127
|
+
before(:all) do
|
|
128
|
+
@c_date_timel = CDateTime.new(:list =>
|
|
129
|
+
[DvDateTime.new(:value => '2010-01-25T01:23:45.1')])
|
|
130
|
+
end
|
|
131
|
+
|
|
132
|
+
it 'first item of list is 2010-01-25T01:23:45.1' do
|
|
133
|
+
@c_date_timel.list[0].value.should == '2010-01-25T01:23:45.1'
|
|
134
|
+
end
|
|
135
|
+
end
|
|
136
|
+
end
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../../../../spec_helper'
|
|
2
|
+
include OpenEHR::RM::DataTypes::Quantity::DateTime
|
|
3
|
+
include OpenEHR::AssumedLibraryTypes
|
|
4
|
+
include OpenEHR::AM::Archetype::ConstraintModel::Primitive
|
|
5
|
+
|
|
6
|
+
describe CDuration do
|
|
7
|
+
before(:all) do
|
|
8
|
+
assumed_value = DvDuration.new(:value => 'P2Y')
|
|
9
|
+
default_value = DvDuration.new(:value => 'P3M')
|
|
10
|
+
range = Interval.new(:upper => assumed_value, :lower => default_value)
|
|
11
|
+
@c_duration = CDuration.new(:assumed_value => assumed_value,
|
|
12
|
+
:default_value => default_value,
|
|
13
|
+
:range => range)
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
it 'should be an instance of CDuration' do
|
|
17
|
+
@c_duration.should be_an_instance_of CDuration
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
it 'type is ISO8601_DURATION' do
|
|
21
|
+
@c_duration.type.should == 'ISO8601_DURATION'
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
it 'upper range is 2 years' do
|
|
25
|
+
@c_duration.range.upper.value.should == 'P2Y'
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
it 'lower range is 3 months year' do
|
|
29
|
+
@c_duration.range.lower.value.should == 'P3M'
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
context 'list constraint' do
|
|
33
|
+
before(:all) do
|
|
34
|
+
@c_duration = CDuration.new(:list => [DvDuration.new(:value => 'PT0s')])
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
it '1st item of the list value is PT0s' do
|
|
38
|
+
@c_duration.list[0].value.should == 'PT0s'
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
end
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../../../../spec_helper'
|
|
2
|
+
include OpenEHR::AM::Archetype::ConstraintModel::Primitive
|
|
3
|
+
include OpenEHR::AssumedLibraryTypes
|
|
4
|
+
|
|
5
|
+
describe CInteger do
|
|
6
|
+
before(:each) do
|
|
7
|
+
@c_integer = CInteger.new(:default_value => 3,
|
|
8
|
+
:assumed_value => 2,
|
|
9
|
+
:type => 'Integer',
|
|
10
|
+
:list => [1,2])
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
it 'should be an instance of CInteger' do
|
|
14
|
+
@c_integer.should be_an_instance_of CInteger
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
it 'type is DvInteger' do
|
|
18
|
+
@c_integer.type.should == 'Integer'
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
it 'should raise ArgumentError if both range and list are nil' do
|
|
22
|
+
lambda {
|
|
23
|
+
@c_integer.list = nil
|
|
24
|
+
}.should raise_error ArgumentError
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
describe 'list method' do
|
|
28
|
+
it 'constructor should assign list properly' do
|
|
29
|
+
@c_integer.list.should == [1,2]
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
it 'list method should re-assign properly' do
|
|
33
|
+
@c_integer.list = [2,3]
|
|
34
|
+
@c_integer.list.should == [2,3]
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
it 'should be raise ArgumentError if both list and range are not nil' do
|
|
38
|
+
lambda {
|
|
39
|
+
@c_integer.range = Interval.new(:lower => 1,:upper =>3)
|
|
40
|
+
}.should raise_error ArgumentError
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
describe 'range mathod' do
|
|
45
|
+
before(:each) do
|
|
46
|
+
@c_integer =
|
|
47
|
+
CInteger.new(:default_value => 2,
|
|
48
|
+
:assumed_value => 3,
|
|
49
|
+
:range => Interval.new(:lower => 0, :upper => 5))
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
it 'constructor should assign range properly' do
|
|
53
|
+
@c_integer.range.lower.should be_equal 0
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
it 'range method should re-assigne properly' do
|
|
57
|
+
@c_integer.range = Interval.new(:lower => 20)
|
|
58
|
+
@c_integer.range.lower.should be_equal 20
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
it 'should raise ArgumentError if bhot range and list are not nil' do
|
|
62
|
+
lambda {
|
|
63
|
+
@c_integer.list = [10,100]
|
|
64
|
+
}.should raise_error ArgumentError
|
|
65
|
+
end
|
|
66
|
+
end
|
|
67
|
+
end
|