医院住院部信息管理系统.doc

上传人:豆**** 文档编号:24071489 上传时间:2022-07-03 格式:DOC 页数:64 大小:599.50KB
返回 下载 相关 举报
医院住院部信息管理系统.doc_第1页
第1页 / 共64页
医院住院部信息管理系统.doc_第2页
第2页 / 共64页
点击查看更多>>
资源描述

《医院住院部信息管理系统.doc》由会员分享,可在线阅读,更多相关《医院住院部信息管理系统.doc(64页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-date医院住院部信息管理系统医院住院部信息管理系统目录1绪论12需求分析13总体设计13.1 功能图13.2安全设计24概念结构设计25逻辑结构设计25.1关系模型转化35.2确定函数依赖、属于第几范式36物理结构设计37数据库的实施、运行47.1创建数据库、建立表47.1.1创建数据库yygl47.1.2创建医生表57.1.3创建病人表57.1.4创建病房表67.1.5创

2、建治疗表67.1.6创建入住表77.2创建视图87.2.1创建病人基本信息查询视图87.2.2创建医生信息查询视图87.2.3创建病人入院后情况信息查询视图87.3创建索引97.4创建和执行存储过程97.4.1创建并执行插入数据存储过程97.4.2创建并执行查询数据存储过程97.5创建触发器。107.5.1创建insert触发器107.5.2创建update触发器117.6表中添加信息117.7 进行系统维护137.7.1查询病人信息137.7.2 删除病人信息148结论149学习体会14参考文献:14致 谢 141 绪论医院住院部信息管理系统方便医生和病人搜索相关住院信息,并且实现从住院、治

3、疗到出院的全过程精确管理与监控,大幅度减少住院治疗事故,对于常出现医疗和财务纠纷的细节,可以极大地节约成本,提升医院整体效益,赢得长足发展。医院住院部信息管理系统是现代化医院运营的必要技术支撑和基础设施,实现医院住院部信息管理系统的目的就是为了以更现代化、科学化、规范化的手段来加强医院的管理,提高医院的工作效率,改进医院质量,从而树立现代医院的新形象,这也是未来医院发展的必然方向。2 需求分析作为医院住院部这样的的场所,其经济成分比重相对较多,对于患者来说来说主要有住院,缴费等情况。而医院则是针对患者入院后对其进行治疗方面。如何让这么多患者实行分类治疗信息管理正是医院住院部信息系统的目的所在。

4、本系统综合了经济的角度,建立了信息中心,可将来各自患者的信息集中管理,提高医院住院部管理的高效性和有序性,快速反馈了患者信息。从系统开发及实施的可行性和灵活性考虑,本系统的软件开发环境主要选择了当前较为流行的功能强大的 SQL sever 2005 数据库。3 总体设计对数据库进行总体分析设计,掌握所要进行设计的数据库的基本框架,并考虑到数据库的安全完整型的设计。3.1 功能图系统的核心是对住院信息的管理。查询功能也是系统的基本功能。为了实现医院住院部信息管理系统,方便用户和管理与需求,将医院住院部信息管理系统分为:医生管理,病人管理,病房管理,系统维护四个功能模块,如下图3-1。图3-13.

5、2安全设计给数据库中表创建不同的视图,保证数据的安全性,使得不想被人知道的部分信息能够较好地隐藏下来。给数据库中表创建自定义约束,比如check约束、主键约束和唯一键约束,以此来保证数据库的完整性。给数据库创建存储过程和触发器,防止工作人员由于误操作而删掉部分重要信息。4 概念结构设计在需求分析阶段所得到的用户需求抽象为信息结构即概念结构模型的过程就是概念结构设计。它是整个数据库设计的关键。这个部分的关键是设计,一般根据系统要求,画出能反映本系统每个应用需求的 E-R 图。其中包括五个实体即医生实体、病人实体、病房实体、治疗实体、入住实体,以及一些实体与属性之间的联系。然后对初始的 E-R 图

6、进行优化,消除冗余和可能存在的矛盾。根据需要得到一个基本的E-R图,如下图4-1所示。图4-1 医院住院部信息管理系统整体E-R图5 逻辑结构设计逻辑结构的设计的任务就是把概念结构设计阶段设计好的基本E-R模型转换为与选用DBMS产品所支持的数据模型相符合的逻辑结构。5.1关系模型转化医生表(医生编号,姓名,性别,出生日期,职称,科室)病人表(病人编号,姓名,性别,出生日期,缴费情况,缴费金额,病症)病房表(病房号,床位号,床位数)治疗表(医生编号,病人编号,病人情况,医嘱类型,医嘱内容,治疗时间)入住表(病人编号,病房号,床位号,住院时间,出院时间)5.2确定函数依赖、属于第几范式医生表:医

7、生编号姓名,医生编号姓别,医生编号出生日期,医生编号职称,医生编号科室,没有传递依赖,没有部分依赖,则此范式属于第三范式。病人表:病人编号姓名,病人编号姓别,病人编号出生日期,病人编号缴费情况,病人编号缴费金额,病人编号病症,。没有传递依赖,没有部分依赖,则此范式属于第三范式。病房表:(病房号,床位号)床位数,没有传递依赖,没有部分依赖,则此范式属于第三范式。治疗表:(医生编号,病人编号)病人情况,(医生编号,病人编号)医嘱类型,(医生编号,病人编号)遗嘱内容,(医生编号,病人编号)治疗时间,有传递依赖,没有部分依赖,则此范式属于第三范式。入住表:(病人编号,病房号,床位号)住院时间,(病人编

8、号,病房号,床位号)出院时间,有传递依赖,没有部分依赖,则此范式属于第三范式。6 物理结构设计设计中所涉及的表有医生信息表doctor,病人信息表patinet,病房信息表sickroom,治疗情况信息表curecondition,入住信息表intake。表6-1 doctor表列名数据类型宽度允许空值说明列名含义DidNchar10否主键、唯一键职工号DnameNchar16是姓名DsexNchar1是男或女性别DbirthDatetime是出生日期TitleNchar10是职称OfficeNchar10是科室表6-2 patinet表列名数据类型宽度允许空值说明列名含义PidNchar10

9、否主键、唯一键病人编号PnameChar16是姓名PsexNchar1是男或女性别PbirthDatetime是出生日期PmonText是缴费情况PmoneyFloat是缴费金额IllnessText是病症表6-3 sickroom表列名数据类型宽度允许空值说明列名含义SidNchar10否主键病房号SroomidInt否主键、check约束床位号SnumNchar10是 Check约束床位数表6-4 curecondition表列名数据类型宽度允许空值说明列名含义DidNchar10否主键、外键医生编号PidNchar10否主键、外键病人编号PconditionText是病人情况Ordert

10、ypeText是医嘱类型McontentText是医嘱内容CuretimeDatetime是治疗时间表6-5 intake表列名数据类型宽度允许空值说明列名含义PidNchar10否主键、外键病人编号SidNchar10否主键、外键病房号SroomidInt否主键、外键病床号intaketimedatetime是入住时间Outtimedatetime是Check约束出院时间7 数据库的实施、运行完成物理结构设计之后,就要用DBMS提供的数据定义语言和其他实用程序将数据库逻辑设计和物理设计结果严格描述出来,成为DBMS可以接受的源代码,再经过调试产生目标文件。7.1创建数据库、建立表经过以上结构

11、设计,使用软件sql server 2005,通过sql语句创建数据库以及以上5个表。7.1.1创建数据库yygl创建数据库所用到的sql语句:CREATE DATABASE yygl ON PRIMARY ( NAME = Nyygl, FILENAME = ND:库yygl.mdf , SIZE = 3072KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB ) LOG ON ( NAME = Nyygl_log, FILENAME = ND:库 yygl_log.ldf , SIZE = 1024KB , MAXSIZE = 2048GB , FI

12、LEGROWTH = 10%) COLLATE Chinese_PRC_CI_AS7.1.2创建医生表在医生表中“医生编号”列建立主键约束,使每个医生编号只代表一名医生,“医生编号”不能为空值;在“性别”列上创建check约束,使“性别”属性的取值只能是男或女二者中的一个,不允许出现第三个;在“医生编号”列唯一性约束,保证职工号的唯一性。创建医生信息表所用到的sql语句:CREATE TABLE dbo.doctor(did nchar(10) NOT NULL,dname nchar(16) NULL,dsex nchar(1) NULL,dbirth datetime NULL,title

13、 nchar(10) NULL,office nchar(10) NULL, CONSTRAINT PK_doctor PRIMARY KEY CLUSTERED ( did ASC)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON PRIMARY,CONSTRAINT uq_key UNIQUE NONCLUSTERED ( did ASC)WITH (PAD_INDEX = OFF, STATIS

14、TICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON PRIMARY) ON PRIMARYGOALTER TABLE dbo.doctor WITH CHECK ADD CONSTRAINT CK_doctor CHECK (dsex=女 OR dsex=男)GOALTER TABLE dbo.doctor CHECK CONSTRAINT CK_doctor7.1.3创建病人表在病人表中“病人编号”列建立主键约束,是每一个病人编号都代表着一个病人,“病人编号

15、”不能为空值;在“性别”列上创建check约束,使“性别”属性的取值只能是男或女二者中的一个,不允许出现第三个;在“病人编号”列唯一性约束,保证职工号的唯一性。创建病人信息表所用到的sql语句:CREATE TABLE dbo.patinet(pid nchar(10) NOT NULL,pname nchar(10) NULL,psex nchar(1) NULL,pbirth datetime NULL,pmon text NULL,pmoney float NULL,illness text NULL, CONSTRAINT PK_patinet_1 PRIMARY KEY CLUSTE

16、RED (pid ASC)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON PRIMARY,CONSTRAINT un_p UNIQUE NONCLUSTERED (pid ASC)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOC

17、KS = ON) ON PRIMARY) ON PRIMARY TEXTIMAGE_ON PRIMARYGOALTER TABLE dbo.patinet WITH CHECK ADD CONSTRAINT CK_patinet CHECK (psex=女 OR psex=男)GOALTER TABLE dbo.patinet CHECK CONSTRAINT CK_patinet7.1.4创建病房表在病房表中“病房号”和“病床号”列建立联合主键约束,是每一个病房里的每一个床上只能住着一个病人,“病房号”和“病床号”不能为空值。“病床号”列创建check约束,使得病床号只能在1到3之间,“床位

18、数”列创建check约束,使得床位数只能在1到3之间。创建病房信息表所用到的sql语句:CREATE TABLE dbo.sickroom(sid nchar(10) COLLATE Chinese_PRC_CI_AS NOT NULL,sroomid int NOT NULL,snum nchar(10) COLLATE Chinese_PRC_CI_AS NULL, CONSTRAINT PK_sickroom PRIMARY KEY CLUSTERED (sid ASC, sroomid ASC)WITH (IGNORE_DUP_KEY = OFF) ON PRIMARY) ON PRI

19、MARYGOALTER TABLE dbo.sickroom WITH CHECK ADD CONSTRAINT CK_sickroom CHECK (snum=(1) AND snum=(1) AND sroomid=(3)7.1.5创建治疗表在治疗表中“医生编号”和“病人编号”列建立联合主键约束 “病人编号”和“病人编号”不能为空值;“病人编号”列与doctor表中“病人编号”列建立外键关系,表示两个表之间的联系;“病人编号”列月patinet表中“病人编号”列建立外键关系,表示两表之间的联系。创建治疗情况信息表所用到的sql语句:CREATE TABLE dbo.cureconditio

20、n(did nchar(10) NOT NULL,pid nchar(10) NOT NULL,pcondition text NULL, ordertype text NULL,mcontent text NULL, curetime datetime NULL, CONSTRAINT PK_curecondition PRIMARY KEY CLUSTERED (did ASC,pid ASC)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, AL

21、LOW_PAGE_LOCKS = ON) ON PRIMARY) 、ON PRIMARY TEXTIMAGE_ON PRIMARYGOALTER TABLE dbo.curecondition WITH CHECK ADD CONSTRAINT FK_curecondition_doctor FOREIGN KEY(did)REFERENCES dbo.doctor (did)GOALTER TABLE dbo.curecondition CHECK CONSTRAINT FK_curecondition_doctorGOALTER TABLE dbo.curecondition WITH C

22、HECK ADD CONSTRAINT FK_curecondition_patinet FOREIGN KEY(pid)REFERENCES dbo.patinet (pid)GOALTER TABLE dbo.curecondition CHECK CONSTRAINT FK_curecondition_patinet7.1.6创建入住表在入住表中“病人编号”、“病房号”和“病床号”列建立主键约束,使每位病人在同一时间内只能有一次入院和出院时间,“病人编号”、“病房号”和“病床号”不能为空值;“病房号”和“病床号”列与sickroom表中“病房号”和“病床号”列建立外键关系,表示两个表之间

23、的联系;“病人编号”列月patinet表中“病人编号”列建立外键关系,表示两表之间的联系。创建入住信息表所用到的sql语句:CREATE TABLE dbo.intake(pid nchar(10) NOT NULL,sid nchar(10) NOT NULL,sroomid int NOT NULL,intaketime datetime NULL,outtime datetime NULL, CONSTRAINT PK_intake PRIMARY KEY CLUSTERED (pid ASC,sid ASC,sroomid ASC)WITH (IGNORE_DUP_KEY = OFF)

24、 ON PRIMARY) ON PRIMARYGOALTER TABLE dbo.intake WITH CHECK ADD CONSTRAINT FK_intake_patinet FOREIGN KEY(pid)REFERENCES dbo.patinet (pid)GOALTER TABLE dbo.intake WITH CHECK ADD CONSTRAINT FK_intake_sickroom FOREIGN KEY(sid, sroomid)REFERENCES dbo.sickroom (sid, sroomid)GOALTER TABLE dbo.intake WITH C

25、HECK ADD CONSTRAINT CK_Time CHECK (intaketime=outtime) 在sql server 2005中写入以上代码执行,得到如下图7-1中的表。图7-17.2创建视图视图被看成是虚拟表,它并不表示任何物理数据,只是用来查看数据的视窗而已。视图作为一种数据库对象,为用户提供了一种检索数据表中数据的方式,用户可以通过视图浏览数据表中感兴趣的部分或全部数据。7.2.1创建病人基本信息查询视图为了方便查询病人的基本情况,比如查询病人的编号,姓名,性别,缴费情况,病症等,创建了一个基本视图。创建视图所需要的sql语句:CREATE VIEW dbo.View_p

26、contentASSELECT pid, pname, psex, pmon, illness FROM dbo.patinet7.2.2创建医生信息查询视图为了方便查询医生信息,比如医生编号,姓名,所在科室,这位医生所治疗的病人编号,姓名,病人情况以及有有没有给他开医嘱等等,创建了一个基本视图。创建视图所需要的sql语句:CREATE VIEW dbo.View_dcontentASSELECT dbo.doctor.did, dbo.doctor.dname, dbo.patinet.pid, dbo.patinet.pname, dbo.doctor.office, dbo.cureco

27、ndition.pcondition, dbo.curecondition.mcontentFROM dbo.doctor INNER JOIN dbo.curecondition ON dbo.doctor.did = dbo.curecondition.did INNER JOIN dbo.patinet ON dbo.curecondition.pid = dbo.patinet.pid7.2.3创建病人入院后情况信息查询视图为了方便了解医生所治疗的病人的基本情况及医生所在科室等,创建一个视图。创建视图所用到的sql语句:CREATE VIEW dbo.View_pincontentAS

28、SELECT dbo.patinet.pid, dbo.patinet.pname, dbo.sickroom.sid, dbo.sickroom.sroomid,dbo.intake.intaketime,dbo.intake.outtimeFROM dbo.patinet INNER JOIN dbo.intake ON dbo.patinet.pid = dbo.intake.pid INNER JOIN dbo.sickroom ON dbo.intake.sid = dbo.sickroom.sid AND dbo.intake.sroomid = dbo.sickroom.sroo

29、mid7.3创建索引在数据库中为curecondition表建立基于did列和pid列的符合索引did_pid_index。创建索引所用到的sql语句:create index did_pid_indexon curecondition(pid,did)图7-2 did_pid_index索引 7.4创建和执行存储过程存储过程预编译并存储在数据库中的特性,不仅能提高应用效率,确保一致性,更能提高系统执行速度。7.4.1创建并执行插入数据存储过程针对病人信息表patinet,创建一个存储过程p_proc2,执行该存储过程将向数据表patinet中插入一条数据,新纪录的值有参数提供。创建存储过程所

30、用到的sql语句:create proc p_proc2(id nchar(10),nam nchar(10),sex nchar(1),birth datetime,mon text,money float,ill text)asinsert into patinet values(id,nam,sex,birth,mon,money,ill)创建完成后,插入一条数据:execute p_proc2 id=0014,nam=吴丽丽,sex=女,birth=1985-5-14,mon=已缴费,money=1456,ill=白血病得到数据已加入到数据库中。图7-3 插入数据结果 7.4.2创建并

31、执行查询数据存储过程针对病人信息表patinett,创建一个按照性别统计人数的存储过程p_proc3,要求输入性别值后,返回对应性别的病人数,但需保证其在每次被执行时都被重编译处理。创建存储语句所用到的sql语句:create proc p_proc3(in_sex nchar(2),out_num int output)with recompileasbeginif in_sex=男select out_num=count(psex)from patinet where psex=男elseselect out_num=count(psex)from patinet where psex=女

32、end创建完成后,查询一下医院里住院的女病人的个数:declare man_num intexec p_proc3 女,man_num outputselect man_num得到如下图7-4所示的结果:图7-47.5创建触发器。触发器是一种专用类型的存储过程,它被绑定到数据表或者视图上,通过事件进行触发。触发器的主要作用是实现由主键和外键所不能保证的复杂的参照完整性和数据一致性。7.5.1创建insert触发器针对病人信息表patinet,创建一个触发器p_tri1,当向表patinet中插入一条记录时,自动显示表patinet中的记录。创建触发器所用到的sql语句:create trigg

33、er p_trion patinetfor insertasselect * from patinetinsert into patinet values(0015,艾静,女,1988-6-2,已缴费,1586,坏死)运行语句得到的结果如下图7-5显示在结果栏中:图7-57.5.2创建update触发器针对病人信息表patinet,创建一个触发器p_tri2,该触发器将在修改时被触发,该触发器不允许修改表的did列。创建触发器所用到的sql语句:create trigger p_tri2on patinetfor updateasif update(pid)beginraiserror (您不

34、能修改病人编号,否则会造成记录混乱,10,1)rollback transactionend修改0001号病人的编号为0019,输入一下sql语句:update patinet set pid=0019 where pid=0001得到如下图7-6所示的消息:图7-67.6表中添加信息将医院中的信息填入到各个表中。图7-7 Doctor表 图7-8 Patinet表图7-9 sickroom表图7-10 Curecondition表 图7-11 Intake表 图7-12 View_dcontent视图信息表 图7-13 View_pcontent视图信息表 图7-14 View_pincon

35、tent视图信息表 7.7 进行系统维护对系统地维护表现在对表中的数据进行增删改的操作。7.7.1查询病人信息医生治疗病人之后借此查询一下病人的治疗情况,可以使用下列sql语句:select treatment from curewhere pno=01得出病人的治疗情况为良好,如图7-15。图7-157.7.2 删除病人信息医生治疗病人后查询治疗良好,病人就可以出院,出院之后就可以删除病人信息。删除信息所用到sql语句:delete from patinetwhere pno=11如此一来就删除掉了11号病人的基本信息。8 结论一个月的课程设计结束了,在这次的课程设计中不仅检验了我所学习的知

36、识,也培养了我如何去把握一件事情,如何去做一件事情,又如何完成一件事情。在设计过程中,和同学们相互探讨,相互学习,相互监督。9 学习体会在这次设计过程中,体现出自己单独设计的能力以及综合运用知识的能力,体会了学以致用、突出自己劳动成果的喜悦心情,从中发现自己平时学习的不足和薄弱环节,从而加以弥补。参考文献:1 赵杰.毕业设计指导及案例剖析.数据库应用方向.北京:清华大学出版社,2005 2 王珊, 萨师煊.数据库系统概论M .北京:高等教育出版社,20063 壮志剑.数据库原理与SQL ServerM.北京:高等教育出版社,20064 黄维通.SQL Server 数据库的技术与应用M.北京:清华大学出版社,20115 岳付强.SQL Server 2005 从入门到实践M.北京:清华大学出版社,20096 周爱武,汪海威,肖云.数据库课程设计M . 北京:机械工业出版社,2012.7 郭江峰.SQL Server2005数据库技术与应用M.北京:人民邮电出版社,2009.8应宏.数据库原理实验M.北京:西南师范大学出版社,2009.致 谢在此感谢我们的冯春辉老师,老师严谨细致、一丝不苟的作风一直是我工作、学习中的榜样;冯老师循循善诱的教导和不拘一格的思路给予我无尽的启迪;这次课程设计的每个实验细节和每个数据,都离不开冯老师的细心指导。-

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 小学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