如何解决如何将ICD9和ICD10代码列表转换为R中的含义英文名称?
我有一个这样的ICD9和ICD10代码列表:
706.2
L81.0
D23.5
782
我想将它们解码为英文(以疾病的实际名称为准)。我考虑过在R中使用ICD包,尤其是“ explain_table()”函数,但它仅解码ICD9代码或ICD10代码。两者不能同时使用。我得到这个:
皮脂囊肿
不适用
不适用
涉及皮肤和其他外皮组织的症状
似乎列表中第一个元素的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"))
)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。