基于JAVA的医院管理住院系统研究与实现

点击下载源码

基于JAVA的医院管理住院系统研究与实现

摘 要
医院管理住院系统是一项集多类学科为一体的系统,其中包含医学、信息、计算机等学科,广泛的应用在当今欧美等发达国家,给治疗患者们提供了很大的便利。假如全面实现了这一系统,能够极大限度的改进医院的治疗水平,在患者面前重新建立起医院的良好形象。
在对本课题进行全面深入研究和分析后,决定采用的数据库库管理系统为SQL SEVER 2005,使用的开发工具为MYECLIPSE的JSP,在面向对象的开发工具中,最主要的是JAVA,在网络查询和开发语言方面都运用了JSP技术。
本篇论文主要通过使用以上工具,来对医院管理住院系统进行更合理的开发和利用。本篇论文在构建新系统的前提下,进行详细的背景分析,并介绍系统开发时将采纳的主要技术和技术难点。利用软件工程思想,在将功能性需求和非功能性需求区分的基础上进行需求分析;利用该需求分析系统的业务流转设计;然后针对上述内容,设计出系统的用例图,描绘系统设计过程。在系统设计完成以后,对系统进行了软件测试,通过多种测试相结合的方式来确保系统的安全性和有效性。本系统主要分为六大模块,分别是医生管理模块、病人管理模块、病床
管理模块、收费管理模块、统计分析模块和系统功能模块,医生、病人和医院的管理人员都可以通过此系统寻找出自己所需要的信息。

关键词:医院管理住院系统,SQL,JSP, 软件工程

目 录
摘要 I
Abstract II
第一章 绪论 1
1.1 背景 1
1.2 系统的开发目的及其意义 1
1.3 本文章节安排 1
1.4 本章小结 2
第二章 相关技术 3
2.1 JSP技术 3
2.2 “结构化查询语言”(SQL) 4
2.3 B/S服务架构 4
2.4 MVC设计模式 5
2.5 本章小结 6
第三章 系统的需求分析和可行性研究 7
3.1 功能需求 7
3.1.1 系统层次结构图 7
3.1.2 医生信息管理 8
3.1.3 病床信息管理 8
3.1.4 病人信息管理 9
3.1.5 收费信息管理 9
3.1.6 统计分析管理 9
3.1.7 系统管理 10
3.1.8 系统用例分析 10
3.2 非功能性需求 13
3.2.1 系统性能需求 13
3.2.2 系统安全性需求 13
3.2.3 系统设计需求 13
3.2.4 系统其它需求 13
3.3 系统的可行性分析 14
3.4 本章小结 15
第四章 系统总体设计 16
4.1 系统设计原则 16
4.2 系统框架 16
4.3 数据库的分析与设计 17
4.3.1 数据库的概念结构设计 17
4.3.2 E-R图 17
4.3.3 数据库的实现 19
4.3.4 数据库的连接原理 20
4.4 系统软件结构设计 21
4.4.1 数据流程图 21
4.4.2 系统顶层图 22
4.4.3 系统零层图 22
4.5 数据字典 23
4.6 本章小结 25
第五章 系统详细设计与实现 26
5.1 程序流程图 26
5.2 系统登录 26
5.3 系统主界面 27
5.4 医生信息管理 27
5.5 病床管理 28
5.6 病人信息管理 30
5.7 收费管理 31
5.8 统计分析 32
5.9 修改密码 33
5.10 本章小结 33
第六章 系统测试 34
6.1 系统测试目标 34
6.2 测试设计 34
6.2.1 测试用例设计 34
6.2.2 测试环境与需求 34
6.3 测试用例及测试模块 35
6.3.1 测试用例 35
6.3.2 测试模块及案例 37
6.3.3 系统性能测试 39
6.4 缺陷分析 40
6.5 测试结果 40
6.6 本章小结 40
第七章 结束语 41
7.1 体会与收获 41
7.2 不足 41
7.3 今后的发展方向 42
结论 43
参考文献 44
致谢 45

