From e7b0f25e672e47b64e8a53b19cc046ae76e85f93 Mon Sep 17 00:00:00 2001 From: Ernest Guevarra Date: Wed, 26 Jun 2024 18:39:08 +0100 Subject: [PATCH 1/2] create list of icd10 unlikely causes of death --- R/data.R | 17 +++++ data-raw/process_unlikely_cod.R | 115 ++++++++++++++++++++++++++++++++ data/icd10_unlikely_cod.rda | Bin 0 -> 6424 bytes inst/WORDLIST | 2 +- man/icd10_unlikely_cod.Rd | 27 ++++++++ 5 files changed, 160 insertions(+), 1 deletion(-) create mode 100644 data/icd10_unlikely_cod.rda create mode 100644 man/icd10_unlikely_cod.Rd diff --git a/R/data.R b/R/data.R index d2efec3..2d0350c 100644 --- a/R/data.R +++ b/R/data.R @@ -43,6 +43,23 @@ "icd11_example" +#' +#' Unlikely causes of death for ICD 10 +#' +#' @format A data frame with 2 columns and 424 rows: +#' +#' | **Variable** | **Description** | +#' | :--- | :--- | +#' | *code* | ICD 10 Cause of Death code | +#' | *title* | Cause of death title | +#' +#' @examples +#' icd10_unlikely_cod +#' +#' @source https://icd.who.int/browse10/Content/statichtml/ICD10Volume2_en_2019.pdf +#' +"icd10_unlikely_cod" + #' #' Unlikely causes of death for ICD 11 diff --git a/data-raw/process_unlikely_cod.R b/data-raw/process_unlikely_cod.R index f3a578a..b4882cf 100644 --- a/data-raw/process_unlikely_cod.R +++ b/data-raw/process_unlikely_cod.R @@ -19,3 +19,118 @@ icd11_unlikely_cod <- rvest::read_html(x = "data-raw/value_sets.html") |> usethis::use_data(icd11_unlikely_cod, compress = "xz") +## ICD 10 unlikely causes of death ---- + +icd_10_guide <- pdftools::pdf_text("data-raw/ICD10Volume2_en_2019.pdf") + + +icd10_unlikely_cod <- icd_10_guide |> + (\(x) x[238:255])() |> + stringr::str_split(pattern = "\n") |> + lapply( + FUN = function(x) ifelse( + stringr::str_detect( + string = x, + pattern = "List of conditions unlikely to cause death|INTERNATIONAL CLASSIFICATION OF DISEASES|[0-9]{3}|Code|HIV|SP3" + ), + "", x + ) |> + (\(x) x[x != ""])() |> + stringr::str_trim(side = "left") |> + stringr::str_replace_all(pattern = "–", replacement = "-") |> + stringr::str_replace_all(pattern = ", ", replacement = ",") + ) + + +icd10_unlikely_cod[[2]] <- icd10_unlikely_cod[[2]] |> + (\(x) c(x[1:23], paste(x[24], x[25]), x[26:27]))() |> + (\(x) c(x[1:24], paste(x[25], x[26])))() + +icd10_unlikely_cod[[3]] <- icd10_unlikely_cod[[3]] |> + (\(x) + c(x[1:2], paste(x[3], x[4]), x[5:7], paste(x[8], x[9]), + x[10:11], paste(x[12], x[13]), paste(x[14], x[15]), x[16:27]) + )() + +icd10_unlikely_cod[[4]] <- icd10_unlikely_cod[[4]] |> + (\(x) c(x[1], paste(x[2], x[3]), x[4:9], paste(x[10], x[11]), x[12:27]))() + +icd10_unlikely_cod[[5]] <- icd10_unlikely_cod[[5]] |> + (\(x) c(x[1:17], paste(x[18], x[19]), x[20:25]))() + +icd10_unlikely_cod[[7]] <- icd10_unlikely_cod[[7]] |> + (\(x) c(x[1:14], paste(x[15], x[16]), x[17:25]))() + +icd10_unlikely_cod[[9]] <- icd10_unlikely_cod[[9]] |> + (\(x) c(x[1:17], paste(x[18], x[19]), x[20], paste(x[21], x[22]), x[23:26]))() + +icd10_unlikely_cod[[10]] <- icd10_unlikely_cod[[10]] |> + (\(x) c(x[1:21], paste(x[22], x[23]), x[24:27]))() + +icd10_unlikely_cod[[13]] <- icd10_unlikely_cod[[13]] |> + (\(x) c(x[1:6], paste(x[7], x[8]), x[9:25]))() + +icd10_unlikely_cod[[14]] <- icd10_unlikely_cod[[14]] |> + (\(x) + c(paste(x[1], x[2]), x[3:6], paste(x[7], x[8]), x[9:11], + paste(x[12], x[13]), x[14:20], paste(x[21], x[22]), paste(x[23], x[24]), + paste(x[25], x[26]), paste(x[27], x[28]), + paste(x[29], icd10_unlikely_cod[[15]][1])) + )() + +icd10_unlikely_cod[[15]] <- icd10_unlikely_cod[[15]] |> + (\(x) + c(paste(x[2], x[3]), paste(x[4], x[5]), paste(x[6], x[7]), x[8], + paste(x[9], x[10]), x[11:15], paste(x[16], x[17]), x[18:22], + paste(x[23], x[24]), x[25:28]) + )() + +icd10_unlikely_cod[[16]] <- icd10_unlikely_cod[[16]] |> + (\(x) c(x[1:19], paste(x[20], x[21]), x[22:25], paste(x[26], x[27])))() + +icd10_unlikely_cod[[17]] <- icd10_unlikely_cod[[17]] |> + (\(x) + c(x[1:11], paste(x[12], x[13]), x[14:16], paste(x[17], x[18]), + paste(x[19], x[20]), x[21:27]) + )() + +icd10_unlikely_cod[[18]] <- icd10_unlikely_cod[[18]] |> + (\(x) c(x[1:11], paste(x[12], x[13]), x[14], paste(x[15], x[16]), x[17]))() + +icd10_unlikely_cod <- lapply( + X = icd10_unlikely_cod, + FUN = stringr::str_split, + pattern = " ", + n = 2, + simplify = TRUE +) |> + (\(x) do.call(rbind, x))() |> + data.frame() |> + dplyr::rename_with(.fn = function(x) c("code", "title")) + +icd10_unlikely_cod$code[45] <- paste0( + icd10_unlikely_cod$code[45], icd10_unlikely_cod$code[46] +) + +icd10_unlikely_cod$code[75] <- paste0( + icd10_unlikely_cod$code[75], icd10_unlikely_cod$code[76] +) + +icd10_unlikely_cod$code[212] <- paste0( + icd10_unlikely_cod$code[212], icd10_unlikely_cod$code[213] +) + +icd10_unlikely_cod$code[399] <- paste0( + icd10_unlikely_cod$code[399], icd10_unlikely_cod$code[400] +) + +icd10_unlikely_cod$code[409] <- paste0( + icd10_unlikely_cod$code[409], icd10_unlikely_cod$code[410] +) + +icd10_unlikely_cod <- icd10_unlikely_cod |> + dplyr::filter(title != "") |> + dplyr::mutate(title = stringr::str_trim(title)) |> + tibble::tibble() + +usethis::use_data(icd10_unlikely_cod, overwrite = TRUE, compress = "xz") diff --git a/data/icd10_unlikely_cod.rda b/data/icd10_unlikely_cod.rda new file mode 100644 index 0000000000000000000000000000000000000000..1d23b3bf1611510c5a6fd3c246c6fa350330782f GIT binary patch literal 6424 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%0D`K!=c7~de+AeEz?`{5Ka zxfq1b^X-$LQ&wgB0YuLMZ4GD{TO|2!O*?Pg=Xc%OU;tjJxxP3s>*m@uGL-I8*X6_;^n(~^WnsW$(Ps*O?#>-kCh9h)J@A{q2kyNs+8)CIsjG2&8dm>;x=G7%mykGlQijNz zNi<95Pw;LQ_&cKk)5U@h@t7QV9s*tE5Tl_h%WdqDF2V4E^{r##G*ELTderI5N@f4G zt6qLyBDp&WEWV#*ADpRncD-|`ByiEJUX~&DfUQ8E-3sf75GS}f+j0`C8M%fefe6FkPWK6{i%1tY=E6$)TMwVTe&+#T zM|ipFoT)aOz8q*DH`;K*ng)q-Qys?!5x9}<()~c}|1n%Fg;qW{4h`-0wlb*MuB%81!Z_V?f3r= zMIdPNd**s?IeZwPJ!F+PR^8$7d-INmaH3L&j;S7TyN0vp?JDK)yuO6KnnfCKK22ow zyQK9VTFu;@$MwQy_K&rryazZalatBY(^+MlO(8NBo-R0PCUhOMYyrP^qPxo&w6oC4 z3Nc@Pz-||jEj3Z?k8q!qnh)ZPv>63zm(AgJUyyU*BbvL{!oKKR?=!-D(sCCr`= z?yexS2N z6ghYD1>8$|*^F$-Ho-5@-{_Ll1m;G5uHpAkf_9{Xwy{;1v9bh$53Sq!AxCH>y-+#0 zs=V|#H%o^B!@eTH)?+7sOzlYqmwnpM^ Date: Wed, 26 Jun 2024 19:10:52 +0100 Subject: [PATCH 2/2] add new functions to pkgdown --- NAMESPACE | 3 +++ R/codeditr-package.R | 4 ++-- pkgdown/_pkgdown.yml | 1 + 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/NAMESPACE b/NAMESPACE index 15bdde8..b805614 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -21,9 +21,12 @@ export(list_ill_defined_icd11) importFrom(dplyr,bind_rows) importFrom(dplyr,case_when) importFrom(dplyr,mutate) +importFrom(dplyr,rename_with) importFrom(dplyr,select) importFrom(methods,is) importFrom(rlang,.data) importFrom(stringr,str_count) importFrom(stringr,str_detect) +importFrom(stringr,str_replace_all) +importFrom(stringr,str_trim) importFrom(tibble,tibble) diff --git a/R/codeditr-package.R b/R/codeditr-package.R index a212c8b..68edb2c 100644 --- a/R/codeditr-package.R +++ b/R/codeditr-package.R @@ -15,8 +15,8 @@ #' @name codeditr #' @importFrom methods is #' @importFrom tibble tibble -#' @importFrom dplyr mutate select case_when bind_rows +#' @importFrom dplyr mutate select case_when bind_rows rename_with #' @importFrom rlang .data -#' @importFrom stringr str_detect str_count +#' @importFrom stringr str_detect str_count str_replace_all str_trim #' "_PACKAGE" diff --git a/pkgdown/_pkgdown.yml b/pkgdown/_pkgdown.yml index b8d8d1a..49e2067 100644 --- a/pkgdown/_pkgdown.yml +++ b/pkgdown/_pkgdown.yml @@ -73,6 +73,7 @@ reference: contents: - icd10_example - icd11_example + - icd10_unlikely_cod - icd11_unlikely_cod - icd11_cod_by_sex