1、1目录1、问题描述.41.1 背景 41.2 题目及其要求. .42、需求分析.42.1 需求分析42.2 系统功能结构52.3 数据流程图52.3.1 医生信息流程图 52.3.2 病人信息流程图 .52.3.3 科室信息流程图. . .62.3.4 药品信息流程图. . .62.3.5 药品库存流程图. . .62.3.6 处方表流程图 . . 62.3.7 配药单流程图 72.3.8 收费员信息流程图 72.3.9 药品类型流程图 72.3.10 药品种类流程图. 73、概念结构设计.73.1 局部 E-R 图 73.1.1 医生信息管理局部 E-R 图. .83.1.2 病人信息管理局
2、部 E-R 图 83.1.3 科室信息管理局部 E-R 图. .83.1.4 药品信息管理局部 E-R 图. .923.1.5 药品库存管理局部 E-R 图. .93.1.6 处方表管理局部 E-R 图. . .93.1.7 配药单管理局部 E-R 图. 103.1.8 收费员信息管理局部 E-R 图. 103.3.9 药品类型局部 E-R 图. 103.3.10 药品种类局部 E-R 图.103.2 全局的 E-R 图. 113.3 使用 PowerDesigner 软件绘制概念模型. .113.4 数据字典. .113.4.1 医生信息表. 123.4.2 病人信息表. 123.4.3 科
3、室信息表. 133.4.4 药品信息表. 133.4.5 药品库存表. 133.4.6 处方表. .143.4.7 配药单表 .143.4.8 收费员信息表 .143.4.9 药品种类表. 143.4.10 药品种类表. .143.5 使用 PowerDesigner 软件转化成逻辑模型.154、逻辑结构设计155、物理结构 155.1 建表 1535.2 建立完整性约束 .285.3 创建触发器,当药品入库、出库时自动修改库存.285.4 创建存储过程统计某段时间内,各科室的就诊人数和输入情况.305.5 创建视图查询各种药品的库存总数 .306、数据库的实施和维护306.1 数据库的实施.
4、 306.2 数据库的维护. 347、数据库安全性设计 348、结论3541、问题描述1.1 背景医院是现代化综合性机构,集医疗、教学、科研为一体,随着医院管理水平的提高和患者对医疗产品的要求的提高,医院管理信息系统已不能局限于资金和物资的核算和管理,而应该向以患者为核心,为患者提供优良的医疗服务为中心,着重临床医疗信息和提高医疗质量的方向转变,并为教学、科研提供良好的平台。人类社会进入二十一世纪,医院作为一个特殊服务行业,其发展应适应于市场经济的发展。目前,我国的医疗体制处于改革阶段,需要医疗市场的进一步规范化。医院的就诊量大,流动性强,纸质处方不方便就诊信息的存储和复诊参考,大量的纸质处方
5、不利于上层管理者对信息的查询、统计和分析,不利于管理。同时,药房管理使用人工的方式,工作效率低,容易出现人为因素的错误,特别是药品的入库、销售、库存统计等方面。人工方式不利于过期药品及时发现处理、短缺药品及时发现并申购,不利于药品使用情况和库存情况的分析统计,容易造成部分药品积压。因此,开发一个高校校医院管理系统具有十分重要的意义和较大的实用价值。1.2 题目及其要求题目:某医院信息管理系统(药品库存、收费、医生病人等) 实现药品类型及药品信息的管理; 实现药品的入库、出库管理; 实现科室、医生、病人的管理; 实现处方的登记管理; 实现收费管理; 创建触发器,当药品入库、出库时自动修改库存;
6、创建存储过程统计某段时间内,各科室的就诊人数和输入情况; 创建视图查询各种药品的库存总数; 建立数据库相关表之间的参照完整性约束。2、需求分析2.1 需求分析(1)信息要求:医院信息管理系统涉及医生信息、病人信息、药品信息、收费表信息、科室管理等多种数据信息。(2)功能要求:医院信息管理系统用户管理只有管理员,负责日常医院管理工作,比如药品的入库信息录入,修改医生信息,删除,添加等操作。医院信息管理系统具有以下功能:医生信息管理:包括医生信息的录入、修改、删除等功能。病人信息管理:包括病人信息的录入、查询等功能。科室信息管理:包括科室信息的录入、修改、删除等功能。药品信息管理:包括药品信息的录
7、入、修改、删除等功能。药品库存管理:包括药品库存信息的录入、修改、查询等功能。处方表管理:包括医生开的处方表的录入、查询等功能。配药单管理:包括病人药品信息的录入、查询等功能。5收费员信息管理:包括收费员信息的录入、修改、删除等功能。药品类型管理:包括药品类型信息的录入、修改、删除等功能。药品种类管理:包括药品种类的录入、修改、删除等功能。2.2 系统功能结构根据题目的要求可以将医院信息管理系统分为以下功能:医院信息管理系统医生信息管理病人信息管理科室信息管理收费员信息管理药品信息管理处方信息管理药品库存管理配药单管理药品种类管理药品类型管理2.3 数据流程图2.3.1 医生信息流程图系统管理
8、人员医生信息查询医生信息删除医生信息修改医生信息录入医生信息表查询信息修改信息录入信息删除信息2.3.2 病人信息流程图系统管理人员病人信息查询病人信息更新病人信息录入病人信息表查询信息更新信息录入信息62.3.3 科室信息流程图系统管理人员科室信息查询科室信息删除科室信息修改科室信息录入科室信息表查询信息修改信息录入信息删除信息2.3.4 药品信息流程图系统管理人员药品信息查询药品信息删除药品信息修改药品信息录入药品信息表查询信息修改信息录入信息删除信息2.3.5 药品库存流程图系统管理人员药品库存查询药品库存删除药品库存修改药品库存录入药品库存表查询信息修改信息录入信息删除信息2.3.6
9、处方表流程图系统管理人员 处方查询 处方表查询信息72.3.7 配药单流程图系统管理人员配药单查询药品信息录入配药单查询信息录入信息2.3.8 收费员信息流程图系统管理人员收费员查询收费员信息录入收费员信息表查询信息录入信息收费员信息删除查询删除信息2.3.9 药品类型流程图系统管理人员药品类型查询药品类型删除药品类型修改药品类型录入药品类型表信息查询信息修改信息录入信息删除信息2.3.10 药品种类流程图8系统管理人员药品种类查询药品种类删除药品种类修改药品类型录入药品种类表信息查询信息修改信息录入信药品种类息删除信息3、概念结构设计3.1 局部 E-R 图3.1.1 医生信息管理局部 E-
10、R 图医生电话年龄 性别姓名科室编号医生编号3.1.2 病人信息管理局部 E-R 图病人姓名科室编号 电话年龄医治时间病人编号性别身份证号码缴费时间3.1.3 科室信息管理局部 E-R 图科室科室位置科室名称科室编号93.1.4 药品信息管理局部 E-R 图药品备注有效期生产地点治疗功效药品编号生产日期库存数量3.1.5 药品库存管理局部 E-R 图药品库存入库单价 库存数量名称出库单价药品编号3.1.6 处方表管理局部 E-R 图处方表病人编号处方时间收费员编号医生编号药品数量处方编号103.1.7 配药单管理局部 E-R 图配药单 病人编号收费金额 药品编号收费员编号收费时间配药编号3.1
11、.8 收费员信息管理局部 E-R 图收费员姓名收费员编号2.3.9 药品类型局部 E-R 图药品种类配药数量药品编号名称2.3.10 药品种类局部 E-R 图药品类型库存位置类型编号类型名113.2 全局的 E-R 图12医生电话年龄性别姓名科室编号医生编号属于 科室科室名称科室位置科室编号1m病人姓名科室编号电话年龄医治时间病人编号性别身份证号码缴费时间处方表病人编号处方时间收费员编号医生编号药品数量配药单病人编号收费金额药品编号收费员编号收费时间领取处方m1开处方医治1m11领取配药单11收费员姓名收费员编号药品库存入库单价库存数量名称出库单价药品编号 药品信息备注有效期生产地点治疗功效药
12、品编号生产日期库存数量药品类型 药品编号类型名纳费包括 1m11m查看1m查看库存m1配药11属于m1库存位置药品种类配药数量药品编号名称1包括21配药编号处方编号3.3 使用 PowerDesigner 软件绘制概念模型3.4 数据字典3.4.1 医生信息表共有 6 段:医生编号、姓名、性别、年龄、电话科室编号,如下表:医生信息表字段名 数据类型 是否可以为空 Is PK Is FK医生编号 varchar(5) NOT NULL Yes No姓名 varchar(5) NULL No No性别 char(2) NULL No No年龄 varchar(3) NULL No No电话 cha
13、r(11) NULL No No科室编号 varchar(10) NULL No No性别只能是男或女电话只能是 11 位数字,且第一个数字为 13.4.2 病人信息表共有 10 字段:病人编号、病人姓名、病人性别、病人年龄、病人电话、科室编号、身份证号码、科室编号、医治时间、备注、纳费时间。如下表:病人信息表字段名 数据类型 是否可以为空 Is PK Is FK病人编号 varchar(10) NOT NULL Yes No病人姓名 varchar(6) NULL No No病人性别 Variable (2) NULL No No13病人年龄 varchar(10) NULL No No病人
14、电话 char(11) NULL No No身份证号码 char(18) NULL No No科室编号 varchar(10) NULL No Yes医治时间 atetime NULL No No备注 varchar(20) NULL No No纳费时间 datetime NULL No No性别只能是男或女电话只能是 11 位数字,且第一个数字为 1身份证只能是 18 位数字3.4.3 科室信息表共有 3 字段:科室编号、科室名称、科室位置。如下表:科室信息表字段名 数据类型 是否可以为空 Is PK Is FK科室编号 varchar(10) NOT NULL Yes No科室名称 var
15、char(10) NULL No No科室位置 varchar(20) NULL No No3.4.4 药品信息表共有 8 字段:药品编号、收费员编号、生产地点、生产日期、有效期、治疗功效、库存数量、备注。如下表:药品信息表 字段名 数据类型 是否可以为空 Is PK Is FK药品编号 varchar(20) NOT NULL Yes No收费员编号 varchar(10) NULL No Yes生产地点 varchar(20) NULL No No生产日期 datetime NULL No No有效期 datetime NULL No No治疗功效 varchar(20) NULL No
16、No库存数量 varchar(10) NULL No No备注 varchar(20) NULL No No3.4.5 药品库存表共有 6 字段:药品编号、收费员编号、名称、库存数量、入库单价、出库单价。如下表:药品库存表 字段名 数据类型 是否可以为空 Is PK Is FK药品编号 varchar(20) NOT NULL Yes No收费员编号 varchar(10) NULL No Yes名称 varchar(10) NULL No No库存数量 varchar(10) NULL No No入库单价 varchar(12) NULL No No出库单价 varchar(12) NULL
17、 No No143.4.6 处方表共 5 字段:医生编号、病人编号、药品数量、药品编号、处方时间。如下表:处方表 字段名 数据类型 是否可以为空 Is PK Is FK医生编号 varchar(5) NOT NULL No Yes病人编号 varchar(10) NOT NULL No Yes药品数量 varchar(10) NULL No No药品编号 varchar(20) NULL No Yes处方时间 varchar(10) NULL No No3.4.7 配药单表共 5 字段:收费员编号、病人编号、药品编号、收费金额、收费时间。如下表:配药单表字段名 数据类型 是否可以为空 Is P
18、K Is FK收费员编号 varchar(10) NOT NULL No Yes病人编号 varchar(10) NOT NULL No Yes药品编号 varchar(20) NULL No Yes收费金额 money NULL No No收费时间 datetime NULL No No3.4.8 收费员信息表共有 2 字段:收费员编号、收费员姓名。如下表:收费员信息表字段名 数据类型 是否可以为空 Is PK Is FK收费员编号 varchar(10) NOT NULL Yes No收费员姓名 varchar(10) NULL No No3.4.9 药品种类表共有 3 字段:药品编号、名
19、称、配药数量。如下表:收费员信息表字段名 数据类型 是否可以为空 Is PK Is FK药品编号 varchar(20) NOT NULL Yes No名称 varchar(10) NULL No No配药数量 varchar(10) NULL No No3.4.10 药品种类表共有 3 字段:药品编号、名称、配药数量。如下表:收费员信息表字段名 数据类型 是否可以为空 Is PK Is FK药品编号 varchar(10) NOT NULL Yes No类型名 varchar(10) NULL No No库存位置 varchar (20) NULL No No153.5 使用 PowerDe
20、signer 软件转化成逻辑模型4、逻辑结构设计在这个阶段里,该系统的目标就是把基本的 E-R 图转换成关系数据模型。通过转换,得到的所需的数据表如下,其中,有下划线红色的属性为主键。1.医生信息表(医生编号、科室编号、姓名、性别、年龄、电话)2.病人信息表(病人编号、收费员编号、医生编号、配药单编号、科室编号、病人姓名、病人性别、病人年龄、病人电话、身份证号码、医治时间、备注、纳费时间)3.科室信息表(科室编号、科室名称、科室位置)4.药品信息表(药品编号、类型编号、名称、生产地点、生产日期、有效期、治疗功效、库存数量、备注)5.药品库存表(药品编号、名称、库存数量、入库单价、出库单价)6.
21、处方表(处方编号、医生编号、病人编号、药品数量、药品编号、处方时间)7.配药单表(配药单、收费员编号、病人编号、药品编号、收费金额、收费时间)8.收费员信息(收费员编号、收费员姓名)9.药品类型: (药品编号、类型名、库存位置)10.药品种类:(药品编号、配药单编号、处方编号、名称、配药数量)5、物理结构这个阶段的任务就是根据逻辑结构设计选取一个最合适应用要求的物理结构的过程,就是数据库的物理结构设计:5.1 建表/*=*/* DBMS name: Microsoft SQL Server 2005 */* Created on: 2012-6-24 20:04:15 */16/*=*/if
22、exists (select 1from sysindexeswhere id = object_id(医生 )and name = 属于_FKand indid 0and indid 0and indid 0and indid 0and indid 0and indid 0and indid 0and indid 0and indid 0and indid 0and indid 0and indid 0and indid 0and indid 0and indid 0and indid 021and indid 0and indid 0and indid =num)beginselect n
23、um1=num1-numfrom 药品种类,药品库存where 药品种类 .药品编号= 药品库存. 药品编号 and 药品种类.药品编号=tendelsebeginprint配药数量已超过库存数量!rollback transaction end update 药品库存set 库存数量=num1where 药品编号 =t;end-更新配药数量create trigger update_medicine on 药品种类for updateasif update(配药数量 )begindeclare t int,y int,numberA int,x int,z intset t=(select
24、deleted.药品编号from deleted)set x=(select deleted.配药数量from deleted)set y=(select inserted.配药数量from inserted)set numberA=(select 库存数量 from 药品库存where 药品库存.药品编号=t )if(y=y)beginselect z=x-yfrom deleted,insertedset numberA=numberA+zend30else beginselect z=y-xfrom deleted,insertedset numberA=numberA-zendende
25、lsebeginprint配药数量已超过库存数量!rollback transaction end update 药品库存set 库存数量=numberAwhere 药品编号 =t;end5.4 创建存储过程统计某段时间内,各科室的就诊人数和输入情况create procedure num_counttime1 datetime,time2 datetimeasbeginselect 科室.科室编号,科室.科室名称, count(病人. 病人编号) as 病人人数,time1 开始时间,time2 结束时间from 科室 ,病人where 科室.科室编号= 病人. 科室编号and 医治时间=time1 and 医治时间= time2group by 科室 .科室编号,科室 .科室名称endexec num_count 2012-6-12 0:00:00,2012-6-16 0:00:005.5 创建视图查询各种药品的库存总数-创建视图查询各种药品的库存总数create view 药品库存总数()asselect 库存数量from 药品库存6、数据库的实施和维护6.1 数据库的实施:由原始的数据可以得到编码调试为:select *from 病人