APP下载

大数据驱动下的智慧医疗服务系统设计

2022-10-10李胜旭

软件工程 2022年10期
关键词:智慧医疗算法

李胜旭,王 颖

(福建中医药大学人文与管理学院,福建 福州 350122)

1 引言(Introduction)

近年来,大数据、云计算、人工智能等新技术发展迅速,大数据和云计算作为信息化建设的新理念、新方向在不同的领域得到了研究人员的广泛关注。在医疗大数据环境下,传统的医疗模式对数据的处理滞后,已经不能适应新时代医疗信息化发展的形势及任务发展的要求,如何将云计算技术与大数据服务相结合,将两者引入智慧医疗建设,已成为当前智慧医疗是否实现转型升级的重大机遇。

将大数据、云计算和智慧医疗三者结合起来进行,实现医疗信息化的研究,是摆在科研人员面前的一个新的高度。首先,医疗大数据中蕴含着巨大的有价值的信息,如何提炼挖掘出这些有价值的信息,对智慧医疗的发展有很大的促进作用。比如对医疗大数据中的病历,利用文字搜索的技术、自然语言理解的技术、数据挖掘的技术进行对比、归纳、分析,为我们的医生提供智慧提示、提醒和建议,提高医生的诊疗水平;其次,医疗数据的大规模快速扩张,要保证这些数据可以被安全、可靠、高效地存储和读取,同时还需要有“弹性”扩张的存储机制,而传统的计算机架构方式牵制着数据存储能力,特别是大数据处理能力,无法适应新技术发展需求,云计算中采用的相关存储技术为大数据的存储提供了有力手段。通过云计算进行医疗架构整体部署、数据的集约管理,最终达到提高整个医疗系统资源的利用率,减少设备重复投入,降低了系统运营成本;最后,实现在大数据环境下的数据分析,特别是某些疾病的数据分析,把这些分析后的数据提供给医疗机构和医生,将其作为参考数据,在没有与病人“面对面”接触的情况下,通过对这些数据的分析,可以给政府、医疗机构提供合理的医疗资源分配决策。本文为了解决将云计算和大数据技术引入智慧医疗建设存在的不足,提出在部署建设中的几种算法及构想,这些算法构想的提出对提升现代医学信息化发展新理念、新技术及新模式有很好的参考借鉴作用。

2 大数据下智慧医疗数据管理(Smart medical data management based on big data)

大数据驱动的智慧医疗云平台涉及大量数据的处理,以及针对医疗行业的科学研究模型。本文主要从两个方面进行分析。

2.1 医疗数据采集和清洗规则、数据仓库与接口规范研究

医疗大数据的数据来源非常广泛,各类临床医疗数据有的以结构化数据的形式存放在关系型数据库中,但有的却以半结构化或非结构化数据的形式存放在文件系统中,而且这些数据可以随时更新访问。因此,需要制定对应的数据仓库技术(Extract Transform Load,ETL)进行数据采集,以及整合各类碎片化的方法,还要对这些数据进行清洗,淘汰数据干扰,保证数据质量,以防止后期在数据分析中的困扰。同时由于医疗领域本身的特性,每时每刻要根据时间推进不断更新数据状态,及时判断数据实体情况,做到将各种各样数据按照统一的格式进行存储,以方便提供给上层后台人员进行有效的数据分析,减少干扰。本文提出大数据收集模块方法,首先基于Sqoop开发ETL模型,通过这个方法实现统一的结构化数据从关系型数据库到Hadoop平台的迁移;其次提出采用基于Hadoop Common开发的半结构化数据、非结构化数据的传输功能。

数据仓库对外统一的数据接口规范研究,包括接口格式、使用语言、负载均衡设计等内容。通过其他研究人员提出的观点,采用基于Hadoop的云中间件技术在智慧医疗上的研究,可以对建立智慧医疗系统提供有效的大数据支撑。另外为了增强云平台能力的性能,再引入部分针对医疗信息处理的新组件,最终达到采集海量用户的生理参数、实现资源合理分配、有效存储在各种介质,有针对性地分析展示数据。在数据存储部分,引入了分布式文件系统和分布式缓存数据库,同时支持传统的关系型数据库。

2.2 医疗大数据存储管理模块的设计

医疗大数据存储和管理模块的建立同样需要满足数据仓库设计的要求,建立一个既面向主题,又具有集成性的且能够基于时间变量与决策支持的数据仓库。本文采用图1设计的基于Zookeeper的分布式Redis框架来满足医疗大数据的存储管理。

图1 分布式缓存系统架构图Fig.1 Architecture diagram of distributed cache system

