医疗挂号管理系统

news2024/9/22 17:20:41

@TOC

springboot203医疗挂号管理系统

第一章 绪论

1.1 选题背景

目前整个社会发展的速度,严重依赖于互联网,如果没有了互联网的存在,市场可能会一蹶不振,严重影响经济的发展水平,影响人们的生活质量。计算机的发展,不管是从硬件还是软件,都有很多技术储备,每年都有很多的技术和软件产生,纵观各个领域,无一不用互联网软件,办公用的还是电脑居多,但是人手一台智能设备已经变成了现在人们的生活日常,哪怕的普通的老百姓都成了上知天文下知地理的所在,这些都依赖于互联网技术。互联网技术在信息的传播方面是巨大的,而信息的处理就变成了各种产业管理者和维护者的重任。人们已经习惯了互联网的存在,所以经常操作一些互联网产品变成了日常,所以开发一个医疗挂号管理系统,让人们使用是没有一点问题的,并且在这个过程中不仅能够规范医疗挂号信息管理的使用流程还有信息处理流程,也能让整个信息的传播处理,都存在一种可控制的范围,最重要的是,计算机在医疗挂号信息管理方面可以给管理者提供更好的帮助。

1.2 选题意义

当开发软件变成了一个潮流之后,会发现不管任何行业都能开发适合自己的软件,不管是内部员工管理,还是财务管理,甚至业务管理都可以数据化,并且可以对这些数据集中处理,进而根据数据处理结果就自然而然的提高了管理水平,最重要的是,开发一个软件投入使用,开发过程其实就是梳理行业痛点的过程,就是让软件来弥补行业的管理漏洞,不断的优化事物的处理流程。医疗挂号管理系统就是一款专门开发的软件,通过Web技术,让使用者可以在任何一台智能设备上面通过浏览器进行操作使用,对数据的处理不在局限于地域距离,只要软件开发到位,使用起来方便,达到预期目的,会发现有软件和没有软件的区别是很大的,有了这款软件之后,会发现数据的存储安全方面,比起之前的满屋寻找记录的优势是多么的巨大。

1.3 研究内容

本文将从分析,设计,实现,测试等角度来阐述本系统。

绪论:介绍本系统开发的背景,意义;

开发环境:介绍本系统的配置环境以及开发技术;

系统分析:介绍本系统的功能,性能以及可行性;

系统设计:介绍本系统的数据库的设计以及功能结构的设计;

系统实现:介绍本系统的实现界面以及实现的功能;

系统测试:介绍本系统的功能测试以及测试结果;

第二章 开发环境

开发本系统需要配置开发环境,除了需要开发者安装相应的软件外,也需要对开发中运用的技术进行了解和掌握。

2.1 Java语言

Java语言是目前最流行的语言之一,不仅可以做桌面窗口形式的程序,还可以做浏览器访问的程序,目前最流行的就是用Java语言作为基础,做各种程序的后台处理。Java语言是操作变量的语言,而变量则是Java对于数据存在形式的定义,变量用来操作内存,而内存则牵扯到计算机安全问题,这样Java语言反而有了免疫直接针对用Java语言开发出来的程序的病毒,有效的提高了Java语言开发出来程序的生存能力。Java是具有动态运行能力的一种语言,Java的类不仅仅可以用Java核心提供的基础类,还可以进行重写,这样会让Java的功能变得更加丰富,甚至可以编写一些功能模块进行封装,然后其他项目如果需要用到这些可以复用的功能,完全可以直接引用,然后在用得地方调用方法即可。Java是一种开源的语言,可以对Java里面的各种类以及引用方法进行追溯,甚至可以对已经编译过的语言进行反编译,这样不仅仅提高学习的效率,并且可以学习其他从业者提供的优雅的编程方式。Java语言发展到现在,已经在各个行业扎根,学习Java可以从事的行业很多,并且学习的方法很多,网上有很多免费的教程,甚至有些高深的知识也只需要付费就可以进行学习,而不是像Java语言之初,每一个编程人员都需要用记事本进行手动编码,现在有很多集成开发环境帮助Java从业者。选择Java语言进行编程,是一种很好的解决问题的方式。

2.2 MYSQL数据库

一般学习程序开发的人员如果学习数据库的话,肯定是要学习MySQL数据库,MySQL数据库通过这么多年的不断发展,社区版本都是免费的,最重要的是小巧,占用电脑空间比较小,让更多的开发人员可以不需要更换更高级的电脑就可以进行学习。学习只是一个方面,最重要的是MySQL市场占有率是世界第一,基本上十个公司就有七八个用得MySQL数据库。MySQL的优点不只是这么粗浅,MySQL首先是开源的,只要不是商用就不用花钱,并且大型的数据也是支持的,只要是市面上存在的操作系统,MySQL都可以有对应的版本可供使用。因为MySQL是开源的,如果有对MySQL有特殊需求的甚至可以自己修改源码,达到符合自己使用的目的。MySQL数据库好处多多,最重要的一点符合本设计的开发需求,可以说本设计只用到了MySQL的一些基础功能,而这点基础功能就完全够用。MySQL学习的教程网上很多,许多关于入门的教程就完全可以达到普通程序员的开发水平,只需要把基本的知识学会了,到公司里面也只是根据不同的业务逻辑进行不同的语句编写而已。

