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,88 @@
|
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../../spec_helper'
|
|
2
|
+
include OpenEHR::RM::Composition
|
|
3
|
+
include OpenEHR::RM::DataTypes::Quantity::DateTime
|
|
4
|
+
include OpenEHR::RM::DataTypes::Text
|
|
5
|
+
include OpenEHR::RM::DataStructures::ItemStructure
|
|
6
|
+
|
|
7
|
+
describe EventContext do
|
|
8
|
+
before(:each) do
|
|
9
|
+
start = DvDateTime.new(:value => '2009-11-13T20:46:57')
|
|
10
|
+
setting_group = stub(CodePhrase, :code_string => '225')
|
|
11
|
+
setting = stub(DvCodedText, :defining_code => setting_group)
|
|
12
|
+
ending = DvDateTime.new(:value => '2010-10-14T09:00:00')
|
|
13
|
+
participations = stub(Array, :size => 5, :empty? => false)
|
|
14
|
+
other_context = stub(ItemStructure, :archetype_node_id => 'at0002')
|
|
15
|
+
@event_context = EventContext.new(:start_time => start,
|
|
16
|
+
:end_time => ending,
|
|
17
|
+
:setting => setting,
|
|
18
|
+
:participations => participations,
|
|
19
|
+
:location => 'ehime',
|
|
20
|
+
:other_context => other_context)
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
it 'should be an instance of EventContext' do
|
|
24
|
+
@event_context.should be_an_instance_of EventContext
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
it 'start_time should be assigned properly' do
|
|
28
|
+
@event_context.start_time.value.should == '2009-11-13T20:46:57'
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
it 'should raise ArgumentError with nil start_time' do
|
|
32
|
+
lambda {
|
|
33
|
+
@event_context.start_time = nil
|
|
34
|
+
}.should raise_error ArgumentError
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
it 'setting should be assigned properly' do
|
|
38
|
+
@event_context.setting.defining_code.code_string.should == '225'
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
it 'should raise ArgumentError with nil setting' do
|
|
42
|
+
lambda {
|
|
43
|
+
@event_context.setting = nil
|
|
44
|
+
}.should raise_error ArgumentError
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
it 'should vaildate setting code with Terminology service'
|
|
48
|
+
|
|
49
|
+
it 'end_time should be assigned properly' do
|
|
50
|
+
@event_context.end_time.value.should == '2010-10-14T09:00:00'
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
it 'participations should be properly assigned' do
|
|
54
|
+
@event_context.participations.size.should be_equal 5
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
it 'should raise ArgumentError with empty participations' do
|
|
58
|
+
lambda {
|
|
59
|
+
@event_context.participations = [ ]
|
|
60
|
+
}.should raise_error ArgumentError
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
it 'should not raise ArgumentError with nil participations' do
|
|
64
|
+
lambda {
|
|
65
|
+
@event_context.participations = nil
|
|
66
|
+
}.should_not raise_error ArgumentError
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
it 'location should be assigned properly' do
|
|
70
|
+
@event_context.location.should == 'ehime'
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
it 'should raise ArgumentError with empty location' do
|
|
74
|
+
lambda {
|
|
75
|
+
@event_context.location = ''
|
|
76
|
+
}.should raise_error ArgumentError
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
it 'should not raise ArgumentError with nil location' do
|
|
80
|
+
lambda {
|
|
81
|
+
@event_context.location = nil
|
|
82
|
+
}.should_not raise_error ArgumentError
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
it 'other_context should be assigned properly' do
|
|
86
|
+
@event_context.other_context.archetype_node_id.should == 'at0002'
|
|
87
|
+
end
|
|
88
|
+
end
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../../spec_helper'
|
|
2
|
+
include OpenEHR::RM::DataStructures
|
|
3
|
+
include OpenEHR::RM::DataTypes::Text
|
|
4
|
+
|
|
5
|
+
describe DataStructure do
|
|
6
|
+
before(:each) do
|
|
7
|
+
name = DvText.new(:value => 'test')
|
|
8
|
+
@data_structure = DataStructure.new(:archetype_node_id => 'at0001',
|
|
9
|
+
:name => name)
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
it 'should be an instance of DataStructure' do
|
|
13
|
+
@data_structure.should be_an_instance_of DataStructure
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
it 'should raise NotImplementedError' do
|
|
17
|
+
lambda {
|
|
18
|
+
@data_structure.as_hierarchy
|
|
19
|
+
}.should raise_error NotImplementedError
|
|
20
|
+
end
|
|
21
|
+
end
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../../../spec_helper'
|
|
2
|
+
include OpenEHR::RM::DataStructures::History
|
|
3
|
+
include OpenEHR::RM::DataStructures::ItemStructure
|
|
4
|
+
include OpenEHR::RM::DataTypes::Text
|
|
5
|
+
include OpenEHR::RM::DataTypes::Quantity::DateTime
|
|
6
|
+
|
|
7
|
+
describe Event do
|
|
8
|
+
before(:each) do
|
|
9
|
+
time = DvDateTime.new(:value => '2009-11-12T10:19:33')
|
|
10
|
+
state = stub(ItemStructure, :archetype_node_id => 'at0002')
|
|
11
|
+
origin = DvDateTime.new(:value => '2009-11-11T10:20:40')
|
|
12
|
+
parent = stub(History, :origin => origin)
|
|
13
|
+
@event = Event.new(:archetype_node_id => 'at0001',
|
|
14
|
+
:name => DvText.new(:value => 'Event test'),
|
|
15
|
+
:time => time,
|
|
16
|
+
:data => 'data',
|
|
17
|
+
:state => state,
|
|
18
|
+
:parent => parent)
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
it 'should be an instance of Event' do
|
|
22
|
+
@event.should be_an_instance_of Event
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
it 'data should be assigned properly' do
|
|
26
|
+
@event.data.should == 'data'
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
it 'time should be assigned properly' do
|
|
30
|
+
@event.time.value.should == '2009-11-12T10:19:33'
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
it 'state should be assigned properly' do
|
|
34
|
+
@event.state.archetype_node_id.should == 'at0002'
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
it 'parent should be properly assigned' do
|
|
38
|
+
@event.parent.origin.value.should == '2009-11-11T10:20:40'
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
it 'offset should be diff of parent.origin from time' do
|
|
42
|
+
@event.offset.value.should == 'P0Y0M0W0DT23H58M53S'
|
|
43
|
+
end
|
|
44
|
+
end
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../../../spec_helper'
|
|
2
|
+
include OpenEHR::RM::DataStructures::History
|
|
3
|
+
include OpenEHR::RM::DataStructures::ItemStructure
|
|
4
|
+
include OpenEHR::RM::DataTypes::Text
|
|
5
|
+
include OpenEHR::RM::DataTypes::Quantity::DateTime
|
|
6
|
+
|
|
7
|
+
describe History do
|
|
8
|
+
before(:each) do
|
|
9
|
+
origin = DvDateTime.new(:value => '2009-11-01T00:00:00')
|
|
10
|
+
period = DvDuration.new(:value => 'P1Y2M3W4D')
|
|
11
|
+
duration = DvDuration.new(:value => 'P0Y0M0W6D')
|
|
12
|
+
events = [stub(Event, :archetype_node_id => 'at0002')]
|
|
13
|
+
summary = stub(ItemStructure, :archetype_node_id => 'at0003')
|
|
14
|
+
@history = History.new(:archetype_node_id => 'at0001',
|
|
15
|
+
:name => DvText.new(:value => 'history test'),
|
|
16
|
+
:origin => origin,
|
|
17
|
+
:period => period,
|
|
18
|
+
:duration => duration,
|
|
19
|
+
:events => events,
|
|
20
|
+
:summary => summary)
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
it 'should be an instance of History' do
|
|
24
|
+
@history.should be_an_instance_of History
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
it 'origin should be properly assigned' do
|
|
28
|
+
@history.origin.value.should == '2009-11-01T00:00:00'
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
it 'should raise ArgumentError with nil origin' do
|
|
32
|
+
lambda {
|
|
33
|
+
@history.origin = nil
|
|
34
|
+
}.should raise_error ArgumentError
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
it 'period should be properly assigned' do
|
|
38
|
+
@history.period.value.should == 'P1Y2M3W4D'
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
it 'duration should be properly assigned' do
|
|
42
|
+
@history.duration.value.should == 'P0Y0M0W6D'
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
it 'is_periodic? should be true when period is not nil' do
|
|
46
|
+
@history.is_periodic?.should be_true
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
it 'is_periodic? should be false when period is nil' do
|
|
50
|
+
@history.period = nil
|
|
51
|
+
@history.is_periodic?.should be_false
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
it 'events should be properly assigned' do
|
|
55
|
+
@history.events[0].archetype_node_id.should == 'at0002'
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
it 'empty events should raise ArgumentError' do
|
|
59
|
+
lambda {
|
|
60
|
+
@history.events = []
|
|
61
|
+
}.should raise_error ArgumentError
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
it 'summary should be properly assigned' do
|
|
65
|
+
@history.summary.archetype_node_id.should == 'at0003'
|
|
66
|
+
end
|
|
67
|
+
end
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../../../spec_helper'
|
|
2
|
+
include OpenEHR::RM::DataStructures::History
|
|
3
|
+
include OpenEHR::RM::DataStructures::ItemStructure
|
|
4
|
+
include OpenEHR::RM::DataTypes::Text
|
|
5
|
+
include OpenEHR::RM::DataTypes::Quantity::DateTime
|
|
6
|
+
|
|
7
|
+
describe IntervalEvent do
|
|
8
|
+
before(:each) do
|
|
9
|
+
time = DvDateTime.new(:value => '2009-11-12T10:19:33Z')
|
|
10
|
+
state = stub(ItemStructure, :archetype_node_id => 'at0002')
|
|
11
|
+
origin = DvDateTime.new(:value => '2009-11-11T10:20:40Z')
|
|
12
|
+
parent = stub(History, :origin => origin)
|
|
13
|
+
math_function = stub(DvCodedText, :value => 'mean')
|
|
14
|
+
width = DvDuration.new(:value => 'P0Y2M1W3DT5H7M3S')
|
|
15
|
+
@interval_event = IntervalEvent.new(:archetype_node_id => 'at0001',
|
|
16
|
+
:name => DvText.new(:value => 'Event test'),
|
|
17
|
+
:time => time,
|
|
18
|
+
:data => 'data',
|
|
19
|
+
:width => width,
|
|
20
|
+
:math_function => math_function,
|
|
21
|
+
:sample_count => 1234)
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
it 'should be an instance of IntervalEvent' do
|
|
25
|
+
@interval_event.should be_an_instance_of IntervalEvent
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
it 'width should be assigned properly' do
|
|
29
|
+
@interval_event.width.value.should == 'P0Y2M1W3DT5H7M3S'
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
it 'math_function should be assigned properly' do
|
|
33
|
+
@interval_event.math_function.value.should == 'mean'
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
it 'sample_count should be assigned properly' do
|
|
37
|
+
@interval_event.sample_count.should be_equal 1234
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
it 'should subtract time for interval start time' do
|
|
41
|
+
@interval_event.interval_start_time.value.should == '2009-09-09T05:12:30Z'
|
|
42
|
+
end
|
|
43
|
+
end
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../../../spec_helper'
|
|
2
|
+
include OpenEHR::RM::DataStructures::ItemStructure
|
|
3
|
+
include OpenEHR::RM::DataStructures::ItemStructure::Representation
|
|
4
|
+
include OpenEHR::RM::DataTypes::Text
|
|
5
|
+
|
|
6
|
+
describe ItemList do
|
|
7
|
+
before(:each) do
|
|
8
|
+
items = %w{one two three}.collect do |n|
|
|
9
|
+
Element.new(:name => DvText.new(:value => n),
|
|
10
|
+
:archetype_node_id => 'test')
|
|
11
|
+
end
|
|
12
|
+
item_list_name = DvText.new(:value => 'item list')
|
|
13
|
+
@item_list = ItemList.new(:name => item_list_name,
|
|
14
|
+
:archetype_node_id => 'test',
|
|
15
|
+
:items => items)
|
|
16
|
+
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
it 'should be instance of ItemList' do
|
|
20
|
+
@item_list.should be_an_instance_of ItemList
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
it 'count should be 3' do
|
|
24
|
+
@item_list.item_count.should be_equal 3
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
it 'count should be 0' do
|
|
28
|
+
@item_list.items = nil
|
|
29
|
+
@item_list.item_count.should be_equal 0
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
it 'retrieve the names of all items' do
|
|
34
|
+
@item_list.names.should == %w{one two three}.collect{|n|
|
|
35
|
+
DvText.new(:value => n)}
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
it 'should return the item with a name' do
|
|
39
|
+
@item_list.named_item('one').name.value.should == 'one'
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
it 'should return nil when item is not exist' do
|
|
43
|
+
@item_list.named_item('four').should be_nil
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
it 'retrieve the ith item with number' do
|
|
47
|
+
@item_list.ith_item(1).name.value.should == 'one'
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
it 'generate cluster of items' do
|
|
51
|
+
@item_list.as_hierarchy.name.value.should == 'item list'
|
|
52
|
+
end
|
|
53
|
+
end
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../../../spec_helper'
|
|
2
|
+
|
|
3
|
+
include OpenEHR::RM::DataStructures::ItemStructure
|
|
4
|
+
include OpenEHR::RM::DataStructures::ItemStructure::Representation
|
|
5
|
+
include OpenEHR::RM::DataTypes::Text
|
|
6
|
+
|
|
7
|
+
describe ItemSingle do
|
|
8
|
+
before(:each) do
|
|
9
|
+
element = stub(Element, :archetype_node_id => 'at0002')
|
|
10
|
+
item_single_name = DvText.new(:value => 'item single')
|
|
11
|
+
@item_single = ItemSingle.new(:name => item_single_name,
|
|
12
|
+
:archetype_node_id => 'at0001',
|
|
13
|
+
:item => element)
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
it 'should be an instance of ItemSingle' do
|
|
17
|
+
@item_single.should be_an_instance_of ItemSingle
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
it 'should raise ArgumentError with nil item' do
|
|
21
|
+
lambda {
|
|
22
|
+
@item_single.item = nil
|
|
23
|
+
}.should raise_error ArgumentError
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
it 'should return as_hierarchy' do
|
|
27
|
+
@item_single.as_hierarchy.archetype_node_id.should == 'at0002'
|
|
28
|
+
end
|
|
29
|
+
end
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../../../spec_helper'
|
|
2
|
+
|
|
3
|
+
include OpenEHR::RM::DataStructures::ItemStructure
|
|
4
|
+
include OpenEHR::RM::DataStructures::ItemStructure::Representation
|
|
5
|
+
include OpenEHR::RM::DataTypes::Text
|
|
6
|
+
|
|
7
|
+
def row(args)
|
|
8
|
+
return args.collect do |n|
|
|
9
|
+
Element.new(:name => DvText.new(:value => n),
|
|
10
|
+
:archetype_node_id => 'test')
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def cluster_builder(name,rows)
|
|
15
|
+
return Cluster.new(:name => DvText.new(:value => name),
|
|
16
|
+
:archetype_node_id => 'test',
|
|
17
|
+
:items => rows)
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
describe ItemTable do
|
|
21
|
+
before(:each) do
|
|
22
|
+
row1 = row(%w{one two three})
|
|
23
|
+
row2 = row(%w{four five six})
|
|
24
|
+
rows = [row1, row2].collect{|r| cluster_builder('cluster',r)}
|
|
25
|
+
@item_table = ItemTable.new(:name => DvText.new(:value => 'item table'),
|
|
26
|
+
:archetype_node_id => 'test',
|
|
27
|
+
:rows => rows)
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
it 'should be an instance of ItemTable' do
|
|
31
|
+
@item_table.should be_an_instance_of ItemTable
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
it 's row count should be 2' do
|
|
35
|
+
@item_table.row_count.should be_equal 2
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
it 's row_count should be 0 when rows are nil' do
|
|
39
|
+
@item_table.rows = nil
|
|
40
|
+
@item_table.row_count.should be_equal 0
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
it 's column_count should be 3' do
|
|
44
|
+
@item_table.column_count.should be_equal 3
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
it 'column_count should be 0 when @rows == nil' do
|
|
48
|
+
@item_table.rows = nil
|
|
49
|
+
@item_table.column_count.should be_equal 0
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
it 's row_names should be cluster cluster' do
|
|
53
|
+
@item_table.row_names.should == %w{cluster cluster}.collect{|n|
|
|
54
|
+
DvText.new(:value => n)}
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
it 's row_names should be empty when items are nil' do
|
|
58
|
+
@item_table.rows = nil
|
|
59
|
+
@item_table.row_names.should == []
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
it 's column_names should one two three' do
|
|
63
|
+
@item_table.column_names.should == %w{one two three}.collect{|s|
|
|
64
|
+
DvText.new(:value => s)}
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
it 's column_names should empty when items aer nil' do
|
|
68
|
+
@item_table.rows = nil
|
|
69
|
+
@item_table.column_names.should == []
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
it 's ith_row(integer) should be ith row' do
|
|
73
|
+
@item_table.ith_row(2).items[1].name.value.should == 'five'
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
it 'should be invalid index under 0' do
|
|
77
|
+
lambda {@item_table.ith_row(0) }.should raise_error(ArgumentError)
|
|
78
|
+
end
|
|
79
|
+
|
|
80
|
+
it 'should be true because it has_row_with_name cluster' do
|
|
81
|
+
@item_table.has_row_with_name?('one').should be_true
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
it 'should be true because it does not have_row_with_name key' do
|
|
85
|
+
@item_table.has_row_with_name?('two').should_not be_true
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
it 'should raise argument error key is nil' do
|
|
89
|
+
lambda {@item_table.has_row_with_name?(nil)
|
|
90
|
+
}.should raise_error(ArgumentError)
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
it 'should raise argument error key is empty' do
|
|
94
|
+
lambda {@item_table.has_row_with_name?('')
|
|
95
|
+
}.should raise_error(ArgumentError)
|
|
96
|
+
end
|
|
97
|
+
|
|
98
|
+
it 'should be true because it has_column_with_name one' do
|
|
99
|
+
@item_table.has_column_with_name?('one').should be_true
|
|
100
|
+
end
|
|
101
|
+
|
|
102
|
+
it 'should be false it has_column with name ten' do
|
|
103
|
+
@item_table.has_column_with_name?('ten').should be_false
|
|
104
|
+
end
|
|
105
|
+
|
|
106
|
+
it 'second row should be named_row four' do
|
|
107
|
+
@item_table.named_row('four').items[1].name.value = 'five'
|
|
108
|
+
end
|
|
109
|
+
|
|
110
|
+
it 'should be true if row has key' do
|
|
111
|
+
@item_table.has_row_with_key?(Set['one','two']).should be_true
|
|
112
|
+
end
|
|
113
|
+
|
|
114
|
+
it 'should not be true if row has not key' do
|
|
115
|
+
@item_table.has_row_with_key?(Set['two','five']).should be_false
|
|
116
|
+
end
|
|
117
|
+
|
|
118
|
+
it 'should be a first row that has one' do
|
|
119
|
+
@item_table.row_with_key(Set['one', 'two']).items[0].name.value.should =='one'
|
|
120
|
+
end
|
|
121
|
+
|
|
122
|
+
it 'should raise argument error if row has no key' do
|
|
123
|
+
lambda {
|
|
124
|
+
@item_table.row_with_key(Set['two','five'])}.should raise_error(ArgumentError)
|
|
125
|
+
end
|
|
126
|
+
|
|
127
|
+
it 'should be element at cell ij' do
|
|
128
|
+
@item_table.element_at_cell_ij(2,2).name.value.should == 'five'
|
|
129
|
+
end
|
|
130
|
+
|
|
131
|
+
it 'should not be element at cell with wrong ij' do
|
|
132
|
+
@item_table.element_at_cell_ij(2,3).name.value.should_not == 'five'
|
|
133
|
+
end
|
|
134
|
+
|
|
135
|
+
it 'should be two element at named cell by row column' do
|
|
136
|
+
@item_table.element_at_named_cell('cluster', 'three').name.value == 'three'
|
|
137
|
+
end
|
|
138
|
+
|
|
139
|
+
it 'should return nil when rows are nil' do
|
|
140
|
+
@item_table.rows = nil
|
|
141
|
+
@item_table.row_count.should be_equal 0
|
|
142
|
+
end
|
|
143
|
+
|
|
144
|
+
it 'should be first row as hierachy' do
|
|
145
|
+
@item_table.as_hierarchy.name.value.should == 'cluster'
|
|
146
|
+
end
|
|
147
|
+
end
|