APP下载

基于Storm的急危重症实时病情预警系统设计

2018-03-03杨兴礼付永全胡芳俣梁梁雷新刚张继武

中国医疗器械杂志 2018年1期
关键词:预警系统集群处理器

【作 者】杨兴礼,付永全,胡芳俣,梁梁,雷新刚,张继武

0 引言

随着“以病人为中心”理念的深化和实践发展,围绕病人的各种临床信息系统产生了海量的临床数据,这些数据为医护人员提供了丰富的诊疗信息。但这些信息的使用往往都是后处理方式,有一定的时滞性,不能及时反应患者病情的变化情况。尤其对于急危重症患者,实时、准确的病情判断,对于挽救病人生命、提高诊疗质量具有非常重要的意义。大数据时代,如何对持续大流量的实时临床数据进行分析并快速响应,是一项高价值和高挑战性的工作[1]。

本文结合流式计算框架Storm与消息队列系统MetaQ提出一种基于Storm的实时病情预警服务的设计方案,其优势主要体现在海量临床监测数据的存储与处理,通过实时计算和分析早期预警评分,据此产生报警或预警信息,以达到监控急危重症患者的病情状态的目的。

1 改良早期预警评分

改良早期预警评分(Modif i ed Early Warning Score,MEWS)是一种简单的生理学评分,通过几个常规的病情参数即可完成对患者的病情评价[2]。MEWS评分系统评估包括收缩压、心率、呼吸、体温和神志五项基本的生命指标,评分在0~4分,病员病情稳定,无潜在危重病风险,可按照一般病员护理常规予以护理;评分在5~8分的患者,患者病情不稳定,病情变化危险大,存在“潜在危重病”危险;≥9分的患者,病情危重,条件允许应当送入重症监护室或者专科病房接受治疗[3]。评分细则如表1所示。

表1 早期预警MEWS评分表(改良)Tab.1 MEWS scoring form

罹患严重疾病的患者发生急性病情变化时通常伴有上述生理指标的改变,这些改变经常在患者发生严重不良事件之前数小时到24 h内出现。国外研究显示,医务人员能否及时识别这种突发的病情变化并给予充分的处理,与急危重症患者的预后如死亡或呼吸、心搏骤停等密切相关[4]。通过对MEWS的实时计算和监控,可以有效识别出危重患者潜在的病情变化,提早进行临床干预,避免延误患者病情。

2 系统设计与实现

2.1 系统组成

实时计算系统的第一步是患者临床数据的采集。以ICU重症监护病房为例,临床数据流的产生源头主要有床旁监护设备和院内临床数据存储。系统通过设备网关和数据网关来进行数据的获取。

图1 ICU患者临床数据采集Fig.1 ICU patients’ clinical data collection

由于采集数据的速度和处理数据的速度不一定匹配,需要一个消息中间件作为缓冲,本系统采用MetaQ消息队列集群作为缓冲池,为数据接入提供保障。流式计算部分采用Storm集群作为计算平台。实时计算的结果写入MySQL云存储服务器中,并根据需要在客户端应用中进行展示。系统组成结构如图2所示。

图2 基于Storm的急危重症实时病情预警系统组成结构Fig.2 Structure of real-time disease warning system based on Storm

其中,Storm集群通过运行在主控节点的Nimbus服务在集群内分配任务给各工作节点,并监控集群运行状态。各工作节点通过Supervisor后台程序实时监听从主控节点分配给它执行的任务,据此启动或停止执行任务的工作进程。主控节点和工作节点之间通过Zookeeper集群来实现协调[5]。Storm集群组成结构如图3所示。

图3 Storm集群组成结构Fig.3 Storm cluster structure

2.2 体系架构设计

根据对系统组成和业务功能的分析,该病情预警系统分为四层架构:数据采集层、实时计算层、数据落地层和信息展现层[6]。同时,提供一个贯穿四层的元数据处理器,以解决在不同的临床环境和多种数据流情况下的数据异构问题。急危重症实时病情预警系统体系架构如图4所示。

图4 急危重症实时病情预警系统体系架构Fig.4 System architecture of real-time disease warning system

(1)数据采集

用于MEWS评分的数据项目主要来自于监护设备和护理记录。根据数据流来源的不同可分别采用设备网关或数据网关两种技术进行数据采集,并将获取到的数据,同步推送到消息队列中。

(2)实时计算

实时计算采用Storm集群技术框架,主要由一个发射器(Spout)和一系列的处理器(Bolt)组成。MEWS评分实时计算拓扑设计如图5所示。

图5 MEWS评分实时计算拓扑设计Fig.5 Real-time computing topology design of MEWS scoring

消息队列发射器MetaQSpout负责读取数据流并进行有限的数据格式化、异常检查后,将数据封装发送给后续处理器。发送完毕后,发射器的任务就结束了,后台的守护线程AckTask负责跟踪任务到达Bolt后是否执行成功。从Spout发送任务到Bolt中有多种分组方式,如直接分组、随机分组、广播分组等。本系统只需要把任务发散到各台机器中执行,所以采用比较简单的随机分组方式[6]。

本系统搭载的处理器主要有单项评分处理器MapperBolt、总分计算处理器CalcBolt、存储处理器MySqlBolt、消息队列处理器MetaQBolt以及打印处理器PrintBolt这几种类型。运行过程中可根据处理任务的负载情况按需调整处理器的数量。

