2019-05-10 16:44:59 +02:00
|
|
|
library(dplyr)
|
|
|
|
|
|
|
|
# Installed WHONET 2019 software on Windows (http://www.whonet.org/software.html),
|
|
|
|
# opened C:\WHONET\Codes\WHONETCodes.mdb in MS Access
|
|
|
|
# and exported table 'DRGLST1' to MS Excel
|
2020-02-14 19:54:13 +01:00
|
|
|
DRGLST1 <- readxl::read_excel("data-raw/DRGLST1.xlsx", na = c("", "NA", "-"))
|
2019-05-10 16:44:59 +02:00
|
|
|
rsi_translation <- DRGLST1 %>%
|
|
|
|
# only keep CLSI and EUCAST guidelines:
|
|
|
|
filter(GUIDELINES %like% "^(CLSI|EUCST)") %>%
|
2020-01-27 11:37:00 +01:00
|
|
|
mutate(DISK_S = ifelse(as.double(DISK_S) > 50, 50, DISK_S),
|
|
|
|
MIC_R = ifelse(as.double(MIC_R) %in% c(1025, 129, 513), as.double(MIC_R) - 1, MIC_R)) %>%
|
2019-05-10 16:44:59 +02:00
|
|
|
# set a nice layout:
|
|
|
|
transmute(guideline = gsub("([0-9]+)$", " 20\\1", gsub("EUCST", "EUCAST", GUIDELINES)),
|
|
|
|
method = TESTMETHOD,
|
2019-10-23 14:48:25 +02:00
|
|
|
site = SITE_INF,
|
2019-05-10 16:44:59 +02:00
|
|
|
mo = as.mo(ORG_CODE),
|
|
|
|
ab = as.ab(WHON5_CODE),
|
|
|
|
ref_tbl = REF_TABLE,
|
|
|
|
dose_disk = POTENCY,
|
2020-01-27 11:37:00 +01:00
|
|
|
S_disk = as.disk(DISK_S),
|
2019-05-10 16:44:59 +02:00
|
|
|
R_disk = as.disk(DISK_R),
|
|
|
|
S_mic = as.mic(MIC_S),
|
2020-01-27 11:37:00 +01:00
|
|
|
R_mic = as.mic(MIC_R)) %>%
|
2019-10-23 14:48:25 +02:00
|
|
|
filter(!is.na(mo) & !is.na(ab) & !mo %in% c("UNKNOWN", "B_GRAMN", "B_GRAMP", "F_FUNGUS", "F_YEAST")) %>%
|
2019-05-10 16:44:59 +02:00
|
|
|
arrange(desc(guideline), mo, ab)
|
|
|
|
|
2019-09-18 15:46:09 +02:00
|
|
|
print(mo_failures())
|
|
|
|
|
2019-05-10 16:44:59 +02:00
|
|
|
# create 2 tables: MIC and disk
|
|
|
|
tbl_mic <- rsi_translation %>%
|
|
|
|
filter(method == "MIC") %>%
|
2019-10-23 14:48:25 +02:00
|
|
|
mutate(breakpoint_S = as.double(S_mic), breakpoint_R = as.double(R_mic))
|
2019-05-10 16:44:59 +02:00
|
|
|
tbl_disk <- rsi_translation %>%
|
|
|
|
filter(method == "DISK") %>%
|
2019-10-23 14:48:25 +02:00
|
|
|
mutate(breakpoint_S = as.double(S_disk), breakpoint_R = as.double(R_disk))
|
2019-05-10 16:44:59 +02:00
|
|
|
|
|
|
|
# merge them so every record is a unique combination of method, mo and ab
|
2019-10-23 14:48:25 +02:00
|
|
|
rsi_translation <- bind_rows(tbl_mic, tbl_disk) %>%
|
|
|
|
rename(disk_dose = dose_disk) %>%
|
|
|
|
mutate(disk_dose = gsub("µ", "u", disk_dose)) %>%
|
2020-02-14 19:54:13 +01:00
|
|
|
select(-ends_with("_mic"), -ends_with("_disk"))
|
|
|
|
|
|
|
|
# add new EUCAST with read_EUCAST.R
|
|
|
|
rsi_translation <- rsi_translation %>%
|
|
|
|
bind_rows(new_EUCAST) %>%
|
|
|
|
mutate(uti = site %like% "(UTI|urinary)") %>%
|
2019-05-10 16:44:59 +02:00
|
|
|
as.data.frame(stringsAsFactors = FALSE) %>%
|
|
|
|
# force classes again
|
|
|
|
mutate(mo = as.mo(mo),
|
2020-02-14 19:54:13 +01:00
|
|
|
ab = as.ab(ab)) %>%
|
|
|
|
arrange(desc(guideline), ab, mo, method)
|
2019-05-10 16:44:59 +02:00
|
|
|
|
|
|
|
# save to package
|
|
|
|
usethis::use_data(rsi_translation, overwrite = TRUE)
|
|
|
|
rm(rsi_translation)
|
2019-09-20 12:33:05 +02:00
|
|
|
devtools::load_all(".")
|