医院信息管理系统_第1页
医院信息管理系统_第2页
医院信息管理系统_第3页
医院信息管理系统_第4页
医院信息管理系统_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、软件学院计算机系 数据库技术及应用xx学院软件学院计算机系医院信息管理系统数据库构建与设计课程名称:数据库技术及应用学生姓名:xx学号级:xx班指导老师:xx老师日期:2014年06月目录第一章 前言31.1课题简介31.2设计目的3第二章 需求分析42.1可行性研究42.1.1 技术可行性42.1.2 经济可行性42.1.3 操作可行性42.2 需求分析52.3 开发环境介绍52.3.1 Java介绍52.3.2 MySQL介绍6第三章 数据库设计63.1 数据库概念结构设计73.2 数据库逻辑设计93.2.1 表设计93.2.2 约束设计113.2.3 视图设计1

2、23.2.4 存储过程设计133.2.5 触发器设计143.2.6测试数据153.2.7 界面模拟图17第三章总结18参考文献18附件A19第一章 前言1.1 课题简介数据库技术是计算机科学技术发展最快,应用最为广泛的技术之一。其在计算机设计,人工智能,电子商务,企业管理,科学计算等诸多领域均得到了广泛的应用,已经成为计算机信息系统和应用的核心技术和重要基础。本文主要介绍医院信息管理系统的数据库设计,从需求分析到数据库的运行与维护都进行详细的叙述。本系统是利用MYSQL开发出来的。通过MYSQL建立医院信息管理系统,大大方便和简化了数据的查询和处理,管理员可以通过MYSQL语言对表内数据进行添

3、加,删除,修改,查询等操作。随着数据处理的不断进步和计算机网络的迅速发展,使数据库应用系统不仅在功能而且在结构上都有了深刻的变化,而且运用在生活的每一个方面。目前在关系数据库中用得最多的MYSQL数据库,开发数据库的语言工具多数用Java.。所以对于计算机专业的学生来说掌握数据库应用的基本技术,熟悉编程语言与MYSQL数据库的结合运用是我们计算机专业学生之必备本领。本次课程设计是以医院信息管理系统为模拟模型,运用Java编程语言结合MYSQL数据库所开发系统。1.2 设计目的一个现代化医院的综合管理是否先进是直接通过其信息化水平来体现的,“医院信息管理系统”是国内先进的信息化管理系统,该系统包

4、含实现药品类型及药品信息的管理,实现药品的入库、出库管理,实现科室、医生、病人的管理,药库管理等多个子系统,可以满足各个部门的业务信息处理和信息共享。“医院信息管理系统”还可开发制作触摸屏,以供患者了解医院信息,查找专家资料,方便查询各种费用收取情况。该系统还能为住院病人提供每日住院清单,使患者明白、放心治疗。为了满足我国医院发展的需要,为了使祖国医学早日与世界科技接轨,许多医院集中了大量的人力和物力,借鉴国内外HIS的先进经验,并结合国内各家医院的传统管理模式和实际需求,因此医院信息管理系统应运而生。医院信息管理系统(Hospital Information System简称HIS)是一门融

5、医学、信息、管理、计算机等多种学科为一体的交叉科学,在发达国家已经得到了广泛的应用,并创造了良好的社会效益和经济效益。医院信息管理系统是现代化医院运营的必要技术支撑和基础设施,实现医院信息管理系统的目的就是为了以更现代化、科学化、规范化的手段来加强医院的管理提高医院的工作效率,改进医疗质量,从而树立现代医院的新形象,这也是未来医院发展的必然方向。第二章 需求分析2.1 可行性研究系统开始和可行性研究是为系统开发做前期准备1。在对一个项目的开发之前,我们总是要对其进行一个可行性分析与需求分析,通过和指导老师的共同分析得出了可行性开发计划。对于需求分析我们作了如下调查分析的需求。2.1.1 技术可