2.3 Eclipse开发工具

Eclipse是开源免费的,仅仅这样理解也许会给人一种免费没有好货的感觉,其实不是这样的。Eclipse是一个开发源代码的开发工具,这样会很安全,因为是开源的,如果对使用者的电脑有害,肯定能找到原因所在,所以这一点安全方面是不用担心的。Eclipse是不用安装的,这样就不用对系统盘增加压力,可以放到任何一个盘里,使用的时候打开,不用的时候关闭,不会偷偷的在后台运行,不需要增加注册表负担,启动还必须依靠Java的JDK才可以启动,有效的避免了一些病毒入侵,如果病毒入侵改变了源代码,就不能运行了,只能重新删除文件夹重新解压一份新的Eclipse即可,用起来很安全。Eclipse发展到现在,已经可以支持其他的开发语言了,家族越来越强大,功能越来越多,最重要的还是没有收费,这一点就让新手开发者省下很多的资金用来培养自己的学习,而不用花钱买了开发软件才发现自己不适合进行开发,永远免费的策略可以永远让人有想使用的机会。最重要的是Eclipse并不是免费功能就不够用,恰恰相反,不仅功能强大,用起来完全符合本设计的开发需求,所以选用了Eclipse作为开发工具。

2.4 Spring Boot框架

Spring Boot适合初学者,也适合从以前的Spring框架开发者学习,学习起来是很方便的,不管是纯英文教程还是中文教程,国内外都有很多学习的资料。Spring Boot可以运行所有的Spring项目,进行无缝切换。内置了Servlet 容器,不需要对代码进行打包变成WAR就可以运行。自带应用监控,运行的时候可以实时的对正在运行的项目进行监控,可以随时发现问题所在并且能定位发生的问题,可以让程序员及时的修改问题。

第三章 系统分析

这个阶段,需要依靠大量的资料作为研究本系统的基础数据,除了分析系统开发可行问题之外,还要再通过调查本系统针对的目标人群的需求来确定本系统功能,并在本系统的性能上做出进一步分析。

3.1可行性分析

在项目进行开发之前,必须要有可行性分析报告,分别从技术角度,经济角度,操作角度上面进行分析,经过可行性分析是实现科学开发的必要步骤。

3.1.1技术可行性

从技术的角度出发,目前采用开发的技术完全能满足系统开发需要。目前市场上有现成的软件开发工具和开发技术,这些可以保证系统开发的顺利进展。

3.1.2操作可行性

医疗挂号管理系统是根据用户经常使用的页面操作流程来进行设计的,并且页面保证统一,从视觉角度和操作角度上都能达到使用要求。

3.1.3经济可行性

在本次开发过程中,因为需要通过电脑来进行配置开发的环境,通过对技术的分析,发现目前正在使用的电脑是可以满足开发需要的,并不需要太多的金钱对电脑进行更换。所以,从经济角度上分析,可以满足开发要求。

从以上三个角度来进行分析论证,证明了医疗挂号管理系统是可以正常开发并且使用的。

3.2系统流程分析

从系统的角色上分析,每个用户角色都代表了不同的账号身份,而不同的身份则代表着功能的异同,所以首先要区分用户的角色身份问题。设置用户登录需要输入账号和密码,输入的信息必须与数据库里已经存在的账号密码信息进行比对,只有正确的账号和密码才可以进行下一步的页面显示操作,如果不正确的账号密码,则拒绝用户登录,也代表着用户没有继续访问的权限,系统是无法继续提供服务的。

图3-1 操作流程图

任何一个系统都有一个操作流程,本设计里面,对于任何数据的存储都有一定的合法要求,只有符合设定要求的数据才可以进行存储。具体步骤参考下图。

图3-2 添加信息流程图

数据的存储并不是一成不变的,当需要对已经存在的数据进行改变的时候,同样也遵循着操作流程,想更改数据首先要确定更改之前的数据是什么,然后输入新的数据是否合法,都要符合流程,只有合法数据才可以被更新到数据库里存储。具体步骤参考下图。

图3-3 修改信息流程图

删除操作,在数据存储方面是一件比较慎重的事件,很有可能会产生失误操作,所以一般删除操作的时候都要提示是否删除,确定删除才会更新数据库内容,实现删除目的。具体步骤参考下图。

图3-4 删除信息流程图

3.3系统性能分析

系统在使用过程中,用户会享受到系统带来的便利。那么如何保持在长时间的使用过程中,不出现乱七八糟的问题,让使用系统变成一种操作上的享受,使用上的便捷,这就是需要考虑的问题。以下主要从系统的性能分析上面进行描述,从数据完整以及数据安全,包括系统的可扩展等方面进行介绍。

3.3.1系统安全性