图1用于医疗数据处理系统,其设计思想是基于分层思路。它把整个框架分为数据层和服务层两个不同的层次,数据层负责具体的Redis数据库的实例,负责在服务层实现医疗业务服务和医疗数据封装过程。ZooKeeper提供高效的负载均衡集群,提供高稳定性能的保障。ZooKeeper提供一致性服务,统一维护Redis集群的数据分片信息,客户端通过ZooKeeper获得Redis集群的数据分片信息并建立路由算法,实现医疗大数据Redis集群的动态扩缩容和数据自动迁移的能力,结合Redis-Sentinel,为每个Redis主节点配备若干个备节点,利用Redis备节点可以对Redis主节点进行数据同步复制,通过和Redis-Sentinel集群来保障Redis集群的可用性,同时通过ZooKeeper与客户端通信来将后端Redis主节点和备节点的切换信息通知给客户端,实现集群故障的自动转移,保证Redis集群的高可用性。

3 智慧医疗服务数据挖掘分析及决策信息服务体系研究(Research on data mining analysis and decision-making information service system of smart medical service)

分布式缓存的存储模块建立之后,需要建立预测数据模型、关联模型、服务模型的研究,设计结合智慧医疗应用所需及实际数据要求状况,在海量的医疗数据中准确收集有效有用信息建立数学模型,并进行预测研究。系统面对用户运维过程中,接收到的数据量以数量级形式呈现,数据量增加迅速,因此通过建立预测模型,可以在数据变化过程中就进行分析,及时对系统进行改变。最终产生的数据结果可以在医疗过程中或医疗后发挥作用,比如对某一个时期某些疾病是否有可能爆发进行预测判断。针对新型冠状病毒肺炎疫情发展的可能性,项目提出的方案可以对病毒的后期走向建立一种预测模型,给政府部门、医疗机构提供合理的参考价值。

在医疗大数据的分析中,将以医院信息管理和医疗信息服务的应用为驱动,基于大数据系统框架模型和医疗专题数据模型,采用先进的数据分析方法,比如关键绩效指标分析、聚类缝隙分析技术、数据多维分析技术、数据报表分析技术及数据仪表分析等,提供医疗大数据分析与决策信息服务。

大数据的分析算法和方法很多,结合医疗大数据的特点,特别是分析临床医学信息系统,研究其与临床决策支持系统的关联,建立基于医疗大数据的系统框架模型,研究支持PB级海量数据的、面向专题数据仓库的高效、快速的数据存储、数据索引及数据检索方法。在大数据系统中,由于数据量庞大,高效、快速的数据存储、数据索引及数据检索在数据仓库和大数据领域非常之重要,这种方法依靠良好的、优化的数据组织结构和相应的算法。一个优良的检索技术对数据库具有至关重要的作用,并且是衡量一个数据库系统性能的重要指标。本文采用协同过滤算法来分析管理存储在数据仓库里的医疗大数据,通过算法设计基于HL7消息的推荐系统接口,最后通过HL7推荐消息使系统与电子病历系统等院内其他信息系统实现应用的实时对接。

算法设计:首先,我们利用基于Sqoop的大数据收集模块分布式地从各医院信息系统中收集患者就诊信息,截取其有效数据集组成用户可信内容,并将这些可信的记录收集过程转换为一个三元组序列:

然后,我们使用若干相似度度量方式计算用户之间的相似度,比如欧氏距离、皮尔逊相关系数和余弦相似度等。

欧式距离表示多维空间中两个点的真实距离,其计算如式(1)所示:

而用欧式距离表示的相似度则为式(2)所示:

皮尔逊相关系数表示两个三元组之间协方差和标准差之间的比率,其计算如式(3)所示:

通过皮尔逊相关系数衡量线性相关关系。若=0,说明与之间无线性相关关系。相关系数的绝对值越大,相关度越强;相关系数越接近于1或-1,相关度越强;相关系数越接近于0,相关度越弱。

相对于欧氏距离,余弦距离更关注两个向量在方向上的差异。余弦相似度表述了向量空间中两个三元组的向量值之间夹角的余弦值,通过计算的值来衡量两者之间差异的大小,其计算如式(4)所示。

综合上述几种相似度计算方法,通过计算得到相似度度量值,应用在智慧医疗系统中来获得毗邻的用户或者项目,也就是一种基于相似度门槛阈值的固定数量的邻居。通过以上方法,设计了一种符合智慧医疗服务的数据挖掘及分析系统。算法代码如下。

4 智慧医疗大数据云服务数据展示平台(Data display platform of smart medical big data cloud service)

