ICD(International Classification of Diseases, 国际疾病分类)是由世界卫生组织维护的卫生保健分类体系,将各种疾病和健康状态按照一定规则分门别类,并采用唯一的字符码标识。 随着医疗产业的信息化,ICD成为了不同医院间信息交换的重要标准,其应用扩大到了保险支付、行政管理、疾病研究等各个领域。如今的医疗应用,不管是临床辅助诊疗系统、还是疾病知识图谱和医院综合管理,都离不开 ICD 标准分类体系作为基石。编码质量好的医院可以更加准确地对医疗档案进行分类归档和查询,也更方便与其他医院进行病例的相互学习、共同提升,推进医疗相关(如知识图谱的建设、疾病相关模型、临床智能诊断)的科研任务,在行业内赢得更多发展优势。

ICD编码的设计理念其实非常简单,即根据疾病特点自上而下、由粗到细对各种健康状况进行分类并赋予统一编码。但是由于疾病种类数目很多,人工编码对编码人员的医学素养和从业经验要求都很高。随着 ICD 的大规模使用,其编码效率也受到了越来越多的关注。目前,由于 ICD 的编码结果往往被应用于保险费用支付、医疗资源分配等重要问题,如何快速而有效地根据病人的电子病历,选择对应的 ICD 编码,成为了医疗实践亟待解决的难题。一般来说,ICD 编码是由病案室的专业编码员完成:编码员遵循严格的编码标准,根据医生给出的诊断结果挑选合适的编码,必要时参照病人的电子病历(中国称为 HIS,美国称为 EMR)给出判断。

ICD 的体系设计看似简单,但在具体的医疗场景中,其编码过程极易出错。第一,医生在给出诊断结果时,往往会使用缩写或代名词,这就容易产生歧义,从而误导编码员。第二,医生给出的多个诊断,跟 ICD 编码之间并不一定是一对一的关系。在实际编码过程中,医生给出的诊断数目,与最终编码的 ICD 数目并不等同。很多时候,两个紧密联系的诊断结果会被编码到一个ICD码里。而有时,医生也可能把本该对应于多个 ICD 码的疾病写在同一个诊断条目里。这就使得ICD自动编码并不是简单的一对一映射问题,编码过程往往需要综合考量医生给出的多条诊断结果。第三,在 ICD 编码体系中,所有编码呈现出树形结构,靠近根节点的编码表示的疾病范围更加宽泛,叶子结点则对疾病有更加具体的描述,编码员有时会对情况缺少把握,选择更为宽泛的疾病种类,从而导致编码出错。此外,由于 ICD 编码是近二十年才得到广泛的应用,接受过专业编码训练的医疗从业人员尚是少数。条件受限的情况下,编码员多由其他岗位转入,或直接由医生兼任,编码经验不足,更增加了出错的可能。根据报告,美国每年用于提升 ICD 编码质量的经济投入大概在250亿美元。

如今,随着医院电子病历数据的大量积累和人工智能的飞速发展,实现 ICD 的自动编码并非遥不可及。为了解决以上这些 ICD 自动编码过程中的问题,我们提出了一种新的注意力驱动的深度学习模型,将医生给出的诊断结果进行综合考量后自动翻译为对应的ICD编码。通过设计不同的循环神经网络,模型可以自动从医生诊断和ICD编码定义的文本中学习潜在语义信息,并对两种语言风格加以区分。在对ICD编码的过程中,我们的模型引入了注意力机制,对医生给出的多个诊断条目分配不同的注意力,以解决ICD编码数目和医生诊断数目不匹配的问题。我们的实验数据来自于MIMIC-III。这是一个可以用于科研用途的免费数据库,包含了从2001到2012年Beth Israel Deaconess Medical Center的近六万条住院记录。首先,我们从病人记录的出院总结中提取出医生的诊断条目,并丢弃无法提取出有效诊断条目的记录,通过这一步预处理,我们得到了近一万一千条有效记录,包括近六万条诊断条目。在对文本的编码过程中,我们使用了两套独立的神经网络结构来分别学习医生诊断和ICD编码定义两种文本,每套神经网络分别包括一个字符级别的循环神经网络和一个单词级别的循环神经网络,以获取诊断文本的潜在语义信息。在对每个ICD编码的过程中,基于ICD码和多个诊断条目的潜在语义表示,对每个诊断条目赋予不同的权重,对多个诊断条目的特征进行加权平均后,通过一个全连接的前向神经网络获取一个置信分数。该分数经过正则化后即为该ICD的标签为True的概率值。我们选择了50个出现频率最高的ICD码作为编码目标。

通过在MIMIC-III提供的来自医院的真实数据上进行实验,我们的 ICD 编码器可以达到0.53的 F1 值和0.90的 AUC 值,性能显著优于不使用注意力机制的编码模型。为了验证模型的可靠性,我们对模型生成的文本的潜在语义特征和注意力分配进行了实例分析。我们发现,字符级的循环神经网络模型可以有效地识别医生诊断文本中的错别字,并能够根据单词后缀将具有相似意义的疾病单词(如不同部位的炎症)聚类在一起,最终生成的诊断条目的潜在语义特征也保持了这种优秀的聚类性质。在注意力分配的过程中,我们的模型可以根据ICD编码的语义特征,有效辨别出各个诊断条目对相应 ICD 码的重要程度并合理分配权重,从而使得 ICD 编码的准确性大大提升。

尽管由于数据格式的限制,我们能够从出院记录中提取的诊断条目并不完备,我们的模型仍然表现出了极高的编码精度。这证明了根据医生诊断文本来进行 ICD 自动编码有极大的可行性。通过获取更多格式规整的医疗记录,我们有理由相信,模型的效果可以获得进一步的提升。并且,我们的模型可以给出0到1之前的概率值,可以根据具体需求调整阈值,以获得精度和敏感度的折衷。比如,我们可以选择一个较小的阈值,以让模型获得更高的敏感度,将模型输出的 ICD 码交给人工进行二次筛选。原先,编码人员需要从上万个 ICD 码中选择合适的编码,但通过我们的模型进行初步编码后,只需要从一个较小的范围内选择合适的编码,这可以大大减少编码人员的工作量。

 

Illustration by Chenyu Wang (https://medium.com/@chenyu.wang)

ArXiv: https://arxiv.org/abs/1711.04075
Medium Post: http://ow.ly/Ux8c30hRvzW

3 thoughts on “Automated ICD Coding

  1. Great work!
    I am currently working on the same problem and find your work so exciting. So I am wondering if there is a plan for releasing your source code and the data (just the id of the record and the 50 ICD codes used in your experiment are enough). BTW, I know although the MIMIC-III dataset is publicly available, one needs to register on the official website and finish some course to get data. I already have the access to MIMIC-III dataset, so don’t worry about it.

    Thanks!

  2. I’m wondering if your work might be structured as an add-on service to an electronic health records system.

Leave a Reply

Your email address will not be published. Required fields are marked *