如何将 ICD9 和 ICD10 代码列表转换为 R 中的含义(英文名称)?
Posted
技术标签:
【中文标题】如何将 ICD9 和 ICD10 代码列表转换为 R 中的含义(英文名称)?【英文标题】:How to convert a list of ICD9 and ICD10 codes into their meaning (English names) in R? 【发布时间】:2020-08-24 22:00:35 【问题描述】:我有一个 ICD9 和 ICD10 代码列表,如下所示:
706.2
L81.0
D23.5
782
我想将这些解码为英文(疾病的实际名称)。我想在 R 中使用 ICD 包,尤其是“explain_table()”函数,但它只解码 ICD9 代码或 ICD10 代码。不是两个同时。我得到了这个:
皮脂腺囊肿
不适用
不适用
涉及皮肤和其他皮肤组织的症状
似乎列表中第一个元素的 ICD 代码类型将决定将翻译哪种代码。在我的示例中,第一个是 ICD9 代码,因此只有 ICD9 代码被翻译。中间的两个ICD10码不是。
建议?
【问题讨论】:
分成两列,一列都是ICD9,另一列是ICD10,然后翻译两个,然后再合并? 使用dput(data)
发布一些数据
【参考方案1】:
您是否也有任何给定代码是 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 存在,它会为您提供简短描述,如果没有 ICD10 代码与字符元素匹配,ICD9 仅作为后备。
【讨论】:
【参考方案2】:这来晚了,但您可以使用他们的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"))
)
【讨论】:
以上是关于如何将 ICD9 和 ICD10 代码列表转换为 R 中的含义(英文名称)?的主要内容,如果未能解决你的问题,请参考以下文章