第一章 绪论
1.1 背景
医院管理住院系统是当今大部分现代化医院所具备的一个系统,它和医院紧密的联系在一起。由于它的实现,大大的方便了医院的管理,并且为医生和病人提供了很大的便利,缩短了病人求医的时间,为病人和医生之间快速的建立联系提供了一种保障。但是在一些医院,还没有这样的系统,医生、病人和医院之间的关系比较独立,这就大大的影响了医院的效率,给医院的长久发展带来了很不利的因素。[6]
1.2 系统的开发目的及其意义
近年来医疗行业不断发展,医院规模不断增加。在经济全球化的影响下,我国医疗行业不断借鉴外来经验,不断创新医院的运营模式,改善医院的管理体制,取得了良好的社会反映,发展速度不断加快,给人们的生活带来了很大的便利。
医院服务质量和治疗水平的高低,直接影响现代化医院的发展。对于一所现代化的医院,能否全面系统满足病人的需求,如对服务态度,时间安排,治疗水平等的要求是患者选择医院的主要标准。本课题将对医院中的病人管理、医生管理、收费管理和病床管理等方面进行探讨和研究,将现代化医院信息管理系统作为医院管理的核心平台,其管理信息内容作为研究材料与基础。通过此次研究与探讨,主要目的在于目标系统的运用能够全面快速满足病人和医生的需求,为病人提供多方面的便捷。提高医院运行效率,节约病人的时间,减少病人不必要开支。通过目标系统,联系管理者与被管理者,不断反应问题同时可以积极有效解决问题,提高服务质量。利用目标系统带来的收益是多面的,具体表现如下:
(1)间接性:利用目标系统,减少人力物力的不必要投入,而非通过计算机信息化系统直接实现经济效益。
(2)持久性:目标系统的建立需要投入巨额资金,但并不能收回资金。
(3)效益性:医院利用目标系统首先可以满足病人的需求,还能打造良好的现代化医院形象。
本课题根据实际需要而产生,为了解决人工计算操作的弊端,开发一套医院管理系统势在必行。本系统的开发主要是根据实际需要而制作,系统整体包括:医生管理模块,病床管理模块,病人管理模块,收费信息管理模块,统计分析模块等功能模块。
1.3 本文章节安排
本文一共包含六个章节,具体的各个章节安排如下:
第一章:绪论,在该章主要分析本文的研究背景及研究意义,并给出了本文的章节安排。
第二章: 开发技术。这一章节主要介绍了系统开发所要用到的开发工具,并且对系统配置给了具体的要求。
第三章:系统的可行性研究与需求分析。从经济、技术、操作和法律四个方面分析了系统的可行性,从系统的非功能性需求与功能性需求两个角度进行了论述。
第四章:系统总体设计。从系统设计原则开始,从数据库的分析与设计、系统软件结构设计以及数据字典进行了逐步分析。
第五章:系统详细设计与实现。对系统中的重要功能模块给出了部分界面予以展示。
第六章:系统测试。本章研究系统测试的相关技术、测试方法及测试工具,对其进行了具体的系统测试。
第七章:总结了自己在完成论文时的体会,以及自己所收获的知识,总结出自己的不足,确立了自己在今后的发展中所要努力的方向。
1.4 本章小结
本章主要介绍了研究医院管理住院系统的目的,以及医院管理住院系统的开发目的和意义,并且还介绍了本篇论文的章节安排。

第二章 相关技术

2.1 JSP技术
SunMicrosystems公司最早提出了JSP,经过持续地推广,不断地的有计算机和软件公司共同参与其中进行开发。其主要是通过在HTML文件(.htm,.html)中嵌入JSP和Scriptlet标签来实现的。这样,内嵌的Java程序就可以生效,对数据库做出请求、或者启用E-mail等。上世纪末,JSP出现了,SunMicrosystems公司建立起动态性的网站就是利用了它的存在,并利用其兼容性和扩展性,来扩大平台应用。从实际效果来看,JSP技术的出现使Web的建设和设计创新不断。其特点大概有以下几点:
依托JSP技术,工程技术人员可利用XML或HTML标识来对web等页面进行修改或推翻设计。这些页面上的内容也可以依托JSP来设计或实现。如此一来,利用JSP编程语言设计的服务器,其内容发送的信息和要求都可以通过JSP索引来解释,或者根据其脚本来设计或建立。当然,这些最终的内容也会通过HTML或XML形式反馈到浏览器中。通过这样的方式,能够使源代码的编写者维护自己的专利和权益,也可以保证web页面的兼容性和可拓展性。
一般来说,单独的JSP页面不发生复杂的数据分析和处理,其一般用于爬虫或索引提炼攫取数据。[14]
JSP是基于Java编程语言来实现的,他的内部具有scriptlets和tags,可以用于储存动态页面运作需要的一套程序方式。另外,JSP将动态页面运作需要的一套程序方式与静态的网页设计分离,这样的模块分块使JSP具有兼容和扩展性,开发性更高。说到底,JSP可以实现动态的页面控制,并且可以让页面运作程序与静态的页面分离。
JSP页面由两部分HTML和Java代码组成。一般来说,上游的服务器如果收到来自外部请求或信息,会对Java代码进行分析或运算处理,从而以HTML的方式回馈到网页浏览器中。其基础是Java Servlet,Java Servlet和JSP这两者是规模较大的JSP项目开发的重要组成部分。在技术上,JSP具有了Java特有的容易理解、容易上手、适用性广,不挑平台、安全性高等特点。这些优势保证了其在整个因特网中广为使用。在上世纪末出现后,如今如IBM、Oracle、Bea等公司都使用其服务器,其逐渐成为电子商务软件开发的“宠儿”。[16]
具体来看,JSP有以下优点:
(1)可以经过多次使用。一般程序经过编码后,可在各类系统内嵌套使用,而不需要重新编写代码。这是其优于PHP之处。
(2)另外,其兼容性比较好。基本不挑平台,常见的平台都能兼容和开发、应用、扩展。这刚好与PHP的不可拓展性互补。
(3)适用性广。无论是war小文件或多层次的平台以及服务器,其都能兼容和运行。对各类规模不一的平台都能进行数据分析、处理,反馈,其展现出极强的适应能力。
(4)可依托种类丰富、功能优异的工具。经过接近20年的发展,JSP如今已拥有了很多开发工具,这些工具功能强大,几乎覆盖了程序开发和设计方方面面,并且几乎不需耗费金钱即可得到,为开发人员提供了便利性。[5]