注册用户与游客用户的区别就在于是否有账号,如果有账号,那么就有相关的注册用户权限,有账号就有密码,密码是保证账号安全性的前提,游客只能浏览一些公共性信息,如果需要用户登录才能观看的信息,那么也需要使用账号登录的。对于系统安全性上面,主要考虑角色的密码加密问题,这样可以防止有效的密码数据拦截后的破解工作。一般密码如果有安全性要求的话,是可以考虑加密存储。密码的加密存储大致有两种设计方法,一种是密码在前台提交后就用Java Script进行MD5加密,然后直接提交密文,这样的好处是密文传输的安全性,另一种是提交密码后在后台处理的过程中对密码进行加密或者解密,这样会增加后台的处理负担。一般都居中考虑,如果登录的话会把密码在后台进行加密与数据库密码进行对比。目前常用的加密方式是MD5加密方式。

3.3.2数据完整性

系统进行开发的最重要的目的就是数据的处理,计算机有其擅长数据的存储以及处理工作,所以数据的完整性是必须保证的,不然系统的存在是没有必要的。数据不管是设计还是存储,都必须完整,从数据的输入就从各个方面保证数据的合法性,违规数据不能直接提交的。数据处理逻辑也会保证数据的加工正常,进而进行数据存储,也会保证数据设计的合理,这些都是有数据设定要求的。目前对数据的存储采用的关系型数据库,关系型数据库有多年的历史,功能强大,迁移备份以及无人值守都可以进行自动备份的。

3.3.3系统可扩展性

系统是有必要存在扩展性的。在设计之初就要考虑可能存在的业务,所以对系统的设计就要模块化设计,这样需要进行扩展的时候,只要在对应模块进行增加,对应逻辑进行调试即可。系统可扩展性的提升会让系统增加不必要的工作量,让程序设计更加符合规范。

3.4系统功能分析

本系统在功能分析上,主要是根据目标用户群的角度进行分析,为了便于展示分析结果,这里就使用用例图进行功能展示。

管理员用例图的绘制结果见图3-5。管理员登录进入本系统操作的功能包括对挂号人员,划价人员,患者,门诊信息,体检信息,药品信息等进行管理。

图3-5 管理员用例图

挂号人员用例图的绘制结果见图3-6。挂号人员登录进入本系统操作的功能包括新增挂号信息,新增患者信息,管理挂号和患者信息,查看门诊信息,病例信息,以及药品信息等。

图3-6 挂号人员用例图

划价人员用例图的绘制结果见图3-7。划价人员登录进入本系统操作的功能包括为已划价的病例进行取药,查看体检信息,药品信息,医生信息,门诊信息等。

图3-7 划价人员用例图

医生用例图的绘制结果见图3-8。医生登录进入本系统操作的功能包括添加病例信息,管理病例信息,查看挂号信息,患者信息,体检信息,门诊信息等。

图3-8 医生用例图

第四章 系统设计

到目前为止,市面上已经存在了各种各样的软件系统,从系统的分类着手,主要应用范围倾向于办公系统,娱乐系统,社交系统,然后下面有很多比较细的分支系统。很多系统已经经过了市场的考验,针对不同的业务场景已经开始出现了业务模块化,程序员减代码化的各种设计方式。到目前为止,当要设计一个系统的时候,首先根据业务模型基本上都可以在网上找到类似的模板,然后根据具体业务具体分析,进而实现具体功能,大众的就是最好的,毕竟符合市场主流的就代表着肯定符合常规操作流程。

4.1 系统设计目标

系统设计的时候,就要制定需要达成的目标。在功能上,要严格符合设计需求,不仅仅要减少操作步骤,也要符合预期。因此,在规范化的今天设计出符合项目要求的系统,必须要达到下面设定的目标。

第一个目标就是友好性:友好性主要体现在用户使用过程中,不会对系统的操作产生一种不满,减少操作者的愤怒,这是相当重要的一个体现。前几年好多软件在这个友好性方面失去了市场,就是因为在友好性这方面没有做好。国内互联网发展初期,软件设计的目的就是能用就行,至于友好性的对比,那是不存在的,因为硬件效率比较低,计算机属于新兴行业,所以大哥不说二哥,都是不友好的。随着计算机硬件的提升,很多开发者开始注意到要牺牲一定的计算器性能来提升友好性,因为计算机发展到现在,第一印象很重要,一个软件设计的不好看,会让大部分人对其产生质疑,所以要在友好性上面下很大功夫进行雕琢。

第二个目标就是安全性:安全性其实贯穿着整个软件行业的发展史,计算机就是为解决人类重复性计算以及数据存储的目的而诞生的,很多行业都需要计算机来进行计算,减少出错几率,并且把数据保留,可以实时查询,所以数据的安全性也很重要。

只要保证数据安全性的前提,开发出符合功能需求的友好界面操作,那么就达到了系统设计的目的。

4.2功能结构设计

本系统主要是基于数据的增加,修改,删除等操作,使用者能够通过提前设定的登录功能进入指定的操作区,这里对使用者设计的功能进行结构展示。

