周肖樹,韓娜,肖家立,周宇鵬,陳俊斌
(北京理工大學(xué)珠海學(xué)院,珠海519088)
O2O模式下的社區(qū)醫(yī)療服務(wù)原型系統(tǒng)設(shè)計與實現(xiàn)
周肖樹,韓娜,肖家立,周宇鵬,陳俊斌
(北京理工大學(xué)珠海學(xué)院,珠海519088)
社會科技力量提高,人們生活也發(fā)生了很大的變化,科學(xué)技術(shù)的發(fā)展推動智慧醫(yī)療的進(jìn)程。該項目是HHCE支持的延伸項目,為滿足社區(qū)醫(yī)療需求,此項目采用便攜式醫(yī)療器械作為醫(yī)療終端對患者進(jìn)行健康監(jiān)護(hù),收集患者的個人體征信息、信息整合通過數(shù)據(jù)傳輸形式傳送到云平臺,并通過云平臺進(jìn)行數(shù)據(jù)分析、數(shù)據(jù)交互并繪制成圖表、圖像顯示病人的健康狀況,并可以為系統(tǒng)用戶提供服務(wù)。
社區(qū)醫(yī)療;數(shù)據(jù)采集;數(shù)據(jù)傳送;數(shù)據(jù)分析;云平臺
因為國內(nèi)公共醫(yī)療管理的體制仍不完善,治療費用高、就醫(yī)的渠道少、覆蓋區(qū)域少等一系列的原因困擾著群眾。特別是“醫(yī)療制度低效、醫(yī)療服務(wù)質(zhì)量差、看病難費用高的現(xiàn)狀”為關(guān)注重點的醫(yī)療問題。大醫(yī)院往往是很多人,而社區(qū)里的小醫(yī)院卻無人出現(xiàn),病人掛號手續(xù)問題瑣碎等問題呈現(xiàn)出,醫(yī)療資源兩極分化,醫(yī)療監(jiān)管機制不嚴(yán)格等原因所致。隨著時間的推移,醫(yī)學(xué)界將會融入更多的聰敏的醫(yī)療設(shè)備、傳感技術(shù)等高科技,使得治療服務(wù)確確實實的走到智能化的路途中。在中國的醫(yī)療大改革的前提下,智慧醫(yī)療逐漸進(jìn)入普通人的生活中。
針對以上的問題,我們擬提出了O2O模式下的社區(qū)醫(yī)療服務(wù)原型系統(tǒng)。這是一款通過硬件平臺和程序設(shè)計相結(jié)合的醫(yī)療系統(tǒng),整體基于物聯(lián)網(wǎng)的三層架構(gòu),“數(shù)據(jù)收集層—智能網(wǎng)關(guān)—后臺服務(wù)器”,在各層之間,信息不是單向傳遞。數(shù)據(jù)收集層,通過易攜醫(yī)療器械來檢查人體的生命體征信息,如血氧、血壓等。將收集到的數(shù)據(jù)在本地整合,經(jīng)過互聯(lián)網(wǎng)發(fā)送到服務(wù)器端。后臺服務(wù)器對相應(yīng)的數(shù)據(jù)(如患者的個人信息,體征信息,醫(yī)療機構(gòu)等)進(jìn)行整合,實現(xiàn)數(shù)據(jù)交互,同時對數(shù)據(jù)進(jìn)行計算,分析,繪制成折線圖,圖表,錄入數(shù)據(jù)庫等操作。整個項目的后臺系統(tǒng)是以B/S(服務(wù)器與瀏覽器)為體系結(jié)構(gòu),Browser(瀏覽器端)UI(界面)服務(wù)器接口,負(fù)責(zé)數(shù)據(jù)的顯示等,Server(服務(wù)器端)即是數(shù)據(jù)庫的數(shù)據(jù)存儲。前端采集端以C/S(服務(wù)器與客戶端)為系統(tǒng)結(jié)構(gòu),Client(客戶端)這里使用的是便攜式醫(yī)療設(shè)備,負(fù)責(zé)獲取患者的基本個人信息和采集人體生命體征信息如血氧,血壓等一系列基本的操作。Server(服務(wù)器端)即便攜式醫(yī)療系統(tǒng),負(fù)責(zé)數(shù)據(jù)服務(wù),收集由各個機構(gòu)便攜設(shè)備所采集的信息??蓪崿F(xiàn)對多方采集的數(shù)據(jù)進(jìn)行整合和匯總,更好地實現(xiàn)對患者的健康狀況的檢測,對數(shù)據(jù)進(jìn)行分析和實現(xiàn)回饋。
本項目以C#為編輯語言,使用Visual Studio 2012作為開發(fā)工具搭建整體的基礎(chǔ)框架,前端的便攜醫(yī)療設(shè)備將采集到生命體征信息通過后臺服務(wù)器發(fā)布的WCF服務(wù),傳輸數(shù)據(jù)。后臺收集到數(shù)據(jù)進(jìn)行分析,然后繪制成折線圖等圖表形式展,用戶也可以通過移動設(shè)備對生成的二維碼進(jìn)行掃碼獲取信息。O2O模式下的社區(qū)醫(yī)療服務(wù)原型系統(tǒng)框架如圖1所示。
圖1 系統(tǒng)框架圖
系統(tǒng)硬件部分:使用的是低成本醫(yī)療設(shè)備,實現(xiàn)對相關(guān)數(shù)據(jù)的采集,同時實現(xiàn)將數(shù)據(jù)傳送至后臺服務(wù)器上,或者傳輸至移動終端。便攜醫(yī)療設(shè)備具有檢測人體體征數(shù)據(jù)的功能(如血壓,血氧,體溫,心電等),它借助調(diào)用各個端口的傳感器實現(xiàn)數(shù)據(jù)采集,采集端每個檢測設(shè)備控制調(diào)用操作以dll文件控件方式提供接口給前端系統(tǒng);輸入輸出的參數(shù)為XML文件格式;前端系統(tǒng)負(fù)責(zé)數(shù)據(jù)的存儲、歸檔以及本地瀏覽顯示等操作。設(shè)備圖如圖2所示。
圖2 設(shè)備圖
系統(tǒng)軟件部分設(shè)計:通過便攜醫(yī)療設(shè)備檢測采集人體體征數(shù)據(jù)。將收集來的數(shù)據(jù)傳輸?shù)胶笈_服務(wù)器中并且在本地保存。服務(wù)器獲得對應(yīng)的數(shù)據(jù)并保存到數(shù)據(jù)庫中,同時將數(shù)據(jù)以圖表的形式展示給使用者。系統(tǒng)主程序流程圖如圖3所示。
圖3 系統(tǒng)主程序流程圖
O2O模式下的社區(qū)醫(yī)療服務(wù)原型系統(tǒng)收集端,采用微軟Visual Studio 2012開發(fā)工具,在.NET的開發(fā)環(huán)境中,使用WinForm窗體設(shè)計窗體和可視空間,創(chuàng)建Windows應(yīng)用程序作為友好化界面顯示。部分代碼如下:
調(diào)用動態(tài)鏈接庫實現(xiàn)對傳感器的調(diào)用關(guān)鍵代碼如下:
(血壓模塊部分調(diào)用部分代碼)
public class血壓
{
//函數(shù)說明:調(diào)用動態(tài)庫,初始化,血壓采集操作和顯示界面;
[DllImport(@".DllExamPressurepressure.dll",Entry?Point="OnInit",CallingConvention=CallingConvention.Std?Call,CharSet=CharSet.Auto)]
//函數(shù)說明:調(diào)用控件,開始血壓數(shù)據(jù)采集,阻塞式返回結(jié)果
[DllImport(@".DllExamPressurepressure.dll",EntryPoint ="StartDetect",CallingConvention=CallingConvention.Cdecl, CharSet=CharSet.Auto)]
[return:MarshalAs(UnmanagedType.BStr)]
(創(chuàng)建XML文件部分代碼)
實現(xiàn)xml文件的創(chuàng)建
{
Xm lDocumentdoc=new Xm lDocument();
XmlDeclaration dec=doc.CreateXmlDeclaration("1.0", "utf-8",null);
添加dec節(jié)點
//創(chuàng)建根節(jié)點
Xm lElement root=doc.CreateElement("insert");
添加root節(jié)點
//二級節(jié)點
Xm lNode node=doc.CreateElement("baseInfo");
//三級節(jié)點
XmlNodenode2=doc.CreateElement("Record");
node.AppendChild(node2);
O2O背景模式下的社區(qū)醫(yī)療服務(wù)原型系統(tǒng),使用的是微軟Visual Studio2012開發(fā)工具,C#建立編輯語言基本模型,用三層架構(gòu)對整個項目進(jìn)行編寫,實現(xiàn)多種業(yè)務(wù)邏輯和數(shù)據(jù)間的聯(lián)系,三層架構(gòu)主要有UI層(表現(xiàn)層)后臺系統(tǒng)界面的顯示,BLL(業(yè)務(wù)邏輯層)實現(xiàn)數(shù)據(jù)分析然后判斷操作,傳送對應(yīng)的數(shù)據(jù)值,DAL(數(shù)據(jù)處理)對數(shù)據(jù)進(jìn)行操作,對數(shù)據(jù)庫的一些添加、修改、更新等。部分關(guān)鍵代碼如下:
xm l格式數(shù)據(jù)錄入數(shù)據(jù)庫
public static xml節(jié)點數(shù)據(jù)錄入
{
//SQL語句,插入基礎(chǔ)檢查信息
string sql=@"insert into Resident(ResidentId,Name,Id?Number,Sex,DateOfBirth)values('{0}','{1}','{2}','{3}','{4}')";
string sql2=@"select count(*)from Resident where Id?Number='{0}'";
//新建基礎(chǔ)檢查信息實例記錄基礎(chǔ)信息數(shù)據(jù)
BasicInfo basic=new BasicInfo();
try
{
//將xm l數(shù)據(jù)轉(zhuǎn)換成xm ldoc
XmlDocumentDOC=new XmlDocument();
DOC.LoadXml(sxml);
Xm lElement root=DOC.DocumentElement;
//將doc對象數(shù)據(jù)賦予給basic對象
basic.examNO=root.SelectSingleNode("/baseInfo/Record/ examNo").InnerText;
血壓數(shù)據(jù)錄入(部分代碼展示):
public static XML格式的血壓數(shù)據(jù)錄入數(shù)據(jù)庫
{
string sql=@"insert into Pressure values('{0}','{1}','{2}',' {3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}', '{15}','{16}',)'
for(int i=0;i<4;++i)
{
Data item=new Data();
string cname="/Pressure"+"/"+((DataName)i).ToString ()+"/CNAME";
string ename="/Pressure"+"/"+((DataName)i).ToString ()+"/ENAME";
string lrange="/Pressure"+"/"+((DataName)i).ToString ()+"/LRANGE";
...
string s=String.Format(sql,bi.checkdate,bi.examNO,bi. check ID,bi.name,bi.sex,bi.age,bi.doctor,bi.deviceID,bi.ver?sion,bi.reserve,bi.check_flag,bi.hosname,bi.auditdoctor,bi.au?ditdate,bi.status,bi.str1,bi.str2,bi.str3,bi.str4,bi.str5,bi.str6, bi.str7,bi.str8,bi.str9,bi.str10,temp[0].ENAME)
...
if(flag>0)
{
pressure.HasData=true;
}
return pressure;
}
兩部分進(jìn)行對接主要通過調(diào)用WCF服務(wù),在后臺服務(wù)器創(chuàng)建WCF服務(wù),添加對應(yīng)的端口的調(diào)用,在便攜設(shè)備上,需要傳遞數(shù)值的代碼添加對應(yīng)服務(wù)與相應(yīng)的端口調(diào)用,當(dāng)返回值為true時,數(shù)據(jù)傳輸成功。
關(guān)鍵代碼如下:
Winfrom端添加相應(yīng)的WCF服務(wù),然后調(diào)用:
string bloodoxygen=bloodOxygen.BloodOxygenDetect(s,x, y);
SendData.Service1Client DataHost=new SendData.Ser?vice1Client();
Debug.WriteLine(DataHost.SendPressure(bloodoxygen));
后臺端的服務(wù)操作;
[ServiceContract]
{
[OperationContract]
bool SendPressure(string sxm l);
[OperationContract]
boolSendBloodOxygen(string sxml);
[OperationContract]
boolSendTemperature(string sxm l);
[OperationContract]
string ValidateId(string id,string password);
[OperationContract]
string SearchResident(stringname);
(發(fā)送數(shù)據(jù)給數(shù)據(jù)庫服務(wù)器,血壓部分)
{
#region發(fā)送血壓數(shù)據(jù)給數(shù)據(jù)庫服務(wù)器
{
BasicInfobasic=new BasicInfo();
Pressure pre=new Pressure();
basic=XMLHelper.XmlToBasicInfo(XMLHelper.SelectXml (sxm l,"/insert/baseInfo"));
pre=XMLHelper.Xm lToPressure(XMLHelper.SelectXm l (sxm l,"/insert/Pressure"));
if(basic.HasData&&pre.HasData)
return true;
else
return false;
采集端起始界面顯示如圖4:
圖4
血氧檢測是醫(yī)療檢測設(shè)備對被檢測者的脈搏飽和度以及脈搏氧脈搏的測量功能如圖5(a),血壓檢測是醫(yī)療檢查設(shè)備對服務(wù)對象做無創(chuàng)血壓測量的功能如圖5 (b)。血氧與血壓檢測通過調(diào)用本地dll功能庫實現(xiàn)對便攜醫(yī)療設(shè)備上傳感器端口的調(diào)用,從而實現(xiàn)對血氧血壓的采集,所采集的數(shù)據(jù)dll對應(yīng)庫會相應(yīng)生成xml文檔,從xml中提取需要的檢測數(shù)值進(jìn)行顯示,同時進(jìn)行本地保存。
圖5
后臺服務(wù)器端,左邊為選擇欄,前端便攜設(shè)備采集的數(shù)據(jù)上傳到后臺服務(wù)器中。,后臺主要以具體展示界面如圖6所示。
圖6
后臺數(shù)據(jù)的獲取主要通過WCF服務(wù),在后臺服務(wù)器創(chuàng)建WCF服務(wù),添加對應(yīng)的端口的調(diào)用,在便攜設(shè)備上需要傳遞數(shù)值的代碼添加對應(yīng)服務(wù)與相應(yīng)的端口調(diào)用,當(dāng)返回值為true,數(shù)據(jù)傳輸成功。將人體體征數(shù)據(jù)及圖形進(jìn)行顯示和繪制,接收多種數(shù)據(jù)實時顯示,繪制出生命體征折現(xiàn)圖,餅狀圖等,如圖7所示。
圖7
便攜式智能醫(yī)療系統(tǒng)是基于互聯(lián)網(wǎng)技術(shù)和移動平臺為基礎(chǔ)、概括了和傳統(tǒng)醫(yī)療設(shè)備的優(yōu)缺點,順應(yīng)國家衛(wèi)生部門倡導(dǎo)基礎(chǔ)醫(yī)療設(shè)備進(jìn)社區(qū),即:社區(qū)醫(yī)療建議,新型醫(yī)療設(shè)備終端系統(tǒng)的研制。主要的優(yōu)勢在于,簡易的設(shè)備帶起來方便(可以用在小型醫(yī)院),消耗少環(huán)保(用電池供電)、穩(wěn)定(用先進(jìn)的科學(xué)醫(yī)療技術(shù))、使用簡單(操作系統(tǒng)可以根據(jù)要求定制)、圖表分析病因,遠(yuǎn)程醫(yī)生診療。可以提升整體的社區(qū)工作的效率。O2O模式下的社區(qū)醫(yī)療服務(wù)原型系統(tǒng)主要使用在家庭,社區(qū)機構(gòu)或者醫(yī)院等。實現(xiàn)大眾方便就醫(yī)。
系統(tǒng)后續(xù)可以添加功能內(nèi)容:
1、數(shù)據(jù)分析繪制多張折線圖。
2、加入大數(shù)據(jù)深度分析功能,提出更加合理的決策建議。
3、實現(xiàn)患者定位和實時顯示生命體征數(shù)據(jù)。
[1]馬駿.C#網(wǎng)絡(luò)應(yīng)用編程[M].人民郵電出版社,2010.8.
[2]DanielCazzulino等.C#Web應(yīng)用程序入門經(jīng)典[M]北京:清華大學(xué)出版社,2003.
[3]廖新彥.ASPNET交互式Web數(shù)據(jù)庫設(shè)計[M]北京:中國鐵道出版社,2004.
[4]王珊.數(shù)據(jù)庫系統(tǒng)概論[M].高等教育出版社,2008.6.
[5]雷景生.數(shù)據(jù)庫原理及應(yīng)用[M].清華大學(xué)出版社,2012.1.
[6]陳建偉,李美君,施建強.ASP動態(tài)網(wǎng)站開發(fā)教程(第一版).清華大學(xué)出版社,2005.1.
[7]溫明.ASP網(wǎng)站建設(shè)實錄.紅旗出版社,2005.2.
[8]邵麗萍,張后揚,郭春芳.網(wǎng)絡(luò)編程技術(shù)使用教程(第一版).清華出版社,2005.1.
[9]龍馬工作室編.ASP+SQLServer組建動態(tài)網(wǎng)站實例精講.北京:人民郵電出版社.
[10]鄭阿奇.SQLServer實用教程(第2版)[M].北京:電子工業(yè)出版社,2005.
[11]王珊,薩師煊.數(shù)據(jù)庫系統(tǒng)概論(第四版)[M].北京:高等教育出版社,2006.
[12]郭勝等.C#.NET程序設(shè)計教程[M].北京:清華大學(xué)出版社,2002.
[13]鄭人杰,殷人昆,陶永雷.實用軟件工程(第二版)[M].北京:清華大學(xué)出版社,1997.
[14]周佩德.數(shù)據(jù)庫原理及應(yīng)用[M].北京:電子工業(yè)出版社,2004.
[15]巴茲拉等.ASP.NET安全性高級編程.北京:清華大學(xué)出版社,2003.
Design and Im p lementation of Prototype System of Community Health Service in O2O Mode
ZHOUXiao-shu,HANNa,XIAO Jia-li,ZHOUYu-peng,CHEN Ju-bin
(Beijing Institute of Technology,Zhuhai 519085)
Social science and technology to improve the people's lives have also undergone great changes,the developmentof science and technology to promote the wisdom of themedical process.This project is a HHCE support extension project tomeet communitymedical needs,uses portablemedicaldevicesasamedical terminal to carry outhealth care for patients,collects the personalsigns information,information inte?gration of the patients transmitted to the cloud platform through data transmission,and through the cloud platform to analyze,data interac?tion and draw charts,images show the patient'shealth status,and can provide services to the system users.
周肖樹(1983-),男,碩士研究生,研究方向為軟件工程、物聯(lián)網(wǎng)工程和移動互聯(lián)網(wǎng)開發(fā)
韓娜(1981-),女,軟件工程碩士,講師,研究方向為物聯(lián)網(wǎng)工程、虛擬現(xiàn)實,E-mail:20205409@qq.com;
肖家立(1985-),男,碩士生研究生,研究方向為企業(yè)信息化、移動應(yīng)用開發(fā)、云平臺與大數(shù)據(jù)應(yīng)用開發(fā)
周宇鵬(1995-),男,廣東惠州人,本科,研究方向為物聯(lián)網(wǎng)系統(tǒng)
陳俊斌(1995-),男,廣東深圳人,本簡,研究方向為物聯(lián)網(wǎng)系統(tǒng)
2017-04-10
2017-07-18
2016年廣東省大學(xué)生創(chuàng)新訓(xùn)練計劃項目、2015年廣東高校省級重點平臺和重大科研項目—青年創(chuàng)新人才類項目(No.2015KQNCX211)
1007-1423(2017)22-0044-06
10.3969/j.issn.1007-1423.2017.22.012
CommunityMedicalCare;Data Acquisition;Information Transmission;Data Analysis;Cloud Platforms