2.2 “结构化查询语言”(SQL)

SQL意思是Structured Query Language,即为查询语言。SQL相当于各数据库之间的信使,主要是这些数据库之间进交互的工具,也是它们之间信息交流的工具。按照美国ANSI的定义,SQL被纳入了数据库标准化建设中。运用SQL语言,在数据库中可以直接进行操作,比如数据更新、数据攫取等。如今市面上比较具有规模、且与外界连通较大的数据库都是使用SQL语句。另外目前标准化的SQL已经可以执行对数据库大部分的功能操作。[4]SQL Server是这些数据库进行交互和信息交流的工具。一开始是由Microsoft和Sybase 等共同设计建造的,其最早应用在OS/2上。在Windows NT诞生后,微软公司与Sybase公司在SQL Server的设计应用上开始走向不同方向。其中微软公司致力与将SQL Server应用到Windows NT中,而Sybase公司相对地,致力于将SQL Serve融入到其自身开发的UNⅨ中。[2]
2.3 B/S服务架构
随着互联网和浏览器的发展,B/S的开发架构逐渐取代了C/S架构,B/S是浏览器和服务器的开发架构模式,它在服务器端放入了应用程序的大部分功能,浏览器安装在客户机端,对服务器端的安装的数据库通过Web Server进行数据的存储和读取。
B/S架构在技术方向可认为是C/S架构的升级版,用户只有拥有浏览器和互联网络,就可以通过浏览器的界面与系统进行交互,浏览器端只会处理较少的事务,大多数的处理和操作都设计在服务器端。这样做很大程度上降低了客户端的负荷,给用户节约了硬件和系统维护方面的开支。B/S架构的具体流程为:打开浏览器后,输入网址,通过系统界面向服务器端发出请求指令,服务器端接收到浏览器发来的指令做对应的处理,并负责将结果传递到浏览器端,展现给用户。该模式是在牺牲服务器端符合的条件下减少客户端的负荷量。B/S架构在程序运行时,在浏览器向服务器发指令的同时需要借助Web Server,Web Server在这儿主要承担着动态网页生成、数据请求、返回结果等任务。换句话可以这样理解, 将C/S架构中客户端的数据处理模块中的任务分为两个,一个交给B/S架构中客户端的Web Server完成,另一个对数据库的访问交给B/S架构中服务器端完成,可以看出Web Server可以承担客户端的一部分负荷,这样就可以减轻了客户端的工作量。[17]
由此可知,B/S架构较传统的C/S架构开发,有其独特的优势和特点:将应用程序划分为多个独立的层次,每个层次任务不同,相互独立,但又相互关联,目的是有一个完整的系统。B/S架构按照一定的应用功能可划分为三个层次,即功能层、表示层和数据层,三个层次各司其职,为用户展现一个完整友好的应用系统。传统的C/S架构系统在客户端装有数据库,常用的是关系数据库DBMS,而B/S架构的功能层只是为用户提供必要的数据,大量的数据处理都依靠数据层来完成,其在服务器端完成,为缓减这种压力,B/S架构通过采取增添服务器的数量。B/S架构下的数据安全性能也比C/S架构高,它不需要去保存任何数据和信息,只需要在服务器端增加备份服务器,以防万一服务器出现崩溃的情况下用于恢复数据库使用。[7]其B/S架构图如图2-1所示:

图2-1 B/S架构图
2.4 MVC设计模式

