1、目 录1 引 言51.1 门诊管理系统概述51.2 本课题研究背景及意义51.2.1 研究本课题背景51.2.2 研究本课题意义51.3 本课题研究内容52 系统开发技术及开发环境介绍62.1 JSP概述62.2 JAVA语言概述62.3 MYSQL概述62.4 系统开发和运行环境63 系统分析73.1 需求分析73.2 可行性分析74 系统设计74.1 系统目标74.2 系统步骤图74.3 系统功效结构84.3.1门诊管理系统功效结构图85 数据库设计95.1 数据库需求分析95.2 数据库概念设计95.3 数据库逻辑结构设计126 系统功效实现136.1后台功效模块设计136.1.1门诊工
2、作人员登录模块136.1.2挂号收费管理模块146.1.3病人信息管理模块186.1.4药品信息管理模块216.1.5病历信息管理模块256.1.6划价收费管理模块306.1.7科室信息管理模块307结 论34参考文件35致谢36医院门诊管理系统摘 要 在以前中国大多数医院全部采取人工管理方法来完成医院门诊管理中各个步骤,这么管理方法效率低,犯错率高。伴随计算机科学技术飞速发展,医院门诊管理系统应用在全球范围内日益普及。在现代医院门诊管理中,大家逐步开始意识到信息系统对医院促进作用。逐步建立数字化医院门诊管理系统来管理医院各个工作步骤。本设计采取了B/S构架开发设计一个医院门诊管理系统,此系统
3、在功效上可基础实现医院系统应用。系统设计开发视图界面和数据库设计,分析了医院门诊系统功效,并依据用户需求,使用jsp+servlet+javabean开发模式,基础实现此系统各功效。 关键字 B/S构架;医院门诊;管理系统Hospital Outpatient Management SystemAbstract: In the past, most hospitals in our country have adopted the methods of artificial management to complete the various steps in the hospital out
4、patient management, which is inefficient and the error rate is high. With the rapid development of computer science and technology, the application of hospital outpatient management system is becoming more and more popular in the world. In the modern hospital outpatient management, people gradually
5、began to realize the role of information system to the hospital. Gradually establish a digital hospital outpatient management system to manage all the work flow of the hospital. This design uses the B/S framework development and design of a hospital outpatient management system, this system can basi
6、cally realize the function of the hospital system. System design and development view interface and database design, analysis of the hospital outpatient system functions, and according to user needs, the use of jsp+servlet+javabean development model, the basic realization of the various functions of
7、 the system.KeyWords: B/S framework,Hospital clinic,Management system1 引言伴随社会不停发展和科技不停进步,作为二十一世纪关键标志计算机也蓬勃发展起来,大家对各行各业服务要求也越来越高。进入二十一世纪后,国家医疗制度日益完善,过去手工开单就诊步骤已经不能满足大家需要。现在几乎全部医院全部利用计算机信息管理技术手段来替换人工作业,从而降低人职员作量,减轻工作负担,降低工作中人为原因产生错误而带来无须要损失。提升医疗门诊部门服务效率和服务质量。为了实现医院门诊信息化建设,加紧医院系统信息化步伐,提升提升医院服务水平,完善医院信息
8、已经变得十分关键。系统建设本着“以患者为中心”标准,以方便患者、提升就诊效率,为患者提升满意服务,提升医院社会效益和经济效益。本课题对医院信息系统现实状况进行分析,简单介绍了所选课题背景,系统关键利用了标准MVC三层架构(jsp+servlet+javaBean)技术,以JSP作为前台开发环境,以JavaBean作为业务逻辑,实现门诊管理系统增删改查功效,医院门诊部门工作人员以不一样身份登录系统,挂号部门能够将病人信息录入,经过病人要求描述选择医生和科室。医生能够将病人病例信息输入系统。经过医生所开处方进行划价收费。1.1门诊管理系统概述医院门诊管理系统是依据医疗机构特定步骤而开发,包含门诊部
9、门工作人员登录、挂号管理、病历管理、科室管理、划价收费管理等。为医院管理提供有力保障。门诊管理系统提供了全方面人性化服务体系,其目标在于实现医疗门诊自动化,现在市场竞争越来越大,只有提升医疗质量,才能够满足更多病人需求和医疗管理需求。从而促进医院发展。1.2 本课题研究背景及意义1.2.1 研究本课题背景在过去相当长一段社会实践生活中,大家总是立即地利用刚刚出现新工具和新技术来改善交流方法和生活和生产方法,所以层出不穷换出新工业革命。现在计算机信息技术正在以更大范围及空间、愈加紧速地改变着大家生活,总体来说计算机信息技术发展即使只有短短几年时间,但以其快速而稳健发展步伐逐步取缔了传统市场,现在
10、研究它相关技术已经达成了炉火纯青地步,计算机信息技术在大家生活中地位已经根深蒂固,成为了二十一世纪新标志。伴随中国医疗卫生体制改革,计算机信息管理已经成为各个医院提升竞争力,提升医疗管理力度,提升经济效益关键保障。现在在全国各大医院管理上,多数使用传统管理方法,这么很大程度上降低了医院门诊工作人员工作效率且录入数据正确性不高,不能很好对数据进行统计。不过延伸到生活各个领域,在这么环境背景下,设计出一款适适用于医院门诊管理人员使用系统,这么一来科大大提升医务人员工作效率。1.2.2 研究本课题意义目前,电脑差不多普及家家户户,计算机信息技术已经成为人类生活一个方法5中国计算机信息技术萌芽期已经结
11、束, 现在已经进入了发展时期。新一代计算机信息技术能够吧信息采集存放处理,使用信息技术医院已超出上万家,对门诊管理系统需求医院越来越多,这一趋势带动了电子科技企业企业不停研发。医院门诊管理系统新模式。6现在各个医院门诊为了增强竞争力和医疗管理,对医院门诊系统需求原来越多,要求也越来越高。所以,不停地研发改善这平台将对门诊管理系统发展和完善有着深刻意义。1.3 本课题研究内容本课题关键内容是设计医院门诊管理系统,该系统采取Java Web工程开发技术,在Windows平台上使用,开发工具为MyEclipse10,服务器为Tomcat7.0,数据库采取MYSQL,使用JSP开发视图页面和Servl
12、et进行步骤控制,使用JDBC编写工具类对数据库进行访问,分析功效写具体实体类Dao,分析业务写Service。使用Filter实现用户权限功效,过滤掉该用户去权限URL,确保医院门诊系统各个功效模块正确。2 系统开发技术及开发环境介绍2.1 JSP概述JSP是由sun企业提倡、很多企业参与一起研发一个动态网页技术标准语言,通俗了解就是用来表示或显示动态值HTM页面。2JSP本质是servlet,它是Servlet实例,是为了方便开发人员能够以编辑HTML方法来写Servelt。JSP现有java代码又有HTML标签,而Servlet只是纯粹java代码。7JSP文件保留在Tomcat服务器中
13、,当JSP文件被第一次请求时,Tomcat服务器将JSP文件转义为java文件,然后再将java文件翻译成字节码文件,最终字节码文件才响应用户端请求。92.2 JAVA语言概述JAVA是由sun企业推出一个程序设计语言。Java语言是一个面向对象、能够跨平台语言。8JAVA技术含有卓越通用性、高效性、平台移植性和安全性,广泛应用于应急系统、政府办公系统、游戏控制台、移动通信、互联网等等。JAVA语言含有封装、继承、多态三大特称。1封装就是经过定义类然后给这个类属性和方法加上访问控制,继承就是代码重用,多态就是一个方法只能有一个名词,但能够有很多个形态。2.3 MYSQL概述MYSQL是瑞典MY
14、SQL AB 企业研发出一个数据库管理系统。在被SUN企业收购,到SUN又被Oracel收购。3MYSQL体积很小,不过运行速度比较快,总体拥有成本也比较低,MYSQL被广泛应用在很多中小型网站中。MYSQL是基于用户端/服务器模式数据库系统,经过图形化界面用户能够方便而快捷对数据库进行管理,它还提供较为丰富编程接口,给编程开发设计提供了很多便利。2.4 系统开发运行环境系统开发运行环境以下:1.硬件(1) CPU Inter core i5: (2)内存: 2G (3)足够可用硬盘空间:(4)显示: 1024*7682.软件(1)操作系统: windows 7(2) Web服务器(3)浏览器
15、, IE7.0以上;(4)数据库MYSQL(5)开发工具 MyEclipse103 系统分析3.1 需求分析对本系统要求有以下功效:一、医院门诊部门工作人员以不一样身份登录系统。系统能够长久稳定运行、数据库访问权限设置合理,确保用户账号信息安全。二、挂号部门能够将病人信息录入,经过病人要求描述选择医生和科室。系统要极易进行维护,相关数据要立即更新而且数据不能出现错误。10三、医生能将病人病例信息输入系统,操作要简单明了,层次分明。四、经过医生所开处方进行划价收费3.2 可行性分析伴随信息时代到来,医院门诊管理系统成为了医院对医疗步骤工具、在医院门诊管理系统中,工作人员登录进入系统后,能够进行挂
16、号录入,添加病人信息,查看病人信息,划价收费等操作。4如挂号部门依据病人描述对病人选择医生和科室,医生经过对病人诊疗后,对病人基础信息进行增加、删除、修改和查询,看完医生后病人到指定药品窗口买药,收费人员对病人所拿据单进行查询和统计然后收取费用。4 系统设计4.1 系统目标对于现在竞争日趋猛烈医疗机构,民营医院逐步进入市场,医疗机构管理系统愈发凸显其关键性,医院门诊管理系一定要满足使用操作方便灵活等设计要求,所以,设计需满足这多个目标:一、全部操作步骤要简单易懂、系统相关界面设计要清洁美观。二、医院门诊部门工作人员以不一样身份登录系统。三、挂号部门能够将病人信息录入,经过病人要求描述选择医生和
17、科室。四、医生能将病人病例信息录入系统。五、经过医生所开处方进行划价收费。4.2 系统步骤图医院门诊系统步骤图 工作人员登录病例管理模块划价收费模块挂号收费模块选择科室及挂号类型查看该医生姓名、科室、职称及挂号费价格挂号收费凭证打印输入病例本编号或病人姓名查看病人信息或对病人信息进行录入输入药品名、选择药品规格、输入药品数量查看药品名称、规格、数量、药单价及总价划价或收费凭证打印退出 4.3 系统功效结构4.3.1门诊管理系统功效设计医院门诊管理系统病历管理科室管理划价管理挂号管理工作人员管理工作人员退出药品信息管理药品收费信息科室信息删除科室信息修改挂号服务功效病人信息管理信息咨询科室信息添
18、加科室信息查询病历删除功效病历修改功效病历查询功效病历信息录入工作人员登录药品信息删除药品信息修改药品信息添加5 数据库设计5.1 数据库需求分析 数据库在设计结构上能够充足考虑到多种信息输入和输出,经过数据字典能够清楚地知道数据结构和处理过程,为后面具体设计打下基础,经过总结得出以下几点需求信息:1、系统需要设计为前后台;2、门诊部门工作人员能够不一样身份登录系统,比如医生登录、收费人员登录、挂号人员登录等;3、一个用户能够购置多个商品;4、在线留言功效;5、要分别统计销售情况; 5.2 数据库概念设计 经过对门诊管理系统进行相关需求分析后,得出使用数据实体分别为:“病历信息”、“医生信息”
19、、“药品信息”、“病人信息”、“挂号信息”、“科室信息”。各实体E-R图以下:(1) 病历信息E-R图病人姓名诊疗结果诊疗方法用户编号处方编号诊疗时间病历信息就诊卡号病历编号(2)医生信息E-R图医生编号医生详情医生所在科室医生姓名医生信息医生状态医生性别医生年纪(3)药品信息E-R图药品功效药品规格生产厂家药品编号 药品药品使用期药品名称药品库存药品单价(4)病人信息E-R图病人年纪病人病人性别病人姓名就诊卡号(5)挂号信息E-R图挂号类型挂号编号挂号挂号日期挂号费用科室编号就诊卡号(6)科室E-R图 科室 科室编号科室名称5.3 数据库逻辑结构设计完成E-R图设计以后,还需要设计数据表结构
20、,以下是医院门诊管理系统中数据表结构。1.t_userinfos(工作人员信息表)表t_userinfos用于保留门诊工作人员基础信息列 名数据类型许可空字段说明u_idvarchar(30)否工作人员编号u_namevarchar(30)是工作人员姓名u_pwdvarchar(20)是工作人员密码u_sexvarchar(10)是工作人员性别u_agevarchar(20)是工作人员年纪u_telvarchar(100)是工作人员电话u_emailvarchar(50)是工作人员邮箱u_titlevarchar(50)是工作人员职称u_taskstatevarchar(20)是工作人员状态u
21、_expvarchar(100)是工作人员描述2. t_patients(病人信息表) 表t_patients,统计患者个人信息列 名数据类型许可空字段说明pi_idvarchar(20)否病人编号Pi_namevarchar(30)否病人姓名pi_sexvarchar(10)否病人性别pi_agevarchar(20)否病人年纪3. t_case(病历表)统计病人就诊信息 列 名数据类型许可空字段说明c_idvarchar(20)否病历编号c_datevarchar(50)否诊疗时间c_resultvarchar(50)否诊疗结果c_methodvarchar(50)否诊疗方法pi_idva
22、rchar(20)否就诊卡号pi_namevarchar(20)否病人姓名rc_idvarchar(20)否处方编号u_idvarchar(20)否工作人员编号4. t_doctor(医生表)统计医生基础信息列 名数据类型许可空字段说明d_idvarchar(20)否医生编号d_namevarchar(20)否医生姓名d_sexvarchar(10)否医生性别d_agevarchar(20)否医生年纪d_statevarchar(30)是医生状态d_detailvarchar(30)是医生具体信息d_telvarchar(50)是医生电话S_idvarchar(20)否医生所在科室5. t_m
23、edicine(药品表)统计药品具体信息, 列 名数据类型许可空字段说明m_idvarchar(20)否药品编号m_namevarchar(20)否订单编号m_specvarchar(20)否药品规格m_countvarchar(20)否药品库存m_funtionvarchar(50)否药品功效m_pricevarchar(20)是药品单价m_timevarchar(20)否药品使用期m_addrvarchar(50)否生产厂家6. t_section(科室表)统计科室基础信息列 名数据类型许可空字段说明s_idvarchar(20)否科室编号s_namevarchar(30)否科室名称 7.
24、 t_registration(挂号表) 统计挂号基础信息列 名数据类型许可空字段说明rg_idvarchar(20)否挂号编号rg_pricevarchar(20)否挂号费用rg_typevarchar(50)否挂号类型rg_datevarchar(50)否挂号日期s_idvarchar(20)否科室编号pi_idvarchar(20)否就诊卡号6 系统功效实现6.1功效模块设计6.1.1登录模块医院门诊工作人员或系统管理员经过登录页面输入自己账号和密码,在LoginServlet控制器接收输入账号和密码,调用Dao层和业务层Service,然后判定在系统中是否已经存在该用户,假如已经存在就
25、提醒登录成功,跳转到主页面,若不存在,则提醒登录失败,跳转回登录页面,再重新登录。登录页面设计以下图:登录页面login.html前端页面代码: 用户密码验证码前端页面提交数据到LonginServlet控制器代码:public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException String u_id = request.getParameter(u_id); String u_pwd = request.getParameter(u
26、_pwd); String u_code = request.getParameter(u_code);String verifyCode = (String) request.getSession().getAttribute(verifyCode);public boolean login(UserInfo userInfo) String sql = select * from T_userInfos where u_id=+ userInfo.getU_id() + and u_pwd= + userInfo.getU_pwd()+ ;return userInfoDao.login(
27、sql);boolean flag = userInfoService.login(userInfo); if (flag) if (u_code.equals(verifyCode) / 保留账户名到session中request.getSession().setAttribute(u_id, u_id);out.print( alert(恭喜您登录成功!);); else out.print( alert(验证码输入有误,请重新登录!););out.print(window.location.href=html/login.htm; else out.print( alert(帐户名或密码
28、有误,请重新登录!););out.print(window.location.href=html/login.htm;);return;6.1.2挂号收费管理模块医院门诊工作人员为前来挂号看病患者,提供挂号服务。医院门诊人员可依据患者描述,选择科室,查看目前值班医生,能够向需要患者提供必需医生具体并进行挂号,并打印挂号凭证。能够对前来咨询医生工作时间或医院药品情况就诊人员提供必需咨询服务。挂号收费管理模块设计图所表示:挂号收费管理挂号信息录入以下图:挂号信息修改以下图:挂号录入(添加)代码:public void doPost(HttpServletRequest request, HttpS
29、ervletResponse response)throws ServletException, IOException / 获取操作对象optString opt = request.getParameter(opt);/ 病人信息IPatientService patientService = new PatientServiceImpl();Patient patient = null;/ 挂号信息IRegistrationService registrationService = new RegistrationServiceImpl();Registration registrati
30、on = null;/ 获取挂号页面信息String rg_id = request.getParameter(rg_id);String s_id = request.getParameter(s_id);String pi_id = request.getParameter(pi_id);String rg_price = request.getParameter(rg_price);String rg_date = request.getParameter(rg_date);String rg_type = request.getParameter(rg_type);/ 病人信息Stri
31、ng pi_name= request.getParameter(pi_name);String pi_sex=request.getParameter(pi_sex);String pi_age = request.getParameter(pi_age);/* * 添加病人信息 * 添加挂号信息 */if (add.equals(opt) patient = new Patient(pi_id,pi_name,pi_sex,pi_age);registration = new Registration(rg_id, s_id, pi_id, rg_price,rg_date, rg_typ
32、e);try / 调用病人添加patientService.addpatient(patient);/ 调用挂号添加registrationService.addregistration(registration);response.sendRedirect(registration2.do?obj=queryAll); catch (Exception e) e.printStackTrace();response.sendRedirect(error.html);return;删除挂号信息代码:if (del.equals(opt) registration = new Registrat
33、ion(rg_id);try registrationService.delregistration(registration);response.sendRedirect(registration2.do?obj=queryAll); catch (Exception e) e.prinStackTrace();response.sendRedirect(error.html);return;修改挂号信息代码:if (upd.equals(opt) registration = new Registration(rg_id, s_id, pi_id, rg_price,rg_date, rg
34、_type);try registrationService.updregistration(registration);response.sendRedirect(registration2.do?obj=queryAll); catch (Exception e) e.printStackTrace();response.sendRedirect(error.html);return;查询全部挂号信息列表对应代码:/ 分页String gopage = request.getParameter(goNumber);String obj=request.getParameter(obj);/
35、 获取操作对象if(queryAll.equals(obj)int goNumber = 0;if(gopage!=null& !gopage.equals()goNumber =Integer.parseInt(gopage);/将挂号信息放入集合中 List list = new ArrayList();if(opt != null & !opt.equals()list = (List) request.getSession().getAttribute(list);elseif(rg_id!=null & !rg_id.equals() | pi_id!=null & !pi_id.e
36、quals()registration2 = new Registration2();registration2.setRg_id(rg_id);registration2.setPi_id(pi_id);list = registrationService2.queryAll(registration2);/查询以后存入sessionrequest.getSession().setAttribute(list, list);/生成pager(第一页)pager = new Pager();if(gopage!=null)pager = new PagerService().getPager(
37、goNumber, opt, list.size();elsepager = new PagerService().getPager(pager.getCurrentPage(), opt, list.size();List pageList = new ArrayList();/* * 获取到list.size就能够进行分页 */for(int i = pager.getStartRow(); i pager.getStartRow()+pager.getPageSize() & i + opt);patient = new Patient(pi_id,pi_name,pi_sex,pi_age);try / 调用病人添加patientService.addpatient(patient);response.sendRedirect(patient.do?obj=queryAll); catch (Exception e) e.printStackTrace();response.sendRedirect(error.html);return;/* * 删除病人信息 */