管理员功能结构图的绘制结果见图4-1。管理员登录进入本系统操作的功能包括对挂号人员,划价人员,患者,门诊信息,体检信息,药品信息等进行管理。

图4-1 管理员功能结构图

挂号人员功能结构图的绘制结果见图4-2。挂号人员登录进入本系统操作的功能包括新增挂号信息,新增患者信息,管理挂号和患者信息,查看门诊信息,病例信息,以及药品信息等。

图4-2 挂号人员功能结构图

划价人员功能结构图的绘制结果见图4-3。划价人员登录进入本系统操作的功能包括为已划价的病例进行取药,查看体检信息,药品信息,医生信息,门诊信息等。

图4-3 划价人员功能结构图

医生功能结构图的绘制结果见图4-4。医生登录进入本系统操作的功能包括添加病例信息,管理病例信息,查看挂号信息,患者信息,体检信息,门诊信息等。

图4-4 医生功能结构图

4.3数据库设计

如果说设计系统的功能很重要,那么设计该系统的数据库将更重要,毕竟系统服务于用户,数据库服务于系统,用户访问系统,操作系统的所有数据都要依赖于数据库,而系统的数据几乎都是保存在数据库中的,所以,一个高质量的程序,必然拥有一个安全,快速响应,稳定可靠的数据库。本系统的MySQL数据库可以通过SQL语言来实现对系统数据的管理,包括在指定表中插入数据,在规定的表中更改数据,以及删除指定表中的部分数据等操作。一般来说,像MySQL这样的关系型数据库,对于结构化查询语言SQL都能很好的进行支持。在编程中,通过合理运用SQL语言便能操作数据库的各种数据,真是非常方便快捷!

4.3.1 数据库概念设计

本节内容主要是使用图形的方式来描述数据库中的实体,每个实体的相应属性,还有实体之间的相互联系,常用的Visio工具即可满足绘制E-R图的需求。E-R图是由矩形,椭圆,菱形等图形元素组成,矩形框中主要写实体的名称,椭圆框中主要是登记该实体的属性,而菱形框中主要是登记实体之间的联系名称,最后使用实心线段把这些图形元素进行连接,即可完成E-R图的绘制。当初步得到一个E-R图时,需要进行检查,使用分析的方式去修改,重构E-R图,以达到消除数据冗余,或者是消除实体间联系冗余的目的。从而保持数据库的完整性,以及降低数据库维护上面的难度。

(1)使用Visio这样的常用的实体属性图绘制工具来绘制病例实体属性图,绘制结果见图4-3。

图4-3 病例实体属性图

(2)使用Visio这样的常用的实体属性图绘制工具来绘制挂号实体属性图,绘制结果见图4-4。

图4-4 挂号实体属性图

(3)使用Visio这样的常用的实体属性图绘制工具来绘制医生实体属性图,绘制结果见图4-5。

图4-5 医生实体属性图

(4)使用Visio这样的常用的实体属性图绘制工具来绘制挂号人员实体属性图,绘制结果见图4-6。

图4-6 挂号人员实体属性图

(5)绘制的上述实体间存在的联系见图4-7。

图4-7 实体间关系E-R图

4.3.2 数据库物理设计

本系统数据在数据库中都是通过各种二维表进行记录保存的,在数据库中设计这样的二维表也是比较重要的内容,因为它影响着数据的存储效率。在设计二维表也就是关系模型之前,一些有关二维表方面的常用概念需要进行充分了解。

关系:一张具体的数据表即表示关系,关系的名称与数据表的名称保持一致;

元组:数据表中,每行显示的数据即代表元组;

属性:数据表中,每列表示的数据即代表属性;

关键字:数据表中,为了与其他数据表进行区分,则需要在每张表中进行主键的设置;

通过上节内容可以知晓数据库中的各个实体,并通过一定方式把这些实体表示的内容进行数据表的转换,通常来说,每个实体都会对应一张具体的数据表,在本系统指定的数据库中创建命名好的数据库,才可以对数据表进行创建与设计。医疗挂号管理系统数据表设计结果展示如下:

表4-1 病例表

字段注释类型
id (主键)主键int(11)
guahao_id挂号int(11)
yisheng_id医生int(11)
bingli_uuid_number病例编号varchar(200)
zhusu_content患者主诉text
zhenduan_content诊断结果text
kaiyao_content开药详情text
bingli_types状态int(11)
insert_time添加时间timestamp
create_time创建时间timestamp

表4-2 挂号表

字段注释类型
id (主键)主键int(11)
huanzhe_id患者int(11)
guahaorenyuan_id挂号人员int(11)
yisheng_id医生int(11)
guahao_uuid_numbervarchar(200)
insert_time挂号时间timestamp
create_time创建时间timestamp

表4-3 挂号人员表

字段注释类型
id (主键)主键int(11)
username账户varchar(200)
password密码varchar(200)
guahaorenyuan_name挂号人员姓名varchar(200)
guahaorenyuan_phone挂号人员手机号varchar(200)
guahaorenyuan_id_number挂号人员身份证号varchar(200)
guahaorenyuan_photo挂号人员头像varchar(200)
sex_types性别int(11)
create_time创建时间timestamp