MVC是英文Model View Controller的缩写,其表示的为:模型-视图-控制器,MVC设计模式将业务逻辑层和数据层单独分离,解决了系统输入、控制和显示的,有助于系统的开发和维护,MVC设计模式是目前系统开发最常用最合适的一种设计模式。下面具体介绍具体每一层的功能。
(1)模型层。该层是应用程序的核心部分,一个模型往往与许多个视图对应着,这样设计的目的是为了应用程序的可重复利用和可移植,只需修改具体业务信息,不需要重新编写相同的代码,从而提高系统的功能,有利于维护系统。该层连接着系统业务层和数据处理层,应用程序通过模型层向数据库读取和存储数据。如果改变了应用程序的业务信息,模型层会同时向业务层和视图层发出指令。
(2)视图层。该层主要是将应用程序中处理的数据通过界面友好的展现给用户,用户只能通过视图层与系统发生交互交流。视图层不对数据进行任何的处理和操作,只是用于接收用户的信息和将信息展现给用户,将模型对数据的更新实时传递给用户。通常视图层一般由HTML组成的代码设计,外加一些Flash和XML等标识语言以及Web Services等。
(3)控制器。该层主要是用于解决系统业务的相关请求,通常负责根据用户的输入调用模型去执行用户的需求,同时可以控制模型中的数据如何通过视图展现给用户。控制器的执行流程是:用户输入相关的请求并通知视图层,控制器从视图层接收到请求通过一定的算法向模型层发出指令,模型层将数据返回,最后再传给视图层,将数据呈现给用户。
MVC的特点及优势主要有以下几点:
①MVC设计模式一般用于ERP和办公等交互性强、用户众多的系统中;
②MVC设计模式可以将多个数据模型用一个视图展现,也可以支持多个视图访问同一个服务器的代码;
③MVC设计模式便于构建模型,易于用户与应用程序的交互和表达。
④MVC设计模式分成三个层次,相对每一层的开发者责任分工明确,每一层的开发者只需专注于相应层次的开发,从而提高了开发速度,缩短了应用程序的交付时间。[1]
2.5 本章小结
本章对系统开发使用的相关技术做了详细的介绍,最终选择B/S开发本系统;并且介绍了JSP技术、结构化语言、B/S服务框架。

第三章、系统的需求分析和可行性研究
3.1 功能需求
经过对本系统的研究分析,本系统主要是为了方便让医院更快捷的管理。所面向的对象主要有病人、医生和医院的管理人员。病人运用该系统后,可以根据该系统查看自己所需要的信息,包括治疗自己病症的医生的信息、病床信息、收费信息等。医生运用该系统后,可以根据该系统查看自己病人的信息。而医院管理人员通过该系统可以查看病床利用率和收费明细的情况。[3]
根据面向对象的需求的不同,可以分析出本系统需要的主要功能有:登录、医生信息管理、病人信息管理、收费信息管理、病床信息管理、统计分析管理和系统管理。
3.1.1 系统层次结构图
该系统主要是医生和病人通过该系统,对整个医院的病床、医生、病人和消费信息进行查看,根据自己的需要进行选择。系统层次结构图如图3-1所示:

图3-1 系统层次结构图
医院管理系统包括如下功能:
 医生管理
业务描述:管理医生信息、包括对医生信息的增加、删除、修改
 病人管理
业务描述:管理病人信息、包括对病人信息的增加、删除、修改
 病床管理
业务描述:管理病床信息、包括对病床信息的增加、删除、修改
 收费管理
业务描述:管理收费信息、包括对收费信息的增加、删除、修改
 统计分析
业务描述:病床利用率查询主要是通过对科别、医师和日期的搜索,收费明细查询主要是通过对病人姓名和日期的搜索,来进行对其相对应信息的查询。
 修改密码
业务描述:用户可以修改自己的系统登录密码

3.1.2 医生信息管理

医生信息管理主要是通过对医生姓名的搜索,来对医生信息进行查询,其中查询的内容包括医生的编号、性别、职称、职务、科别、出生日期和工作日期,还可以对医生信息进行添加、修改、删除。

图3-2 医生信息管理结构图
3.1.3 病床信息管理
病床信息管理主要是对病床的所属科别、病床号、床位费和使用状态进行查 看,还可以对病床进行添加、修改和删除。

图3-3 病床信息管理结构图
3.1.4 病人信息管理
病人信息管理主要是通过对病人姓名的搜索,来对病人信息进行查询,其中 查询的内容包括病人的科别、病床号、性别、年龄、病症、主治医生、入院和出院日期,还可以对病人信息进行添加、修改和删除。

图3-4 病人信息管理结构图
3.1.5 收费信息管理
收费信息管理主要是通过对病人姓名的搜素,来进行对其收费信息的查询,其中查询的内容包括病人的科别、病床号、收费项目、单价、数量、金额和日期,还可以对收费信息进行添加、修改和删除。

图3-7 收费信息管理结构图
3.1.6 统计分析管理
统计分析管理其中包括病床利用率查询和收费明细查询,其中病床利用率查询主要是通过对科别、医师和日期的搜索,来进行对其相对应信息的查询,查询的内容包括科别、病床号、病人性别、病人姓名、病人年龄、主治医生、入院日期和出院日期等;收费明细查询主要是通过对病人姓名和日期的搜索,来进行对其相对应信息的查询,查询的内容包括科别、病人姓名、病床号、收费项目、数量、单价和金额。

图3-6 统计分析管理结构图
3.1.7 系统管理

