住院管理系统课程设计.docx
- 文档编号:2033113
- 上传时间:2022-10-26
- 格式:DOCX
- 页数:14
- 大小:280.17KB
住院管理系统课程设计.docx
《住院管理系统课程设计.docx》由会员分享,可在线阅读,更多相关《住院管理系统课程设计.docx(14页珍藏版)》请在冰豆网上搜索。
住院管理系统课程设计
课程设计
课程名称数据库
题目名称住院管理系统
学生学院计算机学院
专业班级
学号
学生姓名
指导教师___左亚尧____________
2013年1月17日
目录
一、系统定义…………………………………………………………….1
二、需求分析…………………………………………………………….1
三、系统设计…………………………………………………………….1
四、详细设计……………………………………………………………4
五、课程设计总结………………………………………………………11
六、参考文献……………………………………………………………11
一、系统定义
通过一个住院管理系统的设计,使医院住院管理工作系统化、规范化、自动化,从而达到提高医院管理效率的目的。
医院住院管理是医院管理系统的一个分系统,也是医院管理系统的重要组成部分。
住院管理又分为病人管理和病房管理两个子系统。
病人管理功能比较复杂,管理人员可以全局浏览医院的病人状况,也可以逐条浏览医院病人情况。
管理人员既可以简单查询病人状况,又可以高级查询病人状况,可以添加新的病人资料,可以修改、删除已经存在的病人。
病房管理用来实现对当前病床分配的情况进行查看。
管理人员可以很方便的将某个病房的某些病床分配给一个病人。
二、需求分析
1.功能需求
住院管理系统应实现以下功能:
病房管理模块可以很简单查询病床分配情况。
可以很方便的将医院的空病床分配给住院的病人,对于没有床位的病人直接进行分配,对于已有病房的床位可以进行增减。
另外还可以列出所有的空床位。
病人的管理模块,可以浏览医院当前所有病人的详细资料,可以方面的向该数据库系统中添加新入院病人的资料。
对于现有病人的资料也可以通过一些简单操作来进行修改,病人出院可以对其进行删除。
该病人管理模块可以提供了各种查询。
2.数据需求
某医院住院管理系统中需要如下信息:
科室:
科名,科地址,科电话
病房:
病房号,床位数,所属科室名
医生:
工作证号,姓名,职称,年龄,所属科室名
病人:
病历号,姓名,性别,诊断,病房号,床位号,主管医生
其中:
一个科室有多个病房、多个医生,一个病房只能属于一个科室,一个医生,一个医生只属于一个科室,但可负责多个病人的诊治,一个病人的主管医生只有一个。
三、系统设计
1.概念结构设计
由需求分析可以知道:
某医院住院管理系统中需要如下信息:
科室:
科名,科地址,科电话
病房:
病房号,床位数,所属科室名
医生:
工作证号,姓名,职称,年龄,所属科室名
病人:
病历号,姓名,性别,诊断,病房号,床位号,主管医生
其中:
一个科室有多个病房、多个医生,一个病房只能属于一个科室,一个医生,一个医生只属于一个科室,但可负责多个病人的诊治,一个病人的主管医生只有一个。
则E-R图如下所示:
2.逻辑结构设计
将E-R图转换成关系模型并对关系模式进行规范化,至少达到3NF
关系模型如下:
(1)科室(科名,地址,电话)
主码:
科名
(2)病房(病房号,床位数,科名)
主码:
病房号外码:
科名
(3)医生(医生号,姓名,职称,年龄,科名)
主码:
医生号外码:
科名
(4)病人(病历号,姓名,性别,诊断,病房号,床位号,医生号)
主码:
病历号外码:
病房号,医生号
3.物理结构设计
列名
数据类型
约束
科名
char(8)
主码
地址
char(20)
电话
char(12)
科室表
列名
数据类型
约束
病房号
char(4)
主码
床位数
char
(2)
科名
char(8)
外码
病房表
列名
数据类型
约束
医生号
char(10)
主码
姓名
char(4)
unique
职称
char(20)
年龄
smallint
科名
char(8)
外码
医生表
列名
数据类型
约束
病历号
char(4)
主码
姓名
char(8)
年龄
smallint
性别
char
(2)
诊断
char(20)
Notnull
床位号
char(4)
住院时间
datetime
出院时间
datetime
病房号
char(4)
外码
医生号
char(10)
外码
病人表
4.系统功能模块图
四、详细设计
1.创建对象
(1)创建数据库
CREATEDATABASEHospital
ONprimary
(
NAME=hospital,
FILENAME='d:
\DataBase\hospital.mdf',
SIZE=30,
FILEGROWTH=20%)
LOGON
(
NAME=hospital_log,
FILENAME='d:
\DataBase\hospital.ldf',
SIZE=3MB,
FILEGROWTH=1MB)
(2)创建基本表
--科室表
createtable科室表(
科名char(8)primarykey,--列级完整性约束条件,是主码
地址char(20),
电话char(12)
)
--医生表
createtable医生表(
医生号char(10)primarykey,--列级完整性约束条件,是主码
姓名char(4)unique,
职称char(20),
年龄smallint,
科名char(8),
foreignkey(科名)references科室表(科名)
--表级完整性约束条件,“科名”是外码,被参照表是“科室表”,被参照列是“科名”
)
--病房表
createtable病房表(
病房号char(4),
床位数char
(2),
科名char(8),
primarykey(病房号),--表级完整性约束,主码
foreignkey(科名)references科室表(科名)
--表级完整性约束条件,“科名”是外码,被参照表是“科室表”,被参照列是“科名”
)
--病人表
createtable病人表(
病历号char(4)primarykey,--列级完整性约束条件,是主码
姓名char(8),
年龄smallint,
性别char
(2),
诊断char(20)NOTNULL,
病房号char(4),
床位号char(4),
入院时间datetime,
出院时间datetime,
医生号char(10),
foreignkey(病房号)references病房表(病房号),
--表级完整性约束条件,“病房号”是外码,被参照表是“病房表”,被参照列是“病房号”
foreignkey(医生号)references医生表(医生号)
--表级完整性约束条件,“职工号”是外码,被参照表是“医生表”,被参照列是“医生号”
)
2.系统功能实现
(1)病人一览
--创建病人一览存储过程
createprocedure病人一览
as
select*
from病人表;
以后一览病人信息可通过存储过程“病人一览”来实现。
在SQL查询分析器中的对象浏览器找到存储过程“病人一览”并打开。
按“执行”
(2)病人查询
--创建病人查询存储过程
createprocedure病人查询
@病历号char(4)
as
select*
from病人表
where病历号=@病历号;
以后查询病人可通过存储过程“病人查询”来实现。
在SQL查询分析器中的对象浏览器找到存储过程“病人查询”并打开。
在“值”中输所要查询病人的病历号。
如输入‘1001’,按执行。
(3)增加病人
--创建增加病人存储过程
createprocedure增加病人
@病历号char(4),
@姓名char(8),
@年龄smallint,
@性别char
(2),
@诊断char(20),
@病房号char(4),
@床位号char(4),
@入院时间datetime,
@医生号char(10)
as
insert
into病人表(病历号,姓名,年龄,性别,诊断,病房号,床位号,入院时间,医生号)
values(@病历号,@姓名,@年龄,@性别,@诊断,@病房号,@床位号,@入院时间,@医生号);
以后增加病人可通过存储过程“增加病人”来实现。
在SQL查询分析器中的对象浏览器找到存储过程“增加病人”并打开。
在“值”的那一栏输入对应参数的内容。
如:
@病历号='1005'
@姓名='陈雷'
@年龄=8
@性别='男'
@诊断='感冒'
@病房号='1001'
@床位号='5'
@入院时间='2013-01-12'
@医生号='100001'
执行后,打开病人表可查到新增的病人:
(4)删除病人
--创建删除病人存储过程
createprocedure删除病人
@病历号char(4)
as
delete
from病人表
where病历号=@病历号;以后删除病人可通过存储过程“删除病人”来实现。
在SQL查询分析器中的对象浏览器找到存储过程“删除病人”并打开。
在“值”中输所要删除病人的病历号。
如‘1005’
可通过病人查询来检测:
执行后输出结果为
(5)病房一览
此功能输出所有各病房的床位数和已用床位数。
--创建病房一览存储过程
createprocedure病房一览
as
select病房表.病房号,床位数,count(*)--count(*)为病人占用床位数
from病人表,病房表
where病人表.病房号=病房表.病房号
groupby病房表.病房号,床位数;
以后一览病房可通过存储过程“病房一览”来实现。
在SQL查询分析器中的对象浏览器找到存储过程“病房一览”并打开。
按执行(无名列为已占床位数)。
(6)病房查询
查询某一病房床位数与床位占用情况。
--创建病房查询存储过程
createprocedure病房查询
@病房号char(4)
as
select病房表.病房号,床位数,count(*)--count(*)为病人占用床位数
from病人表,病房表
where病人表.病房号=病房表.病房号and病房表.病房号=@病房号
groupby病房表.病房号,床位数;
以后查询病房可通过存储过程“病房查询”来实现。
在SQL查询分析器中的对象浏览器找到存储过程“病房查询”并打开。
在“值”中输入要查询的病房号,如‘2001’,执行。
(无名列为已占床位数)
(7)病房修改
此功能修改某一病房的床位数。
--创建病房修改存储过程
createprocedure病房修改
@病房号char(4),
@床位数char
(2)--修改后的床位数
as
update病房表
set床位数=@床位数
where病房号=@病房号;
以后修改病房可通过存储过程“病房修改”来实现。
在SQL查询分析器中的对象浏
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 住院 管理 系统 课程设计