open_ehr 0.6.1
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/Gemfile +14 -0
- data/Gemfile.lock +43 -0
- data/Guardfile +9 -0
- data/History.txt +4 -0
- data/Manifest.txt +16 -0
- data/PostInstall.txt +9 -0
- data/README.rdoc +66 -0
- data/Rakefile +49 -0
- data/VERSION +1 -0
- data/doc/README_rdoc.html +148 -0
- data/doc/created.rid +2 -0
- data/doc/images/brick.png +0 -0
- data/doc/images/brick_link.png +0 -0
- data/doc/images/bug.png +0 -0
- data/doc/images/bullet_black.png +0 -0
- data/doc/images/bullet_toggle_minus.png +0 -0
- data/doc/images/bullet_toggle_plus.png +0 -0
- data/doc/images/date.png +0 -0
- data/doc/images/find.png +0 -0
- data/doc/images/loadingAnimation.gif +0 -0
- data/doc/images/macFFBgHack.png +0 -0
- data/doc/images/package.png +0 -0
- data/doc/images/page_green.png +0 -0
- data/doc/images/page_white_text.png +0 -0
- data/doc/images/page_white_width.png +0 -0
- data/doc/images/plugin.png +0 -0
- data/doc/images/ruby.png +0 -0
- data/doc/images/tag_green.png +0 -0
- data/doc/images/wrench.png +0 -0
- data/doc/images/wrench_orange.png +0 -0
- data/doc/images/zoom.png +0 -0
- data/doc/index.html +54 -0
- data/doc/js/darkfish.js +116 -0
- data/doc/js/jquery.js +32 -0
- data/doc/js/quicksearch.js +114 -0
- data/doc/js/thickbox-compressed.js +10 -0
- data/doc/openehr_terminology.xml +2700 -0
- data/doc/rdoc.css +706 -0
- data/lib/#open_ehr.rb# +11 -0
- data/lib/open_ehr/am/archetype/archetype_description/archetype_description.rb +21 -0
- data/lib/open_ehr/am/archetype/assertion.rb +190 -0
- data/lib/open_ehr/am/archetype/constraint_model/primitive.rb +296 -0
- data/lib/open_ehr/am/archetype/constraint_model.rb +340 -0
- data/lib/open_ehr/am/archetype/ontology.rb +97 -0
- data/lib/open_ehr/am/archetype.rb +134 -0
- data/lib/open_ehr/am/open_ehr_profile/data_types/basic.rb +29 -0
- data/lib/open_ehr/am/open_ehr_profile/data_types/quantity.rb +19 -0
- data/lib/open_ehr/am/open_ehr_profile/data_types/text.rb +12 -0
- data/lib/open_ehr/am.rb +8 -0
- data/lib/open_ehr/assumed_library_types.rb +627 -0
- data/lib/open_ehr/parser/xml_perser.rb +13 -0
- data/lib/open_ehr/parser.rb +19 -0
- data/lib/open_ehr/rm/common/archetyped.rb +182 -0
- data/lib/open_ehr/rm/common/change_control.rb +332 -0
- data/lib/open_ehr/rm/common/directory.rb +29 -0
- data/lib/open_ehr/rm/common/generic.rb +216 -0
- data/lib/open_ehr/rm/common/resource.rb +154 -0
- data/lib/open_ehr/rm/common.rb +14 -0
- data/lib/open_ehr/rm/composition/content/entry.rb +246 -0
- data/lib/open_ehr/rm/composition/content/navigation.rb +31 -0
- data/lib/open_ehr/rm/composition/content.rb +22 -0
- data/lib/open_ehr/rm/composition.rb +103 -0
- data/lib/open_ehr/rm/data_structures/history.rb +117 -0
- data/lib/open_ehr/rm/data_structures/item_structure/representation.rb +63 -0
- data/lib/open_ehr/rm/data_structures/item_structure.rb +216 -0
- data/lib/open_ehr/rm/data_structures.rb +25 -0
- data/lib/open_ehr/rm/data_types/basic.rb +108 -0
- data/lib/open_ehr/rm/data_types/charset.lst +818 -0
- data/lib/open_ehr/rm/data_types/charset_extract.rb +24 -0
- data/lib/open_ehr/rm/data_types/encapsulated.rb +98 -0
- data/lib/open_ehr/rm/data_types/quantity/date_time.rb +229 -0
- data/lib/open_ehr/rm/data_types/quantity.rb +403 -0
- data/lib/open_ehr/rm/data_types/text.rb +168 -0
- data/lib/open_ehr/rm/data_types/time_specification.rb +75 -0
- data/lib/open_ehr/rm/data_types/uri.rb +82 -0
- data/lib/open_ehr/rm/data_types.rb +14 -0
- data/lib/open_ehr/rm/demographic.rb +269 -0
- data/lib/open_ehr/rm/ehr.rb +162 -0
- data/lib/open_ehr/rm/integration.rb +27 -0
- data/lib/open_ehr/rm/security.rb +12 -0
- data/lib/open_ehr/rm/support/assumed_types.rb +81 -0
- data/lib/open_ehr/rm/support/definition.rb +15 -0
- data/lib/open_ehr/rm/support/identification.rb +408 -0
- data/lib/open_ehr/rm/support/measurement.rb +17 -0
- data/lib/open_ehr/rm/support/terminology.rb +135 -0
- data/lib/open_ehr/rm/support.rb +14 -0
- data/lib/open_ehr/rm.rb +16 -0
- data/lib/open_ehr/serializer.rb +272 -0
- data/lib/open_ehr/terminology/open_ehr_terminology.rb +41 -0
- data/lib/open_ehr/terminology.rb +7 -0
- data/lib/open_ehr/writer.rb +12 -0
- data/lib/open_ehr.rb +11 -0
- data/spec/lib/open_ehr/am/archetype/archetype_spec.rb +98 -0
- data/spec/lib/open_ehr/am/archetype/assertion/assertion_spec.rb +60 -0
- data/spec/lib/open_ehr/am/archetype/assertion/assertion_variable_spec.rb +30 -0
- data/spec/lib/open_ehr/am/archetype/assertion/expr_binary_operator.rb +40 -0
- data/spec/lib/open_ehr/am/archetype/assertion/expr_item_spec.rb +28 -0
- data/spec/lib/open_ehr/am/archetype/assertion/expr_leaf_spec.rb +34 -0
- data/spec/lib/open_ehr/am/archetype/assertion/expr_operator_spec.rb +25 -0
- data/spec/lib/open_ehr/am/archetype/assertion/expr_unary_operator_spec.rb +26 -0
- data/spec/lib/open_ehr/am/archetype/assertion/operator_kind_spec.rb +110 -0
- data/spec/lib/open_ehr/am/archetype/constraint_model/archetype_constraint_spec.rb +56 -0
- data/spec/lib/open_ehr/am/archetype/constraint_model/archetype_internal_ref_spec.rb +36 -0
- data/spec/lib/open_ehr/am/archetype/constraint_model/archetype_slot_spec.rb +61 -0
- data/spec/lib/open_ehr/am/archetype/constraint_model/c_attribute_spec.rb +59 -0
- data/spec/lib/open_ehr/am/archetype/constraint_model/c_complex_object_spec.rb +39 -0
- data/spec/lib/open_ehr/am/archetype/constraint_model/c_defined_object_spec.rb +53 -0
- data/spec/lib/open_ehr/am/archetype/constraint_model/c_domain_type_spec.rb +25 -0
- data/spec/lib/open_ehr/am/archetype/constraint_model/c_multiple_attribute_spec.rb +29 -0
- data/spec/lib/open_ehr/am/archetype/constraint_model/c_object_spec.rb +61 -0
- data/spec/lib/open_ehr/am/archetype/constraint_model/c_primitive_object_spec.rb +33 -0
- data/spec/lib/open_ehr/am/archetype/constraint_model/c_reference_object_spec.rb +17 -0
- data/spec/lib/open_ehr/am/archetype/constraint_model/c_single_attribute_spec.rb +28 -0
- data/spec/lib/open_ehr/am/archetype/constraint_model/cardinality_spec.rb +68 -0
- data/spec/lib/open_ehr/am/archetype/constraint_model/constraint_ref_spec.rb +29 -0
- data/spec/lib/open_ehr/am/archetype/constraint_model/primitive/c_boolean_spec.rb +52 -0
- data/spec/lib/open_ehr/am/archetype/constraint_model/primitive/c_date_spec.rb +80 -0
- data/spec/lib/open_ehr/am/archetype/constraint_model/primitive/c_date_time_spec.rb +106 -0
- data/spec/lib/open_ehr/am/archetype/constraint_model/primitive/c_duration_spec.rb +69 -0
- data/spec/lib/open_ehr/am/archetype/constraint_model/primitive/c_integer_spec.rb +62 -0
- data/spec/lib/open_ehr/am/archetype/constraint_model/primitive/c_primitive_spec.rb +39 -0
- data/spec/lib/open_ehr/am/archetype/constraint_model/primitive/c_real_spec.rb +14 -0
- data/spec/lib/open_ehr/am/archetype/constraint_model/primitive/c_string_spec.rb +69 -0
- data/spec/lib/open_ehr/am/archetype/constraint_model/primitive/c_time_spec.rb +79 -0
- data/spec/lib/open_ehr/am/archetype/ontology/archetype_ontology_spec.rb +59 -0
- data/spec/lib/open_ehr/am/archetype/ontology/archetype_term_spec.rb +43 -0
- data/spec/lib/open_ehr/am/archetype/validity_kind_spec.rb +42 -0
- data/spec/lib/open_ehr/assumed_library_types/interval_spec.rb +140 -0
- data/spec/lib/open_ehr/assumed_library_types/iso8601_date_spec.rb +236 -0
- data/spec/lib/open_ehr/assumed_library_types/iso8601_date_time_spec.rb +47 -0
- data/spec/lib/open_ehr/assumed_library_types/iso8601_duration_spec.rb +150 -0
- data/spec/lib/open_ehr/assumed_library_types/iso8601_time_spec.rb +234 -0
- data/spec/lib/open_ehr/assumed_library_types/iso8601_timezone_spec.rb +57 -0
- data/spec/lib/open_ehr/assumed_library_types/time_definitions_spec.rb +136 -0
- data/spec/lib/open_ehr/rm/common/archetyped/archetyped_spec.rb +50 -0
- data/spec/lib/open_ehr/rm/common/archetyped/feeder_audit_details_spec.rb +60 -0
- data/spec/lib/open_ehr/rm/common/archetyped/feeder_audit_spec.rb +51 -0
- data/spec/lib/open_ehr/rm/common/archetyped/link_spec.rb +42 -0
- data/spec/lib/open_ehr/rm/common/archetyped/locatable_spec.rb +89 -0
- data/spec/lib/open_ehr/rm/common/archetyped/pathable_spec.rb +42 -0
- data/spec/lib/open_ehr/rm/common/change_control/contribution_spec.rb +56 -0
- data/spec/lib/open_ehr/rm/common/change_control/imported_version_spec.rb +63 -0
- data/spec/lib/open_ehr/rm/common/change_control/original_version_spec.rb +71 -0
- data/spec/lib/open_ehr/rm/common/change_control/version_spec.rb +92 -0
- data/spec/lib/open_ehr/rm/common/change_control/versioned_object_spec.rb +285 -0
- data/spec/lib/open_ehr/rm/common/directory/folder_spec.rb +26 -0
- data/spec/lib/open_ehr/rm/common/generic/attestation_spec.rb +62 -0
- data/spec/lib/open_ehr/rm/common/generic/audit_details_spec.rb +51 -0
- data/spec/lib/open_ehr/rm/common/generic/participation_spec.rb +36 -0
- data/spec/lib/open_ehr/rm/common/generic/party_identified_spec.rb +64 -0
- data/spec/lib/open_ehr/rm/common/generic/party_proxy_spec.rb +18 -0
- data/spec/lib/open_ehr/rm/common/generic/party_related_spec.rb +24 -0
- data/spec/lib/open_ehr/rm/common/generic/revision_history_item_spec.rb +43 -0
- data/spec/lib/open_ehr/rm/common/generic/revision_history_spec.rb +45 -0
- data/spec/lib/open_ehr/rm/common/resource/authored_resource_spec.rb +68 -0
- data/spec/lib/open_ehr/rm/common/resource/resource_description_item_spec.rb +105 -0
- data/spec/lib/open_ehr/rm/common/resource/resource_description_spec.rb +74 -0
- data/spec/lib/open_ehr/rm/common/resource/translation_details_spec.rb +35 -0
- data/spec/lib/open_ehr/rm/composition/composition_spec.rb +92 -0
- data/spec/lib/open_ehr/rm/composition/content/content_item_spec.rb +14 -0
- data/spec/lib/open_ehr/rm/composition/content/entry/action_spec.rb +69 -0
- data/spec/lib/open_ehr/rm/composition/content/entry/activity_spec.rb +61 -0
- data/spec/lib/open_ehr/rm/composition/content/entry/admin_entry_spec.rb +38 -0
- data/spec/lib/open_ehr/rm/composition/content/entry/care_entry_spec.rb +37 -0
- data/spec/lib/open_ehr/rm/composition/content/entry/entry_spec.rb +88 -0
- data/spec/lib/open_ehr/rm/composition/content/entry/evaluation_spec.rb +37 -0
- data/spec/lib/open_ehr/rm/composition/content/entry/instruction_details_spec.rb +51 -0
- data/spec/lib/open_ehr/rm/composition/content/entry/instruction_spec.rb +62 -0
- data/spec/lib/open_ehr/rm/composition/content/entry/ism_transition_spec.rb +46 -0
- data/spec/lib/open_ehr/rm/composition/content/entry/observation_spec.rb +45 -0
- data/spec/lib/open_ehr/rm/composition/content/navigation/section_spec.rb +32 -0
- data/spec/lib/open_ehr/rm/composition/event_context_spec.rb +88 -0
- data/spec/lib/open_ehr/rm/data_structures/data_structure_spec.rb +21 -0
- data/spec/lib/open_ehr/rm/data_structures/history/event_spec.rb +44 -0
- data/spec/lib/open_ehr/rm/data_structures/history/history_spec.rb +67 -0
- data/spec/lib/open_ehr/rm/data_structures/history/interval_event_spec.rb +43 -0
- data/spec/lib/open_ehr/rm/data_structures/item_structure/item_list_spec.rb +53 -0
- data/spec/lib/open_ehr/rm/data_structures/item_structure/item_single_spec.rb +29 -0
- data/spec/lib/open_ehr/rm/data_structures/item_structure/item_table_spec.rb +147 -0
- data/spec/lib/open_ehr/rm/data_structures/item_structure/item_tree_spec.rb +48 -0
- data/spec/lib/open_ehr/rm/data_structures/item_structure/representation/cluster_spec.rb +26 -0
- data/spec/lib/open_ehr/rm/data_structures/item_structure/representation/element_spec.rb +22 -0
- data/spec/lib/open_ehr/rm/data_types/basic/data_value_spec.rb +17 -0
- data/spec/lib/open_ehr/rm/data_types/basic/dv_boolean_spec.rb +29 -0
- data/spec/lib/open_ehr/rm/data_types/basic/dv_identifier_spec.rb +108 -0
- data/spec/lib/open_ehr/rm/data_types/basic/dv_state_spec.rb +44 -0
- data/spec/lib/open_ehr/rm/data_types/encapsulated/dv_encapsulated_spec.rb +42 -0
- data/spec/lib/open_ehr/rm/data_types/encapsulated/dv_multimedia_spec.rb +79 -0
- data/spec/lib/open_ehr/rm/data_types/encapsulated/dv_parsable_spec.rb +34 -0
- data/spec/lib/open_ehr/rm/data_types/quantity/date_time/dv_date_spec.rb +64 -0
- data/spec/lib/open_ehr/rm/data_types/quantity/date_time/dv_date_time_spec.rb +25 -0
- data/spec/lib/open_ehr/rm/data_types/quantity/date_time/dv_tempral_spec.rb +24 -0
- data/spec/lib/open_ehr/rm/data_types/quantity/date_time/dv_time_spec.rb +37 -0
- data/spec/lib/open_ehr/rm/data_types/quantity/dv_absolute_quantity_spec.rb +35 -0
- data/spec/lib/open_ehr/rm/data_types/quantity/dv_amount_spec.rb +105 -0
- data/spec/lib/open_ehr/rm/data_types/quantity/dv_count_spec.rb +12 -0
- data/spec/lib/open_ehr/rm/data_types/quantity/dv_interval_spec.rb +17 -0
- data/spec/lib/open_ehr/rm/data_types/quantity/dv_ordered_spec.rb +60 -0
- data/spec/lib/open_ehr/rm/data_types/quantity/dv_ordinal_spec.rb +74 -0
- data/spec/lib/open_ehr/rm/data_types/quantity/dv_proportion_spec.rb +162 -0
- data/spec/lib/open_ehr/rm/data_types/quantity/dv_quantified_spec.rb +36 -0
- data/spec/lib/open_ehr/rm/data_types/quantity/dv_quantity_spec.rb +78 -0
- data/spec/lib/open_ehr/rm/data_types/quantity/proportion_kind_spec.rb +24 -0
- data/spec/lib/open_ehr/rm/data_types/quantity/reference_range_spec.rb +43 -0
- data/spec/lib/open_ehr/rm/data_types/text/code_phrase_spec.rb +23 -0
- data/spec/lib/open_ehr/rm/data_types/text/dv_paragraph_spec.rb +13 -0
- data/spec/lib/open_ehr/rm/data_types/text/dv_text_spec.rb +57 -0
- data/spec/lib/open_ehr/rm/data_types/text/term_mapping_spec.rb +59 -0
- data/spec/lib/open_ehr/rm/data_types/uri/dv_ehr_uri_spec.rb +21 -0
- data/spec/lib/open_ehr/rm/data_types/uri/dv_uri_spec.rb +36 -0
- data/spec/lib/open_ehr/rm/demographic/actor_spec.rb +79 -0
- data/spec/lib/open_ehr/rm/demographic/address_spec.rb +33 -0
- data/spec/lib/open_ehr/rm/demographic/capability_spec.rb +37 -0
- data/spec/lib/open_ehr/rm/demographic/contact_spec.rb +45 -0
- data/spec/lib/open_ehr/rm/demographic/party_identity_spec.rb +32 -0
- data/spec/lib/open_ehr/rm/demographic/party_relationship_spec.rb +84 -0
- data/spec/lib/open_ehr/rm/demographic/party_spec.rb +133 -0
- data/spec/lib/open_ehr/rm/demographic/role_spec.rb +58 -0
- data/spec/lib/open_ehr/rm/ehr/ehr_access_spec.rb +33 -0
- data/spec/lib/open_ehr/rm/ehr/ehr_spec.rb +139 -0
- data/spec/lib/open_ehr/rm/ehr/ehr_status_spec.rb +52 -0
- data/spec/lib/open_ehr/rm/ehr/versioned_composition_spec.rb +33 -0
- data/spec/lib/open_ehr/rm/integration/generic_entry_spec.rb +31 -0
- data/spec/lib/open_ehr/rm/support/identification/access_group_ref_spec.rb +19 -0
- data/spec/lib/open_ehr/rm/support/identification/archetype_id_spec.rb +152 -0
- data/spec/lib/open_ehr/rm/support/identification/generic_id_spec.rb +33 -0
- data/spec/lib/open_ehr/rm/support/identification/hier_object_id_spec.rb +12 -0
- data/spec/lib/open_ehr/rm/support/identification/internet_id_spec.rb +12 -0
- data/spec/lib/open_ehr/rm/support/identification/iso_oid_spec.rb +12 -0
- data/spec/lib/open_ehr/rm/support/identification/locatable_ref_spec.rb +34 -0
- data/spec/lib/open_ehr/rm/support/identification/object_id_spec.rb +24 -0
- data/spec/lib/open_ehr/rm/support/identification/object_ref_spec.rb +33 -0
- data/spec/lib/open_ehr/rm/support/identification/object_version_id_spec.rb +60 -0
- data/spec/lib/open_ehr/rm/support/identification/party_ref_spec.rb +29 -0
- data/spec/lib/open_ehr/rm/support/identification/template_id_spec.rb +12 -0
- data/spec/lib/open_ehr/rm/support/identification/terminology_id_spec.rb +33 -0
- data/spec/lib/open_ehr/rm/support/identification/uid_based_id_spec.rb +50 -0
- data/spec/lib/open_ehr/rm/support/identification/uid_spec.rb +29 -0
- data/spec/lib/open_ehr/rm/support/identification/version_tree_id_spec.rb +104 -0
- data/spec/lib/open_ehr/rm/support/measurement_service_spec.rb +7 -0
- data/spec/lib/open_ehr/rm/support/terminology_service_spec.rb +24 -0
- data/spec/lib/open_ehr/serializer/adl-test-entry.most_minimal.test.adl +20 -0
- data/spec/lib/open_ehr/serializer/adl_serializer_spec.rb +47 -0
- data/spec/lib/open_ehr/serializer/openEHR-EHR-SECTION.test.v1.adl +38 -0
- data/spec/lib/open_ehr/serializer/openEHR-EHR-SECTION.test.v1.xml +58 -0
- data/spec/lib/open_ehr/serializer/sample_archetype_spec.rb +44 -0
- data/spec/lib/open_ehr/serializer/xml_serializer_spec.rb +49 -0
- data/spec/lib/open_ehr/terminology/open_ehr_terminology_spec.rb +40 -0
- data/spec/rcov.opts +1 -0
- data/spec/spec.opts +5 -0
- data/spec/spec_helper.rb +54 -0
- metadata +401 -0
@@ -0,0 +1,24 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../../../spec_helper'
|
2
|
+
include OpenEHR::RM::DataTypes::Quantity
|
3
|
+
|
4
|
+
describe ProportionKind do
|
5
|
+
it 'should be valid proportion kind 0' do
|
6
|
+
ProportionKind.should be_valid_proportion_kind 0
|
7
|
+
end
|
8
|
+
|
9
|
+
it 'should be valid proportion kind 2' do
|
10
|
+
ProportionKind.should be_valid_proportion_kind 2
|
11
|
+
end
|
12
|
+
|
13
|
+
it 'should be valid proportionkind 4' do
|
14
|
+
ProportionKind.should be_valid_proportion_kind 4
|
15
|
+
end
|
16
|
+
|
17
|
+
it 'should not be valid proportionkind -1' do
|
18
|
+
ProportionKind.should_not be_valid_proportion_kind -1
|
19
|
+
end
|
20
|
+
|
21
|
+
it 'should not be valid proportionkind 5' do
|
22
|
+
ProportionKind.should_not be_valid_proportion_kind 5
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../../../spec_helper'
|
2
|
+
include OpenEHR::RM::DataTypes::Quantity
|
3
|
+
|
4
|
+
describe ReferenceRange do
|
5
|
+
before(:each) do
|
6
|
+
dv_interval ||= stub(DvInterval)
|
7
|
+
@mock_dv_interval ||= mock('dv_interval')
|
8
|
+
@reference_range = ReferenceRange.new(:meaning => 'test',
|
9
|
+
:range => dv_interval)
|
10
|
+
end
|
11
|
+
|
12
|
+
it 'should be an instance of DvInterval' do
|
13
|
+
@reference_range.should be_an_instance_of ReferenceRange
|
14
|
+
end
|
15
|
+
|
16
|
+
it 's meaning should be test' do
|
17
|
+
@reference_range.meaning.should == 'test'
|
18
|
+
end
|
19
|
+
|
20
|
+
it 'should be in range' do
|
21
|
+
@mock_dv_interval.should_receive(:has?).with(1).and_return(true)
|
22
|
+
@reference_range.range = @mock_dv_interval
|
23
|
+
@reference_range.is_in_range?(1).should be_true
|
24
|
+
end
|
25
|
+
|
26
|
+
it 'should be out of range' do
|
27
|
+
@mock_dv_interval.should_receive(:has?).with(-1).and_return(false)
|
28
|
+
@reference_range.range = @mock_dv_interval
|
29
|
+
@reference_range.is_in_range?(-1).should be_false
|
30
|
+
end
|
31
|
+
|
32
|
+
it 'should raise ArgumentError with nil meaning' do
|
33
|
+
lambda {
|
34
|
+
@reference_range.meaning = nil
|
35
|
+
}.should raise_error ArgumentError
|
36
|
+
end
|
37
|
+
|
38
|
+
it 'should raise ArgumentError with nil range' do
|
39
|
+
lambda {
|
40
|
+
@reference_range.range = nil
|
41
|
+
}.should raise_error ArgumentError
|
42
|
+
end
|
43
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../../../spec_helper'
|
2
|
+
include OpenEHR::RM::DataTypes::Text
|
3
|
+
include OpenEHR::RM::Support::Identification
|
4
|
+
|
5
|
+
describe CodePhrase do
|
6
|
+
before(:each) do
|
7
|
+
terminology_id = TerminologyID.new(:value => 'openehr')
|
8
|
+
@code_phrase = CodePhrase.new(:code_string => '535',
|
9
|
+
:terminology_id => terminology_id)
|
10
|
+
end
|
11
|
+
|
12
|
+
it 'should be an instance of CodePhrase' do
|
13
|
+
@code_phrase.should be_an_instance_of CodePhrase
|
14
|
+
end
|
15
|
+
|
16
|
+
it 's code_string should be 535' do
|
17
|
+
@code_phrase.code_string.should == '535'
|
18
|
+
end
|
19
|
+
|
20
|
+
it 's terminology_id.name should be openehr' do
|
21
|
+
@code_phrase.terminology_id.name.should == 'openehr'
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../../../spec_helper'
|
2
|
+
include OpenEHR::RM::DataTypes::Text
|
3
|
+
|
4
|
+
describe DvParagraph do
|
5
|
+
before(:each) do
|
6
|
+
items_dummy = Array[1,2]
|
7
|
+
@dv_paragraph = DvParagraph.new(:items => items_dummy)
|
8
|
+
end
|
9
|
+
|
10
|
+
it 's items should be_size 2' do
|
11
|
+
@dv_paragraph.items.size.should be_equal 2
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,57 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../../../spec_helper'
|
2
|
+
include OpenEHR::RM::DataTypes::Text
|
3
|
+
include OpenEHR::RM::Support::Identification
|
4
|
+
|
5
|
+
describe DvText do
|
6
|
+
before(:each) do
|
7
|
+
terminology_id = TerminologyID.new(:value => 'openehr')
|
8
|
+
language = CodePhrase.new(:terminology_id => terminology_id,
|
9
|
+
:code_string => 'ja')
|
10
|
+
encoding = CodePhrase.new(:terminology_id => terminology_id,
|
11
|
+
:code_string => 'utf-8')
|
12
|
+
@dv_text = DvText.new(:value => 'test',
|
13
|
+
:formatting => 'font = 12pt',
|
14
|
+
:language => language,
|
15
|
+
:encoding => encoding)
|
16
|
+
end
|
17
|
+
|
18
|
+
it 'should be an instance of DvText' do
|
19
|
+
@dv_text.should be_an_instance_of DvText
|
20
|
+
end
|
21
|
+
|
22
|
+
it 's value should be test' do
|
23
|
+
@dv_text.value.should == 'test'
|
24
|
+
end
|
25
|
+
|
26
|
+
it 'should raise ArgumentError, when value include \n' do
|
27
|
+
lambda {
|
28
|
+
@dv_text.value = "not valid value\n"
|
29
|
+
}.should raise_error(ArgumentError)
|
30
|
+
end
|
31
|
+
|
32
|
+
it 'should raise ArgumentError, when value is nil' do
|
33
|
+
lambda {
|
34
|
+
@dv_text.value = nil
|
35
|
+
}.should raise_error(ArgumentError)
|
36
|
+
end
|
37
|
+
|
38
|
+
it 'formatting should be font' do
|
39
|
+
@dv_text.formatting.should == 'font = 12pt'
|
40
|
+
end
|
41
|
+
|
42
|
+
it 'should raise ArgumentError, when formatting is empty' do
|
43
|
+
lambda{@dv_text.formatting = ""}.should raise_error(ArgumentError)
|
44
|
+
end
|
45
|
+
|
46
|
+
it 'should be mapping list'
|
47
|
+
|
48
|
+
it 'should be hyperlink'
|
49
|
+
|
50
|
+
it 's language code_string should be ja' do
|
51
|
+
@dv_text.language.code_string.should == 'ja'
|
52
|
+
end
|
53
|
+
|
54
|
+
it 's encoding should be utf-8' do
|
55
|
+
@dv_text.encoding.code_string.should == 'utf-8'
|
56
|
+
end
|
57
|
+
end
|
@@ -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
|
+
|