系统管理其中包括修改密码和退出系统,修改密码的方法是首先是输入原密码,然后输入新密码,最后确认新密码。

图3-7 系统管理结构图
3.1.8 系统用例分析
在以上需求分析的基础上,本节对它们进行用例分析。
(1)医生信息管理
本模块主要针对管理员和病人来实现的,管理员在本模块中能够对医生的信息进行添加、修改和删除,而病人可以在本模块中实现对医生信息的查询,医生信息管理用例分析图如图3-8所示:

图3-8 医生信息管理用例图

(2)病人信息管理
本模块主要针对管理员和医生来实现的,管理员在本模块中能够对病人的信息进行添加、修改和删除,而医生可以在本模块中实现对病人信息的查询,病人信息管理用例分析图如图3-9所示:

图3-9 病人信息管理用例图

(3)病床信息管理
本模块主要针对管理员和病人来实现的,管理员在本模块中能够对病床的信息进行添加、修改、删除,医生可以在本模块中实现对病床信息的查询,病床信息管理用例分析图如图3-10所示:

图3-10 病床信息管理用例图

(4)收费信息管理
本模块主要针对管理员和病人来实现的,管理员在本模块中能够对收费的信息进行添加、修改、删除,病人可以在本模块中实现对收费信息的查询,收费信息管理用例分析图如图3-11所示:

图3-11 收费信息管理用例图
(5)统计分析管理
本模块主要针对管理员来实现的,管理员在本模块中可以查看病床利用率和收费明细查询,统计分析管理用例分析图如图3-12所示:

图3-12 统计分析管理用例图
3.2 非功能性需求
3.2.1 系统性能需求
响应时间尽量短,结果准确。一般业务操作时间在3到5秒,添加以及修改报表时间不超过30到45秒。对于多用户并发访问的问题,系统通过先进缓存技术而解决了相应的问题。

3.2.2 系统安全性需求

由于医院管理住院系统是基于MVC模式以B/S框架而开发的Web应用,根据用户的确切使用要求以及系统的使用目的分析,医院管理住院系统在安全性方面有着很高的要求。因此医院管理住院系统对系统安全性要求尤为严格。
为了保证管理员可以登录本系统进行具体的操作,设立了登录信息界面,在账号与密码相匹配的情况下才可以进入系统进行实质的操作。

3.2.3 系统设计需求

为了达到标准、规范等目标,从而提高软件的复用率,在进行系统设计时,需做到如下。
1. 底层数据统一。对于底层数据采用标准的数据进行设置,对底部对于不符合规范的数据及时进行数据清洗和规范化操作,使得不同的数据资源统一在统一的数据格式之下,达到方便查询存储的效果。
2.界面风格的统一。采用统一的主题模式,不同页面会有不同的应用需求,其界面主题保持基本一致,促进组织采用树形结构,方便数据的浏览和查询。
3.数据服务化。系统中各功能模块既独立,又相互关联,在模块化的同时保证各个功能合理配置。同时预留开放接口,能够适应系统的扩展需求。

3.2.4 系统其它需求

考虑到网络环境及系统运行使用的需要,一般而言,系统表现出来的其他需求主要有:一是对各类浏览器友好、兼容性强。二是系统的适应性强。
另外,为了更好的用户体验,还应该满足以下条件:
1.可靠性需求:用户在使用该系统时,系统无法访问的概率应在5%以下。
2.易用性需求:本系统展示给用户的界面应该是友好的且易用的,用户在没有接受培训的情况下也可以使用本系统。
3.运行环境约束:由于本系统是B/S架构的Web应用程序,因此要求安装有浏览器的用户才能使用。[1]
3.3 系统的可行性分析
用户的要求和系统调研是进行系统可行性分析的基础,对将要开发的系统从经济、技术、运行等方面进行全面分析,并得出系统的开发工作能否可行,最后完成可行性分析。
1、经济可行性
经济预算是系统开发的前提工作中非常重要的部分,以本系统为例,在投入运营之前,本项目始终处于投资阶段,但投资并不大,整个项目的开发都独自完成。与此同时,当今计算机普及率较高,人们的技术水平也较高,如果本系统能够投入实际的使用,则所需的相关准备和培训人员的费用相对较少,但在它投入使用后,将节省大量的人力物力,使原来从事这方面工作的人员可以投入到更为实际的工作中去,提高管理部门的工作效率。所以综上所述,本系统的开发在经济方面是比较可行的。
2、技术可行性
技术可行性分析其主旨就是确保能够充分利用现有的技术条件,契合开发者的实际需求完成软硬件的开发及配置工作,明确技术人员专业能力等客观因素。网络技术的优势主要体现在:可靠的准确度;较快的传输速度。总之在科学技术飞速发展的今天,有利的推进了系统的发展。就技术层而言,本系统具有较高的可行性。
3、操作可行性
当今人们对计算机的操作已愈加成熟,对电脑的操作有一定基础,且本系统的操作性不算太复杂,通过简单的键盘输入以及鼠标点击即可完成相应的任务,简单培训以后立马上手,而且本系统可视性非常好,即本系统在操作上不会有太大难度。
4、时间可行性
从时间上看,在四年时间内学习了大量关于这方面的知识,尽管只是有些遗忘,而且需要在两个月内开发成此系统,但是通过查询相关知识,联系起以前学习的知识,通过这段时间的努力一定可以实现。
5、法律可行性
① 所有技术资料都为合法。
② 在开发过程中,完全不存在任何关于知识产权的问题。
③ 不侵犯版权,没有抄袭任何系统。
④ 在开发过程中,完全不涉及任何的法律问题,不会担负任何的法律责任。
根据以上分析,本系统在各个方面都是可以执行实现的。[15]

