如何比较 ICD-10 字符串或搜索诊断是不是在范围内?

Posted

技术标签:

【中文标题】如何比较 ICD-10 字符串或搜索诊断是不是在范围内?【英文标题】:How to compare ICD-10 character string or search whether a diagnosis fall into the range?如何比较 ICD-10 字符串或搜索诊断是否在范围内? 【发布时间】:2019-01-17 22:37:17 【问题描述】:

我有一个关于如何检查某些诊断是否属于 R 中的 ICD-10 范围的问题。

这是我的诊断代码: C349 A219 B003 C509 B700 A090

这是我希望比较的标准 ICD-10 范围: C01.0-C17 A74.8-A75.9 B00.1-B33.1 B69-B72.0 C00.0-C94.2

我尝试将字符串拆分为值,但由于它们仍然不是数字,我无法比较它们。

谢谢!

姚明

【问题讨论】:

有一个icd 包。也许这值得研究。 您需要清楚自己想要什么 - C01.0 - C17 是否包括所有 C17x 四个(可能是五个?)数字子代码? 特别是对于这个例子,C01.0 - C17 确实包含所有 C17x,这很棘手,因为它是一个范围而不仅仅是数值范围。 【参考方案1】:

这就是icd 旨在解决的问题。 ICD-10 代码的范围很难,因为与 ICD-9 代码相比,它们的范围太多了。此外,无论是世界卫生组织还是美国临床修订版,都没有 ICD-10 代码 C01.0。考虑到这一点:

library(icd)
diagnoses <- c("C349", "A219", "B003", "C509", "B700", "A090")
one_pt <- data.frame(id = rep("patient1", length(diagnoses)),
                     diagnoses)
dif_pt <- data.frame(id = paste0("patient", seq_along(diagnoses)),
                     diagnoses)
my_map <- list(c01to17 = icd::expand_range("C01", "C17"),
               a74to75 = icd::expand_range("A748", "A759"),
               b00to33 = icd::expand_range("B001", "B331"),
               b69to72 = icd::expand_range("B69", "B72"),
               c00to94 = icd::expand_range("C000", "C942"))
icd::comorbid(one_pt, map = my_map)
icd::comorbid(dif_pt, map = my_map)

我建议尽量与带或不带小数位的 ICD 代码保持一致。我更喜欢放弃它们。

如果您使用的是非 WHO 或非 ICD-10-CM 代码,您仍然可以使用 ICD,但请注意检查 C01.0 等差异是否正确计算。这可能意味着在某些情况下手动输入代码范围内的代码。 @thelatemail 是正确的,您在扩展范围时必须非常小心,不要通过“父”代码扩展,因此比计划的范围更广。 icd 中的范围扩展代码对此非常小心。

【讨论】:

非常感谢!我会试试这个并给你反馈!

以上是关于如何比较 ICD-10 字符串或搜索诊断是不是在范围内?的主要内容,如果未能解决你的问题,请参考以下文章

在后台使用 mysql 数据库的 Spring 应用程序的 ICD 10 下拉列表

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

如何在 R 的回归模型中使用 ICD10 代码?

将 ICD-10 代码 xml 文件导入数据库

如何通过 ICD 数据的前缀创建子组?

海尔企业网站搜索引擎优化诊断报告