药品库房管理系统总报告书.docx

上传人:b****3 文档编号:27226209 上传时间:2023-06-28 格式:DOCX 页数:52 大小:7.64MB
下载 相关 举报
药品库房管理系统总报告书.docx_第1页
第1页 / 共52页
药品库房管理系统总报告书.docx_第2页
第2页 / 共52页
药品库房管理系统总报告书.docx_第3页
第3页 / 共52页
药品库房管理系统总报告书.docx_第4页
第4页 / 共52页
药品库房管理系统总报告书.docx_第5页
第5页 / 共52页
点击查看更多>>
下载资源
资源描述

药品库房管理系统总报告书.docx

《药品库房管理系统总报告书.docx》由会员分享,可在线阅读,更多相关《药品库房管理系统总报告书.docx(52页珍藏版)》请在冰豆网上搜索。

药品库房管理系统总报告书.docx

药品库房管理系统总报告书

《药品库房管理系统报告书》

 

学院管理学院

专业电子商务

年级班别2013级1班

指导教师胡凤

学生姓名陈昌桐陈宏武吴明斌

吴孙德钟嘉成

 

2015年6月

一、需求分析

1、药品入库管理

药品库房从厂家进货,填写入库单,录入药品信息

2、药品库存管理

(1)库存药品管理

能对药品进行调价,并分别填写调价单;一种药品可能有多种规格,应分别存放,大的包装可以分装成小的规格,填写分装单;能对药品进行各项查询,包括现有入库查询、出库查询、退药查询、调价查询、报损查询、调拨查询等;还能对药品进行有效期管理,查询并统计过期药品的品种数和金额。

(2)药品盘点管理

定期盘点药品库存量,并能校对账目及库存的平衡关系,反映盘亏或盘盈的情况。

某种药品库存量=入库总量-调拨总量-销售总量-退药总量量-科室领药总数量-报损总数量;账目的金额=销售数量*(进货价-销售价)-报损量*进货价。

3、药品出库管理

药品出库主要有几个去向:

药品库房把药品发放到各个药房,填写调拨单;药品报损,填写报损单;药品库房把药品卖出,填写销售单;药品库房退货给生产厂家,填写退药单;药品库房接收科室的领药单,从而把药品发给科室。

二、概念结构设计

根据概念设计的步骤,先产生局部E-R图,然后再将局部E-R图合并成初步E-R图,最后进行优化,得到全局E-R图。

1.局部E-R图

根据药品库房管理系统的业务模块进行划分和设计局部E-R图,根据需求抽取实体、实体的属性和实体之间的联系。

(1)药品入库管理E-R图

在药品入库管理业务模块中,包括4个实体:

生产厂家、药品库房、药品、入库单。

其中,药品是由生产厂家生产的,他们之间是多对一的关系,同一个生产厂家可以生产多种药品;药品库房和生产厂家存在一对多的关系,一个药品库房可以从多个生产厂家进货;药品库房与药品是一对多的关系,同一个药品库房可以存放多种不同的药品;药品库房与入库单是一对多的关系,药品库房从生产厂家进货,然后填写入库单。

(2)药品库存管理E-R图

在药品库存管理业务模块中,包括药品、调价单、分装单和盘点4个实体。

药品与调价单、药品与报损单、药品与分装单、药品与盘点都是一对多的关系。

(3)药品出库管理E-R图

在药品入库管理业务模块中,包括8个实体:

药品、药品库房、调拨单、报损单、出库单、退药单、领药单、生产厂家。

2.全局E-R图

将各个局部E-R图汇集成一个整体的E-R图,消除冗余和冲突,进行优化后产生全局E-R图。

3.检查CDM

在创建的CDM(概念数据模型)的过程中,必须遵循一些基本准则。

例如,每个实体的名称和代码必须唯一,每个实体至少包含一个属性,每个联系至少连接一个实体等。

由于系统的复杂性,很可能会在设计过程中违背了这些准则,这就有必要随时对CDM的正确性进行检查,包括检查包、域、数据项、实体、实体属性、联系和关联。

操作的方法:

打开CDM,选择ToolsCheckModel菜单项,根据系统给出的错误和警告信息进行修改。

三、逻辑结构设计

1.自动生成的物理数据模型(PDM)

下图是由概念数据模型生成的物理数据模型。

2.关系模式

要将所有关系模式规范化为3NF,该系统的关系模式有:

生产厂家(厂家编号,厂家名称,厂家地址)

药品(药品编号,厂家编号,药品名称,处方药标志,规格,批号,批次,生产日期,有效日期)

