医院病房信息管理系统.docx
《医院病房信息管理系统.docx》由会员分享,可在线阅读,更多相关《医院病房信息管理系统.docx(15页珍藏版)》请在冰点文库上搜索。
医院病房信息管理系统
医院病房信息管理系统
医院病房信息管理系统
编制
精选管理方案审核
批准
生效日期
地址:
电话:
传真:
邮编:
第一章需求分
析
错误!
未指定书签。
医院管理系统模块
图
错误!
未指定书签。
医院管理系统流程
图
错误!
未指定书签。
第二章概念结构设
计
错误!
未指定书签。
医生实体子E-R
图
错误!
未指定书签。
病人实体子E-R
图
错误!
未指定书签。
科室实体子E-R
图
错误!
未指定书签。
病房实体子E-R
图
错误!
未指定书签。
全局E-R
图
错误!
未指定书签。
第三章逻辑结构设
计
错误!
未指定书签。
第四章
物理实现
错误!
未定义书签。
数据库的创
建
错误!
未指定书签。
表对象的创建与操
作
错误!
未指定书签。
医生表doctor创建与操作
错误!
未指定书签。
病人表patient创建与操
作
错误!
未指定书签。
科室表office创建与操
作
错误!
未指定书签。
医院病房管理系统数据表之间的关系图
错误!
未定义书签。
视
图
错误!
未指定书签。
表的T-SQL语
句
错误!
未指定书签。
聚合函数femdash;—分类聚
合
错误!
未指定书签。
存储过
程
错误!
未指定书签。
触发
器
错误!
未指定书签。
第五章总
结
错误!
未指定书签。
致
谢
•••
错误!
未指定书签。
参考文
献
错误!
未指定书签。
第一章
需求分析医院信息管理系统就是对医院的医生、病人、等信息的管理。
为了方便当今我国的医疗体制正在进行改革,需要医疗市场的进一步规范化,这就利用现代化的工具对医院进行有效的管理,有利于提髙医疗水平和服务质量,更好的服务于社会。
所以我们利用SQLserver20_0技术设计了此医院管理数据库系统,以利用计算机完成病人入院后,对其基本信息、主治医师以及入住病房等信息进行数据库管理,有利于提高入院手续的办理速度以及对医院资源管理的效率。
医院管理系统模块图
用户登录后,进入总的模板控制块,然后根据子模板控制块的选择,进行查询、修改、插入、删除。
所以信息管理系统功能模块图设计如下:
医院管理系统流程图
医院管理的基本业务流程如图
第二章
概念结构设计通常,把每一类数据对象的个体称为实体,而每一类对象的集合称为“实体集”。
而E—R模型的主要成分是实体、联系和属性。
如果用矩形框表示实体集,用带半圆的矩形表示属性,用线段连接实体集与属性,当一个属性或属性组合指定为主码时,在实体集与属性的连接上标记一斜线,则可以表示实体集及每个实体集涉及的属性,实体集之间存在各种关
系,通常把这种关系称为“联系"。
联系有三类:
一对一的联系
(1:
1);—对多的联系(1:
n);多对多的联系(m:
n)o
例如:
此医院系统中“科室"与“病人",“科室”与“病房”,“病人"与“病房”等之间存在的是一对多的联系(l:
n);一个医生属于一个科室,负责多个病人的诊治,一个科室有多个病房,多个医生,一个病房属于一个科室所以,此学生信息系统中实体集与实体集的联系,E—R模型如下:
全局EE--R
第三章
用E-R图描述了医院病房系统中实体集与实体集的联系,
目的以E-R图为工具,设计关系型的数据库,即确定应用系统所使用的数据库包含那些表,以及每个表的结构是怎么样的。
对于(1:
n)联系既可单独对应一个关系模式,也可以不单
独对应一个关系模式,如果联系是单独对应一个关系模式,则由联系的各实体集的主码属性构成关系模式,门端的主码作为该关系模式的主码;如果联系不单独对应一个关系模式,则由联系的属性及1端的主码加入n端实体集对应关系模式中,主码仍是n端的主码。
本系统采用的是单独对应一个关系模式。
所以各实体的E-R图转换其关系模式的如下:
医生表(工作证号,姓名,性别,职称,联系电话,出生日期)
病人表(身份证号,姓名,性别,年龄,联系方式)
科室表(科室号,科名,科地址,联系电话)
病房表(病房号,床位号)
第四章
物理实现数据库是SQLServer20_0存储和管理的对象,从逻辑上看,SQLServer20_0数据库由存放数据的表以及支持这些数据库的存储、检索、安全性和完整性的对象所组成;从物理上看,SQLServer20__0物理数据库指用于存储数据对象的文件及文件组。
数据库创建有二个途径:
一是通过企业管理器,二是查询语句。
本医院病房信息管理系统的建立是通过查询语句建立,创建如下:
数据字典
doctoroffficesickroompatient
数据库的创建
数据库是SQLServer20_0存储和管理的对象查询分析器:
createdatabase
hospitalon(name二"hospital_datan,Filename=,,e:
\",Size=5mb,Ma_size=20mb,F订egrowth二10%)Logon(neinie二"hospital_log",Filename=ne:
\",Size=2mb,Ma_size=5mb,Filegrowth=lmb)Go结果显示窗格:
CREATEDATABASE进程正在磁盘"hospitakdata*'上分配
MB的空间。
CREATEDATABASE进程正在磁盘,rhospital_log,F上分配
MB的空间。
表对象的创建与操作
建立数据库最重要的一步就是创建其中的数据表,即决定数据库包括哪些表,每个表中的包含哪些字段,每个字段的数据类型等。
创建表有二种途径,一是企业管理创建,二是查询语句,此设计用的是第二种。
字段名称字段含义数据类型是否为主键约束条件dno工作证号varchar(20)是非空
dname姓名varchar(16)
dse_性别bit
默认为0birthday出生日期datetime
非空tel联系电话char(20)
title职称char(10)
ono所属科室号varchar仃6)
字段名称字段含义数据类型是否为主键约束条件ono科室号varchar(16)是非空
oname科名varchar(16)
address科地址varchar(16)
tel联系电话char(20)
字段名称字段含义数据类型是否为主键约束条件sno病房号阳“屆玖比)是非空
num床位数varchar(20)
字段名称字段含义数据类型是否为主键约束条件pno身份证号varchar(20)是非空
pname姓名varchar(16)
pse_性别bit
默认为0birthday出生日期datetime
非空sno病房号varchar(20)
dno主治医生号varchar(20)
对表的插入、修改和删除可用查询语句或界面操作来操作,但通过用查询语句操作表数据更为灵活,功能更为强大。
医生表rdoctor创建与操作usehospitalcreatetabledoctor/_医生表doctor信息的创建_/(dno
varchar(20)primarykey,
dname
varchar(16),dse_
bitnotnulldefault(0),birthday
datetime
notnull,tel
char(20),title
char(10),ono
varchar(16))结果显示窗口:
/_医生表doctor信息的插入_/insertintodoctorvalues(‘结果显示窗格:
/_医生表doctor信息的修改_/updatedoctorsetbirthday="1989-11-5",title二❷❷门诊医师❷令wheredno二”00001”结果显示窗格:
/_医生表doctor信息的删除_/deletedoctorwheredno=noooorr结果显示窗格:
usehospital
createtablepatient/_仓U建病人表patient_/(pnovarchar(20)
primarykey,
pname
varchar(16),pse_
bit
notnulldefault(0),birthday
datetime
notnull,tel
char(20),sno
varchar(16),dno
varchar(20)ono
varchar(16))结果显示窗格:
/_病人表patient信息的插入_/Insertintopatientvalues
(,❷❷❷❷,‘李冰❷❷,‘1❷❷,
‘1981T0-23令❷‘‘,令❷301❷❷,
‘00002‘,‘0222❷❷)结果显示窗格:
/_病人表patient信息的修改_/updatepatientsetdno
=254
wherepno二❷❷❷❷结果显示窗格:
/_病人表patient信息的删除_/
结果显示窗格:
usehospitalcreatetableoffice(ono
varchar(16)
primarykey,
oname
varchar(16),address
varchar(16),tel
char(20)
)结果显示窗口:
/_科室表office信息的插入_/insert
intoofficevalues
(felsquo;0020❷令,‘手足科‘,‘北区
6号楼❷❷,‘❷令)
结果显示窗格:
/_科室表office信息的修改_/—❷❷20❷❷结果显示窗
/_科室表office信息的删除_/deleteofficewhereono=”0020"结果显示窗格:
/_病房表sickroom创建与操作_/createtable
sickroom(sno
varchar(16)
primarykey,
num
varchar(20))结果显示窗口:
/_病房表sickroom信息的插入_/insert
intosickroomvalues(❷❷304❷❷,❷❷3❷令)
结果显示窗格:
/_病房表sickroom信息的修改_/updatesickroomsetnum=5wheresno二❷❷304❷❷结果显示窗格:
/_病房表sickroom信息的删除_/deletesickroomwheresno="304”结果显示窗格:
视
图
视图是由一个或多个基本表(或视图)导出的数据信息,可根据用户的不同建立不同的视图。
如下三个视图以及视图的T-SQL语句:
创建一个视图vwl,通过该视图可以看到每个病人的身份证号,姓名,年龄,和联系电话createviewvwl(身份证号,姓名,年龄,联系电话)asselectpno,pname,year(getdate)-year(birthday),telfrompatientselect_
fromvwl结果显示:
createviewvw2asselect_
frompatientwherepse_二"1"select_
fromvw2createviewvw3(身份证号,姓名,所住病房号,所属科室名,主治医生)asselectpno,pname,,oname,dname
frompatient,doctor,sickroom,officewhere=and二
and=
andyear(getdate)-year>30select_
fromvw3表的TT--LSQL语句
查询是数据库的核心操作,是数据库的其他操作(如插入、修改、删除等)的基础。
T-SQL语句对数据库的查询使用select语句。
select语句具有灵活的使用方式和强大的功能。
如下是对医院病房数据库进行的各种查询:
简单查询(l)select_
fromdoctorwheretitle二"主治医师"
/_查询主治医师的信息_/结果显示窗格:
(2)select_
frompatientwhereyear(getdate)-year(birthday)〈20/_查询年龄〈20病人信息_/结果显示窗格:
模糊查询/_查询姓王的病人的所有信息_/select_
frompatientwherepnamelike"王%"嵌套查询
(1)查询所有病情属于牙科的病人的所有信息。
select_
frompatientwhereonoin(selectonofromofficewhereoname=H牙科")
(2)查询所有被张青医生主治的男病人的姓名和病情所属科室号。
selectpname,onofrompatientwherednoin
(selectdnofromdoctorwherednonie二"张青")andpse_二"0"
连接查询
(1)查询所有病情属于牙科的病人的所有信息。
select
frompatient,office
where=andoname=H牙科"
(2)查询所有被张青医生主治的男病人的姓名和病情所属科室号。
selectpname,patient,onofrompotient,doctor
where=andpse_=,,Onanddnome二"张青"
聚合函数——分类聚合
(1)统计女病人的总人数select女病人人数=count(_)frompatient
wherepse_=l
(2)男性主治医生的人数select主治医生的人数=count(_)fromdoctorwheredse_=0andtitie二"主治医师"(3)20岁以上的男女医生人数selectdse_as性别,人数=count(_)fromdoctorwhereyear(getdate)-year(bitthday)>20groupbydse_
存储过程
在SQLServer中,存储过程是数据库对象之一,它有执行速度快、确保数据库的安全和自动完成需要预先执行的任务等优点,本设计创建两个个存储过程,一个功能是创建一个存储过程prcsl,通过该存储过程可以查看所有病人的信息。
另一个功能是创建一个存储过程prcs2,通过输入医生职称,可以查看有该职称的医生人数。
存储过程的创建和调用如下:
存储过程:
(1)创建一个存储过程prcsl,通过该存储过程可以查看所有病人的信息。
createprocprcslasselect_
frompatient
(2)创建一个存储过程prcs2,通过输入医生职称,可以查看有该职称的医生人数。
createprocprcs2itlevarchar(16),@nintoutputasife_ists(select_
fromdoctorwheretitle=@title)(select@n=count(_)fromdoctor)elseprint"没有该职称"declareamelvarchar(20),@nlintset@namel二"主治医i丿帀"e_ecprcs2@name1,@n1outputselect@name1as职称,@nlas人数
触发器
触发器是一类特殊的存储过程。
触发器与表的关系密切,可用于维护表中的数据。
当有数据影响到触发器维护的数据时,触发器自动执行。
如下是系统触发器的创建和执行:
创建一个触发器把医生表中工作证号为0006的职称由❷❷实习医生❷❷改为❷❷主治医生❷❷createtrigger
trgsondoctorforupdateasbegindeclare@novarchar(20)select©no二dnofromdeletedupdatedoctorsettitle二”主治医生”
wheredno二0006endupdatedoctorset
title二"主治医生"wheredno=0006select_fromdoctor/_
update操作之前,工作证号为0006的职称,部分信息如下_//_
update操作之后,工作证号为0006的职称,部分信息如下_/第五章
总结由医院信息管理系统的需求设计出发,得出“医生”、
“病人”、“病房”、“科室”、四个实体集的四个表以及表的设计。
表的E-R模型、表的关系模式以及它们之间的相互转换,以此来显示表之间的关系,通过这让我们熟练掌握其思想。
通过做课程设计,有几点感想,归纳如下。
1.
扎实的理论基础。
如果不掌握它们,很难写出高水平的程序。
而这一点又是我们所缺乏的。
2.
不钻牛角尖。
当遇到障碍的时候,暂时远离电脑,当重新开始工作的时候,也许会发现那些难题现在竟然可以迎刃而解。
3.
多与别人交流。
三人行必有我师。
4.
良好的编程风格。
注意养成良好的习惯,代码的缩进编排,变量的命名规则要始终保持一致。
如果注释和代码不一致,那就更加糟糕。
5.具体到程序的实现,我发现比较集中的问题就在于控件和数据库的连接上,有的时候比较简单,有的时候又比较迷茫,最后在和同学的讨论下才顺利完成。
致谢本设计是在刘书影老师的悉心指导下完成的。
通过我们的设计选题、资料查找,刘老师修改等方面对我进行了悉心的指导和鼓励。
刘老师渊博的知识、严谨的治学态度、求实的工作作风、平易近人的待人方式将是我以后工作和学习的榜样。
值此设计完成之际,谨向指导老师刘老师致以最衷心的感谢和最崇高的敬意!
通过我们组的努力做出了这个医院信息管理系统,我们组六个同学在这次课程设计中不仅加深了对数据库的理解,还加强了我们团队合作的能力,我想这对我们今后的学习生活也是有着无比重要的意义。
当我们看到我们的劳动成果,无比的开心,在这一个星期中,我们不分昼夜的工作,虽然参考了大量资料,但是大部分的工作还是要靠自己完成。
通过这次的SQLServer课程设计,我们系统的复习了SQL的指令用法,深入了解了SQL数据库的功能,对SQL命令熟练运用,让我更加加深了它的语句思想!
让我从这次课程设计中获得了好多知识,获益匪浅!
参考文献[1]萨师熄,王珊.数据库系统概论(第三版).
北京:
高等教育出版社,20—0.
[2]齐治昌,谭庆平,宁洪.软件工程(第二版).北京:
高
等教育出版社,20_4.
[3]钱雪忠.数据库原理应用(第二版).
北京:
北京邮电大学出版社,2021.