-
Notifications
You must be signed in to change notification settings - Fork 0
/
R_in_an_NHSTrust.Rmd
367 lines (244 loc) · 7.54 KB
/
R_in_an_NHSTrust.Rmd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
---
title: "R in an NHS Trust"
author: "Chris Mainey [email protected]"
date: "2019/07/24 (updated: `r Sys.Date()`)"
output:
xaringan::moon_reader:
chakra: libs/remark-latest.min.js
css: HED.css
lib_dir: libs
seal: false
nature:
highlightStyle: github
highlightLines: true
countIncrementalSlides: false
---
class: center
```{r setup, include=FALSE}
options(htmltools.dir.version = FALSE)
```
<br><br><br><br>
## Driving `R` adoption in an NHS information service: barriers and solutions
<br>
.pull-left[
__Chris Mainey__
<p style="font-size:26;">Intelligence Analyst<br>
<b>University Hospitals Birmingham
NHS Foundation Trust</b></p>
<br>
<span style="font-size:26;">[[email protected]](mailto:[email protected])</span><br>
`r icon::fa("twitter", color=rgb(148, 198, 0, maxColorValue = 255))` <a href="https://twitter.com/chrismainey?s=09" style="line-height:2;">@chrismainey</a>
]
.pull-right[
<img src= "https://chrismainey.github.io/EARL_2019_presentation/assets/EARL_logo.png" width=80% height=80%>
<br><br>
<img src= "https://chrismainey.github.io/EARL_2019_presentation/assets/HI.png" width=80% height=80%>
]
---
## University Hospitals Birmingham NHS FT
- Second largest acute hospital trust in England
- Four hospital sites seeing approx. 440,000 in-patients per year
--
<br>
.pull-left[
- Large informatics team(s):
- Core Information
- Analytics
- SQL engineers/ Dashboard developers
- Research
- Commercial
]
--
.pull-right[
<br>
___So we're all R-wielding data ninjas, right?___
<img src="https://chrismainey.github.io/EARL_2019_presentation/assets/DN.png" width=50% height=50% align="right">
]
---
## Healthcare Evaluation Data (HED)
<a href="https://www.hed.nhs.uk">www.hed.nhs.uk </a>
.pull-left[
- Online hospital benchmarking system
- Statistical models and analysis tools
- Activity, Mortality, Readmissions, Length-of-Stay, Marketshare etc.
- Used by ~60 NHS and other organisations
- Training and support
<br><br>
- __Using national NHS data__
]
.pull-right[
<br>
<img src="https://chrismainey.github.io/EARL_2019_presentation/assets/HED_system.png">
]
---
## Data analysis tools in the NHS
- Excel and Access were baseline 10-years ago
- Variable reliance on IT departments and external suppliers
- Huge differences in skills across, and within, organisations
- Increasing use of Qlik, PowerBI and Tableau
--
<br>
### UHB:
- Recruited SQL devs and slowly moved whole department
- Excel, SSRS and TIBCO Spotfire used for outputs
---
## Keenies...
.pull-left[
- R was used only for rare 'statistical' calculations
- A few keen researchers or medical students
- Simlar at other Trusts
- Also the case in our team
- __But...__
]
--
.pull-right[
# One keen user...
<img src= './assets/mainard.png' width=80% height=80%>
]
---
## Allowed space to develop:
- PhD project, funded by UHB
- Developed statistical, visualisation and data wrangling skills
--
- Chose to use `R` from the outset, rather than SAS or Stata.
- Python training harder to find when I started
--
<br><br>
### Took a risk
- Moved some HED models to `R`, from SAS
- Supported other team members to use it
- This generated a demand for basic training
---
# Followed established patterns:
- Set up a local user group
--
- Trained senior team
--
- Encouraged new starters to use `R`
--
- External relationships:
- Twitter has been key
- NHS-R Community: https://nhsrcommunity.com/
- External `R` user groups
- Regional relationships: Other Trusts, PHE, City Council
- Advice from Mango, RStudio and others
--
- ___Demonstrated ROI !!!___
---
# Barriers
- __Open Source fears:__ IT teams sometimes reluctant to install
--
- __Wrestling with default settings:__
- Mapped user folders that aren't writable
- Can't write to package library, or download temp files
--
- __Poor hardware__
- Cheap desktops, low on disk space with minimal RAM
--
- __Lack of understanding of fundamentals:__
- Networking/file locations
- Suspicions around security
- `R` coding, or its application to problems
---
# Solutions
- __Permissions:__ _Explicitly identify, and change, default settings_
--
- Set a folders: `R_libs_user` or `.Renviron` file
--
- __Hardware:__
- Make the case for more RAM! It doesn't cost much
- Consider server approaches: VMs or 'Desktop' on a 'Server'
- RStudio Server / RStudio Connect
--
- __Skill/Awareness:__
- Protect time
- Windows users often don't know file paths, SSH etc.
- Central guidance on R/Python implementation
---
# How do we use it?
1. Regression, and related models (`mgcv`, `lme4`, `glmmTMB`, `glmnet`)
1. Machine Learning technique (`caret`, `randomForest`, `gbm`)
1. Optimisation problems (solving equations using `nloptr`)
1. Summary stats and Exploration
1. Data Visualisation (`ggplot2`, `FunnelPlotR`)
1. `RMarkdown` Reports and Presentations
1. API interaction (NHS ODS service, CQC registered organisations)
---
# Initial adoption:
.pull-left[
<br>
<img src= './assets/script.png' width=115% height=130%>
]
.pull-right[
- Collections of `R` scripts saved to directory
- Required lead analyst to write
- Required team skills to run and/or debug
- Constant debugging:
- Data changing
- Littered with comments, hard to decipher
]
---
# Creating a local package
Wrapped functions in to an `R` package structure
- Built binary package and saved to shared folders
--
- Used `roxygen2` to write support material
<img src= './assets/HED_functions.png' width=100% height=100%>
---
# Source control
.pull-left[
- Moved to source control
- Install git for windows
- Git learning curve
- Happy Git with `R`! https://happygitwithr.com/
]
.pull-right[
- Git repo on TFS
- Figure out https connections
- Steph Locke's `tfsr` https://github.com/lockedata/tfsR
]
<img src= './assets/tfsR.png' width=100% height=100%>
---
# NHS-R community
.pull-left[
- Promote `R` use in NHS
- Led by Prof. MA Mohammed
- Funded by grant from the Health Foundation
- Training provision
- Blog posts
- Share best practice
- Development of tools
- National Conference: 4th & 5th November
]
.pull-right[
<br><br><br>
<img src= './assets/NHSR-logo.png' width=100% height=100%>
]
---
## What's next?
- Continuing to develop analyst skills in `R`
--
- Spreading to different teams: control charts, Rmarkdown
--
- Contributing to, or building, Open Source tools with NHS-R community:
- `FunnelPlotR`
- `NHSRdatasets`
--
- Pushing further into ML techniques for prediction
- Improving current models: Ensemble techniques etc.
- Unsupervised techniques for cluster analysis.
---
class: middle
# Thanks for your time!
`r icon::fa("envelope", color=rgb(148, 198, 0, maxColorValue = 255))` <a href="mailto:[email protected];" style="line-height:2;"> [email protected] </a>
<br>
`r icon::fa("globe", color=rgb(148, 198, 0, maxColorValue = 255))` <a href="http://www.hed.nhs.uk" style="line-height:2;">http://www.hed.nhs.uk</a>
<br>
`r icon::fa("twitter", color=rgb(148, 198, 0, maxColorValue = 255))` <a href="https://twitter.com/chrismainey?s=09" style="line-height:2;">@chrismainey</a>
<br>
`r icon::fa("github", color=rgb(148, 198, 0, maxColorValue = 255))` <a href="https://github.com/chrismainey)" style="line-height:2;">chrismainey</a>
<br>
`r icon::fa("globe", color=rgb(148, 198, 0, maxColorValue = 255))` <a href="http://www.mainard.co.uk" style="line-height:2;">http://www.mainard.co.uk</a>
<br>
<br>
<img src= './assets/funnelplotr.png' width=10% height=10% align="middle"> `FunnelPlotR` `r icon::fa("box", color=rgb(148, 198, 0, maxColorValue = 255))` now available on CRAN!