广西科技大学校医院门诊管理系统.docx
- 文档编号:1894905
- 上传时间:2023-05-02
- 格式:DOCX
- 页数:19
- 大小:169.92KB
广西科技大学校医院门诊管理系统.docx
《广西科技大学校医院门诊管理系统.docx》由会员分享,可在线阅读,更多相关《广西科技大学校医院门诊管理系统.docx(19页珍藏版)》请在冰点文库上搜索。
广西科技大学校医院门诊管理系统
广西科技大学
《校医院门诊管理系统》
课程设计说明书
课程名称:
广西科技大学校医院门诊管理系统
班级:
软件132
姓名:
李广贵
学号:
201300406067
指导老师:
原庆能
2016年1月15日
广西科技大学校医院门诊管理系统
1、门诊管理系统需求分析:
广西科技大学校医院门诊管理系统所要处理的数据有:
就诊卡号、姓名、性别、年龄、联系电话、所在部门、就诊科室、就诊大夫、就诊日期、病情描述、处方编号、药品编码、药品名称、类别、库存余量、规格、保质期、用量、数量、金额、医务人员的职工号、姓名、性别、年龄、职称、所在科室、专长、诊病时间,科室名称、科室位置、可容纳医生数等。
完整性要求:
就诊日期在药品的保质期前;使用的药品数量小于库存余量
安全性要求:
用户输入账户、密码进行登录操作
数据统计:
某个医生某个时间段的已诊疗人数和候诊人数
2、概念设计:
根据需求分析,可抽象出“患者”、“就诊”、“医务人员”、“科室”、“用法”、“药品管理”6个实体。
“患者”具有就诊卡号、姓名、性别、年龄、联系电话属性;“就诊”具有处方编号、就诊日期、就诊科室、就诊大夫、就诊科室、病情描述属性;“医务人员”具有职工号、姓名、性别、年龄、职称、所在科室、专长、诊病时间、所在部门属性;“科室”具有科室名称、科室位置、可容纳医生数属性;“药品管理”具有药品编码、药品名称、类别、库存余量、规格、保质期、数量、金额属性;“用法”具有药品编码、处方编号、用量、数量。
门诊管理系统ER图
3、逻辑设计
门诊管理系统ER图有6个实体,可转换成如下的关系模式集:
患者(就诊卡号、姓名、性别、年龄、联系电话)
就诊(处方编号、就诊日期、就诊科室、就诊大夫、就诊科室、病情描述)
医务人员(职工号、姓名、性别、年龄、职称、所在科室、专长、诊病时间、所在部门)
科室(科室名称、科室位置、可容纳医生数)
用法(药品编码、处方编号、用量、数量)
药品管理(药品编码、药品名称、类别、库存余量、规格、保质期、数量、金额)
4、物理设计
根据逻辑设计的结果创建doctordoor数据库。
数据库的数据文件和日志文件均存放在E:
\图\doctordoor下。
数据文件的初始大小为3MB,增量为1MB,最大文件大小为“不限制文件增长”;日志文件的大小为1MB,增量为10%,最大文件大小为2097152M。
在doctordoor数据库中创建患者表、医务人员表、就诊表、药品管理表、用法表和科室表。
患者表
属性
数据类型
长度或取值范围
主键
外键
空值
索引
就诊卡号
int
是
否
唯一,非聚簇索引,ASC
姓名
Char
4
性别
Char
2
年龄
int
联系电话
bigint
医务人员表
属性
数据类型
长度或取值范围
主键
外键
空值
索引
职工号
int
是
否
非聚簇索引,ASC
科室名称
char
10
是
否
姓名
char
10
性别
char
2
年龄
int
职称
char
50
所在科室
char
50
专长
char
20
就诊表
属性
数据类型
长度或取值范围
主键
外键
空值
索引
处方编号
int
是
否
唯一,非聚簇索引,ASC
就诊卡号
int
是
职工号
int
是
就诊日期
date
就诊科室
char
20
就诊大夫
char
10
病情描述
char
100
药品管理表
属性
数据类型
长度或取值范围
主键
外键
空值
索引
药品编码
int
是
否
唯一,非聚簇索引,ASC
药品名称
char
20
类别
char
5
库存余量
int
规格
char
12
保质期
date
金额
char
money
用法表
属性
数据类型
长度或取值范围
主键
外键
空值
索引
药品编码
int
是
是
否
非聚簇索引,ASC
处方编号
int
是
是
否
用量
char
10
数量
int
科室表
属性
数据类型
长度或取值范围
主键
外键
空值
索引
科室名称
char
10
是
否
非聚簇索引,ASC
科室位置
char
10
可容纳医生数
char
10
5、功能介绍
环境:
使用sql2008,登录账户:
sa密码:
123456
查询命令:
1、查询指定时间内就诊人数
SELECTcount(*)AS这段时间内就诊人数FROM就诊
WHERE就诊日期BETWEEN'2015-12-19'AND'2015-12-27'
触发器:
1、创建开药时间与药品保质期的比较
USE[doctordoor]
GO
/******Object:
Trigger[dbo].[触发器_比较保质期]ScriptDate:
01/14/201612:
42:
36******/
SETANSI_NULLSON
GO
SETQUOTED_IDENTIFIERON
GO
ALTERtrigger[dbo].[触发器_比较保质期]on[dbo].[就诊]forinsert
as
begin
declare@tint,@numdate,@num1date
set@t=(selectinserted.处方编号frominserted)
select@num=就诊.就诊日期
from就诊
select@num1=药品管理.保质期
from药品管理
if(@num>=@num1)
print'所配药品已过期'
rollbacktransaction
End
2、比较库存与用法中的数量关系
USE[doctordoor]
GO
/******Object:
Trigger[dbo].[触发器_比较库存]ScriptDate:
01/14/201612:
45:
18******/
SETANSI_NULLSON
GO
SETQUOTED_IDENTIFIERON
GO
ALTERtrigger[dbo].[触发器_比较库存]on[dbo].[药品管理]forinsert
as
begin
declare@tint,@numint,@num1int
set@t=(selectinserted.药品编码frominserted)
select@num=用法.数量
from用法
select@num1=药品管理.库存余量
from药品管理
if(@num>=@num1)
print'配药数量已经超过库存余量'
rollbacktransaction
End
约束:
1、创建库存余量大于零
usedoctordoor
go
altertable药品管理
addconstraintCK_库存CHECK(库存余量>=0)
Go
存储过程:
1、创建插入患者存储过程(在jsp页面插入数据库有乱码,在数据库功能正常)
USEdoctordoor
GO
IFEXISTS(SELECT*FROMsysobjects
WHERENAME='info_患者'ANDtype='P')
DROPPROCEDUREinfo_患者
GO
CREATEPROCEDUREinfo_患者
@idint,
@namechar(4),
@xbchar
(2),
@ageint,
@telbigint
AS
BEGINTRANSACTION
INSERTINTO患者
VALUES(@id,@name,@xb,@age,@tel)
IF@@error<>0
BEGIN
ROLLBACKTRAN
RETURN
END
COMMITTRANSACTION
GO
executeinfo_患者112,'小美','女',19,'20130066'
2、创建插入医生存储过程(未在jsp页面实现)
USEdoctordoor
GO
IFEXISTS(SELECT*FROMsysobjects
WHERENAME='add_医生'ANDtype='P')
DROPPROCEDUREadd_医生
GO
CREATEPROCEDUREadd_医生
@idint,
@kechar(10),
@namechar(10),
@xbchar
(2),
@ageint,
@zcchar(50),
@szkschar(50),
@zchangchar(20)
AS
BEGINTRANSACTION
INSERTINTO医务人员
VALUES(@id,@ke,@name,@xb,@age,@zc,@szks,@zchang)
IF@@error<>0
BEGIN
ROLLBACKTRAN
RETURN
END
COMMITTRANSACTION
GO
executeadd_医生1112,'外科专室','小胡','男',19,'主任','手术科','手术'
3、创建查找指定医生职工号的存储过程
USE[doctordoor]
GO
SETANSI_NULLSON
GO
SETQUOTED_IDENTIFIERON
GO
ALTERprocedure[dbo].[select_doctor_id]
@cphint
as
if@cphisnull
print'医生信息'
begintransaction
select职工号,姓名,性别,科室名称,年龄,职称,所在科室,专长
fromdbo.医务人员
where职工号=@cph
if@@ERROR<>0
begin
rollbacktran
return
end
committransaction
print'显示成功'
executeselect_doctor_id101
4、创建查找指定患者就诊卡号的存储过程
USE[doctordoor]
GO
/******Object:
StoredProcedure[dbo].[select_sick_id]ScriptDate:
01/14/201613:
36:
54******/
SETANSI_NULLSON
GO
SETQUOTED_IDENTIFIERON
GO
ALTERprocedure[dbo].[select_sick_id]
@cphint
as
if@cphisnull
print'患者信息'
begintransaction
select就诊卡号,姓名,性别,年龄,联系电话
from患者
where就诊卡号=@cph
if@@ERROR<>0
begin
rollbacktran
return
end
committransaction
print'显示成功'
executeselect_sick_id1
5、创建修改患者联系电话存储过程
USE[doctordoor]
GO
/******Object:
StoredProcedure[dbo].[update_患者]ScriptDate:
01/14/201613:
39:
12******/
SETANSI_NULLSON
GO
SETQUOTED_IDENTIFIERON
GO
ALTERPROCEDURE[dbo].[update_患者]
@idint,
@tel_oldbigint,
@tel_newbigint
AS
BEGINTRANSACTION
updatedbo.患者
set联系电话=@tel_new
where就诊卡号=@id
IF@@error<>0
BEGIN
ROLLBACKTRAN
RETURN
END
COMMITTRANSACTION
executeupdate_患者1,'22','50'(在jsp页面执行时将原电话号码固定只需要输入新电话号码更加方便)
6、建立删除患者信息存储过程
usedoctordoor
go
createprocdelect_患者(@卡号int)
as
deletefrom患者
where就诊卡号=@卡号
go
executedelect_患者99
7、删除医生信息存储过程(此功能未在jsp页面实现)
usedoctordoor
go
createprocdelet_doctor(@卡号int)
as
deletefrom医务人员
where职工号=@卡号
go
executedelet_doctor1112
6、jsp页面功能实现截图
环境:
eclipse登录账户:
sa密码:
123456端口:
1433IP:
127.0.0.1
1、登录页面
2、主页面
3、1—6按钮的实现截图
4、查询页面功能截图
5、操作页面功能截图
7、实训总结
在这段时间的实训中,首先巩固了在之前课堂学到的知识,其次学到了新的知识特别是jsp连接数据库的操作,jsp本身的操作,powerdesigner的基本操作方法,自己设计概念图、逻辑图以及物理图;在实训过程中发现了自己的大量不足,对知识的理解不够充分,以及实际动手能力差,在实训中遇到许多问题,一个是与同学积极的调了,另一个是原庆能老师给予的帮助,在此特别原庆能老师,以及对我帮助的各位同学.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 广西 科技 学校 医院 门诊 管理 系统