硅谷杂志:各大医院信息化助推自助挂号系统开发 |
2012-12-12 11:39 作者:刘德军 来源:硅谷网 HV: 编辑: 【搜索试试】
|
|
【硅谷网12月12日文】据《硅谷》杂志2012年第18期刊文,随着医院的信息化的不断推进,患者对医院服务上的要求越来越高,自助系统的使用可以在减少排队及方便患者就医方面提供不可替代的作用。我院采购的自助挂号机因未提供前台软件与HIS系统的接口,请来的工程师对HIS及其他接口的流程又不太熟,导致不能使用。无奈只好亲自上阵,经过一段时间的摸索,完成自助挂号系统的开发工作。
1编程分析
1.1程序要实现的基本功能和实现思路
自助挂号机看似很神秘、很高贵、还很神奇,其实说白了就是一台没有键盘和鼠标的电脑。所有的操作都是通过手指触碰计算机显示屏上的图符或文字就能实现对主机操作的,也就是说用显示屏代替了Click事件来处理。
程序要能处理操作者将界面停留在非主界面上一段时间后自动返主界面;要能处理数据库、显示表格、显示文字等常用的功能。
1.2自助挂号流程
首先需制定自助挂号系统流程,我院采用的是先挂号后在收费自动生成补收费方式。具体流程为:复诊患者扫描条码后选择挂号科室或专家然后打印出挂号单(初诊患者还需提供医保卡或农合卡以便获取病员信息)。
1.3程序中用到的控件
选择Label控件的Click事件来响应手指触摸事件;选择Timer控件,来处理操作者将界面停留在非主界面上一段时间后自动返主界面,以方便其后的其他人员操作;选择Image控件,Stretch属性设为True,表示图形要调整大小以与控件相适合,用于显示查询界面;对于有存取数据库需求的,则在“工程”菜单中选择“引用”中“MicrosoftActiveXDataObjects2.5Library”打“√”;有表格显示、文字显示的,则在“控件”选项卡中分别为“MicrosoftFlexgridControl6.0(SP6)”、“MicrosoftRichTextboxControl6.0(SP6)”打“√”。读者可根据系统所需功能选择合适的控件。
1.4界面设计
自助挂号系统背景画面:可用图形软件制作生成,注意画面的美观大方,整洁简明。可触摸的热区(能响应触摸事件的区域)部分要有明显图文指示标志。将Label控件大小修改成热区大小,将属性BackStyle设为0-Transparents,Caption中值清空,这样Label看上去是透明的,不影响背景显示。
窗体的属性值修改如下:BorderStyle改为None;Caption改为空;StartPosition改为2-屏幕中心;WindowState改为2-Maximized
2准备工作
1)新建文本文件,文件名:sys.ini,输入如下内容:
[数据库名]
数据库=SelfReg.mdb
[LastingTime]返回主界面时间以秒计
secs=10
2)在Access中新建数据库名称为:SelfReg.mdb,在数据库中新建表:自助挂号表,表的字段设置如下:自助ID(文本,20)、姓名(文本,40)、性别(文本,2)出生年月(日期)、住址或单位(文本,100)、病历条码(文本,20)、医合号(文本,20)、身份证号(文本,18)、合同单位ID(文本,2)、合同单位(文本,40)、类型ID(文本,4)、挂号类型(文本,20)、科室ID(文本,10)、挂号科室(文本,40)、专家ID(文本,2)、专家姓名(文本,20)、挂号日期(日期)、挂号机ID(文本,4)、挂号机编号(文本,6)、科室地址(文本,40)、备注(文本,255)。
3)准备好自助挂号系统所需的所有背景图片及所需的控件,并调整好位置、大小及属性等参数。
4)准备好打印挂号凭单的热敏打印机(须带自动切纸功能)及所需的纸张。
3主要代码
3.1mdlData模块代码
OptionExplicit
‘常用变量定义及环境初始化(略)
'定时关闭MSGBOX函数
PublicAsString
PublicX1,Y1,X2,Y2AsInteger
PublicTypePOINTAPI
XAsLong:YAsLong
EndType
'读取INI配备文件参数GetFromINI(略)
‘取鼠标坐标函数
PublicDeclareFunctionGetCursorPosLib"user32"(lpPointAsPOINTAPI)AsLong
PublicDeclareFunctionSetCursorLib"user32"(ByValhCursorAsLong)AsLong
PublicctT,ctT1,ctX,ctYAsLong
3.2窗体主要代码:
3.2.1窗体调用代码
PrivateSubForm_Load()
inipath=App.Path+"\sys.ini"
DBname=App.Path+"\"+GetFromINI("数据库名","数据库",inipath)
Me.Image1.Picture=LoadPicture(App.Path+"\images\医院自助挂号封面.jpg")
Me.Image1.Left=0:Me.Image1.Top=0:Me.Image1.Height=Me.Height:Me.Image1.Width=Me.Width
DimsNameAsString
sName="Shell_TrayWnd"
hwnd5=FindWindow(sName,"")
CallShowWindow(hwnd5,SW_HIDE)'隐藏任务栏
‘CallShowWindow(hwnd5,SW_SHOW)'显示任务栏,供调试用
EndSub
3.2.2调整窗体大小
PrivateSubForm_Resize()
Me.Image1.Left=0:Me.Image1.Top=0
Me.Image1.Height=Me.Height:Me.Image1.Width=Me.Width
EndSub
3.2.3鼠标超时未操作返回主界面(除主界面外,其他所有界面都要加timer控件)
PrivateSubTimer1_Timer()
'判定鼠标是否移动
DimXYAsPOINTAPI,dlAsLong
dl=GetCursorPos(XY)'获取当前鼠标位置
IfctX=XY.XAndctY=XY.YThen
ctT1=ctT1-1'鼠标没有动
Else
ctT1=ctT'鼠标移动了,重新计时
EndIf
ctX=XY.X:ctY=XY.Y:lblLastTime.Caption="剩余操作时间"+LTrim(Str(ctT1))+"秒"
IfctT1=0Then
ctT=Val(GetFromINI("LastingTime","secs",inipath))
frm主屏幕.Show‘切换到主界面
Unloadfrm挂号类型
EndIf
EndSub
4编程后记
本程序在WINXP+VB(SP6)环境下开发调试通过,并在单位EK2100自助挂号机上调试通过。开发时需要注意事项:1)窗体切换代码不能因切换导致显示出桌面来影响整体效果,应先显示下一窗体后再隐藏或卸载前一窗体;2)在所有可能出现错误的地方要进行错误捕获处理,以防系统因意外出错退出;3)触摸屏的分辨率与开发环境分辨率大小一致,分辨率不符会导致热区位置改变而影响效果;4)扫描条码、读磁卡等信息时,为保证文本框正确接收信息,可用提示语句的标签控件置于其上一层,并在窗体打开时将焦点设在此文本框中;5)在完成自助挂号后需信息系统提供完整就诊流程的支持(如医生站调取,收费处费等)。
|
|
|
|
【对“硅谷杂志:各大医院信息化助推自助挂号系统开发”发布评论】 |
版权及免责声明:
① 本网站部分投稿来源于“网友”,涉及投资、理财、消费等内容,请亲们反复甄别,切勿轻信。本网站部分由赞助商提供的内容属于【广告】性质,仅供阅读,不构成具体实施建议,请谨慎对待。据此操作,风险自担。
② 内容来源注明“硅谷网”及其相关称谓的文字、图片和音视频,版权均属本网站所有,任何媒体、网站或个人需经本网站许可方可复制或转载,并在使用时必须注明来源【硅谷网】或对应来源,违者本网站将依法追究责任。
③ 注明来源为各大报纸、杂志、网站及其他媒体的文章,文章原作者享有著作权,本网站转载其他媒体稿件是为传播更多的信息,并不代表赞同其观点和对其真实性负责,本网站不承担此类稿件侵权行为的连带责任。
④ 本网站不对非自身发布内容的真实性、合法性、准确性作担保。若硅谷网因为自身和转载内容,涉及到侵权、违法等问题,请有关单位或个人速与本网站取得联系(联系电话:01057255600),我们将第一时间核实处理。
|
|
|
|