fhir_dstu2_models 1.0.7 → 1.0.8
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +4 -1
- data/.rubocop_todo.yml +113 -15
- data/.travis.yml +1 -1
- data/Gemfile.lock +12 -12
- data/fhir_dstu2_models.gemspec +1 -1
- data/lib/fhir_dstu2_models/fhir_ext/structure_definition.rb +36 -39
- data/lib/fhir_dstu2_models/version.rb +1 -1
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 440c728fbf6cc0e7764c1b7cebce1864bb0dc15757b11bb87379b39c3f740c62
|
4
|
+
data.tar.gz: 50cd56593e64cc04d94c463e53068acd653750e8fb32990a23f4c8829dba6d87
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: de740ab400448fd89ff07d835646f47adcb01708e479fb5b251c44991c3f965fa034472a8f6f08bbc70b0da39a4f04bc5c3029f5dcb34730c266b61b2eaef0bf
|
7
|
+
data.tar.gz: 43653566bda0db07b8a5c0275b2a85fab00d17c0172fe75ac9468e1dd702c194e3f74b09a1ee260d2be27d5b7e29ea6616e339efb456b0996cdcdf5b1179b6b1
|
data/.rubocop.yml
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
inherit_from: .rubocop_todo.yml
|
2
2
|
AllCops:
|
3
|
-
TargetRubyVersion: 2.
|
3
|
+
TargetRubyVersion: 2.4
|
4
4
|
Exclude:
|
5
5
|
- 'test/**/*'
|
6
6
|
- 'spec/**/*'
|
@@ -12,3 +12,6 @@ AllCops:
|
|
12
12
|
- 'vendor/**/*'
|
13
13
|
Metrics/LineLength:
|
14
14
|
Enabled: false
|
15
|
+
|
16
|
+
Style/FrozenStringLiteralComment:
|
17
|
+
Enabled: false
|
data/.rubocop_todo.yml
CHANGED
@@ -1,38 +1,35 @@
|
|
1
1
|
# This configuration was generated by
|
2
2
|
# `rubocop --auto-gen-config`
|
3
|
-
# on
|
3
|
+
# on 2019-03-28 10:35:44 -0400 using RuboCop version 0.52.1.
|
4
4
|
# The point is for the user to remove these configuration records
|
5
5
|
# one by one as the offenses are removed from the code base.
|
6
6
|
# Note that changes in the inspected code, or installation of new
|
7
7
|
# versions of RuboCop, may require this file to be generated again.
|
8
8
|
|
9
|
-
|
10
|
-
Enabled: false
|
11
|
-
|
12
|
-
# Offense count: 37
|
9
|
+
# Offense count: 40
|
13
10
|
Metrics/AbcSize:
|
14
11
|
Max: 423
|
15
12
|
|
16
|
-
# Offense count:
|
13
|
+
# Offense count: 9
|
17
14
|
# Configuration parameters: CountComments, ExcludedMethods.
|
18
15
|
Metrics/BlockLength:
|
19
|
-
Max:
|
16
|
+
Max: 108
|
20
17
|
|
21
|
-
# Offense count:
|
18
|
+
# Offense count: 15
|
22
19
|
# Configuration parameters: CountBlocks.
|
23
20
|
Metrics/BlockNesting:
|
24
21
|
Max: 5
|
25
22
|
|
26
|
-
# Offense count:
|
23
|
+
# Offense count: 6
|
27
24
|
# Configuration parameters: CountComments.
|
28
25
|
Metrics/ClassLength:
|
29
|
-
Max:
|
26
|
+
Max: 327
|
30
27
|
|
31
|
-
# Offense count:
|
28
|
+
# Offense count: 27
|
32
29
|
Metrics/CyclomaticComplexity:
|
33
30
|
Max: 69
|
34
31
|
|
35
|
-
# Offense count:
|
32
|
+
# Offense count: 46
|
36
33
|
# Configuration parameters: CountComments.
|
37
34
|
Metrics/MethodLength:
|
38
35
|
Max: 120
|
@@ -40,19 +37,39 @@ Metrics/MethodLength:
|
|
40
37
|
# Offense count: 1
|
41
38
|
# Configuration parameters: CountComments.
|
42
39
|
Metrics/ModuleLength:
|
43
|
-
Max:
|
44
|
-
|
40
|
+
Max: 114
|
45
41
|
|
46
42
|
# Offense count: 25
|
47
43
|
Metrics/PerceivedComplexity:
|
48
44
|
Max: 72
|
49
45
|
|
50
|
-
# Offense count:
|
46
|
+
# Offense count: 3
|
47
|
+
Performance/Caller:
|
48
|
+
Exclude:
|
49
|
+
- 'lib/fhir_dstu2_models/bootstrap/model.rb'
|
50
|
+
- 'lib/fhir_dstu2_models/deprecate.rb'
|
51
|
+
|
52
|
+
# Offense count: 3
|
53
|
+
# Cop supports --auto-correct.
|
54
|
+
# Configuration parameters: AutoCorrect.
|
55
|
+
Performance/HashEachMethods:
|
56
|
+
Exclude:
|
57
|
+
- 'lib/fhir_dstu2_models/bootstrap/definitions.rb'
|
58
|
+
- 'lib/fhir_dstu2_models/bootstrap/model.rb'
|
59
|
+
- 'lib/fhir_dstu2_models/bootstrap/preprocess.rb'
|
60
|
+
|
61
|
+
# Offense count: 15
|
51
62
|
Style/ClassVars:
|
52
63
|
Exclude:
|
53
64
|
- 'lib/fhir_dstu2_models/bootstrap/definitions.rb'
|
54
65
|
- 'lib/fhir_dstu2_models/fluentpath/parse.rb'
|
55
66
|
|
67
|
+
# Offense count: 6
|
68
|
+
Style/CommentedKeyword:
|
69
|
+
Exclude:
|
70
|
+
- 'lib/fhir_dstu2_models/bootstrap/hashable.rb'
|
71
|
+
- 'lib/fhir_dstu2_models/bootstrap/model.rb'
|
72
|
+
|
56
73
|
# Offense count: 14
|
57
74
|
Style/Documentation:
|
58
75
|
Exclude:
|
@@ -73,7 +90,88 @@ Style/Documentation:
|
|
73
90
|
- 'lib/fhir_dstu2_models/fluentpath/expression.rb'
|
74
91
|
- 'lib/fhir_dstu2_models/fluentpath/parse.rb'
|
75
92
|
|
93
|
+
# Offense count: 29
|
94
|
+
# Cop supports --auto-correct.
|
95
|
+
Style/IfUnlessModifier:
|
96
|
+
Exclude:
|
97
|
+
- 'lib/fhir_dstu2_models/bootstrap/generator.rb'
|
98
|
+
- 'lib/fhir_dstu2_models/bootstrap/hashable.rb'
|
99
|
+
- 'lib/fhir_dstu2_models/bootstrap/model.rb'
|
100
|
+
- 'lib/fhir_dstu2_models/bootstrap/template.rb'
|
101
|
+
- 'lib/fhir_dstu2_models/bootstrap/xml.rb'
|
102
|
+
- 'lib/fhir_dstu2_models/fhir_ext/structure_definition.rb'
|
103
|
+
- 'lib/fhir_dstu2_models/fhir_ext/structure_definition_compare.rb'
|
104
|
+
|
105
|
+
# Offense count: 1
|
106
|
+
# Cop supports --auto-correct.
|
107
|
+
# Configuration parameters: EnforcedStyle.
|
108
|
+
# SupportedStyles: line_count_dependent, lambda, literal
|
109
|
+
Style/Lambda:
|
110
|
+
Exclude:
|
111
|
+
- 'lib/fhir_dstu2_models/fhir_ext/structure_definition.rb'
|
112
|
+
|
113
|
+
# Offense count: 2
|
114
|
+
# Cop supports --auto-correct.
|
115
|
+
# Configuration parameters: EnforcedStyle.
|
116
|
+
# SupportedStyles: call, braces
|
117
|
+
Style/LambdaCall:
|
118
|
+
Exclude:
|
119
|
+
- 'lib/fhir_dstu2_models/fhir_ext/structure_definition.rb'
|
120
|
+
|
76
121
|
# Offense count: 1
|
77
122
|
Style/MethodMissing:
|
78
123
|
Exclude:
|
79
124
|
- 'lib/fhir_dstu2_models/bootstrap/model.rb'
|
125
|
+
|
126
|
+
# Offense count: 2
|
127
|
+
# Cop supports --auto-correct.
|
128
|
+
# Configuration parameters: AutoCorrect, EnforcedStyle.
|
129
|
+
# SupportedStyles: predicate, comparison
|
130
|
+
Style/NumericPredicate:
|
131
|
+
Exclude:
|
132
|
+
- 'spec/**/*'
|
133
|
+
- 'lib/fhir_dstu2_models/fhir_ext/structure_definition_compare.rb'
|
134
|
+
|
135
|
+
# Offense count: 1
|
136
|
+
# Cop supports --auto-correct.
|
137
|
+
Style/OrAssignment:
|
138
|
+
Exclude:
|
139
|
+
- 'lib/fhir_dstu2_models/bootstrap/generator.rb'
|
140
|
+
|
141
|
+
# Offense count: 17
|
142
|
+
# Cop supports --auto-correct.
|
143
|
+
# Configuration parameters: EnforcedStyle.
|
144
|
+
# SupportedStyles: implicit, explicit
|
145
|
+
Style/RescueStandardError:
|
146
|
+
Exclude:
|
147
|
+
- 'lib/fhir_dstu2_models/bootstrap/definitions.rb'
|
148
|
+
- 'lib/fhir_dstu2_models/bootstrap/hashable.rb'
|
149
|
+
- 'lib/fhir_dstu2_models/bootstrap/json.rb'
|
150
|
+
- 'lib/fhir_dstu2_models/bootstrap/model.rb'
|
151
|
+
- 'lib/fhir_dstu2_models/bootstrap/xml.rb'
|
152
|
+
- 'lib/fhir_dstu2_models/fhir.rb'
|
153
|
+
- 'lib/fhir_dstu2_models/fhir_ext/structure_definition.rb'
|
154
|
+
- 'lib/fhir_dstu2_models/fhir_ext/structure_definition_finding.rb'
|
155
|
+
- 'lib/fhir_dstu2_models/fluentpath/expression.rb'
|
156
|
+
- 'lib/fhir_dstu2_models/fluentpath/parse.rb'
|
157
|
+
|
158
|
+
# Offense count: 2
|
159
|
+
# Cop supports --auto-correct.
|
160
|
+
# Configuration parameters: ConvertCodeThatCanStartToReturnNil.
|
161
|
+
Style/SafeNavigation:
|
162
|
+
Exclude:
|
163
|
+
- 'lib/fhir_dstu2_models/bootstrap/definitions.rb'
|
164
|
+
|
165
|
+
# Offense count: 1
|
166
|
+
# Cop supports --auto-correct.
|
167
|
+
# Configuration parameters: EnforcedStyle.
|
168
|
+
# SupportedStyles: require_parentheses, require_no_parentheses
|
169
|
+
Style/StabbyLambdaParentheses:
|
170
|
+
Exclude:
|
171
|
+
- 'lib/fhir_dstu2_models/fhir_ext/structure_definition.rb'
|
172
|
+
|
173
|
+
# Offense count: 309
|
174
|
+
# Configuration parameters: AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, IgnoredPatterns.
|
175
|
+
# URISchemes: http, https
|
176
|
+
Metrics/LineLength:
|
177
|
+
Max: 292
|
data/.travis.yml
CHANGED
@@ -2,7 +2,6 @@ language: ruby
|
|
2
2
|
env:
|
3
3
|
- TESTMEMORY=0 GCDELAY=2.0
|
4
4
|
rvm:
|
5
|
-
- 2.3
|
6
5
|
- 2.4
|
7
6
|
- 2.5
|
8
7
|
- 2.6
|
@@ -18,4 +17,5 @@ addons:
|
|
18
17
|
code_climate:
|
19
18
|
repo_token: 0230b3379581b30743b7b4355d7394e427648e604d19a2aba987956201eee290
|
20
19
|
before_install:
|
20
|
+
- gem update --system
|
21
21
|
- gem install bundler
|
data/Gemfile.lock
CHANGED
@@ -41,6 +41,7 @@ GEM
|
|
41
41
|
test-unit (~> 3.0)
|
42
42
|
i18n (1.5.3)
|
43
43
|
concurrent-ruby (~> 1.0)
|
44
|
+
jaro_winkler (1.5.2)
|
44
45
|
json (2.1.0)
|
45
46
|
listen (3.1.5)
|
46
47
|
rb-fsevent (~> 0.9, >= 0.9.4)
|
@@ -59,16 +60,15 @@ GEM
|
|
59
60
|
notiffany (0.1.1)
|
60
61
|
nenv (~> 0.1)
|
61
62
|
shellany (~> 0.0)
|
62
|
-
parallel (1.
|
63
|
-
parser (2.
|
63
|
+
parallel (1.14.0)
|
64
|
+
parser (2.6.2.0)
|
64
65
|
ast (~> 2.4.0)
|
65
66
|
power_assert (1.1.1)
|
66
|
-
powerpack (0.1.
|
67
|
+
powerpack (0.1.2)
|
67
68
|
pry (0.11.3)
|
68
69
|
coderay (~> 1.1.0)
|
69
70
|
method_source (~> 0.9.0)
|
70
|
-
rainbow (
|
71
|
-
rake
|
71
|
+
rainbow (3.0.0)
|
72
72
|
rake (12.3.1)
|
73
73
|
rb-fsevent (0.10.3)
|
74
74
|
rb-inotify (0.9.10)
|
@@ -86,14 +86,14 @@ GEM
|
|
86
86
|
diff-lcs (>= 1.2.0, < 2.0)
|
87
87
|
rspec-support (~> 3.7.0)
|
88
88
|
rspec-support (3.7.1)
|
89
|
-
rubocop (0.
|
89
|
+
rubocop (0.52.1)
|
90
90
|
parallel (~> 1.10)
|
91
|
-
parser (>= 2.
|
91
|
+
parser (>= 2.4.0.2, < 3.0)
|
92
92
|
powerpack (~> 0.1)
|
93
|
-
rainbow (>=
|
93
|
+
rainbow (>= 2.2.2, < 4.0)
|
94
94
|
ruby-progressbar (~> 1.7)
|
95
95
|
unicode-display_width (~> 1.0, >= 1.0.1)
|
96
|
-
ruby-progressbar (1.
|
96
|
+
ruby-progressbar (1.10.0)
|
97
97
|
ruby_dep (1.5.0)
|
98
98
|
shellany (0.0.1)
|
99
99
|
simplecov (0.13.0)
|
@@ -105,7 +105,7 @@ GEM
|
|
105
105
|
test-unit (3.2.7)
|
106
106
|
power_assert
|
107
107
|
thor (0.20.0)
|
108
|
-
unicode-display_width (1.
|
108
|
+
unicode-display_width (1.5.0)
|
109
109
|
|
110
110
|
PLATFORMS
|
111
111
|
ruby
|
@@ -120,7 +120,7 @@ DEPENDENCIES
|
|
120
120
|
pry
|
121
121
|
rake
|
122
122
|
rspec
|
123
|
-
rubocop (= 0.
|
123
|
+
rubocop (= 0.52.1)
|
124
124
|
simplecov
|
125
125
|
test-unit
|
126
126
|
|
@@ -128,4 +128,4 @@ RUBY VERSION
|
|
128
128
|
ruby 2.5.1p57
|
129
129
|
|
130
130
|
BUNDLED WITH
|
131
|
-
|
131
|
+
2.0.1
|
data/fhir_dstu2_models.gemspec
CHANGED
@@ -32,7 +32,7 @@ Gem::Specification.new do |spec|
|
|
32
32
|
spec.add_development_dependency 'rspec'
|
33
33
|
spec.add_development_dependency 'simplecov'
|
34
34
|
spec.add_development_dependency 'nokogiri-diff'
|
35
|
-
spec.add_development_dependency 'rubocop', '0.
|
35
|
+
spec.add_development_dependency 'rubocop', '0.52.1'
|
36
36
|
spec.add_development_dependency 'codeclimate-test-reporter'
|
37
37
|
spec.add_development_dependency 'guard-rspec'
|
38
38
|
spec.add_development_dependency 'guard-test'
|
@@ -168,7 +168,6 @@ module FHIR
|
|
168
168
|
# Check the datatype for each node, only if the element has one declared, and it isn't the root element
|
169
169
|
if !element.type.empty? && element.path != id
|
170
170
|
codeable_concept_pattern = element.pattern && element.pattern.is_a?(FHIR::DSTU2::CodeableConcept)
|
171
|
-
codeable_concept_binding = element.binding
|
172
171
|
matching_pattern = false
|
173
172
|
nodes.each do |value|
|
174
173
|
matching_type = 0
|
@@ -205,35 +204,45 @@ module FHIR
|
|
205
204
|
matching_pattern = true if vcoding.system == pcoding.system && vcoding.code == pcoding.code
|
206
205
|
end
|
207
206
|
end
|
208
|
-
elsif
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
207
|
+
elsif %w[CodeableConcept Coding Quantity].include? data_type_found
|
208
|
+
required_strength = element&.binding&.strength == 'required'
|
209
|
+
binding_issues = required_strength ? @errors : @warnings
|
210
|
+
|
211
|
+
valueset_uri = element&.binding&.valueSetReference&.reference
|
212
|
+
check_code = ->coding do
|
213
|
+
# Can't validate if both code and system are not given
|
214
|
+
if coding['code'].nil? || coding['system'].nil?
|
215
|
+
binding_issues << "#{describe_element(element)} code: #{coding.to_json} missing code" if coding['code'].nil?
|
216
|
+
binding_issues << "#{describe_element(element)} code: #{coding.to_json} missing system" if coding['system'].nil?
|
217
|
+
return
|
216
218
|
end
|
217
219
|
|
218
|
-
|
219
|
-
vcc = FHIR::DSTU2::CodeableConcept.new(value)
|
220
|
-
if valueset_uri && self.class.vs_validators[valueset_uri]
|
220
|
+
# ValueSet Validation
|
221
221
|
check_fn = self.class.vs_validators[valueset_uri]
|
222
|
-
has_valid_code =
|
222
|
+
has_valid_code = false
|
223
|
+
if check_fn
|
224
|
+
has_valid_code = check_fn.call(coding)
|
225
|
+
binding_issues << "#{describe_element(element)} has no codings from #{valueset_uri}. Codings evaluated: #{coding.to_json}" unless has_valid_code
|
226
|
+
end
|
223
227
|
|
228
|
+
# CodeSystem Validation
|
224
229
|
unless has_valid_code
|
225
|
-
|
230
|
+
check_fn = self.class.vs_validators[coding['system']]
|
231
|
+
if check_fn && !check_fn.call(coding)
|
232
|
+
binding_issues << "#{describe_element(element)} has no codings from it's specified system: #{coding['system']}. "\
|
233
|
+
"Codings evaluated: #{coding.to_json}"
|
234
|
+
end
|
226
235
|
end
|
227
236
|
end
|
228
237
|
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
-
if check_fn && !check_fn.call(c)
|
233
|
-
binding_issues << "#{describe_element(element)} has no codings from it's specified system: #{c.system}. "\
|
234
|
-
"Codings evaluated: #{vcc.to_json}"
|
235
|
-
end
|
238
|
+
if data_type_found == 'CodeableConcept'
|
239
|
+
value['coding']&.each do |coding|
|
240
|
+
check_code.(coding)
|
236
241
|
end
|
242
|
+
else
|
243
|
+
# avoid checking Codings twice if they are already checked as part of a CodeableConcept
|
244
|
+
# The CodeableConcept should contain the binding for the children Codings
|
245
|
+
check_code.(value) unless element.path == 'CodeableConcept.coding'
|
237
246
|
end
|
238
247
|
|
239
248
|
elsif data_type_found == 'String' && !element.maxLength.nil? && (value.size > element.maxLength)
|
@@ -284,13 +293,9 @@ module FHIR
|
|
284
293
|
unless definition.nil?
|
285
294
|
ret_val = false
|
286
295
|
begin
|
287
|
-
# klass = Module.const_get("FHIR::DSTU2::#{data_type_code}")
|
288
|
-
# ret_val = definition.validates_resource?(klass.new(deep_copy(value)))
|
289
296
|
ret_val = definition.validates_hash?(value)
|
290
|
-
|
291
|
-
|
292
|
-
@warnings += definition.warnings
|
293
|
-
end
|
297
|
+
@errors += definition.errors
|
298
|
+
@warnings += definition.warnings
|
294
299
|
rescue
|
295
300
|
@errors << "Unable to verify #{data_type_code} as a FHIR::DSTU2 Resource."
|
296
301
|
end
|
@@ -308,13 +313,9 @@ module FHIR
|
|
308
313
|
if !definition.nil?
|
309
314
|
ret_val = false
|
310
315
|
begin
|
311
|
-
# klass = Module.const_get("FHIR::DSTU2::#{resource_type}")
|
312
|
-
# ret_val = definition.validates_resource?(klass.new(deep_copy(value)))
|
313
316
|
ret_val = definition.validates_hash?(value)
|
314
|
-
|
315
|
-
|
316
|
-
@warnings += definition.warnings
|
317
|
-
end
|
317
|
+
@errors += definition.errors
|
318
|
+
@warnings += definition.warnings
|
318
319
|
rescue
|
319
320
|
@errors << "Unable to verify #{resource_type} as a FHIR::DSTU2 Resource."
|
320
321
|
end
|
@@ -334,13 +335,9 @@ module FHIR
|
|
334
335
|
if !definition.nil?
|
335
336
|
ret_val = false
|
336
337
|
begin
|
337
|
-
# klass = Module.const_get("FHIR::DSTU2::#{data_type_code}")
|
338
|
-
# ret_val = definition.validates_resource?(klass.new(deep_copy(value)))
|
339
338
|
ret_val = definition.validates_hash?(value)
|
340
|
-
|
341
|
-
|
342
|
-
@warnings += definition.warnings
|
343
|
-
end
|
339
|
+
@errors += definition.errors
|
340
|
+
@warnings += definition.warnings
|
344
341
|
rescue
|
345
342
|
@errors << "Unable to verify #{data_type_code} as a FHIR::DSTU2 type."
|
346
343
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fhir_dstu2_models
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jason Walonoski
|
@@ -11,7 +11,7 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: exe
|
13
13
|
cert_chain: []
|
14
|
-
date: 2019-
|
14
|
+
date: 2019-03-28 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: nokogiri
|
@@ -179,14 +179,14 @@ dependencies:
|
|
179
179
|
requirements:
|
180
180
|
- - '='
|
181
181
|
- !ruby/object:Gem::Version
|
182
|
-
version:
|
182
|
+
version: 0.52.1
|
183
183
|
type: :development
|
184
184
|
prerelease: false
|
185
185
|
version_requirements: !ruby/object:Gem::Requirement
|
186
186
|
requirements:
|
187
187
|
- - '='
|
188
188
|
- !ruby/object:Gem::Version
|
189
|
-
version:
|
189
|
+
version: 0.52.1
|
190
190
|
- !ruby/object:Gem::Dependency
|
191
191
|
name: codeclimate-test-reporter
|
192
192
|
requirement: !ruby/object:Gem::Requirement
|