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,37 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../../../../spec_helper'
|
2
|
+
#require File.dirname(__FILE__) + '/shared_examples_spec'
|
3
|
+
include OpenEHR::RM::DataStructures::ItemStructure
|
4
|
+
include OpenEHR::RM::Composition::Content::Entry
|
5
|
+
include OpenEHR::RM::DataTypes::Text
|
6
|
+
|
7
|
+
describe Evaluation do
|
8
|
+
let(:name) {DvText.new(:value => 'entry package')}
|
9
|
+
let(:language) { double('language',:code_string => 'ja')}
|
10
|
+
let(:encoding) { double('encoding', :code_string => 'UTF-8')}
|
11
|
+
let(:subject) { double('PartyProxy')}
|
12
|
+
# it_should_behave_like 'entry'
|
13
|
+
|
14
|
+
before(:each) do
|
15
|
+
data = stub(ItemStructure, :archetype_node_id => 'at0002')
|
16
|
+
@evaluation = Evaluation.new(:archetype_node_id => 'at0001',
|
17
|
+
:name => name,
|
18
|
+
:language => language,
|
19
|
+
:encoding => encoding,
|
20
|
+
:subject => subject,
|
21
|
+
:data => data)
|
22
|
+
end
|
23
|
+
|
24
|
+
it 'should be an instance of Evaluation' do
|
25
|
+
@evaluation.should be_an_instance_of Evaluation
|
26
|
+
end
|
27
|
+
|
28
|
+
it 'data should be properly assigned' do
|
29
|
+
@evaluation.data.archetype_node_id.should == 'at0002'
|
30
|
+
end
|
31
|
+
|
32
|
+
it 'should raise ArgumentError when nil assigned to data' do
|
33
|
+
lambda {
|
34
|
+
@evaluation.data = nil
|
35
|
+
}.should raise_error ArgumentError
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,51 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../../../../spec_helper'
|
2
|
+
include OpenEHR::RM::DataStructures::ItemStructure
|
3
|
+
include OpenEHR::RM::Composition::Content::Entry
|
4
|
+
include OpenEHR::RM::Support::Identification
|
5
|
+
|
6
|
+
describe InstructionDetails do
|
7
|
+
before(:each) do
|
8
|
+
instruction_id = stub(LocatableRef, :path => '[instruction]/[test]')
|
9
|
+
wf_details = stub(ItemStructure, :archetype_node_id => 'at0004')
|
10
|
+
@instruction_details =
|
11
|
+
InstructionDetails.new(:instruction_id => instruction_id,
|
12
|
+
:activity_id => 'at0003',
|
13
|
+
:wf_details => wf_details)
|
14
|
+
end
|
15
|
+
|
16
|
+
it 'should be an instance of InstructionDetails' do
|
17
|
+
@instruction_details.should be_an_instance_of InstructionDetails
|
18
|
+
end
|
19
|
+
|
20
|
+
it 'instruction_id should be assigned properly' do
|
21
|
+
@instruction_details.instruction_id.path.should ==
|
22
|
+
'[instruction]/[test]'
|
23
|
+
end
|
24
|
+
|
25
|
+
it 'should raise ArgumentError with nil instruction_id' do
|
26
|
+
lambda {
|
27
|
+
@instruction_details.instruction_id = nil
|
28
|
+
}.should raise_error ArgumentError
|
29
|
+
end
|
30
|
+
|
31
|
+
it 'activity_id should be assigned properly' do
|
32
|
+
@instruction_details.activity_id.should == 'at0003'
|
33
|
+
end
|
34
|
+
|
35
|
+
it 'should raise ArgumentError with nil activity_id' do
|
36
|
+
lambda {
|
37
|
+
@instruction_details.activity_id = nil
|
38
|
+
}.should raise_error ArgumentError
|
39
|
+
end
|
40
|
+
|
41
|
+
it 'should raise ArgumentError with empty activity_id' do
|
42
|
+
lambda {
|
43
|
+
@instruction_details.activity_id = ''
|
44
|
+
}.should raise_error ArgumentError
|
45
|
+
end
|
46
|
+
|
47
|
+
it 'wf_details should be assigned properly' do
|
48
|
+
@instruction_details.wf_details.archetype_node_id.should ==
|
49
|
+
'at0004'
|
50
|
+
end
|
51
|
+
end
|
@@ -0,0 +1,62 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../../../../spec_helper'
|
2
|
+
#require File.dirname(__FILE__) + '/shared_examples_spec'
|
3
|
+
include OpenEHR::RM::Composition::Content::Entry
|
4
|
+
include OpenEHR::RM::DataTypes::Text
|
5
|
+
include OpenEHR::RM::DataTypes::Quantity::DateTime
|
6
|
+
include OpenEHR::RM::DataTypes::Encapsulated
|
7
|
+
|
8
|
+
describe Instruction do
|
9
|
+
# it_should_behave_like 'entry'
|
10
|
+
let(:name) {DvText.new(:value => 'entry package')}
|
11
|
+
let(:language) { double('language',:code_string => 'ja')}
|
12
|
+
let(:encoding) { double('encoding', :code_string => 'UTF-8')}
|
13
|
+
let(:subject) { double('PartyProxy')}
|
14
|
+
|
15
|
+
before(:each) do
|
16
|
+
narrative = DvText.new(:value => 'instruction test')
|
17
|
+
activities = stub(Array, :size => 5, :empty? => false)
|
18
|
+
expiry_time = DvDateTime.new(:value => '2009-11-18T20:58:34')
|
19
|
+
wf_definition = stub(DvParsable, :value => 'behavior driven')
|
20
|
+
@instruction= Instruction.new(:archetype_node_id => 'at0001',
|
21
|
+
:name => name,
|
22
|
+
:language => language,
|
23
|
+
:encoding => encoding,
|
24
|
+
:subject => subject,
|
25
|
+
:narrative => narrative,
|
26
|
+
:activities => activities,
|
27
|
+
:expiry_time => expiry_time,
|
28
|
+
:wf_definition => wf_definition)
|
29
|
+
end
|
30
|
+
|
31
|
+
it 'should be an instance of Instruction' do
|
32
|
+
@instruction.should be_an_instance_of Instruction
|
33
|
+
end
|
34
|
+
|
35
|
+
it 'narrative should be assigned properly' do
|
36
|
+
@instruction.narrative.value.should == 'instruction test'
|
37
|
+
end
|
38
|
+
|
39
|
+
it 'should raise ArgumentError when narrative is assined with nil' do
|
40
|
+
lambda {
|
41
|
+
@instruction.narrative = nil
|
42
|
+
}.should raise_error ArgumentError
|
43
|
+
end
|
44
|
+
|
45
|
+
it 'activities should be assigned properly' do
|
46
|
+
@instruction.activities.size.should be_equal 5
|
47
|
+
end
|
48
|
+
|
49
|
+
it 'should raise ArgumentError with empty activities' do
|
50
|
+
lambda {
|
51
|
+
@instruction.activities = [ ]
|
52
|
+
}.should raise_error ArgumentError
|
53
|
+
end
|
54
|
+
|
55
|
+
it 'expiry_time should be assigned properly' do
|
56
|
+
@instruction.expiry_time.value.should == '2009-11-18T20:58:34'
|
57
|
+
end
|
58
|
+
|
59
|
+
it 'wf_definition should be assigned properly' do
|
60
|
+
@instruction.wf_definition.value.should == 'behavior driven'
|
61
|
+
end
|
62
|
+
end
|
@@ -0,0 +1,46 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../../../../spec_helper'
|
2
|
+
include OpenEHR::RM::Composition::Content::Entry
|
3
|
+
include OpenEHR::RM::DataTypes::Text
|
4
|
+
|
5
|
+
describe IsmTransition do
|
6
|
+
before(:each) do
|
7
|
+
current_state = stub(DvCodedText, :value => 'planned')
|
8
|
+
transition = stub(DvCodedText, :value => 'scheduled')
|
9
|
+
careflow_step = stub(DvCodedText, :value => 'completed')
|
10
|
+
@ism_transition = IsmTransition.new(:current_state => current_state,
|
11
|
+
:transition => transition,
|
12
|
+
:careflow_step => careflow_step)
|
13
|
+
end
|
14
|
+
|
15
|
+
it 'should be an instance of IsmTransition' do
|
16
|
+
@ism_transition.should be_an_instance_of IsmTransition
|
17
|
+
end
|
18
|
+
|
19
|
+
it 'current_status should be assigned properly' do
|
20
|
+
@ism_transition.current_state.value.should == 'planned'
|
21
|
+
end
|
22
|
+
|
23
|
+
it 'should raise ArgumentError with nil current state' do
|
24
|
+
lambda {
|
25
|
+
@ism_transition.current_state = nil
|
26
|
+
}.should raise_error ArgumentError
|
27
|
+
end
|
28
|
+
|
29
|
+
it 'should raise ArgumentError when current_state has invalid code'
|
30
|
+
|
31
|
+
it 'transition should be assined properly' do
|
32
|
+
@ism_transition.transition.value.should == 'scheduled'
|
33
|
+
end
|
34
|
+
|
35
|
+
it 'should raise ArgumentError with nil transition' do
|
36
|
+
lambda {
|
37
|
+
@ism_transition.transition = nil
|
38
|
+
}.should raise_error ArgumentError
|
39
|
+
end
|
40
|
+
|
41
|
+
it 'should raise ArugmentError with invalid transition code'
|
42
|
+
|
43
|
+
it 'careflow_step should be assigned properly' do
|
44
|
+
@ism_transition.careflow_step.value.should == 'completed'
|
45
|
+
end
|
46
|
+
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
$:.unshift(File.dirname(__FILE__)) unless
|
2
|
+
$:.include?(File.dirname(__FILE__)) || $:.include?(File.expand_path(File.dirname(__FILE__)))
|
3
|
+
require File.dirname(__FILE__) + '/../../../../../../spec_helper'
|
4
|
+
#require File.dirname(__FILE__) + '/shared_examples_spec'
|
5
|
+
include OpenEHR::RM::DataStructures::History
|
6
|
+
include OpenEHR::RM::Composition::Content::Entry
|
7
|
+
include OpenEHR::RM::DataTypes::Text
|
8
|
+
|
9
|
+
describe Observation do
|
10
|
+
# it_should_behave_like 'entry'
|
11
|
+
let(:name) {DvText.new(:value => 'entry package')}
|
12
|
+
let(:language) { double('language',:code_string => 'ja')}
|
13
|
+
let(:encoding) { double('encoding', :code_string => 'UTF-8')}
|
14
|
+
let(:subject) { double('PartyProxy')}
|
15
|
+
|
16
|
+
before(:each) do
|
17
|
+
data = stub(History, :archetype_node_id => 'at0002')
|
18
|
+
state = stub(History, :archetype_node_id => 'at0003')
|
19
|
+
@observation = Observation.new(:archetype_node_id => 'at0001',
|
20
|
+
:name => name,
|
21
|
+
:language => language,
|
22
|
+
:encoding => encoding,
|
23
|
+
:subject => subject,
|
24
|
+
:data => data,
|
25
|
+
:state => state)
|
26
|
+
end
|
27
|
+
|
28
|
+
it 'should be an instance of Observation' do
|
29
|
+
@observation.should be_an_instance_of Observation
|
30
|
+
end
|
31
|
+
|
32
|
+
it 'data should be assigned properly' do
|
33
|
+
@observation.data.archetype_node_id.should == 'at0002'
|
34
|
+
end
|
35
|
+
|
36
|
+
it 'should raise ArgumentError when nil assigned to data' do
|
37
|
+
lambda {
|
38
|
+
@observation.data = nil
|
39
|
+
}.should raise_error ArgumentError
|
40
|
+
end
|
41
|
+
|
42
|
+
it 'state should be assigned properly' do
|
43
|
+
@observation.state.archetype_node_id.should == 'at0003'
|
44
|
+
end
|
45
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../../../../spec_helper'
|
2
|
+
include OpenEHR::RM::Composition::Content::Navigation
|
3
|
+
include OpenEHR::RM::DataTypes::Text
|
4
|
+
|
5
|
+
describe Section do
|
6
|
+
before(:each) do
|
7
|
+
items = stub(Array, :empty? => false, :size => 10)
|
8
|
+
@section = Section.new(:archetype_node_id => 'at0001',
|
9
|
+
:name => DvText.new(:value => 'section'),
|
10
|
+
:items => items)
|
11
|
+
end
|
12
|
+
|
13
|
+
it 'should be an instance of Section' do
|
14
|
+
@section.should be_an_instance_of Section
|
15
|
+
end
|
16
|
+
|
17
|
+
it 'items should be assigned properly' do
|
18
|
+
@section.items.size.should be_equal 10
|
19
|
+
end
|
20
|
+
|
21
|
+
it 'empty items should raise ArgumentError' do
|
22
|
+
lambda {
|
23
|
+
@section.items = [ ]
|
24
|
+
}.should raise_error ArgumentError
|
25
|
+
end
|
26
|
+
|
27
|
+
it 'nil items should not raise ArgumentError' do
|
28
|
+
lambda {
|
29
|
+
@section.items = nil
|
30
|
+
}.should_not raise_error ArgumentError
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,88 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../../spec_helper'
|
2
|
+
include OpenEHR::RM::Composition
|
3
|
+
include OpenEHR::RM::DataTypes::Quantity::DateTime
|
4
|
+
include OpenEHR::RM::DataTypes::Text
|
5
|
+
include OpenEHR::RM::DataStructures::ItemStructure
|
6
|
+
|
7
|
+
describe EventContext do
|
8
|
+
before(:each) do
|
9
|
+
start = DvDateTime.new(:value => '2009-11-13T20:46:57')
|
10
|
+
setting_group = stub(CodePhrase, :code_string => '225')
|
11
|
+
setting = stub(DvCodedText, :defining_code => setting_group)
|
12
|
+
ending = DvDateTime.new(:value => '2010-10-14T09:00:00')
|
13
|
+
participations = stub(Array, :size => 5, :empty? => false)
|
14
|
+
other_context = stub(ItemStructure, :archetype_node_id => 'at0002')
|
15
|
+
@event_context = EventContext.new(:start_time => start,
|
16
|
+
:end_time => ending,
|
17
|
+
:setting => setting,
|
18
|
+
:participations => participations,
|
19
|
+
:location => 'ehime',
|
20
|
+
:other_context => other_context)
|
21
|
+
end
|
22
|
+
|
23
|
+
it 'should be an instance of EventContext' do
|
24
|
+
@event_context.should be_an_instance_of EventContext
|
25
|
+
end
|
26
|
+
|
27
|
+
it 'start_time should be assigned properly' do
|
28
|
+
@event_context.start_time.value.should == '2009-11-13T20:46:57'
|
29
|
+
end
|
30
|
+
|
31
|
+
it 'should raise ArgumentError with nil start_time' do
|
32
|
+
lambda {
|
33
|
+
@event_context.start_time = nil
|
34
|
+
}.should raise_error ArgumentError
|
35
|
+
end
|
36
|
+
|
37
|
+
it 'setting should be assigned properly' do
|
38
|
+
@event_context.setting.defining_code.code_string.should == '225'
|
39
|
+
end
|
40
|
+
|
41
|
+
it 'should raise ArgumentError with nil setting' do
|
42
|
+
lambda {
|
43
|
+
@event_context.setting = nil
|
44
|
+
}.should raise_error ArgumentError
|
45
|
+
end
|
46
|
+
|
47
|
+
it 'should vaildate setting code with Terminology service'
|
48
|
+
|
49
|
+
it 'end_time should be assigned properly' do
|
50
|
+
@event_context.end_time.value.should == '2010-10-14T09:00:00'
|
51
|
+
end
|
52
|
+
|
53
|
+
it 'participations should be properly assigned' do
|
54
|
+
@event_context.participations.size.should be_equal 5
|
55
|
+
end
|
56
|
+
|
57
|
+
it 'should raise ArgumentError with empty participations' do
|
58
|
+
lambda {
|
59
|
+
@event_context.participations = [ ]
|
60
|
+
}.should raise_error ArgumentError
|
61
|
+
end
|
62
|
+
|
63
|
+
it 'should not raise ArgumentError with nil participations' do
|
64
|
+
lambda {
|
65
|
+
@event_context.participations = nil
|
66
|
+
}.should_not raise_error ArgumentError
|
67
|
+
end
|
68
|
+
|
69
|
+
it 'location should be assigned properly' do
|
70
|
+
@event_context.location.should == 'ehime'
|
71
|
+
end
|
72
|
+
|
73
|
+
it 'should raise ArgumentError with empty location' do
|
74
|
+
lambda {
|
75
|
+
@event_context.location = ''
|
76
|
+
}.should raise_error ArgumentError
|
77
|
+
end
|
78
|
+
|
79
|
+
it 'should not raise ArgumentError with nil location' do
|
80
|
+
lambda {
|
81
|
+
@event_context.location = nil
|
82
|
+
}.should_not raise_error ArgumentError
|
83
|
+
end
|
84
|
+
|
85
|
+
it 'other_context should be assigned properly' do
|
86
|
+
@event_context.other_context.archetype_node_id.should == 'at0002'
|
87
|
+
end
|
88
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../../spec_helper'
|
2
|
+
include OpenEHR::RM::DataStructures
|
3
|
+
include OpenEHR::RM::DataTypes::Text
|
4
|
+
|
5
|
+
describe DataStructure do
|
6
|
+
before(:each) do
|
7
|
+
name = DvText.new(:value => 'test')
|
8
|
+
@data_structure = DataStructure.new(:archetype_node_id => 'at0001',
|
9
|
+
:name => name)
|
10
|
+
end
|
11
|
+
|
12
|
+
it 'should be an instance of DataStructure' do
|
13
|
+
@data_structure.should be_an_instance_of DataStructure
|
14
|
+
end
|
15
|
+
|
16
|
+
it 'should raise NotImplementedError' do
|
17
|
+
lambda {
|
18
|
+
@data_structure.as_hierarchy
|
19
|
+
}.should raise_error NotImplementedError
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../../../spec_helper'
|
2
|
+
include OpenEHR::RM::DataStructures::History
|
3
|
+
include OpenEHR::RM::DataStructures::ItemStructure
|
4
|
+
include OpenEHR::RM::DataTypes::Text
|
5
|
+
include OpenEHR::RM::DataTypes::Quantity::DateTime
|
6
|
+
|
7
|
+
describe Event do
|
8
|
+
before(:each) do
|
9
|
+
time = DvDateTime.new(:value => '2009-11-12T10:19:33')
|
10
|
+
state = stub(ItemStructure, :archetype_node_id => 'at0002')
|
11
|
+
origin = DvDateTime.new(:value => '2009-11-11T10:20:40')
|
12
|
+
parent = stub(History, :origin => origin)
|
13
|
+
@event = Event.new(:archetype_node_id => 'at0001',
|
14
|
+
:name => DvText.new(:value => 'Event test'),
|
15
|
+
:time => time,
|
16
|
+
:data => 'data',
|
17
|
+
:state => state,
|
18
|
+
:parent => parent)
|
19
|
+
end
|
20
|
+
|
21
|
+
it 'should be an instance of Event' do
|
22
|
+
@event.should be_an_instance_of Event
|
23
|
+
end
|
24
|
+
|
25
|
+
it 'data should be assigned properly' do
|
26
|
+
@event.data.should == 'data'
|
27
|
+
end
|
28
|
+
|
29
|
+
it 'time should be assigned properly' do
|
30
|
+
@event.time.value.should == '2009-11-12T10:19:33'
|
31
|
+
end
|
32
|
+
|
33
|
+
it 'state should be assigned properly' do
|
34
|
+
@event.state.archetype_node_id.should == 'at0002'
|
35
|
+
end
|
36
|
+
|
37
|
+
it 'parent should be properly assigned' do
|
38
|
+
@event.parent.origin.value.should == '2009-11-11T10:20:40'
|
39
|
+
end
|
40
|
+
|
41
|
+
it 'offset should be diff of parent.origin from time' do
|
42
|
+
@event.offset.value.should == 'P0Y0M0W0DT23H58M53S'
|
43
|
+
end
|
44
|
+
end
|
@@ -0,0 +1,67 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../../../spec_helper'
|
2
|
+
include OpenEHR::RM::DataStructures::History
|
3
|
+
include OpenEHR::RM::DataStructures::ItemStructure
|
4
|
+
include OpenEHR::RM::DataTypes::Text
|
5
|
+
include OpenEHR::RM::DataTypes::Quantity::DateTime
|
6
|
+
|
7
|
+
describe History do
|
8
|
+
before(:each) do
|
9
|
+
origin = DvDateTime.new(:value => '2009-11-01T00:00:00')
|
10
|
+
period = DvDuration.new(:value => 'P1Y2M3W4D')
|
11
|
+
duration = DvDuration.new(:value => 'P0Y0M0W6D')
|
12
|
+
events = [stub(Event, :archetype_node_id => 'at0002')]
|
13
|
+
summary = stub(ItemStructure, :archetype_node_id => 'at0003')
|
14
|
+
@history = History.new(:archetype_node_id => 'at0001',
|
15
|
+
:name => DvText.new(:value => 'history test'),
|
16
|
+
:origin => origin,
|
17
|
+
:period => period,
|
18
|
+
:duration => duration,
|
19
|
+
:events => events,
|
20
|
+
:summary => summary)
|
21
|
+
end
|
22
|
+
|
23
|
+
it 'should be an instance of History' do
|
24
|
+
@history.should be_an_instance_of History
|
25
|
+
end
|
26
|
+
|
27
|
+
it 'origin should be properly assigned' do
|
28
|
+
@history.origin.value.should == '2009-11-01T00:00:00'
|
29
|
+
end
|
30
|
+
|
31
|
+
it 'should raise ArgumentError with nil origin' do
|
32
|
+
lambda {
|
33
|
+
@history.origin = nil
|
34
|
+
}.should raise_error ArgumentError
|
35
|
+
end
|
36
|
+
|
37
|
+
it 'period should be properly assigned' do
|
38
|
+
@history.period.value.should == 'P1Y2M3W4D'
|
39
|
+
end
|
40
|
+
|
41
|
+
it 'duration should be properly assigned' do
|
42
|
+
@history.duration.value.should == 'P0Y0M0W6D'
|
43
|
+
end
|
44
|
+
|
45
|
+
it 'is_periodic? should be true when period is not nil' do
|
46
|
+
@history.is_periodic?.should be_true
|
47
|
+
end
|
48
|
+
|
49
|
+
it 'is_periodic? should be false when period is nil' do
|
50
|
+
@history.period = nil
|
51
|
+
@history.is_periodic?.should be_false
|
52
|
+
end
|
53
|
+
|
54
|
+
it 'events should be properly assigned' do
|
55
|
+
@history.events[0].archetype_node_id.should == 'at0002'
|
56
|
+
end
|
57
|
+
|
58
|
+
it 'empty events should raise ArgumentError' do
|
59
|
+
lambda {
|
60
|
+
@history.events = []
|
61
|
+
}.should raise_error ArgumentError
|
62
|
+
end
|
63
|
+
|
64
|
+
it 'summary should be properly assigned' do
|
65
|
+
@history.summary.archetype_node_id.should == 'at0003'
|
66
|
+
end
|
67
|
+
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../../../spec_helper'
|
2
|
+
include OpenEHR::RM::DataStructures::History
|
3
|
+
include OpenEHR::RM::DataStructures::ItemStructure
|
4
|
+
include OpenEHR::RM::DataTypes::Text
|
5
|
+
include OpenEHR::RM::DataTypes::Quantity::DateTime
|
6
|
+
|
7
|
+
describe IntervalEvent do
|
8
|
+
before(:each) do
|
9
|
+
time = DvDateTime.new(:value => '2009-11-12T10:19:33')
|
10
|
+
state = stub(ItemStructure, :archetype_node_id => 'at0002')
|
11
|
+
origin = DvDateTime.new(:value => '2009-11-11T10:20:40')
|
12
|
+
parent = stub(History, :origin => origin)
|
13
|
+
math_function = stub(DvCodedText, :value => 'mean')
|
14
|
+
width = DvDuration.new(:value => 'P0Y2M1W3DT5H7M3S')
|
15
|
+
@interval_event = IntervalEvent.new(:archetype_node_id => 'at0001',
|
16
|
+
:name => DvText.new(:value => 'Event test'),
|
17
|
+
:time => time,
|
18
|
+
:data => 'data',
|
19
|
+
:width => width,
|
20
|
+
:math_function => math_function,
|
21
|
+
:sample_count => 1234)
|
22
|
+
end
|
23
|
+
|
24
|
+
it 'should be an instance of IntervalEvent' do
|
25
|
+
@interval_event.should be_an_instance_of IntervalEvent
|
26
|
+
end
|
27
|
+
|
28
|
+
it 'width should be assigned properly' do
|
29
|
+
@interval_event.width.value.should == 'P0Y2M1W3DT5H7M3S'
|
30
|
+
end
|
31
|
+
|
32
|
+
it 'math_function should be assigned properly' do
|
33
|
+
@interval_event.math_function.value.should == 'mean'
|
34
|
+
end
|
35
|
+
|
36
|
+
it 'sample_count should be assigned properly' do
|
37
|
+
@interval_event.sample_count.should be_equal 1234
|
38
|
+
end
|
39
|
+
|
40
|
+
it 'should subtract time for interval start time' do
|
41
|
+
@interval_event.interval_start_time.value.should == '2009-09-09T05:12:30+09:00'
|
42
|
+
end
|
43
|
+
end
|
@@ -0,0 +1,53 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../../../spec_helper'
|
2
|
+
include OpenEHR::RM::DataStructures::ItemStructure
|
3
|
+
include OpenEHR::RM::DataStructures::ItemStructure::Representation
|
4
|
+
include OpenEHR::RM::DataTypes::Text
|
5
|
+
|
6
|
+
describe ItemList do
|
7
|
+
before(:each) do
|
8
|
+
items = %w{one two three}.collect do |n|
|
9
|
+
Element.new(:name => DvText.new(:value => n),
|
10
|
+
:archetype_node_id => 'test')
|
11
|
+
end
|
12
|
+
item_list_name = DvText.new(:value => 'item list')
|
13
|
+
@item_list = ItemList.new(:name => item_list_name,
|
14
|
+
:archetype_node_id => 'test',
|
15
|
+
:items => items)
|
16
|
+
|
17
|
+
end
|
18
|
+
|
19
|
+
it 'should be instance of ItemList' do
|
20
|
+
@item_list.should be_an_instance_of ItemList
|
21
|
+
end
|
22
|
+
|
23
|
+
it 'count should be 3' do
|
24
|
+
@item_list.item_count.should be_equal 3
|
25
|
+
end
|
26
|
+
|
27
|
+
it 'count should be 0' do
|
28
|
+
@item_list.items = nil
|
29
|
+
@item_list.item_count.should be_equal 0
|
30
|
+
end
|
31
|
+
|
32
|
+
|
33
|
+
it 'retrieve the names of all items' do
|
34
|
+
@item_list.names.should == %w{one two three}.collect{|n|
|
35
|
+
DvText.new(:value => n)}
|
36
|
+
end
|
37
|
+
|
38
|
+
it 'should return the item with a name' do
|
39
|
+
@item_list.named_item('one').name.value.should == 'one'
|
40
|
+
end
|
41
|
+
|
42
|
+
it 'should return nil when item is not exist' do
|
43
|
+
@item_list.named_item('four').should be_nil
|
44
|
+
end
|
45
|
+
|
46
|
+
it 'retrieve the ith item with number' do
|
47
|
+
@item_list.ith_item(1).name.value.should == 'one'
|
48
|
+
end
|
49
|
+
|
50
|
+
it 'generate cluster of items' do
|
51
|
+
@item_list.as_hierarchy.name.value.should == 'item list'
|
52
|
+
end
|
53
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../../../spec_helper'
|
2
|
+
|
3
|
+
include OpenEHR::RM::DataStructures::ItemStructure
|
4
|
+
include OpenEHR::RM::DataStructures::ItemStructure::Representation
|
5
|
+
include OpenEHR::RM::DataTypes::Text
|
6
|
+
|
7
|
+
describe ItemSingle do
|
8
|
+
before(:each) do
|
9
|
+
element = stub(Element, :archetype_node_id => 'at0002')
|
10
|
+
item_single_name = DvText.new(:value => 'item single')
|
11
|
+
@item_single = ItemSingle.new(:name => item_single_name,
|
12
|
+
:archetype_node_id => 'at0001',
|
13
|
+
:item => element)
|
14
|
+
end
|
15
|
+
|
16
|
+
it 'should be an instance of ItemSingle' do
|
17
|
+
@item_single.should be_an_instance_of ItemSingle
|
18
|
+
end
|
19
|
+
|
20
|
+
it 'should raise ArgumentError with nil item' do
|
21
|
+
lambda {
|
22
|
+
@item_single.item = nil
|
23
|
+
}.should raise_error ArgumentError
|
24
|
+
end
|
25
|
+
|
26
|
+
it 'should return as_hierarchy' do
|
27
|
+
@item_single.as_hierarchy.archetype_node_id.should == 'at0002'
|
28
|
+
end
|
29
|
+
end
|