O2O模式下的社区医疗服务原型系统设计与实现
2017-09-20周肖树韩娜肖家立周宇鹏陈俊斌
周肖树,韩娜,肖家立,周宇鹏,陈俊斌
(北京理工大学珠海学院,珠海519088)
O2O模式下的社区医疗服务原型系统设计与实现
周肖树,韩娜,肖家立,周宇鹏,陈俊斌
(北京理工大学珠海学院,珠海519088)
社会科技力量提高,人们生活也发生了很大的变化,科学技术的发展推动智慧医疗的进程。该项目是HHCE支持的延伸项目,为满足社区医疗需求,此项目采用便携式医疗器械作为医疗终端对患者进行健康监护,收集患者的个人体征信息、信息整合通过数据传输形式传送到云平台,并通过云平台进行数据分析、数据交互并绘制成图表、图像显示病人的健康状况,并可以为系统用户提供服务。
社区医疗;数据采集;数据传送;数据分析;云平台
0 引言
因为国内公共医疗管理的体制仍不完善,治疗费用高、就医的渠道少、覆盖区域少等一系列的原因困扰着群众。特别是“医疗制度低效、医疗服务质量差、看病难费用高的现状”为关注重点的医疗问题。大医院往往是很多人,而社区里的小医院却无人出现,病人挂号手续问题琐碎等问题呈现出,医疗资源两极分化,医疗监管机制不严格等原因所致。随着时间的推移,医学界将会融入更多的聪敏的医疗设备、传感技术等高科技,使得治疗服务确确实实的走到智能化的路途中。在中国的医疗大改革的前提下,智慧医疗逐渐进入普通人的生活中。
针对以上的问题,我们拟提出了O2O模式下的社区医疗服务原型系统。这是一款通过硬件平台和程序设计相结合的医疗系统,整体基于物联网的三层架构,“数据收集层—智能网关—后台服务器”,在各层之间,信息不是单向传递。数据收集层,通过易携医疗器械来检查人体的生命体征信息,如血氧、血压等。将收集到的数据在本地整合,经过互联网发送到服务器端。后台服务器对相应的数据(如患者的个人信息,体征信息,医疗机构等)进行整合,实现数据交互,同时对数据进行计算,分析,绘制成折线图,图表,录入数据库等操作。整个项目的后台系统是以B/S(服务器与浏览器)为体系结构,Browser(浏览器端)UI(界面)服务器接口,负责数据的显示等,Server(服务器端)即是数据库的数据存储。前端采集端以C/S(服务器与客户端)为系统结构,Client(客户端)这里使用的是便携式医疗设备,负责获取患者的基本个人信息和采集人体生命体征信息如血氧,血压等一系列基本的操作。Server(服务器端)即便携式医疗系统,负责数据服务,收集由各个机构便携设备所采集的信息。可实现对多方采集的数据进行整合和汇总,更好地实现对患者的健康状况的检测,对数据进行分析和实现回馈。
1 系统结构
本项目以C#为编辑语言,使用Visual Studio 2012作为开发工具搭建整体的基础框架,前端的便携医疗设备将采集到生命体征信息通过后台服务器发布的WCF服务,传输数据。后台收集到数据进行分析,然后绘制成折线图等图表形式展,用户也可以通过移动设备对生成的二维码进行扫码获取信息。O2O模式下的社区医疗服务原型系统框架如图1所示。
图1 系统框架图
系统硬件部分:使用的是低成本医疗设备,实现对相关数据的采集,同时实现将数据传送至后台服务器上,或者传输至移动终端。便携医疗设备具有检测人体体征数据的功能(如血压,血氧,体温,心电等),它借助调用各个端口的传感器实现数据采集,采集端每个检测设备控制调用操作以dll文件控件方式提供接口给前端系统;输入输出的参数为XML文件格式;前端系统负责数据的存储、归档以及本地浏览显示等操作。设备图如图2所示。
图2 设备图
系统软件部分设计:通过便携医疗设备检测采集人体体征数据。将收集来的数据传输到后台服务器中并且在本地保存。服务器获得对应的数据并保存到数据库中,同时将数据以图表的形式展示给使用者。系统主程序流程图如图3所示。
图3 系统主程序流程图
2 动态演示程序
O2O模式下的社区医疗服务原型系统收集端,采用微软Visual Studio 2012开发工具,在.NET的开发环境中,使用WinForm窗体设计窗体和可视空间,创建Windows应用程序作为友好化界面显示。部分代码如下:
调用动态链接库实现对传感器的调用关键代码如下:
(血压模块部分调用部分代码)
public class血压
{
//函数说明:调用动态库,初始化,血压采集操作和显示界面;
[DllImport(@".DllExamPressurepressure.dll",Entry⁃Point="OnInit",CallingConvention=CallingConvention.Std⁃Call,CharSet=CharSet.Auto)]
//函数说明:调用控件,开始血压数据采集,阻塞式返回结果
[DllImport(@".DllExamPressurepressure.dll",EntryPoint ="StartDetect",CallingConvention=CallingConvention.Cdecl, CharSet=CharSet.Auto)]
[return:MarshalAs(UnmanagedType.BStr)]
(创建XML文件部分代码)
实现xml文件的创建
{
Xm lDocumentdoc=new Xm lDocument();
XmlDeclaration dec=doc.CreateXmlDeclaration("1.0", "utf-8",null);
添加dec节点
//创建根节点
Xm lElement root=doc.CreateElement("insert");
添加root节点
//二级节点
Xm lNode node=doc.CreateElement("baseInfo");
//三级节点
XmlNodenode2=doc.CreateElement("Record");
node.AppendChild(node2);
O2O背景模式下的社区医疗服务原型系统,使用的是微软Visual Studio2012开发工具,C#建立编辑语言基本模型,用三层架构对整个项目进行编写,实现多种业务逻辑和数据间的联系,三层架构主要有UI层(表现层)后台系统界面的显示,BLL(业务逻辑层)实现数据分析然后判断操作,传送对应的数据值,DAL(数据处理)对数据进行操作,对数据库的一些添加、修改、更新等。部分关键代码如下:
xm l格式数据录入数据库
public static xml节点数据录入
{
//SQL语句,插入基础检查信息
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}'";
//新建基础检查信息实例记录基础信息数据
BasicInfo basic=new BasicInfo();
try
{
//将xm l数据转换成xm ldoc
XmlDocumentDOC=new XmlDocument();
DOC.LoadXml(sxml);
Xm lElement root=DOC.DocumentElement;
//将doc对象数据赋予给basic对象
basic.examNO=root.SelectSingleNode("/baseInfo/Record/ examNo").InnerText;
血压数据录入(部分代码展示):
public static XML格式的血压数据录入数据库
{
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;
}
两部分进行对接主要通过调用WCF服务,在后台服务器创建WCF服务,添加对应的端口的调用,在便携设备上,需要传递数值的代码添加对应服务与相应的端口调用,当返回值为true时,数据传输成功。
关键代码如下:
Winfrom端添加相应的WCF服务,然后调用:
string bloodoxygen=bloodOxygen.BloodOxygenDetect(s,x, y);
SendData.Service1Client DataHost=new SendData.Ser⁃vice1Client();
Debug.WriteLine(DataHost.SendPressure(bloodoxygen));
后台端的服务操作;
[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);
(发送数据给数据库服务器,血压部分)
{
#region发送血压数据给数据库服务器
{
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;
3 程序运行界面效果
采集端起始界面显示如图4:
图4
血氧检测是医疗检测设备对被检测者的脉搏饱和度以及脉搏氧脉搏的测量功能如图5(a),血压检测是医疗检查设备对服务对象做无创血压测量的功能如图5 (b)。血氧与血压检测通过调用本地dll功能库实现对便携医疗设备上传感器端口的调用,从而实现对血氧血压的采集,所采集的数据dll对应库会相应生成xml文档,从xml中提取需要的检测数值进行显示,同时进行本地保存。
图5
后台服务器端,左边为选择栏,前端便携设备采集的数据上传到后台服务器中。,后台主要以具体展示界面如图6所示。
图6
后台数据的获取主要通过WCF服务,在后台服务器创建WCF服务,添加对应的端口的调用,在便携设备上需要传递数值的代码添加对应服务与相应的端口调用,当返回值为true,数据传输成功。将人体体征数据及图形进行显示和绘制,接收多种数据实时显示,绘制出生命体征折现图,饼状图等,如图7所示。
图7
4 结语
便携式智能医疗系统是基于互联网技术和移动平台为基础、概括了和传统医疗设备的优缺点,顺应国家卫生部门倡导基础医疗设备进社区,即:社区医疗建议,新型医疗设备终端系统的研制。主要的优势在于,简易的设备带起来方便(可以用在小型医院),消耗少环保(用电池供电)、稳定(用先进的科学医疗技术)、使用简单(操作系统可以根据要求定制)、图表分析病因,远程医生诊疗。可以提升整体的社区工作的效率。O2O模式下的社区医疗服务原型系统主要使用在家庭,社区机构或者医院等。实现大众方便就医。
系统后续可以添加功能内容:
1、数据分析绘制多张折线图。
2、加入大数据深度分析功能,提出更加合理的决策建议。
3、实现患者定位和实时显示生命体征数据。
[1]马骏.C#网络应用编程[M].人民邮电出版社,2010.8.
[2]DanielCazzulino等.C#Web应用程序入门经典[M]北京:清华大学出版社,2003.
[3]廖新彦.ASPNET交互式Web数据库设计[M]北京:中国铁道出版社,2004.
[4]王珊.数据库系统概论[M].高等教育出版社,2008.6.
[5]雷景生.数据库原理及应用[M].清华大学出版社,2012.1.
[6]陈建伟,李美君,施建强.ASP动态网站开发教程(第一版).清华大学出版社,2005.1.
[7]温明.ASP网站建设实录.红旗出版社,2005.2.
[8]邵丽萍,张后扬,郭春芳.网络编程技术使用教程(第一版).清华出版社,2005.1.
[9]龙马工作室编.ASP+SQLServer组建动态网站实例精讲.北京:人民邮电出版社.
[10]郑阿奇.SQLServer实用教程(第2版)[M].北京:电子工业出版社,2005.
[11]王珊,萨师煊.数据库系统概论(第四版)[M].北京:高等教育出版社,2006.
[12]郭胜等.C#.NET程序设计教程[M].北京:清华大学出版社,2002.
[13]郑人杰,殷人昆,陶永雷.实用软件工程(第二版)[M].北京:清华大学出版社,1997.
[14]周佩德.数据库原理及应用[M].北京:电子工业出版社,2004.
[15]巴兹拉等.ASP.NET安全性高级编程.北京:清华大学出版社,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-),男,硕士研究生,研究方向为软件工程、物联网工程和移动互联网开发
韩娜(1981-),女,软件工程硕士,讲师,研究方向为物联网工程、虚拟现实,E-mail:20205409@qq.com;
肖家立(1985-),男,硕士生研究生,研究方向为企业信息化、移动应用开发、云平台与大数据应用开发
周宇鹏(1995-),男,广东惠州人,本科,研究方向为物联网系统
陈俊斌(1995-),男,广东深圳人,本简,研究方向为物联网系统
2017-04-10
2017-07-18
2016年广东省大学生创新训练计划项目、2015年广东高校省级重点平台和重大科研项目—青年创新人才类项目(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