毕业论文-基于JAVA的医院门诊信息管理系统设计与实现_第1页
毕业论文-基于JAVA的医院门诊信息管理系统设计与实现_第2页
毕业论文-基于JAVA的医院门诊信息管理系统设计与实现_第3页
毕业论文-基于JAVA的医院门诊信息管理系统设计与实现_第4页
毕业论文-基于JAVA的医院门诊信息管理系统设计与实现_第5页
已阅读5页,还剩64页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

精品文档 I欢迎下载 编编 号 号 审定成绩 审定成绩 毕业设计 论文 毕业设计 论文 设计 论文 题目 设计 论文 题目 基于基于 JAVAJAVA 的医院门诊信息管理系统的医院门诊信息管理系统 设计与实现设计与实现 学学 院院 名名 称称 计算机科学与技术学院计算机科学与技术学院 学学 生生 姓姓 名名 XXXXXX 专专 业业 计算机网络技术计算机网络技术 班班 级级 XXXXXXXXXXXXXXXX 学学 号号 XXXXXXXXXXXXXXXXXX 指指 导导 教教 师师 XXXXXX 精品文档 II欢迎下载 答辩组答辩组 负责人负责人 填表时间 填表时间 xxxxxxxx 年年 xxxx 月月 摘摘 要要 医院门诊信息管理系统是一个基于 Internet 的应用系统 它是一个面对当 前的医院门诊管理工作基本还处于手工和半信息自动化处理状态而应运而生的 一个基于 Internet 的一个信息自动化的系统 整个系统从符合操作简便 界面 友好 灵活 实用 安全的要求出发 完成预约 诊断 开具处方 保存病历 管理的全过程 医疗事业单位只需具备访问 Internet 的条件即可在系统发布的 站点上进行医疗门诊的管理 在图型化的人机界面中完成日常的医疗门诊管理 工作 一方面摆脱了时间和空间的限制 另一方面有效的解决的数据共享的问题 经过实际使用证明 本文所设计的医院门诊信息管理系统可以满足医院在门诊 管理方面的需要 关键词 JSP 医院门诊 信息管理系统 精品文档 III欢迎下载 ABSTRACTABSTRACT Hospital outpatient information management system is an Internet based application system It is an Internet based automated information system that solves the outpatient medical management of the basic work is still in the manual and semi automated processing of information The entire system is simple friendly interface flexible practical and safe and complete the entire process of booking diagnosis prescribing and medical records management preservation Medical institutions only need visit the Internet can use the system for the release site medical clinic management Using the pattern of the man machine interface complete routine outpatient medical management While out of time and space constraints on the other hand it is an effective solution to the data sharing problem Through practical show that JSP based hospital outpatient information management system to meet the hospital in patient management needs Key Key Words Words JSP Hospital Outpatient Information Management System 精品文档 IV欢迎下载 目目 录录 第一章 绪论 1 第一节 课题研究现状分析 1 第二节技术发展的趋势 1 第二章 医院门诊信息管理系统需求分析 2 第一节 业务分析 2 一 业务角色 2 二 业务词汇 3 精品文档 V欢迎下载 第二节系统需求定义 3 第三章 医院门诊信息管理系统技术解决方案比较 5 第一节Web 应用解决方案 5 第二节 基于 JSP JavaBean 的解决方案 5 一 什么是 JSP 5 二 使用 JSP 的好处 6 三 什么是 JavaBean 6 四 使用 JavaBean 的好处 6 五 使用 JSP JavaBea 的好处 7 第三节 JSP 及 JavaBean 工作原理介绍 8 一 JSP 内置对象 8 二 JSP JavaBean 的运行环境 11 第四章 医院门诊信息管理系统概要设计 精品文档 VI欢迎下载 13 第一节 医院门诊信息管理系统文档结构定义 13 第二节 数据组织与定义 14 一 数据库概念设计 14 二 数据库逻辑设计 15 第五章 基于 JSP 与 JavaBean 的医院门诊信息管理系统详细设计 16 第一节 系统功能模块设计 16 第二节 系统功能模块实现 17 一 hospital db 包的类 17 二 hospital db opreation 包 22 第六章 测试 46 第一节 测试基本方法 47 一 界面测试 精品文档 VII欢迎下载 47 二 功能测试 47 第二节 测试用例及测试结果 48 结 论 56 致 谢 57 参考文献 58 附 录 59 精品文档 1欢迎下载 绪绪 论论 医院门诊信息管理系统是信息管理系统在医院门诊部门中的应用 随着 Internet 技术的发展 其被广泛应用与各行各业 医院门诊部门是其一个重要 的应用领域 伴随着医院的改革 医院信息化进程的加速 建立基于 Web 的医 院门诊信息管理系统显得尤为重要 第一节第一节课题研究现状分析课题研究现状分析 随着医疗卫生事业的发展 医院改革的深入 信息的有效 高效利用 已 受到人们的关注 充分利用现代科技手段 加强各种信息的利用开发 是医院 信息管理的一个重要内容 也是当今医院的需要 目前的医院仅仅把医院的信 息管理系统作为微机工具系统 而没有发挥其管理的真正功能 系统分散设计 各部门独立实施 没有考虑信息的关联和共享 存在信息孤岛现象 医院管理 错综复杂 从而形成了医院信息管理系统数据的多样化 数据量大等特点 1 通过本次医院门诊信息系统的设计 解决医院系统中各种信息管理的集成 问题 使医院系统的各种信息管理一体化 同时 了解医院门诊的流程 把握 信息管理系统开发概念 掌握动态网站技术 熟悉系统开发的进程 做到会用 相关工具设计和开发相关系统 并实现 第二节第二节技术发展趋势技术发展趋势 随着 Internet 技术的普及和发展基本上各种不同操作系统平台上都有相应 的 Web 浏览器程序 这就使得医院门诊信息管理系统具有非常广泛的平台兼容 性 客户端仅需一个 Web 浏览器程序 不再需要安装其它软件 客户程序主要 包括 HTML 页面和一些特殊的数据库访问程序 它们都存放在 Web 服务器上 客 户应用系统的设计 维护和更新工作只需在 Web 服务器上进行 这样就大大降 低了系统安装 测试 维护的工作量 2 通过基于 Web 的医院门诊信息管理系 统的开发 可以实现对医院门诊相关信息的整合管理以及共享 并且通过组件 技术的应用 可以使得本医院门诊信息管理系统具有很大的可扩展性和可移植 性 3 精品文档 2欢迎下载 第二章第二章 医院门诊信息管理系统需求分析医院门诊信息管理系统需求分析 第一节第一节 业务分析业务分析 一 业务角色一 业务角色 1 患者角色 可联机注册成为用户 设定自己的登陆名及密码 可按医生姓名自定义查询 可基于查询结果进行预约 若指定医生当日预约量已满 则预约失 败 预约结果随机返回给患者 可对已经进行的预约情况查看或撤销 图 2 1 患者用例图 2 医生角色 可查看预约患者的情况 精品文档 3欢迎下载 可查询患者病历 可创建患者病历 可对患者的病历进行修改 图 2 2 医生用例图 3 管理员角色 可添加或删除医生账号 图 2 3 管理员用例图 精品文档 4欢迎下载 二 业务词汇二 业务词汇 1 医院门诊 门诊是医院接诊病人的场所 病人到医院之后首先在门诊 由医护人员进行接诊 经过一整套的诊断手段 给病人得出初步诊断 并 且进行进一步治疗的指导 2 预约 由于医院某些专家的就诊患者多 医生为了确保有时间问诊患 者并且患者为了确定来医院就诊时可以准时接收医生的诊断而采用的一种 手段 3 电子病历 由于传统的纸质病历不利于保存和查询 而且浪费资源 所以采用将病历信息电子化 便于整个医院信息的共享和交流 4 医生基本信息 记录医生编号 姓名 年龄 登录时的密码 职称 所属科室和专家门诊科目等医生相关信息 5 患者基本信息 记录注册患者的编号 姓名 登录时用户名 登录时 密码 年龄 性别 家庭住址和联系电话等患者相关信息 6 病历基本信息 记录病历记录的编号 主治医生编号 症状 诊断 患者编号 处方等病历相关的信息 7 预约信息 记录预约记录的编号 主治医生的编号 患者编号 预约 时间 预约就诊时间等预约相关信息 第二节第二节 系统需求定义系统需求定义 本系统是基于 JSP 的医疗门诊信息管理系统 要求实现对医院里医生信息 病人 病历以及医药信息进行有效管理及其开发 主要包括后台数据库的建立 和维护以及前端应用程序的开发两个方面 4 重点解决的问题包括 1 病历基本信息管理 病历信息包括病历记录的编号 主治医生的编号 症状 诊断 患者编号 处方等内容 医生可以创建病历并且可以添加病历信 息和修改病历信息 病人可以查询自己的病历信息 2 患者基本信息管理 患者基本信息包括患者编号 姓名 登录系统的 用户名 登录密码 年龄 性别 家庭住址和联系电话等 患者注册时向患者 表中插入一条记录 3 医生基本信息管理 医生基本信息包括医生的编号 姓名 年龄 性 别 职称 所属科室 学历等内容 管理员通过登录可以添加和删除医生信息 精品文档 5欢迎下载 4 预约信息管理 预约信息包括记录编号 主治医生编号 患者编号 预约就诊时间等内容 病人可以预约医生和取消预约 医生登录后可以查询自 己的预约信息 本课题的应用难点有 1 病历基本信息管理 传统的纸质病历既不便于患者 医生查询信息 也不便于保存 本系统才用电子病历 5 病历基本信息管理系统选择基于三层 结构的 C S B S 混合模式 三层结构中 底层是电子病历数据库服务器 用于 存储和管理病历等数据 中间层是应用服务器和 Web 服务器 其中应用服务器 用于实现系统的业务逻辑 完成各种复杂的管理操作和数据存取 Web 服务器 用于提供系统的 Web 服务 还可以通过网关与外部系统进行数据交换和信息传 递 最上层是客户端 位于门诊大厅 Windows 用户通过专用程序完成相关操 作 IE 用户通过浏览器使用 2 预约信息管理 患者登录系统预约医生 信息插入预约表 或者取消 预约 即从预约表中删除相关预约信息 医生通过登录可以创建病历 通过给 预约的患者看病在病历表中添加病历信息 精品文档 6欢迎下载 第三章第三章医院门诊信息管理系统技术医院门诊信息管理系统技术 解决方案比较解决方案比较 第一节第一节 WebWeb 应用解决方案应用解决方案 本系统采用动态网站技术 早期的动态网站开发技术使用的是 CGI BIN 接 口 这种开发技术存在着严重的扩展性问题 每一个新的 CGI 程序要求在服务 器上新增一个进程 为克服这一弊端 微软公司提出了 Active Server Pages ASP 技术 该技术利用 插件 和 API 简化了 Web 应用程序的开发 Hypertext Preprocessor 超文本预处理器 即 PHP 动态网站开发技术与 ASP 相似 也是一种嵌入 HTML 文档的服务器端脚本语言 还有一些技术 如 Java Servlets 技术 利用该技术可以很容易地用 Java 语言编写交互式的服务器端 代码 太阳微系统公司 Sun Microsystems Inc 在 Web 服务器 应用服务器 交易系统以及开发工具供应商间广泛支持与合作下 整合并平衡了已经存在的 对 Java 编程环境 例如 Java Servlets 和 JavaBeans 进行支持的技术和工具 后产生了一种新的 开发基于 Web 应用程序的方法 JavaServer Pages 技术 JSP 这种动态网站开发技术能够在任何的 Web 或应用服务器上运行 而且 分离了应用程序的逻辑和页面显示 能够进行快速的开发和测试 并且简化了 开发基于 Web 的交互式应用程序的过程 基于此 我们选择 JSP JavaBean 技术 来实现相应模块的开发 第二节第二节 基于基于 JSPJSP JavaBeanJavaBean 的解决方案的解决方案 一 一 什么是什么是 JSPJSP JSP Java Server Pages 是 Sun Microsystems 公司倡导 许多公司参与一 起建立的一种动态网页技术标准 JSP 技术是用 JAVA 语言作为脚本语言的 JSP 网页为整个服务器端的 JAVA 库单元提供了一个接口来服务于 HTTP 的应用 程序 6 在传统的网页 HTML 文件 htm html 中加入 Java 程序片段 Scriptlet 和 精品文档 7欢迎下载 JSP 标记 tag 就构成了 JSP 网页 jsp Web 服务器在遇到访问 JSP 网页的 请求时 首先执行其中的程序片段 然后将执行结果以 HTML 格式返回给客户 程序片段可以操作数据库 重新定向网页以及发送 email 等等 这就是建 立动态网站所需要的功能 所有程序操作都在服务器端执行 网络上传送给客 户端的仅是得到的结果 对客户浏览器的要求最低 可以实现无 Plugin 无 ActiveX 无 Java Applet 甚至无 Frame 二 使用二 使用 JSPJSP 的好处的好处 JSP 的设计目标主要是提供一种更为简便 有效的动态网页编写手段 并 且增强网页程序的独立性 兼容性和可重用性 它是通过以下几个方面加以实现的 1 简便性和有效性 JSP 动态网页的编写与一般的静态 HTML 的网页的编写十分相似 只是在原 来的 HTML 网页中加入一些 JSP 专有的标签 或是一些脚本程序 而且此项不是 必需的 这样 一个熟悉 HTML 网页编写的设计人员可以很容易进行 JSP 网页 的开发 而且开发人员完全可以不自己编写脚本程序 而只是通过 JSP 独有的 标签利用别人已写好的部件来实现动态网页的编写 这样 一个不熟悉脚本语 言的网页开发者 完全可以利用 JSP 做出漂亮的动态网页 而这在其他的动态 网页开发中是不可思议的 2 程序的独立性 JSP 是 Java API 家族的一部分 它拥有一般的 Java 程序的跨平台的特性 换句话说 就是拥有程序的对平台的独立性 即 Write once Run anywhere 3 程序的兼容性 因为 JSP 中的动态内容可以各种形式进行显示 所以它可以为各种客户提 供服务 从使用 HTML DHTML 的浏览器 到使用 WML 的各种手提无线设备 如 移动电话和个人数字设备 PDA 再到使用 XML 的 B2B 应用 都可以使用 JSP 的动态页面 三 什么是三 什么是 JavaBeanJavaBean JavaBean 是一种可重复用 跨平台的软件组件 JavaBean 可以为两种 一种是有用户界面 UI User Interface 的 JavaBean 还有一种是没有用户 界面 主要负责处理事务 如数据运算 操纵数据库 的 JavaBean JSP 通常 访问的是后一种 JavaBean 精品文档 8欢迎下载 四 使用四 使用 JavaBeanJavaBean 的好处的好处 JavaBean 最大的优点在于可以实现代码的可重用性 同时 JavaBean 又 具有一下特性 JavaBean 是一个公共的 public 类 JavaBean 有一个不带数的构造方法 JavaBean 通过 get 方法没置属性 通过 set 方法获取属性 易于维护 使用 编写 可移植性强 但仅限于 Java 工作平台 便于传输 不论是本地还是网络 可以以其它部件的模式进行工作 五 使用五 使用 JSPJSP JavaBeanJavaBean 的好处的好处 JSP 与 JavaBean 搭配使用 有 3 个好处 使得 html 与 Java 程序分离 这样便于维护代码 如果把所有的程序 代码都写到 JSP 网中 会使得代码繁杂 难以维护 可以降低开发 JSP 网页人员对 java 编程能力的要求 JSP 侧重于生成动态网页 事务处理由 JavaBean 来完成 这样可以充分利 用 JavaBean 组件的可重用性特点 提高开发网站的效率 第三节第三节 JSPJSP 及及 JavaBeanJavaBean 工作原理介绍工作原理介绍 一 一 JSPJSP 内置对象内置对象 JSP 有九种内置对象 request reponse out session application config pagecontext pag e exception 7 1 request 对象 request 对象代表请求对象 它被包装在 HttpServletRequest 接口 通过 getParameter 方法可以得到 request 的参数 通过 GET POST HEAD 等方法可以得到 request 的类型 通过 Cookies Referer 等可以得到请求的 HTTP 头 来自客户端的请求经 Servlet 容器处理后 有 Request 对象进行封装 它作为 jspService 方法的一个参数 有容器传递给 JSP 页面 Request 对象主要方法 getAttribute String name 返回 name 属性值 精品文档 9欢迎下载 getAttributeNames 返回 request 对象所有属性名字 getCookies 返回客户端的 cookies 对象 getHeader String name 获得 HTTP 协议定义的文件头信息 getHeaders String name 返回指定名字的 request Header 的所有值 getMethod 获得客户端向服务器端传送数据的方法 getParameter String name 获得客户端传送给服务器端的参数值 getParameterNames 获得客户端传送给服务器端的所有参数的名字 getParameterValue String name 获得指定参数的所有值 getProtocol 获取客户端向服务器端传送数据所依据的协议名称 getQueryString 获得查询字符串 getRequestURI 获取发出请求字符串的客户端地址 getRemoteAddr 获取客户端的 IP 地址 getRemoteHost 获取客户端的名字 getServerName 获取服务器的名字 getServletPath 获取客户端所请求的脚本文件的文件路径 getServerPort 获取服务器的端口号 setAttribute String name java lang Object objt 设置名字为 name 的 request 参数的值 该值是由 java lang Object 类型的 objt 指定 2 response 对象 response 被包装成 HttpServletResponse 接口 它封 装了 JSP 产生响应 然后被发送到客户端以响应客户的请求 和 Request 对象一样 它由容器生成 作为 jspService 方法的参数被传入 JSP 因 为输出流是缓冲的 所以可以设置 HTTP 状态码和 response 头 Response 对象的主要方法有 addCookie Cookie cook 添加一个 cookie 对象 用来保存客户端的用 户信息 addHeader String name String value 添加 HTTP 文件头信息 containsHeader String name 判断指定名字的 HTTP 文件头是否已经 存在 sendError int 向客户端发送错误的信息 setHeader String name String value 设置指定名字的 HTTP 文件 头的值 3 pageContext 对象 pageContext 对象被封装成 精品文档 10欢迎下载 javax servlet jsp pageContext 接口 它为 JSP 页面包装页面的上下文 管理对属于 JSP 中特殊可见部分中以命名对象的访问 它的创建和初始化 都是由容器完成的 pageContext 对象中常用的方法有 getAttribute scope 检索一个特定的已经命名对象的范围 findAttribute 用来按照页面请求 会话以及应用程序范围的顺序实 现对某个已经命名属性的搜索 setAttribute 用来设置默认页面的范围或特定范围之中的已命名对 象 removeAttribute 用来删除默认页面范围或特定范围之中已命名的对 象 4 session 对象 session 对象用来保存每个用户的信息 以便跟踪每个 用户的操作状态 其中 session 信息保存在容器里 session 的 ID 保存 在客户机的 Cookie 中 session 对象的主要方法 getAttribute String name 获取与指定名字 name 相联系的信息 getAttributeNames 返回 session 对象中存储的每一个属性对象 getCreationTime 返回 session 被创建的时间 getId 返回唯一的标识 为每一个 session 而产生 getLastAccessedTime 返回当前 session 对象最后被客户发送的时间 getMaxInactiveInterval 返回总时间 秒 removeAttribute String name 删除与指定名字 name 的相联系的信息 setAttribute String name java lang object value 设置指定名 字 name 的属性值 value 并存储在 session 对象中 5 application 对象 application 对象为多个应用程序保存信息 application 对象的主要方法 getAttribute String name 返回由 name 指定的名字 application 对 象的属性的值 getAttributeNames 返回所有 application 对象的属性的名字 getInitParameter String name 返回由 name 指定的名字的 application 对象的某个属性的初始值 getServletInfo 返回 servlet 编译器当前版本信息 精品文档 11欢迎下载 setAttribute String name Object object 设置指定名字 name 的 application 对象的属性值 object 6 out 对象 out 对象被封装成 javax servlet jsp JspWriter 接口 他 主要用来向客户端输出数据 代表输出流的对象 out 对象的主要方法 out print println boolean char char double float int long object string 输出各种类型的数据 out newLine 输出一个换行字符 out flush 输出缓冲区里的数据 out close 关闭输出流 out clearBuffer 清除缓冲区里的是数据 并把数据输出到客户端 out clear 清除缓冲区里的是数据 但不会把数据输出到客户端 out getBufferSize 获得缓冲区的大小 out getRemaining 获取缓冲区中没有被占用的空间的大小 out isAutoFlush 返回布尔值 7 config 对象 config 对象被封装成 javax servlet ServletConfig 接 口 它表示 Servlet 的配置 config 对象的主要方法 getServletContext 返回执行者的 Servlet 上下文 getServletName 返回 Servlet 的名字 getInitParameter String name 返回名字为 name 的初始参数的值 getInitParameterNames 返回这个 JSP 的所有的初始参数的名字 8 page 对象 page 对象是类 java lang Object 类的一个实例 它是 JSP 本身 通过这个可以对它进行访问 9 exception 对象 exception 对象是 java lang Throwable 类的一个实 例 它指的是运行时的异常 也就是被调用的错误页面的结果 只在错误 页面 在页面指令里有 isErrorPage true 的页面 中才可以使用 二 二 JSPJSP JavaBeanJavaBean 运行环境运行环境 本系统建立在 Windows XP 平台上 用 Apache Tomcat 作为 JSP 服务端引擎 采用 Eclipse 作为后台设计开发环境 Apache 是一个 web 服务器环境程序启用他可以作为 web 服务器使用 不过 只支持静态网页 不支持动态网页 如 asp jsp 等 如果要在 Apache 环境 下运行 jsp 网页 就需要一个解释器来执行 jsp 网页 而这个 jsp 解释器就是 精品文档 12欢迎下载 Tomcat Tomcat 是一个免费且开源的 Serlvet 容器 它是 Apache 基金会的 Jakarta 项目中的一个核心项目 由 Apache Sun 和其它一些公司及个人共同开发而成 由于有了 Sun 的参与和支持 最新的 Servlet 和 jsp 规范总能在 Tomcat 中得到 体现 与传统的桌面应用程序不同 Tomcat 中的应用程序是一个 WAR Web Archive 文件 在 Tomcat 中 应用程序的部署很简单 你只需将你 的 WAR 放到 Tomcat 的 webapp 目录下 Tomcat 会自动检测到这个文件 并将其 解压 Eclipse 是替代 IBM Visual Age for Java 的下一代 IDE 开发环境 根据 Eclipse 的体系结构 通过开发插件 它能扩展到任何语言的开发 甚至能成 为图片绘制的工具 Eclipse 是开放源代码的项目 其本身是用 Java 语言编写 但下载的压缩包中并不包含 Java 运行环境 需要用户自己另行安装 JRE 并且 要在操作系统的环境变量中指明 JRE 中 bin 的路径 Eclipse 提供的核心框架 和可扩展的插件机制给广大的程序员提供了无限的想象和创造空间 第四章第四章 医院门诊信息管理系统概要设计医院门诊信息管理系统概要设计 第一节第一节 医院门诊信息管理系统文档结构定义医院门诊信息管理系统文档结构定义 本系统包括两个逻辑层包 hospital db 包和 hospital db operation 包以 及一些 jsp 文件 1 hospital db 包封装了整个网站用于完成基础功能的类 具体包括 hospital db Util 辅助类 用于完成一些 JSP 中常用的功能 比如字符 集的转换 hospital db InitServlet 初始化整个 Servlet 环境 hospital db DBConnection 与整个数据库连接 返回 Connection 对象 hospital db Debug 记录日志 将信息写入指定的日志文件中 2 hospital db operation 包封装了所有用户角色有关的模型 具体如下 hospital db dboperation DBOperation 建立用户的抽象模型 供子类继 承 hospital db dboperation Admin 继承自 DBOperation 定义管理员模型 hospital db dboperation Doctor 继承自 DBOperation 定义医生模型 精品文档 13欢迎下载 hospital db dboperation Patient 继承自 DBOperation 定义患者模型 hospital db dboperation InvalidUserException 继承自 Exception 用以封装一个表示 非法用户名 的异常 3 jsp 文件 以适当的方式通过逻辑层与数据层交互及一些页面代码 第二节第二节 数据组织与定义数据组织与定义 一 数据库概念设计一 数据库概念设计 医院门诊信息管理系统的数据库功能主要体现在对各种信息的提供 保存 更新和查找操作上 主要包括患者信息 医生信息 预约信息 8 因此 患者和医生有不同的权限因此身份不同 用户信息记录不同的用户资料 预约信息有预约时间 预约用户等 经过上述功能分析和需求总结 考虑到将来功能上的扩展 设计如下的数 据项和数据结构 管理员信息 包括数据项管理员名 密码等 医生信息 包括数据项医生名 密码等 患者信息 包括数据项用户名 密码等 预约信息 包括数据项医生名 预约时间等 二 数据库逻辑设计二 数据库逻辑设计 根据以上分析知 系统需要的基本信息表有 管理员信息表 医生信息表 患者信息表 病历记录表和预约记录表 本系统是一个多用户系统 牵涉多个 管理人员和多用户 因此需要针对不同类别的用户进行密码认证和权限限制 防止出现越权现象 部分具体数据库设计如下 1 医生表 用于存储医生的个人信息 表 4 1 医生表的结构 字段名类型备注约束条默认值 DIDvarcher 5 医生编号主键 Namevarchar 12 姓名索引 Age tinyint 3 unsigned 年龄 0 精品文档 14欢迎下载 Passwordvarchar 20 密码初始 DID Sex tinyint 3 unsigned 性别 1 男 2 女 1 Levelvarchar 12 医生职称 Sectionvarchar 12 所属科室索引 Specialismvarchar 20 专家门诊科目 Phonevarchar 15 联系电话可为空 2 患者表 用于存储患者的个人信息 表 4 2 患者表的结构 字段名类型备注约束条默认值 PID mediumint 8 unsigned auto increment 患者编号主键 Namevarchar姓名 UserNamevarchar 登录时用户 名 唯一索引 Passwordvarchar密码 Age tinyint 3 unsigned 年龄 0 Sex tinyint 1 unsigned 性别 1 男 2 女 1 AddressTinyText家庭住址可为空 Phonevarchar联系电话可为空 3 病历记录表 病历记录表记录了患者的病历信息 表 4 3 病历记录表的结构 字段名类型备注约束条默认值 HID int unsigned 10 auto increment 病历记录编 号 主键 Doctorvarchar 5 主治医生编 号 索引 Descriptio n TinyText症状 DiagnoseTinyText诊断 精品文档 15欢迎下载 Patient mediumint 8 unsigned 患者编号索引0 RxTinyText处方 SdateDatetime开始时间 0000 00 00 00 00 00 FdateDatetime结束时间可为空 0000 00 00 00 00 00 Finished tinyint 1 unsigned 就诊过程是 否结束 1 是 2 否 0 4 预约记录表 预约记录表记录了已预约但尚未创建病历的患者信息 表 4 4 预约记录表的结构 字段名类型备注约束条默认值 QID int unsigned 10 auto incremen t 记录编号主键 Doctorvarchar 5 主治医生编号索引 Patient mediumint 8 unsigned 患者编号索引0 DateDatetime预约时间 0000 00 00 00 00 00 Day tinyint 1 unsigned 预约就诊时间 0 周日 1 周一 2 周二 3 周三 4 周四 5 周五 6 周六 0 AP tinyint 1 unsigned 预约就诊时间 0 上午 1 下午 0 5 管理员表 管理员表存储了与管理员有关的信息 表 4 5 管理员表结构 字段名类型备注约束条默认值 AIDtinyint 2 管理员编号主键 精品文档 16欢迎下载 unsigned auto increment Usernamevarchar 20 登录时的用户 名 唯一索引 PasswordVarchar 20 登录时密码 EmailVarchar 20 电子邮件 NameVarchar 12 姓名 PhoneVarchar 15 联系电话可为空 第五章第五章 基于基于 JSPJSP 与与 JavaBeanJavaBean 的医院门诊的医院门诊 信息管理系统详细设计信息管理系统详细设计 第一节第一节 系统功能模块设计系统功能模块设计 根据客户要求 操作者的权限层次要有明确的分类 进入软件时需要进行 身份验证 出于对患者个人隐私的负责 患者的病历记录只能在患者就医期间 有主治医生条约 其它任何人包括管理员无权查阅 整个系统需要实现以下功 精品文档 17欢迎下载 能 如图所示 图 5 1 系统功能模块图 第二节第二节 系统功能模块实现系统功能模块实现 一 一 hospital dbhospital db 包中的类包中的类 图 5 2 hospital db 包的 UML 图 医疗门诊信息管理系统 病历基本信息管理模 块 医生基本信息管理模 块 患者基本信息管理模 块 预约信息管理模块 精品文档 18欢迎下载 与数据库建立连接类与数据库建立连接类 DBConnectionDBConnection 本类位于 hospital db 包中 由于 Connection 是一个非常耗费资源的对象 因此在这里使用单例模式设计 DBConnection 类 保证了真个生命周期内只存在 一个 Connection 对象 该对象可以被其它类重复利用 这样可以大大节省系统 资源 DBConnection 类核心代码如下 publicpublic abstractabstract classclass DBConnection publicpublic staticstatic Connection getConnection Connection conn nullnull trytry ifif conn nullnull Class forName org gjt mm mysql Driver conn DriverManager getConnection jdbc mysql localhost 3306 hospit al root nemo Debug log Connecion created elseelse Statement stmt conn createStatement ResultSet rs stmt executeQuery SELECT COUNT FROM administrator ifif rs nullnull rs next Class forName com mysql jdbc Driver conn DriverManager getConnection jdbc mysql local host 3306 hospital root nemo Debug log Connecion re created catchcatch Exception ex Debug log Debug getExceptionMsg ex returnreturn conn 记录日志的记录日志的 DebugDebug 类类 精品文档 19欢迎下载 本类位于 hospital db 包中 本系统的一个亮点是日志记录 这里也是用 单例模式实现的 Debug 类的核心代码如下 publicpublic finalfinal classclass Debug privateprivate staticstatic Debug instance nullnull privateprivate staticstatic SimpleDateFormat dateFormat nullnull privateprivate staticstatic FileOutputStream fos nullnull privateprivate Debug staticstatic synchronizedsynchronized Debug init String path publicpublic staticstatic synchronizedsynchronized voidvoid log String msg privateprivate String writeFile String msg publicpublic staticstatic String getExceptionMsg Exception e StackTraceElement ste e getStackTrace 0 String msg ste getClassName ste getMethodName Ln ste getLineNumber e getMessage returnreturn msg 下面对 Debug 类中一些关键原理和值得注意的地方加以说明 程序中将构造器定义为私有也是为了防止以构造器的方式生成对象 大 多数情况下以这种方式实现单例模式 为了便于调试 在 Debug 类中定义了一个专门用来处理异常的方法 getExceptionMsg 在返回的字符串中包括了抛出异常的类名 方法名和所在 行数 初始化初始化 ServeletServelet 的的 InitServletInitServlet 类类 本类位于 hospital db 包中 继承自 javax servlet http HttpServlet 配合 Tomcat 中的设置 使服务器启动后首先按生成一个 InitServlet 的实例 然后调用其 init 方法 对 Servlet 环境进行初始化 InitServlet 的核心代 精品文档 20欢迎下载 码如下 publicpublic classclass InitServlet extendsextends HttpServlet publicpublic voidvoid init throwsthrows ServletException String logPath getServletContext getRealPath log Debug init logPath Debug log Server started publicpublic voidvoid destroy Debug log Server shutted down 辅助类辅助类 UtilUtil 本类位于 hospital db 包中 本类只有三个方法 其中 encode 和 decode 方法负责对带有中文字符的数据惊醒转码工作 而 parseSpDays 方 法则是用来处理医生的预约人数信息 Util 的核心代码如下 publicpublic abstractabstract classclass Util publicpublic staticstatic String decode String str throwsthrows UnsupportedEncodingException returnreturn newnew String str getBytes iso 8859 1 gbk publicpublic staticstatic String encode String str throwsthrows UnsupportedEncodingException returnreturn newnew String str getBytes gbk iso 8859 1 publicpublic staticstatic intint parseSpDays String dayPattern throwsthrows NumberFormatException intint spDays newnew intint 14 StringTokenizer token newnew StringTokenizer dayPattern trim ifif token countTokens 14 throwthrow newnew NumberFormatException forfor intint i 0 i 14 i 精品文档 21欢迎下载 spDays i Integer parseInt token nextToken returnreturn spDays 二 二 hospital db operation 包 精品文档 22欢迎下载 图 5 3 hospital db operation 包的 UML 图 医生模型医生模型 DoctorDoctor 类类 本类位于 hospital db dboperation 包中 Doctor 类封装了医生角色可执 行的所有操作 核心代码如下 publicpublic classclass Doctor extendsextends DBOperation publicpublic staticstatic finalfinal String NAME Name publicpublic staticstatic finalfinal String DATE Date publicpublic Doctor String id throwsthrows InvalidUserException supersuper id 用户登录 参数 password 密码 返回值 操作结果 1 登录成功 0 抛出一般异常 1 抛出数据库异常 精品文档 23欢迎下载 2 登录失败 publicpublic intint login String password String

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论