资源描述
(6)某医院信息管理系统(药品、库存、收费、医生病人等)
l 实现药品类型及药品信息的管理;
l 实现药品的入库、出库管理;
l 实现科室、医生、病人的管理;
l 实现处方的登记管理;
l 实现收费管理;
l 创建触发器,当药品入库、出库时自动修改库存;
l 创建存储过程统计某段时间内,各科室的就诊人数和输入情况;
l 创建视图查询各种药品的库存总数;
l 建立数据库相关表之间的参照完整性约束。
数据库设计
一、需求分析
本案例开发得主要目的是使某医院的管理流程化,通过计算机数据库来记录和支持药品以及就诊病人的管理。医院能够通过查询获得医院的信息,包括所有药品的存货信息和使用情况,病人的就诊记录以及药品领取记录等。具体需求如下:
病人:病人医院看病,并在就诊的医院取药。
医生:医院医生给病人看病,并根据病人病情开处方笺。
药房:医院都有药房,旨在为病人发药;当药房某种药品不够时,该药房首先向医院的药库申请调药。
药库:医院都有一个药库,旨在为药房发药。
调药:当医院发现自己的药库中有一种药已经用完的时候,能够通过该数据库系统查询到医院所有药品的信息,包括存货数量和药品日期等,使得医院在自己的药房中某种药品使用完能够迅速获知药库关于该药品的情况,从而实现调药,即可以从药库向药房中征调药品。
二、系统功能划分医院管理系统
门诊医生
药库管理
药房管理
药品出库
药品入库
工作量统计
诊断系统
处方发药
门诊药房管理系统
药品入库
对药房药品进行入库处理,主要是如下入库方式:
领药入库:根据药库出库单,自动生成药房入库单,同时修改库存。
处方发药
对已经付费的处方(包括门诊处方和住院处方)进行发药,发药(设置处方状态)同时减少药房相应药品的库存。
药库管理系统
对药库药品进行出库处理,主要是如下出库方式:
药房领药出库:根据药房的领药单自动生成药库出库单,同时修改库存。
二、处理对象
病人信息:病历号、姓名、性别、身份证号、所属科室, 、症状、主治医生、病房号、病床号、入院时间、住址、备注
部门信息:部门编号、部门名称、部门主任、部门副主任
员工信息:员工编号、部门编号、姓名、性别、身份证号、职务、籍贯、学历、民族、家庭住址、联系电话
药库药品信息:药品编号、药品名称、规格、单位、有效期、进价、数量、当前库存
药房药品信息:药房编号、药品编号、库存、有效期、备注
收费信息: 收据编号、收费人编号、收费时间、总金额、病历号
处方信息:处方编号、病历号、医生编号、药品编号、收费人编号、取药员编号、开药时间、领药时间、用法、每日次数、每次剂量
药品出入库信息:表单号、表单名称、表单类型、药品编号、数量、生成日期、执行日期、制定人、执行人、部门编号、流向地点
三、概念设计
1.局部E-R图
1.1部门属性
部门副主任
部门主任
部门编号
部门
部门名称
1.2病人属性
病人
病历号
姓名
性别
身份证号
所属科室
症状
主治医生
病房号
病床号
入院时间
住址
备注
1.3医院人员属性
员工
性别
姓名
部门编号
身份证号
籍贯
学历
民族
家庭住址
员工编号
联系电话
职务
1.4药库药品属性
药库库
规格
单位
有效期
进价
药品名称
药品编号
数量
当前库存
1.5收费管理属性
收费
收费人编号
收费时间
总金额
病历号
收据编号
1.6药房药品属性
药房
规格
有效期
单位
进价
数量
药品名称
药品编号
当前库存
1.7处方属性
收费人编号
领药时间
药品编号
医生编号
用法
每次剂量
病历号
每日次数
取药员编号
开药时间
处方编号
处方
1.8药品出入库表属性
出入库表单
制定人
表单名称
执行日期
生成日期
表单类型
执行人
表单号
部门编号
流向地点
药品编号
数量
2.门诊管理E-R图
病人
药房
处方
部门
医生
医院
收费人员
收据
属于
属于
领药
看病
开收据
诊断
属于
收费
1
N
N
1
N
1
1
N
N
1
1
N
N
1
N
1
3.药房库房E-R图
药房
药品
药库
出入库表单
医院
拥有
拥有
属于
拥有
拥有
属于
1
N
1
N
1
N
N
1
1
N
1
N
4.系统总E-R图
N
药房
药品
药库
医生
出入库表单
病人
收据
部门
收费人员
医院
属于
拥有
领药
属于
拥有
属于
诊断
属于
属于
拥有
拥有
收费
开收据
1
1
N
1
N
N
N
1
1
N
1
N
1
N
1
N
N
1
N
1
N
1
1
N
1
四、建数据库
create database 医院信息管理
use 医院信息管理
Go
create table 部门信息表(
部门编号 varchar(10)primary key,
部门名称 char(20)unique not null,
部门主任 char(10)not null,
部门副主任 char(10)not null
)
create table 病人信息表(
病历号 varchar(10)primary key,
姓名 char(10)not null,
性别 char(2)check(性别='男' or 性别='女')not null,
身份证号 varchar(18)not null,
所属科室 char(20)references 部门信息表(部门名称),
症状 char(50)not null,
主治医生 char(10)not null,
病房号 char(4),
病床号 char(5),
入院时间 datetime,
住址 char(50),
备注 char(100)
)
create table 员工信息表(
员工编号 varchar(10)primary key,
部门编号 varchar(10)references 部门信息表(部门编号),
姓名 char(10)not null,
性别 char(2)check(性别='男' or 性别='女')not null,
身份证号 varchar(18)unique not null,
职务 char(10)not null,
籍贯 char(10),
学历 char(10),
民族 char(20)default '汉族' not null,
家庭住址 char(50),
联系电话 char(11)not null
)
create table 药库药品信息表(
药品编号 varchar(10)primary key,
药品名称 char(50)not null,
规格 char(5)not null,
单位 char(5)not null,
有效期 datetime not null,
进价 money not null,
数量 int not null,
当前库存 int not null,
check(数量>当前库存)
)
create table 药房药品信息表(
药房编号 varchar(10)primary key,
药品编号 varchar(10)references 药库药品信息表(药品编号),
库存 int not null,
有效期 datetime not null,
备注 char(50)
)
create table 收费表(
收据编号 varchar(10)primary key,
收费人编号 varchar(10)references 员工信息表(员工编号),
收费时间 datetime not null,
总金额 money not null,
病历号 varchar(10)references 病人信息表(病历号)
)
create table 处方表(
处方编号 varchar(10)primary key,
病历号 varchar(10)references 病人信息表(病历号),
医生编号 varchar(10)references 员工信息表(员工编号),
药品编号 varchar(10)references 药库药品信息表(药品编号),
收费人编号 varchar(10)references 员工信息表(员工编号),
取药员编号 varchar(10)references 员工信息表(员工编号),
开药时间 datetime not null,
领药时间 datetime not null,
用法 char(50)not null,
每日次数 char(5)not null,
每次剂量 char(10)not null
)
create table 药品出入库信息表(
表单号 varchar(10)primary key,
表单名称 char(30)not null,
表单类型 char(30)not null,
药品编号 varchar(10)references 药库药品信息表(药品编号),
数量 int not null,
生成日期 datetime not null,
执行日期 datetime not null,
制定人 varchar(10)references 员工信息表(员工编号),
执行人 varchar(10)references 员工信息表(员工编号),
部门编号 varchar(10) references 部门信息表(部门编号),
流向地点 char(50)not null
)
五、创建存储过程
创建存储过程统计某段时间内,各科室的就诊人数和输入情况;
create proc 某时间段就诊情况
@开始时间 datetime,@结束时间 datetime
AS
select 部门编号,部门名称,病人信息表.病历号,病人信息表.姓名,开药时间 from 部门信息表,病人信息表,处方表 where 开药时间 between @开始时间 and @结束时间
go
execute 某时间段就诊情况
六、创建视图过程
创建视图查询各种药品的库存总数
create view v库存
as select 药库药品信息表.药品编号,药品名称,数量,当前库存,库存 from 药库药品信息表,药房药品信息表 where 药库药品信息表.药品编号=药房药品信息表.药品编号
展开阅读全文