病人医疗监护系统采用C/S架构的VC开发的应用系统,分为服务器端和客户端,客户端分为病人端和医生端,通过面向对象技术来实现界面的显示,界面显示的过程中使用了双缓冲绘图技术以及VC自定义控件技术。
病人端把读取到的曲线数据和随机函数生成的数字数据,以波形图像和数字形式在对应窗口显示出来,然后通过服务器将数据发送到医生端,并在医生端以同样的方式用窗口显示出来,从而达到对病人的远程监护。
论文详细介绍了系统的设计和核心算法。
初步测试表明,系统实现了基本功能。
关键词:医疗;监护;服务器;远程;构架
中图分类号:TP277
是传统医疗方式存在很多不便,而且必须是跟医生进行面对面交谈,造成了医生的工作量的增加,不利于医生更好的展开工作。
鉴于此,开发一个医疗系统可以减轻医生的负担,也实现对病人不在医生身边时对病人的监护。
医生希望详细了解病人的生理数据,心率,脉搏,呼吸,血压含量,体温等。
病人希望得到更多的健康监护,并在身体状况不佳时得到实时提醒,而诊断数据需要通过病人获取,诊断方法和结论则由医生保管,因此,存在距离问题。
为解决上述难题,近年来,面向家庭、个人的医疗监护系统逐渐成为医疗技术领域的研究热点。
1 系统框架
1.1 系统概述
本系统主要的功能分为:采集端对病人数据的采集;
广东深圳专业医疗产品设备外观工业产品设计医疗档案管理对医疗技术发展的重要性分析采集端对采集数据的成像显示;服务器端对采集端以及监护端发送过来的数据的处理;监护端对服务器端转发过来采集端数据的成像处理;报警功能的实现。
如图1病人医疗监护系统的基本框架图。
(1)数据的采集以及随机函数生成的数据;(2)数据的成像显示,以及数据的发送;(3)服务器端数据的转发;(4)监护端对收到的监护端数据的显示。
课题研究中的数据,心率、脉
广东深圳专业医疗仪器造型工业产品设计机电产品设计的关键技术探讨搏氧、呼吸率的曲线的数据是从医院拷贝过来的一段数据,存储在txt中。
通过采集端的函数读取,显示到对应的窗口中。
数据的发送是通过C/S客户服务器模式来完成,并将数据发送到服务器。
服务器通过对数据库Map关系,查找到对应的监护端,并将采集端发送过来的数据发送到监护端。
监护端对收到的数据进行一些处理,并显示出来。
图1 病人医疗监护系统
采集端负责对病人数据进行采集(对txt文件的读取),并定时向监护端发送数据;同时采集端对要对采集数据进行成像显示;服务器端负责对采集端或者监护端发送过来的数据进行转发处理,它通过查找数据库来获取采集端和监护端的映射关系;监护端对服务器端转发过来采集端数据的成像处理。
2 详细设计
2.1 服务器端
服务器端采用从CSocket继承的类:CListenSocket类和CClientSocket类。
CListenSocket负责监听开
广东深圳专业医疗产品造型工业产品设计西安中小型企业工业设计现状浅析通的端口号,监听是否有客户端访问服务器。
如果发现有客户端访问服务器,则通过CListenSocket的一个虚函数OnAccept()来接受处理一个CClientSocket对象。
接受一个CClientSocket对象之后,由CClientSocket类对象的一个虚函数OnReceive()函数来处理新建的
广东深圳专业理邦监护仪产品设计公司浅广东深圳专业医疗器材产品外观工业产品设计设计为先――BenQ五年工业设计回眸析高层建筑结构设计CClientSocket对象。
在OnReceive()函数中来完成自定义消息的发送,交由主窗口自定义消息函数OnNetReceive()来处理客户端发送过来的消息。
消息的分类(例如文字消息或者曲线消息)通过枚举对象来进行区分发送过来的消息。
针对不同的枚举对象有不同的消息处理函数DisposeLogin(pPack,pSocket)完成对登陆用户的处理并将其添加到一个static list对象中。
DisposeLogout(pPack)完成对登出客户端的处理;DisposeTransmit(pPack)完成对接收的曲线的消息的处理;DispaseChat(pPack)完成收到的文字信息处理。
2.2 客户端
客户端分为采集端和监护端,采集端负责采集数据并完成数据的成像显示,监护端负责接收采集端发送过来的数据处理。
2.2.1 采集端采用的是一个单文档应用程序,通过多个窗口的创建来完成对病人身体状况的一些模拟。
(1)数据的读取,病人信息通过计算机以及传感器获得心率、脉搏氧、以及呼吸率相关数据;(2)曲线的成像显示。
对图像的显示是通过在主
广东深圳专业医疗产品仪器工业产品设计产品设计中的色彩分析窗口中创建子窗口来实现,CDrawWnd类就是这些窗口的父类。
CDrawWnd类是从主窗口CWnd继承的一个类,CDrawWnd采用了双缓冲绘图技术。
因为人类都有视觉暂留,普通的绘图可能产生闪屏现象。
双缓冲绘图技术通过创建一个CDC对象和在CDC对象基础上的一个CBitmap对象,在该CBitmap对象中来完成图像的绘制(即类似画板)。
然后将CDC对象粘贴到系统视图区对象中来完成图像的显示;(3)因为心率、呼吸率、脉搏氧窗口的曲线显示和心率、呼吸率、脉搏氧、血压体温的数据显示是不一样的。
所以它们都是CDrawWnd类派生下来的类,派生之后又派生出来了不同的类。
其中心率曲线、脉搏氧曲线和呼吸率曲线的对象是由CStripWnd类定义的不同类对象。
对曲线的存储显示是通过一个CStrip类来完成的,然后在CStripWnd类中来定义一个CStrip类对象,在DrawContent()完成曲线绘制。
另外心率、脉搏氧和呼吸率显示的是一个整数,所以它们都是同一个类CTextWnd类的类对象。
血压显示了三个数据,因此血压是CTextWnd类派生类的CTextABPWnd类的类对象。
体温显示的是一个小树,因此体温是CTexWnd类派生类的CTextTempWnd类的一个类对象;(4)采集端也有一个继承自CSocket类的CClientSocket类,它的数据发送也是通过CClientScoket类的一个类对象调用Send()函数来完成。
数据的接受是通过CClientSocket类的虚函数OnReceive()来完成,并通过PostMessage()函数将数据抛送到视图区自定义消息函数来处理。
2.2.2 监护端成像原理和采集端一样,不同的是监护端可以完成多个采集端数据的接受,并且单击采集端窗口的时候可以显示对应的采集端曲线。
CInfoWnd负责接受来自不同采集端的小窗口的创建来完成数据的显示,可以完成报警功能和选定病人端的功能。
每一个采集端都有一个阈值设置的CThresholdSetDlg类的对话框完成阈值的设置(阈值设置的原因是因为人体的一些数据是保持在一个范围之内的,有一个最大值和最小值,这样我们可以自己定义可以承受大的范围)。
其它的功能类似于采集端,例如数据的发送等。
3 核心算法
3.1 客户端算法
客户端主要算法就是所有窗口的基类,下面就是该基类的实现的主要算法:
删除创建的DC();
CDC*pDC=获取设备DC();
获取客户区的DC(rc);
m_dcMem.创建和设备相同大小DC(pDC);
m_bmpMem.CreateCompatibleBitmap(设备DC,客户区.Width(),客户区.Height());
m_dcMem.SelectObject(&同客户区大小相同CBitmap);
m_dcMem.FillSolidRect(设置客户区背景色);
释放DC(pDC);
3.2 服务器端算法
if(!m_scokListen.创建监听的端口号(6000))
{:消息提示框(_T("Socket创建失败!"));
return;}
if(!m_scokListen.监听端口())
{消息提示框(_T("Socket监听失败!"));
m_scokListen.关闭();
return;}
NET_PACK*pPack=(NET_PACK*)CClien
广东深圳专业起搏器产品设计公司论我国医疗器械发展前景tSocket传送过来的数据;
CClientSocket*pSocket=(CClientSocket*)CClientSocket对象;
switch(pPack->枚举类型)//枚举类型标示消息的类型
{case LOGIN:
处理登陆函数(pPack,pSocket);
break;
case LOGOUT:
处理登出函数(pPack);
break;
case TRANSMIT:
处理曲线和数字数据函数(pPack);
break;
case CHAT:
处理聊天函数(pPack);
break;}
4 结束语
课题在深入分析网络通信和VC成像基本原理,架构设计和核心技术的基础上,以C/S模式的架构系统进行实验性研究。
结合C++面向对象的技术,在各个窗口通过面向对象技术来实现对病人数据的模拟显示。
病人医疗监护系统还有很多的不足之处。
服务器是VC开发的exe程序满足不了数量比较庞大的用户需求,只适合小容量的集群。
数据包在网络传输的时候可能不能达到绝对的同步,如果数据包经过的路由器过多的话,也有可能发生丢失数据包的情况
参考文献:
[1]刘奕,孙翱,何熙文.基于Socket的C++语言网络通讯机制和程序设计[J].计算机应用研究,1999(05):49-51.
[2]朱蓉.利用中间件Socket实现多客户机端底层网络通信[J].计算机系统应用,2005(06):17-21.
[3]何进.基于Socket的TCP/IP网络通讯模式研究[J].计算机应用研究,2001(08):134-136.
作者简介:邹燕飞(1981-),女,甘肃人,教师,讲师,硕士,研究方向:并行计算、云计算、网格计算。
作者单位:咸阳师范学院 信息工程学院,陕西咸阳 712000
基金项目:云计算环境下资源负载均衡调度算法研究(项目编号:13XSYK057)。