3.4 本章小结

本章主要介绍了系统的需求分析,其中主要包括两个方面:功能性需求分析和非功能性需求分析,并且还对可行性分析做了深入的研究。

第四章 系统总体设计
4.1 系统设计原则
在进行系统软件的设计中,要遵循一些原则和规范,这样才能规范设计流程,便于进行开发。本系统遵循着以下设计原则:
(1)良好的适用性。开发系统的目的是为用户服务的。也就是说我们所设计的软件需要满足用户的需求。因此本文的设计遵循的是用户需求优先的原则。
(2)结构稳定性。开发设计进行之前,需要设计系统的整体结构。一旦确定了体系的结构,这些设计便能流程化的进行。因此,维持一个稳定的结构才能保证后续一系列的工作的进行。
(3)可扩展性。衡量一个系统的好坏需要评估这个系统的可扩展性。如果软件只能实现现有的功能,对其他功能的添加有封闭性,当用户提出新的需求,只能重新设计,这显然是不合理的。因为良好的可扩展性无论对用户还是开发人员而言都是有益的。
(4)复用性。在一个系统中,有很多的模块内容是比较成熟,因此很多类似的工作就可以通过复用来实现,这样不仅提高了效率,而且可靠性也大大提高。
(5)易维护性。系统的维护往往是最耗费精力和金钱的。因此设计出易维护的系统能够使维护人员能够快速查找出问题,能让系统具备自维护的特点是很有必要的。[11]

4.2 系统框架

系统采用MVC设计模式。从数据层、视图层、控制层、逻辑层这几个方面进行的。以下将对各个层面的设计进行描述。
一、信息系统视图层的设计
系统采用B/S开发,这样就可以节约一部分的成本,因为使用这个模式可以减少C/S这个模式的时候进行的安装和升级。通过信息系统的表示层中大量的选项选择可以帮助降低用户数据的输入量,而且还可以减少相应的培训者在培训过程中和操作过程中与软件之间的磨合时间,是其可以更快的熟悉系统的工作,并将系统的作用得到最大程度的发挥。
二、控制层与逻辑层的设计
在信息系统的开发中,逻辑层需尊重不同用户的不同的需求,而且还要考虑不同层次间的关系。向下依赖是逻辑层的主要设计方式,这样的设计方式不但减少了上下层间信息访问的影响程度,也充分利用了软件开发时向下依赖的设计方法,也利用了其本身的耦合程度。而且,系统在进行进一步的开发和研究时不会在原来的基础上做改变,所以,这是一种具有代表性的可抽取式软件结构。
三、设计信息系统数据层
MVC模型对于数据的处理是属于比较灵活,因为此模型不会依赖控制部件与视图部件的辅助,这样的数据处理方式就更加有利于更新和优化信息系统,使信息系统的工作效率提升到一个新的层次。对于数据库来说,访问层在数据库的工作过程中起到一个很好的稳定数据的作用,因为访问层可以根据用户的各种不同的需求进行不同程度的改进和适应,从而保证数据库的稳定。MVC的模型设计可以与三层的模式之间做到无缝兼容,而且MVC模型的应用还保证了层次和模块之间不会产生较强的依赖性。而且MVC模型中的模型部可以对用户信息以及软件系统的各个数据进行封装,加强了数据的高处理效率和增强了系统的可操作性[8]。
4.3 数据库的分析与设计
数据库简单的说其实就是长期存储的相关数据的集合,但它又不仅是局限于
对信息的存储,通过建立数据库,我们可以对数据更好的管理、存储以及查询,而且更为重要的是,我们还可以实现共享数据。数据库中的数据结构表明了具体事务之间的关系。而描述实体类型和实体之间关系的则称之为数据库模型,数据库系统主要包含四种数据模型它们分别是:层次模型、关系模型、网状模型和面向对象模型。所有的数据库系统都有它特有的数据模型。在本系统中,经过对系统数据库的功能特点以及对需求的分析,最终选择关系模型作为本系统的数据模型。[12]
4.3.1 数据库的概念结构设计
概念设计是进行系统设计的一个十分重要的阶段,概念设计主要完成的任务是在深入、详细了解系统的功能以后建立整个系统的概念模型和概念结构,然后将概念模型转换成图形的形式,一般来说,描绘概念模型的方法各式各样,比较常用的图形有ER图、类图等等,这里针对医院管理住院系统进行ER图(实体-联系图)来对整个系统进行展示。
4.3.2 E-R图
E-R 图能够很直观地表示出概念模型。E-R 图之间联系的种类主要有三种情况,分别为一对一(1:1)、一对多(1:N)和多对多(N:M)。
ER图(实体-联系图)由以下几个固定图形所构成:  
实体形-矩形表示,矩形内为实体名称。  
属性-椭圆形或圆角矩形来表示,主属性的下面要相应的添加下划线。   
联系-菱形表示,菱形内部为联系的内容。
通过对医院管理住院系统的认真分析后,确定了以下六个实体,并标注了其各自的属性(一个实体可能有多个属性):
医生: (编号、姓名、性别、职称、职务、科别、出生日期、工作日期)

