医院信息管理系统数据库系统的设计与实现.docx
《医院信息管理系统数据库系统的设计与实现.docx》由会员分享,可在线阅读,更多相关《医院信息管理系统数据库系统的设计与实现.docx(17页珍藏版)》请在冰豆网上搜索。
![医院信息管理系统数据库系统的设计与实现.docx](https://file1.bdocx.com/fileroot1/2022-11/22/15bf4adb-5150-49d5-813b-460318877715/15bf4adb-5150-49d5-813b-4603188777151.gif)
医院信息管理系统数据库系统的设计与实现
题目:
医院信息管理系统数据库系统的设计与实现
1系统概况
1.1系统设计的目的
人类进入21世纪,医院作为一个极其重要的服务部门,其发展应适应计算机技术的发展。
我国的医疗体制正在进行改革,需要医疗市场的进一步规范化,这就利用现代化的工具对医院进行有效的管理,有利于提高医疗水平和服务质量,更好的服务于社会。
鉴于此目的,我利用SQLServer2000技术设计了此医院管理数据库系统,以利用计算机完成病人入院后,对其基本信息、主治医师以及入住病房等信息进行数据库管理,有利于提高入院手续的办理速度以及对医院资源管理的效率。
同时可以落实责任,方便信息的集中化管理及应用
1.2系统开发的背景与意义
医院作为一个极其重要的服务部门,其发展应适应计算机技术的发展。
利用SQLServer2000技术设计了此医院管理数据库系统,以利用计算机完成病人入院后,对其基本信息、主治医师以及入住病房等信息进行数据库管理,有利于提高入院手续的办理速度以及对医院资源管理的效率。
同时可以落实责任,方便信息的集中化管理及应用。
1.3系统实现的目标
本系统主要实现以下功能:
1)实现药品类型及药品信息的管理;
2)实现药品的入库、出库管理;
3)实现科室、医生、病人的管理;
4)实现处方的登记管理;
5)实现收费管理;
6)当药品入库、出库时自动修改库存;
7)统计某段时间内,各科室的就诊人数和输入情况;
8)查询各种药品的库存总数;
2系统需求分析
2.1系统总体需求
(1)信息要求:
医院信息管理系统涉及医生信息、病人信息、药品信息、收费表信息、科室管理等多种数据信息。
(2)功能要求:
医院信息管理系统用户管理只有管理员,负责日常医院管理工作,比如药品的入库信息录入,修改医生信息,删除,添加等操作。
2.2系统整体功能介绍
根据题目的要求可以将医院信息管理系统分为以下功能:
功能模块图2-1
2.3系统元素、实体介绍
数据流图
2.3.1医生信息流程图
2.3.2病人信息流程图
2.3.3科室信息流程图
2.3.4药品信息流程图
2.3.5药品库存流程图
2.3.6处方表流程图
2.3.7收费员信息流程图
2.3.8配药单流程图
数据字典
医生信息表共有6段:
医生编号、科室编号、姓名、性别、年龄、电话
如下表:
字段名
数据类型
是否可以为空
主键
医生编号
int
不可为空
是
科室编号
int
不可为空
姓名
varchar(50)
性别
char
(2)
年龄
int
电话
char(11)
性别只能是‘男’或‘女’
电话只能是11位数字,且第一个数字为1
病人信息表共有10字段:
病人编号、病人姓名、病人性别、病人年龄、病人电话、医生编号、科室编号、住院号、医治时间、纳费时间。
如下表:
字段名
数据类型
是否可以为空
主键
病人编号
char(10)
不可为空
是
病人姓名
varchar(50)
病人性别
char
(2)
病人年龄
int
病人电话
char(11)
医生编号
int
不可为空
科室编号
int
住院号
nchar(10)
医治时间
datetime
纳费时间
datetime
处方表共6字段:
处方编号、医生编号、病人编号、药品数量、药品编号、处方时间。
如下表:
字段名
数据类型
是否可以为空
主键
处方编号
nchar(10)
不可为空
是
医生编号
int
不可为空
病人编号
nchar(10)
不可为空
药品数量
varchar(50)
药品编号
nchar(10)
处方时间
datetime
收费员信息表共有2字段:
收费员编号、收费员姓名。
如下表:
字段名
数据类型
是否可以为空
主键
收费员编号
nchar(10)
不可为空
是
收费员姓名
varchar(50)
科室信息表共有3字段:
科室编号、科室名称、科室位置。
如下表:
字段名
数据类型
是否可以为空
主键
科室编号
int
不可为空
是
科室名称
varchar(50)
科室位置
varchar(50)
药品信息表共有6字段:
药品编号、药品名称、生产地点、生产日期、治疗功效、库存数量。
如下表:
字段名
数据类型
是否可以为空
主键
药品编号
nchar(10)
不可为空
是
药品名称
varchar(50)
生产地点
varchar(50)
生产日期
datetime
治疗功效
varchar(50)
库存数量
nchar(10)
药品库存表共有5字段:
药品编号、药品名称、库存数量、入库单价、出库单价。
如下表:
字段名
数据类型
是否可以为空
主键
药品编号
nchar(10)
不可为空
是
药品名称
varchar(50)
库存数量
int
入库单价
money
出库单价
money
配药单表共7字段:
配药单号、收费员编号、病人编号、药品编号、收费金额、收费时间、处方编号。
如下表:
字段名
数据类型
是否可以为空
主键
配药单号
nchar(10)
不可为空
是
收费员编号
nchar(10)
不可为空
病人编号
nchar(10)
不可为空
药品编号
nchar(10)
收费金额
money
收费时间
datetime
处方编号
nchar(10)
2.4软硬件平台介绍
SQLServer2008
3概念结构设计
3.1概念设计
给出系统各实体之间关系的E-R图,并作相应的介绍,并给出系统整体结构功能。
3.1.1医生局部ER图
图3-1
3.1.2病人信息局部ER图
图3-2
3.1.3科室信息ER图
图3-3
3.1.4处方表管理局部ER图
图3-4
3.1.5收费员信息局部ER图
图3-5
3.1.6药品库存管理局部ER图
图3-6
3.1.7药品信息管理局部ER图
图3-7
3.1.8配药单管理局部ER图
图3-8
3.2系统总体功能
给出总体系统设计的介绍,并给出相应的E-R图。
图3-9
4逻辑设计
4.1逻辑设计的任务和目标
以上的概念设计阶段是独立于任何一种数据模型的,但是逻辑设计阶段就与选用的DBMS产品发生关系了,系统逻辑设计的任务就是将概念设计阶段设计好的基本E-R图转换为选用DBMS产品所支持的数据模型相符合的逻辑结构。
具体内容包括数据组织(将E-R图转换成关系模型、模型优化、数据库模式定义、用户子模式设计)、数据处理(画出系统功能模块图)两大任务。
4.2将E-R图转换为关系模型
在这个阶段里,该系统的目标就是把基本的E-R图转换成关系数据模型。
通过转换,得到的所需的数据表如下,
1.医生信息表(医生编号、科室编号、姓名、性别、年龄、电话)
2.病人信息表(病人编号、病人姓名、病人性别、病人年龄、病人电话、主治医生编号、科室编号、住院号、医治时间、纳费时间)
3.科室信息表(科室编号、科室名称、科室位置)
4.药品信息表(药品编号、药品名称、生产地点、生产日期、有效期、治疗功效、库存数量)
5.药品库存表(药品编号、药品名称、库存数量、入库单价、出库单价)
6.处方表(处方编号、医生编号、病人编号、药品数量、药品编号、处方时间)
7.收费员信息(收费员编号、收费员姓名)
8.配药单表(配药单号、收费员编号、病人编号、药品编号、收费金额、收费时间)
4.3数据关系图
如图4-1所示,在数据库中生成的关系图中
5物理结构设计
5.1数据库的物理结构
数据库创建:
图5-1
表的创建:
医生信息表
图5-2
收费员信息表
图5-3
病人信息表
图5-4
科室信息表
图5-5
处方表
图5-6
药品库存表
图5-7
药品信息表
图5-8
配药单表
图5-9
5.1创建触发器,当药品入库、出库时自动修改库存
createtriggerexport_medicineon药品种类表forinsert
as
begin
declare@tint,@numint,@num1int
set@t=(selectinserted.药品编号frominserted)
select@num=处方表.配药数量
from处方表
select@num1=药品库存表.库存数量
from药品库存表
if(@num1>=@num)
begin
select@num1=@num1-@num
from处方表,药品库存表
where处方表.药品编号=药品库存表.药品编号and处方表.药品编号=@t
end
else
begin
print'配药数量已超过库存数量!
'
rollbacktransaction
end
update药品库存
set库存数量=@num1
where药品编号=@t;
end
5.2创建存储过程统计某段时间内,各科室的就诊人数和输入情况
ALTERprocedure[dbo].[各科室病人人数统计]
@time1datetime,@time2datetime
as
begin
select科室信息表.科室编号,科室信息表.科室名称,count(病人信息表.病人编号)as病人人数,@time1开始时间,@time2结束时间
fromdbo.科室信息表,dbo.病人信息表
where科室信息表.科室编号=病人信息表.科室编号and医治时间>=@time1and医治时间<=@time2
groupby科室信息表.科室编号,科室信息表.科室名称
end
5.3创建视图查询各种药品的库存总数
createview药品库存总数
as
select库存数量
from药品库存表
5.4建立完整性约束
altertable病人信息表
add
constraintcheck_病人性别check(病人性别in('男','女')),
constraintcheck_病人电话check(病人电话like('1[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'))
go
altertable医生信息表
add
constraintcheck_性别check(性别in('男','女')),
constraintcheck_电话check(电话like('1[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'))
6系统总结
本文详细论述了医院信息管理系统的设计与实现过程,基本实现了需求分析中的功能要求,进入系统之后,可以进行药品的入库信息录入,修改医生信息,删除,添加等操作,对于医院信息的管理起到了一定的帮助作用。
由于时间仓促以及开发者的水平有限,本系统还存在着一些缺点以及不足之处,系统的约束力和容错能力比较弱,而且可性行也不够强。
因此在系统的进一步开发实现以及扩展阶段,应该加强数据的完整性,多从安全性方面考虑设计,增强系统的扩展能力、容错能力以及系统的可行性。
因为这次课程设计时间有限,所以完成的功能也就很有限,但感觉收获很大,很有成就感。
7心得与体会
通过此次课程设计,使我更加扎实的掌握了有关数据库方面的知识,在设计过程中虽然遇到了一些问题,但经过一次又一次的思考,一遍又一遍的检查终于找出了原因所在,也暴露出了前期我在这方面的知识欠缺和经验不足。
实践出真知,通过亲自动手制作,使我们掌握的知识不再是纸上谈兵。