-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathproviders.Rmd
342 lines (283 loc) · 17.2 KB
/
providers.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
---
title: "Explore Providers"
description: |
Which providers are offering the vaccine closest to you? <ul class="list-inline title-nav">
<li class="list-inline-item-nav"><div class = "go-to-nav" >Go to: </div></li>
<li class="list-inline-item-nav">
<a href="pace.html"> <button type="button" class="btn btn-outline-light mb-2"> Pace </button>
</a>
</li>
<li class="list-inline-item-nav">
<a href="equity.html"> <button type="button" class="btn btn-outline-light mb-2"> Equity </button>
</a>
</li>
</ul>
output:
distill::distill_article:
toc: true
css: provider_header.css
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = FALSE)
```
```{r eval=FALSE, fig.width=11, include=FALSE, layout="l-page"}
library(gt)
library(tidyverse)
library(ggforce)
library(readxl)
library(janitor)
today <- Sys.Date()
src <- "https://dshs.texas.gov/immunize/covid19/COVID-19-Vaccine-Data-by-County.xls" # URL For Daily COVID Data
lcl <- basename(src)
filepath <- paste0(today,"_",lcl,"x")
download.file(url = src, destfile = filepath) # Downloads The Data
today_lbl <- format(Sys.Date(), format = "%b %d, %Y")
# today_lbl <- format(Sys.Date(), format = "%b %d, %Y")
time_lbl <- format(Sys.time(), format = "%I:%M %p")
vaccine_summ <- read_excel(filepath, sheet = "By County", skip=0) %>%
clean_names() %>%
filter(county_name=="Texas") %>%
mutate(across(total_doses_allocated:population_education_and_child_care_personnel, as.numeric)) %>%
select(county_name, population_16, people_fully_vaccinated, total_doses_allocated, starts_with("population_phase_")) %>%
mutate(population_phase_remaining = population_16 - (population_phase_1a_healthcare_workers +
population_phase_1a_long_term_care_residents +
population_16_64_any_medical_condition),
remaining_box_start = population_16 - population_phase_remaining) %>%
rename(`Phase 1A - Healthcare Workers`=population_phase_1a_healthcare_workers,
`Phase 1A - Long Term Care`=population_phase_1a_long_term_care_residents,
`Phase 1B - 65+ and High Risk`=population_16_64_any_medical_condition,
`Future Phases`=population_phase_remaining) %>%
pivot_longer(cols=contains("Phase"), names_to = "phase_pop_est", values_to = "value") %>%
mutate(order = case_when(
phase_pop_est == "Phase 1A - Healthcare Workers" ~ 1,
phase_pop_est == "Phase 1A - Long Term Care" ~ 2,
phase_pop_est == "Phase 1B - 65+ and High Risk" ~ 3,
),
prev_1 = lag(value, 1),
prev_2 = lag(value, 2),
prev_1 = replace_na(prev_1, 0),
prev_2 = replace_na(prev_2, 0)) %>%
mutate(lab_pos = (value/2) + (prev_1 + prev_2))
box_start <- unique(vaccine_summ$remaining_box_start)
box_end <- unique(vaccine_summ$population_16)
fully_vac_lbl <- scales::comma(unique(vaccine_summ$people_fully_vaccinated))
shipped_lbl <- scales::comma(unique(vaccine_summ$total_doses_allocated))
vaccine_summ %>%
ggplot() +
geom_col(data = . %>% slice(1), aes(y=county_name, x=population_16), fill = "#333f48", alpha = .05) +
geom_col(data = vaccine_summ %>% filter(phase_pop_est != "Future Phases"), aes(y=county_name, x=value, fill = reorder(phase_pop_est,desc(order))), alpha=.7) +
annotate(geom = "rect", alpha = 0, color = "#333f48", linetype = 2,
xmin = box_start, xmax = box_end, ymin = .55, ymax = 1.45) +
geom_text(data = . %>% filter(phase_pop_est != "Future Phases"), angle=90, color="white", size = 3.1, family = "Graphik-Semibold",
aes(y=county_name, x=lab_pos, label = reorder(phase_pop_est,desc(order)))) +
geom_text(data = vaccine_summ %>% filter(phase_pop_est == "Future Phases"), color="#2d2d2d", size = 6, hjust = 0.35,
family = "Graphik-Semibold", aes(y=county_name, x=lab_pos), label = "Remaining Pop. (16+) in Future Phases") +
geom_vline(aes(xintercept=total_doses_allocated), linetype = 2, size = .9, color = "#2d2d2d") +
geom_vline(aes(xintercept=people_fully_vaccinated), linetype = 2, size = .9, color = "#2d2d2d") +
scale_x_continuous(labels = scales::unit_format(unit = "M", accuracy = 1, scale = 1e-6)) +
scale_fill_manual(values = c("#005f86", "#9cadb7","#bf5700")) +
guides(fill=guide_legend(title = "Legend",
keyheight = .8)) +
annotate(
geom = "curve", color = "#2d2d2d", x = 4158050, y = 1.55, xend = 3458050, yend = 1.5,
curvature = .1, arrow = arrow(length = unit(2, "mm"))
) +
annotate(geom = "label", x = 4158050, y = 1.53, color = "#2d2d2d",
label = glue::glue("Doses Shipped: {shipped_lbl}"), family = "Graphik", hjust = "left") +
annotate(
geom = "curve", color = "#2d2d2d", x = 902396, y = .48, xend = 302396, yend = .54 ,
curvature = -.1, arrow = arrow(length = unit(2, "mm"))
) +
annotate(geom = "label", x = 902396, y = .5, color = "#2d2d2d",
label = glue::glue("Persons Fully Vacinated: {fully_vac_lbl}"), family = "Graphik", hjust = "left") +
theme_minimal(base_family = "Graphik") +
theme(plot.title = element_text(family = "Graphik-Bold", color = "#333f48", size =20),
plot.subtitle = element_text(family = "Graphik-Regular", color = "#333f48", margin = margin(b=15)),
panel.grid.major.y = element_blank(),
plot.margin = margin(t=15, r=15, b=10, l = 15),
axis.text.y = element_blank(),
legend.position = "none") +
labs(title = "Texas Summary of Vaccination Progress",
subtitle = paste0("Source: Texas Department of State Health Services. As of ", today_lbl, " at ", time_lbl),
x = NULL,
y = NULL,
color = NULL,
caption = "Data File: 'Accessible Vaccine Dashboard Data'\nLink: https://dshs.texas.gov/immunize/covid19/COVID-19-Vaccine-Data-by-County.xls\nChart by: @mrworthington") #+
# ggsave(paste0(today,"_","tx_vaccine_summary.png"), dpi = 300, width = 11, height = 4.5)
```
```{r eval=FALSE, include=FALSE}
today <- Sys.Date()
src <- "https://genesis.soc.texas.gov/files/accessibility/vaccineprovideraccessibilitydata.csv"
lcl <- basename(src)
filepath <- paste0(today,"_",lcl)
download.file(url = src, destfile = filepath)
# provider_locations <- read_rds("clean_data/vaccine_supply_by_site.rds") %>%
# select(name, street, lat, lon)
supply_by_provider_type <- read_csv(filepath, skip=0) %>%
janitor::clean_names() %>%
group_by(type) %>%
summarise(tot_shipped = sum(total_shipped),
tot_avail = sum(total_available))
supply_by_provider_type %>%
drop_na() %>%
ggplot(aes(x=reorder(type, desc(tot_shipped)), y = tot_shipped, fill=type)) +
geom_col() +
theme_minimal(base_family = "Graphik") +
geom_text(angle=90, color="#2d2d2d", size = 3.1, family = "Graphik-Semibold",
aes(y= 0, x=type, label = type), hjust = 0) +
scale_y_continuous(labels = scales::unit_format(unit = "K", accuracy = 1, scale = 1e-3)) +
ggthemes::scale_fill_tableau(palette = "Tableau 20") +
theme(plot.title = element_text(family = "Graphik-Bold", color = "#333f48", size =20),
plot.subtitle = element_text(family = "Graphik-Regular", color = "#333f48", margin = margin(b=15)),
panel.grid.major.y = element_blank(),
plot.margin = margin(t=15, r=15, b=10, l = 15),
axis.text.x = element_blank(),
legend.position = "none") +
labs(title = "Reported Total Supply by Provider Type",
subtitle = paste0("Source: Texas Department of State Health Services. As of ", today_lbl, " at ", time_lbl),
x = NULL,
y = "Doses (Shipped)",
color = NULL,
caption = "Data File: 'Texas Vaccine Provider Data'\nLink: https://genesis.soc.texas.gov/files/accessibility/vaccineprovideraccessibilitydata.csv\nChart by: @mrworthington") +
ggsave(paste0(today,"_","supply_by_provider_type.png"), dpi = 300, width = 11, height = 4.5)
supply_by_provider_type %>%
drop_na() %>%
ggplot(aes(x=reorder(type, desc(tot_avail)), y = tot_avail, fill=type)) +
geom_col() +
theme_minimal(base_family = "Graphik") +
geom_text(angle=90, color="#2d2d2d", size = 3.1, family = "Graphik-Semibold",
aes(y= 0, x=type, label = type), hjust = 0) +
scale_y_continuous(labels = scales::unit_format(unit = "K", accuracy = 1, scale = 1e-3)) +
ggthemes::scale_fill_tableau(palette = "Tableau 20") +
theme(plot.title = element_text(family = "Graphik-Bold", color = "#333f48", size =20),
plot.subtitle = element_text(family = "Graphik-Regular", color = "#333f48", margin = margin(b=15)),
panel.grid.major.y = element_blank(),
plot.margin = margin(t=15, r=15, b=10, l = 15),
axis.text.x = element_blank(),
legend.position = "none") +
labs(title = "Reported Availability by Provider Type",
subtitle = paste0("Source: Texas Department of State Health Services. As of ", today_lbl, " at ", time_lbl),
x = NULL,
y = "Doses (Available)",
color = NULL,
caption = "Data File: 'Texas Vaccine Provider Data'\nLink: https://genesis.soc.texas.gov/files/accessibility/vaccineprovideraccessibilitydata.csv\nChart by: @mrworthington") +
ggsave(paste0(today,"_","availability_by_provider_type.png"), dpi = 300, width = 11, height = 4.5)
```
## Eligible Populations
As of Monday, May 12, 2021, everyone age 12 and older is now eligible to receive a COVID-19 vaccine in Texas. To learn more about each of the populations, expand the summaries below.
<details class = "l-body">
<summary><strong>Eligible Population | </strong>Ages 16 and older</summary>
As of Monday, May 12, 2021, everyone age 12 and older is now eligible to receive a COVID-19 vaccine in Texas. This comes from the [Texas Department of State Health Services (DSHS)](https://dshs.texas.gov/news/releases/2021/20210512.aspx).
DSHS has directed vaccine providers to prioritize people 80 years old or older when scheduling appointments and accommodate anyone in that age group who presents for vaccination, whether or not they have an appointment, by immediately moving them to the front of the line. That will ensure vaccination of anyone 80 or older with as small a burden on themselves as possible.
</details>
### Past Phases
<details class = "l-body">
<summary><strong>Eligible Population | </strong>Phase 1A</summary>
\newline
Below is a description of the Phase 1A population, as described by [the Texas Department of State Health Services](https://dshs.texas.gov/coronavirus/immunize/vaccine/EVAP-Phase1A.pdf).
<!-- ## Phase 1A {.unlisted .unnumbered} -->
### First Tier
* Paid and unpaid workers in hospital settings working directly with patients who are positive or at high risk for COVID-19. Such as but not limited to:
* Physicians, nurses, respiratory therapists and other support staff (custodial staff, etc.)
* Additional clinical staff providing supporting laboratory, pharmacy, diagnostic and/or rehabilitation services
* Others having direct contact with patients or infectious materials
* Long-term care staff working directly with vulnerable residents. Includes:
* Direct care providers at nursing homes, assisted living facilities, and state supported living centers
* Physicians, nurses, personal care assistants, custodial, food service staff
* EMS providers who engage in 9-1-1 emergency services like pre-hospital care and
transport
* Home health care workers, including hospice care, who directly interface with
vulnerable and high-risk patients
* Residents of long-term care facilities
### Second Tier
* Staff in outpatient care settings who interact with symptomatic patients. Such as but not limited to:
* Physicians, nurses, and other support staff (custodial staff, etc.)
* Clinical staff providing diagnostic, laboratory, and/or rehabilitation services
* Non 9-1-1 transport for routine care
* Healthcare workers in corrections and detention facilities
* Direct care staff in freestanding emergency medical care facilities and urgent care clinics
* Community pharmacy staff who may provide direct services to clients, including
vaccination or testing for individuals who may have COVID
* Public health and emergency response staff directly involved in administration of COVID
testing and vaccinations
* Last responders who provide mortuary or death services to decedents with COVID-19.
Includes:
* Embalmers and funeral home workers who have direct contact with decedents
* Medical examiners and other medical certifiers who have direct contact with decedents
* School nurses who provide health care to students and teachers
```{r eval=FALSE, include=FALSE}
library(gt)
library(tidyverse)
library(readxl)
library(janitor)
today <- Sys.Date()
src <- "https://dshs.texas.gov/immunize/covid19/COVID-19-Vaccine-Data-by-County.xls" # URL For Daily COVID Data
lcl <- basename(src)
filepath <- paste0(today,"_",lcl,"x")
download.file(url = src, destfile = filepath) # Downloads The Data
read_excel(filepath, sheet = "By County", skip=0) %>%
clean_names() %>%
select(county_name, total_doses_allocated, vaccine_doses_administered) %>%
mutate(total_doses_allocated = as.numeric(total_doses_allocated),
vaccine_doses_administered = as.numeric(vaccine_doses_administered)) %>%
filter(county_name=="Texas") %>%
pivot_longer(cols=c(total_doses_allocated, vaccine_doses_administered), names_to = "type", values_to = "value") %>%
gt() %>%
tab_header(title = md("**Phase 1B Eligibility**"),
subtitle = "Source: Texas Department of State Health Services | As of January 10th at 3:00PM CST") %>%
tab_source_note(
source_note = "*Unable to deduplicate figures for Commercial labs."
) %>%
tab_footnote(footnote = md("[Data: From the 'Accessible Dashboard Data' File, under the 'Tests' tab.](https://www.dshs.state.tx.us/coronavirus/additionaldata/)"), locations = cells_title("subtitle")) %>%
fmt_number(columns="value", suffixing=TRUE) %>%
cols_label(county_name=md("**Location**"),
type=md("**Type**"),
value=md("**Value**")) %>%
tab_options(
grand_summary_row.background.color = "#f5f5f5",
heading.title.font.weight = "800",
)
```
</details>
<details class = "l-body">
<summary><strong>Eligible Population | </strong>Phase 1B</summary>
\newline
Below is a description of the Phase 1B population, as described by [the Texas Department of State Health Services](https://dshs.texas.gov/coronavirus/immunize/vaccine/EVAP-Phase1B.pdf).
<!-- ## Phase 1B {.unlisted .unnumbered} -->
* People 65 years of age and older
* People 16 years of age and older with at least one chronic medical condition that puts
them at increased risk for severe illness from the virus that causes COVID-19, such as but not limited to:
* Cancer
* Chronic kidney disease
* COPD (chronic obstructive pulmonary disease)
* Heart conditions, such as heart failure, coronary artery disease or cardiomyopathies
* Solid organ transplantation
* Obesity and severe obesity (body mass index of 30 kg/m2 or higher)
* Pregnancy
* Sickle cell disease
* Type 2 diabetes mellitus
</details>
<details class = "l-body">
<summary><strong>Eligible Population | </strong>Phase 1C</summary>
\newline
Below is a description of the Phase 1C population, as described by [the Texas Department of State Health Services](https://dshs.texas.gov/coronavirus/immunize/vaccine/EVAP-Phase1C.pdf).
* People 50 to 64 years of age
</details>
<details class = "l-body">
<summary><strong>Eligible Population | </strong>School & Childcare Personnel</summary>
\newline
Below is a description of the School & Childcare personnel outlined in a federal directive, as described by [the Texas Department of State Health Services](https://dshs.texas.gov/immunize/covid19/HHSDirectiveforCertainEducationalandChildCareWorkers.pdf).
<!-- ## School and Childcare Personnel {.unlisted .unnumbered} -->
With the [federal directive](https://dshs.texas.gov/immunize/covid19/HHSDirectiveforCertainEducationalandChildCareWorkers.pdf), the following education and child care personnel are now eligible to be vaccinated in Texas:
* Those who work in pre-primary, primary, and secondary schools;
* Head Start and Early Head Start programs (including teachers, staff, and bus drivers); and
* Those who work as or for licensed child care providers, including center-based and family care providers.
</details>
## Vaccine Providers
The tool below is a resource designed to help you find a vaccine provider in your county that has recently reported having availability. To learn more about whether or not you are currently eligible, please read the "Eligible Populations" section above. Enter a zip code, city, county, or complete address[^1] to see the latest data on providers in your county.
[^1]: A street address should contain a Street Number, Street Name, and a city. Unit and/or apartment numbers are not needed.
```{r echo=FALSE, message=FALSE, warning=FALSE, layout = "l-screen-inset"}
knitr::include_app("https://mrworthington.shinyapps.io/tx_vaccine-explorer/", height = "1800px")
```
## Photography Credit {.appendix}
<span>Photo by <a href="https://www.tedeytan.com">Ted Eytan</a> on <a href="https://www.flickr.com/photos/taedc/30490299982/in/photolist-NNGFHA-NYZdwa-NwpdCG-NResH2-NYYMEX-NwpnXJ-NYYUYp-NsjKVh-MEQWbW-N29Gmf-ME7Xkd-MEQUEE-MEQSYJ-NbaP55-MEQJaG-MEEvbp-MEQRyE-MEQKJo-NbaMXL-NbaRwj-NbaQ8h-NwoDyA-NRdtkr-NNG3VY-NRdqde-NNFZts-NRenGk-N2a2Zd-NReh84-NVKZxu-N2aGRG-NRe48B-NRejWa-NReiCi-N1SaC2-NNGjL5-N1ScBT-NYZbcF-NRe2Cx-N1Rsdt-N1RgW6-NwoP8A-NRd3fr-N1QYfz-N1Rv9D-NRd8Gi-NYZ3bF">Flickr</a></span>