


版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、.医院门诊管理系统的开发与设计作 者:指导教师:摘要:医院门诊信息管理系统是一个基于Internet的应用系统,完成预约、诊断、开具处方、保存病历管理的全过程。系统操作简便、界面友好、灵活、实用,解决医院系统中各种信息管理的集成问题,使医院系统的各种信息管理一体化。关键词:JSP;医院门诊;信息管理系统1课题背景随着Internet技术的发展,信息管理被广泛应用与各行各业。伴随着医院的改革,医院信息化进程的加速,建立基于Web的医院门诊信息管理系统显得尤为重要。1.1课题研究现状分析随着医疗卫生事业的发展,医院改革的深入,信息的有效、高效利用,已受到人们的关注。充分利用现代科技手段,加强各种信
2、息的利用开发,是医院信息管理的一个重要内容,也是当今医院的需要。目前的医院仅仅把医院的信息管理系统作为微机工具系统,而没有发挥其管理的真正功能;系统分散设计,各部门独立实施,没有考虑信息的关联和共享,存在信息孤岛现象;医院管理错综复杂,从而形成了医院信息管理系统数据的多样化,数据量大等特点1。通过本次医院门诊信息系统的设计,解决医院系统中各种信息管理的集成问题,使医院系统的各种信息管理一体化。同时,了解医院门诊的流程,把握信息管理系统开发概念,掌握动态技术,熟悉系统开发的进程,做到会用相关工具设计和开发相关系统,并实现。1.2 技术发展趋势随着Internet技术的普及和发展基本上各种不同操作
3、系统平台上都有相应的Web浏览器程序,这就使得医院门诊信息管理系统具有非常广泛的平台兼容性。客户端仅需一个Web浏览器程序,不再需要安装其它软件。客户程序主要包括HTML页面和一些特殊的数据库访问程序,它们都存放在Web服务器上,客户应用系统的设计、维护和更新工作只需在Web服务器上进行,这样就大大降低了系统安装、测试、维护的工作量2。通过基于Web的医院门诊信息管理系统的开发,可以实现对医院门诊相关信息的整合管理以及共享,并且通过组件技术的应用,可以使得本医院门诊信息管理系统具有很大的可扩展性和可移植性。2需求分析需求是用户解决问题或达到目标所需的条件或功能;系统或系统部件要满足合同、标准,
4、规X或其它正式规定文档所需具有的条件或权能。2.1概述医院门诊管理系统是以医院门诊挂号各工作流为基本元素的、用编程来实现其功能的软件。2.1.1项目的目的和目标目的:使医院门诊信息管理清晰化,透明化,便于操作,易于管理,从而达到提高医院门诊信息管理效率的目的。目标:通过对医院门诊管理系统进行模块化设计,分成具体的各个模块来实现其所有功能。2.1.2用户简介本系统共有四种用户:病人,医生,科室,管理员。(1)病人可以查询医生值班情况,医生信息。实现病人挂号和预约挂号功能。(2)可以实现病人就诊功能:包括医生写门诊病例,开化验单或检查单,填写检查或化验结果,查看各种检查结果,下门诊诊断结果和处方或
5、处置单等。(3)科室用户可以进入系统查看当前科室病人状态,便于对病人进行检查。(4)缴费划价功能:用户可以进行划价缴费功能。(5)病人进行取药功能。(6)管理员进行系统维护功能。2.1.3 角色定义(1)科室:进入系统查看当前科室病人状态,便于对病人进行检查。(2)医生:写门诊病例,开化验单或检查单,填写检查或化验结果,查看各种检查结果,下门诊诊断结果和处方或处置单等。(3)病人:查询医生值班情况,医生信息。实现病人挂号和预约挂号功能。可以进行划价缴费功能。进行取药功能。(4)管理员:该软件的维护人员需要详细的了解B/S架构、C+编程语言、操作系统基本知识、数据库设计及操作等知识,进行系统维护
6、功能。2.2 目标系统功能需求2.2.1 病人子系统图1 病人子系统用例图表1 病人管理编号功能名称输入系统响应输出功能描述 01处理挂号身份登录信息进入处理挂号系统将挂号信息保存至数据库,打印挂号单活动步骤异常处理 02查询信息身份登录信息进入查询医生信息以及值班情况2.2.2科室管理子系统图2 科室管理子系统用例图表2 科室管理编号功能名称输入系统响应输出功能描述03处理查询科室身份登录进入科室管理系统病人状态信息活动步骤异常处理2.2.3医生子系统图3 医生子系统用例图表3 医生管理编号功能名称输入系统响应输出功能描述04处理查看身份登录信息进入查询化验结果活动步骤异常处理05处理下单身
7、份登录信息进入处理下单系统1写门诊病历2开化验单3填化验结果活动步骤异常处理2.2.4管理员子系统图4 管理员系统用例图表4 管理员编号功能名称输入系统响应输出功能描述06启用新用户身份登录信息进入管理员子系统启用新用户活动步骤异常处理07用户审核身份登录信息进入用户审核系统停用非法用户2.3 目标系统界面与接口需求2.3.1界面需求l 输入设备:键盘、鼠标l 输出设备:显示器、打印机l 显示风格:图形界面、字符界面、IE界面等;l 显示方式:1024×768l 输出格式:显示布局、打印格式等。2.3.2接口需求l 与其他系统的接口,如监控系统、控制系统、银行结算系统、税控系统、财务
8、系统、政府网络系统及其他系统等。l 与系统特殊外设的接口,如CT机、磁共振、柜员机(ATM)、IC卡、盘点机等。2.4目标系统的其他需求2.4.1安全性信息安全是企业信息网实施的第一要素,网络系统不但要能够实现功能,更重要的是要稳定安全. 因此,应采取如下技术以增强网络的安全性:l 设备的安全性 设备制造具有安全系数,控制系统完善,具有各种故障检测和指示装置l 数据级的安全性 保护数据库,防止不合法的使用以免数据的更改或破坏2.4.2可靠性网络系统作为其他应用系统的基础,如发生系统瘫痪,其造成的损失是难以估量的,因此系统必须可靠地连续运行,即系统设计必须从系统结构、设计方案、设备选择、厂商的技
9、术服务与维修响应能力、设备备件供应能力等方面考虑,使故障发生的可能性尽可能少,影响面尽可能小.它应该能实现内部办公事务和外部事务处理的整合.2.4.3灵活性用户信息应采用大型关系数据库,模块化等先进成熟的技术方法,在给用户提供了极大的灵活性的同时,也有效地保证了系统的可靠性。2.4.4特殊需求由于计算机和通信技术的不断发展,用户的需求也在随着时间的推移不断的发生变化,以及由于应用软件种类和业务数量的增加,功能的强化,系统软件的升级将对主机和网络系统提出更高的要求,网络构造应具有高度的扩展性,以降低系统扩充的投入成本,并满足信息技术高速发展的需要。能适应2-3年内的业务增长和突发性事件的需要,确
10、保各级系统的可扩充性和先进性,并注意设备的冗余设计以及网络的负载均衡。3 概要设计医院门诊管理系统将医生管理子系统,病人管理子系统,科室子系统,管理员子系统等四大系统的有关信息纳入电脑系统统一管理,以使医生科室等各部门的相关人员以及就医患者及时获取有关信息,以提高医疗效果和管理效率。系统包括前台和后台两部分。前台部分主要实现主界面登录功能。后台主要实现数据库的逻辑关系的建立和重要信息的存储管理,对后台数据信息进行管理功能。图5 系统功能模块3.1 医生信息管理模块写门诊病例,开化验单,填写化验结果,查看各种检查结果,下门诊诊断结果和处方等。3.2 科室信息管理模块进入系统查看当前科室病人状态,
11、便于对病人进行检查。3.3 病人模块查询医生值班情况,医生信息。实现病人挂号和预约挂号功能。可以进行划价缴费功能。3.4 管理员模块对用户身份进行审核,以及记录系统日志。4数据库设计系统共有有8X表。(1)医生表:用于存储医生的个人信息。(2) 患者表:用于存储患者的个人信息。(3) 病历记录表:病历记录表记录了患者的病历信息。(4) 预约记录表:预约记录表记录了已预约但尚未创建病历的患者信息。(5) 管理员表:管理员表存储了与管理员有关的信息。(6) 患者化验表:记录了患者化验结果。(7)患者药品表:记录患者所开处方信息。(8)药品表:记录药品信息。表5 医生表字段名类型备注约束IDNumb
12、ervarchar(18)医生编号主键Namevarchar(32)XX索引Ageint年龄Yearsint工作年限Gendervarchar(1) 性别1 - 男,2 - 女Officesvarchar(32)科室Remarkvarchar(25)职称字段名类型备注约束IDNumbervarchar(18)患者编号主键NameVarchar(32)XX Gender varchar(1)性别Ageint年龄 Healthvarchar(32) 健康状况Remarkvarchar(255)主治医生职称Officesvarchar(12)医生科室Cost double费用Doctorvarcha
13、r(32)主治医生表6 病人表 表7 病历记录表字段名类型备注约束patientIdNumbervarchar(18)病人编号主键字段名类型备注约束resultvarchar(255)结果symptomvarchar(255)症状doctorIdNumbervarchar(18)医生编号表8 预约记录表字段名类型备注约束QIDint记录编号主键Doctorvarchar(18)主治医生编号索引Patientvarchar(18)患者编号索引DateDatetime预约时间默认为当前系统日期表9 管理员表字段名类型备注约束AIDVarchar(18)管理员编号主键PasswordVarchar(
14、20)登录时密码PhoneVarchar(15)联系可为空表10 患者化验表字段名类型备注约束uuid varchar(50)患者编号主键IDNumbervarchar(18)化验编号Subjectvarchar(255)化验科目AssayResultvarchar(255)化验结果表11 患者药品表字段名类型备注约束Code varchar(32)名称号字段名类型备注约束条Countint数量表12 药品表字段名类型备注约束Codevarchar(32)名称号主键字段名类型备注约束Namevarchar(32)药品名 PriceDouble单价5系统实现5.1医生信息管理模块模块功能描述:图
15、6 医生开化验单主要代码如下:package servlet;import java.io.IOException;import java.io.PrintWriter;import java.sql.SQLException;import java.util.ArrayList;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletR
16、esponse;import utilitly.Utility;import bean.AssayListBean;import dao.AssayDao;import dao.QueueInfoDao;public class ShowAssyList extends HttpServlet private static final long serialVersionUID = 1L;public ShowAssyList() super();public void destroy() super.destroy(); / Just puts "destroy" str
17、ing in logpublic void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException request.setCharacterEncoding("UTF-8");response.setChara
18、cterEncoding("UTF-8");String patientIdNumber = request.getSession().getAttribute("patientIdNumber").toString();String patientName = request.getSession().getAttribute("patientName").toString();StringBuffer sb = new StringBuffer();ArrayList<AssayListBean> assayList
19、= new ArrayList<AssayListBean>();AssayDao assayDao = new AssayDao();try assayList = assayDao.getAssayList(patientIdNumber); catch (ClassNotFoundException e) e.printStackTrace(); catch (SQLException e) e.printStackTrace();sb.append(" "rows":");for(int i=0;i<assayList.size
20、();i+)sb.append(""patientIdNumber":"+patientIdNumber+"");sb.append(","patientName":"+patientName+"");sb.append(","name":"+assayList.get(i).getName()+"");sb.append(","uuid":"+assayList.get(i)
21、.getUuid()+"");sb.append(","assayResult":"+assayList.get(i).getAssayResult()+"");sb.append(","price":"+assayList.get(i).getPrice()+""");if(i!=(assayList.size()-1)sb.append(",");sb.append("");PrintWriter ou
22、t= response.getWriter();out.print(sb.toString(); out.close();/保存流水信息QueueInfoDao queueInfoDao = new QueueInfoDao();try queueInfoDao.saveQueueInfo(request.getSession().getAttribute("account").toString(), "开化验单",Utility.getDateTime(); catch (ClassNotFoundException e) e.printStackTr
23、ace(); catch (SQLException e) e.printStackTrace();public void init() throws ServletException 5.2 科室信息管理模块模块功能描述:图7 查询病人状态 主要代码如下:package servlet;import java.io.IOException;import java.io.PrintWriter;import java.sql.SQLException;import java.util.ArrayList;import javax.servlet.ServletException;import
24、javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import utilitly.Utility;import dao.PatientDao;import dao.QueueInfoDao;import bean.PatientBean; public class SeePatient extends HttpServlet private static final long serialVersion
25、UID = 1L;public SeePatient() super();public void destroy() super.destroy(); / Just puts "destroy" string in logpublic void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException public void doPost(HttpServletRequest request, HttpServletResponse
26、response)throws ServletException, IOException request.setCharacterEncoding("UTF-8");response.setCharacterEncoding("UTF-8");StringBuffer sb = new StringBuffer();QueueInfoDao queuedInfoDao = new QueueInfoDao();ArrayList<PatientBean> patient = new ArrayList<PatientBean>(
27、);PatientDao patientDao = new PatientDao();try patient = patientDao.seePatient();/保存流水信息queuedInfoDao.saveQueueInfo(request.getSession().getAttribute("account").toString(), "查询病人状态",Utility.getDateTime(); catch (ClassNotFoundException e) e.printStackTrace(); catch (SQLException e
28、) e.printStackTrace();sb.append(" "rows":");for(int i=0;i<patient.size();i+)sb.append(""idNumber":"+patient.get(i).getIdNumber()+"");sb.append(","name":"+patient.get(i).getName()+"");sb.append(","gender"
29、;:"+patient.get(i).getGender()+"");sb.append(","age":"+patient.get(i).getAge()+"");sb.append(","health":"+patient.get(i).getHealth()+"");sb.append(","remark":"+patient.get(i).getRemark()+"");sb.a
30、ppend(","offices":"+patient.get(i).getOffices()+"");sb.append(","result":"+patient.get(i).getResult()+"");sb.append(","symptom":"+patient.get(i).getSymptom()+"");sb.append(","flag":"+patient
31、.get(i).getFlag()+""");if(i!=(patient.size()-1)sb.append(",");sb.append("");PrintWriter out= response.getWriter();out.print(sb.toString(); out.close(); public void init() throws ServletException 5.3 病人模块模块功能描述:图8 病人预约主要代码如下:package servlet;import java.io.IOExceptio
32、n;import java.io.PrintWriter;import java.sql.SQLException;import java.util.ArrayList;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import dao.DoctorDao;import dao.PatientDao;impor
33、t bean.DoctorBean;import bean.PatientBean;public class GetDutyInfo extends HttpServlet private static final long serialVersionUID = 1L;public GetDutyInfo() super();public void destroy() super.destroy(); public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletExceptio
34、n, IOException public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException request.setCharacterEncoding("UTF-8");response.setCharacterEncoding("UTF-8");StringBuffer sb = new StringBuffer();PatientBean patient = new PatientBean(
35、);ArrayList<DoctorBean> doctor = new ArrayList<DoctorBean>();DoctorDao doctorDao = new DoctorDao();PatientDao patientDao = new PatientDao();String account = request.getSession().getAttribute("account").toString();try doctor = doctorDao.seeDutyInfo();patient = patientDao.getPati
36、entInfoByAccount(account);if(patient.getRegister().equals("0")request.getSession().setAttribute("doctorName", "未挂号");elserequest.getSession().setAttribute("doctorName", patient.getDoctor(); catch (ClassNotFoundException e) e.printStackTrace(); catch (SQLExcept
37、ion e) e.printStackTrace();sb.append(" "rows":");for(int i=0;i<doctor.size();i+)sb.append(""name":"+doctor.get(i).getName()+"");sb.append(","gender":"+doctor.get(i).getGender()+"");sb.append(","age":&qu
38、ot;+doctor.get(i).getAge()+"");sb.append(","years":"+doctor.get(i).getYears()+"");sb.append(","idnumber":"+doctor.get(i).getIdNumber()+"");sb.append(","professionalTitle":"+doctor.get(i).getProfessionalTitle()+
39、"");sb.append(","offices":"+doctor.get(i).getOffices()+""");if(i!=(doctor.size()-1)sb.append(",");sb.append("");PrintWriter out= response.getWriter();out.print(sb.toString(); out.close();public void init() throws ServletException 5.4 管
40、理员模块模块功能描述:图9 查询系统用户主要代码如下:package servlet;import java.io.IOException;import java.io.PrintWriter;import java.sql.SQLException;import java.util.ArrayList;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.
41、HttpServletResponse;import bean.RoleBean;import dao.RoleDao;public class ShowVerifiedUser extends HttpServlet private static final long serialVersionUID = 1L;public ShowVerifiedUser() super();public void destroy() super.destroy(); public void doGet(HttpServletRequest request, HttpServletResponse res
42、ponse)throws ServletException, IOException public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException request.setCharacterEncoding("UTF-8");response.setCharacterEncoding("UTF-8");StringBuffer sb = new StringBuffer();ArrayList&
43、lt;RoleBean> role = new ArrayList<RoleBean>();RoleDao roleDao = new RoleDao();try role = roleDao.showVerifiedUser(); catch (ClassNotFoundException e) e.printStackTrace(); catch (SQLException e) e.printStackTrace();sb.append(" "rows":");for(int i=0;i<role.size();i+)sb.
44、append(""account":"+role.get(i).getAccount()+"");sb.append(","password":"+role.get(i).getPassword()+"");sb.append(","idnumber":"+role.get(i).getIdNumber()+"");sb.append(","flag":"+role.get(i
45、).getFlag()+"");sb.append(","role":"+role.get(i).getRole()+"");sb.append(","remark":"+role.get(i).getRemark()+""");if(i!=(role.size()-1)sb.append(",");sb.append("");PrintWriter out= response.getWriter();ou
46、t.print(sb.toString(); out.close();public void init() throws ServletException 6 测试6.1医生测试用例医生doctor的登录系统,用户名为doctor,登录密码为123456,医生登录后可更改密码以及个人信息、查看患者病历信息、查看预约信息、创建病历、更改病历、填写化验结果等。l 测试项目:修改个人信息模块输入:个人信息预置条件:无操作步骤:输入修改的个人信息,点击修改预期输出:提示修改成功l 测试项目:预约模块输入:进入查看预约预置条件:病人已经预约操作步骤:点击接诊预期输出:提示接诊l 测试项目:开化验单输入:
47、进入开化验单预置条件:无操作步骤:选择化验项目预期输出:添加成功l 测试项目:填写病历模块输入:进入写病历预置条件:无操作步骤:点击填写病例预期输出:成功添加病例信息l 测试项目:查看化验结果输入:进入查看化验结果预置条件:已进行化验操作步骤:点击查看化验结果预期输出:病人化验结果6.2科室测试用例科室office登录,用户名为office,登录密码为123456,登陆后可以查询科室病人状态。测试项目:查询病人状态模块输入:进入科室管理系统预置条件:病人于科室就诊操作步骤:点击查看科室病人状态预期输出:病人状态6.3管理员测试用例管理员admin123登录,登录密码为:admin123,管理员登录后可以查看系统账户、审核系统账户、查询日志等。l 测试项目:审核系统用户模块输入:进入管理员系统预置条件:有新注册医生或科室操作步骤:进入待审审核用户,点击启用预期输出:成功通过新用户l 测试项目:查询系统日志模块输入:进入管理员系统预置条件:无操作步骤:
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 物流货架项目可行性研究报告
- 校园咖啡厅创业计划书
- (高清版)DB62∕T 4744-2023 地黄栽培技术规程
- 《建材行业数字化转型成熟度评估》拟立项协会标准项目建议书
- 外科管道护理课件评价
- 【9化一模】2024年安徽省宿州市萧县中考化学一模试题
- 保密知识考试题库含答案
- 2025年中国油气田勘探行业市场现状及未来发展前景预测分析报告
- 2025年中国无尘袋式吸尘器行业市场前景预测及投资价值评估分析报告
- 土木工程课件
- 2025-2030年中国缓释和和控释肥料行业市场现状供需分析及投资评估规划分析研究报告
- 卫生法律法规的试题及答案
- 2025年广东省广州市越秀区中考物理一模试卷(含答案)
- 2025届湖北省黄冈市黄州中学高考生物三模试卷含解析
- 砌砖理论考试题及答案
- 人格性格测试题及答案
- 2025-2030年中国电子变压器市场运行前景及投资价值研究报告
- 2024年广东省广州市越秀区中考二模数学试题(含答案)
- 2025届各地名校4月上旬高三语文联考作文题目及范文12篇汇编
- 【9语一模】2025年4月天津市和平区九年级中考一模语文试卷(含答案)
- 骨科科室工作总结汇报
评论
0/150
提交评论