基于Hadoop的智能医疗分析系统的设计研究
扫描二维码
随时随地手机看文章
引言
当今的医疗系统有医院强大的治疗康复系统支撑。大型医院有着种类繁多和复杂的病症分类和科室划分,它们为病人提供了详细专业的治疗方案、医疗设备和康复场所。但是,完善的医疗系统还需求具有智能分析病情的能力,这是智能医疗希望达到的。随着物联网、云计算和其他相关技术的不断发展,提供具有这些能力的系统平台已经成为可能。
基于上述智能医疗系统的需求问题,本文设计了这样的一个医疗信息化分析系统:不论是在医院还是在家中,患者都可以通过移动智能终端或传感设备和仪器,将身体状况和相关信息通过互联网传输到远程服务器。这些信息在实现了云计算功能的Hadoop集群中处理,得出分析结果存入数据库。相关的医护人员可以随时随地了解病人的各种信息,并对患者的医疗方案作出调整和更新。患者也可以登陆系统了解自己的健康状况。
1系统设计思路
本系统从功能上可分为三大部分,分别是收集患者信息的数据收集部分、处理数据的分布式集群部分和用户交互部分。
系统不仅要求能在医院里收集患者的生理数据,还需要能在患者家中收集数据。随着医疗技术的快速发展,各种智能医疗设备层出不穷。如使用RFID技术的智能手腕、智能臂腕提供了血压、体温、脉搏、葡萄糖含量等多项人体生理指标的检测功能。本系统的设计思路是:利用智能医疗设备收集信息然后通过无线网络上传到服务器。现如今的家庭中,Wi-Fi普及相当的高,因此,不论是在医院还是在家中,都可以对患者身体状况信息进行收集。
在分布式集群中,通过对患者生理数据的分析得出智能分析结果,给医护人员提供病因参考。需要在搜集大量的患者的各项生理数据后作出最准确的分析。本系统使用Hadoop集群分析处理数据。Hadoop是适合大数据的分布式存储与计算平台,应用于各大IT电商网站的海量数据处理系统,被证明是非常成功的框架平台。处理完的数据结果将存入传统数据库中。
本系统用户端使用B/S架构(浏览器/服务器)开发。对于B/S架构来说,只要是有网络的地方,就可以通过计算机、智能手机和其他终端随时掌握患者的信息。图1所示是本系统的整个模型图。
基于系统模型可对系统进一步细分。在医院,系统具有录入患者、收集病房患者信息,并将信息反映给医生护士以作出相应治疗方案的功能。其中信息采集部分,使用基于物联网技术的传感器和各种智能医疗设备作为主要的收集设备,传感器将收集到的数据通过网络上传到数据库。根据实际的需求,可以对传感器收集的数据进行细致的安排,例如记录患者体温特征的时间、频次,监测患者的用药量。远端的服务器集群对收集到的数据进行处理,其中用来分析处理数据的是Hadoop集群,数据在集群上处理之后回传给数据库以便于呈现给用户。对于在家治疗康复的患者,可使用智能手腕等智能医疗设备获取身体状况,并通过家庭Wi-Fi网络将数据上传给系统服务器。这样,患者登陆系统,就可以查询自己的病况、智能病因分析和医嘱等信息。
根据系统需求可以设计出系统网络架构,图2所示是系统的网络架构图。
2相关核心技术
2.1智能医疗
智能医疗是物联网的重要研究领域,通过打造健康档案区域医疗信息平台,就可以利用最先进的物联网技术,实现患者与医务人员、医疗机构、医疗设备之间的互动,逐步达到信息化。通过电子医疗和RFID物联网技术能够使大量的医疗监护工作实施无线化,而远程医疗和自助医疗信息则可及时采集和高度共享,并可缓解资源短缺、资源分配不均的窘境,降低公众的医疗成本。
2.2物联网
物联网的英文全称是“TheInternetofthings”,顾名思义,物联网是物物相连的互联网,它是一个基于互联网、传统电信网的信息承载体。国际电信联盟(ITU)对物联网做了如下定义:通过二维码识读设备、射频识别(RFID)装置、红外感应器、全球定位系统和激光扫描器等信息传感设备,按约定的协议,把任何物品与互联网相连接,进行信息交换和通信,以实现智能化识别、定位、跟踪、监控和管理的一种网络。
2.3云计算和Hadoop
云计算是一种商业计算模式,它将计算任务分布在大量计算构成的资源池上,使用户能够按需获取计算力、存储空间和信息服务。云计算是网格计算、分布式计算、并行计算等关键技术日趋成熟后催生的一种新的服务模式,非常适合海量数据的分析处理。
目前应用最广泛的云计算平台是Hadoop。Hadoop来源于Google公司的分布式文件系统和计算模型的开源实现,是Apache开源组织的一个分布式计算框架,可以在大量廉价的硬件设备组成的集群上运行应用程序。Hadoop的核心是HDFS和MapReduce。HDFS是Hadoop的分布式文件系统,用来存储数据;MapReduce是一种并行计算框架,提供有处理海量数据的并行模型。MapReduce能够把应用程序分割成许多小的工作单元,并把这些单元放到任何集群节点上执行。并具有可扩展、经济、可靠、高效等特点。
3 系统具体设计研究
3.1 系统设计
负责数据信息收集的部分,可使用传感器等设备收集,并将数据通过网络上传到数据库服务器进行存储 ;给医护人员提供处理平台的部分可使用 B/S 架构建立的前端到后台到数据库的信息管理系统 ;患者同样能够使用计算机或智能手机登陆该系统来查询自己的健康状况。
医生或护士等相关医护人员也可通过使用浏览器登陆管理系统,对患者的个人信息、用药情况、医疗费用、实时状态等信息进行处理。根据职务的不同,相应人员能完成的操作也有所不同。表 1 示列是其各职位的职员所能完成的主要功能和事务。
本系统中,不同的职务拥有不同的权限,需要通过后台 代码实现事务区分。患者同样可以登录该系统,来查看目前自 己的身体健康等级、智能诊断结果、医嘱和预约看病等。
3.2系统框架设计研究
系统的核心是后台 SSH (Struts2+Hibernate+Spring)框 架部分和数据分析的设计实现。基于SSH框架的信息管理部 分分为数据库、前台页面和后台代码三部分。
3.2.1数据库的设计
在系统的开发阶段,使用MySQL关系型数据库作为系 统数据库。MySQL具有的体积小、速度快、开源、使用成本 低等特点,可以很好地支持企业级系统的开发。
针对信息分析系统的特点,根据用户职务、病人和终端的 分类,设计了一系列的关系数据表。每个实体类都对应数据库 中的一张表,且各表都有一定的关联关系,例如,病人表中主 治医生的ID号是来自于医生表中的医生ID号,病床表的病 房号来自病床表的ID号。图3给出了几张主要表的数据关系 模型图。其中生理数据等表中的数据将被传入Hadoop集群进 行分析处理,并得出智能分析结果。
3.2.2后台服务器的代码设计
系统后台服务器使用Tomcat作为Web服务器。Tomcat 是一个开源的Web应用服务器,其运行时占用的系统资源小, 扩展性好,能支持负载平衡与邮件服务等开发应用系统常用的 功能。
针对系统的需求和SSH框架标准,将系统后台代码可分 为下面8个包:
filter : session 检测
action :业务控制
action.authority :权限控制
dao :持久层接口
dao.impl:持久层的实现
service :业务逻辑层接口 service.impl:业务逻辑层的实现 model:领域对象层
系统的基础配置在XML文件中进行。代码具体实现一 般先从领域对象层着手,依次向上编写完成各层的代码,这 样有利提高开发效率。
后台代码中,最重要的就是权限控制,这可使用Struts 框架的拦截器机制实现。其核心代码如下:
ActionContext ctx = ActionContext.getContext ();
String usrNo = (String) (ctx.getSession () .get ("usrNo") +""):
String acces =( String)(ctx.getSession() .get("acces") +"");
if (usrNo!= null&&acces.equals (LOGED))
{return invocation.invoke();}
return Action.LOGIN ;
3.3基于Hadoop的数据分析的设计研究
系统的另一个核心部分是数据分析研究。设计思路是将 数据上传到Hadopp集群,通过MapReduce分析计算,得出 处理后数据,并存入数据库中。
在系统中,数据通过传感器和智能医疗设备收集,然后 通过网络上传到数据库服务器。在对患者做出智能分析时, 系统将选取指定的某项生理数据,导人Hadoop集群,并对数 据进行分析,得出结果。整个流程如图4所示。
在这个过程中,MapReduce是任务的核心。MapReduce 处理数据采用分而治之的思想,分布处理取得结果再将结果 汇总得出最终结果,即“过程的分解和结果的汇总”这个过程被高度抽象为两个函数:map和reduce,其中map负责把任务分解成多个任务,reduce负责把分解后的多任务处理的结果汇总起来。
在本系统中,通过实现不同的MapReduce模型可达到 各种智能分析需求。现以推测血糖是否超标的智能分析为例, 血糖数据在经过MapReduce的初步分片处理后作为参数后传 入Map函数,Map函数将血糖数据与正常标准进行对比,并 将超标数据和对应时间信息组成<Key, Value>对。其伪代码 表示如下:
从分完片的参数中取出血糖数据存入数组B;
for (循环数组中的每个血糖数据b) {
if (血糖数据b >标准数值){
通过血糖数据b找到对应的测量时间t ;
把测量时间t作为Key,血糖数据b作为Value,组
成<k, v>对;
将<k, v>存储在context容器中;
}
}
经过Map函数处理的数据将被输送给Reduce函数做汇 总处理。在这个过程中,数据可以根据指定的方式进行排序 输入到Reduce函数,也可以根据自定的规则进行分区以决 定由几个Reduce函数进行处理。从Map端输入的血糖数据 <k,v>对以时间先后作为排序标准,输入一个Reduce函数。 其伪代码表示如下:
for (遍历每个输入的<k, v>对){
累加得到总的非正常血糖数据sum ;
}
计算得到总的时间跨度time ;
把time和sum作为一组新的<k, v>存入context容器;
Reduce处理后的数据即是最终需求的数据,默认以文档 的形式输出到HDFS文件系统中。借助Sqoop框架工具将数 据从HDFS中导出到传统关系型数据库中。用户通过Web端 查看处理后的数据,同操作一般B/S架构系统一样,不会感 受到差异。
使用MapReduce进行智能分析,具有自定义、扩展性强、 能处理海量数据等特点。针对不同生理数据,通过编写各异 的MapReduce程序,即可达到分析目的。当患者的数量达到一定规模,而且需要处理的数据量很大时,系统将动态地向 Hadoop集群中增加节点以提高集群的处理能力。
4 结 语
智能医疗分析系统是目前医疗发展的一个重要内容。本 文通过物联网应用,引入了多种智能终端,使用更有优势的 B/S架构做开发。在后台Web服务器的开发上则使用成熟的 SSH框架,为系统与用户交互提供高效稳定的保证。在系统 的核心智能诊断方面,使用了基于Hadoop的数据分析框架, 继承了 Hadoop的高可靠、高扩展和高效特点,将来自患者的 各式生理数据并行地在分布式系统上进行处理,得出智能分 析结果。根据具体的病情,系统还能够进行针对性的参数调整。 据此得出智能诊断结果能够为医护人员提供治疗参考,也能为 患者提供康复建议。
20211222_61c2085632aee__基于Hadoop的智能医疗分析系统的设计研究