表4-4 划价人员表

字段注释类型
id (主键)主键int(11)
username账户varchar(200)
password密码varchar(200)
huajiarenyuan_name划价人员姓名varchar(200)
huajiarenyuan_phone划价人员手机号varchar(200)
huajiarenyuan_id_number划价人员身份证号varchar(200)
huajiarenyuan_photo划价人员头像varchar(200)
sex_types性别int(11)
create_time创建时间timestamp

表4-5 患者表

字段注释类型
id (主键)主键int(11)
huanzhe_name患者姓名varchar(200)
huanzhe_phone患者手机号varchar(200)
huanzhe_id_number患者身份证号varchar(200)
huanzhe_photo患者头像varchar(200)
sex_types性别int(11)
create_time创建时间timestamp

表4-6 门诊表

字段注释类型
id (主键)主键int(11)
yisheng_id医生int(11)
menzhen_name门诊名称varchar(200)
menzhen_address门诊位置varchar(200)
xingqiji星期几坐诊varchar(200)
qita_content门诊详情text
insert_time添加详情timestamp
create_time创建时间timestamp

表4-7 体检表

字段注释类型
id (主键)主键int(11)
yisheng_id医生int(11)
huanzhe_id患者int(11)
tijian_uuid_number体检编号varchar(200)
tizhong体重varchar(200)
shengao身高varchar(200)
zuoyandushu左眼度数varchar(200)
youyandushu右眼度数varchar(200)
xinlv心率varchar(200)
xinyin心音varchar(200)
feibutingzhen肺部听诊varchar(200)
ganzangtingzhen肝脏听诊varchar(200)
xuechanggui_text血常规详情text
niaochanggui_text尿常规详情text
qita_text其他详情text
insert_time检查时间timestamp
create_time创建时间timestamp

表4-8 管理员表

字段注释类型
id (主键)主键bigint(20)
username用户名varchar(100)
password密码varchar(100)
role角色varchar(100)
addtime新增时间timestamp

表4-9 药品表

字段注释类型
id (主键)主键int(11)
yaopin_uuid_number药品编号varchar(200)
yaopin_name药品名称varchar(200)
yaopin_photo药品照片varchar(200)
yaopin_types药品类型int(11)
yaopin_content药品介绍text
insert_time添加时间timestamp
create_time创建时间timestamp

表4-10 医生表

字段注释类型
id (主键)主键int(11)
username账户varchar(200)
password密码varchar(200)
yisheng_name医生姓名varchar(200)
yisheng_phone医生联系方式varchar(200)
yisheng_photo医生头像varchar(200)
sex_types性别int(11)
keshi_types科室int(11)
zhiwei_types职位int(11)
guahaofei挂号费decimal(10,2)
create_time创建时间timestamp

打开新的 phpMyAdmin 窗口

第五章 系统实现

这里主要是对系统设计实现进行描述,通过系统的设计和数据库的设计,通过编码后变成了可以进行操作的界面,让一切想法变成了结果,通过文字和具体程序操作界面的截图之间的配合,可以把功能更直观的描述起来。

5.1管理员功能实现

5.1.1 药品管理

管理员进入如图5-1所示的药品管理界面之后,管理员点击信息显示栏中最右侧的修改,删除按钮可依次完成药品信息的修改,删除等操作。

图5-1 药品管理界面

5.1.2 体检管理

管理员进入如图5-2所示的体检管理界面之后,管理员点击信息显示栏中最右侧的修改,删除按钮可依次完成体检信息的修改,删除等操作。

图5-2 体检管理界面

5.1.3 门诊管理

管理员进入如图5-3所示的门诊管理界面之后,管理员点击信息显示栏中最右侧的修改,删除按钮可依次完成门诊信息的修改,删除等操作。

图5-3 门诊管理界面

5.2 挂号人员功能实现

5.2.1 患者管理

挂号人员进入如图5-4所示的患者管理界面之后,挂号人员点击信息显示栏中最右侧的详情,删除按钮可依次完成患者信息的详情查看,删除等操作。挂号人员可以新增患者信息。

图5-4 患者管理界面

5.2.2 挂号管理

挂号人员进入如图5-5所示的挂号管理界面之后,挂号人员点击信息显示栏中最右侧的修改,删除按钮可依次完成挂号信息的修改,删除等操作。挂号人员需要添加挂号信息。

图5-5 挂号管理界面

5.2.3 门诊查看

挂号人员进入如图5-6所示的门诊查看界面之后,挂号人员点击信息显示栏中最右侧的详情按钮可以查看门诊详情,包括医生姓名,挂号费,门诊位置,星期几坐诊等信息。

图5-6 门诊查看界面

5.3 划价人员功能实现

5.3.1 病例管理

划价人员进入如图5-7所示的病例管理界面之后,划价人员可以查看病例详细内容,可以对已划价状态的病例进行取药操作。

图5-7 病例管理界面

5.3.2 体检查看

