ncs_mdes 0.10.0 → 0.11.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/CHANGELOG.md +8 -0
- data/documents/3.1/{NCS_Transmission_Schema_3.1.00.00.xsd → NCS_Transmission_Schema_3.1.01.00.xsd} +11 -8
- data/documents/3.2/NCS_Transmission_Schema_3.2.00.00.xsd +87156 -0
- data/documents/3.2/disposition_codes.yml +2361 -0
- data/documents/3.2/extract_disposition_codes.rb +58 -0
- data/documents/3.2/heuristic_overrides.yml +681 -0
- data/lib/ncs_navigator/mdes/disposition_code.rb +7 -10
- data/lib/ncs_navigator/mdes/source_documents.rb +3 -1
- data/lib/ncs_navigator/mdes/variable.rb +4 -4
- data/lib/ncs_navigator/mdes/variable_type.rb +6 -6
- data/lib/ncs_navigator/mdes/version.rb +1 -1
- data/ncs_mdes.gemspec +1 -1
- data/spec/ncs_navigator/mdes/source_documents_spec.rb +16 -2
- data/spec/ncs_navigator/mdes/specification_spec.rb +22 -0
- metadata +11 -7
@@ -4,14 +4,13 @@ module NcsNavigator::Mdes
|
|
4
4
|
##
|
5
5
|
# One dispostion code in the MDES.
|
6
6
|
class DispositionCode
|
7
|
+
ATTRIBUTES = %w(
|
8
|
+
category_code disposition event final_category final_code interim_code sub_category
|
9
|
+
)
|
7
10
|
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
attr_accessor :disposition
|
12
|
-
attr_accessor :category_code
|
13
|
-
attr_accessor :interim_code
|
14
|
-
attr_accessor :final_code
|
11
|
+
ATTRIBUTES.each do |attr|
|
12
|
+
attr_accessor attr
|
13
|
+
end
|
15
14
|
|
16
15
|
##
|
17
16
|
# Given attributes (presumably loaded from a YAML file) create
|
@@ -19,9 +18,7 @@ module NcsNavigator::Mdes
|
|
19
18
|
#
|
20
19
|
# @return [DispositionCode] the created instance.
|
21
20
|
def initialize(attrs)
|
22
|
-
|
23
|
-
self.send("#{a}=", attrs[a])
|
24
|
-
end
|
21
|
+
ATTRIBUTES.each { |a| send("#{a}=", attrs[a]) }
|
25
22
|
end
|
26
23
|
|
27
24
|
##
|
@@ -58,7 +58,9 @@ module NcsNavigator::Mdes
|
|
58
58
|
when '3.0'
|
59
59
|
create('3.0', '3.0/NCS_Transmission_Schema_3.0.00.09.xsd', '3.0.00.09')
|
60
60
|
when '3.1'
|
61
|
-
create('3.1', '3.1/NCS_Transmission_Schema_3.1.
|
61
|
+
create('3.1', '3.1/NCS_Transmission_Schema_3.1.01.00.xsd', '3.1.01.00')
|
62
|
+
when '3.2'
|
63
|
+
create('3.2', '3.2/NCS_Transmission_Schema_3.2.00.00.xsd', '3.2.00.00')
|
62
64
|
else
|
63
65
|
raise "MDES #{version} is not supported by this version of ncs_mdes"
|
64
66
|
end
|
@@ -75,20 +75,20 @@ module NcsNavigator::Mdes
|
|
75
75
|
var.nillable = element['nillable'] == 'true'
|
76
76
|
var.omittable = element['minOccurs'] == '0'
|
77
77
|
var.pii =
|
78
|
-
case element['pii']
|
78
|
+
case element['ncsdoc:pii']
|
79
79
|
when 'Y'; true;
|
80
80
|
when 'P'; :possible;
|
81
81
|
when nil; :unknown;
|
82
82
|
when ''; false;
|
83
|
-
else element['pii'];
|
83
|
+
else element['ncsdoc:pii'];
|
84
84
|
end
|
85
85
|
var.status =
|
86
|
-
case element['status']
|
86
|
+
case element['ncsdoc:status']
|
87
87
|
when '1'; :active;
|
88
88
|
when '2'; :new;
|
89
89
|
when '3'; :modified;
|
90
90
|
when '4'; :retired;
|
91
|
-
else element['status'];
|
91
|
+
else element['ncsdoc:status'];
|
92
92
|
end
|
93
93
|
var.type =
|
94
94
|
if element['type']
|
@@ -75,10 +75,10 @@ module NcsNavigator::Mdes
|
|
75
75
|
vt.min_length = elt['value'].to_i
|
76
76
|
when 'enumeration'
|
77
77
|
(vt.code_list ||= CodeList.new) << CodeListEntry.from_xsd_enumeration(elt, options)
|
78
|
-
if elt['desc'] =~ /\S/
|
78
|
+
if elt['ncsdoc:desc'] =~ /\S/
|
79
79
|
if vt.code_list.description.nil?
|
80
|
-
vt.code_list.description = elt['desc']
|
81
|
-
elsif vt.code_list.description != elt['desc']
|
80
|
+
vt.code_list.description = elt['ncsdoc:desc']
|
81
|
+
elsif vt.code_list.description != elt['ncsdoc:desc']
|
82
82
|
log.warn("Code list entry on line #{elt.line} unexpectedly has a different desc from the first entry")
|
83
83
|
end
|
84
84
|
end
|
@@ -179,9 +179,9 @@ module NcsNavigator::Mdes
|
|
179
179
|
log.warn("Missing value for code list entry on line #{enum.line}") unless enum['value']
|
180
180
|
|
181
181
|
new(enum['value'] && enum['value'].strip).tap do |cle|
|
182
|
-
cle.label = enum['label']
|
183
|
-
cle.global_value = enum['global_value']
|
184
|
-
cle.master_cl = enum['master_cl']
|
182
|
+
cle.label = enum['ncsdoc:label']
|
183
|
+
cle.global_value = enum['ncsdoc:global_value']
|
184
|
+
cle.master_cl = enum['ncsdoc:master_cl']
|
185
185
|
end
|
186
186
|
end
|
187
187
|
end
|
data/ncs_mdes.gemspec
CHANGED
@@ -19,7 +19,7 @@ National Children's Study's Master Data Element Specification.
|
|
19
19
|
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
20
20
|
s.require_paths = ["lib"]
|
21
21
|
|
22
|
-
s.add_dependency 'nokogiri', '~> 1.
|
22
|
+
s.add_dependency 'nokogiri', '~> 1.5.6'
|
23
23
|
|
24
24
|
s.add_development_dependency 'rspec', '~> 2.6.0' # Can't use 2.7.0 due to #477
|
25
25
|
s.add_development_dependency 'rake', '~> 0.9.2'
|
@@ -164,11 +164,25 @@ module NcsNavigator::Mdes
|
|
164
164
|
include_context 'version docs'
|
165
165
|
|
166
166
|
it 'has the correct path for the schema' do
|
167
|
-
subject.schema.should =~ %r{3.1/NCS_Transmission_Schema_3.1.
|
167
|
+
subject.schema.should =~ %r{3.1/NCS_Transmission_Schema_3.1.01.00.xsd$}
|
168
168
|
end
|
169
169
|
|
170
170
|
it 'has a different specification_version' do
|
171
|
-
subject.specification_version.should == '3.1.
|
171
|
+
subject.specification_version.should == '3.1.01.00'
|
172
|
+
end
|
173
|
+
end
|
174
|
+
|
175
|
+
describe '3.2' do
|
176
|
+
let(:version) { '3.2' }
|
177
|
+
|
178
|
+
include_context 'version docs'
|
179
|
+
|
180
|
+
it 'has the correct path for the schema' do
|
181
|
+
subject.schema.should =~ %r{3.2/NCS_Transmission_Schema_3.2.00.00.xsd$}
|
182
|
+
end
|
183
|
+
|
184
|
+
it 'has a different specification_version' do
|
185
|
+
subject.specification_version.should == '3.2.00.00'
|
172
186
|
end
|
173
187
|
end
|
174
188
|
|
@@ -96,6 +96,13 @@ module NcsNavigator::Mdes
|
|
96
96
|
|
97
97
|
include_examples 'tables fully resolved'
|
98
98
|
end
|
99
|
+
|
100
|
+
context 'in version 3.2' do
|
101
|
+
let(:version) { '3.2' }
|
102
|
+
let(:expected_table_count) { 576 }
|
103
|
+
|
104
|
+
include_examples 'tables fully resolved'
|
105
|
+
end
|
99
106
|
end
|
100
107
|
|
101
108
|
describe '#specification_version' do
|
@@ -171,6 +178,14 @@ module NcsNavigator::Mdes
|
|
171
178
|
disposition_codes.size.should == 332
|
172
179
|
end
|
173
180
|
end
|
181
|
+
|
182
|
+
context 'in version 3.2' do
|
183
|
+
let(:disposition_codes) { Specification.new('3.2', :log => logger).disposition_codes }
|
184
|
+
|
185
|
+
it 'has 332 codes' do
|
186
|
+
disposition_codes.size.should == 332
|
187
|
+
end
|
188
|
+
end
|
174
189
|
end
|
175
190
|
|
176
191
|
describe '#[]' do
|
@@ -252,6 +267,13 @@ module NcsNavigator::Mdes
|
|
252
267
|
|
253
268
|
include_examples 'types fully resolved'
|
254
269
|
end
|
270
|
+
|
271
|
+
context 'version 3.2' do
|
272
|
+
let(:version) { '3.2' }
|
273
|
+
let(:expected_type_count) { 651 }
|
274
|
+
|
275
|
+
include_examples 'types fully resolved'
|
276
|
+
end
|
255
277
|
end
|
256
278
|
end
|
257
279
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ncs_mdes
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.11.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-12-20 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: nokogiri
|
@@ -18,7 +18,7 @@ dependencies:
|
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
20
20
|
- !ruby/object:Gem::Version
|
21
|
-
version:
|
21
|
+
version: 1.5.6
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
24
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -26,7 +26,7 @@ dependencies:
|
|
26
26
|
requirements:
|
27
27
|
- - ~>
|
28
28
|
- !ruby/object:Gem::Version
|
29
|
-
version:
|
29
|
+
version: 1.5.6
|
30
30
|
- !ruby/object:Gem::Dependency
|
31
31
|
name: rspec
|
32
32
|
requirement: !ruby/object:Gem::Requirement
|
@@ -133,10 +133,14 @@ files:
|
|
133
133
|
- documents/3.0/disposition_codes.yml
|
134
134
|
- documents/3.0/extract_disposition_codes.rb
|
135
135
|
- documents/3.0/heuristic_overrides.yml
|
136
|
-
- documents/3.1/NCS_Transmission_Schema_3.1.
|
136
|
+
- documents/3.1/NCS_Transmission_Schema_3.1.01.00.xsd
|
137
137
|
- documents/3.1/disposition_codes.yml
|
138
138
|
- documents/3.1/extract_disposition_codes.rb
|
139
139
|
- documents/3.1/heuristic_overrides.yml
|
140
|
+
- documents/3.2/NCS_Transmission_Schema_3.2.00.00.xsd
|
141
|
+
- documents/3.2/disposition_codes.yml
|
142
|
+
- documents/3.2/extract_disposition_codes.rb
|
143
|
+
- documents/3.2/heuristic_overrides.yml
|
140
144
|
- lib/ncs_navigator/mdes.rb
|
141
145
|
- lib/ncs_navigator/mdes/disposition_code.rb
|
142
146
|
- lib/ncs_navigator/mdes/source_documents.rb
|
@@ -169,7 +173,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
169
173
|
version: '0'
|
170
174
|
segments:
|
171
175
|
- 0
|
172
|
-
hash: -
|
176
|
+
hash: -1622356402615803316
|
173
177
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
174
178
|
none: false
|
175
179
|
requirements:
|
@@ -178,7 +182,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
178
182
|
version: '0'
|
179
183
|
segments:
|
180
184
|
- 0
|
181
|
-
hash: -
|
185
|
+
hash: -1622356402615803316
|
182
186
|
requirements: []
|
183
187
|
rubyforge_project:
|
184
188
|
rubygems_version: 1.8.24
|