在智慧医疗领域,无论是病人、医生或者管理人员,都期望把蕴藏在大数据背后对自己有价值的信息清晰地展示在面前,所以最终的数据如何展现出来是非常关键的。

通过分析智慧医疗云平台的功能,数据展现主要有几个方面:(1)医疗机构实时了解和掌握近期的医疗动态并调整目标。医疗大数据云平台帮助各个医疗服务机构实现医疗资源共享共用,信息及时沟通、信息协同共享,共同为用户实现不同的服务视图,实现类型丰富的服务方式。另外也可以根据平台提供的信息将一些医疗服务进行整合,构建一种新的服务模式,以便节约运行成本。(2)决策或政府部门对数据的需求主要通过丰富的各类报表、图表及分析结果来满足,这些数据要具有一定的说服力,在决策过程中提供数据支撑。(3)患者主要通过提供的数据综合分析个人自身信息并进行预判断,根据数据或信息选择合适的医生进行咨询或者从平台中得到指导、治疗和参考,避免盲目的诊疗。(4)医生也可以根据患者及平台提供的数据分析病况,对患者规划一个有针对性的治疗目标,最终制定合适的治疗方案。

因此大数据驱动下的智慧医疗服务系统设计的最后,是在智慧医疗云平台的应用上能够建立一个友好的交互。因此项目在智慧医疗应用层架构中,通过基于Zookeeper的分布式缓存框架来实现数据展示平台,分布式缓存架构要及时准确快速地返回不同用户的请求,根据用户需要合理地提供查询服务。

本文提出一种分布式发布订阅消息队列系统,实现针对医疗数据的多样化处理方法,解决Hadoop无法实现即时查询和交互设计的局限。即针对获得的不同的医疗信息数据源,提出离线批处理与在线实时计算相结合的医疗数据处理策略,如图2所示。

图2 离线批处理和在线实时计算的数据处理策略Fig.2 Data processing strategies for offline batch processing and online real-time computation

为应对大量复杂的医疗大数据,尽可能降低处理延迟,实时计算部分采用了数据分层与分流相结合的技术路线,将数据计算流程拉长,采用单功能多阶段的数据处理方式将数据处理拆分为三个阶段:日志解析、产品分流和新增计算。在实时处理部分,采用了Flink和Spark Streaming相结合的方式。Flink是一种具有高吞吐、低延迟的实时离线统一的流式数据处理引擎,非常适合医疗大数据分析中第一阶段的日志解析特点。而Spark Streaming是微批处理,可以将实时数据流输入的数据划分为一个个小批次数据流,保障后续新增计算中聚合操作稳定的分钟级响应。为了将计算引擎的性能发挥到最大,将新增计算的延迟降到最低,

5 结论(Conclusion)

医疗云计算平台系统其数据的复杂性及整个系统的弹性伸缩能力与传统IT基础设施的技术有很大的差别。医疗大数据挖掘处理需要云计算技术作为平台,反之云计算技术也将计算资源作为一种服务支撑医疗大数据的有效挖掘,两者相辅相成,相得益彰,提供了各自需求的有价值信息。对于云计算理论应用,本文提出了智慧医疗云服务体系结构设计模型及其工程实现方法,将多个差异的医疗服务组织及医疗资源聚集于医疗云中,构建一个多样化、开放式、可伸缩、多用户的智慧医疗云数字化生态环境。在大数据的挖掘中,根据医疗大数据的特点,设计算法实现数据分析,给后期工作者提供以下几个方面的理论及实践研究的参考。

(1)针对不同对象提供个性化服务

通过大数据采集与关联技术,面向患者的分析结果提供具有针对性、个性化的服务方式;针对医疗机构及管理部门进行管理行为预测,提前发现可能出现的潜在问题。

(2)大数据环境下智慧医疗更加完善

在设计不同阶段对他人的不足之处提出解决方案,并通过算法分析实现,提出的方法及算法节省了运维时间和空间,节省了硬件成本。

(3)智慧医疗云平台的建立

智慧医疗云服务平台重点解决平台开放性、可持续扩展性以及服务之间松耦合的问题。在云平台架构设计时考虑了可扩展性问题,不断集成新的服务而不需要对整体架构做过多修改,最终建立智慧医疗云平台时把其中的每个服务都看作一组服务接口的集合,达到服务之间松耦合,实现整体架构的开放和易扩展性。

猜你喜欢

智慧医疗算法
基于MapReduce的改进Eclat算法
Travellng thg World Full—time for Rree
进位加法的两种算法
京张医疗联合的成功之路
我们怎样理解医疗创新
一种改进的整周模糊度去相关算法
医疗扶贫至关重要
有智慧的羊
什么是医疗告知
智慧派