划价人员进入如图5-8所示的体检查看界面之后,划价人员可以查看患者的体检详情信息,包括左眼度数,肺部听诊,血常规详情等信息。

图5-8 体检查看界面

5.3.3 药品查看

划价人员进入如图5-9所示的药品查看界面之后,划价人员查看药品详情,包括药品名称,药品编号等信息。

图5-9 药品查看界面

5.4 医生功能实现

5.4.1 病例管理

医生进入如图5-10所示的病例管理界面之后,医生可以删除患者的病例信息,可以对患者的病例进行新增。

图5-10 病例管理界面

5.4.2 挂号查看

医生进入如图5-11所示的挂号查看界面之后,医生查看患者挂号费,科室,职位,挂号人员姓名,患者姓名等信息,可以查询患者挂号信息。

图5-11 挂号查看界面

5.4.3 患者查看

医生进入如图5-12所示的患者查看界面之后,医生查看患者详情,包括患者手机号,患者姓名,患者身份证号等信息,可以查询患者信息。

图5-12 患者查看界面

第六章 系统测试

在整个系统完成之后,就需要进入系统测试环节。在系统测试环节的主要任务就是用不同的测试方法,使用不同的测试用例,来引出系统出现的问题,只要测试出问题,才可以让程序员有目的性的对问题进行解决,最终让问题越来越少,才能让用户验收程序。

MenzhenServiceImpl.java
package com.service.impl;

import com.utils.StringUtil;
import org.springframework.stereotype.Service;
import java.lang.reflect.Field;
import java.util.*;
import com.baomidou.mybatisplus.plugins.Page;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import org.springframework.transaction.annotation.Transactional;
import com.utils.PageUtils;
import com.utils.Query;
import org.springframework.web.context.ContextLoader;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import com.dao.MenzhenDao;
import com.entity.MenzhenEntity;
import com.service.MenzhenService;
import com.entity.view.MenzhenView;

/**
 * 门诊 服务实现类
 */
@Service("menzhenService")
@Transactional
public class MenzhenServiceImpl extends ServiceImpl<MenzhenDao, MenzhenEntity> implements MenzhenService {

    @Override
    public PageUtils queryPage(Map<String,Object> params) {
        if(params != null && (params.get("limit") == null || params.get("page") == null)){
            params.put("page","1");
            params.put("limit","10");
        }
        Page<MenzhenView> page =new Query<MenzhenView>(params).getPage();
        page.setRecords(baseMapper.selectListView(page,params));
        return new PageUtils(page);
    }


}

ConfigServiceImpl.java

package com.service.impl;


import java.util.Map;

import org.springframework.stereotype.Service;

import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.dao.ConfigDao;
import com.entity.ConfigEntity;
import com.service.ConfigService;
import com.utils.PageUtils;
import com.utils.Query;


/**
 * 系统用户
 * @author yangliyuan
 * @date 2019年10月10日 上午9:17:59
 */
@Service("configService")
public class ConfigServiceImpl extends ServiceImpl<ConfigDao, ConfigEntity> implements ConfigService {
	@Override
	public PageUtils queryPage(Map<String, Object> params) {
		Page<ConfigEntity> page = this.selectPage(
                new Query<ConfigEntity>(params).getPage(),
                new EntityWrapper<ConfigEntity>()
        );
        return new PageUtils(page);
	}
}

GuahaoServiceImpl.java
package com.service.impl;

import com.utils.StringUtil;
import org.springframework.stereotype.Service;
import java.lang.reflect.Field;
import java.util.*;
import com.baomidou.mybatisplus.plugins.Page;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import org.springframework.transaction.annotation.Transactional;
import com.utils.PageUtils;
import com.utils.Query;
import org.springframework.web.context.ContextLoader;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import com.dao.GuahaoDao;
import com.entity.GuahaoEntity;
import com.service.GuahaoService;
import com.entity.view.GuahaoView;

/**
 * 挂号 服务实现类
 */
@Service("guahaoService")
@Transactional
public class GuahaoServiceImpl extends ServiceImpl<GuahaoDao, GuahaoEntity> implements GuahaoService {

    @Override
    public PageUtils queryPage(Map<String,Object> params) {
        if(params != null && (params.get("limit") == null || params.get("page") == null)){
            params.put("page","1");
            params.put("limit","10");
        }
        Page<GuahaoView> page =new Query<GuahaoView>(params).getPage();
        page.setRecords(baseMapper.selectListView(page,params));
        return new PageUtils(page);
    }


}

IndexMain.vue
<template>
	<el-main>
		<bread-crumbs :title="title" class="bread-crumbs"></bread-crumbs>
		<router-view class="router-view"></router-view>
	</el-main>