6、行性随着软件编程技术的不断增加,功能的不断加强,和网络技术的不断成熟,信息安全的不断完善以及开发工具的日益进步,采用计算机系统来管理超市要求数据的采集、更新能够完整、准确和及时,所以开发通用的医院信息系统已经完全可以做到。2.1.2 经济可行性因为通过网络传递销售信息,可以不受距离的限制,因此可以节约许多的人力和物力,方便管理,由此可以减少不必要的开支,同时该系统可以提高医院的工作效率,即提高了医院的经济效益,所以从经济上是完全可行的。2.1.3 操作可行性本系统采用Windows图形界面,是大家熟悉的操作系统,对于用户只需要具有一般的计算机知识的人员都可以轻松上手。而且整个销售系统采用最友好

7、的交互界面,简洁明了,不需要对数据库非常了解。 由此,该系统的操作是可行的,有必要推广该系统。综合以上三方面,该系统具有很高的开发可行性,无论是从技术上经济上还是操作上。2.2 需求分析对于大型医院信息管理系统来说,通常它会把员工人事管理系统也包括在内。由于现考虑的是小型医院,其可承担的研发支费也有限。所以在这个系统中,要实现的功能主要如下:(1)功能要求实现药品类型及药品信息的管理;实现药品的入库、出库管理;实现科室、医生、病人的管理;创建触发器:当药品入库、出库时自动修改库存;创建存储过程统计某段时间内,各科室的就诊人数和输入情况;创建视图查询各种药品的库存总数;(2)数据精确度药品的入库

8、与出库中,价格、数量用整型,日期用日期时间类型。(3)时间特性该系统软件从启动到进入系统登录界面的时间正常情况下少于5秒,录入并更新数据的时间正常情况下少于10秒。(4)适用性该管理系统软件适用于Windows 2000/Windows XP中文版下运行。2.3 开发环境介绍2.3.1 Java介绍Java是由Sun Microsystems公司于1995年5月推出的Java程序设计语言(以下简称Java语言)和Java平台的总称。用Java实现的HotJava浏览器(支持Java applet)显示了Java的魅力:跨平台、动态的Web、Internet计算。从此,Java被广泛接受并推动了

9、Web的迅速发展,常用的浏览器现在均支持Java applet。另一方面,Java技术也不断更新。Java平台由Java虚拟机(Java Virtual Machine)和Java 应用编程接口(Application Programming Interface、简称API)构成。Java 应用编程接口为Java应用提供了一个独立于操作系统的标准接口,可分为基本部分和扩展部分。在硬件或操作系统平台上安装一个Java平台之后,Java应用程序就可运行。现在Java平台已经嵌入了几乎所有的操作系统。这样Java程序可以只编译一次,就可以在各种系统中运行。Java应用编程接口已经从1.1x版发展到1

10、.2版。目前常用的Java平台基于Java1.4,最近版本为Java1.7。Java分为三个体系JavaSE(Java2 Platform Standard Edition,java平台标准版),JavaEE(Java 2 Platform,Enterprise Edition,java平台企业版),JavaME(Java 2 Platform Micro Edition,java平台微型版)。2.3.2 MySQL介绍MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司。Mysql是最流行的关系型数据库管理系统,在WEB应用方面MySQL是

11、最好的。RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL所使用的SQL语言是用于访问数据库的最常用标准化语言。MySQL软件采用了双授权政策(本词条“授权政策”),它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择MySQL作为网站数据库。由于其社区版的性能卓越,搭配PHP和Apache可组成良好的开发环境。第三章 数

12、据库设计数据库在一个管理信息系统中占有非常重要的地位,数据库结构设计的好坏将直接对应用系统的效率以及实现的效果产生影响。合理的数据库结构设计可以提高数据存储的效率,保证数据的完整和一致,同时,合理的数据库也将有利于程序的实现。设计数据库系统时应该充分了解用户各个方面的需求,包括现有的以及将来可能增加的需求。3.1 数据库概念结构设计本系统根据上面功能分析和需求总结设计出的实体共有下面几个,下面分别列出本系统所使用到的各基本实体和各实体之间的联系。如图3-1所示:- 22 -药品价格图3-1 实体联系(E-R)图1nn1n1nmm1医生药品药房库病人科室入库药品属于库存入库就诊医生年龄医生性别医