发射器、处理器间均使用tuple结构传递数据流。一个tuple代表数据流中的一个基本的处理单元,一个没有边界的、源源不断的、连续的tuple序列就组成了Stream[7]。

(3)数据落地

最终计算结果的存储(暂存或持久化)称为数据落地。伴随着持续产生的临床数据流,实时计算的结果数据量也将会非常庞大,考虑到大数据的存储和使用,同时保证系统的高可用性,系统采用两种数据落地方式:MySQL云存储和回写消息队列,以支持不同的使用场景。云存储的数据可应用于各种临床信息系统;消息队列主要作为实时的病情预警消息源。

(4)信息展现

通过对落地的计算结果进行整理和分析,可以在各种临床信息系统中进行展示。其中消息队列中的预警信息可基于SignalR技术实时推送到预警系统中,以便及时提醒到医护人员。

(5)元数据处理器

元数据是关于数据的组织、数据域以及关系的信息,也就是“关于数据的数据”。由于各家医院、各个临床信息系统的开发语言、运行平台和通信协议的不同,对外数据交换的数据格式也存在很大的差异[8]。为了使系统在各种异构环境下都可以有效运行,系统设计中专门定义了元数据处理器,以解决因语言差异、平台差异、协议差异和数据差异所造成的高代价的系统集成和信息资源共享问题,通过配置将不同的数据格式与元数据标准进行映射处理。

2.3 设计方案分析与评价

随着急危重症患者监护技术的发展,全面的临床数据采集与存储为实时病情预警提供了很好的运行基础。该设计方案在我们的模拟病房试运行一周时间,共计算MEWS评分40万余次,发现报警患者5例次,均可在发现后5 s内通知实验人员。同时,系统使用人员可在后台监控平台查看患者评分结果的分布情况。统计分析见图6所示。

图6 MEWS评分实时计算统计分析(24小时)Fig.6 MEWS calculation results stat(in 24 hours)

本文讨论的设计方案有如下几个方面的优势:

(1) 系统只依赖于临床数据的采集与发送,对现有临床业务系统的运行没有任何影响;

(2) 通过集群的架构模式,可以根据监控的患者数量随时扩展系统的处理能力;

(3) 系统自动进行评分计算,可以及时发现问题并通知到相关的医护人员,减轻临床工作量;

(4) 系统为使用者提供了一目了然的统计分析界面,可方便地进行查阅与跟踪。

该设计方案虽然具有许多优点,但仍然存在一些可以改进的地方。一方面,临床采集的数据会因为设备或网络原因产生一些偏差,导致计算结果存在误差,可能出现“谎报军情”的情况。在处理过程中,系统需要对输入的原始数据进行合理有效的去噪处理。另一方面,患者在有限时间内的病情状态是相对稳定的,而报警计算是实时不间断的,所以系统有可能在某一段时间内反复产生相同的报警信息,这样既浪费了系统运能,处理不当还会对临床工作造成干扰。后期需要考虑制定更加合理的报警等级及报警策略。

3 结语

本文设计并实现了一种基于Storm的实时病情预警系统,通过计算和分析临床早期预警评分,可以实时监测急危重症病人的病情状态,并根据严重程度为医护人员提供及时的临床提醒。该设计为临床病情预警提供了新的解决方案,并且具有低成本、高效率、易于扩展等优点,相信可以为提升临床质量、提高患者安全方面提供一些新的思路和参考。

[1] 任慧朋. 医疗大数据环境下的健康信息分析方法[J]. 中国医疗设备, 2016, 31(5): 173-177.

[2] 刘海霞. ICU早期预警评分对护理工作的指导作用[J]. 现代预防医学, 2011, 38(22): 4800-4801.

[3] 张玉英, 石根萍. 改良早期预警评分早期识别急诊“潜在危重患者”临床分析[J]. 中华实用诊断与治疗杂志, 2009, 23(12): 1246-1247.

[4] Saxon R. The recognition and early management of critical illness[J]. Ann R Coll Surg Engl, 2005, 87:315-322.

[5] 王明. 基于实时流技术的诈骗短信预警系统的设计与实现[J]. 软件, 2015, 36(1): 32-37.

[6] 胡宇舟, 范滨, 顾学道, 等. 基于Storm的云计算在自动清分系统中的实时数据处理应用[J]. 计算机应用, 2014(S1): 96-99.

[7] 王铭坤, 袁少光, 朱永利, 等. 基于Storm的海量数据实时聚类[J].计算机应用, 2014, 34(11): 3078-3081.

[8] 杨喆, 叶青, 刘丹红, 等. 医学观察数据的元数据框架及标准化应用[J]. 中国数字医学, 2012, 7(2): 37-40.

猜你喜欢

预警系统集群处理器
民用飞机机载跑道入侵预警系统仿真验证
一种基于CNN迁移学习的井下烟、火智能感知预警系统
海上小型无人机集群的反制装备需求与应对之策研究
基于ZigBee与GPRS的输电杆塔倾斜监测预警系统
一种无人机集群发射回收装置的控制系统设计
Python与Spark集群在收费数据分析中的应用
桥、隧安全防范声光预警系统
勤快又呆萌的集群机器人
ADI推出新一代SigmaDSP处理器
火线热讯