陈学超 胡长林 赵会园 栗 华
1 合肥市健康信息中心 安徽合肥 230041; 2 科大讯飞股份有限公司 安徽合肥 230088
从H1N1、H5N1、H7N9,到疟疾、Cholera、埃博拉病毒,再到SARS、新型冠状病毒等,无数次人与病毒抗争的经验表明,病毒或许不能被彻底消灭,但是可以早发现、早预防。为有效应对各种传染病、做好“四早”,建设常态化疫情防控战线,建立智慧化预警多点触发机制,健全多渠道监测预警机制,提高实时分析、集中研判的能力,各地也在进一步利用信息化手段探索尝试[1-3]。
本研究以合肥市为例,探索建设传染病防控智慧化预警多点触发系统(以下简称“多点触发系统”),以新发突发传染病、不明原因疾病为重点,覆盖基层医疗机构、等级医院、病原学检测实验室、学校、药店等重点监测场所和重点人群,实现基于症候群和疾病的多点触发监测,全市范围内建成灵敏可靠、多层级、广覆盖的多点触发监测预警系统,切实增强传染病的早期发现、快速处置、精准防控能力。
多点触发系统基于深度学习、人工智能、大数据等技术,以医疗机构监测作为主线,整合有条件的其他非医疗机构数据、丰富传染病监测渠道,找到传染病可能发生的早期信号,实现数据联动、多点触发,同时细化和完善传染病发生、发展的节点布局,提升敏感性和及时性,实现基于症候群和传染病的多点触发监测网络,提高传染病暴发的早期觉察能力及新发传染病早期识别能力。
1.1.1 问题与需求分析 “数据共享难”、“多头重复报”、“手工记录繁”等问题一直都是传染病防控乃至整个疾控信息化建设的痛点、堵点和难点[4-6]。建设整合原有业务子系统,将数据采集方式也由单一手工填报转变为以数据自动交换为主、网络直报为辅的工作方式,这将极大地减轻一线人员的工作负担。针对“新冠肺炎”疫情暴露出来的传染病监测预警监管短板,迫切需要通过拓宽监测内容和渠道范围,实现对传染病早期监测、辅助排查以及多模态可视化预警,构建多点触发机制,将监测关口前移[7-9]。
伴随计算机技术由信息化到智能化的转变,人类对传染病认识的不断加深以及“大健康”理念的转变,传染病常态化防控、精准防控以及智能化防控已成为社会稳定发展的必然要求[10-12]。
1.1.2 体系架构 系统体系架构基本思路是:以采集到的医疗机构就诊数据、实验室病原检测数据和非医疗机构登记数据为基础,进行多源数据融合,多点交叉验证,建设以患者疾病档案为核心的传染病智能信息中枢,构建传染病监测预警与态势推演核心能力,计算预警关注度,得到症候群预警信号和确诊病例疫情预警信号,实现传染病的早发现。体系架构图,见图1。
图1 多点触发系统体系架构
1.1.3 系统设计 系统总体架构设计主要分为IAAS、PAAS、SAAS三层,对接医疗机构、中小学、药店、其他机构;IAAS层基于合肥市政务云平台,按需动态分配计算、存储、网络、安全等资源;PAAS层为各类应用提供能力服务引擎、统一数据中心、统一运营系统,为SAAS层各应用提供公共支撑服务和三个核心服务;SAAS层包含八大业务应用系统,如传染病智能监测上报子系统、防保科智能监测审核子系统等。系统整体架构,详见图2。
图2 系统整体架构
(1)数据体系
为实现传染病的早期预警,在传染病患者确诊前多个阶段节点建立相关数据的监测预警哨点,对医疗机构病历、学校(中小学)晨午检、药店药物销售等多源数据进行规范汇聚,开展数据标准化治理,构建疾控专题数据库,并基于该专题数据库,以及主数据人员主索引、AI多点监测数据结构化与语义理解等能力,进行分析、建模及信号分析等,实现疾病及相关因素的多点触发预警、多渠道预警和多维度预测。同时,构建传染病监测统计指标库,满足疾控相关部门的管理需求。
以数据仓库的方法和分层的方式进行数据的管理。数据仓库分实时流处理和离线批处理,按应用场景选择不同的数据库,实时计算的结果使用关系数据库,离线批处理结果使用分布式大数据架构的数据库,日志使用分布式非关系型数据库,缓存使用缓存数据库。
数据分层的方式共分为贴源数据层(ODS)、数据明细层(DWD)、数据汇总层(DWS)和数据应用层(APP)四层。数据体系架构,见如图3。
(2) 核心服务
①以患者疾病档案为核心的传染病智能信息中枢,记录患者从出生到死亡整个过程的实时性健康信息,具体包括体检筛查史、临床检验史、疾病诊断史、病原检测史、流行病学史、治疗史、随访管理史、预防接种史等。主要提供基于深度学习的多点监测数据结构化与语义理解能力服务、基于大数据的传染病潜在症状挖掘能力服务、基于深度时空序列异常检测的症候群监测预警能力服务、基于排序学习的预警信号重要性预测评估能力服务、基于传染病动力学模型的疫情态势推演与预测能力服务、传染病知识图谱自动化构建与知识检索能力服务、基于深度学习的传染病诊断与识别能力服务和基于深度学习的传染病直报卡的质检能力服务等。
②传染病业务系统融合封装支撑服务,用以提供给应用系统集成调用,包括数据访问权限控制、数据脱敏加密、系统信息模型转化、数据文件备份、涉及各应用系统协同和系统内部消息处理等。主要提供传染病数据访问权限控制服务、传染病数据脱敏服务、传染病数据加密服务、传染病结构化数据交换服务、医疗信息模型化转换服务、医疗数据文件备份服务、医疗数据统一标识服务、基于消息队列的传染病数据处理服务、传染病业务消息提醒服务、多模态排查平台服务集成服务和智能位置解析服务集成服务等。
③传染病监测预警与态势推演,为各类业务应用提供统一能力服务支撑,包括多点监测数据结构化与语义理解、传染病潜在症状挖掘、症候群监测预警、预警信号重要性预测评估等。主要提供多源异构协同调度服务、XDS文档存储服务、患者疾病档案多源异构协议适配服务、患者疾病档案术语标化管理服务、基于模式识别的对象索引服务、患者疾病档案质量改进服务、患者疾病档案存储与管理服务(EDR)、传染病指标集构建服务和多源实时特征分析服务等。
(3)系统功能
传染病智能监测上报子系统。辅助临床医生实现法定以及非法定传染病上报,一方面通过人工智能辅助诊断技术实现传染病个例实时监测;另一方面实现对传染病填报卡的智能登记、智能审核、智能填充等。功能架构,见图4。
图4 传染病智能监测上报子系统功能架构
防保科智能监测审核子系统。防保科医生针对临床医生提交的传染病直报卡进行智能审核和院内人机诊断不一致的传染病风险病例进行提醒,为传染病直报提供智能辅助服务。功能架构,见图5。
图5 防保科智能监测审核子系统功能架构
传染病监测预警子系统。疾控部门通过多点触发机制获取来自医疗机构、学校等重点人群病历数据和相关健康数据,基于自然语言理解技术,自动提取症状、诊断等信息,构建传染病及其症候群聚集性风险的智能监测体系。功能架构,见图6。
图6 传染病监测预警子系统功能架构
传染病可视化决策分析子系统。采用时空动态可视化技术,结合GIS地图、热力图和警报点等综合可视化展示传染病疫情多维度的时空信息,为疾控部门提供可视化分析决策。功能架构,见图7。
图7 传染病可视化决策分析子系统功能架构
多模态智能排查核实子系统。基于语音技术、智能交互技术与排查服务平台,提供电话、短信、问卷等多种渠道结合的形式,支持疾控部门调查聚集病例的发病情况,确认病例来源,及时掌握可能暴发或流行的风险。功能架构,见图8。
图8 多模态智能排查核实子系统功能架构图
流行病学调查智能辅助子系统。对于智能排查后仍需关注的传染病预警信号,通过疾控部门研判后发起相应流行病学调查,围绕调查准备阶段、流调过程、密切接触人员管理和报告编写等环节提供智能辅助。功能架构,见图9。
图9 流行病学调查智能辅助子系统功能架构
智能康复护航子系统。管理确诊康复出院患者的隔离、解除隔离过程,包括在指定隔离点隔离期间和居家隔离期间的每日自查直报和数据统计、分析、呈现等(通过对接省接口实现)。功能架构,见图10。
图10 智能康复护航子系统功能架构
基础管理子系统。支持平台注册、用户管理、应用管理、日志管理等的有效运营和维护。功能架构,见图11。
图11 基础管理子系统功能架构
1.2.1 传染病实体及属性抽取
①传染病实体抽取
针对医疗领域存在很多实体嵌套情况,系统采用基于BERT(bidirectional encoder representation from transformers)加自注意力机制的多层序列化标注模型[13-15],从而实现嵌套实体和顶层实体的联合抽取。首先使用医疗领域预训练的BERT模型对输入句子进行编码,在第一层,识别底层实体元素;识别出第一层的实体之后,将识别出实体中的每个字组合成一个整体表示,用以识别更高层的实体。在训练阶段,设置一个固定的最大实体层数,按上述方式依次计算每一层的损失,将每一层的损失相加,进行联合训练。在测试阶段,依次预测每一层的实体,若在某一层没有标记出实体,则预测结束。
②传染病实体间关系抽取
传染病学领域相对专业封闭,其实体类型可枚举,而实体之间的关系也是可枚举的,通过预定义实体与实体之间的关系,将抽取任务转换成分类任务来解决。但医学知识快速更新,仅靠专家整理已不能满足需求,为快速丰富知识库中的实体关系,采用远程监督学习+人工核查的方案,见图12。
图12 远程监督学习+人工核查
首先,从无结构化数据中(如病历,医学百科,医学书籍等)识别出实体,并将其链接到知识库中;接着,从已整理好的知识库中抽取出关系三元组,将其映射到无结构数据中,从而自动构建含有噪声的训练数据;利用上述自动构建的训练数据,训练基于远程监督的关系抽取模型,从而发现新的关系;新发现的关系交由专家审核,确认无误后再更新到知识图谱中。
③传染病实体属性抽取
对于属性抽取,采用的技术方案和实体关系抽取类似。首先识别出身体部位实体和属性实体,接着用分类模型判断身体部位与属性之间是否存在关系,见图13,图中,1表示存在关系,0表示不存在关系,从图中可知,部位“左胸皮肤”有属性“疼痛”,“腰部皮肤”有属性“红斑”和“水疱”。
图13 实体属性抽取
1.2.2 基于深度学习的时空序列异常检测模型 采用自学习的方式从多维特征数据序列中学习到序列特征表示,正常事件序列通过该特征表示层编码后,再经过预测网络会得到较低的度量,而异常事件序列则在预测网络得到较高的度量,从而发出异常检测信号[16-18],见图14。
图14 深度序列异常检测模型框图
预训练阶段,在输入序列数据中的每一帧中,对时间、空间、年龄分布等因素进行编码和拼接,形成多维特征序列。然后,将此多维特征序列送入LSTM AutoEncoder进行训练,通过此Encoder捕捉大量复杂的动态时间多维数据序列的自动特征提取和编码。在预测模块训练阶段,利用预训练阶段训练好的LSTM AutoEncoder对单一事件编码生成特征,然后基于真实的回归值去训练预测器中的LSTM模型做预测任务。在预测阶段,将单一事件对应的特征向量通过拼接后作为新的输入传到LSTM Forecaster模块中做预测。
1.2.3 基于排序学习的传染病预警信号重要性预测模型 在排序学习阶段,根据疾控反馈的质量数据,基于pairwise方法,将每日监测预警信号生成两两信号之间的排序对。接着,将每个排序对中的信号提取和生成特征[19],该特征中,既包含信号在深度时空序列异常检测模型中的LSTM AutoEncoder特征编码,也包含专家知识所提取的特征;然后,将生成的特征经过若干全连接层,产生一个标量值代表信号的重要性值;最后,在输出层将排序对的两个重要性值相减,经过Sigmoid等激活函数,使用cross entropy作为损失函数来训练网络。排序学习模型框图,见图15。
图15 排序学习模型框图
在重要性预测阶段,将待评估重要性的单个信号同上一阶段一样提取和生成特征,然后经过相同的若干全连接层,计算得到信号的重要性预测值。
1.2.4 基于深度学习网络框架获取病历的语义特征向量 深度学习网络框架空间在更高维度上获取病历特征表征方式,进而获得病历的语义特征表示,再根据这些特征在海量已标注诊断的病历库中进行相似病历匹配,以病历库中最相似的诊断作为当前病历的辅助诊断结果。在传染病诊断模型中的语义表示层面,采用多信息融合的语义表示及度量方法,见图16。
图16 语义度量模型框图
首先,预先收集大量医学数据及患者信息,对每个数据构建样本对;其次,构建模型的拓扑结构,此模型的拓扑结构由输入层、初始语义编码层、语义编码层以及Attention层等构成。输入层主要输入自由病历文本、结构化信息文本、外部知识(专家知识库、潜在信息等)等信息。初始编码层分别对结构化信息文本、外部知识、自由病历文本进行初始表示。在语义编码层进行真正语义学习,在Attention层得到一个接近最终语义表示的语义向量;最后,通过全连接层得到最终的语义表示,用该语义表示进行语义度量。
1.2.5 具备自学习能力的知识库构建技术 基于深度认知模型的自学习知识库构建方法[20],主要包含以下几个方面的工作:从海量医学书籍及医学文献等资料中,结合篇章特点自动学习医学概念的多语义嵌入式表示模型;基于深度注意力模型发现医学文献中的新概念;对医学文献和电子病历数据中的疾病诊断依据进行概率化表示学习。总体技术路线如图17:
图17 医疗认知智能技术路线
系统部署在市政务云平台机房,由机房提供云资源和相关安全防护,并通过市卫生专网实现机构间相连。系统运维团队由各级防控指挥部牵头,各级卫健委、疾控中心、相关部门技术人员和系统厂商等人员组成,运维资金由市级财政保障。
系统覆盖全市1 425家基层医疗机构、18家等级医院、2 580+学校、4 134家药店、4家实验室以及医保购药和民政部门;检测覆盖40种法定传染病、15种非法定传染病,6大症候群监测信号,自系统上线以来,主动报卡提醒12.1万次,新增报卡5.4万余例,多源监测3 525.6万次,疾病建档1 444.2万份。
合肥市传染病多点触发系统整合了全市疾控相关信息,织密防护网、筑牢筑实隔离墙,推进全市“一盘棋”监控服务,平战结合,满足开展常态化传染病防控的紧迫要求,实现了“早期发现、多点触发、快速处置、精准防控”的目标。下一步,我们将进一步提升系统的智能化水平,让系统更加聪明,探索将系统从辅助角色转变为传染病防控第一哨兵。