曹课兴,刘红霞
(榆林学院 信息工程学院,陕西 榆林 719000)
随着信息化进程不断加快,计算机已在医院医疗,教学,科研,管理的各个方面得到越来越广泛的应用。目前,医院都存在就诊人员流量不均,专家号(特别是名专家号)难挂,出现倒号、炒号现象,严重损害病人利益,影响到医院的声誉,而采用网上预约挂号,可有效的解决这一现象,患者可以在任何地方上该医院的网站,预约求诊医生,可以做到“千里之外挂号”。网上预约挂号正在慢慢改变着预约挂号的习惯。成功的运用Internet将为医疗事业带来无限便利。
网上预约挂号系统,是一个为患者、医生以及管理员提供帮助的软件系统。本系统的用户主要有3种,即管理员用户、医生用户、患者用户。其中管理员用户的权限最大,医生用户及患者用户根据其自身的业务拥有相应的权限。管理员可对科室及医生用户信息进行注册、改密等管理,并将医生进行设定,进入相应的科室,管理员可以查看患者和医生信息表并可以相关信息,可以发布门诊专家上班信息及对信息进行维护;医生用户功可以查看预约,可以查看当前预约清单可以对未就诊患者取消当前预约,以查看该患者以前的病历,并生成当前病历,修改密码自己的密码;患者用户网站前台可注册并登入系统,可根据多项查询结果预约医生,查询当前预约情况,可以根据情况主动取消预约,查看自己的病历史,并可以导出Excel,修改密码。
图1 系统功能结构图Fig.1 System function and structure
系统用户分为管理员、医生、患者,他们各有各自的权限和功能操作。患者用户可以查询医生信息,并根据需要预约医生;预约成功后,也可以取消预约,医生用户可以获得当前的预约清单,可以根据需要作废预约,或者诊断患者,如图2所示。管理员用户可以对管理员、医生、患者进行注册;管理员用户可以对医生、患者信息进行查看、修改;管理员用户可以对医生进行工作分配;管理员用户进行系统承诺书维护,如图3所示。
图2 医生与患者用例图Fig.2 Doctors and patients use case diagram
系统功能模块设计主要是以系统的需求分析为主要准则,将系统划分成若干个功能模块,然后对每个模块进行设计。在网上预约挂号系统系统的功能模块设计中,主要对不同用户进行功能模块的划分,即管理员功能模块、医生功能模块以及患者功能模块。例如:管理员功能模块可进而划分为管理员注册、医生注册、管理医生信息、管理患者信息等;医生功能模块进而分划为查看预约、修改密码、安全退出等;患者功能模块进而划分为患者注册、查询医生信息并预约、查询当前预约情况、查看病历、导出病历等。
因为网上预约挂号系统所用数据库中牵连多张表,涉及很多的数据,所以要恰当的实现系统的功能得话,必须先要分析清楚系统的数据流向,充分了解数据之间的关系。下面采用结构化方法对本系统进行分析,如图4所示。
图4 系统数据流程图Fig.4 The system data flow diagram
本系统关联到很多的数据。当管理员用户成功登录后,管理员要对医生、患者的信息进行查看或修改,其中要涉及到医生信息数据、患者信息数据、部门信息、医生级别信息、患者状态信息和医生状态信息。当医生用户成功登录后,医生要查看预约清单,这个功能要涉及到预约信息数据和病历信息数据。同样,患者用户成功登录后,可以预约医生、查看病历和导出病历。这里要涉及到医生信息数据、预约信息数据和病历信息数据,数据库的物理模型如图5所示。
图5 数据库的物理模型Fig.5 The physical model of the database
网上预约挂号系统功能得实现主要依靠MVC框架,其中链接数据库的部分为本系统核心代码。本系统3类用户主要功能得实现主要靠本系统的数据库连接Dao类。设计本模块时,登录的逻辑是这样的。在登陆界面,用户输入用户名、密码,并选择用户类型。点击登录后,后台链接数据库,根据用户类型在数据库中选择不同的表。选定表后,用用户名和密码两个数据在该表里查询,结果存在的话,证明用户名和密码正确,成功登录。反之,用户名或密码错误,返回登陆界面,并伴有错误提示信息,如图6所示。网上预约挂号系统对管理员用户、医生用户以及患者用户分别设置不同的权限登录系统。如果用户登录时用户名或密码没有输入的话,则登录按钮不可用。
图6 登陆模块逻辑流程图Fig.6 The landing module logic flow chart
这一功能模块主要是由医生来完成所有的操作。医生的操作流程:医生根据自己的用户名及密码成功登陆后,医生可以查看当前的预约列表,发现有预约的话,可以对当前预约患者进行操作,诊断患者或者作废当前预约。诊断当前患者的话,会查看当前患者的病历史并生成新的病历;修改密码;安全退出。实现医生功能的主要方法:
list=new GetAppInfoListService ().getAppInfo (appDoc,flag);
医生获得当前预约患者的list。
new DoctorWorkService().docCancelPatApp(app);
医生作废当前预约。
list=new DoctorWorkService().getMedRecInfo(patId);
pat=new DoctorWorkService().getPatientInfo(patId);
doc=new DoctorWorkService().getDocInfo(docId);
医生获得患者病历史。
new DoctorWorkService().docMakeMedRec(rec);
医生生成新的病历。
医生获得当前患者预约清单,如图7所示。
本模块的设计思路:首先访问负责该模块功能的Servlet,调用该模块的Service里的方法,访问数据库,查询出结果集,封装到一个集合里,再把集合发送到前台页面上,再在前台JSP页面从集合取出信息,这种方式可以称为“推模式”。如图8所示。医生查看患者病历史并生成新病历的实现逻辑如下:获得诊断患者Id,根据此Id在数据库中查出该患者的病历史的结果集,并封装到集合里,随后把集合发送到前台页面,在前台页面从集合里取出相关信息,并生成一个新的病历等待医生用户的填写。填写完成后,又给该患者生成一张新的病历。
图8 医生获得当前预约清单逻辑流程图Fig.8 The doctor get the reservation list logic flow chart
本文根据门诊挂号就诊人流量不均、专家号难挂的现状,采用了基于B/S模式开发的网上预约挂号系统,在功能上力求满足医院利用 Internet实现网上挂号的信息处理要求。通过建立基于JSP的网上预约挂号系统,是一个为患者、医生以及管理员提供信息化帮助的软件系统,本系统在实际运行中取得了一定的使用效果,利用计算机网络实现了在各个不同地理位置上实验网上预约挂号,提高了医院看病的效率,减少了患者排队等待的时间,一定程度降低了医院的管理成本和患者的看病成本,为医院的信息管理者和决策者提供了及时的、准确的信息。目前基于该方案开发的网上预约挂号系统已经在国内某医院安装使用,今后将根据用户的反馈继续完善。
[1]程东萍.医院网上预约挂号系统[J].医学信息,2007(11):1930-1931.CHENG Dong-ping.The online hospital appointment system[J].Medical Information,2007(11):1930-1931.
[2]付立军.医院实时多并发系统的研究[J].价值工程,2011,(9):196.FU Li-jun.Study on hospital real time multi concurrent systems[J].Value Engineering,2011(9):196.
[3]张钧.网上预约挂号服务流程的应用实践[J].计算机与数字工程,2010(11):200-202.ZHANG Jun.Online booking application registration service processes[J].Computer&Digital Engineering,2010 (11):200-202.
[4]坎香.基于PHP的医院网上预约挂号系统的设计与实现[J].黑龙江生态工程职业学院学报,2013(3):38-41.KAN Xiang. Design and implementation of online appointment registration system in hospital based on PHP[J].Journal of Heilongjiang Vocational Institute of Ecological Engineering,2013(3):38-41.
[5]王波.基于B/S模式医院网上预约挂号系统实现[J].医学信息学杂志,2011(9):23-25.WANG Bo.Online hospital appointment system based on B/S mode[J].Journal of Medical Informatics,2011(9):23-25.
[6]曹课兴.基于WEB的榆林学院开放实验室管理系统的设计与开发[J].电子设计工程,2013(19):19-22.CAO Ke-xing,TIAN Dong.Opening laboratory management system of yulin college design and development based on WEB[J].Electronic Design Engineering,2013(19):19-22.