您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > 一种基于WindowsMobile的医疗辅助系统Windo
一种基于WindowsMobile的医疗辅助系统徐志成1,焦阳2,朱怀宏2(1.南京大学软件学院,江苏南京210093)(2.南京大学计算机科学和技术系,江苏南京210093)摘要:WindowsMobile将熟悉的Windows体验扩展到了移动设备上,帮助用户充分利用每分每秒,尽情欢享闲暇时光,快捷获取所需信息,以及与家人朋友随时保持联系。它通过提供功能强大且灵活的平台,使开发人员能够构建功能丰富并具有创新性的移动应用程序。开发人员可以利用WindowsMobile平台来连接到数据库、联机内容以及Web服务;扩展现有企业基础结构;扩充设备资源以及享受有关设备的全新创新性移动体验。本文从实际出发,着重研究windowsmobile平台的应用,介绍了windowsmobile在医疗系统中的一个具体开发实例。关键字:移动平台,系统设计,pocketpc开发WindowsmobilebasedmedicaltreatmentsystemXuZhicheng1,JiaoYang2,ZhuHuaihong2(1.SoftwareInstitutionofNanjingUniversity,Nanjing210093,China)(2.DepartmentofComputerScienceandTechnologyofNanjingUniversity,Nanjing210093,China)Abstract:WindowsMobileextendstheWindowsexperiencestomobiledevices,whichhelpsconsumersutilizeeveryminutetogetinfomationandkeepcontactwithfriends.Itprovidesapowerfulandflexibleplatformforbuildingrichandinnovativemobileapplications.Developersmayconnecttodatabases,onlinecontentandwebservices,extendexistingenterpriseinfrastructureanddeviceresources,andenjoyinnovativenewexperiencesonmobiledevices.ThisarticleIntroducesaconcreteapplicationinhealthcaresystembasedonWindowMobileplatform.Keyword:Windowsmobile,Systemdesign,PocketPC0引言传统的医疗机构都是采用纸笔方式记录临时或长期的医嘱信息,对于医嘱信息的保存、查询、传达等效率不高,而且可能造成未执行医嘱或者是医嘱保存不妥等医疗上的疏忽。本文所涉及项目的主要需求就是将医生和护士从一堆纸笔医嘱中解放出来,运用先进的计算机辅助系统,达到高效的医院医嘱运作。同时还加入了短信服务功能,让病人家属对病人病情的掌握更加快速、准确。1技术背景介绍本项目采用的是C/S形式,网络连接是基于802.11b的无线局域网。客户端开发采用的软件环境是:Microsoft.NetFrameWork2003作为开发环境,采用C#(智能设备项目)语言作为开发语言,SDK采用的是MicrosoftPocketPCSDK2003,采用的同步工具是MicrosoftActiveSync3.8,数据库使用的是SQLCEserver,使用的操作系统是MicrosoftWindowsXP+SP1。移动设备是:HPiPAQ™H4150PocketPC搭配802.11b无线局域网路(WLAN)与蓝牙。2项目整体架构本项目对整个系统采用三层结构,即:客户端+中间层+服务器端,如图1所示。这样安排便于以后的维护,即在服务器端的数据库结构有所变化时,客户端的界面和应用程序改动不大,从而便于升级和修改数据库结构。而中间层采取ParseXML和ADO.NET技术,由于Microsoft.NetFrameWork2003而言,本身就集成了对于XML技术无缝连接技术,ADO.NET亦是WindowsMobile系统所支持,所以实现起来相当方便。这样,就可以大大提高本系统灵活度.([1]《嵌入式WindowsCE设备驱动的研究实现》)ClientApplicationXMLDataStoreADO.NETADO.NETHttp图1项目整体架构图3功能模块介绍该系统从功能角度可以分为三大模块,如图2所示。图2功能模块图3.1医院医务信息管理模块用数据库表的形式存储所有的医务信息,对于大多数信息以文本的方式进行存储,以供医务工作者查阅,对于特别重要的医务信息如医嘱,用标识的方法加以分类,以便程序动态的处理。3.2医务与非医务事件提醒模块基于数据库中的提醒表,动态发送提醒信息给特定的医生或者护士,发送对象采取动态绑定的方式,动态的查找当前在线并且身兼此职的护士,将提醒信息发到人。考虑到医院不会为每一名护士提供一台PocketPC的事实,采用了分护士群组的方法,每一台移动设备表示一个群组。群组之间动态调整,以求平衡,群组内部的护士有义务互相传达提醒信息。3.3医院人员间通讯模块通讯使用即时的形式,通讯时差将控制在30秒之内,并保留紧急信息直达的接口,在效率和系统负荷之间寻求平衡。通讯的媒体为PocketPC中的便签文件,其中可以包含字符型文字、手写文字(使用MicrosoftDigitalInk技术)、以及声音信息,最大限度的方便使用者。3.4模块间的联系:医院人员间通讯系统是一个相对独立的模块,唯一的联系就是人员的列表是和其他组建共享的医院医务信息管理模块和医务与非医务事件提醒系统之间存在着非常紧密地联系。提醒的数据库是动态生成的,其生成的依据来源于医院医务信息管理模块中的医嘱信息,以及其中加入的识别标志,从某种意义上说,医院的一切工作都是围绕着医嘱数据库展开的。同时医务与非医务事件提醒系统将标识医嘱的执行情况,并将信息返回给医院医务信息管理模块。因此两大系统在逻辑上实现不同的功能,但在系统内部没有明显的界限。内部模块存在着很大的重叠。4本系统主要特点4.1录音和手写功能对于一般的计算机而言,想要随心所欲的录音和把自己手写的内容(即自己的笔记)原样保存都不是一件很简单的事情,往往都需要加装外设以便获得信息输入。而对于一台PocketPC而言,通常只要按一个键,就可以轻松的录下语音;而想要手写输入更是非常的方便,PocketPC内部有一种叫做电子墨迹(DigitalInk)的技术,可以用来手写输入,使用非常的方便,见图3。鉴于医院一般都是老专家、老医师等对计算机不是很敏感的用户群,所以应该尽量避免他们过多的使用PocketPC上那烦杂的点击式输入方式,应该加入这种方便的功能,使其对于医嘱的记录更加方便。图3便签记事效果图这调用了OpenNETCFSmartDeviceFramework([3]http://www.opennetcf.org/OpenNetCF论坛)的sendmessage函数,用SetMode函数对其进行了封装。voidSetMode(DrawModenewMode){drawMode=newMode;switch(drawMode){caseDrawMode.Draw:SendMessage(hRich,EM_SETINKLAYER,VL_DRAWINGINK,0);。。。SendMessage(hRich,EM_SETZOOMPERCENT,0,150);if(!tbButtonDraw.Pushed)tbButtonDraw.Pushed=true;break;caseDrawMode.Type:SendMessage(hRich,EM_SETINKLAYER,VL_SMARTINK,0);。。。SendMessage(hRich,EM_SETSEL,0,0);if(tbButtonDraw.Pushed)tbButtonDraw.Pushed=false;break;}}4.2对医嘱的智能分析对于一些存在一定周期性、重复性的医嘱安排,应该可以从用户得到几个必要的参数后由客户端智能的分析并自动生成相应的医嘱,以减轻医生的负担。(例如:医生给出一个医嘱,需要给xx病人从x年x月x日上午8:00开始,到x年x月x日晚间10:00,之间的n天(n1),每天都在上午8:00,中午12:00,晚上10:00三个固定的时间,固定的进行注射药物护理,那么医生输入起始时间和结束时间,选择了执行频率(这里是‘三’的执行频率),每个频率的执行时间(这里有三个频率时间),那么系统就会自动生成n×3个医嘱,每个医嘱都有其相应的开始时间,这样便于生成提醒。4.3对医嘱执行的提醒在医嘱生成后,不能让医生或者护士机械的去点击查看医嘱,这样还是会造成对于医嘱的遗漏和忘却。因此,需要对于即将需要执行的医嘱进行定时的提醒功能,当然,这也是PocketPC所拥有的一个很方便的技术-NotificationReminder。这样,就可以在医嘱快要执行的前的一段时间就对医生或者护士进行提醒,如果过期一定的时间则通过其他的方式进行提醒(比如:医生或者护士没有将PocketPC随身携带的情况下,医嘱已经过期2分钟,此刻就可以采取手机短信的方式呼叫医生或者护士,或者采取医院广播寻人的功能等提醒医生)。以下是提醒部分的程序块,客户端通过中间的XML数据表示层向服务器端读取即时数据。其中dataBase是用于与中间层交互的类,把以ParseXML技术封装的数据返回客户端([2]《XML揭密―――入门、应用、精通》清华大学出版社)([5]《C#编程指南》电子工业出版社)stringQueryString=dataBase.MakeEverydayAllVoiceAdviceSelectSentence(Now.Year,Now.Month,Now.Day);if(count==0){NO.Add(html您好:+Login.LoginName+医生。brhrhr现在时间是:+DateTime.Now+。br您今天没有医嘱任务。如果您想查看其他日期的医嘱情况,请使用“医嘱安排”功能查看!br您今天有语音医嘱:+count3+条br请到医嘱查询处查询收看brhrhrbrdivinputtype='submit'name='Submit'value='关闭'/div/html,欢迎您:+Login.LoginName+医生,30);}else{stringeverydayDoneAdviceMes=EvedayAdvice+#+2+#+Now.Year.ToString()+#+Now.Month.ToString()+#+Now.Day.ToString()+#;DataSetst1=Welcome.MakeDataSet(everydayDoneAdviceMes);。。。NO.Add(html您好:+Login.LoginName+医生。brhrhr现在时间是:+DateTime.Now+。br您今天有医嘱任务:+count+条。br其中:br+count1+条已完成br+count2+条未完成br您今天有语音医嘱:+count3+条br请到医嘱查询处查询收看brhrhrbrdivinputtype='submit'name='Submit'value='关闭'/div/html,欢迎您:+Login.LoginName+医生,30);4.4对各种医嘱的查询医嘱有“已经执行”和“尚未执行”两种状态,为了让医生和护士能够通过查询迅速、准确的掌握这两种状态,不应该采用和其他信息一样的提示符号,应该采取非常醒目的标识。因此,本项目加入了图片标识,让单纯的、
本文标题:一种基于WindowsMobile的医疗辅助系统Windo
链接地址:https://www.777doc.com/doc-1573 .html