open_ehr 0.9.5 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/History.txt +3 -0
- data/README.rdoc +35 -25
- data/VERSION +1 -1
- data/lib/open_ehr.rb +2 -3
- data/lib/open_ehr/am.rb +1 -2
- data/lib/open_ehr/am/openehr_profile.rb +0 -1
- data/lib/open_ehr/am/openehr_profile/data_types.rb +2 -1
- data/lib/open_ehr/am/openehr_profile/data_types/basic.rb +88 -1
- data/lib/open_ehr/am/openehr_profile/data_types/quantity.rb +51 -2
- data/lib/open_ehr/am/openehr_profile/data_types/text.rb +2 -2
- data/lib/open_ehr/assumed_library_types.rb +5 -0
- data/lib/open_ehr/parser/adl.rb +5 -5
- data/lib/open_ehr/parser/adl_grammar.tt +13 -16
- data/lib/open_ehr/parser/adl_parser.rb +13 -5
- data/lib/open_ehr/parser/cadl_grammar.tt +247 -31
- data/lib/open_ehr/parser/cadl_node.rb +25 -0
- data/lib/open_ehr/parser/dadl_grammar.tt +6 -6
- data/lib/open_ehr/parser/shared_token_grammar.tt +14 -5
- data/lib/open_ehr/rm.rb +1 -2
- data/lib/open_ehr/rm/composition/content/entry.rb +8 -1
- data/lib/open_ehr/rm/data_types.rb +2 -2
- data/lib/open_ehr/rm/data_types/quantity.rb +1 -2
- data/lib/open_ehr/rm/data_types/quantity/date_time.rb +8 -5
- data/lib/open_ehr/rm/data_types/text.rb +7 -6
- data/lib/open_ehr/rm/support/identification.rb +13 -9
- data/open_ehr.gemspec +34 -4
- data/spec/lib/open_ehr/am/openehr_profile/data_types/basic/c_dv_state_spec.rb +34 -0
- data/spec/lib/open_ehr/am/openehr_profile/data_types/basic/non_terminal_state_spec.rb +36 -0
- data/spec/lib/open_ehr/am/openehr_profile/data_types/basic/state_machine_spec.rb +34 -0
- data/spec/lib/open_ehr/am/openehr_profile/data_types/basic/state_spec.rb +26 -0
- data/spec/lib/open_ehr/am/openehr_profile/data_types/basic/terminal_state_spec.rb +18 -0
- data/spec/lib/open_ehr/am/openehr_profile/data_types/basic/transition_spec.rb +62 -0
- data/spec/lib/open_ehr/am/openehr_profile/data_types/quantity/c_dv_ordinal_spec.rb +41 -0
- data/spec/lib/open_ehr/am/openehr_profile/data_types/quantity/c_dv_quantity_spec.rb +50 -0
- data/spec/lib/open_ehr/am/openehr_profile/data_types/quantity/c_quantity_item_spec.rb +46 -0
- data/spec/lib/open_ehr/am/openehr_profile/data_types/text/c_code_phrase_spec.rb +0 -1
- data/spec/lib/open_ehr/assumed_library_types/interval_spec.rb +5 -0
- data/spec/lib/open_ehr/parser/adl14/adl-test-composition.dv_coded_text.test.adl +1 -1
- data/spec/lib/open_ehr/parser/adl14/adl-test-entry.archetype_desc_missing_purpose.test.adl +1 -1
- data/spec/lib/open_ehr/parser/adl14/adl-test-entry.c_dv_ordinal.test.adl +1 -1
- data/spec/lib/open_ehr/parser/adl14/adl-test-entry.c_dv_quantity_empty.test.adl +1 -1
- data/spec/lib/open_ehr/parser/adl14/adl-test-entry.c_dv_quantity_full.test.adl +1 -1
- data/spec/lib/open_ehr/parser/adl14/adl-test-entry.c_dv_quantity_full2.test.adl +1 -1
- data/spec/lib/open_ehr/parser/adl14/adl-test-entry.c_dv_quantity_full3.test.adl +1 -1
- data/spec/lib/open_ehr/parser/adl14/adl-test-entry.c_dv_quantity_item_units_only.test.adl +1 -1
- data/spec/lib/open_ehr/parser/adl14/adl-test-entry.c_dv_quantity_list.test.adl +1 -1
- data/spec/lib/open_ehr/parser/adl14/adl-test-entry.c_dv_quantity_property.test.adl +1 -1
- data/spec/lib/open_ehr/parser/adl14/adl-test-entry.c_dv_quantity_reversed.test.adl +1 -1
- data/spec/lib/open_ehr/parser/adl14/adl-test-entry.constraint_binding.test.adl +1 -1
- data/spec/lib/open_ehr/parser/adl14/adl-test-entry.constraint_ref.test.adl +1 -1
- data/spec/lib/open_ehr/parser/adl14/adl-test-entry.empty_other_contributors.test.adl +1 -1
- data/spec/lib/open_ehr/parser/adl14/adl-test-entry.missing_language.test.adl +1 -1
- data/spec/lib/open_ehr/parser/adl14/adl-test-entry.mixed_node_types.draft.adl +1 -1
- data/spec/lib/open_ehr/parser/adl14/adl-test-entry.most_minimal.test.adl +1 -1
- data/spec/lib/open_ehr/parser/adl14/adl-test-entry.multi_language.test.adl +1 -1
- data/spec/lib/open_ehr/parser/adl14/adl-test-entry.special_string.test.adl +1 -1
- data/spec/lib/open_ehr/parser/adl14/adl-test-entry.structure_test1.test.adl +1 -1
- data/spec/lib/open_ehr/parser/adl14/adl-test-entry.structure_test2.test.adl +1 -1
- data/spec/lib/open_ehr/parser/adl14/adl-test-entry.term_binding.test.adl +1 -1
- data/spec/lib/open_ehr/parser/adl14/adl-test-entry.term_binding2.test.adl +1 -1
- data/spec/lib/open_ehr/parser/adl14/adl-test-entry.unicode_BOM_support.test.adl +1 -1
- data/spec/lib/open_ehr/parser/adl14/adl-test-entry.unicode_support.test.adl +1 -1
- data/spec/lib/open_ehr/parser/adl_archetype_ontology_binding_spec.rb +3 -3
- data/spec/lib/open_ehr/parser/c_dv_quantity_any_allowed_spec.rb +34 -0
- data/spec/lib/open_ehr/parser/c_dv_quantity_shared_example_for_lacked_items_spec.rb +36 -0
- data/spec/lib/open_ehr/parser/c_dv_quantity_shared_example_spec.rb +146 -0
- data/spec/lib/open_ehr/parser/cdv_ordinal_parse_spec.rb +231 -0
- data/spec/lib/open_ehr/parser/code_phrase_spec.rb +7 -2
- data/spec/lib/open_ehr/parser/constraint_binding_spec.rb +26 -0
- data/spec/lib/open_ehr/parser/constraint_ref_spec.rb +32 -0
- data/spec/lib/open_ehr/parser/dv_coded_text_parse_spec.rb +27 -0
- data/spec/lib/open_ehr/parser/empty_other_contributors_spec.rb +19 -0
- data/spec/lib/open_ehr/parser/missing_language_spec.rb +20 -0
- data/spec/lib/open_ehr/parser/missing_purpose_spec.rb +23 -0
- data/spec/lib/open_ehr/parser/mixed_node_types_spec.rb +16 -0
- data/spec/lib/open_ehr/parser/most_minimal_adl_spec.rb +19 -0
- data/spec/lib/open_ehr/parser/multi_language_spec.rb +58 -0
- data/spec/lib/open_ehr/parser/path_based_terminology_binding_spec.rb +30 -0
- data/spec/lib/open_ehr/parser/special_string_spec.rb +20 -0
- data/spec/lib/open_ehr/parser/structure_comment_spec.rb +21 -0
- data/spec/lib/open_ehr/parser/structure_nested_comments_spec.rb +22 -0
- data/spec/lib/open_ehr/parser/structure_spec.rb +202 -0
- data/spec/lib/open_ehr/parser/term_binding_spec.rb +54 -0
- data/spec/lib/open_ehr/parser/unicode_bom_spec.rb +17 -0
- data/spec/lib/open_ehr/parser/unicode_support_spec.rb +46 -0
- data/spec/lib/open_ehr/rm/common/change_control/imported_version_spec.rb +0 -1
- data/spec/lib/open_ehr/rm/common/change_control/original_version_spec.rb +2 -2
- data/spec/lib/open_ehr/rm/common/change_control/version_spec.rb +0 -1
- data/spec/lib/open_ehr/rm/common/change_control/versioned_object_spec.rb +0 -1
- data/spec/lib/open_ehr/rm/common/generic/revision_history_item_spec.rb +3 -3
- data/spec/lib/open_ehr/rm/composition/content/entry/entry_spec.rb +12 -2
- data/spec/lib/open_ehr/rm/data_types/quantity/date_time/dv_date_time_spec.rb +1 -0
- data/spec/lib/open_ehr/rm/data_types/quantity/date_time/{dv_tempral_spec.rb → dv_temporal_spec.rb} +1 -0
- data/spec/lib/open_ehr/rm/data_types/text/dv_text_spec.rb +25 -3
- data/spec/lib/open_ehr/rm/demographic/party_spec.rb +1 -3
- data/spec/lib/open_ehr/rm/support/identification/access_group_ref_spec.rb +2 -2
- data/spec/lib/open_ehr/rm/support/identification/object_version_id_spec.rb +3 -4
- metadata +69 -39
|
@@ -1072,9 +1072,12 @@ module OpenEHR
|
|
|
1072
1072
|
end
|
|
1073
1073
|
|
|
1074
1074
|
rule V_QUALIFIED_TERM_CODE_REF
|
|
1075
|
-
'['
|
|
1075
|
+
'[' ti:(NAMECHAR_PAREN+) '::' cs:(NAMECHAR+) ']' {
|
|
1076
1076
|
def value
|
|
1077
|
-
|
|
1077
|
+
term_id = OpenEHR::RM::Support::Identification::TerminologyID.new(
|
|
1078
|
+
:value => ti.text_value)
|
|
1079
|
+
OpenEHR::RM::DataTypes::Text::CodePhrase.new(
|
|
1080
|
+
:terminology_id => term_id, :code_string => cs.text_value)
|
|
1078
1081
|
end
|
|
1079
1082
|
}
|
|
1080
1083
|
end
|
|
@@ -1125,7 +1128,13 @@ module OpenEHR
|
|
|
1125
1128
|
end
|
|
1126
1129
|
|
|
1127
1130
|
rule V_ISO8601_DURATION
|
|
1128
|
-
'P' ([0-9]+ [yY])? ([0-9]+ [mM])? ([0-9]+ [wW])? ([0-9]+ [dD])?
|
|
1131
|
+
'P' ([0-9]+ [yY])? ([0-9]+ [mM])? ([0-9]+ [wW])? ([0-9]+ [dD])? 'T' ([0-9]+ [hH]) ([0-9]+ [mM])? ([0-9]+ ('.' [0-9]+)? [sS])?
|
|
1132
|
+
/ 'P' ([0-9]+ [yY])? ([0-9]+ [mM])? ([0-9]+ [wW])? ([0-9]+ [dD])? 'T' ([0-9]+ [hH])? ([0-9]+ [mM]) ([0-9]+ ('.' [0-9]+)? [sS])?
|
|
1133
|
+
/ 'P' ([0-9]+ [yY])? ([0-9]+ [mM])? ([0-9]+ [wW])? ([0-9]+ [dD])? 'T' ([0-9]+ [hH])? ([0-9]+ [mM])? ([0-9]+ ('.' [0-9]+)? [sS])?
|
|
1134
|
+
/ 'P' ([0-9]+ [yY]) ([0-9]+ [mM])? ([0-9]+ [wW])? ([0-9]+ [dD])?
|
|
1135
|
+
/ 'P' ([0-9]+ [yY])? ([0-9]+ [mM]) ([0-9]+ [wW])? ([0-9]+ [dD])?
|
|
1136
|
+
/ 'P' ([0-9]+ [yY])? ([0-9]+ [mM])? ([0-9]+ [wW]) ([0-9]+ [dD])?
|
|
1137
|
+
/ 'P' ([0-9]+ [yY])? ([0-9]+ [mM])? ([0-9]+ [wW])? ([0-9]+ [dD])
|
|
1129
1138
|
end
|
|
1130
1139
|
|
|
1131
1140
|
rule V_ISO8601_DATE_CONSTRAINT_PATTERN
|
|
@@ -1209,9 +1218,9 @@ module OpenEHR
|
|
|
1209
1218
|
end
|
|
1210
1219
|
|
|
1211
1220
|
rule V_STRING
|
|
1212
|
-
'"' str:((
|
|
1221
|
+
'"' str:(('\"' / !'"' .)*) '"' {
|
|
1213
1222
|
def value
|
|
1214
|
-
str.text_value
|
|
1223
|
+
str.text_value.tr_s('\\\\', '\\')
|
|
1215
1224
|
end
|
|
1216
1225
|
}
|
|
1217
1226
|
end
|
data/lib/open_ehr/rm.rb
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
# http://www.openehr.org/uml/release-1.0.1/Browsable/_9_0_76d0249_1109264528523_312165_346Report.html
|
|
4
4
|
# refs #56
|
|
5
5
|
include OpenEHR::RM::Composition::Content
|
|
6
|
+
require 'locale/info'
|
|
6
7
|
|
|
7
8
|
module OpenEHR
|
|
8
9
|
module RM
|
|
@@ -24,11 +25,17 @@ module OpenEHR
|
|
|
24
25
|
|
|
25
26
|
def language=(language)
|
|
26
27
|
raise ArgumentError, 'language is mandatory' if language.nil?
|
|
28
|
+
unless Locale::Info.language_code? language.code_string
|
|
29
|
+
raise ArgumentError, 'language code is invalid'
|
|
30
|
+
end
|
|
27
31
|
@language = language
|
|
28
32
|
end
|
|
29
33
|
|
|
30
34
|
def encoding=(encoding)
|
|
31
|
-
|
|
35
|
+
if encoding.nil?
|
|
36
|
+
raise ArgumentError, 'encoding is mandatory'
|
|
37
|
+
end
|
|
38
|
+
Encoding.find(encoding.code_string)
|
|
32
39
|
@encoding = encoding
|
|
33
40
|
end
|
|
34
41
|
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
$:.unshift(File.dirname(__FILE__))
|
|
2
|
-
$:.include?(File.dirname(__FILE__)) || $:.include?(File.expand_path(File.dirname(__FILE__)))
|
|
1
|
+
$:.unshift(File.dirname(__FILE__))
|
|
3
2
|
# This modules are implemented from the UML shown bellow
|
|
4
3
|
# http://www.openehr.org/uml/release-1.0.1/Browsable/_9_0_76d0249_1109599337877_94556_1510Report.html
|
|
5
4
|
# Ticket refs #50
|
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|
# This module is implementation of the UML:
|
|
2
2
|
# http://www.openehr.org/uml/release-1.0.1/Browsable/_9_0_76d0249_1109696321450_28117_5362Report.html
|
|
3
3
|
# Ticket refs #49
|
|
4
|
-
|
|
4
|
+
require 'open_ehr/assumed_library_types'
|
|
5
5
|
require 'date'
|
|
6
|
-
|
|
7
|
-
include OpenEHR::AssumedLibraryTypes
|
|
6
|
+
require 'open_ehr/rm/data_types/quantity'
|
|
8
7
|
|
|
9
8
|
module OpenEHR
|
|
10
9
|
module RM
|
|
11
10
|
module DataTypes
|
|
12
11
|
module Quantity
|
|
13
12
|
module DateTime
|
|
13
|
+
include OpenEHR::RM::DataTypes::Quantity
|
|
14
|
+
|
|
14
15
|
class DvTemporal < DvAbsoluteQuantity
|
|
15
16
|
def initialize(args = {})
|
|
16
17
|
self.value = args[:value]
|
|
@@ -32,7 +33,8 @@ module OpenEHR
|
|
|
32
33
|
end
|
|
33
34
|
|
|
34
35
|
class DvDate < DvTemporal
|
|
35
|
-
include ISO8601DateModule
|
|
36
|
+
include OpenEHR::AssumedLibraryTypes::ISO8601DateModule
|
|
37
|
+
include OpenEHR::AssumedLibraryTypes
|
|
36
38
|
|
|
37
39
|
DAYS_IN_MONTH = [0,31,28,31,30,31,30,31,31,30,31,30,31]
|
|
38
40
|
|
|
@@ -87,6 +89,7 @@ module OpenEHR
|
|
|
87
89
|
end
|
|
88
90
|
|
|
89
91
|
class DvTime < DvTemporal
|
|
92
|
+
include OpenEHR::AssumedLibraryTypes
|
|
90
93
|
include ISO8601TimeModule
|
|
91
94
|
|
|
92
95
|
def value=(value)
|
|
@@ -193,7 +196,7 @@ module OpenEHR
|
|
|
193
196
|
end
|
|
194
197
|
|
|
195
198
|
class DvDuration < DvTemporal
|
|
196
|
-
include AssumedLibraryTypes::ISO8601DurationModule
|
|
199
|
+
include OpenEHR::AssumedLibraryTypes::ISO8601DurationModule
|
|
197
200
|
attr_reader :value
|
|
198
201
|
|
|
199
202
|
def initialize(args = { })
|
|
@@ -83,6 +83,7 @@ module OpenEHR
|
|
|
83
83
|
class DvText < OpenEHR::RM::DataTypes::Basic::DataValue
|
|
84
84
|
attr_reader :formatting, :hyperlink, :mappings,
|
|
85
85
|
:language, :encoding
|
|
86
|
+
attr_accessor :hyperlink
|
|
86
87
|
|
|
87
88
|
def initialize(args = {})
|
|
88
89
|
super(args)
|
|
@@ -90,6 +91,7 @@ module OpenEHR
|
|
|
90
91
|
self.encoding = args[:encoding]
|
|
91
92
|
self.mappings = args[:mappings]
|
|
92
93
|
self.language = args[:language]
|
|
94
|
+
self.hyperlink = args[:hyperlink]
|
|
93
95
|
end
|
|
94
96
|
|
|
95
97
|
def value=(value)
|
|
@@ -114,17 +116,16 @@ module OpenEHR
|
|
|
114
116
|
end
|
|
115
117
|
@encoding = encoding
|
|
116
118
|
end
|
|
119
|
+
|
|
117
120
|
def mappings=(mappings)
|
|
118
|
-
if !mappings.nil?
|
|
119
|
-
raise ArgumentError,
|
|
120
|
-
elsif !mappings.nil? and mappings.instance_of? Set and
|
|
121
|
-
mappings.empty?
|
|
122
|
-
raise ArgumentError, "mapping(s) is(are) not valid"
|
|
121
|
+
if !mappings.nil? && mappings.empty?
|
|
122
|
+
raise ArgumentError, 'mappings should not be empty'
|
|
123
123
|
end
|
|
124
124
|
@mappings = mappings
|
|
125
125
|
end
|
|
126
|
+
|
|
126
127
|
def language=(language)
|
|
127
|
-
if
|
|
128
|
+
if !language.nil? and language.code_string.empty?
|
|
128
129
|
raise ArgumentError, "langage is not valid"
|
|
129
130
|
end
|
|
130
131
|
@language = language
|
|
@@ -18,8 +18,8 @@ module OpenEHR
|
|
|
18
18
|
@value = value
|
|
19
19
|
end
|
|
20
20
|
|
|
21
|
-
def ==(
|
|
22
|
-
self.value ==
|
|
21
|
+
def ==(oid)
|
|
22
|
+
self.value == oid.value
|
|
23
23
|
end
|
|
24
24
|
end # of ObjectID
|
|
25
25
|
|
|
@@ -239,15 +239,15 @@ module OpenEHR
|
|
|
239
239
|
end
|
|
240
240
|
|
|
241
241
|
class ObjectVersionID < UIDBasedID
|
|
242
|
-
attr_reader :
|
|
242
|
+
attr_reader :creating_system_id, :version_tree_id
|
|
243
243
|
|
|
244
244
|
def initialize(args= {})
|
|
245
|
-
super
|
|
245
|
+
super
|
|
246
246
|
end
|
|
247
247
|
|
|
248
248
|
def value=(value)
|
|
249
249
|
if /^(\S+)::(\S+)::((\d|\.)+)$/ =~ value
|
|
250
|
-
self.
|
|
250
|
+
self.objectid = UID.new(:value => $1)
|
|
251
251
|
self.creating_system_id = UID.new(:value => $2)
|
|
252
252
|
self.version_tree_id = VersionTreeID.new(:value => $3)
|
|
253
253
|
else
|
|
@@ -256,14 +256,18 @@ module OpenEHR
|
|
|
256
256
|
end
|
|
257
257
|
|
|
258
258
|
def value
|
|
259
|
-
return @
|
|
259
|
+
return @oid.value + '::' +
|
|
260
260
|
@creating_system_id.value + '::' +
|
|
261
261
|
@version_tree_id.value
|
|
262
262
|
end
|
|
263
263
|
|
|
264
|
-
def
|
|
265
|
-
|
|
266
|
-
|
|
264
|
+
def objectid
|
|
265
|
+
return @oid
|
|
266
|
+
end
|
|
267
|
+
|
|
268
|
+
def objectid=(oid)
|
|
269
|
+
raise ArgumentError, 'objectid is mandatory' if oid.nil?
|
|
270
|
+
@oid = oid
|
|
267
271
|
end
|
|
268
272
|
|
|
269
273
|
def creating_system_id=(creating_system_id)
|
data/open_ehr.gemspec
CHANGED
|
@@ -5,11 +5,11 @@
|
|
|
5
5
|
|
|
6
6
|
Gem::Specification.new do |s|
|
|
7
7
|
s.name = "open_ehr"
|
|
8
|
-
s.version = "0.
|
|
8
|
+
s.version = "1.0.0"
|
|
9
9
|
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
|
11
11
|
s.authors = ["Shinji KOBAYASHI", "Akimichi Tatsukawa"]
|
|
12
|
-
s.date = "2011-12-
|
|
12
|
+
s.date = "2011-12-24"
|
|
13
13
|
s.description = "This project is an implementation of the openEHR specification on Ruby."
|
|
14
14
|
s.email = "skoba@moss.gr.jp"
|
|
15
15
|
s.extra_rdoc_files = [
|
|
@@ -125,6 +125,15 @@ Gem::Specification.new do |s|
|
|
|
125
125
|
"spec/lib/open_ehr/am/archetype/ontology/archetype_ontology_spec.rb",
|
|
126
126
|
"spec/lib/open_ehr/am/archetype/ontology/archetype_term_spec.rb",
|
|
127
127
|
"spec/lib/open_ehr/am/archetype/validity_kind_spec.rb",
|
|
128
|
+
"spec/lib/open_ehr/am/openehr_profile/data_types/basic/c_dv_state_spec.rb",
|
|
129
|
+
"spec/lib/open_ehr/am/openehr_profile/data_types/basic/non_terminal_state_spec.rb",
|
|
130
|
+
"spec/lib/open_ehr/am/openehr_profile/data_types/basic/state_machine_spec.rb",
|
|
131
|
+
"spec/lib/open_ehr/am/openehr_profile/data_types/basic/state_spec.rb",
|
|
132
|
+
"spec/lib/open_ehr/am/openehr_profile/data_types/basic/terminal_state_spec.rb",
|
|
133
|
+
"spec/lib/open_ehr/am/openehr_profile/data_types/basic/transition_spec.rb",
|
|
134
|
+
"spec/lib/open_ehr/am/openehr_profile/data_types/quantity/c_dv_ordinal_spec.rb",
|
|
135
|
+
"spec/lib/open_ehr/am/openehr_profile/data_types/quantity/c_dv_quantity_spec.rb",
|
|
136
|
+
"spec/lib/open_ehr/am/openehr_profile/data_types/quantity/c_quantity_item_spec.rb",
|
|
128
137
|
"spec/lib/open_ehr/am/openehr_profile/data_types/text/c_code_phrase_spec.rb",
|
|
129
138
|
"spec/lib/open_ehr/assumed_library_types/interval_spec.rb",
|
|
130
139
|
"spec/lib/open_ehr/assumed_library_types/iso8601_date_spec.rb",
|
|
@@ -244,10 +253,31 @@ Gem::Specification.new do |s|
|
|
|
244
253
|
"spec/lib/open_ehr/parser/base_spec.rb",
|
|
245
254
|
"spec/lib/open_ehr/parser/basic_generic_type_spec.rb",
|
|
246
255
|
"spec/lib/open_ehr/parser/basic_type_spec.rb",
|
|
256
|
+
"spec/lib/open_ehr/parser/c_dv_quantity_any_allowed_spec.rb",
|
|
257
|
+
"spec/lib/open_ehr/parser/c_dv_quantity_shared_example_for_lacked_items_spec.rb",
|
|
258
|
+
"spec/lib/open_ehr/parser/c_dv_quantity_shared_example_spec.rb",
|
|
259
|
+
"spec/lib/open_ehr/parser/cdv_ordinal_parse_spec.rb",
|
|
247
260
|
"spec/lib/open_ehr/parser/code_phrase_spec.rb",
|
|
261
|
+
"spec/lib/open_ehr/parser/constraint_binding_spec.rb",
|
|
262
|
+
"spec/lib/open_ehr/parser/constraint_ref_spec.rb",
|
|
248
263
|
"spec/lib/open_ehr/parser/date_time_spec.rb",
|
|
249
264
|
"spec/lib/open_ehr/parser/duration_spec.rb",
|
|
265
|
+
"spec/lib/open_ehr/parser/dv_coded_text_parse_spec.rb",
|
|
266
|
+
"spec/lib/open_ehr/parser/empty_other_contributors_spec.rb",
|
|
267
|
+
"spec/lib/open_ehr/parser/missing_language_spec.rb",
|
|
268
|
+
"spec/lib/open_ehr/parser/missing_purpose_spec.rb",
|
|
269
|
+
"spec/lib/open_ehr/parser/mixed_node_types_spec.rb",
|
|
270
|
+
"spec/lib/open_ehr/parser/most_minimal_adl_spec.rb",
|
|
271
|
+
"spec/lib/open_ehr/parser/multi_language_spec.rb",
|
|
250
272
|
"spec/lib/open_ehr/parser/parser_spec_helper.rb",
|
|
273
|
+
"spec/lib/open_ehr/parser/path_based_terminology_binding_spec.rb",
|
|
274
|
+
"spec/lib/open_ehr/parser/special_string_spec.rb",
|
|
275
|
+
"spec/lib/open_ehr/parser/structure_comment_spec.rb",
|
|
276
|
+
"spec/lib/open_ehr/parser/structure_nested_comments_spec.rb",
|
|
277
|
+
"spec/lib/open_ehr/parser/structure_spec.rb",
|
|
278
|
+
"spec/lib/open_ehr/parser/term_binding_spec.rb",
|
|
279
|
+
"spec/lib/open_ehr/parser/unicode_bom_spec.rb",
|
|
280
|
+
"spec/lib/open_ehr/parser/unicode_support_spec.rb",
|
|
251
281
|
"spec/lib/open_ehr/rm/common/archetyped/archetyped_spec.rb",
|
|
252
282
|
"spec/lib/open_ehr/rm/common/archetyped/feeder_audit_details_spec.rb",
|
|
253
283
|
"spec/lib/open_ehr/rm/common/archetyped/feeder_audit_spec.rb",
|
|
@@ -306,7 +336,7 @@ Gem::Specification.new do |s|
|
|
|
306
336
|
"spec/lib/open_ehr/rm/data_types/quantity/date_time/dv_date_spec.rb",
|
|
307
337
|
"spec/lib/open_ehr/rm/data_types/quantity/date_time/dv_date_time_spec.rb",
|
|
308
338
|
"spec/lib/open_ehr/rm/data_types/quantity/date_time/dv_duration_spec.rb",
|
|
309
|
-
"spec/lib/open_ehr/rm/data_types/quantity/date_time/
|
|
339
|
+
"spec/lib/open_ehr/rm/data_types/quantity/date_time/dv_temporal_spec.rb",
|
|
310
340
|
"spec/lib/open_ehr/rm/data_types/quantity/date_time/dv_time_spec.rb",
|
|
311
341
|
"spec/lib/open_ehr/rm/data_types/quantity/dv_absolute_quantity_spec.rb",
|
|
312
342
|
"spec/lib/open_ehr/rm/data_types/quantity/dv_amount_spec.rb",
|
|
@@ -369,7 +399,7 @@ Gem::Specification.new do |s|
|
|
|
369
399
|
s.homepage = "http://github.com/skoba/ruby-impl-openehr"
|
|
370
400
|
s.licenses = ["The openEHR Open Source Software license(mozilla tri-license)"]
|
|
371
401
|
s.require_paths = ["lib"]
|
|
372
|
-
s.rubygems_version = "1.8.
|
|
402
|
+
s.rubygems_version = "1.8.12"
|
|
373
403
|
s.summary = "Ruby implementation of the openEHR specification"
|
|
374
404
|
|
|
375
405
|
if s.respond_to? :specification_version then
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# ticket 192
|
|
2
|
+
require File.dirname(__FILE__) + '/../../../../../../spec_helper'
|
|
3
|
+
require 'open_ehr/am/openehr_profile/data_types/basic'
|
|
4
|
+
include ::OpenEHR::AM::OpenEHRProfile::DataTypes::Basic
|
|
5
|
+
include ::OpenEHR::AssumedLibraryTypes
|
|
6
|
+
require 'set'
|
|
7
|
+
|
|
8
|
+
describe CDvState do
|
|
9
|
+
before(:each) do
|
|
10
|
+
proposed_state = State.new(:name => 'PROPOSED')
|
|
11
|
+
complete_state = TerminalState.new(:name => 'COMPLETED')
|
|
12
|
+
finish = Transition.new(:event => 'finish', :next_state => complete_state)
|
|
13
|
+
transitions = Set[finish]
|
|
14
|
+
non_terminal_state = NonTerminalState.new(:name => 'IN_EXECUTION',
|
|
15
|
+
:transitions => transitions)
|
|
16
|
+
states = Set[proposed_state, non_terminal_state, complete_state]
|
|
17
|
+
state_machine = StateMachine.new(:states => states)
|
|
18
|
+
occurrences = Interval.new(:upper => 1, :lower => 1)
|
|
19
|
+
@c_dv_state = CDvState.new(:value => state_machine, :path => '/',
|
|
20
|
+
:occurrences => occurrences)
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
it 'is an instance of StateMachine' do
|
|
24
|
+
@c_dv_state.should be_an_instance_of CDvState
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
it 'states size should be 3' do
|
|
28
|
+
@c_dv_state.value.states.size.should be 3
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
it 'raise error if value is nil' do
|
|
32
|
+
expect {@c_dv_state.value = nil}.to raise_error
|
|
33
|
+
end
|
|
34
|
+
end
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# ticket 195
|
|
2
|
+
require File.dirname(__FILE__) + '/../../../../../../spec_helper'
|
|
3
|
+
require 'open_ehr/am/openehr_profile/data_types/basic'
|
|
4
|
+
include ::OpenEHR::AM::OpenEHRProfile::DataTypes::Basic
|
|
5
|
+
require 'set'
|
|
6
|
+
|
|
7
|
+
describe NonTerminalState do
|
|
8
|
+
before(:each) do
|
|
9
|
+
proposed_state = State.new(:name => 'PROPOSED')
|
|
10
|
+
complete_state = TerminalState.new(:name => 'COMPLETED')
|
|
11
|
+
finish = Transition.new(:event => 'finish', :next_state => complete_state)
|
|
12
|
+
transitions = Set[finish]
|
|
13
|
+
@non_terminal_state = NonTerminalState.new(:name => 'IN_EXECUTION',
|
|
14
|
+
:transitions => transitions)
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
it 'is an instance of NonTerminalState' do
|
|
18
|
+
@non_terminal_state.should be_an_instance_of NonTerminalState
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
it 'name is IN_EXECUTION' do
|
|
22
|
+
@non_terminal_state.name.should == 'IN_EXECUTION'
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
it 'size of transitions is 2' do
|
|
26
|
+
@non_terminal_state.transitions.size.should == 1
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
it 'raise error if traisitions is empty' do
|
|
30
|
+
expect {@non_terminal_state.transitions = Set.new}.to raise_error
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
it 'raise error if transitions is nil' do
|
|
34
|
+
expect {@non_terminal_state.transitions = nil}.to raise_error
|
|
35
|
+
end
|
|
36
|
+
end
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# ticket 193
|
|
2
|
+
require File.dirname(__FILE__) + '/../../../../../../spec_helper'
|
|
3
|
+
require 'open_ehr/am/openehr_profile/data_types/basic'
|
|
4
|
+
include ::OpenEHR::AM::OpenEHRProfile::DataTypes::Basic
|
|
5
|
+
require 'set'
|
|
6
|
+
|
|
7
|
+
describe StateMachine do
|
|
8
|
+
before(:each) do
|
|
9
|
+
proposed_state = State.new(:name => 'PROPOSED')
|
|
10
|
+
complete_state = TerminalState.new(:name => 'COMPLETED')
|
|
11
|
+
finish = Transition.new(:event => 'finish', :next_state => complete_state)
|
|
12
|
+
transitions = Set[finish]
|
|
13
|
+
non_terminal_state = NonTerminalState.new(:name => 'IN_EXECUTION',
|
|
14
|
+
:transitions => transitions)
|
|
15
|
+
states = Set[proposed_state, non_terminal_state, complete_state]
|
|
16
|
+
@state_machine = StateMachine.new(:states => states)
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
it 'is an instance of StateMachine' do
|
|
20
|
+
@state_machine.should be_an_instance_of StateMachine
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
it 'states size is 3' do
|
|
24
|
+
@state_machine.states.size.should be 3
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
it 'raise error if states are nil' do
|
|
28
|
+
expect {@state_machine.states = nil}.to raise_error
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
it 'raise error if states is empty' do
|
|
32
|
+
expect {@state_machine.states = Set.new}.to raise_error
|
|
33
|
+
end
|
|
34
|
+
end
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# ticket 191
|
|
2
|
+
require File.dirname(__FILE__) + '/../../../../../../spec_helper'
|
|
3
|
+
require 'open_ehr/am/openehr_profile/data_types/basic'
|
|
4
|
+
include ::OpenEHR::AM::OpenEHRProfile::DataTypes::Basic
|
|
5
|
+
|
|
6
|
+
describe State do
|
|
7
|
+
before(:all) do
|
|
8
|
+
@state = State.new(:name => 'PROPOSED')
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
it 'is an instance of State' do
|
|
12
|
+
@state.should be_an_instance_of State
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
it 'name is PROPOSED' do
|
|
16
|
+
@state.name.should == 'PROPOSED'
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
it 'raise error name is empty' do
|
|
20
|
+
expect {@state.name = ''}.to raise_error
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
it 'raise error name is nil' do
|
|
24
|
+
expect {@state.name = nil}.to raise_error
|
|
25
|
+
end
|
|
26
|
+
end
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# ticket 196
|
|
2
|
+
require File.dirname(__FILE__) + '/../../../../../../spec_helper'
|
|
3
|
+
require 'open_ehr/am/openehr_profile/data_types/basic'
|
|
4
|
+
include ::OpenEHR::AM::OpenEHRProfile::DataTypes::Basic
|
|
5
|
+
|
|
6
|
+
describe TerminalState do
|
|
7
|
+
before(:all) do
|
|
8
|
+
@terminal_state = TerminalState.new(:name => 'PROPOSED')
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
it 'is an instance of TerminalState' do
|
|
12
|
+
@terminal_state.should be_an_instance_of TerminalState
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
it 'name is PROPOSED' do
|
|
16
|
+
@terminal_state.name.should == 'PROPOSED'
|
|
17
|
+
end
|
|
18
|
+
end
|