入库单(入库单号,药品编号,入库量,进货价,入库日期)

调价单(调价单号,药品编号,调价前的价格,调价后的价格,调价日期)

分装单(分装单号,药品编号,分装后的规格,分装日期)

盘点(盘点编号,药品编号,库存量,金额,盘点日期)

调拨单(调拨单号,药品编号,调拨数量,药房地址,调拨日期)

领药单(领药单号,药品编号,领药数量,领药科室,领药日期)

报损单(报损单号,药品编号,进货价,报损数量,报损原因,报损日期)

退药单(退药单号,药品编号,退药原因,退药数量,厂家编号,退药日期)

销售单(销售单号,药品编号,销售数量,进货价,销售价,销售日期)

经检验,以上的关系模式都符合3NF了

四、物理结构设计

表名

字段名

字段类型

关键字

约束说明

生产厂家

厂家编号

6个字符

前2位为英文大写字母CJ,后4位为数字字符

厂家名称

30个字符

厂家地址

30个字符

 

药品

药品编号

6个字符

前2位为英文大写字母YP,后4位为数字字符

厂家编号

参照生产厂家表的厂家编号

药品名称

30个字符

处方药标志

2个字符

值只能取‘是‘或’不是‘

药品类别

30个字符

规格

15个字符

批号

10个字符

唯一,不允许空值

批次

10个字符

生产日期

日期

唯一,不允许空值

有效日期

日期

唯一,不允许空值

 

入库单

入库单号

6个字符

前2位为英文大写字母RK,后4位为数字字符

药品编号

参照药品表的药品编号,不允许空值

入库量

整数

进货价

货币

大于0

入库日期

日期

默认为当前日期

 

调价单

调价单号

6个字符

前2位为英文大写字母TJ,后4位为数字字符

药品编号

参照药品表的药品编号,不允许空值

调价前的价格

货币

调价后的价格

货币

调价日期

日期

默认为当前日期

分装单

分装单号

6个字符

前2位为英文大写字母FZ,后4位为数字字符

药品编号

参照药品表的药品编号,不允许空值

分装后的规格

30个字符

分装日期

日期

默认为当前日期

 

盘点

盘点编号

6个字符

前2位为英文大写字母BD,后4位为数字字符

药品编号

参照药品表的药品编号,不允许空值

库存量

整数

默认空值

金额

货币

默认空值

盘点日期

日期

默认是当前日期

 

调拨单

调拨单号

6个字符

前2位为英文大写字母DB,后4位为数字字符

药品编号

参照药品表的药品编号,不允许空值

调拨数量

整数

药房地址

30个字符

调拨日期

日期

默认为当前日期

 

领药单

领药单号

6个字符

前2位为英文大写字母LY,后4位为数字字符

药品编号

参照药品表的药品编号,不允许空值

领药数量

整数

领药科室

30个字符

领药日期

日期

默认为当前日期

 

报损单

报损单号

6个字符

前2位为英文大写字母BS,后4位为数字字符

药品编号

参照药品表的药品编号,不允许空值

报损数量

整数

报损原因

50个字符

报损日期

日期

默认为当前日期

进货价

货币

大于0

 

退药单

退药单号

6个字符

前2位为英文大写字母TY,后4位为数字字符

药品编号

参照药品表的药品编号,不允许空值

退药数量

整数

退药原因

50个字符

厂家编号

参照生产厂家表的厂家编号,允许空值

退药日期

日期

默认为当前日期

 

销售单

销售单号

6个字符

前2位为英文大写字母XS,后4位为数字字符

药品编号

参照药品表的药品编号,不允许空值

销售数量

整数

大于或等于0,允许空值

销售价

货币

大于0,不允许空值

销售日期

日期

默认是当前日期

进货价

货币

大于0

五、数据库实施

1.创建数据库

创建数据库药品库房管理系统,代码和截图如下:

createdatabase药品库房管理系统

on

(name=yaopinkf,

filename='F:

\yaopinkf.mdf',

size=10,

maxsize=50,

filegrowth=5)

logon

(name=yaopinkf_log,

filename='F:

\yaopinkf.ldf',

size=5MB,

maxsize=25MB,

filegrowth=5MB)

2.创建数据库表文件

在创建表之前,先创建模式YPKF,代码和截图如下:

createschemaYPKF

依次创建各个表,代码和截图如下:

createtableYPKF.生产厂家

(厂家编号char(6)primarykeycheck(厂家编号like'CJ[0-9][0-9][0-9][0-9]'),

厂家名称char(30),

厂家地址char(30))

createtableYPKF.药品

