医院信息管理系统设计
———————————————————————————————— 作者: ———————————————————————————————— 日期:
1
(6)某医院信息管理系统(药品、库存、收费、医生病人等) 实现药品类型及药品信息的管理; 实现药品的入库、出库管理; 实现科室、医生、病人的管理; 实现处方的登记管理; 实现收费管理;
创建触发器,当药品入库、出库时自动修改库存;
创建存储过程统计某段时间内,各科室的就诊人数和输入情况; 创建视图查询各种药品的库存总数; 建立数据库相关表之间的参照完整性约束。
数据库设计
一、需求分析
本案例开发得主要目的是使某医院的管理流程化,通过计算机数据库来记录和支持药品以及就诊病人的管理。医院能够通过查询获得医院的信息,包括所有药品的存货信息和使用情况,病人的就诊记录以及药品领取记录等。具体需求如下: 病人:病人医院看病,并在就诊的医院取药。
医生:医院医生给病人看病,并根据病人病情开处方笺。 药房:医院都有药房,旨在为病人发药;当药房某种药品不够时,该药房首先向医院的药库申请调药。
药库:医院都有一个药库,旨在为药房发药。
调药:当医院发现自己的药库中有一种药已经用完的时候,能够通过该数据库系统查询到医院所有药品的信息,包括存货数量和药品日期等,使得医院在自己的药房中某种药品使用完能够迅速获知药库关于该药品的情况,从而实现调药,即可以从药库向药房中征调药品。
1
二、系统功能划分
医院管理系统 门诊医生 药房管理 药库管理 诊断系统 工作量统计 药品入库 处方发药 药品出库
门诊药房管理系统 药品入库
对药房药品进行入库处理,主要是如下入库方式:
领药入库:根据药库出库单,自动生成药房入库单,同时修改库存。 处方发药
对已经付费的处方(包括门诊处方和住院处方)进行发药,发药(设置处方状态)同时减少药房相应药品的库存。 药库管理系统
对药库药品进行出库处理,主要是如下出库方式:
药房领药出库:根据药房的领药单自动生成药库出库单,同时修改库存。
二、处理对象
病人信息:病历号、姓名、性别、身份证号、所属科室, 、症状、主治医生、病房号、病床号、入院时间、住址、备注
部门信息:部门编号、部门名称、部门主任、部门副主任
员工信息:员工编号、部门编号、姓名、性别、身份证号、职务、籍贯、学历、民族、家庭住址、联系电话
药库药品信息:药品编号、药品名称、规格、单位、有效期、进价、数
1
量、当前库存
药房药品信息:药房编号、药品编号、库存、有效期、备注 收费信息: 收据编号、收费人编号、收费时间、总金额、病历号 处方信息:处方编号、病历号、医生编号、药品编号、收费人编号、取药员编号、开药时间、领药时间、用法、每日次数、每次剂量 药品出入库信息:表单号、表单名称、表单类型、药品编号、数量、生成日期、执行日期、制定人、执行人、部门编号、流向地点
三、概念设计 1.局部E-R图
1.1部门属性
部门名称 部门编号 部门
部门主任 部门副主任 1.2病人属性
所属科室 身份证号 性别 姓名 病历号
备注 病人 住址 病床号 入院时间
症状 主治医生 病房号 1.3医院人员属性
性别 姓名 部门编号 员工 家庭住址 员工编号 联系电话
身份证号 职务 籍贯 学历 民族 1
1.4药库药品属性
规格 药品名称 药库药品编号 数量 当前库存
单位 有效期 进价 1.5收费管理属性
收费时间 收费人编号 收费 总金额 收据编号 病历号
1.6药房药品属性
规格 药品名称 药品编号 药房 单位 有效期 进价 当前库存
数量
1.7处方属性
每次剂量 病历号 用法 医生编号 每日次数 处方 取药员编号 药品编号 开药时间 处方编号 收费人编号 领药时间
1
1.8药品出入库表属性
执行日期 生成日期 制定人 药品编号 出入库表单 数量 执行人 表单名称 部门编号 表单号 流向地点
表单类型 2.门诊管理E-R图
收费人1 开收据 领药 1 N 药房 N 属于 1 1 收费 N 1 1 1 医生 N 1 属于 部门
诊断 N 处方 N 看病 N 病人 属于 医院 N 收据 3.药房库房E-R图
N 拥有 1 1 N 属于 1 药库 属于 1 医院 药品 拥有 N 1 拥有 药房 1 拥有 N 出入库表N N
1
4.系统总E-R图
N 拥1 药库 1 N N 拥出入库表单 N 拥N 药品 拥1 N 收据 N N 病人 N 开收诊1 医生 1 N N 领1 药房 1 N 属1 属1 1 医院 属收1 属N 收费人员 属1 1 部门
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 药房药品信息表(
1
药房编号 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 某时间段就诊情况
六、创建视图过程
创建视图查询各种药品的库存总数
1
create view v库存
as select 药库药品信息表.药品编号,药品名称,数量,当前库存,库存 from 药库药品信息表,药房药品信息表 where 药库药品信息表.药品编号=药房药品信息表.药品编号
1
因篇幅问题不能全部显示,请点此查看更多更全内容