1背景及意义
1.1目的与要求
随着科技的发展,基本上所有的具有一定数量数据的机构都开始使用计算机数据库来做管理。几乎所有医院也都已经在使用计算机管理数据的机制,大大减少了医院医药管理的工作量。该课程设计要求设计一个医药销售的数据库管理系统,数据库中要求包含用户的基本信息,药品基本信息,员工资本信息,供应商基本信息,以及客户信息表。要方便用户进行医药管理,通过该课程设计,应该达到把数据库理论知识更加的巩固加深,加强动手能力与实践能力,学以致用,与现实生活中的应用充分的结合起来。
1.2设计环境
① Microsoft SQL Server 2000
② VS2010
2.需求分析
2.1 系统功能要求设计
根据以上对医院管理系统的分析,一个完整的医院管理系统应包括如下图所示的几大功能:
各模块实现的功能分别是:
1、“病人信息”主要是病人登记,出院办理,登记病人信息包括建立病人的主索引信息,分配病人的ID号,确保病人信息的惟一性,可选择输入病人姓名、挂号类别(普诊号、专家号等)及就诊科室等信息。另外可以对病人的信息重新录入,修改,查询查看病人的缴费情况,出院办理等。
2、“管理员信息”用于管理使用该软件的管理员账号。包括姓名、性别、电话、 注册日期。主要功能有注册新的管理员,修改管理员密码,用户注销,系统退出。
3、“退药入库”主要负责对病人分配药品以及退回药品重新入库。
4、“药房信息”主要管理药品的相关信息,包括供应商基本信息、药品基本信息、采购计划、应付款管理、药品入库、药品出库、药品盘点、药品报损、底线报警、有效期提醒。对库存药品进行统计查询。
5、“收费管理”用于对病人计费,统计病人各种费用,对病人账户扣费处理。
6、“处方管理”主要用于记录对病人的处方,包括用药,病情等。
2.2 业务描述
某医院信息管理系统大体可以分成六大模块, 一是病人信息模块,里面应该包含病人编号,病人姓名,性别,身份证号,出生年月,地址,电话,病情,科室编号,医生编号,确诊日期,是否交费等;二退药入库模块, 里面应该包含药品编号,病人编号,药品名称,回收数量剩余库存量等;三管理员信息模块,里面应该包含账号,密码,姓名,性别,出生年月,注册时间等;四药房信息模块,里面应该包含药房编号等;五收费管理模块,里面应该包含病人计费,统计病人费用,病人账户扣费处理等;六处方管理模块,里面应该包含病人编号,姓名,病情,处方信息等。
2.3 数据流图
数据流图1 医院管理系统0层图
医院管理系统1层图(病人就诊住院管理)
医院管理系统1层图(药房管理)
2.4数据字典(DD)
绘制DFD,只是对数据处理和彼此之间的联系进行了说明。为进一步明确数据的详细内容和数据加工过程,应将数据流图中的全部数据流及其组成部分的数据元素,数据存储,数据加工,通过数据字典描述清楚,以便于此后系统设计的进行。这就需要开发人员编写详细的数据字典,来描述系统开发过程的细节。
下面列出本系统中的的数据字典。
表1 病人信息表
功能名称:病人信息表 | ||
存储位置:病人信息 | 存储组织:一个病人一条记录 | 主键:病人编号 |
数据元素 | 数据采集方式 | 说明 |
patientnum(病人编号) | 人工输入 | 主键,必须输入 |
patientname(病人姓名) | 人工输入 | 必须输入 |
patientbirthday(病人出生年月) | 人工输入 | |
patientID(病人身份证号) | 人工输入 | |
patientaddress(病人地址) | 人工输入 | |
patienttelephone(病人电话) | 人工输入 | |
patientsex(病人性别) | 人工输入 | |
state(病人病情) | 人工输入 | |
administrativenum(科室编号) | 人工输入 | |
docnum(医生编号) | 人工输入 | |
CertainTime(确诊日期) | 人工输入 | |
whether(是否交费) | 人工输入 |
功能名称:住院信息表 | ||
存储位置:住院信息 | 存储组织:一个病人一条记录 | 主键:病人编号 |
数据元素 | 数据采集方式 | 说明 |
patientnum(病人编号) | 人工输入 | 主键,必须输入 |
HospitalID(住院号) | 人工输入 | |
BedNum(床号) | 人工输入 | |
HospitalTime(住院日期) | 人工输入 | |
CureMoney(每日治疗费) | 人工输入 | |
LiveMoney(住院费) | 自动采集 | |
depositmoney(账户余额) | 自动采集 |
功能名称:药品库存表 | ||
存储位置:药品库存 | 存储组织:一个药品一条记录 | 主键:药品编号 |
数据元素 | 数据采集方式 | 说明 |
MedicineID(药品编号) | 人工输入 | 主键,必须输入 |
MedicineName(药品名称) | 人工输入 | |
medicinenumber(药品数量) | 人工输入 | |
store(药品库存量) | 自动采集 | |
SupplierID(供应商编号) | 自动采集 | |
ProduceTime(药品生产日期) | 人工输入 | |
EffectTime(药品有效期) | 人工输入 | |
medicinemoney(药品单价) | 人工输入 | |
type(药品类型) | 人工输入 |
功能名称:药品采购表 | ||
存储位置:药品采购 | 存储组织:一个病人一条记录 | 主键:药品编号 |
数据元素 | 数据采集方式 | 说明 |
MedicineID(药品编号) | 人工输入 | 主键,必须输入 |
SupplyMedicine(所供药品) | 人工输入 | |
Suppliername(供应商姓名) | 人工输入 | |
Suppliertelephone(供应商电话) | 人工输入 | |
Supplieraddress(供应商地址) | 人工输入 | |
SupplyMedicine(所供药品) | 人工输入 | |
Purchase(药品采购单号) | 人工输入 | |
Purchasecount(采购数量) | 人工输入 | |
money(采购单价) | 人工输入 | |
type(药品类型) | 人工输入 |
功能名称:药品发放表 | ||
存储位置:药品发放 | 存储组织:一个病人一条记录 | 主键:病人编号 |
数据元素 | 数据采集方式 | 说明 |
MedicineName(药品名称) | 人工输入 | |
MedicineID(药品编号) | 人工输入 | 主键,必须输入 |
medicinenumber(发放数量) | 人工输入 | |
RemainVetent(剩余库存量) | 自动采集 |
功能名称:药品回收表 | ||
存储位置:药品回收 | 存储组织:一个药品一条记录 | 主键:药品编号 |
数据元素 | 数据采集方式 | 说明 |
MedicineID(药品编号) | 人工输入 | 主键,必须输入 |
MedicineName(药品名称) | 自动采集 | |
Returnnumber(回收数量) | 人工输入 | |
RemainVetent(剩余库存量) | 自动采集 |
功能名称:科室信息表 | ||
存储位置:科室 | 存储组织:一间科室一条记录 | 主键:科室编号 |
数据元素 | 数据采集方式 | 说明 |
administrativenum(科室编号) | 人工输入 | 主键,必须输入 |
administrativename(科室名称) | 人工输入 | |
patientnum(就诊人数) | 自动采集 |
功能名称:医生信息表 | ||
存储位置:医生信息 | 存储组织:一位医生一条记录 | 主键:医生编号 |
数据元素 | 数据采集方式 | 说明 |
Docnum(医生编号) | 人工输入 | 主键,必须输入 |
administrativenum(科室编号) | 人工输入 | |
docname(医生姓名) | 人工输入 | |
docsex(医生性别) | 人工输入 | |
docage(医生年龄) | 人工输入 |