The function icd_expand
takes a data.frame containing ICD codes
and optional metadata as input. It returns a data.frame containing
all ICD codes at or below the specified level of the hierarchy
(e.g. the specification "E11" is expanded to include all three,
four and five-digit codes beginning with E11).
icd_expand(icd_in, year, col_icd = "ICD", col_meta = NULL, type = "strict", ignore_icd_errors = FALSE)
icd_in | Data frame defining ICD codes of interest |
---|---|
year | ICD 10 version |
col_icd | Column of icd_in containing ICD codes (Default: ICD) |
col_meta | (Optional) Columns containing meta information to retain (e.g. Grouper, age or other criteria for later use). If left NULL, only col_icd is retained. |
type | A character string determining how strictly matching should be performed, passed to |
ignore_icd_errors | logical. Whether to ignore incorrectly specified input (potentially leading to incomplete output) or stop if any ICD specification does not correspond to a valid ICD code. Default: |
data.frame with columns YEAR, ICD_CODE, ICD_COMPRESSED, ICD_LABEL and, if specified, columns specified by col_meta
# Incomplete or non-terminal codes expand to the right. # This is useful to specified code blocks in a compact manner icd_meta <- data.frame(ICD = "R1") icd_expand(icd_meta, year = 2019)#> # A tibble: 33 x 7 #> icd_spec year icd3 icd_code icd_normcode icd_sub label #> <chr> <int> <chr> <chr> <chr> <chr> <chr> #> 1 R1 2019 R10 R10.- R10 R10 Bauch- und Beckenschmerzen #> 2 R1 2019 R10 R10.0 R10.0 R100 Akutes Abdomen #> 3 R1 2019 R10 R10.1 R10.1 R101 Schmerzen im Bereich des … #> 4 R1 2019 R10 R10.2 R10.2 R102 Schmerzen im Becken und a… #> 5 R1 2019 R10 R10.3 R10.3 R103 Schmerzen mit Lokalisatio… #> 6 R1 2019 R10 R10.4 R10.4 R104 Sonstige und nicht näher … #> 7 R1 2019 R11 R11 R11 R11 Übelkeit und Erbrechen #> 8 R1 2019 R12 R12 R12 R12 Sodbrennen #> 9 R1 2019 R13 R13.- R13 R13 Dysphagie #> 10 R1 2019 R13 R13.0 R13.0 R130 Dysphagie mit Beaufsichti… #> # … with 23 more rows# Optional metadata columns can be carried # through with the specification icd_meta <- data.frame(ICD = "M54", icd_label = "Back pain") icd_expand(icd_meta, year = 2019, col_meta = "icd_label")#> # A tibble: 50 x 8 #> icd_spec icd_label year icd3 icd_code icd_normcode icd_sub label #> <chr> <fct> <int> <chr> <chr> <chr> <chr> <chr> #> 1 M54 Back pain 2019 M54 M54.- M54 M54 Rückenschmerzen #> 2 M54 Back pain 2019 M54 M54.0- M54.0 M540 Pannikulitis in… #> 3 M54 Back pain 2019 M54 M54.00 M54.00 M5400 Pannikulitis in… #> 4 M54 Back pain 2019 M54 M54.01 M54.01 M5401 Pannikulitis in… #> 5 M54 Back pain 2019 M54 M54.02 M54.02 M5402 Pannikulitis in… #> 6 M54 Back pain 2019 M54 M54.03 M54.03 M5403 Pannikulitis in… #> 7 M54 Back pain 2019 M54 M54.04 M54.04 M5404 Pannikulitis in… #> 8 M54 Back pain 2019 M54 M54.05 M54.05 M5405 Pannikulitis in… #> 9 M54 Back pain 2019 M54 M54.06 M54.06 M5406 Pannikulitis in… #> 10 M54 Back pain 2019 M54 M54.07 M54.07 M5407 Pannikulitis in… #> # … with 40 more rows