1、1软件工程实验课大作业医院信息管理系统分析与设计班级 学号 姓名 组内贡献组长 0902 200912031 李承浩 B组员 0902 200912034 孟涯 C组员 0902 200912197 马克斌 B组员 0902 200912036 赵丹阳 A注:组内贡献为组长为组员打分 分为 A、 B、 C 三等 其中 A 至多 1 人, C 至少 1 人。2第 1 章 软件需求规格说明书1 引言1.1 编写说明医院信息管理系统。本系统是我们小组共同完成的,如有不足请与我们联系1.2 项目背景 在日常生活中,生病在所难免,医院也就尤为重要,而病人们常常被繁琐的就医过程所困扰。就医时要先挂号,挂了
2、号看医生,看医生过程中也许还要有各种化验,取化验单,医然后生写药方,需要拿着药方去窗口划价,之后又要先交钱然后再去另外的窗口取药,取过药之后,有时还要再见一次医生。来来回回,反反复复,病人常常要浪费大量的时间和精力,很多时候就医根本无法由病人独自完成。在当今快节奏的社会中,怎能容忍这样的事情发生,于是本系统将简化整个过程,让就医变的轻松快捷。1.3 定义没有专门术语1.4 参考资料【1】Java Web 数据库系统应用开发与实例 沈应逵 曾凌编著 人民邮电出版社【2】软件工程 人民邮电出版社2 任务概述2.1 产品的描述开发这个软件系统是为了让医生更加轻松的上班,病人更好的看病。缓解现有的医患
3、关系。2.2 用户的特点本系统是让医院的医生病人护士应用的,维护是会 Eclipees 的 JAVA 开发人员。2.3 实现语言 本系统 web 开发用 JAVAEE 语言 2.4 限制与约束 本系统的开发实现是一学期,需求是电脑上必须有 JAVA 开发工具等限制开发要遵守 HTTP 的 web 开发的等协议33 需求规定3.1 对功能的规定3.1.1 功能构成内容:详细描述本软件包含的各项功能。(可利用功能结构图表示)医院管理系统药房管理部住院部门诊部病人就诊中药药房管理门诊病历管理病人挂号西药药房管理病人信息管理病床信息管理病人化验检查人员管理医生信息管理护士信息管理3.1.2 功能描述门
4、诊部病人挂号:病人挂号时,要由护士输入病人的所有的信息,年龄性别,挂的什么科室等等一系列的信息病人就诊:病人挂完号,就直接拿着单子去医生那就诊。门诊病历管理:门诊部的病历的管理由专门的医务人员进行管理,包括病历的增删改查,把出院的病人的病历归到病历记录里面,把新来的病人归到现在的医院系统中。 病人化验检查:病人就诊完之后,拿着医生给开的化验单去各个地方去化验,化验完事之后再去找病人,让病人给出具体的病历,和药方等。 住院部病人信息管理:病人如果需要住院,把病人的信息给整理到住院部,并让护士进行增删改查,把出院的病人归到出院的地方。病床信息管理:由于医院的病床的个数是固定的,但是病人时多时少,所
5、以这个就是进行病床的管理,有病人的病床统计管理起来。 药房管理部中药房管理:进行药物的管理。包括药物的入库出库等等,这些都是中药西药房管理:同中药房管理人员管理医生信息管理:医生的休班,上班时间。上的是专家班还是普通班。如果出了重大事故的4医生需要在家休息一段时间才能继续来医院工作。护士信息管理:同医生信息管理。其实这两个都是医院的 3.2 性能需求3.2.1 精度数据库已经存放数据,病人的输入的是数据库有记录的数据,医生可以新建一个数据但是数据必须填写正确3.2.2 时间特性每次的反应时间为 5 秒,响应时间不差过 3 秒。3.2.3 适应性/灵活性内容:说明在操作方式、运行环境、与其它软件
6、的接口以及开发计划等发生变化时,应具有的适应能力。3.3 输入输出要求3.3.1 系统要使用到的静态数据 内容:给出作为控制或参考用的静态数据.3.3.2 本系统涉及到的动态数据 内容:给出系统所涉及到的动态输入数据和动态输出数据.3.4 数据管理能力要求3.4.1 数据采集的要求采集页面上输入的数据及 数据库的数据3.4.2 数据采集的处理一般都是 String 类型 所以普通的类型都可以3.4.3 数据的存储要求使用的数据存储文件/数据库的名称,使用的频率,访问的能力和存放的数据内容. 3.5 其他专门要求3.6.1 可使用性:检查数据库等信息 及系统是否找到破坏。3.6.2 安全性:设一
7、些防火墙和密保3.6.3 可维护性:系统不够完善 还需要继续维护3.6.4 可移植性:约束条件是机器上有 Eclipse SQL20084 运行环境规定4.1 用户界面荧屏格式在全屏的百分之七十并且居中。报表是以一个详细的 一行为一个商品的全部信息。经销商列表是以一列为一商的详细类表。菜单格式 从上到下 从左到右,5病人的入院出院中的输入输出时间为系统自动获得,4.2 硬件接口内存 256MB 以上网卡 KMb/s 速度4.3 软件接口本系统在 windows 操作系统,Eclipes 的开发环境下运行的。4.4 通讯接口要遵守局域网 LAN 协议6第 2 章 系统概要设计说明书1 引言1.1
8、 编写此说明书的目的方便给小组成员互相的联系,了解自己的任务。1.2 背景软件系统的名称:医院信息管理系统本项目的任务提出者:大连第五人民医院本项目的任务开发者:本小组本项目的用户:大连第五人民医院的工作人员1.3 定义Eclipse 是 JAVA 开发环境,SQL2008 是数据库开发环境1.4 参考资料提示:列出用的着的参考资料,如a.本项目的经核准的计划任务书或合同,上级机关的批文。b.属于本项目的其他已发表的文件c.本文件中各处引用的文件、资料、包括所需用到的软件开发标准。2 总体设计2.1 需求规定开发这个软件系统是为了让医生更加轻松的上班,病人更好的看病。缓解现有的医患关系。2.2
9、 运行环境Windows 的系统 电脑安有 Eclipse 及 SQL200872.3 系统工作流程描述一一一一: 一一一一一一一一一一 一一一 : 一一1: 一一4: 一一一6: 一一一8: 一一一一9: 一一一一3: 一一一7: 5: 2: 2.4 软件系统结构医院管理系统药房管理部住院部门诊部病人就诊中药药房管理门诊病历管理病人挂号西药药房管理病人信息管理病床信息管理病人化验检查人员管理医生信息管理护士信息管理功能需求与模块的关系门诊部病人挂号8由护士将病人基本信息录入系统,方便医生查询,或调出历史病历病人就诊在这个模块中,医生可将药方或病人需要检查的项目录入系统病人化验检查管理化验师将
10、化验结果录入系统,医生可调用查看,可打印给病人,并记录在数据库中门诊病历管理此模块将对病人的病历进行增删改查,并保存在数据库中住院部病人信息管理记录病人的基本信息,病历及用药情况病床信息管理床位的信息及使用情况药房管理部中药管理部储存中药的种类及库存量,从系统中读取医生所开取的中药药方西药管理部储存西药的种类及库存量,从系统中读取医生所开取的西药药方人员管理医生信息管理医生的基本信息,及职位情况护士信息管理护士的基本信息,及职位情况2.6 尚未解决的问题经销商和采购员之间的联系,如何确定管理员是存在的,及正确的。3 接口设计3.1 用户接口用户登录3.2 内部接口模块间的接口是通过函数调用建立
11、的,应用程序在运行期间始终保持着与数据库的联系。通过应用程序与数据库的耦合以记录数据,在应用程序内部,Form 窗体只负责显示,一切数据操作都由后台的各个类实现,包括对数据库的操作。93.3 外部接口在 c 的 windows 窗体应用程序的引用中,添加 office 引用,因为需要导出 Word 和 excel格式的文件4 数据结构设计4.1 数据结构与模块的关系4.2 数据结构设计内容提示:给出本系统内所使用的每个数据结构中所含的数据项、记录、文卷和系统标识、定义、长度以及它们之间的层次的或表格的相互关系。5 出错处理设计5.1 出错信息出错类型 错误提示 造成原因输入错误 输入数据错误
12、指用户所填写的数据不合规定系统错误 数据库错误 指系统与数据建立连接时,连接失败5.2 补救措施周期性地进行数据库备份,同时要进行数据库操作的日志记录,当系统故障发生时可以将最新备份的数据库进行还原然后根据数据库操作日志将数据库还原成最新状态,尽量降低系统故障造成的损失。5.3 系统维护设计维护方面主要为对数据库数据进行维护。可使用 SQL SERVER 的数据库维护功能机制。例如,定期为数据库进行 Backup,维护管理数据库死锁问题和维护数据库内数据的一致性等。10第 3 章 系统详细设计说明书1 引言1.1 编写此说明书的目的方便人员的编程让最底层人员知道该做什么工作,预期的读者是最底层
13、的编程人员1.2 背景待开发的软件系统的名称:物资管理系统本项目的任务提出者:本小组本软件系统的用户:物资公司的管理人员,及经销商1.3 定义无专用术语 本系统设计为基于 WWW 的网络数据库应用系统。1.4 参考资料1软件工程 (第二版)邓良松、刘海岩、陆丽娜 西安电子科技大学出版社2 软件工程导论 张海藩 清华大学出版社2 程序(模块)系统的组织结构医院管理系统药房管理部住院部门诊部病人就诊中药药房管理门诊病历管理病人挂号西药药房管理病人信息管理病床信息管理病人化验检查人员管理医生信息管理护士信息管理11界面设计要求总体的页面简洁,方便。页面占总体屏幕的百分之七十,确认信息在页面的中下方,
14、每个 Label 占 30 个字符,每个按钮占 20 个字节,确认按钮上全部写确认,取消按钮写取消,重点字加粗,四号。一般的字位小五 宋体。Label 和本字段 居中对齐,标题用三号圆体加粗。4 本软件系统中各程序(模块)的设计说明4.1 程序(模块)1 的设计说明register PatientinfoSystemdispenser medicines ystem doctorasay systemnursepatienthospitalized system12一一一nurse 一一一一一一一一doctordispenserpatient一13MedicineWinowRegisterWi
15、ndow DoctorWindwfdsWindowlogin MainFrame PatientIforMangerAnaWindowin hospitaltreatment check items14用例名称: 挂号用例用例标识号:Uc1.1参与者: 病人,护士简要说明:将病人的基本信息录入系统,方便为病人建立病例档案,以便医生查询,同时也是病人就诊的凭证前置条件:护士登录系统,病人需就诊基本事件流:护士登录系统,病人需要就诊时,用例启动1、 护士登录系统2、 护士向系统中输入病人的姓名,年龄,性别,家庭住址,电话等基本信息3、 护士输入病人要诊治的科目4、 预约医生5、 打印挂号单其他事件
16、流:当病人不是第一次就诊,复诊或再次就诊(不应定是同样的病) ,即系统中已存在病人信息:1、 护士调出病人病例2、 更新看病记录3、 护士输入病人要诊治的科目4、 预约医生5、 打印挂号单异常事件流:护士输入无效登录名或密码,系统提示错误信息,返回基本事件流起点,重新登录,用例结束后置条件:如果用例成功,系统将增加一条病人信息,并打印挂号单,反之系统状态不变注释: 无 ProfesionManager CourseManagerScheduleManager DoctorManagerRegister_styleManager RegisterManagerPatientManagerMedi
17、cineManagerAnagraphManagerSickbedManager15序号 对象名称 类名称1 Prm ProfessionManager2 Sm ScheduleManager3 Pam PatientManager4 Cm CourseManager5 Dm DoctorManager6 Rsm Register_styleManager7 Am AnagraphManager8 Sbm SickbedManager9 Rm RegisterManager10 Mm MedicineManager1、 类属性方法定义一览表(表 15-4,至少 3 个)类名:Professio
18、nManager属性名 属性类型属性profession String,医生的职称管理方法名 返回值 参数 抛出异常 add java.lang.Exception delete update 方法query 类名:ScheduleManager属性名 属性类型属性Schedule String,医生班次安排方法名 返回值 参数 抛出异常 add java.lang.Exception delete update 方法query 类名:PatientManager属性名 属性类型属性Patient String,病人信息管理方法名 返回值 参数 抛出异常 add java.lang.Excep
19、tion delete update 方法query 16:一 :一 一 一一 一 一一 一一一一 一一一一一一一一一 一一一一一一一一一一一一一一一一一一 一 一 一 一一一 一一一一一一 一一一一一一171、一一一一一一一一一( 一一 )一一一一一一一一一一一一一一一一一一一一一一一18一一一一 一一一一一一一一一一一一 一一一一一一一一一一一一一一一一一序号 类名 功能 使用者身份1 fdsWindow 复诊病人登录,新病人挂号 前台护士2 Login 复诊病人登录 前台护士,病人3 RegisterWindow 病人挂号 前台护士4 MainFrame 页面导航 医生,护士5 Trea
20、tment 医生输入病人病况 医生6 PatientInfoWindow病人信息管理 护士7 Ana_Window 药方页面 医生8 MedicineWindow 药品页面 医生9 In hospital 住院管理 护士10 Check items 检查项目 医生11 Doctor window 医生窗口 医生19详 细 设 计 说 明 表编号:XXXX 医院挂号窗口姓名 年龄 性别 出生年月日 联系方式 家庭住址 搜索历史病例 病情描述选择科室 医生选择普通门诊 专家门诊 医生预约医生姓名 时间 日期 日期 生成挂号单病人诊断挂号单号 确定 获取病人其他信息病人历史病例 病人病情描述 日期
21、诊断结果20治疗方案提交 打印结果 取消 病人诊断挂号单号 确定 获取病人其他信息病人历史病例 病人病情描述 日期 诊断结果治疗方案提交 打印结果 取消 214.1.1 窗口对象说明表窗 口 对 象 说 明 表编号:XXXX 医院挂号窗口姓名 lee 年龄 20 性别 男 出生年月日 yy-mm-dd 联系方式 xxxxxxxxxx 家庭住址 搜索历史病例 病情描述选择科室 医生选择普通门诊 专家门诊 医生预约医生姓名 时间 日期 日期 生成挂号单225、模块相互关系表模 块 相 互 关 系 表模块名称本模块详细设计说明书编号相关模块名称相关模块详细设计说明书编号相互关系描述(调用/被调用)住
22、院部 001002门诊部、药房部、人员管理001002 调用门诊部门诊部003004005006住院部、药房部、人员管理003004005006被住院部调用药房部 007008 住院部、门诊部 007008 调用门诊部人员管理009010住院部门诊部、药房部009010 调用这三个部23第 4 章 数据库设计说明书1 引言1.1 编写目的了解没各人员可以对那些数据进行修改及查看。能提高工作效率1.2 背景待开发的数据库的名称:医院信息管理系统数据库使用此数据库的软件系统的名称:SQL2008该软件系统开发项目的任务提出者:本小组该软件系统的用户:医院的人员1.3 定义无专用术语1.4 参考资料
23、数据库系统原理与应用 孟彩霞主编 人民邮电出版社软件工程 张权范 清华大学出版社软件开发技术 倪秉营 电子科技大学出版社软件工程基础 汤淮 西安交通大学出版社软件工程(第二版) 邓良松编著 西安电子科技大学出版社2 外部设计2.1 类型划分 无2.2 标识符和约定无2.3 数据库表设计格式说明表名 列名 类型 Code职称表 职称编号 int pro_idprofessional 职称名 varchar(20) pro_name挂号 挂号日期 date reg_dateregister 挂号编号 int reg_id科目编号(外键)挂号方式(外键)24挂号方式 挂号方式编号 int reg_s
24、ty_idregister_style 挂号名称 varchar(20) reg_sty_name医生 姓名 varchar(20) doc_namedoctor 医生编号 int doc_id职称编号(外键)排班表编号(外键)科目编号(外键)病人 病人编号 int pat_idpatient 姓名 varchar(20) pat_name年龄 int pat_age性别 varchar(2) pat_gender医生编号(外键)挂号编号(外键)药方 药方编号 int pha_idpharmacy 药品使用量 varchar(20) pha_dosage药品编号(外键)科目 科目编号 int
25、med_idmedical 科目名称 varchar(20) med_name排班表 班次 varchar(20) sch_classesschedule 日期 date sch_date坐班性质 varchar(20) sch_seat排班表编号 int sch_id药品 药品编号 int med_idmedicine 药品注意事项 varchar(20) med_matter药品分类 varchar(20) med_gro药品价格 varchar(20) med_price药品用量 varchar(20) med_dosage药品名称 varchar(20) med_name病例 入院日期
26、 date enter_datecase_illness 出院日期 data leave_date病人编号(外键)药方编号(外键)医生编号(外键)病床 病床编号 int sic_id25sickbed 病床分类 varchar(20) sic_gro病人编号(外键)create table profession(pro_id int primary key,pro_name varchar(20) not null)insert into profession values(101,住院医师)insert into profession values(102,主治医师)insert into
27、profession values(103,副主任医师)insert into profession values(104,主任医师)select * from profession;create table course(cou_id int primary key ,cou_name varchar(20) not null)insert into course values(201,内科 )insert into course values(202,外科 )insert into course values(203,妇科 )insert into course values(204,儿科
28、 )select * from course;create table schedule(sch_id int primary key ,sch_classes varchar(20) not null,sch_date datetime not null, sch_seat varchar(20) not null)insert into schedule values(301,301,2012-05-01,专家诊);insert into schedule values(302,302,2012-05-01,平诊);select * from schedule;create table d
29、octor(doc_id int primary key ,doc_name varchar(20) not null,pro_id int references profession(pro_id),sch_id int references schedule(sch_id),cou_id int references course(cou_id)insert into doctor values(401,李教授,101,301,201);26insert into doctor values(402,王教授,102,301,202);insert into doctor values(40
30、3,迟教授,103,302,203);insert into doctor values(404,刘教授,104,302,204);insert into doctor values(405,李护士,101,302,205);select * from doctor;create table register_style (reg_sty_id int primary key ,reg_sty_name varchar(20) not null,)insert into register_style values(501,专家诊);insert into register_style valu
31、es(502,普通);select * from register_style;create table register(reg_id int primary key,reg_date datetime,cou_id int references course(cou_id),reg_way_id int references register_style(reg_sty_id),)insert into register values(601,getdate(),201,501);insert into register values(602,getdate(),202,202);inse
32、rt into register values(603,getdate(),203,501);insert into register values(604,getdate(),204,501);select * from register;create table patient(pat_id int primary key ,pat_name varchar(20) not null,pat_age int not null check (pat_age between 1 and 150) ,pat_gender varchar(20) not null,doc_id int refer
33、ences doctor(doc_id),reg_id int references register(reg_id)insert into patient values(701,刘备,19,男,401,601);insert into patient values(702,关于,20,女,402,602);insert into patient values(703,张飞,39,男,403,603);insert into patient values(704,马超,25,女,404,604);insert into patient values(705,诸葛亮,33,男,405,601);
34、27insert into patient values(706,黄忠,57,男,406,602);select * from patient;create table medicine(med_id int primary key ,med_matter varchar(20) not null,med_kind varchar(20) not null,med_price float not null,med_dosage int not null,med_name varchar(20) not null)insert into medicine values(801,孕妇不可服用,中药
35、,15,4,阿莫西林);insert into medicine values(802,小孩不可服用,西药,13,1,维 c 银翘片);insert into medicine values(803,高血压患者不可服用,中西药,10,3,牛黄解毒片);insert into medicine values(804,人不可服用,中药,19,4,砒霜);select * from medicine;create table anagraph(ana_id int primary key ,ana_dosage int not null,med_id int references medicine(
36、med_id)insert into anagraph values(901,3,801);insert into anagraph values(902,5,802);insert into anagraph values(903,1,803);insert into anagraph values(904,2,804);select * from anagraph;create table sickbed(sic_id int primary key ,sic_kind varchar(20) not null,pat_id int references patient(pat_id)in
37、sert into sickbed values(1001,单人间,701);insert into sickbed values(1002,双人间,702);insert into sickbed values(1003,经济间,703);insert into sickbed values(1004,豪华间,704);select * from sickbed;28create table case_illness(enter_date datetime,leave_date datetime,pat_id int references patient(pat_id),ana_id int
38、 references anagraph(ana_id),doc_id int references doctor(doc_id)insert into case_illness values(getdate(),getdate()+10,701,901,401);insert into case_illness values(getdate(),getdate()+11,702,902,402);insert into case_illness values(getdate(),getdate()+13,703,903,403);insert into case_illness values
39、(getdate(),getdate()+14,704,904,404);select * from case_illness2.4 支持软件Sql sever2008303 结构设计医生病人药品挂号科目挂号方式病床属于1N1诊治病例1姓名 医生编号职称编号( 外键 )科目编号( 外键 )排班表职称 日期 坐班性质班次排班表编号( 外键 )排班表编号编号职称内容科目编号科目名称挂号日期科目编号( 外键 )挂号编号挂号方式编号 ( 外键 )挂号名称挂号方式编号姓名基本信息病人编号挂号编号( 外键 )医生编号( 外键 )出院日期 入院日期病人编号( 外键 )医生编号( 外键 )病床编号病床分类病人
40、编号( 外键 )药品分类药品注意事项药品名称 药品用量 药品价格药品编号药品编号药方编号( 外键 )M药方药品使用量药方编号药品编号( 外键 )254 运用设计4.1 数据字典设计此处编写数据的格式,数据的编码方式等。医生职称 以 10 开头的三位数例如 101,住院医师科室 以 20 开头的三位数例如 201,内科排班表 排班编号 以 3 开头的三位数 排班性质 排班时间 *-*-* 班次以 3 开头的三位数例如 301,专家诊,2012-05-01,301医生 医生编号 以 4 开头的三位数例如 401,李教授挂号方式 挂号方式编号以 5 开头的三位数例如 501,专家诊挂号 挂号编号以
41、6 开头的三位数例如 601 普通病人 病人编号以 7 开头 例如 701,刘备药品 药品编号以 8 开头的三位数例如 801,孕妇不可服用, 中药,15,4, 阿莫西林药方 药方编号 以 9 开头的数例如 药方编号 901,病床 病床编号以 1 开头的三位数 例如 1001 单人间 4.2 安全保密设计需要设一个外键,他表示每个表对某一些的一些权限。在看病的时候,医生只能查看病人的信息,而病人只可以查看自己的信息,不可查看别人的信息。当用户使用系统时,系统首先会检查用户是否登录,如果用户还没有登录,系统将会弹出警告窗口提醒用户,并将相应的页面跳转至用户登录。对于数据库的安全,主要是通过对授权用户的身份验证实现的。在的系统管理页面,提示用户使用管理员帐号在此登录,没有管理权限的系统注册用户无法登录到数据库管理的后台。系统确认了管理员身份之后统会打开管理页面,系统管理者可在此对整个系统的数据库进行管理和维护。