canql 4.4.1 → 5.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 128e610596fb3e43cd6072162b21fa77259823716772ed80272ceafc2f1a6b4c
4
- data.tar.gz: 54b9bc4e7dcb9f8952d07784089ab4c28d747bcc9f9c367e2ead3f91c4c74cdc
3
+ metadata.gz: 99a2f7ebbb5ae3c1cbdd8368b020f8eb7c54d969278db3bdd90277f113095ce9
4
+ data.tar.gz: fb4f6561d61cc9da30dd9a30562c7374a95e52d615b014bc16e5e282529c4975
5
5
  SHA512:
6
- metadata.gz: 802678de8f0d709f40e5d1e049e0ab2d5c18590fda76e9a473b016a55c639821833d8f755d56ee7e79a29bd7cabdf78e50a99f7c32711e5bd197722055226102
7
- data.tar.gz: 2d56d8da5357e9b66f8f486dec03887f1d31ec0f6c405c34ae8e66ada36cb51e520a89808821b0b308dfdc7581eb39c2d4f17c3d1987e9dadf7540ad2feadd50
6
+ metadata.gz: 93cc26e76a35a5b47600368d7208f81c6cd6457c416f942be852536952d54b9a1bbcb49df7c17f95fb09b5bdaa4581fda91b70e36ad229aae5213914d9d7db39
7
+ data.tar.gz: 2a8bf966e8a0b93411117a09f790f20825c6b27850f1903cea53fd636855d920ec4fdc5dc9bb903b11ec0c2e34275af88ca2e49e4c09b3ea206a6ff2620d626b
@@ -0,0 +1,2 @@
1
+ # Admins should have oversight of the version:
2
+ lib/canql/version.rb @publichealthengland/ndr-admins
@@ -0,0 +1,23 @@
1
+ name: Lint
2
+
3
+ on: [pull_request]
4
+
5
+ jobs:
6
+ rubocop:
7
+ name: RuboCop
8
+
9
+ runs-on: ubuntu-latest
10
+
11
+ steps:
12
+ - uses: actions/checkout@v2
13
+ with:
14
+ fetch-depth: 0 # fetch everything
15
+ - name: Set up Ruby
16
+ uses: ruby/setup-ruby@v1
17
+ with:
18
+ ruby-version: 3.0
19
+ - name: Install dependencies
20
+ run: bundle install
21
+ - name: Run RuboCop against BASE..HEAD changes
22
+ run: bundle exec rake rubocop:diff origin/${GITHUB_BASE_REF#*/}
23
+
@@ -0,0 +1,65 @@
1
+ name: Test
2
+
3
+ on: [push, pull_request]
4
+
5
+ jobs:
6
+ test:
7
+ strategy:
8
+ matrix:
9
+ ruby-version:
10
+ - 2.6
11
+ - 2.7
12
+ - 3.0
13
+
14
+ name: Ruby ${{ matrix.ruby-version }}
15
+
16
+ runs-on: ubuntu-latest
17
+
18
+ steps:
19
+ - uses: actions/checkout@v2
20
+ - name: Set up Ruby
21
+ uses: ruby/setup-ruby@v1
22
+ with:
23
+ ruby-version: ${{ matrix.ruby-version }}
24
+ - name: Install dependencies
25
+ run: bundle install
26
+ - name: Run tests
27
+ run: bundle exec rake
28
+
29
+ # A utility job upon which Branch Protection can depend,
30
+ # thus remaining agnostic of the matrix.
31
+ test_matrix:
32
+ if: ${{ always() }}
33
+ runs-on: ubuntu-latest
34
+ name: Matrix
35
+ needs: test
36
+ steps:
37
+ - name: Check build matrix status
38
+ if: ${{ needs.test.result != 'success' }}
39
+ run: exit 1
40
+
41
+ notify:
42
+ # Run only on master, but regardless of whether tests past:
43
+ if: ${{ always() && github.ref == 'refs/heads/master' }}
44
+
45
+ needs: test_matrix
46
+
47
+ runs-on: ubuntu-latest
48
+
49
+ steps:
50
+ - uses: 8398a7/action-slack@v3
51
+ with:
52
+ status: custom
53
+ fields: workflow,commit,author
54
+ custom_payload: |
55
+ {
56
+ channel: 'C7FQWGDHP',
57
+ username: 'CI – ' + '${{ github.repository }}'.split('/')[1],
58
+ icon_emoji: ':hammer_and_wrench:',
59
+ attachments: [{
60
+ color: '${{ needs.test_matrix.result }}' === 'success' ? 'good' : '${{ needs.test_matrix.result }}' === 'failure' ? 'danger' : 'warning',
61
+ text: `${process.env.AS_WORKFLOW} against \`${{ github.ref }}\` (${process.env.AS_COMMIT}) for ${{ github.actor }} resulted in *${{ needs.test_matrix.result }}*.`
62
+ }]
63
+ }
64
+ env:
65
+ SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
@@ -1,11 +1 @@
1
- inherit_from: 'https://raw.githubusercontent.com/PublicHealthEngland/ndr_dev_support/master/.rubocop.yml'
2
-
3
- Rails:
4
- Enabled: false
5
-
6
- AllCops:
7
- TargetRailsVersion: 4.2
8
- TargetRubyVersion: 2.3
9
-
10
- Style/FrozenStringLiteralComment:
11
- Enabled: true
1
+ require: ndr_dev_support
@@ -1,6 +1,15 @@
1
1
  ## [Unreleased]
2
2
  *no unreleased changes*
3
3
 
4
+ ## 5.0.0 / 2021-01-19
5
+
6
+ ### Changed
7
+ * Changed the values of registry to use registry name rather than codes and added new supra-region options (#54)
8
+
9
+ ### Added
10
+ * Added fetal medicine and dating options to the test group filter (#50)
11
+ * Added new gestation at delivery and booking date to case field existance filter (#52)
12
+
4
13
  ## 4.4.1 / 2021-01-13
5
14
  ### Fixed
6
15
  * Relax constraints to support Rails 6.x
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
- # CANQL [![Build Status](https://travis-ci.org/PublicHealthEngland/canql.svg?branch=master)](https://travis-ci.org/PublicHealthEngland/canql) [![Gem Version](https://badge.fury.io/rb/canql.svg)](https://rubygems.org/gems/canql)
1
+ # CANQL [![Build Status](https://github.com/publichealthengland/canql/workflows/Test/badge.svg)](https://github.com/publichealthengland/canql/actions?query=workflow%3Atest) [![Gem Version](https://badge.fury.io/rb/canql.svg)](https://rubygems.org/gems/canql)
2
2
 
3
- Congenital Anomaly Natural Query Language (CANQL) is a [Treetop](http://treetop.rubyforge.org/) driven Domain Specific Language (DSL) used by the Public Health England (PHE) National Congenital Anomaly and Rare Disease Registration Service (NCARDRS) to identify cohorts of cases.
3
+ Congenital Anomaly Natural Query Language (CANQL) is a [Treetop](http://treetop.rubyforge.org/)-driven Domain Specific Language (DSL) used by the Public Health England (PHE) National Congenital Anomaly and Rare Disease Registration Service (NCARDRS) to identify cohorts of cases.
4
4
 
5
5
  Used for analysis, research and day-to-day operations to empower non-technical users to write sophisticated human readable queries without the need to know or understand the underlying datastore and/or schema.
6
6
 
@@ -36,7 +36,7 @@ Gem::Specification.new do |spec|
36
36
  spec.add_development_dependency 'guard-minitest'
37
37
  spec.add_development_dependency 'guard-rubocop'
38
38
  spec.add_development_dependency 'minitest'
39
- spec.add_development_dependency 'ndr_dev_support', '~> 5.6'
39
+ spec.add_development_dependency 'ndr_dev_support', '~> 5.9'
40
40
  spec.add_development_dependency 'pry'
41
41
  spec.add_development_dependency 'rake'
42
42
  spec.add_development_dependency 'terminal-notifier-guard' if RUBY_PLATFORM =~ /darwin/
@@ -1,5 +1,17 @@
1
1
  ---
2
2
  file safety:
3
+ ".github/CODEOWNERS":
4
+ comments:
5
+ reviewed_by: josh.pencheon
6
+ safe_revision: a964c47962d47724afd66ba59660589fc3c8b02c
7
+ ".github/workflows/lint.yml":
8
+ comments:
9
+ reviewed_by: josh.pencheon
10
+ safe_revision: 71f6a631758a5a38814d3eafec407e0fde30101f
11
+ ".github/workflows/test.yml":
12
+ comments:
13
+ reviewed_by: josh.pencheon
14
+ safe_revision: 865fc970554fee9207f8e3cd0247133c6a849b24
3
15
  ".gitignore":
4
16
  comments:
5
17
  reviewed_by: timgentry
@@ -9,17 +21,13 @@ file safety:
9
21
  reviewed_by: timgentry
10
22
  safe_revision: 0b34688f1198eace9310f47060aa8915f5b44985
11
23
  ".rubocop.yml":
12
- comments:
13
- reviewed_by: timgentry
14
- safe_revision: 5bc563431f7822e2baf37bbeac9861c36675602d
15
- ".travis.yml":
16
24
  comments:
17
25
  reviewed_by: josh.pencheon
18
- safe_revision: bb0b75b6914deea03a7a520cd0827eaf5ecab92f
26
+ safe_revision: 146b255b240b0efc928d39dd1b70ab221ddc3138
19
27
  CHANGELOG.md:
20
28
  comments:
21
29
  reviewed_by: josh.pencheon
22
- safe_revision: 171f61eb19427e34aeb4d6e901260d447094b6d0
30
+ safe_revision: f84cb2190f46ee550db796a17455980ab00d3187
23
31
  CODE_OF_CONDUCT.md:
24
32
  comments:
25
33
  reviewed_by: drewthorp
@@ -35,7 +43,7 @@ file safety:
35
43
  README.md:
36
44
  comments:
37
45
  reviewed_by: josh.pencheon
38
- safe_revision: 33feeeaa4b2089e33f563e4c766e91c38b108e36
46
+ safe_revision: 8c07968aa84db92b6f1cc528180f73530ddc6ff5
39
47
  Rakefile:
40
48
  comments:
41
49
  reviewed_by: timgentry
@@ -51,7 +59,7 @@ file safety:
51
59
  canql.gemspec:
52
60
  comments:
53
61
  reviewed_by: josh.pencheon
54
- safe_revision: bb0b75b6914deea03a7a520cd0827eaf5ecab92f
62
+ safe_revision: 146b255b240b0efc928d39dd1b70ab221ddc3138
55
63
  lib/canql.rb:
56
64
  comments:
57
65
  reviewed_by: timgentry
@@ -100,7 +108,7 @@ file safety:
100
108
  comments: It is a known issue that this is potentially susceptible to certain
101
109
  kinds of DoS attack
102
110
  reviewed_by: josh.pencheon
103
- safe_revision: 43425805d9ad4a99e63eeb5d50495fa14eaa053b
111
+ safe_revision: 7490099869e368dcd5c26ded11eb90229baf4cae
104
112
  lib/canql/grammars/perinatal_hospital.treetop:
105
113
  comments:
106
114
  reviewed_by: josh.pencheon
@@ -113,7 +121,7 @@ file safety:
113
121
  comments: It is a known issue that this is potentially susceptible to certain
114
122
  kinds of DoS attack
115
123
  reviewed_by: josh.pencheon
116
- safe_revision: 4e26ac746098452b01dac88373e401e39f309b74
124
+ safe_revision: 293248a17d087d7557a6aacdcb5bf3fbec946b87
117
125
  lib/canql/grammars/test_result.treetop:
118
126
  comments: It is a known issue that this is potentially susceptible to certain
119
127
  kinds of DoS attack
@@ -122,7 +130,7 @@ file safety:
122
130
  lib/canql/grammars/test_result_group.treetop:
123
131
  comments:
124
132
  reviewed_by: josh.pencheon
125
- safe_revision: 42bb9bd177a761b9d04d728e53fcf0ebd0083ae4
133
+ safe_revision: 8ea906ca663b98edee2592fc5b0731881573f06b
126
134
  lib/canql/nodes.rb:
127
135
  comments:
128
136
  reviewed_by: josh.pencheon
@@ -158,7 +166,7 @@ file safety:
158
166
  lib/canql/nodes/patient.rb:
159
167
  comments:
160
168
  reviewed_by: josh.pencheon
161
- safe_revision: 43425805d9ad4a99e63eeb5d50495fa14eaa053b
169
+ safe_revision: 7490099869e368dcd5c26ded11eb90229baf4cae
162
170
  lib/canql/nodes/perinatal_hospital.rb:
163
171
  comments:
164
172
  reviewed_by: josh.pencheon
@@ -186,7 +194,7 @@ file safety:
186
194
  lib/canql/version.rb:
187
195
  comments:
188
196
  reviewed_by: josh.pencheon
189
- safe_revision: 171f61eb19427e34aeb4d6e901260d447094b6d0
197
+ safe_revision: cfe2f76a07880e268e1f29fbac5f6cd380202ce3
190
198
  test/anomaly_test_helper.rb:
191
199
  comments:
192
200
  reviewed_by: josh.pencheon
@@ -210,7 +218,7 @@ file safety:
210
218
  test/nodes/case_test.rb:
211
219
  comments:
212
220
  reviewed_by: josh.pencheon
213
- safe_revision: 43425805d9ad4a99e63eeb5d50495fa14eaa053b
221
+ safe_revision: 7490099869e368dcd5c26ded11eb90229baf4cae
214
222
  test/nodes/code_test.rb:
215
223
  comments:
216
224
  reviewed_by: josh.pencheon
@@ -218,7 +226,7 @@ file safety:
218
226
  test/nodes/e_base_records_test.rb:
219
227
  comments:
220
228
  reviewed_by: josh.pencheon
221
- safe_revision: 511e4238f83eb5b32839c25d94ec2a59145539bb
229
+ safe_revision: 293248a17d087d7557a6aacdcb5bf3fbec946b87
222
230
  test/nodes/genetic_tests_test.rb:
223
231
  comments:
224
232
  reviewed_by: josh.pencheon
@@ -250,19 +258,19 @@ file safety:
250
258
  test/nodes/registry_test.rb:
251
259
  comments:
252
260
  reviewed_by: josh.pencheon
253
- safe_revision: 511e4238f83eb5b32839c25d94ec2a59145539bb
261
+ safe_revision: 293248a17d087d7557a6aacdcb5bf3fbec946b87
254
262
  test/nodes/test_result_groups_test.rb:
255
263
  comments:
256
264
  reviewed_by: josh.pencheon
257
- safe_revision: 42bb9bd177a761b9d04d728e53fcf0ebd0083ae4
265
+ safe_revision: 8ea906ca663b98edee2592fc5b0731881573f06b
258
266
  test/nodes/test_results_test.rb:
259
267
  comments:
260
268
  reviewed_by: josh.pencheon
261
269
  safe_revision: 511e4238f83eb5b32839c25d94ec2a59145539bb
262
270
  test/parser_test.rb:
263
271
  comments:
264
- reviewed_by: timgentry
265
- safe_revision: 05ccd47fcbba92bf5525c4d36118274696169d61
272
+ reviewed_by: josh.pencheon
273
+ safe_revision: 293248a17d087d7557a6aacdcb5bf3fbec946b87
266
274
  test/test_helper.rb:
267
275
  comments:
268
276
  reviewed_by: josh.pencheon
@@ -50,7 +50,8 @@ module Canql
50
50
  'delivery postcode' / 'booking postcode' / 'birth weight' /
51
51
  'place of delivery' / 'sex' / 'outcome' / 'edd' /
52
52
  'expected delivery date' / 'booking hospital' / 'screening status' /
53
- 'number of fetuses at delivery' / 'malformed in set'
53
+ 'number of fetuses at delivery' / 'malformed in set' / 'gestation at delivery' /
54
+ 'booking date'
54
55
  )
55
56
  end
56
57
 
@@ -14,14 +14,15 @@ module Canql
14
14
 
15
15
  rule registry_abbr
16
16
  (england / east_mids / thames / east / yorkshire / north_east / north_west /
17
- west_mids / south_west / wessex / london / limbo)
17
+ west_mids / south_west_supra / south_west / wessex / london / limbo /
18
+ northern_supra / midlands_east_supra)
18
19
  end
19
20
 
20
21
  rule thames
21
22
  ('thames valley' / 'thames')
22
23
  {
23
24
  def to_registrycode
24
- '68'
25
+ 'thames'
25
26
  end
26
27
  }
27
28
  end
@@ -30,7 +31,7 @@ module Canql
30
31
  ('east mids' / 'east midlands and south yorkshire' / 'east midlands')
31
32
  {
32
33
  def to_registrycode
33
- '72'
34
+ 'east_mids'
34
35
  end
35
36
  }
36
37
  end
@@ -39,7 +40,7 @@ module Canql
39
40
  'yorkshire'
40
41
  {
41
42
  def to_registrycode
42
- '93'
43
+ 'yorkshire'
43
44
  end
44
45
  }
45
46
  end
@@ -48,7 +49,7 @@ module Canql
48
49
  'north east'
49
50
  {
50
51
  def to_registrycode
51
- '73'
52
+ 'north_east'
52
53
  end
53
54
  }
54
55
  end
@@ -57,7 +58,7 @@ module Canql
57
58
  'north west'
58
59
  {
59
60
  def to_registrycode
60
- '94'
61
+ 'north_west'
61
62
  end
62
63
  }
63
64
  end
@@ -66,7 +67,7 @@ module Canql
66
67
  ('west mids' / 'west midlands')
67
68
  {
68
69
  def to_registrycode
69
- '99'
70
+ 'west_mids'
70
71
  end
71
72
  }
72
73
  end
@@ -75,7 +76,7 @@ module Canql
75
76
  'south west'
76
77
  {
77
78
  def to_registrycode
78
- '84'
79
+ 'south_west'
79
80
  end
80
81
  }
81
82
  end
@@ -84,7 +85,7 @@ module Canql
84
85
  'wessex'
85
86
  {
86
87
  def to_registrycode
87
- '70'
88
+ 'wessex'
88
89
  end
89
90
  }
90
91
  end
@@ -93,7 +94,7 @@ module Canql
93
94
  ('london and south east' / 'london')
94
95
  {
95
96
  def to_registrycode
96
- '95'
97
+ 'london'
97
98
  end
98
99
  }
99
100
  end
@@ -102,7 +103,7 @@ module Canql
102
103
  ('east of england' / 'east')
103
104
  {
104
105
  def to_registrycode
105
- '96'
106
+ 'east'
106
107
  end
107
108
  }
108
109
  end
@@ -111,7 +112,7 @@ module Canql
111
112
  'limbo'
112
113
  {
113
114
  def to_registrycode
114
- '01'
115
+ 'limbo'
115
116
  end
116
117
  }
117
118
  end
@@ -120,7 +121,34 @@ module Canql
120
121
  'england'
121
122
  {
122
123
  def to_registrycode
123
- '00'
124
+ 'england'
125
+ end
126
+ }
127
+ end
128
+
129
+ rule northern_supra
130
+ ('northern supra' / 'northern')
131
+ {
132
+ def to_registrycode
133
+ 'northern_supra'
134
+ end
135
+ }
136
+ end
137
+
138
+ rule midlands_east_supra
139
+ ('midlands & east supra' / 'midlands & east')
140
+ {
141
+ def to_registrycode
142
+ 'midlands_east_supra'
143
+ end
144
+ }
145
+ end
146
+
147
+ rule south_west_supra
148
+ 'south west supra'
149
+ {
150
+ def to_registrycode
151
+ 'south_west_supra'
124
152
  end
125
153
  }
126
154
  end
@@ -10,7 +10,7 @@ module Canql
10
10
  end
11
11
 
12
12
  rule test_result_group_names
13
- space ('screening' / 'anomaly scan') word_break
13
+ space ('screening' / 'anomaly scan' / 'fetal medicine' / 'dating') word_break
14
14
  end
15
15
  end
16
16
  end
@@ -54,7 +54,9 @@ module Canql #:nodoc: all
54
54
  'booking hospital': { patient: 'booking_hospital' },
55
55
  'screening status': { patient: 'screeningstatus' },
56
56
  'number of fetuses at delivery': { patient: 'numoffetusesatdelivery' },
57
- 'malformed in set': { patient: 'malformedinset' }
57
+ 'malformed in set': { patient: 'malformedinset' },
58
+ 'gestation at delivery': { patient: 'gestationallength' },
59
+ 'booking date': { patient: 'firstbookingdate' }
58
60
  }.freeze
59
61
 
60
62
  def meta_data_item
@@ -2,5 +2,5 @@
2
2
 
3
3
  # This stores the current version of the Canql gem
4
4
  module Canql
5
- VERSION = '4.4.1'
5
+ VERSION = '5.0.0'
6
6
  end
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.1
4
+ version: 5.0.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: 2021-01-13 00:00:00.000000000 Z
11
+ date: 2021-01-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: chronic
@@ -154,14 +154,14 @@ dependencies:
154
154
  requirements:
155
155
  - - "~>"
156
156
  - !ruby/object:Gem::Version
157
- version: '5.6'
157
+ version: '5.9'
158
158
  type: :development
159
159
  prerelease: false
160
160
  version_requirements: !ruby/object:Gem::Requirement
161
161
  requirements:
162
162
  - - "~>"
163
163
  - !ruby/object:Gem::Version
164
- version: '5.6'
164
+ version: '5.9'
165
165
  - !ruby/object:Gem::Dependency
166
166
  name: pry
167
167
  requirement: !ruby/object:Gem::Requirement
@@ -210,6 +210,9 @@ executables: []
210
210
  extensions: []
211
211
  extra_rdoc_files: []
212
212
  files:
213
+ - ".github/CODEOWNERS"
214
+ - ".github/workflows/lint.yml"
215
+ - ".github/workflows/test.yml"
213
216
  - ".gitignore"
214
217
  - ".hound.yml"
215
218
  - ".rubocop.yml"