canql 4.3.0 → 4.4.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +4 -0
- data/code_safety.yml +20 -8
- data/lib/canql/grammars.rb +1 -0
- data/lib/canql/grammars/main.treetop +4 -1
- data/lib/canql/grammars/test_result_group.treetop +16 -0
- data/lib/canql/nodes.rb +1 -0
- data/lib/canql/nodes/main.rb +7 -0
- data/lib/canql/nodes/test_result_group.rb +40 -0
- data/lib/canql/version.rb +1 -1
- metadata +4 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 111a269a59bd7e152809bb8488f7f070b6f7fc74a12b0d154a5d88754c3c8cfa
|
|
4
|
+
data.tar.gz: 242095730ead9834f8f7a2a71ac5b662f07c7f031239f72b3aca329d550eb08d
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: adfa06b51ad500fb38a578c6cb82079daf699717c8d7f48fb1898edf71ca1031c249d81fc8eeba2013f0b8a7efbbb8cff12c7297c4d35ab27aefd6d1ff2487b3
|
|
7
|
+
data.tar.gz: ed4d2926c48c699b70a0c9a9c4ceff97e56eaf4a5c42e615b0368c0433623aee9efce6a4774b7e59fdbbd18f9d19a7e3fd26f5328080323ec82fed70617f802a
|
data/CHANGELOG.md
CHANGED
data/code_safety.yml
CHANGED
|
@@ -19,7 +19,7 @@ file safety:
|
|
|
19
19
|
CHANGELOG.md:
|
|
20
20
|
comments:
|
|
21
21
|
reviewed_by: josh.pencheon
|
|
22
|
-
safe_revision:
|
|
22
|
+
safe_revision: 7b5bc84b813b7ff156665a1a37cfe5dd5b53afe7
|
|
23
23
|
CODE_OF_CONDUCT.md:
|
|
24
24
|
comments:
|
|
25
25
|
reviewed_by: drewthorp
|
|
@@ -63,7 +63,7 @@ file safety:
|
|
|
63
63
|
lib/canql/grammars.rb:
|
|
64
64
|
comments:
|
|
65
65
|
reviewed_by: josh.pencheon
|
|
66
|
-
safe_revision:
|
|
66
|
+
safe_revision: c5f8f76b2c335a8554f39a14d6165bf5cd8f9b67
|
|
67
67
|
lib/canql/grammars/age.treetop:
|
|
68
68
|
comments: It is a known issue that this is potentially susceptible to certain
|
|
69
69
|
kinds of DoS attack
|
|
@@ -94,8 +94,8 @@ file safety:
|
|
|
94
94
|
lib/canql/grammars/main.treetop:
|
|
95
95
|
comments: It is a known issue that this is potentially susceptible to certain
|
|
96
96
|
kinds of DoS attack
|
|
97
|
-
reviewed_by:
|
|
98
|
-
safe_revision:
|
|
97
|
+
reviewed_by: josh.pencheon
|
|
98
|
+
safe_revision: 42bb9bd177a761b9d04d728e53fcf0ebd0083ae4
|
|
99
99
|
lib/canql/grammars/patient.treetop:
|
|
100
100
|
comments: It is a known issue that this is potentially susceptible to certain
|
|
101
101
|
kinds of DoS attack
|
|
@@ -119,10 +119,14 @@ file safety:
|
|
|
119
119
|
kinds of DoS attack
|
|
120
120
|
reviewed_by: timgentry
|
|
121
121
|
safe_revision: c39d24bb500719971969762e94545e82866bf92f
|
|
122
|
+
lib/canql/grammars/test_result_group.treetop:
|
|
123
|
+
comments:
|
|
124
|
+
reviewed_by: josh.pencheon
|
|
125
|
+
safe_revision: 42bb9bd177a761b9d04d728e53fcf0ebd0083ae4
|
|
122
126
|
lib/canql/nodes.rb:
|
|
123
127
|
comments:
|
|
124
128
|
reviewed_by: josh.pencheon
|
|
125
|
-
safe_revision:
|
|
129
|
+
safe_revision: c5f8f76b2c335a8554f39a14d6165bf5cd8f9b67
|
|
126
130
|
lib/canql/nodes/age.rb:
|
|
127
131
|
comments:
|
|
128
132
|
reviewed_by: timgentry
|
|
@@ -150,7 +154,7 @@ file safety:
|
|
|
150
154
|
lib/canql/nodes/main.rb:
|
|
151
155
|
comments:
|
|
152
156
|
reviewed_by: josh.pencheon
|
|
153
|
-
safe_revision:
|
|
157
|
+
safe_revision: c5f8f76b2c335a8554f39a14d6165bf5cd8f9b67
|
|
154
158
|
lib/canql/nodes/patient.rb:
|
|
155
159
|
comments:
|
|
156
160
|
reviewed_by: josh.pencheon
|
|
@@ -167,6 +171,10 @@ file safety:
|
|
|
167
171
|
comments:
|
|
168
172
|
reviewed_by: timgentry
|
|
169
173
|
safe_revision: c39d24bb500719971969762e94545e82866bf92f
|
|
174
|
+
lib/canql/nodes/test_result_group.rb:
|
|
175
|
+
comments:
|
|
176
|
+
reviewed_by: josh.pencheon
|
|
177
|
+
safe_revision: 42bb9bd177a761b9d04d728e53fcf0ebd0083ae4
|
|
170
178
|
lib/canql/parser.rb:
|
|
171
179
|
comments:
|
|
172
180
|
reviewed_by: timgentry
|
|
@@ -178,7 +186,7 @@ file safety:
|
|
|
178
186
|
lib/canql/version.rb:
|
|
179
187
|
comments:
|
|
180
188
|
reviewed_by: josh.pencheon
|
|
181
|
-
safe_revision:
|
|
189
|
+
safe_revision: 7b5bc84b813b7ff156665a1a37cfe5dd5b53afe7
|
|
182
190
|
test/anomaly_test_helper.rb:
|
|
183
191
|
comments:
|
|
184
192
|
reviewed_by: josh.pencheon
|
|
@@ -243,6 +251,10 @@ file safety:
|
|
|
243
251
|
comments:
|
|
244
252
|
reviewed_by: josh.pencheon
|
|
245
253
|
safe_revision: 511e4238f83eb5b32839c25d94ec2a59145539bb
|
|
254
|
+
test/nodes/test_result_groups_test.rb:
|
|
255
|
+
comments:
|
|
256
|
+
reviewed_by: josh.pencheon
|
|
257
|
+
safe_revision: 42bb9bd177a761b9d04d728e53fcf0ebd0083ae4
|
|
246
258
|
test/nodes/test_results_test.rb:
|
|
247
259
|
comments:
|
|
248
260
|
reviewed_by: josh.pencheon
|
|
@@ -254,4 +266,4 @@ file safety:
|
|
|
254
266
|
test/test_helper.rb:
|
|
255
267
|
comments:
|
|
256
268
|
reviewed_by: josh.pencheon
|
|
257
|
-
safe_revision:
|
|
269
|
+
safe_revision: 42bb9bd177a761b9d04d728e53fcf0ebd0083ae4
|
data/lib/canql/grammars.rb
CHANGED
|
@@ -9,6 +9,7 @@ Treetop.load File.expand_path('grammars/batch_types', File.dirname(__FILE__))
|
|
|
9
9
|
Treetop.load File.expand_path('grammars/e_base_records', File.dirname(__FILE__))
|
|
10
10
|
Treetop.load File.expand_path('grammars/genetic_test', File.dirname(__FILE__))
|
|
11
11
|
Treetop.load File.expand_path('grammars/test_result', File.dirname(__FILE__))
|
|
12
|
+
Treetop.load File.expand_path('grammars/test_result_group', File.dirname(__FILE__))
|
|
12
13
|
Treetop.load File.expand_path('grammars/patient', File.dirname(__FILE__))
|
|
13
14
|
Treetop.load File.expand_path('grammars/registry', File.dirname(__FILE__))
|
|
14
15
|
Treetop.load File.expand_path('grammars/provider', File.dirname(__FILE__))
|
|
@@ -5,6 +5,7 @@ grammar Canql
|
|
|
5
5
|
include Anomaly
|
|
6
6
|
include GeneticTest
|
|
7
7
|
include TestResult
|
|
8
|
+
include TestResultGroup
|
|
8
9
|
include Dates
|
|
9
10
|
include EBaseRecords
|
|
10
11
|
include BatchTypes
|
|
@@ -127,7 +128,9 @@ grammar Canql
|
|
|
127
128
|
end
|
|
128
129
|
|
|
129
130
|
rule case_with_conditions
|
|
130
|
-
anomalies / genetic_tests / test_results / perinatal_hospital /
|
|
131
|
+
anomalies / genetic_tests / test_results / perinatal_hospital /
|
|
132
|
+
case_field_existance / test_result_groups / mother_conditions /
|
|
133
|
+
action_or_ebr
|
|
131
134
|
end
|
|
132
135
|
|
|
133
136
|
rule patient_with_conditions
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
module Canql
|
|
2
|
+
grammar TestResultGroup
|
|
3
|
+
rule test_result_groups
|
|
4
|
+
and_keyword? existance_modifier:test_result_group_existance_keyword group:test_result_group_names <Nodes::TestResultGroup::WithCondition>
|
|
5
|
+
end
|
|
6
|
+
|
|
7
|
+
rule test_result_group_existance_keyword
|
|
8
|
+
# If in furture the reverse is needed use 'supplied require'
|
|
9
|
+
space ('missing required' / 'missing' / 'supplied required' / 'supplied') word_break
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
rule test_result_group_names
|
|
13
|
+
space ('screening' / 'anomaly scan') word_break
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
data/lib/canql/nodes.rb
CHANGED
|
@@ -17,6 +17,7 @@ require 'canql/nodes/batch_types'
|
|
|
17
17
|
require 'canql/nodes/anomaly'
|
|
18
18
|
require 'canql/nodes/genetic_test'
|
|
19
19
|
require 'canql/nodes/test_result'
|
|
20
|
+
require 'canql/nodes/test_result_group'
|
|
20
21
|
require 'canql/nodes/patient'
|
|
21
22
|
require 'canql/nodes/main'
|
|
22
23
|
require 'canql/nodes/registry'
|
data/lib/canql/nodes/main.rb
CHANGED
|
@@ -32,16 +32,23 @@ module Canql #:nodoc: all
|
|
|
32
32
|
anomalies = []
|
|
33
33
|
genetic_tests = []
|
|
34
34
|
test_results = []
|
|
35
|
+
test_result_groups = []
|
|
35
36
|
|
|
36
37
|
post.elements.each do |element|
|
|
37
38
|
anomalies << element.to_anomaly if element.respond_to?(:to_anomaly)
|
|
38
39
|
genetic_tests << element.to_genetic_test if element.respond_to?(:to_genetic_test)
|
|
39
40
|
test_results << element.to_test_result if element.respond_to?(:to_test_result)
|
|
41
|
+
if element.respond_to?(:to_test_result_group)
|
|
42
|
+
test_result_groups << element.to_test_result_group
|
|
43
|
+
end
|
|
40
44
|
end
|
|
41
45
|
|
|
42
46
|
conditions['anomalies'] = { Canql::ALL => anomalies } if anomalies.any?
|
|
43
47
|
conditions['genetic_tests'] = { Canql::ALL => genetic_tests } if genetic_tests.any?
|
|
44
48
|
conditions['test_results'] = { Canql::ALL => test_results } if test_results.any?
|
|
49
|
+
if test_result_groups.any?
|
|
50
|
+
conditions['test_result_groups'] = { Canql::ALL => test_result_groups }
|
|
51
|
+
end
|
|
45
52
|
conditions
|
|
46
53
|
end
|
|
47
54
|
end
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Canql #:nodoc: all
|
|
4
|
+
module Nodes
|
|
5
|
+
module TestResultGroup
|
|
6
|
+
module WithCondition
|
|
7
|
+
def test_result_group
|
|
8
|
+
group.text_value.strip.parameterize.underscore
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def to_test_result_group
|
|
12
|
+
test_result_group_hash = { 'exists' => existance_filter }
|
|
13
|
+
test_result_group_hash['required'] = requirement_filter
|
|
14
|
+
test_result_group_hash['group'] = test_result_group_filter if test_result_group.present?
|
|
15
|
+
test_result_group_hash
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def existance_filter
|
|
19
|
+
{
|
|
20
|
+
Canql::EQUALS => ['supplied required', 'supplied'].include?(
|
|
21
|
+
existance_modifier.text_value.strip
|
|
22
|
+
)
|
|
23
|
+
}
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
def requirement_filter
|
|
27
|
+
{
|
|
28
|
+
Canql::EQUALS => ['supplied required', 'missing required'].include?(
|
|
29
|
+
existance_modifier.text_value.strip
|
|
30
|
+
)
|
|
31
|
+
}
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
def test_result_group_filter
|
|
35
|
+
{ Canql::EQUALS => test_result_group }
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
end
|
data/lib/canql/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: canql
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 4.
|
|
4
|
+
version: 4.4.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- PHE NDR Development Team
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2020-
|
|
11
|
+
date: 2020-07-08 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: chronic
|
|
@@ -238,6 +238,7 @@ files:
|
|
|
238
238
|
- lib/canql/grammars/provider.treetop
|
|
239
239
|
- lib/canql/grammars/registry.treetop
|
|
240
240
|
- lib/canql/grammars/test_result.treetop
|
|
241
|
+
- lib/canql/grammars/test_result_group.treetop
|
|
241
242
|
- lib/canql/nodes.rb
|
|
242
243
|
- lib/canql/nodes/age.rb
|
|
243
244
|
- lib/canql/nodes/anomaly.rb
|
|
@@ -250,6 +251,7 @@ files:
|
|
|
250
251
|
- lib/canql/nodes/perinatal_hospital.rb
|
|
251
252
|
- lib/canql/nodes/registry.rb
|
|
252
253
|
- lib/canql/nodes/test_result.rb
|
|
254
|
+
- lib/canql/nodes/test_result_group.rb
|
|
253
255
|
- lib/canql/parser.rb
|
|
254
256
|
- lib/canql/treetop/extensions.rb
|
|
255
257
|
- lib/canql/version.rb
|