13、生姓名医生电话医生编号病人电话就诊时间病人年龄科室位置科室编号科室名称病人编号病人姓名病人性别生产厂家失效日期生产日期库存数量药品编号药品名称入库数量生产日期药品编号药品编号药品名称单品数量库号管理人姓名药品类型药品类型管理人电话药品价格入库日期失效日期科室(科室编号,科室名称,科室位置)医生(医生编号,医生姓名,医生性别,医生年龄,医生电话,科室编号,病人编号)病人(病人编号,病人姓名,病人性别,病人年龄,病人电话,医生编号)药品单(病人编号,医生编号,就诊时间,药品编号,药品名称,数量)药房库(库号,管理人姓名,管理人电话)库存药品信息(药品编号,药品名称,药品类型,药品价格,生产厂家,生

14、产日期,失效日期,库存数量,库号)入库药品(药品编号,药品价格,药品类型,入库日期,生产日期,失效日期,入库数量,库号)3.2 数据库逻辑设计3.2.1 表设计将数据库的概念结构设计转换成关系模型,就得到了以下的7张数据库中的表。表3-1 医生表(doctor)序号属性名字段名类型长度NULL默认备注1医生编号docnumint5×主键2医生姓名docnamechar8×3医生性别docsexchar4×4医生年龄docageint5×5医生电话doctelchar12×6科室编号offnumint5×外键7病人编号patnumint

15、5×表3-2病人表(patient)序号属性名字段名类型长度NULL默认备注1病人编号patnumint5×主键2病人姓名patnamechar8×3病人性别patsexchar4×4病人年龄patageint5×5病人电话pattelchar12×6医生编号docnumint5×表3-3科室表(office)序号属性名字段名类型长度NULL默认备注1科室编号offnumint5×主键2科室名称offnamechar20×3科室位置offsitechar20×表3-4库存药品信息表(medici

16、ne)序号属性名字段名类型长度NULL默认备注1药品编号mednumint5×主键2药品名称mednamechar30×3药品类型medtypechar20×4药品价格medpriceint10×5生产厂家productionchar30×6生产日期protimedate×7失效日期badtimedate×8库存数量quantityint10×9库号storagenumint5×外键表3-5药房库表(medstor)序号属性名字段名类型长度NULL默认备注1库号storagenumint5×主键

17、2管理人姓名keepernamechar8×3管理人电话keepertelchar12×表3-6药品单表(outmed)序号属性名字段名类型长度NULL默认备注1药品编号mednumint5×2药品名称mednamechar30×3数量outquantitychar20×4就诊时间jiuzhentimedate×5医生编号docnumint5×外键6病人编号patnumint5×外键表3-7入库药品表(inmed)序号属性名字段名类型长度NULL默认备注1药品编号mednumint5×2药品类型medty

18、pechar20×3药品价格medpriceint10×4入库日期intimedate×5生产日期protimedate×6失效日期badtimedate×7入库数量inquantityint10×8库号storagenumint5×外键3.2.2 约束设计约束定义了关于允许什么数据进入数据库的规则,是分配给表或表中某列的一个属性。使用约束的目的在于防止列中出现非法的数据,可以自动维护数据库的数据完整性。1、对医生表医生电话列实现的检查约束:alter table doctor add constraint ch check

