如何将ICD9和ICD10代码列表转换为R中的含义(英文名称)



我有一个ICD9和ICD10代码的列表,如下所示:

706.2
L81.0
D23.5
782

我想把这些解码成英语(疾病的实际名称(。我想到在R中使用ICD包,尤其是";explain_table(("功能,但它只解码ICD9代码或ICD10代码。不是两者同时出现。我得到了这个:

Sebaceous cyst
NA
NA
Symptoms involving skin and other integumentary tissue

列表中第一个元素的ICD代码类型似乎将决定要翻译的代码类型。在我的例子中,第一个是ICD9代码,所以只翻译ICD9码。中间的两个ICD10代码不是。

建议?

您是否也有一个指示任何给定代码是ICD9还是ICD10的指标?不存在";"安全";可靠地做到这一点的方法涵盖了所有可能的代码,尤其是当您使用短代码时。例如";E882";是ICD9中的意外坠楼和ICD10中未分类的脂肪瘤病。

icd::explain_table((的"有益的";默认的S3方法是检查第一个代码是否是有效的ICD10代码。如果是,则所有内容都是ICD10,否则所有内容都为ICD9。

如果你不知道任何给定的代码是ICD9还是ICD10,但例如,如果一个代码在两个系统中都有表示,你总是想使用ICD10——你可以采取这样的方法:

my_icd9 <- structure(my_character_vector, class = "icd10")
my_icd10 <- structure(my_character_vector, class = "icd9")
dplyr::coalesce(
explain_table(my_icd10)$short_desc,
explain_table(my_icd9)$short_desc
)

如果ICD10存在,它会为您提供简短的desc,如果没有ICD10代码与字符元素匹配,则ICD9仅作为后备。

这来得很晚,但您可以从他们的repo中使用icdcoder库。

library(tidyverse)
library(devtools)
devtools::install_github("wtcooper/icdcoder")
library(icdcoder)

df <- tibble("codes" = c("706.2", "L81.0", "D23.5", "782")) %>% 
mutate(
codes_mod =  toupper(gsub("\.","", codes)) # Remove dots.
)

res <- df %>% 
filter(codes_mod %in% icd10Hierarchy$icd10) %>% # First handle ICD10 codes.
left_join(icd10Hierarchy, by = c("codes_mod" = "icd10")) %>% 
bind_rows( # Then handle and append ICD9 codes.
df %>% 
filter(codes_mod %in% icd9Hierarchy$icd9) %>% 
left_join(icd9Hierarchy, by = c("codes_mod" = "icd9"))
)

最新更新