开篇:前言
智慧医疗英文简称WIT120,是最近兴起的专有医疗名词,通过打造健康档案区域医疗信息平台,利用最先进的物联网技术,实现患者与医务人员、医疗机构、医疗设备之间的互动,逐步达到信息化。
在这个过程中,医疗设备所产生的数据将会是非常庞大的,我们常见的包括血压、血氧数据,体温、流量、鼾声、心率、通气、BMP信息等,除此以外,某些设备自身的信息量也非常重要,包括压力、开关机时间、延时时间、断电报警、模式、设备ID等,这些信息通过物联网方式(当然也有其他方式)传输到数据中心,经由大数据分析平台最终形成统一的分析报告,提供医生、专家乃至病患者进行分析和查看。
本次博文将尝试使用Bluemix作为整体平台,在平台上部署信息采集应用、数据库应用以及分析应用,最终达到模拟分析的目的。
第一部分 Bluemix使用
有关Bluemix的使用以及相关的DEMO示例在本次博文中将不再赘述,如有读者对Bluemix的使用不是很了解的,可以参考如下连接:
《15 部最优秀的 Bluemix教程》
http://www.ibm.com/developerworks/cn/cloud/library/cl-bestoflbluemix2014/index.html
上述教程应该能够带你进入到Bluemix的全新世界。
在这个部分中,必须确保如下事项:
1)注册一个Bluemix账户,并能够登录查看个人空间
2) 熟悉JAVA编程语言,能够编写简单的JAVA程序
第二部分 Bluemix应用创建
1. 创建工作空间
首先我们需要登录Bluemix,在仪表盘面板中我们可以创建工作空间,如下图,我创建了名称为”demo”的工作空间:
2. 创建应用程序
然后在这个demo空间中创建应用程序:
3. 选择应用程序模板
之后便是选择应用程序模板:
在这里我们选择的是WEB应用程序。
4. 选择启动器
紧接着我们选择启动器,这里我们选择的是Liberty for Java
5. 命名应用程序
接下来我们要为我们的应用程序命名,在这里我们暂时命名为:cognos6647(各位可以任意调整为自己喜欢的名字。
6. 完成应用程序创建
应用程序创建完成后可以看到提示“您的应用程序已准备就绪:http://cognos6647.mybluemix.net/”,如下图所示:
可以打开该链接:
如果页面提示“Hi World!”,表示您的应用程序已经创建成功,接下来我们就可以上我们的应用了。
第三部分 创建数据库服务
在这部分我们将分为两部分来讲解:
首先是添加MongoDB 或 MongoLab服务,这是为了后续创建支持报告服务所需的数据库实例。具体操作步骤如下:
1. 添加数据库服务
在我的仪表盘中点击“添加服务或API”,
然后进入服务选择区域,选择“数据管理”类别:
紧接着在右侧的服务种类中选择mongodb服务:
(当然在这里其实有很多种选择,大家可以选择自己最熟悉的,比如mysql、postgresql等。
进入mongodb的配置界面:
设置好相应的服务名称(这里我们随机),点击【创建】即可:
此时会提醒“重新编译打包应用程序”,选择【重新编译打包】即可(等待打包发布):
2. 添加SQL数据库实例
继续回到应用程序仪表盘界面,继续“添加服务或API”(此处截图省略),紧接着继续选择类别“数据管理”,在其中选择“SQL Database”
点击【创建】,此时同样会提醒“重新编译打包应用程序”,选择【重新编译打包】即可(等待打包发布,具体截图同上,此处省略)。
3. 查看环境变量
回到仪表盘,在Liberty forJava中我们可以点击“环境变量”,看到此时环境变量(VCAP_SERVICES)中多了刚刚配置的数据库的相关信息:
第四部分 编写及部署应用程序
1. 数据库初始化
在这部分我创建了一个DBUtil.java程序,用于JAVA API初始化数据库,其实相当于我们在WEB应用中经常使用的数据库类而已。
1)初始化参数
2)获取环境变量,并进行判断
3)连接数据库
4)创建表
5)插入数据
2. 表创建
在数据库创建完成后,我们新建几个表。
【表一】sample_data_detail
该表用于存储呼吸机采集的数据,包括用户的漏气、压力、BPM等
字段名 |
类型 |
备注 |
MAC_ID |
VARCHAR |
呼吸机编号 |
LEAK_VALUE |
NUMBER |
漏气值 |
PRESSURE_VALUE |
NUMBER |
压力值 |
BPM_VALUE |
NUMBER |
BPM值 |
CREATE_TIME |
VARCHAR |
记录时间 |
【表二】time_dem
这个表作为时间维度表,主要用于关联【表一】进行多维分析(可以钻取、切片、旋转分析等)
字段名 |
类型 |
备注 |
YEAR |
VARCHAR |
年 |
MONTH |
VARCHAR |
月 |
DAY |
VARCHAR |
日 |
DATE |
DATE |
日期 |
DATE_TIME |
VARCHAR |
主键 |
创建表的时候直接调用DBUtil中的createTable方法即可。
说明:这里我只用了一个时间维度,主要是演示方便,以后可以添加其他相关维度,那样的话效果应该会更好。
3. 插入数据及数据查询
正常建完数据库表后,我们执行数据插入命令以及数据查询命令,确认数据库连接情况。
插入数据时只需要调用DBUtil中的insertData方法即可。
第五部分 应用程序调测
上述代码都完成后,我们将应用部署并进行调测。具体步骤如下:
1. 打包
这里采用ANT进行打包,如下图所示:
右键build.xml选择Run As –》 Ant Build即可。完成后提示如下:
2. 上传部署
上传的过程在此就不多说了,采用的是CF工具进行部署。
核心命令为:
cf push <app_name> -p webStarterApp.war
各位看官自行尝试。
第六部分 创建Cognos服务
1. 添加 Embeddable Reporting服务
在Bluemix中,其实是通过使用Bluemix Embeddable Reporting 服务来实现Cognos的报表功能的。
同第五部分创建数据库服务一样,在Bluemix提供的服务中,我们在类别“业务分析”中可以看到有个服务叫做“Embeddable Reporting”,选择该服务:
同样,在打开“EmbeddableReporting”配置窗口中,配置相应的服务名称:
2. 收集环境变量
创建好Cognos服务后,我们同样按照SQL一样,在环境变量中可以看到如下信息:
第七部分 配置Cognos服务
1. 打开 Embeddable Reporting控制台
创建好Cognos服务后,我们还需要进行相应的配置。
回到仪表盘界面,在服务栏中可以看到我们添加的“Embeddable Reporting”服务,点击进入:
点击上图中的【LAUNCH】按钮,打开EmbeddableReporting的控制台:
在该控制台中点击【Connect】,打开连接配置:
在此页面输入之前配置Mongodb时的环境变量中的uri,然后点击【Update】,此时控制台将会显示如下图所示的*号,表示已建立连接:
2. 创建新的应用程序
1) 在上述基础上点击*号,在弹出的创建新应用提示中输入名称和描述
2) 配置数据源
点击【Continue】后进入数据源配置界面
输入相应的参数(这些参数在第五部分讲到添加数据库服务时有提到在环境变量中可以查看)。
3) 修改数据源/查看数据源
配置完后,可以看到创建的应用相关信息:
此时可以点击文件夹图标中的Data Source进行数据源的修改和查看:
此处可以看到数据源名称为:datasource,为了方便后续应用,我们暂时改成“cgds”(cognos datasource的缩写,哈哈O(∩_∩)O)
3. 配置Visualization Bundles
这部分主要是可视化关联配置,如下图所示:
4. 创建Report
1)单机文件夹符号打开Report选项卡
2)单击“*”号进行报表配置:
输入报表名称
3)报表配置
设置报表的Package以及相关的描述即可。
第八部分 使用Cognos进行数据分析
这部分其实就是最后的展现了,可以有多种展现效果:
1)饼图
2)柱状图
3)仪表盘
实际上,对于呼吸机上传的数据,我这次示例中主要从时间的角度查看数据的演变趋势,来了解病人的情况。
例如:
由于本次仅仅作为一个DEMO,数据量比较少,图形上展现可能并不是很丰富,但是主要是为了展现这样的一个过程,因此还请各位看官见谅。
结论
小结:其实在整个过程中我也不是很自信,不确认Bluemix是否支持我所想实现的东西,然后在写这篇博文的过程中也请教了很多前辈,并且查阅了IBM Bluemix的相关教程。我相信Bluemix能够为开发者带来一些新鲜的元素,关键在于大家敢于去尝试,敢于去创新。