图4-1 医生E-R图

病床: (科别、病床号、床位费、使用状态)

图4-2 病床E-R图

病人: (科别、病床号、姓名、性别、年龄、病症、主治医生、入院日期、出院日期)

图4-3 病人E-R图

收费信息: (科别、病床号、病人姓名、收费项目、单价、数量、金额、日期)

图4-4 收费E-R图

整体系统E-R图

图4-5整体E-R图
4.3.3 数据库的实现
数据库在物理设备上的存储结构与存取方法被称为数据库的物理结构,它依赖与给定的计算机系统。为一个给定的逻辑数据模型选取一个最合适应用要求的物理结构。根据上面的实体关系分析以及ER图,设计医院管理住院系统的数据库表。

  1. 医生信息表
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/400318.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【启明智显技术分享】工业级HMI芯片Model3A开发过程中问题记录笔记

一、Model3A芯片介绍 Model3A是启明智显针对工业、行业以及车载产品市场推出的一款高性能、低成本的工业级HMI(Human-Machine Interface,人机界面)芯片。该芯片主要应用于工业自动化、智能终端HMI、车载仪表盘、两轮车彩屏仪表、串口屏、智能…

Docker容器管理之FAQ

一、前言 某次,某容器服务发现无法使用了,查看状态为restaring状态,后看是云主机重启了,导致本地的nfs-server未自动启动,导致关联的集群主机,远程挂载点无法使用,影响容器服务运行。故此&#…

老师分班查询助手,新学期老师都在用!

作为一名教师,您是否曾经在新学期伊始,面对着一堆学生名单和分班结果,感到无从下手?是否曾经历过在黑板上一笔一划地写下每个学生的名字和班级,然后一遍又一遍地回答家长和学生的询问?这样的场景&#xff0…

web页面的性能测试

背景 测试大模型主要web页面的性能 使用工具 通过google自带的lighthouse测试页面的性能 各个参考指标 First Contentful Paint(FCP):测量在用户导航到页面后浏览器呈现第一段 DOM 内容所花费的时间。页面上的图像、非白色<canvas>元素和 SVG 被视为 DOM 内容&#…

ECMAScript6语法:类

在 ES6 中新增了类的概率&#xff0c;多个具有相同属性和方法的对象就可以抽象为类。类和对象的关系如下&#xff1a; &#xff08;1&#xff09;类抽象了对象的公共部分&#xff0c;它泛指某一大类&#xff08;class&#xff09;。 &#xff08;2&#xff09;对象特指通过类…

Linux:基础IO

目录 1. stdin & stdout & stderr 2. 系统文件I/O 1. 接口介绍 open write read close lseek 2. open函数返回值 3. 文件描述符fd 0 & 1 & 2 文件描述符的分配规则 重回定向 dup2 简易Shell的模拟实现 4. FILE 5. 再谈对文件的理解 1. stdin …

threejs webgl效果 功能特效

