广西科技大学校医院门诊管理系统Word文档下载推荐.docx
《广西科技大学校医院门诊管理系统Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《广西科技大学校医院门诊管理系统Word文档下载推荐.docx(19页珍藏版)》请在冰点文库上搜索。
![广西科技大学校医院门诊管理系统Word文档下载推荐.docx](https://file1.bingdoc.com/fileroot1/2023-4/28/94b7afd1-6d08-4ae5-9d79-3be7b0563214/94b7afd1-6d08-4ae5-9d79-3be7b05632141.gif)
“医务人员”具有职工号、姓名、性别、年龄、职称、所在科室、专长、诊病时间、所在部门属性;
“科室”具有科室名称、科室位置、可容纳医生数属性;
“药品管理”具有药品编码、药品名称、类别、库存余量、规格、保质期、数量、金额属性;
“用法”具有药品编码、处方编号、用量、数量。
门诊管理系统ER图
3、逻辑设计
门诊管理系统ER图有6个实体,可转换成如下的关系模式集:
患者(就诊卡号、姓名、性别、年龄、联系电话)
就诊(处方编号、就诊日期、就诊科室、就诊大夫、就诊科室、病情描述)
医务人员(职工号、姓名、性别、年龄、职称、所在科室、专长、诊病时间、所在部门)
科室(科室名称、科室位置、可容纳医生数)
用法(药品编码、处方编号、用量、数量)
药品管理(药品编码、药品名称、类别、库存余量、规格、保质期、数量、金额)
4、物理设计
根据逻辑设计的结果创建doctordoor数据库。
数据库的数据文件和日志文件均存放在E:
\图\doctordoor下。
数据文件的初始大小为3MB,增量为1MB,最大文件大小为“不限制文件增长”;
日志文件的大小为1MB,增量为10%,最大文件大小为2097152M。
在doctordoor数据库中创建患者表、医务人员表、就诊表、药品管理表、用法表和科室表。
患者表
属性
数据类型
长度或取值范围
主键
外键
空值
索引
就诊卡号
int
是
否
唯一,非聚簇索引,ASC
姓名
Char
4
性别
2
年龄
联系电话
bigint
医务人员表
职工号
非聚簇索引,ASC
科室名称
char
10
职称
50
所在科室
专长
20
就诊表
处方编号
就诊日期
date
就诊科室
就诊大夫
病情描述
100
药品管理表
药品编码
药品名称
类别
5
库存余量
规格
12
保质期
金额
money
用法表
用量
数量
科室表
科室位置
可容纳医生数
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
SETQUOTED_IDENTIFIERON
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、比较库存与用法中的数量关系
Trigger[dbo].[触发器_比较库存]ScriptDate:
45:
18******/
ALTERtrigger[dbo].[触发器_比较库存]on[dbo].[药品管理]forinsert
declare@tint,@numint,@num1int
set@t=(selectinserted.药品编码frominserted)
select@num=用法.数量
from用法
select@num1=药品管理.库存余量
配药数量已经超过库存余量'
约束:
1、创建库存余量大于零
usedoctordoor
go
altertable药品管理
addconstraintCK_库存CHECK(库存余量>
=0)
Go
存储过程:
1、创建插入患者存储过程(在jsp页面插入数据库有乱码,在数据库功能正常)
USEdoctordoor
GO
IFEXISTS(SELECT*FROMsysobjects
WHERENAME='
info_患者'
ANDtype='
P'
)
DROPPROCEDUREinfo_患者
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
executeinfo_患者112,'
小美'
'
女'
19,'
20130066'
2、创建插入医生存储过程(未在jsp页面实现)
add_医生'
DROPPROCEDUREadd_医生
CREATEPROCEDUREadd_医生
@kechar(10),
@namechar(10),
@zcchar(50),
@szkschar(50),
@zchangchar(20)
INSERTINTO医务人员
VALUES(@id,@ke,@name,@xb,@age,@zc,@szks,@zchang)
executeadd_医生1112,'
外科专室'
小胡'
男'
主任'
手术科'
手术'
3、创建查找指定医生职工号的存储过程
ALTERprocedure[dbo].[select_doctor_id]
@cphint
as
if@cphisnull
print'
医生信息'
begintransaction
select职工号,姓名,性别,科室名称,年龄,职称,所在科室,专长
fromdbo.医务人员
where职工号=@cph
if@@ERROR<
begin
rollbacktran
return
end
committransaction
显示成功'
executeselect_doctor_id101
4、创建查找指定患者就诊卡号的存储过程
StoredProcedure[dbo].[select_sick_id]ScriptDate:
01/14/201613:
36:
54******/
ALTERprocedure[dbo].[select_sick_id]
患者信息'
select就诊卡号,姓名,性别,年龄,联系电话
from患者
where就诊卡号=@cph
executeselect_sick_id1
5、创建修改患者联系电话存储过程
USE[doctordoor]
StoredProcedure[dbo].[update_患者]ScriptDate:
39:
12******/
SETANSI_NULLSON
SETQUOTED_IDENTIFIERON
ALTERPROCEDURE[dbo].[update_患者]
@tel_oldbigint,
@tel_newbigint
updatedbo.患者
set联系电话=@tel_new
where就诊卡号=@id
COMMITTRANSACTION
executeupdate_患者1,'
22'
50'
(在jsp页面执行时将原电话号码固定只需要输入新电话号码更加方便)
6、建立删除患者信息存储过程
usedoctordoor
go
createprocdelect_患者(@卡号int)
as
deletefrom患者
where就诊卡号=@卡号
go
executedelect_患者99
7、删除医生信息存储过程(此功能未在jsp页面实现)
createprocdelet_doctor(@卡号int)
deletefrom医务人员
where职工号=@卡号
executedelet_doctor1112
6、jsp页面功能实现截图
环境:
eclipse登录账户:
123456端口:
1433IP:
127.0.0.1
1、登录页面
2、主页面
3、1—6按钮的实现截图
4、查询页面功能截图
5、操作页面功能截图
7、实训总结
在这段时间的实训中,首先巩固了在之前课堂学到的知识,其次学到了新的知识特别是jsp连接数据库的操作,jsp本身的操作,powerdesigner的基本操作方法,自己设计概念图、逻辑图以及物理图;
在实训过程中发现了自己的大量不足,对知识的理解不够充分,以及实际动手能力差,在实训中遇到许多问题,一个是与同学积极的调了,另一个是原庆能老师给予的帮助,在此特别原庆能老师,以及对我帮助的各位同学.