王苗
摘要:针对当前医生工作现状和医嘱联用现状,通过Python语言实现了一个医嘱决策辅助功能模块,以优化医院信息系统业务功能,加快诊疗速度。该文重点研究优化Apriori模型和构建医嘱知识图谱,挖掘医嘱之间的关联关系,补充医嘱组套,辅助医嘱决策。结果表明该模型运行结果良好,功能基本完备,具有一定的实践价值,能够加快推进我国智慧医疗建设进程。
关键词:医嘱推荐;关联规则;Apriori算法;Neo4j;知识图谱
中图分类号:TP399 文献标识码:A
文章编号:1009-3044(2022)25-0037-04
开放科学(资源服务) 标识码(OSID) :
1 引言
医疗过程所产生的海量数据中存在着潜在未被挖掘的寶贵经验和规律[1],不少国内外学者已经尝试并成功将数据挖掘技术应用于医疗行业实际诊疗过程中,学术界对智慧医疗的探索也逐渐深入[2-12]。目前国内医院信息系统中广泛采用的辅助医生开医嘱的方法包括:医嘱组套,医嘱模板和临床路径医嘱集。在中国抗击新冠肺炎疫情的过程中,数据挖掘技术在防控手段、疫苗研发、疫情信息传播等环节发挥了出色的作用[13],这在一定程度上提高了人们对医疗大数据的重视程度,也充分说明了数据挖掘技术在医疗行业的潜在价值。
本文通过对医院门诊部医护人员对医疗系统的相关需求进行实地调查和询问后,发现了以下问题和需求:
(1) 医生工作现状
对于医疗人员来说,工作中最常见的临床操作之一就是“开具医嘱”,即医生根据患者病史、诊断、检验检查结果等下达医学指令,其很大程度上会影响治疗效果和进程。根据观察,医生每天花费在开具医嘱、修改和确认等环节上的时间过多,造成了工作效率的降低。例如高血压患者一般都需要进行靶器官功能评估和合并症筛查,其中包含血糖、血脂、心肾功能和眼底检查等,若医生在遇到每一位高血压患者时,都需要一一开具以上医嘱,则会造成不必要的时间浪费。
(2) 医嘱联用现状
临床医学上,不同患者在同一场景或相似诊断下开具的医嘱具有相似性,基于此,目前医疗系统辅助医生开医嘱的常用方法之一就是医嘱组套。医嘱组套即事先定义的在多个相似场景或诊断下可以同时被开具的医嘱,一般是由临床专业专家基于经验和讨论研究后制定,制定周期比较长,因此有限的医嘱组套有时候并不能及时跟上时代的步伐,满足医生快速开具医嘱的需求。
目前医院的信息管理系统每天需要对上百万名病人的诊疗过程进行记录,而其中,蕴含着海量未被挖掘的医学知识。通常情况下,相同场景或诊断下的历史病案中会存在联用频率高的一些医嘱,相当于基于医生经验的潜藏在历史医疗数据中的医嘱组套,本文关键就是找出基于历史数据的某种疾病下医嘱记录中的高频项集,将其作为医嘱组套补充,辅助医生做出医嘱决策。
因此,在医生已经做出诊断的前提下,若医院系统能够基于历史数据,挖掘历史病案中相同疾病下关联频率较高的医嘱联用组合,则可以在一定程度上对固定的医嘱组套进行补充,减少医生开具医嘱的时间。同时可以辅助医生借鉴其他医生的治疗方案,或是将自己过去的治疗方法与现在进行对比结合,不断优化治疗疗效。
2 系统设计
基于上述需求,本文提出了相应的解决方案:利用Neo4j数据库存储历史诊疗数据,构建病案、诊断和医嘱节点,构建病案与诊断、病案与医嘱的关系边,构成诊断与医嘱的知识图谱,结合关联规则分析技术的Apriori算法,基于输入诊断或医嘱,从大量数据中查找关联组合,并反馈给用户,以辅助医生针对诊断做出相应医嘱决策。
2.1 功能模块设计
本文在处方医嘱录入子系统的基础上,为提高医嘱录入的速度,增加基于诊断结果或输入医嘱的关联医嘱组套提醒功能模块,其中功能具体描述为:①当用户做出诊断结果时,功能自动推荐常用医嘱组合,即该诊断下的医嘱组套;②当用户做出诊断,开立了医嘱时,推荐在该诊断下,与已开立医嘱联用频率最高的医嘱联用组合。
2.2 数据库设计
Neoj4数据库需要存储知识图谱节点和关系边,本文中节点有疾病实体、医嘱实体以及病案实体,其中疾病实体节点包含疾病ICD10编码,疾病名称;医嘱实体节点包含医嘱唯一标识码,医嘱名称,病案实体节点包括诊疗号,主治医师职称,格式如表1所示。通过构建SPO数据格式,将病案与疾病关联,将疾病与医嘱关联,其中病案与疾病的关系为“诊断”,病案与医嘱的关系为“开立”,如表2所示。
2.3 数据分析设计
本文使用的数据库为Neo4j,并使用Python辅助进行数据处理和分析。首先以HIS系统现有的病患真实数据为数据源,对数据进行抽取和预处理,并导入Neo4j。接着使用SPSSModeler软件中的Apriori模型进行模拟,从而对最小条件支持度和最低规则置信度进行初步筛选。通过Python语言构建Apriori算法,算法构建涉及组合频繁项集、剪枝策略、删除策略以及计数策略[14-15],其中计数策略指考虑医生职称对医嘱开立准确性影响因素,为本文对Apriori算法的优化策略。
2.4 用户界面设计
本文将通过Python语言设计一个简单的可视化用户界面,用于用户与关联分析模型的交互,页面提供两项功能,分别为在已有诊断下和在已有医嘱下的关联推荐,并返回依据支持度、置信度、前项支持度和提升度排序的推荐医嘱。
3 实现过程与结果
3.1 构建知识图谱
数据源于惠州市中大惠亚医院2019年至2020年两年间的真实诊疗数据,具有一定可鉴性,具体包括接诊的患者信息、主要诊断、开立医嘱以及职工基本信息等,病案以患者流水号为唯一标识。对数据进行预处理后转化为csv格式,导入Neo4j并构建节点与节点关系。
以“门诊五官科”科室为例,以随机三个疾病节点为例,查询诊断节点、病案节点、医嘱节点以及三者之间的关系,查询所得知识图谱效果如图1,其中,蓝色代表病案实体,红色代表疾病实体,黄色代表医嘱实体,疾病节点与病案节点之间存在关系边“diagnose”表示该病案诊断为该疾病,病案实体与医嘱实体之间存在关系表“use”表示该病案开立了该医嘱。
3.2 构建推荐医嘱模型
进行关联分析时,需要设立最小条件支持度Support和最小规则置信度Confidence,当指标设置得越低,分析所得的规则事务越多,但同时事务之间关联性越弱[16]。基于SPSS关联分析模型,通过从关联规则的数量、质量两个切入点对指标组合分别进行粗粒度和细粒度的分析比较,同时结合规则数量、平均条件Support、平均Confidence、平均规则Support、平均Lift和部署能力这几个方面综合进行比较,选择最佳指标组合最低条件Support为3.5,最小规则Confidence为80的Apriori关联模型,作为后续研究的模型指标,如表3。
3.3 构建Apriori模型
基于上文中关联分析模型的阈值选择,通过Python辅助编程,连接并获取Neo4j库中数据,并构建Apriori模型对数据进行关联分析,其中构建计算模型时,从Neo4j库中获取医嘱开立医生的职称,转化为职称系数,与医嘱开立的频次相乘,即计算医嘱开立频次时,考虑医生职称所带来的医嘱开立准确性的问题,职称越高的医生开立的医嘱频次系数越高,从而优化医嘱联用效果。
关联规则的挖掘一般分为两步:第一找寻有效的频繁项集;然后,在上步的基础上找寻有效的关联规则。其中挖掘频繁项集时的计数策略为从Neo4j库中获取医嘱开立医生的职称,转化为职称系数,存储在LevelDict{}中,其中key值为获取病案的序号,value值为职称系数。进行项集频次计数时,医嘱开立的频次与该病案对应的职称系数相乘,职称越高的医生开立的医嘱频次系数越高,再将相乘后的频次积计入频次字典support_data{}中,代码如图2所示。
3.4 模型应用效果
基于诊断推荐医嘱效果如图3。输入患者诊疗号、主要诊断后,以默认的最小条件支持度和最小规则置信度,点击推荐医嘱按钮,推荐医嘱列表即显示匹配诊断的各项集数医嘱频繁项集的前十条医嘱/医嘱组合,按条件支持度降序排序显示,由图可以看到,当输入主要诊断为变应性鼻炎时,得到各频繁项集数第一推荐医嘱分别为:
(1) 频繁项集数为1的最佳推荐医嘱为{前鼻镜检查};
(2) 频繁项集数为2的最佳推荐医嘱为{鼻郎生理性海水鼻腔喷雾器(浙江朗柯),前鼻镜检查};
(3) 频繁项集数为3的最佳推荐医嘱为{鼻郎生理性海水鼻腔喷雾器(浙江朗柯),吸入物变应原筛选(五官科专用),前鼻镜检查};
(4) 频繁项集数为4的最佳推薦医嘱为{鼻郎生理性海水鼻腔喷雾器(浙江朗柯),吸入物变应原筛选(五官科专用),前鼻镜检查,表面麻醉};
(5) 频繁项集数为5的最佳推荐医嘱为{鼻郎生理性海水鼻腔喷雾器(浙江朗柯),吸入物变应原筛选(五官科专用),前鼻镜检查,表面麻醉,鼻内镜检查}。
基于医嘱推荐联用医嘱效果如图4。当输入主要诊断为“变应性鼻炎”,开立医嘱为{表面麻醉,玉屏风颗粒}时,最佳推荐医嘱规则后项为{前鼻镜检查}{前鼻镜检查,鼻内镜检查}{鼻内镜检查、吸入物变应原筛选(五官科专用),前鼻镜检查,鼻内镜检查}{吸入物变应原筛选(五官科专用),鼻内镜检查、吸入物变应原筛选(五官科专用),前鼻镜检查}{吸入物变应原筛选(五官科专用)}。
通过Cyper语言对Neo4j数据库中各项目的计数汇总,系统推荐医嘱与源数据查询结果(无考虑职称) 相比,排序相同,在一定程度上可以验证本模型的可行性和正确性。并经过专业医生评估,具备一定的实践价值和科学性,可在后期投入医院试用。
4 结束语
本文在智慧医疗的大背景下,基于工作经历与医生需求,针对医疗系统辅助医生开立医嘱功能进行研究。通过获取医院病患诊疗的实际数据,对数据进行预处理,基于Neo4j图数据库,构建病案、诊断和医嘱之间关联的知识图谱,并通过优化Apriori模型,在输入诊断或医嘱的前提下,做出最佳医嘱组合推荐,以期能够嵌入医院信息系统,在诊疗过程中对固定的医嘱组套进行补充,辅助医生做出最佳诊疗方案,从而一方面借助图数据库,优化数据存储结构,提高数据检索的速度,优化医院信息系统业务功能,加快诊疗速度和提高病人治愈效果,改善医患关系。另一方面,对我国在医疗大数据应用的研究上进行补充,将计算机编程技术融入医疗行业,响应国家鼓励培养跨学科人才的号召,加快推进我国智慧医疗建设进程。
在医院医疗数据中,蕴含了丰富的病案数据,例如患者的个人信息、患病历史、过敏药物史、检查检验数据,开立医嘱的详细信息,例如频次、用量等。这些数据不仅能够帮助我们进一步理解医生的医嘱开立行为,更能挖掘医嘱之间相互作用和潜在的联用风险,具有巨大的潜在价值。同时,药物成分数据可以辅助模型对涉及药品的医嘱进行相似性对比,从而构建细粒度的药物相互联用知识图谱。关联分析算法和Apriori模型是对事物关联性最常用的一种研究方法,然而数据挖掘的算法知识涉及领域非常广泛,未来将进一步研究数据挖掘技术,与医院信息管理系统的其他模块进行结合,探索医疗数据中更多的潜在价值。
参考文献:
[1] 陈少敏,陈爱民,梁丽萍.医疗大数据共享的制约因素及治理研究[J].卫生经济研究,2021,38(9):18-20,24.
[2] 张桃红,范素丽,郭徐徐,等.基于数据融合的智能医疗辅助诊断方法[J].工程科学学报,2021,43(9):1197-1205.
[3] 石升,董金琳,王玮,等.Apriori算法的改进及其在睡眠辅助医疗中的应用[J].小型微型计算机系统,2020,41(12):2668-2671.
[4] 刘勘,张雅荃.基于医疗知识图谱的并发症辅助诊断[J].中文信息学报,2020,34(10):85-93,104.
[5] 孙明俊,张丹,郑明智,等.基于人工智能的类风湿性关节炎中医辅助诊疗系统[J].模式识别与人工智能,2021,34(4):343-352.
[6] 陈杰,程胜,徐梦,等.面向医疗辅助诊断的可视化多属性决策方法[J].计算机工程与应用,2020,56(8):249-255.
[7] 梁书彤,郭茂祖,赵玲玲.基于机器学习的医疗决策支持系统综述[J].计算机工程与应用,2019,55(19):1-11.
[8] Liu Y,Kohlberger T,Norouzi M,et al.Artificial intelligence-based breast cancer nodal metastasis detection:insights into the black box for pathologists[J].Archives of Pathology & Laboratory Medicine,2019,143(7):859-868.
[9] Pacheco A G C,Krohling R A.An attention-based mechanism to combine images and metadata in deep learning models applied to skin cancer classification[J].IEEE Journal of Biomedical and Health Informatics,2021,25(9):3554-3563.
[10] 于楠.中文電子病历信息抽取关键技术研究[D].北京:北京工业大学,2017.
[11] 夏冬,李国垒,陈先来.基于电子病历的胃癌治疗方案辅助选择[J].中华医学图书情报杂志,2018,27(2):63-68.
[12] 许杰.基于机器学习的医疗健康分类方法研究[D].郑州:郑州大学,2018.
[13] 孙烨祥,吕筠,沈鹏,等.健康医疗大数据驱动下的疾病防控新模式[J].中华流行病学杂志,2021,42(8):1325-1329.
[14] Han,J.W.andKamber,M.数据挖掘:概念与技术[M].第三版.2012.
[15] 哈林顿,P.机器学习实战[M].北京:人民邮电出版社,2013.
[16] 赵洪英,蔡乐才,李先杰.关联规则挖掘的Apriori算法综述[J].四川理工学院学报(自然科学版),2011,24(1):66-70.
【通联编辑:李雅琪】