基于中医智能分析的病案推荐系统

2021-12-22 23:43董桂峰
科技信息·学术版 2021年2期
关键词:病案中医系统

摘要:本文主要研究的是构建一个智能病案分析推荐系统,在医生进行临床操作、书写患者病历时,能够实时根据患者的病历情况推荐出比较相近的历史病案,包括诊疗方案、治疗反馈等等,以供给医生进行比较准确的诊疗方案的选择与运用。甚至在足够多的正向案例支持下,我们的系统可以总结出对于特定案例的最佳诊疗路径。

关键词:中医;智能分析;病案;系统

中医是我国传统文化的瑰宝,近些年来国家也在大力提倡中医药的传承与发展。而传统的中医要在现代社会发展进步,就要走信息化的道路。在中医的信息化、智能化研究领域,有很大一部分工作都是对于中医病案的处理与分析,在我们上千年的历史中留下来大量的中医名家医案,尤其是近代与当代的名家医案,包括现代医疗卫生体系中的每一家中医院以及中西结合医院中都有大量的中医医案。如何使用一个相对统一的标准对于这些医案进行分析研究,以及在临床过程中如何对于这些医案进行智能的分析使用,这是本文研究的一个关键要点。

1 系统构建过程的数据准备

在构建系统之前,先要进行数据的准备工作。智能数据分析推荐系统,第一要素就是数据,没有足够量的数据是无法进行所谓智能分析推荐的,也就无法构建系统。至于数据的来源,既可以是历代名家医案,也可以是医院之前所积累的历史医案。首先导入一定数量的病案数据,这个数据可以是结构化数据,也可以是半结构化或者非结构化的文本数据。考虑到当下医院的实际情况,半结构化与非结构化的数据应该是比较普遍的情况。应对这类非结构化或者说结构化程度不高的数据,就需要先构建一个NLP(自然语言识别)模块,专门用于解析疾病、症状、体征等中医临床关注的数据项。

2系统构建过程中数据处理

如何运用技术手段构建一个适用的NLP模块,这是一个专门的课题,这里由于篇幅有限就不展开细说了。简单说说这个NLP模块主要起到的作用就是对于非结构化的病历数据进行解析处理,提取出标准化的疾病、症状、体征等数据。这里要特别说明的一点,就是由于医生对于病症描述的多样性,导致同一个症状可能会有多种不同的描述,比如胸闷,可能描述为胸部闷塞、心胸满闷、胸中窒塞、胸闷痛、胸胀闷等等,这里面涉及到症状的相似相近相同,症状的包含细分等等复杂情况。而不同的情况要进行不同的技术处理,如果是完全相同的症状可以采用一个统一的标准进行症状的归一化操作,而相似相近或者包含细分的症状处理情况就比较复杂。在这里如果要比较完善的处理这个工作,就需要有一个比较清晰的标准症状体系。现阶段并没有一个公认的中医标准症状体系规范,我们这里可以采用中国中医药信息学会2019年3月份发布的团标《中医临床基本症状信息分类与代码(TCIATCM 020-2019)》[1],以及《中医脉象诊断信息分类与代码(TCIATCM 011-2019)》[2]、《中医舌象诊断信息分类与代码(TCIATCM 010-2019)》[3]。至于由症状相似相近或者包含细分等延伸出来的症状关系,我们可以归入次级症状关系之中,在进行症状关联分析时进行相应的权重减分处理。

3 算法分析处理

我们构建一个NLP模块主要用于进行病案的结构化标准化处理。数据标准化处理过后,下一步再进行智能算法分析,我们这里主要使用关联分析算法。关联分析算法也叫关联规则挖掘[4],它是属于无监督算法的一种,主要用于从大量的数据中挖掘出潜在的关联关系,常见的关联分析算法有Apriori和FP-growth算法,它们可以高效自动地从数据集中挖掘出潜在的属性关联组合规则。这里使用关联分析算法主要用于计算每个疾病下症状与疾病间的关系,以及计算疾病中症状权重配比。这个其实就是一个中医药知识工程的过程[5]。