(药品编号char(6)primarykeycheck(药品编号like'YP[0-9][0-9][0-9][0-9]'),

厂家编号char(6)nullconstraintfactoryforeignkeyreferencesYPKF.生产厂家(厂家编号)ondeletesetnull,

药品名称char(30),

处方药标志char

(2)check(处方药标志='是'or处方药标志='不是'),

药品类别char(30),

规格char(15),

批号char(10)uniquenotnull,

批次char(10),

生产日期datetimeuniquenotnull,

有效日期datetimeuniquenotnull)

createtableYPKF.入库单

(入库单号char(6)check(入库单号like'RK[0-9][0-9][0-9][0-9]'),

药品编号char(6)notnullconstraintdrug_1foreignkeyreferencesYPKF.药品(药品编号),

入库量int,

进货价moneycheck(进货价>0),

入库日期datetimedefaultgetdate(),

primarykey(入库单号,入库日期))

createtableYPKF.调价单

(调价单号char(6)check(调价单号like'TJ[0-9][0-9][0-9][0-9]'),

药品编号char(6)notnullconstraintdrug_2foreignkeyreferencesYPKF.药品(药品编号),

调价前的价格money,

调价后的价格money,

调价日期datetimedefaultgetdate(),

primarykey(调价单号,调价日期))

createtableYPKF.分装单

(分装单号char(6)check(分装单号like'FZ[0-9][0-9][0-9][0-9]'),

药品编号char(6)notnullconstraintdrug_3foreignkeyreferencesYPKF.药品(药品编号),

分装后的规格char(30),

分装日期datetimedefaultgetdate(),

primarykey(分装单号,分装日期))

createtableYPKF.盘点

(盘点编号char(6)check(盘点编号like'PD[0-9][0-9][0-9][0-9]'),

药品编号char(6)notnullconstraintdrug_4foreignkeyreferencesYPKF.药品(药品编号),

库存量intdefaultnull,

金额moneydefaultnull,

盘点日期datetimedefaultgetdate(),

primarykey(盘点编号,盘点日期))

createtableYPKF.调拨单

(调拨单号char(6)check(调拨单号like'DB[0-9][0-9][0-9][0-9]'),

药品编号char(6)notnullconstraintdrug_5foreignkeyreferencesYPKF.药品(药品编号),

调拨数量int,

药房地址char(30),

调拨日期datetimedefaultgetdate(),

primarykey(调拨单号,调拨日期))

createtableYPKF.领药单

(领药单号char(6)check(领药单号like'LY[0-9][0-9][0-9][0-9]'),

药品编号char(6)notnullconstraintdrug_6foreignkeyreferencesYPKF.药品(药品编号),

领药数量int,

领药科室char(30),

领药日期datetimedefaultgetdate(),

primarykey(领药单号,领药日期))

createtableYPKF.报损单

(报损单号char(6)check(报损单号like'BS[0-9][0-9][0-9][0-9]'),

药品编号char(6)notnullconstraintdrug_7foreignkeyreferencesYPKF.药品(药品编号),

报损数量int,

进货价moneycheck(进货价>0),

报损原因char(50),

报损日期datetimedefaultgetdate(),

primarykey(报损单号,报损日期))

createtableYPKF.退药单

(退药单号char(6)check(退药单号like'TY[0-9][0-9][0-9][0-9]'),

药品编号char(6)notnullconstraintdrug_8foreignkeyreferencesYPKF.药品(药品编号),

退药数量int,

退药原因char(50),

厂家编号char(6)nullconstraintfactory_0foreignkeyreferencesYPKF.生产厂家(厂家编号)ondeletesetnull,

退药日期datetimedefaultgetdate(),

primarykey(退药单号,退药日期))

createtableYPKF.销售单

(销售单号char(6)check(销售单号like'XS[0-9][0-9][0-9][0-9]'),

药品编号char(6)notnullconstraintdrug_9foreignkeyreferencesYPKF.药品(药品编号),

销售数量intnullcheck(销售数量>=0),

进货价moneycheck(进货价>0),

销售价moneynotnullcheck(销售价>0),

销售日期datetimedefaultgetdate(),

primarykey(销售单号,销售日期))

3.插入记录

insertintoYPKF.生产厂家values('CJ0001','三九医药股份有限公司','上海')

insertintoYPKF.生产厂家values('CJ0002','白云药业','广州')

insertintoYPKF.生产厂家values('CJ0003','么么哒有限公司','深圳')

insertintoYPKF.药品values('YP0001','CJ0001','999牌感冒灵颗粒','是','普通药品','10g*9包','9990001','0001','2015-2-13','2017-2-13')