</template>
<script>
	import menu from "@/utils/menu";
	export default {
		data() {
			return {
				menuList: [],
				role: "",
				currentIndex: -2,
				itemMenu: [],
				title: ''
			};
		},
		mounted() {
			let menus = menu.list();
			this.menuList = menus;
			this.role = this.$storage.get("role");
		},
		methods: {
			menuHandler(menu) {
				this.$router.push({
					name: menu.tableName
				});
				this.title = menu.menu;
			},
			titleChange(index, menus) {
				this.currentIndex = index
				this.itemMenu = menus;
				console.log(menus);
			},
			homeChange(index) {
				this.itemMenu = [];
				this.title = ""
				this.currentIndex = index
				this.$router.push({
					name: 'home'
				});
			},
			centerChange(index) {
				this.itemMenu = [{
					"buttons": ["新增", "查看", "修改", "删除"],
					"menu": "修改密码",
					"tableName": "updatePassword"
				}, {
					"buttons": ["新增", "查看", "修改", "删除"],
					"menu": "个人信息",
					"tableName": "center"
				}];
				this.title = ""
				this.currentIndex = index
				this.$router.push({
					name: 'home'
				});
			}
		}
	};
</script>
<style lang="scss" scoped>
	a {
		text-decoration: none;
		color: #555;
	}

	a:hover {
		background: #00c292;
	}

	.nav-list {
		width: 100%;
		margin: 0 auto;
		text-align: left;
		margin-top: 20px;

		.nav-title {
			display: inline-block;
			font-size: 15px;
			color: #333;
			padding: 15px 25px;
			border: none;
		}

		.nav-title.active {
			color: #555;
			cursor: default;
			background-color: #fff;
		}
	}

	.nav-item {
		margin-top: 20px;
		background: #FFFFFF;
		padding: 15px 0;

		.menu {
			padding: 15px 25px;
		}
	}

	.el-main {
		background-color: #F6F8FA;
		padding: 0 24px;
		// padding-top: 60px;
	}

	.router-view {
		padding: 10px;
		margin-top: 10px;
		background: #FFFFFF;
		box-sizing: border-box;
	}

	.bread-crumbs {
		width: 100%;
		// border-bottom: 1px solid #e9eef3;
		// border-top: 1px solid #e9eef3;
		margin-top: 10px;
		box-sizing: border-box;
	}
</style>

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

51单片机-LCD1602显示屏

简介 是一个液晶显示屏&#xff0c;通过电压对显示区域进行控制&#xff0c;有电就显示。 能够同时显示32个字符&#xff0c;分为两行&#xff0c;一行显示16个字符。可以显示的内容只能是字母、数字或者一些特殊符号。 使用ASCII码来让LCD1602来显示对应的字符。 电路图 …

HarmonyOS应用三之组件生命周期和参数传递

目录&#xff1a; 1、生命周期的执行顺序2、页面数据传递3、图片的读取4、数据的备份和恢复5、轮播图6、页面布局图 1、生命周期的执行顺序 /** Copyright (c) 2023 Huawei Device Co., Ltd.* Licensed under the Apache License, Version 2.0 (the "License");* yo…

OpenSSL源码编译及Debug

** 1. 环境 Linux 5.19.0-14-generic 22.04.1-Ubuntu 2. 所需工具 gcc version 11.3.0 (Ubuntu 11.3.0-1ubuntu1~22.04) cmake version 3.22.1 3. 步骤 3.1 获取openssl源码 方法可以git clone获得源码&#xff0c;或者直接去GitHub上下载压缩包&#xff0c;GitHub网址&#xf…

4 C 语言变量、printf 基本输出、scanf 基本输入、关键字、标识符及其命名规则

目录 1 为什么需要变量 2 变量的概念 3 变量的声明和使用 3.1 vscode 管理代码 4 printf 输出变量 5 scanf 输入数据赋值给变量 6 标识符 6.1 标识符命名规范 6.1.1 强制规范 6.1.2 建议规范 6.2 关键字 7 案例&#xff1a;求从键盘输入整数的和 8 测试题 1 为什么…

如何用20块钱创建一个国际网站 VC编程网站 www.vcbcw.top

我一直想弄一个网站。 但是网页设计这一块一直没有精力学习。 所以打算先用最少的投入创建一个属于自己的网站。 第一步&#xff1a; 到万网www.net.cn上申请一个域名&#xff0c;8块钱的&#xff0c;10块钱的都有&#xff0c;自己好好想一个名称就行了。 新手&#xff0c…

【重新定义matlab强大系列二十】Matlab显示地球地貌数据

&#x1f517; 运行环境&#xff1a;Matlab &#x1f6a9; 撰写作者&#xff1a;左手の明天 &#x1f947; 精选专栏&#xff1a;《python》 &#x1f525; 推荐专栏&#xff1a;《算法研究》 #### 防伪水印——左手の明天 #### &#x1f497; 大家好&#x1f917;&#x1f91…

探索Java Stream API:高效处理集合的利器

文章目录 一、Stream API简介1.1 什么是Stream&#xff1f;1.2 Stream的特点 二、Stream API的基本操作2.1 创建Stream2.2 中间操作2.3 终端操作 三、Stream API的高级应用3.1 并行Stream3.2 复杂数据处理3.3 Stream与Optional 四、最佳实践例子 1: 筛选和映射例子 2: 排序和收…

【Linux修行路】进程控制——程序替换