19、 (doctel like'0-90-90-90-90-90-90-90-90-90-90-9');2、对病人表、病人编号列添加唯一约束:alter table patientadd constraint uq1 unique( patnum);2、对医生表、库存药品信息表、药品单表列添加外键约束:1.医生表外键: alter table doctor add foreign key fk1(offnum) references office(offnum)2.库存药品信息表: alter table medicine add foreign key fk3 (storagen

20、um)references medstor(storagenum)3.药品单表外键: alter table outmed add foreign key fk4(docnum)references doctor(docnum);alter table outmed add foreign key fk5(patnum)references patient(patnum); 3.2.3 视图设计根据逻辑模型所设计出的各种数据表构成了完整的物理数据库。由于业务范围的限制,每一个用户不可能访问数据库系统中的所有数据表,所访问的只是数据表的一个子集。我们把一个用户能访问到的数据表集合称为一个视图(V

21、iew)8。视图是以一致和直观的方式提供给用户的数据形式。视图以这种形式给用户提供数据,一方面为了满足用户对数据访问的方便性、简洁性需要,使数据在视图中以更符合用户要求和喜好的形式展现出来,另一方面,为了保证数据的一致性,最好不要把数据表直接提供给最终用户。1.创建视图查询各种药品的库存总数CREATE VIEW NewViewAS SELECTmedicine.mednum,medicine.medname,medicine.medtype,medicine.quantityFROMmedicine ;select * from newview;2.创建视图查询病人的科室名称。CREATE

22、VIEW NewViewAS SELECToffice.offname,office.offnum,doctor.docnum,patient.patnum,patient.patname,doctor.docnameFROMpatientInner Join doctor ON patient.docnum = doctor.docnumInner Join office ON doctor.offnum = office.offnum ;3.2.4 存储过程设计存储过程是一组编译在单个执行计划中的Transact-SQL语句,它将一些固定的操作集中起来交给SQL-Server数据库服务器完

23、成,以实现某个任务。存储过程执行速度快,提高系统的安全性。1. 创建存储过程统计某段时间内,各科室的就诊人数和输入情况。create procedure c1()comment'五月份,各科室的就诊人数情况'beginselect offname,count(*) as 就诊人数from patientjoin doctor on patient.docnum=doctor.docnum join office on doctor.offnum=office.offnumgroup by offname;end;call c1;2. 医生就诊病人的情况create proced

24、ure c2()comment'医生就诊病人的情况'beginSELECTpatient.patnum,patient.patname,patient.patsex,patient.patage,patient.pattel,doctor.docnum,doctor.docnameFROMpatientInner Join doctor ON patient.docnum = doctor.docnum;end;call c2;3.2.5 触发器设计触发器的作用是强制执行业务规则。SQL Server主要提供了两种机制来强制业务规则和数据完整性:约束和触发器。触发器在指定的表中

25、数据发生变化时被调用以响应INSERT、UPDATE或DELETE事件。触发器可以查询其他表,并可以包含复杂的语句。SQL Server将触发器和触发它的语句作为可在触发器内回滚的单个事物对待,如果检测到严重错误,则整个事物即自动回滚。1. 创建触发器:当药品入库自动修改库存。create trigger t1 after inserton inmed for each row beginupdate medicineset quantity=quantity+new.inquantitywhere mednum=new.mednum;end;select * from inmed;selec

26、t * from medicine;insert into inmed values('00001','口服药','9','2014-02-01','2017-02-01','2014-02-15','10','11');2. 创建触发器:当药品出库时自动修改库存。create trigger t2 after inserton outmed for each row beginupdate medicineset quantity=quantity-new.outq

27、uantitywhere mednum=new.mednum;end;select * from outmed;select * from medicine;insert into outmed values ('00006','克林霉素','20','001','0006','2014-06-04');3.2.6测试数据图3-1医生表图3-2病人表图3-3科室表图3-4库存药品信息表图3-5药房库表图3-6药品单表图3-7入库药品表3.2.7 界面模拟图第三章 总结(1)学习数据库,最重要的是实践

28、,只有多动手才能尽快掌握它。(2)一个系统的开发,经验是最重要的,经验不足,就难免会有许多考虑不周之处。(3)要想吸引更多的用户,网站的界面必须要美观、有特色、友好,功能要健全。不过由于经验不足,我设计的图形界面比较简单。只是对基本功能进行了开发。(4)本次开发,我参考了很多医院信息管理系统的例子,吸取了一些别的医院信息管理系统的长处,对自己的设计进行了完善,但是还有很多的不足之处,有待以后进一步习。由于时间仓促,本次设计由我完成医院信息管理系统的制作,对我这样一个新手而言所制作的模块还有不完善的地方。数据库的设计也比较简单。还有很多设计中用到的知识也不够全面,还有很多地方不能够作到完全的理解