如图1、图2所示,得到疾病与症状、症状组、症状群、证型、治疗方案之间的关系,然后结合之前对于标准症状的分类分级处理,再结合支持度、置信度、提升度[6]的具体数值设置,就可以对于数据规则进行分类构建,对于不同级别症状的权重也可以进行对应的设置。

支持度(Support),简单的字面理解就是支持的程度,表示事务A与事务B在一个数据集中同时出现的频率,支持度是没有方向概念的。可以用于数据初步过滤,以及权重初始设置。算法公式:S=F[(A&B)/N]

置信度(Confidence),是指表示使用包含A的事务中同时包含B事务的比例,即同时包含A和B的事务占包含A事务的比例。可以处理成疾病、证型与症状之间的详细关系设置。算法公式:C=F(A&B)/F(A)

提升度(Lift),表示含有A的條件下,同时含有B的概率。并且与B总体发生的概率做比值。如果提升度>1,则关联规则是一个强关联规则;如果提升度小于等于1,则为无效的关联规则,如果提升度=1,则A与B相互独立。可以用于数据关系强化设置。算法公式:L=S(A&B)/[S(A)*S(B)]

当然权重的设置可以进行多个维度的考虑,单一的衡量维度有可能会失于偏颇。事实上从临床层面出发,医生对于患者的病情判断本身也是会从多个维度出发,最终得到的是一个综合判断的结果。此处可以与业务专家进行探讨,比如可以设置疾病维度、证型维度、病机维度、体质维度等等,从不同的维度、不同的层面对于数据进行算法分析处理,得到不同坐标的权重数值设置,最终实现模拟临床的中医辨证思维。

举个简单的例子,比如处理单个疾病与症状之间的关系,由于限定了疾病,则在数据关系中相对简单,只需要考虑支持度就可以了,因为这里的置信度与支持度是一致的,而提升度则都是1。

数据如图3所示,可以根据支持度对于疾病症状群划分几个等级,支持度小于0.2的可以直接舍弃,即由支持度大于等于0.2的症状构成疾病的有效症状群,然后再在疾病有效症状群中根据支持度划分等级权重。简单的计算方法可以直接设置等级,比如0.2-0.4的为一级症状,0.4-0.6的为二级症状,0.6-0.8的为三级症状。当然这种设置方法是比较粗糙的,事实上0.41和0.39相差不大,设置成两个等级是有问题的。所以这种等级设置是概念上的,而实际计算使用支持度具体数值会比较准确。

再举个例子,如图4所示是高血压疾病下证型与症状之间的关系,在进行这类数据关系处理时,要注意不同证型数据的分布比例,因为原始数据中有可能会产生某类证型占比过高的现象,比如冠心病心绞痛中可能“心血瘀阻型”会占比过高,而其他证型占比过少,而产生数据的不均匀分布,这就需要进行一定的数据处理。还需要注意有些症状可能是疾病关联,与证型关联不大,比如“冠心病心绞痛”中“胸痛”这个症状每个证型都会有,支持度、置信度都挺高,但其实没有实际作用意义。在这个维度下进行计算时,可以不必考虑(当然由于每个证型都有,其实计算进去也没什么,于结果无影响,只是会多耗费一些算力)。

此处其实有两种思维模式,一种是可以参考疾病-症状的模式,按照单一证型与症状关系来处理,这样只需要单纯考虑支持度就可以。缺点是比较繁琐,每个疾病的每种证型都需要单独处理一遍。而另一种就是综合处理、综合考虑。

4 系统框架构建

数据权重分析设置完成之后,对于基础数据的处理就基本上就告一个段落了,当然这是一个需要反复测试调整的过程,不是一次二次设置就能完成的,在很多情况下都需要一个病种一个病种地进行调试设置。再之后的工作就是构建搜索程序,主要就是进行一系列的判断规则的生成构建应用。

我们使用JAVA编程语言进行整个智能分析推荐程序的研发。整体程序的架构如下图5所示。