目录 ⛳️推荐 一、单进程版程序替换看现象 二、程序替换的基本原理 三、程序替换接口学习 3.1 替换自己写的可执行程序 3.2 第三个参数 envp 验证 ⛳️推荐 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下…

Dify 开源大语言模型(LLM) 应用开发平台如何使用Docker部署与远程访问

目录 ⛳️推荐 前言 1. Docker部署Dify 2. 本地访问Dify 3. Ubuntu安装Cpolar 4. 配置公网地址 5. 远程访问 6. 固定Cpolar公网地址 7. 固定地址访问 ⛳️推荐 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享…

Vue3列表(List)

效果如下图&#xff1a;在线预览 APIs List 参数说明类型默认值bordered是否展示边框booleanfalsevertical是否使用竖直样式booleanfalsesplit是否展示分割线booleantruesize列表尺寸‘small’ | ‘middle’ | ‘large’‘middle’loading是否加载中booleanfalsehoverable是否…

mysql写个分区表

因为表量已经达到1个亿了。现在想做个优化&#xff0c;先按照 create_time 时间进行分区吧。 create_time 是varchar类型。 CREATE TABLE orders (id varchar(40) NOT NULL ,order_no VARCHAR(20) NOT NULL,create_time VARCHAR(20) NOT NULL,amount DECIMAL(10,2) NOT NULL,…

Unity如何使用Spine动画导出的动画

Unity如何使用Spine动画导出的动画 介绍使用版本Spine导出源文件修改Spine3.8.75版本导入Unity的3.8版本Spine的报错Unity辅助修改Json中版本号方式总结 介绍 最近公司在做抖音小程序的小游戏&#xff0c;我们这边动画部分使用的是spine动画&#xff0c;所以会有spine导入的问…

IDEA使用LiveTemplate快速生成方法注释

本文目标&#xff1a;开发人员&#xff0c;在了解利用Live Template动态获取方法输入输出参数、创建日期时间方法的条件下&#xff0c;进行自动生成方法注释&#xff0c;达到自动添加方法注释的程度&#xff1b; 文章目录 1 场景2 要点2.1 新增LiveTemplate模版2.2 模版内容填写…

FFMPEG推流器讲解

FFMPEG重要结构体的讲解 FFMPEG中有六个比较重要的结构体&#xff0c;分别是AVFormatContext、AVOutputFormat、 AVStream、AVCodec、AVCodecContext、AVPacket、AVFrame、AVIOContext结构体&#xff0c;这几个结构体是贯穿着整个FFMPEG核心功能。 AVFormatContext 这个结构…

基于web的大学生一体化服务平台的设计与实现

TOC springboot209基于web的大学生一体化服务平台的设计与实现 第1章 绪论 1.1 课题背景 二十一世纪互联网的出现&#xff0c;改变了几千年以来人们的生活&#xff0c;不仅仅是生活物资的丰富&#xff0c;还有精神层次的丰富。在互联网诞生之前&#xff0c;地域位置往往是人…

1、.Net UI框架:WinUI - .Net宣传系列文章

WinUI(Windows UI Library)是微软提供的一个用于构建Windows应用程序的本机UI平台组件。它与Windows应用SDK紧密相关&#xff0c;允许开发者创建适用于Windows 10及更高版本的应用程序&#xff0c;并且可以发布到Microsoft Store。WinUI 3是最新的一代&#xff0c;它提供了与操…

C# 中 Tuple 与 ValueTuples 之间的区别

在 C# 中&#xff0c;元组和值元组都用于在单个变量中存储多个值。但它们在语法、功能和性能方面存在一些关键差异。 一.Tuples(元组) 元组是一种引用类型&#xff0c;长期以来一直是 .NET 的一部分。它们是使用 System.Tuple 类创建的。 例子 using System; class Program…

养猫家庭必备好物?希喂、霍尼韦尔宠物空气净化器真实测评

随着宠物空气净化器的讨论度越来越高&#xff0c;我也被种草了这款产品。对养宠家庭来说&#xff0c;十分需要这样一款转专门针对宠物毛发清理的工具。准备入手前我在网上做了许多功课&#xff0c;经过一番筛选后&#xff0c;最后希喂、霍尼韦尔两个品牌成功晋级决赛。 在对比…

代理IP为什么不能使用免费代理IP地址?

在跨境业务中&#xff0c;营销人员、广告投手经常利用代理IP防止账号关联与封禁&#xff0c;并且在访问网站时可以隐匿真实 IP 地址&#xff0c;定位目标市场。代理服务器充当中间人掩盖真实的数字足迹&#xff0c;这不仅增强了隐私&#xff0c;也会跨境业务提效提供保障。但是…

基于STM32开发的智能语音助手系统

目录 引言环境准备工作 硬件准备软件安装与配置系统设计 系统架构硬件连接代码实现 初始化代码控制代码应用场景 智能家居控制个人语音助理常见问题及解决方案 常见问题解决方案结论 1. 引言 随着人工智能技术的发展&#xff0c;智能语音助手已经逐渐进入了人们的日常生活。…