29、和掌握。通过这次数据库设计使我受益匪浅。由于是独立完成的设计在此过程中也遇到了很多的困难,我请教了老师和同学,在这个过程中让我体会到了,一个团队的重要性。参考文献1 深入浅出MySQL人民邮电出版社2014年1月唐汉明,翟振兴,关宝军,王洪权,黄潇2 SQL入门经典(第五版)人民邮电出版社,2011年11月(美)斯蒂芬森 著,井中月 译3 MySQL管理之道机械工业出版社,2014年1月贺春旸附件Acreate database hospital;use hospital;alter database hospital character set gbk;create table doctor

30、(docnum int(5) primary key not null,docname char(8)not null,docsex char(4)not null,docage int(5)not null,doctel char(12)not null,offnum int(5)not null,patnum int(5)not null);insert into doctor values('001','李婷','女','40','#39;,'1','0006'

31、), ('002','敬杉','男','45','#39;,'4','0003'), ('003','黄磊','男','30','#39;,'4','0004'), ('004','杜良琴','女','50','#39;,'3',&

32、#39;0005'), ('005','曾琴','女','60','#39;,'3','0001'), ('006','田林林','男','55','#39;,'2','0002');select * from doctor;create table patient(patnum int(5) primary key not null

33、,patname char(8)not null,patsex char(4)not null,patage int(5)not null,pattel char(12)not null, docnum int(5) not null);insert into patient values('0001','白莉','女','40','#39;,'005'), ('0002','吴芳','女','20','1842

34、2226971','006'), ('0003','谭海涛','男','35','#39;,'002'), ('0004','任劲松','男','43','#39;,'003'), ('0005','张莹','女','35','#39;,'004&

35、#39;), ('0006','吴亚妮','女','7','#39;,'001');select * from patient;create table office(offnum int(5) primary key not null,offname char(20)not null,offsite char(20)not null);insert into office values('1','儿科','一楼'), ('2&

36、#39;,'五官科','二楼'), ('3','妇科','三楼'), ('4','男科','三楼');select * from office;create table medicine(mednum int(5) primary key not null,medname char(30)not null,medtype char(20)not null,medpirce int(10)not null,production char(30)not null,prot

37、ime date not null,badtime date not null,quantity int(10)not null,storagenum int(5)not null);insert into medicine values('00001','藿香正气口服液','口服药','9','太极集团','2014-01-01','2017-01-01','1000','11'), ('00002','龙虎清凉油',

38、'外用药','3','中华药业','2014-01-04','2017-01-04','500','12'), ('00003','足光散','化学药','10','九芝堂金鼎药业','2014-02-01','2016-02-01','200','13'), ('00004','金喉健喷雾剂','口服

39、药','12','宏宇药业','2014-02-04','2017-02-04','100','11'), ('00005','珍视明','外用药','15','珍视明药业','2014-03-01','2016-03-01','400','12'), ('00006','克林霉素','注射剂',

40、9;30','大佛药业','2014-03-04','2016-03-04','200','14');select * from medicine;create table medstor(storagenum int(5) primary key not null,keepername char(8)not null,keepertel char(12)not null);insert into medstor values('11','王明','184082211

41、22'), ('12','李月','#39;), ('13','廖梅','#39;), ('14','戚杨','#39;);select * from medstor;create table outmed(mednum int(5)not null,medname char(30)not null,outquantity char(20)not null,docnum int(5)not nul

42、l,patnum int(5)not null,jiuzhentime date not null);insert into outmed values('00001','藿香正气口服液','2','001','0006','2014-05-26'), ('00002','龙虎清凉油','1','001','0006','2014-05-27'), ('00003','足光散','1','001','0006&#

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论