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,133 @@
|
|
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
|
+
lambda {
|
70
|
+
@party.identities = Set.new
|
71
|
+
}
|
72
|
+
end
|
73
|
+
|
74
|
+
it 'type should be alias of name' do
|
75
|
+
@party.type.value.should == 'PARTY'
|
76
|
+
end
|
77
|
+
|
78
|
+
it 'contacts should be assigned properly' do
|
79
|
+
@party.contacts.size.should be_equal 3
|
80
|
+
end
|
81
|
+
|
82
|
+
it 'should raise ArgumentError with empty contacts' do
|
83
|
+
lambda {
|
84
|
+
@party.contacts = Set.new
|
85
|
+
}.should raise_error ArgumentError
|
86
|
+
end
|
87
|
+
|
88
|
+
it 'relationships should be assigned properly' do
|
89
|
+
target_ids = Set.new
|
90
|
+
@party.relationships.each do |rel|
|
91
|
+
target_ids << rel.target.id.value
|
92
|
+
end
|
93
|
+
target_ids.should == %w{03 04 05 06}.to_set
|
94
|
+
end
|
95
|
+
|
96
|
+
it 'should not raise ArgumentError with nil relationships' do
|
97
|
+
lambda {
|
98
|
+
@party.relationships = nil
|
99
|
+
}.should_not raise_error ArgumentError
|
100
|
+
end
|
101
|
+
|
102
|
+
it 'should raise ArgumentError with empty relationships' do
|
103
|
+
lambda {
|
104
|
+
@party.relationships = Set.new
|
105
|
+
}.should raise_error ArgumentError
|
106
|
+
end
|
107
|
+
|
108
|
+
it 'invaild relationship raise ArgumentError' do
|
109
|
+
invalid_id = stub(ObjectID, :value => '10')
|
110
|
+
invalid_source = stub(PartyRef, :id => invalid_id)
|
111
|
+
invalid_rel = stub(PartyRelationship, :source => invalid_source)
|
112
|
+
lambda {
|
113
|
+
@party.relationships = [invalid_rel].to_set
|
114
|
+
}.should raise_error ArgumentError
|
115
|
+
end
|
116
|
+
|
117
|
+
it 'reverse relationship should be assigned properly' do
|
118
|
+
@party.reverse_relationships.size.should be_equal 5
|
119
|
+
end
|
120
|
+
|
121
|
+
it 'reverse_relationships should not be empty' do
|
122
|
+
lambda {
|
123
|
+
@party.reverse_relationships = Set.new
|
124
|
+
}.should raise_error ArgumentError
|
125
|
+
end
|
126
|
+
|
127
|
+
it 'should validate reverse_relationships'
|
128
|
+
|
129
|
+
it 'details should be assigned properly' do
|
130
|
+
@party.details.archetype_node_id.should == 'at0005'
|
131
|
+
end
|
132
|
+
end
|
133
|
+
|
@@ -0,0 +1,58 @@
|
|
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
|
+
|
7
|
+
describe Role do
|
8
|
+
before(:each) do
|
9
|
+
name = DvText.new(:value => 'role')
|
10
|
+
uid = HierObjectID.new(:value => '01')
|
11
|
+
identities = stub(Set, :empty? => false)
|
12
|
+
capabilities = stub(Array, :size => 2, :empty? => false)
|
13
|
+
lower = DvDate.new(:value => '2009-11-21')
|
14
|
+
time_validity = stub(DvInterval, :lower => lower)
|
15
|
+
performer = stub(PartyRef, :type => 'ROLE')
|
16
|
+
@role = Role.new(:archetype_node_id => 'at0000',
|
17
|
+
:name => name,
|
18
|
+
:uid => uid,
|
19
|
+
:identities => identities,
|
20
|
+
:performer => performer,
|
21
|
+
:capabilities => capabilities,
|
22
|
+
:time_validity => time_validity)
|
23
|
+
end
|
24
|
+
|
25
|
+
it 'should be an instance of Role' do
|
26
|
+
@role.should be_an_instance_of Role
|
27
|
+
end
|
28
|
+
|
29
|
+
it 'performer should assigned properly' do
|
30
|
+
@role.performer.type.should == 'ROLE'
|
31
|
+
end
|
32
|
+
|
33
|
+
it 'should raise ArgumentError with nil performer' do
|
34
|
+
lambda {
|
35
|
+
@role.performer = nil
|
36
|
+
}.should raise_error ArgumentError
|
37
|
+
end
|
38
|
+
|
39
|
+
it 'capabilities should be assigned properly' do
|
40
|
+
@role.capabilities.size.should be_equal 2
|
41
|
+
end
|
42
|
+
|
43
|
+
it 'should raise ArgumentError with empty capabilities' do
|
44
|
+
lambda {
|
45
|
+
@role.capabilities = [ ]
|
46
|
+
}.should raise_error ArgumentError
|
47
|
+
end
|
48
|
+
|
49
|
+
it 'should not raise ArgumentError with nil capabilities' do
|
50
|
+
lambda {
|
51
|
+
@role.capabilities = nil
|
52
|
+
}.should_not raise_error ArgumentError
|
53
|
+
end
|
54
|
+
|
55
|
+
it 'time_validity should be properly assigned' do
|
56
|
+
@role.time_validity.lower.value.should == '2009-11-21'
|
57
|
+
end
|
58
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../../spec_helper'
|
2
|
+
include OpenEHR::RM::EHR
|
3
|
+
include OpenEHR::RM::Security
|
4
|
+
include OpenEHR::RM::DataTypes::Text
|
5
|
+
|
6
|
+
describe EHRAccess do
|
7
|
+
before(:each) do
|
8
|
+
name = DvText.new(:value => 'EHRAccess')
|
9
|
+
settings = stub(AccessControlSettings)
|
10
|
+
@ehr_access = EHRAccess.new(:archetype_node_id => 'at0001',
|
11
|
+
:name => name,
|
12
|
+
:settings => settings,
|
13
|
+
:scheme => 'SSL')
|
14
|
+
end
|
15
|
+
|
16
|
+
it 'should be an instance of EHRAccess' do
|
17
|
+
@ehr_access.should be_an_instance_of EHRAccess
|
18
|
+
end
|
19
|
+
|
20
|
+
it 'settings should be assigned, but Security package is not determined' do
|
21
|
+
@ehr_access.settings.should_not be_nil
|
22
|
+
end
|
23
|
+
|
24
|
+
it 'schema should be assigned properly' do
|
25
|
+
@ehr_access.scheme.should == 'SSL'
|
26
|
+
end
|
27
|
+
|
28
|
+
it 'should raise ArgumentError with nil schema' do
|
29
|
+
lambda {
|
30
|
+
@ehr_access.scheme = nil
|
31
|
+
}.should raise_error ArgumentError
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,139 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../../spec_helper'
|
2
|
+
include OpenEHR::RM::EHR
|
3
|
+
include OpenEHR::RM::Support::Identification
|
4
|
+
include OpenEHR::RM::DataTypes::Quantity::DateTime
|
5
|
+
|
6
|
+
describe EHR do
|
7
|
+
before(:each) do
|
8
|
+
system_id = HierObjectID.new(:value => 'ABC::DEF')
|
9
|
+
ehr_id = HierObjectID.new(:value => 'GHI::JKL')
|
10
|
+
time_created = DvDateTime.new(:value => '2009-11-14T19:01:11')
|
11
|
+
ehr_access = stub(ObjectRef, :type => 'VERSIONED_EHR_ACCESS')
|
12
|
+
ehr_status = stub(ObjectRef, :type => 'VERSIONED_EHR_STATUS')
|
13
|
+
contribution1 = stub(ObjectRef, :type => 'CONTRIBUTION')
|
14
|
+
contribution2 = stub(ObjectRef, :type => 'CONTRIBUTION')
|
15
|
+
contributions = [contribution1, contribution2]
|
16
|
+
directory = stub(ObjectRef, :type => 'VERSIONED_FOLDER')
|
17
|
+
composition1 = stub(ObjectRef, :type => 'VERSIONED_COMPOSITION')
|
18
|
+
composition2 = stub(ObjectRef, :type => 'VERSIONED_COMPOSITION')
|
19
|
+
composition3 = stub(ObjectRef, :type => 'VERSIONED_COMPOSITION')
|
20
|
+
compositions = [composition1, composition2, composition3]
|
21
|
+
@ehr = EHR.new(:system_id => system_id,
|
22
|
+
:ehr_id => ehr_id,
|
23
|
+
:time_created => time_created,
|
24
|
+
:contributions => contributions,
|
25
|
+
:ehr_access => ehr_access,
|
26
|
+
:ehr_status => ehr_status,
|
27
|
+
:directory => directory,
|
28
|
+
:compositions => compositions)
|
29
|
+
end
|
30
|
+
|
31
|
+
it 'should be an instance of EHR' do
|
32
|
+
@ehr.should be_an_instance_of EHR
|
33
|
+
end
|
34
|
+
|
35
|
+
it 'system_id should be assigned properly' do
|
36
|
+
@ehr.system_id.value.should == 'ABC::DEF'
|
37
|
+
end
|
38
|
+
|
39
|
+
it 'should raise ArgumentError with nil system_id' do
|
40
|
+
lambda {
|
41
|
+
@ehr.system_id = nil
|
42
|
+
}.should raise_error ArgumentError
|
43
|
+
end
|
44
|
+
|
45
|
+
it 'ehr_id should be assigned properly' do
|
46
|
+
@ehr.ehr_id.value.should == 'GHI::JKL'
|
47
|
+
end
|
48
|
+
|
49
|
+
it 'should raise ArgumentError with nil ehr_id' do
|
50
|
+
lambda {
|
51
|
+
@ehr.ehr_id = nil
|
52
|
+
}.should raise_error ArgumentError
|
53
|
+
end
|
54
|
+
|
55
|
+
it 'time_created should be assigned properly' do
|
56
|
+
@ehr.time_created.value.should == '2009-11-14T19:01:11'
|
57
|
+
end
|
58
|
+
|
59
|
+
it 'should raise ArgumentError with nil time_created' do
|
60
|
+
lambda {
|
61
|
+
@ehr.time_created = nil
|
62
|
+
}.should raise_error ArgumentError
|
63
|
+
end
|
64
|
+
|
65
|
+
it 'contributions should properly assigned' do
|
66
|
+
@ehr.contributions.size.should be_equal 2
|
67
|
+
end
|
68
|
+
|
69
|
+
it 'type contributions should be CONTRIBUTION' do
|
70
|
+
contributions = [stub(ObjectRef, :type => 'PARTY')]
|
71
|
+
lambda {
|
72
|
+
@ehr.contributions = contributions
|
73
|
+
}.should raise_error ArgumentError
|
74
|
+
end
|
75
|
+
|
76
|
+
it 'should raise ArgumentError with nil contributions' do
|
77
|
+
lambda {
|
78
|
+
@ehr.contributions = nil
|
79
|
+
}.should raise_error ArgumentError
|
80
|
+
end
|
81
|
+
|
82
|
+
it 'ehr_access should be assigned properly' do
|
83
|
+
@ehr.ehr_access.type.should == 'VERSIONED_EHR_ACCESS'
|
84
|
+
end
|
85
|
+
|
86
|
+
it 'should raise ArgumentError with nil ehr_access' do
|
87
|
+
lambda {
|
88
|
+
@ehr.ehr_access = nil
|
89
|
+
}.should raise_error ArgumentError
|
90
|
+
end
|
91
|
+
|
92
|
+
it 'should raise ArguemntError with invalid ehr_access type' do
|
93
|
+
lambda {
|
94
|
+
@ehr.ehr_access = stub(ObjectRef, :type => 'VERSIONED_EHR_STATUS')
|
95
|
+
}.should raise_error ArgumentError
|
96
|
+
end
|
97
|
+
|
98
|
+
it 'ehr_status should be assigned properly' do
|
99
|
+
@ehr.ehr_status.type.should == 'VERSIONED_EHR_STATUS'
|
100
|
+
end
|
101
|
+
|
102
|
+
it 'should raise ArgumentError with nil ehr_status' do
|
103
|
+
lambda {
|
104
|
+
@ehr.ehr_status = nil
|
105
|
+
}.should raise_error ArgumentError
|
106
|
+
end
|
107
|
+
|
108
|
+
it 'should raise ArgumentError with invalid ehr_statsu type' do
|
109
|
+
lambda {
|
110
|
+
@ehr.ehr_status = stub(ObjectRef, :type => 'VERSIONED_EHR_ACCESS')
|
111
|
+
}.should raise_error ArgumentError
|
112
|
+
end
|
113
|
+
|
114
|
+
it 'should assigned compositions properly' do
|
115
|
+
@ehr.compositions.size.should be_equal 3
|
116
|
+
end
|
117
|
+
|
118
|
+
it 'should raise ArgumentError with nil compositions' do
|
119
|
+
lambda {
|
120
|
+
@ehr.compositions = nil
|
121
|
+
}.should raise_error ArgumentError
|
122
|
+
end
|
123
|
+
|
124
|
+
it 'should raise ArgumentError with invalid type composition' do
|
125
|
+
lambda {
|
126
|
+
@ehr.compositions = [stub(ObjectRef, :type => 'INVALID_COMPOSITION')]
|
127
|
+
}.should raise_error ArgumentError
|
128
|
+
end
|
129
|
+
|
130
|
+
it 'should assigned directory properly' do
|
131
|
+
@ehr.directory.type.should == 'VERSIONED_FOLDER'
|
132
|
+
end
|
133
|
+
|
134
|
+
it 'should raise ArgumentError with invalid type' do
|
135
|
+
lambda {
|
136
|
+
@ehr.directory = stub(ObjectRef, :type => 'INVALID_FOLDER')
|
137
|
+
}.should raise_error ArgumentError
|
138
|
+
end
|
139
|
+
end
|
@@ -0,0 +1,52 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../../spec_helper'
|
2
|
+
include OpenEHR::RM::EHR
|
3
|
+
include OpenEHR::RM::Common::Generic
|
4
|
+
include OpenEHR::RM::DataTypes::Text
|
5
|
+
include OpenEHR::RM::Support::Identification
|
6
|
+
include OpenEHR::RM::DataStructures::ItemStructure
|
7
|
+
|
8
|
+
describe EHRStatus do
|
9
|
+
before(:each) do
|
10
|
+
external_ref = stub(PartyRef, :namespace => 'ehr status')
|
11
|
+
subject = PartySelf.new(:external_ref => external_ref)
|
12
|
+
other_details = stub(ItemStructure, :archetype_node_id => 'at0005')
|
13
|
+
@ehr_status = EHRStatus.new(:archetype_node_id => 'at0001',
|
14
|
+
:name => DvText.new(:value => 'ehrstatus'),
|
15
|
+
:subject => subject,
|
16
|
+
:is_queryable => false,
|
17
|
+
:is_modifiable => true,
|
18
|
+
:other_details => other_details)
|
19
|
+
end
|
20
|
+
|
21
|
+
it 'should be an instance of EHRStatus' do
|
22
|
+
@ehr_status.should be_an_instance_of EHRStatus
|
23
|
+
end
|
24
|
+
|
25
|
+
it 'subject should be assigned properly' do
|
26
|
+
@ehr_status.subject.external_ref.namespace.should == 'ehr status'
|
27
|
+
end
|
28
|
+
|
29
|
+
it 'should raise ArgumentError with nil subject' do
|
30
|
+
lambda {
|
31
|
+
@ehr_status.subject = nil
|
32
|
+
}.should raise_error ArgumentError
|
33
|
+
end
|
34
|
+
|
35
|
+
it 'is_queryable should be properly assigned' do
|
36
|
+
@ehr_status.is_queryable?.should be_false
|
37
|
+
end
|
38
|
+
|
39
|
+
it 'is_modifiable should be assigned properly' do
|
40
|
+
@ehr_status.is_modifiable?.should be_true
|
41
|
+
end
|
42
|
+
|
43
|
+
it 'other_details should be assigned properly' do
|
44
|
+
@ehr_status.other_details.archetype_node_id.should == 'at0005'
|
45
|
+
end
|
46
|
+
|
47
|
+
it 'should raise ArgumentError when parant is not nil' do
|
48
|
+
lambda {
|
49
|
+
@ehr_status.parent = 'parent'
|
50
|
+
}.should raise_error ArgumentError
|
51
|
+
end
|
52
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../../spec_helper'
|
2
|
+
include OpenEHR::RM::EHR
|
3
|
+
include OpenEHR::RM::Composition
|
4
|
+
include OpenEHR::RM::Common::ChangeControl
|
5
|
+
include OpenEHR::RM::DataTypes::Text
|
6
|
+
include OpenEHR::RM::DataTypes::Quantity::DateTime
|
7
|
+
|
8
|
+
describe VersionedComposition do
|
9
|
+
before(:each) do
|
10
|
+
composition1 = stub(Composition, :archetype_node_id => 'at0002',
|
11
|
+
:is_persistent? => true)
|
12
|
+
version1 = stub(Version, :data => composition1)
|
13
|
+
composition2 = stub(Composition, :archetype_node_id => 'at0002',
|
14
|
+
:is_persistent? => false)
|
15
|
+
version2 = stub(Version, :data => composition2)
|
16
|
+
uid = HierObjectID.new(:value => 'opeehr.jp::350')
|
17
|
+
owner_id = stub(ObjectRef, :type => 'EHR')
|
18
|
+
time_created = DvDateTime.new(:value => '2009-11-16T15:14:33')
|
19
|
+
@versioned_composition =
|
20
|
+
VersionedComposition.new(:uid => uid,
|
21
|
+
:owner_id => owner_id,
|
22
|
+
:time_created => time_created,
|
23
|
+
:all_versions => [version1, version2])
|
24
|
+
end
|
25
|
+
|
26
|
+
it 'should be an instance of VersionedComposition' do
|
27
|
+
@versioned_composition.should be_an_instance_of VersionedComposition
|
28
|
+
end
|
29
|
+
|
30
|
+
it 'is_persistent? should be evaluated by first version' do
|
31
|
+
@versioned_composition.is_persistent?.should be_true
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../../spec_helper'
|
2
|
+
include OpenEHR::RM::Integration
|
3
|
+
include OpenEHR::RM::DataStructures::ItemStructure
|
4
|
+
include OpenEHR::RM::DataTypes::Text
|
5
|
+
|
6
|
+
describe GenericEntry do
|
7
|
+
before(:each) do
|
8
|
+
data = stub(ItemTree, :archetype_node_id => 'at0003')
|
9
|
+
name = DvText.new(:value => 'generic entry')
|
10
|
+
@generic_entry = GenericEntry.new(:archetype_node_id => 'at0001',
|
11
|
+
:name => name,
|
12
|
+
:data => data)
|
13
|
+
end
|
14
|
+
|
15
|
+
it 'should be an instance of GenericEntry' do
|
16
|
+
@generic_entry.should be_an_instance_of GenericEntry
|
17
|
+
end
|
18
|
+
|
19
|
+
it 'data should be assigned properly' do
|
20
|
+
@generic_entry.data.archetype_node_id.should == 'at0003'
|
21
|
+
end
|
22
|
+
|
23
|
+
it 'should raise ArgumentError when data are nil' do
|
24
|
+
lambda {
|
25
|
+
@generic_entry.data = nil
|
26
|
+
}.should raise_error ArgumentError
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
|
31
|
+
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../../../spec_helper'
|
2
|
+
include OpenEHR::RM::Support::Identification
|
3
|
+
|
4
|
+
describe AccessGroupRef do
|
5
|
+
before(:each) do
|
6
|
+
object_id = ObjectID.new(:value => 'deadbeefbabe')
|
7
|
+
@access_group_ref = AccessGroupRef.new(:id => object_id,
|
8
|
+
:type => 'ACCESS_GROUP',
|
9
|
+
:namespace => 'unknown')
|
10
|
+
end
|
11
|
+
|
12
|
+
it 'should be an instance of AccessGroupRef' do
|
13
|
+
@access_group_ref.should be_an_instance_of AccessGroupRef
|
14
|
+
end
|
15
|
+
|
16
|
+
it 'type should be equal ACCESS_GROUP' do
|
17
|
+
@access_group_ref.type.should == 'ACCESS_GROUP'
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,152 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../../../spec_helper'
|
2
|
+
include OpenEHR::RM::Support::Identification
|
3
|
+
|
4
|
+
describe ArchetypeID do
|
5
|
+
before(:each) do
|
6
|
+
@archetype_id = ArchetypeID.new(:value => 'openEHR-EHR-SECTION.physical_examination-prenatal.v2')
|
7
|
+
end
|
8
|
+
|
9
|
+
it 'should be an instance of ArchetypeID' do
|
10
|
+
@archetype_id.should be_an_instance_of ArchetypeID
|
11
|
+
end
|
12
|
+
|
13
|
+
it 's value should be equal
|
14
|
+
openEHR-EHR-SECTION.physical_examination-prenatal.v2' do
|
15
|
+
@archetype_id.value.should ==
|
16
|
+
'openEHR-EHR-SECTION.physical_examination-prenatal.v2'
|
17
|
+
end
|
18
|
+
it 's qualified_rm_entity should be openEHR-EHR-SECTION' do
|
19
|
+
@archetype_id.qualified_rm_entity.should == 'openEHR-EHR-SECTION'
|
20
|
+
end
|
21
|
+
|
22
|
+
it 's rm_originator should be openEHR' do
|
23
|
+
@archetype_id.rm_originator.should == 'openEHR'
|
24
|
+
end
|
25
|
+
|
26
|
+
it 's rm_name should be EHR' do
|
27
|
+
@archetype_id.rm_name.should == 'EHR'
|
28
|
+
end
|
29
|
+
|
30
|
+
it 'rm_entity should be SECTION' do
|
31
|
+
@archetype_id.rm_entity.should == 'SECTION'
|
32
|
+
end
|
33
|
+
|
34
|
+
it 's domain_concept should be physical_examination-prenatal' do
|
35
|
+
@archetype_id.domain_concept.should == 'physical_examination-prenatal'
|
36
|
+
end
|
37
|
+
|
38
|
+
it 's concept name should be physical_examination' do
|
39
|
+
@archetype_id.concept_name.should == 'physical_examination'
|
40
|
+
end
|
41
|
+
|
42
|
+
it 's specialisation should be prenatal' do
|
43
|
+
@archetype_id.specialisation.should == 'prenatal'
|
44
|
+
end
|
45
|
+
|
46
|
+
it 's version_id should == v2' do
|
47
|
+
@archetype_id.version_id.should == 'v2'
|
48
|
+
end
|
49
|
+
|
50
|
+
it 'should raise ArgumentError with wrong id format' do
|
51
|
+
lambda {
|
52
|
+
ArchetypeID.new(:value =>'wrong-format')
|
53
|
+
}.should raise_error ArgumentError
|
54
|
+
end
|
55
|
+
|
56
|
+
it 'should raise ArgumentError with nil concept name' do
|
57
|
+
lambda {
|
58
|
+
@archetype_id.concept_name = nil
|
59
|
+
}.should raise_error ArgumentError
|
60
|
+
end
|
61
|
+
|
62
|
+
it 'should raise ArgumentError with wrong domain concept format' do
|
63
|
+
lambda {
|
64
|
+
@archetype_id.domain_concept = '0123'
|
65
|
+
}.should raise_error ArgumentError
|
66
|
+
end
|
67
|
+
|
68
|
+
it 'should raise ArgumentError with empty rm_entity' do
|
69
|
+
lambda {
|
70
|
+
@archetype_id.rm_entity = ''
|
71
|
+
}.should raise_error ArgumentError
|
72
|
+
end
|
73
|
+
|
74
|
+
it 'should raise ArgumentError with nil rm_entity' do
|
75
|
+
lambda {
|
76
|
+
@archetype_id.rm_entity = nil
|
77
|
+
}.should raise_error ArgumentError
|
78
|
+
end
|
79
|
+
|
80
|
+
it 'should raise ArgumentError with empty rm_originator' do
|
81
|
+
lambda {
|
82
|
+
@archetype_id.rm_originator = ''
|
83
|
+
}.should raise_error ArgumentError
|
84
|
+
end
|
85
|
+
|
86
|
+
it 'should raise ArgumentError with nil rm_originator' do
|
87
|
+
lambda {
|
88
|
+
@archetype_id.rm_originator = nil
|
89
|
+
}.should raise_error ArgumentError
|
90
|
+
end
|
91
|
+
|
92
|
+
it 'should raise ArgumentError with empty specialisation' do
|
93
|
+
lambda {
|
94
|
+
@archetype_id.specialisation = ''
|
95
|
+
}.should raise_error ArgumentError
|
96
|
+
end
|
97
|
+
|
98
|
+
it 'should not raise ArgumentError with nil specialisation' do
|
99
|
+
lambda {
|
100
|
+
@archetype_id.specialisation = nil
|
101
|
+
}.should_not raise_error ArgumentError
|
102
|
+
end
|
103
|
+
|
104
|
+
describe 'another constructor' do
|
105
|
+
before(:each) do
|
106
|
+
@archetype_id = ArchetypeID.new(:rm_originator => 'openEHR',
|
107
|
+
:rm_name => 'EHR',
|
108
|
+
:rm_entity => 'EVALUATION',
|
109
|
+
:concept_name => 'clinical_synopsis',
|
110
|
+
:version_id => 'v1')
|
111
|
+
end
|
112
|
+
|
113
|
+
it 'should be an instance of ArchetypeID' do
|
114
|
+
@archetype_id.should be_an_instance_of ArchetypeID
|
115
|
+
end
|
116
|
+
|
117
|
+
it 'domain_concept should be clinical_synopsis' do
|
118
|
+
@archetype_id.domain_concept.should == 'clinical_synopsis'
|
119
|
+
end
|
120
|
+
end
|
121
|
+
|
122
|
+
describe 'domain concept' do
|
123
|
+
before(:each) do
|
124
|
+
@archetype_id.domain_concept = 'progress_note-naturopathy'
|
125
|
+
end
|
126
|
+
|
127
|
+
it 'concept_name should be progress note' do
|
128
|
+
@archetype_id.concept_name.should == 'progress_note'
|
129
|
+
end
|
130
|
+
|
131
|
+
it 'specialisation should be naturopathy' do
|
132
|
+
@archetype_id.specialisation === 'naturopathy'
|
133
|
+
end
|
134
|
+
|
135
|
+
it 'should raise ArgumentError empty domain concept' do
|
136
|
+
lambda {
|
137
|
+
@archetype_id.domain_concept = ''
|
138
|
+
}.should raise_error ArgumentError
|
139
|
+
end
|
140
|
+
|
141
|
+
it 'should raise ArgumentError nil domain concept' do
|
142
|
+
lambda {
|
143
|
+
@archetype_id.domain_concept = nil
|
144
|
+
}.should raise_error ArgumentError
|
145
|
+
end
|
146
|
+
|
147
|
+
it 's specialisation may be empty' do
|
148
|
+
@archetype_id.domain_concept = 'clinical_synopsis'
|
149
|
+
@archetype_id.concept_name.should == 'clinical_synopsis'
|
150
|
+
end
|
151
|
+
end
|
152
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../../../spec_helper'
|
2
|
+
include OpenEHR::RM::Support::Identification
|
3
|
+
|
4
|
+
describe GenericID do
|
5
|
+
before(:each) do
|
6
|
+
@generic_id = GenericID.new(:value => '791-0245',
|
7
|
+
:scheme => 'ZIP')
|
8
|
+
end
|
9
|
+
|
10
|
+
it 'should be an instance of GenericID' do
|
11
|
+
@generic_id.should be_an_instance_of GenericID
|
12
|
+
end
|
13
|
+
|
14
|
+
it 's value should be 791-0245' do
|
15
|
+
@generic_id.value.should == '791-0245'
|
16
|
+
end
|
17
|
+
|
18
|
+
it 's scheme should be ZIP' do
|
19
|
+
@generic_id.scheme.should == 'ZIP'
|
20
|
+
end
|
21
|
+
|
22
|
+
it 'should raise ArgumentError with nil scheme' do
|
23
|
+
lambda {
|
24
|
+
@generic_id.scheme = nil
|
25
|
+
}.should raise_error ArgumentError
|
26
|
+
end
|
27
|
+
|
28
|
+
it 'should raise ArgumentError with empty scheme' do
|
29
|
+
lambda {
|
30
|
+
@generic_id.scheme = ''
|
31
|
+
}.should raise_error ArgumentError
|
32
|
+
end
|
33
|
+
end
|