1、 数据库系统课程设计报告 题目:住院管理系统 课程代号: 0680036 课程名称:数据库系统课程设计 学号:xxx 姓名:XXXX 班级:XXXX 指导教师:XXXX 完成日期:2010年12月 第一章 引言 1.1 问题描述: 随着现代社会信息技术与计算机技术飞速发展,生活中的许多地方都使用这些科技成果,住院管理系统也是一项很复杂繁琐的工作,不仅需要花费大量人力和精力进行操作,而且容易产生错误,住院记录不易保存查找,并且容易丢失,在管理方面困难重重
2、因此,需要祝愿管理系统对医院的病人住院、出院等信息进行统筹的管理,以确保工作的正常进行。 1.2系统说明: 住院管理涉及病人的入住信息、离院信息、以及病人的住院期间管理等信息,包括病人的用药管理、医护管理、费用管理等多种数据。住院管理主要针对管理人员对病人的资料进行增加、修改、删除与查询,可以划分为三部分:住院病原管理、病房计费以及住院部药房管理。住院管理系统主要应具有以下功能: 一、住院病员管理 主要负责住院病人档案和费用等管理。由入院处理、预缴金处理、出院处理、报表处理四大功能模块组成。 1、住院病员管理部分特点 (1)全面管理住院病人费用 对住院病
3、人费用进行实时监控。 (2)灵活多样的收费、结算方式 本系统采用多种收费、结算方式:现金、转帐、公费、本院。 2、功能介绍 系统由输入、结账、帐目共三个部分组成。 (1) 输入部分包括: 办理入院 为新入院病员建立费用帐户。 收预交费 登记病员预交金额。 办理担保 设置病人类型和担保人。 转 科 办理病员从一个科转入另一个科的手续。 (2) 结帐部分包括: 出院结帐 办理出院,打印发票,同时为日报准备数据。 中途结帐 病员继续住院,结清已发生的全部费用。 单科结帐 只结帐某一个科
4、别所发生费用。 (3) 帐目部分包括: 出院日报 当天出院病员的费用分类统计表。 记帐日报 当天记入费用数据库的费用分类统计表。 库存日报 全院尚未出院全部病员费用分类统计表。 删除数据明细表 被删除数据的明细表。 出院月报 全月出院病员费用分类统计表。 出院年报 全年出院病员费用分类统计表。 二、病房计费部分系统 1 病房计费系统特点 (1)病房直接管理本科病员的费用情况,完成记费功能。 (2)治疗费用以详细名称记帐(如:注射费、纱布费、一次性针头等等)。为今后医疗改革及保险机构准备了最可靠的底
5、层数据。 2 系统功能 (1)记费功能 给本科病员记治疗费和药费等。 (2)查 询 护士查询医师诊断和处方对病人用药。 (3)记 录 护士记录病人病况,病情变化,用药情况和体态特征等病历情况。 2 数据查询 (1)在院患者信息查询 (2)预交款查询 (3)登帐费用查询 (4)科室费用查询 (5)出院患者查询 (6)出院患者费用查询 三、住院部药房管理部分系统 住院部药房管理子系统是医院药品管理的重要组成部分,它与药库和临床科室有着密切的联系。住院部药房管理子系统的主要功能是完成向药库请领药品、处理临床科室领、退药品及完成窗口业务等。
6、1 系统特点 (1)遵循药品管理先进先出的原则。 (2)系统同时采用国家药品分类标准编码、划价码及药品拼音码三种编码方案。其中,医院自定药品编码、拼音码只需简单设置后,系统将自动生成。 (3)支持自费,公费药品管理。 (4)报表丰富且可根据医院的不同情况定制。 (5)支持药品分组。 (6)支持毒麻药品每日校对交接功能。 (7)先进的刷卡发药功能,杜绝了药品冒领和误领现象。 2 系统功能 药房药品管理 请领药品处理:向药库请领药品。 药品发放处理:包括口服水剂发放、针剂外用发放、麻醉药品发放、中成草药发放及出院带药发放等,对未发药品能作出相应处理。 病人退药处
7、理:包括病人退药、病区退药功能。 药房药品盘点,药房药品报损,药房库存调整药房价格调整,药品名称修正。 1.3系统运行环境 Windows xp My SQL Tomcat MyEclipse 使用语言 JAVA JSP 第二章 系统分析与设计 2.1系统需求分析 2.1.1需求分析: (1)能够实现对新入住病人的资料信息录入,能够实现对病人住院期间的管理与维护; (2)能够实现对病人的资料进行修改与查询功能; (3)能够进行对病人收取费用; (4)能够进行借阅历史的查询功能; 2.1.2系统性能要求 (
8、1)系统安全、可靠; (2)功能齐全; (3)操作方便、界面美观; (4)易于维护和扩充。 2.1.3系统功能分析 资料维护:为了存放病人档案的全部数据,本系统将每一位病人的病例以及病人的个人信息进行管理。系统维护包括对各种表记录的修改、删除、添加等操作。 系统查询:可以按病人ID号、科目,名称等相关信息进行查询 系统管理:进行病人的资料管理。 报表统计:包括统计病人病例、病人个人信息、病人缴费情况和病人用药情况等。 其它操作:包括修改密码、添加用户、页面设置等 用户:医院管理人员对病人的各种情况进行修改、查询等操作。 2.1.4系统流程图: 查 询
9、 修 改 删 除 增 加 医院员工 是否成功 登 陆 否 是 2.1.5数据字典: (1)名称:医院管理人员 描述:记录医院管理人员信息 定义:管理员信息=管理员ID+管理员密码 输入数据:管理员ID 输出数据:管理员信息 (2)名称:病人信息表结构 描述:记录所有病人的基本信息 定义:病人信息=病人名称+病人id+病人住院科室
10、 输入数据:id 病人名称 输出数据:病人信息 (3)名称:读者信息表结构 描述:记录医院管理人员信息 定义:医护人员信息=id+姓名+科室类型+证件类型+证件号码+电话号码+Email 输入数据:id 输出数据:医护人员信息 (4)名称:病人档案表结构 描述:查询病人信息 定义:病人档案=id+病人名称+病人科室 输入数据:id号,病人名称 输出数据:查询的病人信息 2.2数据库概念结构设计: 数据库E-R图: 医生 收费单 病房 病床 护士 病情 账单 病人
11、 位于 安排 分配 结账 住入 接受 拥有 治疗 协助 主治 书写 1 n 1 n n 1 1 1 1 m n n n n 1 1 1 n 1 n 1 1 出院 总费用 2.3数据库逻辑结构设计: 数据库所建表: 1.建立病房类型/价格表 CREATE TABLE [dbo].[bflx] ( [病房类型] [varchar] (10) COLLATE Chinese_PRC_CI_AS NULL , [病房价格] [int] NULL ) ON [PRIMARY] 2.建立病房表
12、 CREATE TABLE [dbo].[bfno] ( [病房号] [varchar] (5) COLLATE Chinese_PRC_CI_AS NULL , [病房类型] [varchar] (10) COLLATE Chinese_PRC_CI_AS NULL , [flag] [tinyint] NULL , [在住状态] [varchar] (6) COLLATE Chinese_PRC_CI_AS NULL ) ON [PRIMARY] 1. 建立管理员/操作员信息表 CREATE TABLE [dbo].[psw] ( [name] [cha
13、r] (20) COLLATE Chinese_PRC_CI_AS NULL , [psw] [char] (10) COLLATE Chinese_PRC_CI_AS NULL , [权限] [tinyint] NULL ) ON [PRIMARY] 5.建立病人信息表 CREATE TABLE [dbo].[sufferer] ( [编号] [varchar] (8) COLLATE Chinese_PRC_CI_AS NOT NULL , [患者姓名] [varchar] (10) COLLATE Chinese_PRC_CI_AS NULL , [性别]
14、 [varchar] (2) COLLATE Chinese_PRC_CI_AS NULL , [出生日期] [datetime] NULL , [证件类型] [varchar] (8) COLLATE Chinese_PRC_CI_AS NULL , [证件号码] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL , [血型] [varchar] (2) COLLATE Chinese_PRC_CI_AS NULL , [rh因子] [varchar] (5) COLLATE Chinese_PRC_CI_AS NULL ,
15、[过敏史] [varchar] (8) COLLATE Chinese_PRC_CI_AS NULL , [病房类型] [varchar] (8) COLLATE Chinese_PRC_CI_AS NULL , [病房号] [varchar] (5) COLLATE Chinese_PRC_CI_AS NULL , [主治医师] [varchar] (10) COLLATE Chinese_PRC_CI_AS NULL , [住院时间] [datetime] NULL , [登记员] [varchar] (10) COLLATE Chinese_PRC_CI_AS NUL
16、L , [备注] [text] COLLATE Chinese_PRC_CI_AS NULL , [压金] [int] NULL ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] 6.建立出院病人信息表 CREATE TABLE [dbo].[出院病人] ( [编号] [varchar] (8) COLLATE Chinese_PRC_CI_AS NULL , [患者姓名] [varchar] (10) COLLATE Chinese_PRC_CI_AS NULL , [性别] [varchar] (2) COLLATE Chinese
17、PRC_CI_AS NULL , [出生日期] [datetime] NULL , [证件类型] [varchar] (8) COLLATE Chinese_PRC_CI_AS NULL , [证件号码] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL , [血型] [varchar] (2) COLLATE Chinese_PRC_CI_AS NULL , [RH因子] [varchar] (5) COLLATE Chinese_PRC_CI_AS NULL , [过敏史] [varchar] (5) COLLATE Ch
18、inese_PRC_CI_AS NULL , [病房类型] [varchar] (10) COLLATE Chinese_PRC_CI_AS NULL , [病房号] [varchar] (5) COLLATE Chinese_PRC_CI_AS NULL , [主治医师] [varchar] (10) COLLATE Chinese_PRC_CI_AS NULL , [住院时间] [datetime] NULL , [出院时间] [datetime] NULL , [登记员] [varchar] (10) COLLATE Chinese_PRC_CI_AS NULL
19、 [备注] [text] COLLATE Chinese_PRC_CI_AS NULL , [住院费用] [int] NULL ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] 2.5系统总体设计 住院管理系统 系统信息 出院管理 病房管理 病人 登记 帮助信息 更换用户 更改密码 新增用户 删除用户 备份/恢复 退出系统 病人登记 病人查询 费用查询 病房信息 病房查询 增 /删病房 登记出院 出院病人查询 帮助产题 关于 所有病房信息 空闲病房信息 在住病房信息 第三
20、章 系统开发及实现 3.1所用技术介绍 本系统界面设计主要采用CSS技术+jsp,数据库采用My SQL 3.2设计效果 3.2.1系统登录 主要源代码 <%@page contentType="text/html; charset=utf-8"%>
<%@include file="mousehead.txt"%>21、 file="mousebody.txt"%>
24、dy> 3.2病人管理 主要源代码 <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <%@ page import="com.newprogram.hz.impl.*" %> <%@ page import="com.newprogram.hz.vo.*" %> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getS
25、erverName()+":"+request.getServerPort()+path+"/"; %>
29、nt = 0; int pagecount = 0 String sPagenow = request.getParameter("pagenow"); if(sPagenow != null) { pagenow = Integer.parseInt(sPagenow); } TableDeptFinanceImpl tdfi = new TableDeptFinanceImpl(); String keyword = request.getParameter("keyword"); if (keyword == null) { keyword = "
30、"; }else { keyword = new String(keyword.getBytes("ISO-8859-1"),"utf-8"); } rowcount = tdfi.rowCount(keyword); if(rowcount%pagesize == 0) { pagecount = rowcount / pagesize; }else { pagecount = rowcount / pagesize + 1; } try{ List all = tdfi.findAll(pagenow,pagesize,keyword
31、); Iterator iter = all.iterator(); %>
<% for(int i = 1; i<= pagecount; i++) { out.println("36、keyword="+keyword+"&pagenow="+ i +">[" + i + "]
"); } %> 3.3费用管理 主要源代码 <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <%@ page import="com.newprogram.hz.impl.*" %> <%@ page import="com.newprogram.hz.vo.*" %> <% String path38、 request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %>
42、
<% int pagesize = 5; int pagenow = 1; int rowcount = 0; int pagecount = 0; String sPagenow = request.getParameter("pagenow"); if(sPagenow != null) { pagenow = Integer.parseInt(sPagenow); } TableStaFinanceImpl tsfi = new TableStaFinanceImpl(); Stri43、ng keyword = request.getParameter("keyword"); if (keyword == null) { keyword = ""; }else { keyword = new String(keyword.getBytes("ISO-8859-1"),"utf-8"); } rowcount = tsfi.rowcount(keyword); if(rowcount%pagesize == 0) { pagecount = rowcount / pagesize; }else { pagecount = row
44、count / pagesize + 1; } try { List all = tsfi.findAll(pagenow, pagesize, keyword); Iterator iter = all.iterator(); %>
<% for(int i = 1; i<= pagecount; i++) { out.println("49、>[" + i + "]
"); } %> 3.4药物管理 主要源代码 <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <%@ page import="com.newprogram.hz.impl.*" %> <%@ page import="com.newprogram.hz.vo.*" %> <% String path = request.getContextPath(); String





