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,59 @@
|
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../../../spec_helper'
|
|
2
|
+
include OpenEHR::RM::DataTypes::Text
|
|
3
|
+
|
|
4
|
+
describe TermMapping do
|
|
5
|
+
before(:each) do
|
|
6
|
+
target_stub = stub(DvCodedText, :value => 'TEST')
|
|
7
|
+
purpose_stub = stub(DvCodedText, :value => 'automated')
|
|
8
|
+
@term_mapping = TermMapping.new(:target => target_stub,
|
|
9
|
+
:match => '=',
|
|
10
|
+
:purpose => purpose_stub)
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
it 'should means equivalent' do
|
|
14
|
+
@term_mapping.should be_equivalent
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
it 'should means narrower' do
|
|
18
|
+
@term_mapping.match = '<'
|
|
19
|
+
@term_mapping.should be_narrower
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
it 'should means broader' do
|
|
23
|
+
@term_mapping.match = '>'
|
|
24
|
+
@term_mapping.should be_broader
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
it 'should means unknown' do
|
|
28
|
+
@term_mapping.match = '?'
|
|
29
|
+
@term_mapping.should be_unknown
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
it 'should be valid match code >' do
|
|
33
|
+
TermMapping.is_valid_mach_code?('>').should be_true
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
it 'should be valid match code =' do
|
|
37
|
+
TermMapping.is_valid_mach_code?('=').should be_true
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
it 'should be valid match code <' do
|
|
41
|
+
TermMapping.is_valid_mach_code?('<').should be_true
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
it 'should be valid match code ?' do
|
|
45
|
+
TermMapping.is_valid_mach_code?('?').should be_true
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
it 'should be not valid code /' do
|
|
49
|
+
TermMapping.is_valid_mach_code?('/').should_not be_true
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
it 's purpose should == automated' do
|
|
53
|
+
@term_mapping.purpose.value.should == 'automated'
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
it 'should raise ArgumentError when match is not valid' do
|
|
57
|
+
lambda {@term_mapping.match = '/'}.should raise_error(ArgumentError)
|
|
58
|
+
end
|
|
59
|
+
end
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../../../spec_helper'
|
|
2
|
+
include OpenEHR::RM::DataTypes::URI
|
|
3
|
+
|
|
4
|
+
describe DvEhrUri do
|
|
5
|
+
before(:each) do
|
|
6
|
+
@dv_ehr_uri = DvEhrUri.new(:value => 'ehr://test/87284370-2D4B-4e3d-A3F3-F303D2F4F34B@2005-08-02T04:30:00')
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
it 'should be an instance of EhrUri' do
|
|
10
|
+
@dv_ehr_uri.should be_an_instance_of DvEhrUri
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
it 's value should be valid' do
|
|
14
|
+
@dv_ehr_uri.value.should ==
|
|
15
|
+
'ehr://test/87284370-2D4B-4e3d-A3F3-F303D2F4F34B@2005-08-02T04:30:00'
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
it 's scheme should be ehr' do
|
|
19
|
+
@dv_ehr_uri.scheme.should == 'ehr'
|
|
20
|
+
end
|
|
21
|
+
end
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../../../spec_helper'
|
|
2
|
+
include OpenEHR::RM::DataTypes::URI
|
|
3
|
+
|
|
4
|
+
describe DvUri do
|
|
5
|
+
before(:each) do
|
|
6
|
+
@dv_uri = DvUri.new(:value =>
|
|
7
|
+
"http://www.openehr.jp/changeset/test?cmd=93#file0")
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
it 's fragment_id should be file0' do
|
|
11
|
+
@dv_uri.fragment_id.should == 'file0'
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
it 's path should be /changeset/test' do
|
|
15
|
+
@dv_uri.path.should == '/changeset/test'
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
it 's query should be cmd=93' do
|
|
19
|
+
@dv_uri.query.should == 'cmd=93'
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
it 's scheme should be http' do
|
|
23
|
+
@dv_uri.scheme.should == 'http'
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
it 's value should be http://www.openehr.jp/changeset/test?cmd=93#file0' do
|
|
27
|
+
@dv_uri.value.should == 'http://www.openehr.jp/changeset/test?cmd=93#file0'
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
it 's value change' do
|
|
31
|
+
lambda {
|
|
32
|
+
@dv_uri.value="svn://www.openehr.jp/openehr-jp/"
|
|
33
|
+
}.should change(@dv_uri, :value).to('svn://www.openehr.jp/openehr-jp/')
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../../spec_helper'
|
|
2
|
+
include OpenEHR::RM::Demographic
|
|
3
|
+
include OpenEHR::RM::DataTypes::Text
|
|
4
|
+
include OpenEHR::RM::Support::Identification
|
|
5
|
+
|
|
6
|
+
describe Actor do
|
|
7
|
+
before(:each) do
|
|
8
|
+
name = DvText.new(:value => 'actor')
|
|
9
|
+
uid = HierObjectID.new(:value => '01')
|
|
10
|
+
identities = stub(Set, :empty? => false)
|
|
11
|
+
roles = stub(Set, :size => 2, :empty? => false)
|
|
12
|
+
languages = stub(Array, :size => 3, :empty? => false)
|
|
13
|
+
@actor = Actor.new(:archetype_node_id => 'at0000',
|
|
14
|
+
:name => name,
|
|
15
|
+
:uid => uid,
|
|
16
|
+
:identities => identities,
|
|
17
|
+
:roles => roles,
|
|
18
|
+
:languages => languages)
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
it 'should be an instance of Actor' do
|
|
22
|
+
@actor.should be_an_instance_of Actor
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
it 'roles should be assigned properly' do
|
|
26
|
+
@actor.roles.size.should be_equal 2
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
it 'should raise ArgumentError with empty roles' do
|
|
30
|
+
lambda {
|
|
31
|
+
@actor.roles = Set.new
|
|
32
|
+
}.should raise_error ArgumentError
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
it 'should not raise ArgumentError with nil roles' do
|
|
36
|
+
lambda {
|
|
37
|
+
@actor.roles = nil
|
|
38
|
+
}.should_not raise_error ArgumentError
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
it 'languages should be assigned properly' do
|
|
42
|
+
@actor.languages.size.should be_equal 3
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
it 'should raise ArgumentError with empty languages' do
|
|
46
|
+
lambda {
|
|
47
|
+
@actor.languages = Set.new
|
|
48
|
+
}.should raise_error ArgumentError
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
it 'should not raise ArgumentError with nil languages' do
|
|
52
|
+
lambda {
|
|
53
|
+
@actor.languages = nil
|
|
54
|
+
}.should_not raise_error ArgumentError
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
describe 'has_legal_identity' do
|
|
58
|
+
before(:each) do
|
|
59
|
+
@dummy_purpose = DvText.new(:value => 'dummy')
|
|
60
|
+
@dummy_identity = stub(PartyIdentity, :purpose => @dummy_purpose)
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
it 'should not have legal identity' do
|
|
64
|
+
identity = stub(PartyIdentity, :purpose => @dummy_purpose)
|
|
65
|
+
identities = [identity, @dummy_identity].to_set
|
|
66
|
+
@actor.identities = identities
|
|
67
|
+
@actor.has_legal_identity?.should be_false
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
it 'should have legal identity' do
|
|
71
|
+
legal_purpose = DvText.new(:value => 'legal identity')
|
|
72
|
+
legal_identity = stub(PartyIdentity, :purpose => legal_purpose)
|
|
73
|
+
identities = [@dummy_identity, legal_identity].to_set
|
|
74
|
+
@actor.identities = identities
|
|
75
|
+
@actor.has_legal_identity?.should be_true
|
|
76
|
+
end
|
|
77
|
+
end
|
|
78
|
+
end
|
|
79
|
+
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../../spec_helper'
|
|
2
|
+
include OpenEHR::RM::Demographic
|
|
3
|
+
include OpenEHR::RM::DataTypes::Text
|
|
4
|
+
include OpenEHR::RM::DataStructures::ItemStructure
|
|
5
|
+
|
|
6
|
+
describe Address do
|
|
7
|
+
before(:each) do
|
|
8
|
+
name = DvText.new(:value => 'address')
|
|
9
|
+
details = stub(ItemStructure, :archetype_node_id => 'at0001')
|
|
10
|
+
@address = Address.new(:archetype_node_id => 'at0000',
|
|
11
|
+
:name => name,
|
|
12
|
+
:details => details)
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
it 'should be an instance of Address' do
|
|
16
|
+
@address.should be_an_instance_of Address
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
it 'type is inherit from name' do
|
|
20
|
+
@address.type.value.should == 'address'
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
it 'details should be assigned properly' do
|
|
24
|
+
@address.details.archetype_node_id.should == 'at0001'
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
it 'should raise ArgumentError with nil details' do
|
|
28
|
+
lambda {
|
|
29
|
+
@address.details = nil
|
|
30
|
+
}.should raise_error ArgumentError
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../../spec_helper'
|
|
2
|
+
include OpenEHR::RM::Demographic
|
|
3
|
+
include OpenEHR::RM::DataTypes::Text
|
|
4
|
+
include OpenEHR::RM::DataTypes::Quantity::DateTime
|
|
5
|
+
include OpenEHR::RM::Support::Identification
|
|
6
|
+
include OpenEHR::RM::DataStructures::ItemStructure
|
|
7
|
+
|
|
8
|
+
describe Capability do
|
|
9
|
+
before(:each) do
|
|
10
|
+
name = DvText.new(:value => 'party relation')
|
|
11
|
+
credentials = stub(ItemStructure, :archetype_node_id => 'at0001')
|
|
12
|
+
lower = DvDate.new(:value => '2009-11-21')
|
|
13
|
+
time_validity = stub(DvInterval, :lower => lower)
|
|
14
|
+
@capability = Capability.new(:archetype_node_id => 'at0000',
|
|
15
|
+
:name => name,
|
|
16
|
+
:credentials => credentials,
|
|
17
|
+
:time_validity => time_validity)
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
it 'should be an instance of Capability' do
|
|
21
|
+
@capability.should be_an_instance_of Capability
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
it 'credential should be assigned properly' do
|
|
25
|
+
@capability.credentials.archetype_node_id.should == 'at0001'
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
it 'should raise ArgumentError when nil assigned to credentials' do
|
|
29
|
+
lambda {
|
|
30
|
+
@capability.credentials = nil
|
|
31
|
+
}.should raise_error ArgumentError
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
it 'time_validity should be assigned properly' do
|
|
35
|
+
@capability.time_validity.lower.value.should == '2009-11-21'
|
|
36
|
+
end
|
|
37
|
+
end
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../../spec_helper'
|
|
2
|
+
include OpenEHR::RM::Demographic
|
|
3
|
+
include OpenEHR::RM::DataTypes::Quantity::DateTime
|
|
4
|
+
include OpenEHR::RM::DataTypes::Text
|
|
5
|
+
|
|
6
|
+
describe Contact do
|
|
7
|
+
before(:each) do
|
|
8
|
+
name = DvText.new(:value => 'contact')
|
|
9
|
+
addresses = stub(Array, :size => 2, :empty? => false)
|
|
10
|
+
upper = DvDate.new(:value => '2009-11-20')
|
|
11
|
+
time_validity = stub(DvInterval, :upper => upper)
|
|
12
|
+
@contact = Contact.new(:archetype_node_id => 'at0000',
|
|
13
|
+
:name => name,
|
|
14
|
+
:addresses => addresses,
|
|
15
|
+
:time_validity => time_validity)
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
it 'should be an instance of Contact' do
|
|
19
|
+
@contact.should be_an_instance_of Contact
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
it 'addresses should be assigned properly' do
|
|
23
|
+
@contact.addresses.size.should == 2
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
it 'should raise ArgumentError with nil address' do
|
|
27
|
+
lambda {
|
|
28
|
+
@contact.addresses = nil
|
|
29
|
+
}.should raise_error ArgumentError
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
it 'should raise ArgumentError with empty addresses' do
|
|
33
|
+
lambda {
|
|
34
|
+
@contact.addresses = [ ]
|
|
35
|
+
}.should raise_error ArgumentError
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
it 'time_validity should be assigned properly' do
|
|
39
|
+
@contact.time_validity.upper.value.should == '2009-11-20'
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
it 'purpose should be inherit as name' do
|
|
43
|
+
@contact.purpose.value.should == 'contact'
|
|
44
|
+
end
|
|
45
|
+
end
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../../spec_helper'
|
|
2
|
+
include OpenEHR::RM::Demographic
|
|
3
|
+
include OpenEHR::RM::DataTypes::Text
|
|
4
|
+
include OpenEHR::RM::DataStructures::ItemStructure
|
|
5
|
+
|
|
6
|
+
describe PartyIdentity do
|
|
7
|
+
before(:each) do
|
|
8
|
+
name = DvText.new(:value => 'test')
|
|
9
|
+
details = stub(ItemStructure, :archetype_node_id => 'at0002')
|
|
10
|
+
@party_identity = PartyIdentity.new(:archetype_node_id => 'at0001',
|
|
11
|
+
:name => name,
|
|
12
|
+
:details => details)
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
it 'should be an instance of PartyIdentity' do
|
|
16
|
+
@party_identity.should be_an_instance_of PartyIdentity
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
it 'details should be assigned properly' do
|
|
20
|
+
@party_identity.details.archetype_node_id.should == 'at0002'
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
it 'should raise ArgumentError with nil details' do
|
|
24
|
+
lambda {
|
|
25
|
+
@party_identity.details = nil
|
|
26
|
+
}.should raise_error ArgumentError
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
it 'purpose should return as same as name' do
|
|
30
|
+
@party_identity.purpose.value.should == 'test'
|
|
31
|
+
end
|
|
32
|
+
end
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../../spec_helper'
|
|
2
|
+
include OpenEHR::RM::Demographic
|
|
3
|
+
include OpenEHR::RM::DataTypes::Text
|
|
4
|
+
include OpenEHR::RM::DataTypes::Quantity::DateTime
|
|
5
|
+
include OpenEHR::RM::Support::Identification
|
|
6
|
+
include OpenEHR::RM::DataStructures::ItemStructure
|
|
7
|
+
|
|
8
|
+
describe PartyRelationship do
|
|
9
|
+
before(:each) do
|
|
10
|
+
name = DvText.new(:value => 'party relation')
|
|
11
|
+
uid = HierObjectID.new(:value => '01')
|
|
12
|
+
details = stub(ItemStructure, :archetype_node_id => 'at0002')
|
|
13
|
+
upper = DvDate.new(:value => '2009-11-21')
|
|
14
|
+
time_validity = stub(DvInterval, :upper => upper)
|
|
15
|
+
source_id = ObjectID.new(:value => '01')
|
|
16
|
+
source = stub(PartyRef, :id => source_id, :type => 'source')
|
|
17
|
+
target_id = ObjectID.new(:value => '02')
|
|
18
|
+
target = stub(PartyRef, :id => target_id)
|
|
19
|
+
@party_relationship =
|
|
20
|
+
PartyRelationship.new(:archetype_node_id => 'at0000',
|
|
21
|
+
:name => name,
|
|
22
|
+
:uid => uid,
|
|
23
|
+
:details => details,
|
|
24
|
+
:time_validity => time_validity,
|
|
25
|
+
:source => source,
|
|
26
|
+
:target => target)
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
it 'should be an instance of PartyRelationship' do
|
|
30
|
+
@party_relationship.should be_an_instance_of PartyRelationship
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
it 'uid should be assigned properly' do
|
|
34
|
+
@party_relationship.uid.value.should == '01'
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
it 'should raise ArgumentError when nil assigned to uid' do
|
|
38
|
+
lambda {
|
|
39
|
+
@party_relationship.uid = nil
|
|
40
|
+
}.should raise_error ArgumentError
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
it 'details should be assigned properly' do
|
|
44
|
+
@party_relationship.details.archetype_node_id.should == 'at0002'
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
it 'time_validity should be assigned properly' do
|
|
48
|
+
@party_relationship.time_validity.upper.value.should == '2009-11-21'
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
it 'source should be_assigned properly' do
|
|
52
|
+
@party_relationship.source.type.should == 'source'
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
it 'should raise ArgumentError when source is assinged nil' do
|
|
56
|
+
lambda {
|
|
57
|
+
@party_relationship.source = nil
|
|
58
|
+
}.should raise_error ArgumentError
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
it 'should raise ArgumentError when source is not matched with source' do
|
|
62
|
+
invalid_id = ObjectID.new(:value => '10')
|
|
63
|
+
invalid_source = stub(PartyRef, :id => invalid_id)
|
|
64
|
+
lambda {
|
|
65
|
+
@party_relationship.source = invalid_source
|
|
66
|
+
}.should raise_error ArgumentError
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
it 'target should be assined properly' do
|
|
70
|
+
@party_relationship.target.id.value.should == '02'
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
it 'should raise ArgumentError with target is assigned by nil' do
|
|
74
|
+
lambda {
|
|
75
|
+
@party_relationship.target =nil
|
|
76
|
+
}.should raise_error ArgumentError
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
it 'type should be inherited of name' do
|
|
80
|
+
@party_relationship.type.value.should == 'party relation'
|
|
81
|
+
end
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../../spec_helper'
|
|
2
|
+
include OpenEHR::RM::Demographic
|
|
3
|
+
include OpenEHR::RM::DataTypes::Text
|
|
4
|
+
include OpenEHR::RM::Support::Identification
|
|
5
|
+
include OpenEHR::RM::DataStructures::ItemStructure
|
|
6
|
+
|
|
7
|
+
describe Party do
|
|
8
|
+
before(:each) do
|
|
9
|
+
name = DvText.new(:value => 'PARTY')
|
|
10
|
+
uid = HierObjectID.new(:value => '01')
|
|
11
|
+
identities = stub(Set, :empty? => false, :size => 2)
|
|
12
|
+
contacts = stub(Set, :size => 3, :empty? => false)
|
|
13
|
+
cur_id = stub(ObjectID, :value => '01')
|
|
14
|
+
cur_source = stub(PartyRef, :id => cur_id)
|
|
15
|
+
id1 = stub(ObjectID, :value => '03')
|
|
16
|
+
targ1 = stub(PartyRef, :id => id1)
|
|
17
|
+
rel1 = stub(PartyRelationship, :source => cur_source,
|
|
18
|
+
:target => targ1)
|
|
19
|
+
id2 = stub(ObjectID, :value => '04')
|
|
20
|
+
targ2 = stub(PartyRef, :id => id2)
|
|
21
|
+
rel2 = stub(PartyRelationship, :source => cur_source,
|
|
22
|
+
:target => targ2)
|
|
23
|
+
id3 = stub(ObjectID, :value => '05')
|
|
24
|
+
targ3 = stub(PartyRef, :id => id3)
|
|
25
|
+
rel3 = stub(PartyRelationship, :source => cur_source,
|
|
26
|
+
:target => targ3)
|
|
27
|
+
id4 = stub(ObjectID, :value => '06')
|
|
28
|
+
targ4 = stub(PartyRef, :id => id4)
|
|
29
|
+
rel4 = stub(PartyRelationship, :source => cur_source,
|
|
30
|
+
:target => targ4)
|
|
31
|
+
relationships = [rel1, rel2, rel3, rel4].to_set
|
|
32
|
+
reverse_relationships = stub(Set, :empty? => false, :size => 5)
|
|
33
|
+
details = stub(ItemStructure, :archetype_node_id => 'at0005')
|
|
34
|
+
@party = Party.new(:archetype_node_id => 'at0001',
|
|
35
|
+
:name => name,
|
|
36
|
+
:uid => uid,
|
|
37
|
+
:identities => identities,
|
|
38
|
+
:contacts => contacts,
|
|
39
|
+
:relationships => relationships,
|
|
40
|
+
:reverse_relationships => reverse_relationships,
|
|
41
|
+
:details => details)
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
it 'should be an instance of Party' do
|
|
45
|
+
@party.should be_an_instance_of Party
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
it 'uid should be assigned properly' do
|
|
49
|
+
@party.uid.value.should == '01'
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
it 'should raise ArgumentError with nil uid' do
|
|
53
|
+
lambda {
|
|
54
|
+
@party.uid = nil
|
|
55
|
+
}.should raise_error ArgumentError
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
it 'identities should be assigned properly' do
|
|
59
|
+
@party.identities.size.should be_equal 2
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
it 'should raise ArgumentError when nil identities are assigned' do
|
|
63
|
+
lambda {
|
|
64
|
+
@party.identities = nil
|
|
65
|
+
}.should raise_error ArgumentError
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
it 'should raise ArgumentError when identities are empty' do
|
|
69
|
+
expect {@party.identities = Set.new}.to raise_error
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
it 'type should be alias of name' do
|
|
73
|
+
@party.type.value.should == 'PARTY'
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
it 'contacts should be assigned properly' do
|
|
77
|
+
@party.contacts.size.should be_equal 3
|
|
78
|
+
end
|
|
79
|
+
|
|
80
|
+
it 'should raise ArgumentError with empty contacts' do
|
|
81
|
+
lambda {
|
|
82
|
+
@party.contacts = Set.new
|
|
83
|
+
}.should raise_error ArgumentError
|
|
84
|
+
end
|
|
85
|
+
|
|
86
|
+
it 'relationships should be assigned properly' do
|
|
87
|
+
target_ids = Set.new
|
|
88
|
+
@party.relationships.each do |rel|
|
|
89
|
+
target_ids << rel.target.id.value
|
|
90
|
+
end
|
|
91
|
+
target_ids.should == %w{03 04 05 06}.to_set
|
|
92
|
+
end
|
|
93
|
+
|
|
94
|
+
it 'should not raise ArgumentError with nil relationships' do
|
|
95
|
+
lambda {
|
|
96
|
+
@party.relationships = nil
|
|
97
|
+
}.should_not raise_error ArgumentError
|
|
98
|
+
end
|
|
99
|
+
|
|
100
|
+
it 'should raise ArgumentError with empty relationships' do
|
|
101
|
+
lambda {
|
|
102
|
+
@party.relationships = Set.new
|
|
103
|
+
}.should raise_error ArgumentError
|
|
104
|
+
end
|
|
105
|
+
|
|
106
|
+
it 'invaild relationship raise ArgumentError' do
|
|
107
|
+
invalid_id = stub(ObjectID, :value => '10')
|
|
108
|
+
invalid_source = stub(PartyRef, :id => invalid_id)
|
|
109
|
+
invalid_rel = stub(PartyRelationship, :source => invalid_source)
|
|
110
|
+
lambda {
|
|
111
|
+
@party.relationships = [invalid_rel].to_set
|
|
112
|
+
}.should raise_error ArgumentError
|
|
113
|
+
end
|
|
114
|
+
|
|
115
|
+
it 'reverse relationship should be assigned properly' do
|
|
116
|
+
@party.reverse_relationships.size.should be_equal 5
|
|
117
|
+
end
|
|
118
|
+
|
|
119
|
+
it 'reverse_relationships should not be empty' do
|
|
120
|
+
lambda {
|
|
121
|
+
@party.reverse_relationships = Set.new
|
|
122
|
+
}.should raise_error ArgumentError
|
|
123
|
+
end
|
|
124
|
+
|
|
125
|
+
it 'should validate reverse_relationships'
|
|
126
|
+
|
|
127
|
+
it 'details should be assigned properly' do
|
|
128
|
+
@party.details.archetype_node_id.should == 'at0005'
|
|
129
|
+
end
|
|
130
|
+
end
|
|
131
|
+
|