系统整体采用多层架构。NLP模块在应用服务程序中要继续使用,主要用于医生所录入病历的解析识别。将之识别为标准体系内的疾病和症状,用于作为分析、辨证模块判断的基础。

在设计研发分析、辨证、搜索模块时,需要注意对于不同逻辑规则的综合判断,以及搜索算法的性能优化,要实现秒级以内的响应速度,不然会影响前台使用体验。

使用系统时,医生在前台输入病案,由后端NLP模块识别标准症状與疾病,再由智能分析模块根据疾病、症状权重进行多层次、多维度的判断比对,最终给前台推荐出关联度最高的病案。

当然,在医院实际上线应用时,还需要考虑和HIS系统、EMR系统的集成对接。可以直接将前台交予HIS/EMR系统,系统作为一个后端服务存在。这样能够达到与医院现有系统的无缝对接,避免医生使用多套系统。

5 系统构建的关键要点、优缺点、注意点

关于构建此系统架构的关键要点:(1)输入历史病案的权威性、丰富性。(2)NLP模块的准确识别率。(3)对于病案数据进行算法分析时多维度、多层面的权重数值设置。(4)对于输入病案进行权重分析推荐是的逻辑判断规则,以及搜索效率。

采用此系统架构的优点:(1)解决传统的病案搜索中相同症状不同写法无法匹配的问题,比如有的医生写胸痛,有的医生写胸口疼,传统的文本匹配是无法实现匹配搜索的。(2)解决传统的病案搜索中单纯依靠症状匹配个数来处理病案匹配程度,导致匹配无法量化,匹配不准确的问题。(3)可以对于过于相似的病案进行预处理,防止出现推荐一排病历大同小异的情况。

采用此系统架构的缺点:(1)亦是之前的关键要点1,系统受限于历史病案的丰富程度。如果病案不丰富,则在数据分析阶段就无法进行。(2)对于医生临床输入的病历也会有一定要求,医生输入的病历越完整,得到有价值推荐病案的概率就越高。

在系统研发中还有一些注意点:要注意对于阴性症状的判断识别,因为传统的病案症状搜索过程中都是注重对于阳性症状的搜索处理,忽略阴性症状的搜索,但事实上阴性症状也是非常重要的判断标准,甚至是第一序列的判断条件,比如患者流涕,不咳嗽。那么在所有的案例搜索中,第一时间应该是排除全部有咳嗽症状的病案,然后再去对比流涕症状的权重。

6小结

最后,回顾一下主题,本文主要探讨的就是构建一个智能的中医病案推荐系统。构建过程中主要使用了NLP、数据挖掘、关联分析算法、搜索算法、中医辨证分析思维、标准症状体系、症状分类分级等等技术以及思维模型,希望对于中医的信息化、智能化能有一定帮助,对于中医信息技术的临床应用能起到积极的作用。

参考文献:

[1]TCIATCM 020-2019.中医临床基本症状信息分类与代码[S].2019.

[2]TCIATCM 011-2019.中医脉象诊断信息分类与代码[S].2019.

[3]TCIATCM 010-2019.中医舌象诊断信息分类与代码[S].2019.

[4]于彤,陈华钧,姜晓红.中医药知识工程[M].科学出版社.2018.

[5]范明,范宏建 译.数据挖掘导论[M].人民邮电出版社.2010.

[6]范明,孟小峰 译.数据挖掘:概念与技术[M].机械工业出版社.2007.

作者简介:董桂峰(1981—),男,汉族,南昌大学硕士在读,单位:南京大经中医药信息技术有限公司,研究方向为医疗信息化、智能化。

猜你喜欢
病案中医系统
住院病案首页ICD编码质量在DRG付费中的应用
基于PDCA循环理论的病案首页质量控制
一种无人机缓冲系统
病案数字化质量控制研究
品“助读系统”之妙
直扩系统中的窄带干扰抑制
直扩系统中的窄带干扰抑制
中医英译的误译现象探析
关于中西医结合治疗乳腺增生病38例临床观察