標籤:智慧醫學 bluemix
開篇:前言
智慧醫學英文簡稱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”
進入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能夠為開發人員帶來一些新鮮的元素,關鍵在於大家敢於去嘗試,敢於去創新。
BlueMix與商業智慧BI(智慧醫學情境)