insertintoYPKF.药品values('YP0002','CJ0003','天舒胶囊','是','院内制药,精神药品','0.34g*60粒','mmd0002','0002','2014-6-25','2015-6-25')

insertintoYPKF.药品values('YP0003','CJ0002','格列吡嗪控释片','是','贵重药品,自费药品','5mg*14片','by0006','0001','2014-12-27','2015-12-27')

insertintoYPKF.入库单values('RK0001','YP0003',60,500,'2015-1-1')

insertintoYPKF.入库单values('RK0002','YP0001',100,15,'2015-2-27')

insertintoYPKF.入库单values('RK0003','YP0002',45,150,'2015-2-14')

insertintoYPKF.入库单values('RK0004','YP0001',200,19,'2015-4-6')

insertintoYPKF.入库单values('RK0005','YP0003',60,500,'2015-5-18')

insertintoYPKF.入库单values('RK0006','YP0003',50,490,'2015-2-27')

insertintoYPKF.入库单values('RK0007','YP0002',70,130,'2015-3-15')

insertintoYPKF.入库单values('RK0008','YP0001',160,14,'2015-4-20')

insertintoYPKF.入库单values('RK0009','YP0002',80,170,'2015-5-1')

insertintoYPKF.入库单values('RK0010','YP0001',90,12,'2015-6-23')

insertintoYPKF.调价单values('TJ0001','YP0003',150,155,'2015-4-23')

insertintoYPKF.分装单values('FZ0001','YP0001','10g*3包','2015-5-20')

insertintoYPKF.盘点(盘点编号,药品编号,盘点日期)values('PD0001','YP0001','2015-6-25')

insertintoYPKF.盘点(盘点编号,药品编号,盘点日期)values('PD0002','YP0002','2015-6-25')

insertintoYPKF.盘点(盘点编号,药品编号,盘点日期)values('PD0003','YP0003','2015-6-25')

insertintoYPKF.调拨单values('DB0001','YP0001',15,'2号药房','2015-4-20')

insertintoYPKF.调拨单values('DB0002','YP0002',15,'1号药房','2015-4-20')

insertintoYPKF.调拨单values('DB0003','YP0003',15,'2号药房','2015-4-20')

insertintoYPKF.领药单values('LY0001','YP0001',50,'305','2015-5-20')

insertintoYPKF.领药单values('LY0002','YP0001',60,'508','2015-4-17')

insertintoYPKF.领药单values('LY0003','YP0002',20,'601','2015-3-26')

insertintoYPKF.领药单values('LY0004','YP0003',53,'111','2015-6-24')

insertintoYPKF.报损单values('BS0001','YP0001',10,14,'药品霉变','2015-5-26')

insertintoYPKF.报损单values('BS0002','YP0003',10,500,'药品裂开','2015-6-11')

insertintoYPKF.报损单values('BS0003','YP0002',15,130,'药品霉变','2015-6-20')

insertintoYPKF.退药单values('TY0001','YP0001',12,'用药后出现不良反应','CJ0001','2015-4-20')

insertintoYPKF.退药单values('TY0002','YP0003',10,'患者认为医院售药价高','CJ0002','2015-5-23')

insertintoYPKF.退药单values('TY0003','YP0002',15,'用药后出现不良反应','CJ0003','2015-4-20')

insertintoYPKF.销售单values('XS0001','YP0001',20,14,25,'2015-4-23')

insertintoYPKF.销售单values('XS0002','YP0001',20,19,30,'2015-4-24')

insertintoYPKF.销售单values('XS0003','YP0001',25,15,28,'2015-4-26')

insertintoYPKF.销售单values('XS0004','YP0002',15,130,200,'2015-4-23')

insertintoYPKF.销售单values('XS0005','YP0002',15,150,210,'2015-4-24')

insertintoYPKF.销售单values('XS0006','YP0002',15,170,240,'2015-4-26')

insertintoYPKF.销售单values('XS0007','YP0003',10,500,700,'2015-4-23')

insertintoYPKF.销售单values('XS0008','YP0003',10,500,680,'2015-4-23')

insertintoYPKF.销售单values('XS0009','YP0003',10,490,690,'2015-4-23')

4.添加视图

视图入库明细

createviewYPKF.入库明细(入库单号,药品编号,入库量,进货价,入库日期,生产厂家,药品名称,处方药标志,药品类别,规格,批号,批次)asselect入库单号,入库单.药品编号,入库量,进货价,入库日期,厂家编号,药品名称,处方药标志,药品类别,规格,批号,批次fromYPK

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 纺织轻工业

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1