雷达效果 ​飘扬的红旗 光柱效果 OD线 下雪 下雨 光墙效果 能源球 烟火效果 threejs烟花效果 光圈效果 threejs 光圈 波动 function initScene() {scene new THREE.Scene();}function initCamera() {camera new THREE.PerspectiveCamera(45, window.innerWidth / window.inne…

深入探索PDF源码解析:从PDF到Excel的数据统计分析找到正文

在数字化时代&#xff0c;数据已成为企业决策和业务运营的关键。PDF文档作为一种广泛使用的文件格式&#xff0c;其中蕴含着大量有价值的信息。然而&#xff0c;PDF文档的结构和格式使得直接对其进行数据提取和分析变得复杂。为了解决这个问题&#xff0c;我们采取了一种创新的…

SQL注入实例(sqli-labs/less-17)

0、初始网页 1、确定闭合字符 注入点在于password框&#xff0c;闭合字符为单引号 2、爆库名 1 and updatexml(1,concat(0x7e,database(),0x7e),1)# 1 and (select 1 from (select count(*),concat((select database()),floor(rand()*2))x from information_schema.tables gr…

经纬恒润亮相第四届焉知汽车年会,功能安全赋能域控

8月初&#xff0c;第四届焉知汽车年会在上海举行。此次年会围绕当下智能电动汽车的热点和焦点&#xff0c;聚焦于智能汽车场景应用、车载通信、激光雷达、智能座舱、功能安全、电驱动系统等多个领域&#xff0c;汇聚了来自OEM、科技公司、零部件供应商、测试认证机构、政府院校…

Spark SQL Catalyst工作流程

我们写的SQL语句&#xff0c;会经过一个优化器 (Catalyst)&#xff0c;转化为 RDD&#xff0c;交给集群执行。 而Catalyst在整个Spark 生态中的地位也是至关重要的。 SQL到RDD中间经过了一个Catalyst&#xff0c;它就是Spark SQL的核心&#xff0c;是针对Spark SQL语句执行过程…

使用pytest+selenium编写网页UI自动化脚本和用例

1 UI自动化测试 UI自动化测试&#xff08;User Interface Automation Testing&#xff09;是一种通过编写脚本或使用自动化测试工具&#xff0c;对界面&#xff08;UI&#xff09;进行自动化测试的方法。原理主要是模拟用户打开客户端或网页的UI界面&#xff0c;自动化执行用户…

kali安装docker

docker 安装 ● 1、更新 kali 下载资料源&#xff1a;apt-get update ● 2、如果出现上面没有数字签名问题&#xff0c;那就是需要下载证书 使用命令&#xff1a; wget archive.kali.org/archive-key.asc #下载证书 apt-key add archive-key.asc #添加证书 ● 3、重新更新一…

redis列表若干记录

2、列表 ziplist ziplist参数 entry结构 entry-data:节点存储的元素prelen&#xff1a;记录前驱节点长度encoding&#xff1a;当前节点编码格式encoding encoding属性 使用多个子节点存储节点元素长度&#xff0c;这种多字节数据存储在计算机内存中或者进行网络传输的时的字节…

redis面试(十六)公平锁释放和排队加锁

锁释放 RedissonFairLock.unlockInnerAsync()方法 这和加锁的逻辑没有太大区别 也就是说在客户端A他释放锁的时候&#xff0c;也会走while true的脚本逻辑&#xff0c;看一下有序集合中的元素的timeout时间如果小于了当前时间&#xff0c;就认为他的那个排队就过期了&#xf…

如何减少 Docker 镜像大小:6 种优化方法

如果您想减少docker镜像的大小&#xff0c;您需要使用构建docker镜像的标准最佳实践。 本博客讨论了您可以快速实施的各种优化技术&#xff0c;以制作最小、最精简的 docker 镜像。我们还将介绍一些用于 Docker 镜像优化的最佳工具。 Docker 作为一种容器引擎&#xff0c;可以…

k8s核心架构分析

k8s核心概念概述 Kubernetes入门&#xff1a;掌握集群核心&#xff0c;释放容器潜能 技术爱好者们&#xff0c;CD集群的核心概念是构建、部署和管理容器化应用的基石。掌握这些概念&#xff0c;不仅助你深入理解技术细节&#xff0c;更能在CD集群中自如操作&#xff0c;无论是…

2 C 语言开发工具选择、 MinGW 的安装与配置、VS Code 的安装与配置、插件推荐

目录 1 开发工具选择 1.1 Visual Studio 1.2 Code::Block 1.3 Clion 1.4 VS Code 1.5 在线编辑工具 2 开发工具安装 2.1 安装 MinGW-w64 2.1.1 MinGW-w64 介绍 2.1.2 解压 MinGW 2.1.3 将 MinGW 添加至环境变量 2.1.4 验证安装 2.2 安装 VS Code 2.2.1 下载安装包…

Avnet ZUBoard 1CG开发板上手—深度学习新选择

Avnet ZUBoard 1CG 开发板上手—深度学习新选择 摘要 本文主要介绍了 Avnet ZUBoard 1CG 开发板的特性、架构、硬件单元等概念&#xff0c;并对如何使用以太网接口和串口连接开发板进行基本介绍&#xff0c;同时辅以两个应用例程演示其功能。 原文链接&#xff1a; FreakSt…

如何编写一个CMakeLists.txt文件(由简到难,较详细)

在Linux系统下&#xff0c;经常使用CMakeLists.txt文件来链接、编译C工程&#xff0c;大部分人clone的代码里都是有CMakeLists.txt文件的&#xff0c;只需要cmake .. 和make就完事了&#xff0c;但在工作中&#xff0c;你必须要有从无到有编写CMakeLists.txt文件的能力。 一、…