医院信息管理系统报告.docx
《医院信息管理系统报告.docx》由会员分享,可在线阅读,更多相关《医院信息管理系统报告.docx(20页珍藏版)》请在冰豆网上搜索。
医院信息管理系统报告
《数据库系统原理》课程设计任务书
1、题目:
某医院信息管理系统(药品库存、收费、医生病人等)
●实现药品类型及药品信息的管理;
●实现药品的入库、出库管理;
●实现科室、医生、病人的管理;
●实现处方的登记管理;
●实现收费管理;
●创建触发器,当药品入库、出库时自动修改库存;
●创建存储过程统计某段时间内,各科室的就诊人数和输入情况;
●创建视图查询各种药品的库存总数;
●建立数据库相关表之间的参照完整性约束。
2、需求分析
2.1需求分析
(1)信息要求:
医院信息管理系统涉及医生信息、病人信息、药品信息、收费表信息、科室管理等多种数据信息。
(2)功能要求:
医院信息管理系统用户管理只有管理员,负责日常医院管理工作,比如药品的入库信息录入,修改医生信息,删除,添加等操作。
医院信息管理系统具有以下功能:
医生信息管理:
包括医生信息的录入、修改、删除等功能。
病人信息管理:
包括病人信息的录入、查询等功能。
科室信息管理:
包括科室信息的录入、修改、删除等功能。
药品信息管理:
包括药品信息的录入、修改、删除等功能。
药品库存管理:
包括药品库存信息的录入、修改、查询等功能。
处方表管理:
包括医生开的处方表的录入、查询等功能。
配药单管理:
包括病人药品信息的录入、查询等功能。
收费员信息管理:
包括收费员信息的录入、修改、删除等功能。
药品类型管理:
包括药品类型信息的录入、修改、删除等功能。
药品种类管理:
包括药品种类的录入、修改、删除等功能。
2.2系统功能结构
根据题目的要求可以将医院信息管理系统分为以下功能:
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收费员信息流程图
2.3.9药品类型流程图
2.3.10药品种类流程图
3、概念结构设计
3.1局部E-R图
3.1.1医生信息管理局部E-R图
3.1.2病人信息管理局部E-R图
3.1.3科室信息管理局部E-R图
3.1.4药品信息管理局部E-R图
3.1.5药品库存管理局部E-R图
3.1.6处方表管理局部E-R图
3.1.7配药单管理局部E-R图
3.1.8收费员信息管理局部E-R图
2.3.9药品类型局部E-R图
2.3.10药品种类局部E-R图
3.2全局的E-R图
3.4数据字典
3.4.1医生信息表共有6段:
医生编号、姓名、性别、年龄、电话
科室编号,如下表:
医生信息表
字段名
数据类型
是否可以为空
主键
外键
医生编号
char(5)
不可为空
是
姓名
varchar(5)
性别
char
(2)
年龄
varchar(3)
电话
char(11)
科室编号
char(10)
性别只能是‘男’或‘女’
电话只能是11位数字,且第一个数字为1
3.4.2病人信息表共有10字段:
病人编号、病人姓名、病人性别、病人年龄、病人电话、科室编号、身份证号码、科室编号、医治时间、备注、纳费时间。
如下表:
病人信息表
字段名
数据类型
是否可以为空
主键
外键
病人编号
char(10)
不可为空
是
病人姓名
varchar(6)
病人性别
variable
(2)
病人年龄
varchar(10)
病人电话
char(11)
身份证号码
char(18)
1、月球是地球的卫星,月球围绕着地球运动,运动的方向是逆时针方向。
4、填埋场在填满垃圾以后,可以在上面修建公园、体育场、但是不能用来建筑房屋和种植庄稼。
14、在显微镜下观察物体有一定的要求。
物体必须制成玻片标本,才能在显微镜下观察它的精细结构。
2、在加热的过程中,蜡烛发生了什么变化?
(P29)科室编号
7、硫酸铜溶液与铁钉的反应属于化学反应。
硫酸铜溶液的颜色是蓝色,将铁钉浸入硫酸铜溶液中,我们发现铁钉变红了。
char(10)
是
8、地球自转一周的时间是一天;地球公转一周的时间是一年;月球公转一周的时间是农历一个月。
医治时间
11、显微镜的发明,是人类认识世界的一大飞跃,把有类带入了一个崭新的微观世界。
为了看到更小的物体,人们又研制出了电子显微镜和扫描隧道显微镜。
电子显微镜可把物体放大到200万倍。
atetime
第二单元物质的变化
备注
varchar(20)
8、晶体的形状多种多样,但都很有规则。
有的是立方体,有的像金字塔,有的像一簇簇的针……有的晶体较大,肉眼可见,有的较小,要在放大镜或显微镜下才能看见。
答:
如蚂蚁、蝗虫、蚕蛾、蚜虫、蟋蟀、蝉、蝴蝶、蜜蜂、七星瓢虫等。
纳费时间
datetime
3.4.3科室信息表共有3字段:
科室编号、科室名称、科室位置。
如下表:
科室信息表
字段名
数据类型
是否可以为空
主键
外键
科室编号
char(10)
不可为空
是
科室名称
varchar(10)
科室位置
varchar(20)
3.4.4药品信息表共有8字段:
药品编号、收费员编号、生产地点、生产日期、有效期、治疗功效、库存数量、备注。
如下表:
药品信息表
字段名
数据类型
是否可以为空
主键
外键
药品编号
char(20)
不可为空
是
收费员编号
char(10)
是
生产地点
varchar(20)
生产日期
datetime
有效期
datetime
治疗功效
varchar(20)
库存数量
varchar(10)
备注
varchar(20)
3.4.5药品库存表共有6字段:
药品编号、收费员编号、名称、库存数量、入库单价、出库单价。
如下表:
药品库存表
字段名
数据类型
是否可以为空
主键
外键
药品编号
char(20)
不可为空
是
收费员编号
char(10)
是
名称
varchar(10)
库存数量
varchar(10)
入库单价
varchar(12)
出库单价
varchar(12)
3.4.6处方表共5字段:
医生编号、病人编号、药品数量、药品编号、处方时间。
如下表:
处方表
字段名
数据类型
是否可以为空
主键
外键
医生编号
char(5)
不可为空
是
病人编号
char(10)
不可为空
是
药品数量
varchar(10)
药品编号
char(20)
是
处方时间
varchar(10)
3.4.7配药单表共5字段:
收费员编号、病人编号、药品编号、收费金额、收费时间。
如下表:
配药单表
字段名
数据类型
是否可以为空
主键
外键
收费员编号
char(10)
不可为空
是
病人编号
char(10)
不可为空
是
药品编号
char(20)
是
收费金额
money
收费时间
datetime
3.4.8收费员信息表共有2字段:
收费员编号、收费员姓名。
如下表:
收费员信息表
字段名
数据类型
是否可以为空
主键
外键
收费员编号
char(10)
不可为空
是
收费员姓名
varchar(10)
3.4.9药品种类表共有3字段:
药品编号、名称、配药数量。
如下表:
药品种类表
字段名
数据类型
是否可以为空
主键
外键
药品编号
char(20)
不可为空
是
名称
varchar(10)
配药数量
varchar(10)
3.4.10药品种类表共有3字段:
药品编号、名称、配药数量。
如下表:
收费员信息表
字段名
数据类型
是否可以为空
主键
外键
药品编号
char(10)
不可为空
是
类型名
varchar(10)
库存位置
varchar(20)
4、逻辑结构设计
在这个阶段里,该系统的目标就是把基本的E-R图转换成关系数据模型。
通过转换,得到的所需的数据表如下,
1.医生信息表(医生编号、科室编号、姓名、性别、年龄、电话)
2.病人信息表(病人编号、收费员编号、医生编号、配药单编号、科室编号、病人姓名、病人性别、病人年龄、病人电话、身份证号码、医治时间、备注、纳费时间)
3.科室信息表(科室编号、科室名称、科室位置)
4.药品信息表(药品编号、类型编号、名称、生产地点、生产日期、有效期、治疗功效、库存数量、备注)
5.药品库存表(药品编号、名称、库存数量、入库单价、出库单价)
6.处方表(处方编号、医生编号、病人编号、药品数量、药品编号、处方时间)
7.配药单表(配药单、收费员编号、病人编号、药品编号、收费金额、收费时间)
8.收费员信息(收费员编号、收费员姓名)
9.药品类型:
(药品编号、类型名、库存位置)
10.药品种类:
(药品编号、配药单编号、处方编号、名称、配药数量)
5、物理结构
这个阶段的任务就是根据逻辑结构设计选取一个最合适应用要求的物理结构的过程,就是数据库的物理结构设计:
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创建存储过程统计某段时间内,各科室的就诊人数和输入情况
createprocedurenum_count
@time1datetime,@time2datetime
as
begin
select科室信息表.科室编号,科室信息表.科室名称,count(病人信息表.病人编号)as病人人数,@time1开始时间,@time2结束时间
from科室,病人
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]')),
constraintcheck_身份证号码check(身份证号码like('[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][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]'))
go