目 录
摘 要 I
ABSTRACT II
第一章 绪论 1
1.1研究背景与意义 1
1.2国内外研究现状 1
1.3研究内容 2
第二章 相关技术工具简介 3
2.1Java语言 3
2.2SpringBoot框架 3
2.3MySQL数据库 3
第三章 系统需求分析 4
3.1可行性分析 4
3.2系统总体功能需求分析 4
3.3管理员总体功能需求分析 4
3.4患者总体功能需求分析 6
3.5医生总体功能需求分析 6
第四章 系统设计 8
4.1系统的总体设计 8
4.2系统的详细设计 8
4.3数据库设计 10
4.3.1概念结构设计 11
4.3.2逻辑结构设计 11
第五章 系统实现 16
5.1管理员功能实现 16
5.2患者功能实现 24
5.3医生功能实现 31
参考文献 37
致 谢 38
第一章 绪论
1.1研究背景与意义
(1)研究背景
医院是提供医疗服务的机构,医院的日常管理事务很多,管理难度较大,医院要花费非常大量的人力资源与物力资源在信息化管理上面。各种信息化管理系统在医院已经开始实践实施与运行,如医院挂号系统,临床管理系统等等诸如此类的系统。这些系统化管理不仅提高了医院运转速率,节省了运营成本,更是提供了更好的医疗服务。
医疗记录是医疗服务提供者对病人疾病发展、咨询和提供治疗等方面的医疗活动的记录。目前,大部分医院仍采用传统的纸质病历本来管理病历,在患者挂号时协助发放,诊疗过程中进行记录。随着全面信息化的实施,传统的手写病历管理模式已经不符合医院信息化的发展方向。使用纸质病历不仅容易导致患者遗忘,医生手写记录也存在字迹不清及识别困难等问题。此外,纸质记录对于病情信息的交流也不便于高效传递,不利于各个诊疗环节间的协同合作。
(2)研究意义
病历档案是详细记载病患者入院检查和治疗全流程产生的医院门诊记录信息、会诊记录另外疾病诊疗最终的相关信息资料,是临床医学具体研究、医学方面科技项目攻关的关键参照的直接依据。故而,在大医院资料管理中,病历档案掌控着不可或缺的角色。传统的纸质病历已经无法满足医院信息化管理的需求,该项目基于SpringBoot框架设计实现了一套医院电子病历系统,旨在减轻医生负担,提高医院的信息化水平,该系统分为病人、医师、管理员三个角色,管理员拥有访问权,对所有医生患者进行管理,并能查看所有病历。患者可以选择自己需要的医生进行问诊。查看自己的病历信息,问诊记录信息以及导出打印就诊记录信息以及报告记录管理信息。医生角色能够新建患者信息,并为患者编写电子病历,所有数据都存放于MySQL数据库中,通过线上和线下相结合的方式,最大程度利用医疗资源。
1.2国内外研究现状
目前,国内针对患者使用的医疗服务系统比较流行的便是“微医”医疗服务系统。医院或者医生只需开通服务,将医院信息与“微医”系统对接,患者便可在此平台进行挂号以及个人信息的管理等。很多中小型医院来说更是完全没有开通此项服务,与此同时很多检查是需要较长时间才能出结果,患者还需再次跑到医院取报告单,这对于外地患者来说是特别麻烦的一件事。并且对于传统的就诊模式,患者的诊断结果是以纸质的病历册填写并由患者本人保管,而很多患者在下次复诊的时候就找不到了,因此医生不能很好的了解患者的治疗效果。而“医院电子病历系统”将电子病历,检查报告等信息都搬运到网上,方便了患者就医,改善了医院的秩序并且更有效的保管患者信息。
2020年初地球爆发了有史以来最严重的一次人类传染病,对于很多医疗设施落后的国家来说简直就是一场灾难。为了控制疫情,很多地方都采取了限流措施以减少人员聚集程度,而对于医院来说其是一个人员密度大且更易感染的特殊场合。此系统能够让用户直接在网上查看病历,到规定时间直接去就诊。且就诊后能直接在网上查看自己的就诊信息。最大程度的减少了患者花费的时间,并防止交叉感染。将以往的书面医疗记录改为电子医疗记录,可以降低对纸张资料的利用。通常情况下,纸张是从被称为世界“肺”的树中获得的,它可以吸收空气中的二氧化氮并产生氧气。换而言之,减少纸张的利用就是减少树的砍伐。这对人类的生存环境具有重要作用。
1.3研究内容
随着科学技术的不断发展,人们迫切需要以病人为中心的医院信息系统,以有效管理临床护理和医院管理。因此,特别需要电子病历来提高医疗服务的质量和效率。医院电子病历不仅超越了医疗记录的概念,它还包括了医院管理信息系统、健康管理系统、远程会诊系统和公共卫生信息系统,它们共同构成了病人护理的基础。患者病情的核心在于病历,所有医疗信息都以其为基础。电子病历与传统的纸张病历本不太同,它替换了手写记录,以电子信息形式保存。入院时,病人的个人资料信息被输入计算机系统,各医疗部门都有关于每个病人的治疗、检查和其他医疗活动的信息,最后形成完整的医疗档案。
第二章 相关技术工具简介
2.1Java语言
Java作为一种高效的编程语言,其语法架构极其类似C++,而且Java具有强大的多功能能力,能够满足IBM、MAC苹果计算机、多种微处理器硬件、Windows、UNIX、OS/2、MAC OS等多种操作环境的需求,从而使“一次编写,处处运行”的功能得到充分的展示。
Java在编程技术史上被公认为是史上最卓越的编程语言之一。其简洁、可靠和安全性与C++相比,胜出不少。
使用Java编写的程序既可以编译也可以解释运行,程序代码首先需要被编译成Java字节码,然后在Java虚拟机(JVM)中进行解释和执行。
2.2SpringBoot框架
SpringBoot可以帮助你简化Spring框架的构建过程。通过使用 SpringBoot,我们可以轻松地构建出与工作环境完全隔离的高质量Spring应用程序,其也被我们称为微框架。是所有基于Spring开发的项目的起点。SpringBoot的设计是为了让你尽可能快的跑起来Spring应用程序并且尽可能减少你的配置文件。它使用“习惯优于配置”(项目中存在大量的配置,此外还内置一个习惯性的配置,让你无须)的理念让你的项目快速运行起来。它并不是什么新的框架,而是默认配置了很多框架的使用方式,就像Maven整合了所有的JAR包一样,SpringBoot整合了所有框架。
2.3MySQL数据库
MySQL数据库是关系型数据库、与其他数据库相比虽不完美,却足够灵活,能够适应多种环境,例如LAMP架构和LNMP架构的Web应用。同事也可以嵌入到应用程序中,也支持数据仓库、内容索引和高可用冗余系统以及在线事务处理系统(OLTP)等各种应用类型。MySQL最与众不同的当属他的数据存储引擎架构,这种架构的设计在查询处理及其他系统任务和数据的存储/提取相分离,这种处理和存储分离的设计可以在使用时根据性能、特性以及其他需求来选择数据的存储方式。常见关系型数据库有Oracle,SQLServer,DB2,MySQL等。它们可以满足各种轻量级和小规模的应用需求,并且系统性能一定程度上不会对不同的数据库造成影响。但对于大型应用来说,需要根据应用的业务和性能需要,选择适合的关系数据库。
第三章 系统需求分析
3.1可行性分析
3.1.1技术可行性
经过分析和确定后,我们在开发医院电子病历系统时候选择了比较适合的软件架构和技术实现。在其设计实现过程中,我们采用了方便的开发模型和成熟的解决方法,包括了开发工具和系统架构的选择。与市场上现有的医院电子病历系统相比之后,我们使用的技术基本上是实用的。操作系统上使用的是Java语言进行开发,性能更加的稳定,可以在不同的操作系统上运行,相对于其他编程语言而言,Java更具有有效性。而数据库系统采用的是MySQL,这些软件在很多医院电子病历系统中都有应用,技术上都较为成熟并且技术是开源免费的,能够降低程序开发的成本。
3.1.2经济可行性
医院电子病历系统对软件、硬件环境的要求都不高,而且在后期的维护以及整个开发的过程中,不仅很方便了开发人员和使用者的操作,同时还具有前瞻性,以及具有划时代的意义。这意味着医院全面进入信息化时代。从发展的角度来看,这一切都是切实可行的。
经济可行性要求医院电子病历系统带来的收益能够多余软件开发的成本,让医院管理者对资讯信息进行管理,从而是达到降本提效的目的。该系统的开发周期短,成本相对低廉,且可在一台普通电脑上安装必需软件环境后即可以运行。通过该系统,管理员可以大大降低手工操作并且提高管理效率。该系统使用的框架为开源框架,使用开源框架可以降低开发成本。
3.2系统总体功能需求分析
本系统按照医院发展的需要,创建效率更高的医院电子病历系统。目前国内大多数医院在信息化发展方向上,纸质病历与之不符。手写记录存在字迹不清晰难以识别的问题,而且易于患者遗忘,不利于病情信息传递。因此,需要采用更高效的方式进行病历记录和信息传递。为了能够解决这些问题,从而创建医院电子病历系统,使得提高了运转速率,节省了运营成本。
3.3管理员总体功能需求分析
管理员角色功能需求如下所列。
(1)登录:打开主界面。如果账号被管理员正确地填写了,就能够轻松访问该系统;
(2)个人中心管理功能:用户名和密码根据自己想法填写修改;
(4)科室信息管理功能:管理员可以查看、编辑和删除科室部门的所有信息,还能根据科室部门名称对科室进行查询,从而实现科室部门的有效管理;
(5)患者信息管理功能:支持按照姓名、性别等多种方式,实现快速、准确的查询。且后续可以继续添加新的病患记录;
(6)医生信息管理功能:可根据医生工号、医生姓名、头衔、科室名称进行查询,以及新增、修改、删除医生信息;
(7)病历信息管理功能:可以根据病历编号、病历名称、姓名、性别进行查询,以及修改、删除、导出和打印病历信息;
(8)问诊记录管理功能:可以根据科室名称、问诊时间起始至问诊时间结束、审核状态进行信息查询;
(9)就诊记录管理功能:医生可以在线查看患者既往诊疗信息从而作出准确诊断,也可以根据患者需求如某患者不耐某药物,则可以进行修改医嘱、最后还可以生成纸质就诊记录;
(10)报告记录管理功能:医生可以在线查看患者既往报告信息从而作出准确诊断,也可以根据患者需求生成纸质报告。
通过以上对管理员的功能进行需求分析,构建用例图,如图3.1所示。
图3.1 管理员功能用例图
3.4患者总体功能需求分析
通过对本系统的总体功能需求分析,患者角色具有以下的一些功能需求。
(1)注册登录功能:第一步先输入姓名,密码,年龄,手机、病史进行注册。注册之后患者就可以通过后进入。如果输入的信息存在错误,则系统会提示错误,则需要重新登录;
(2)个人中心管理功能:患者了解自己的用户名和密码,也可以修改;
(3)询查医生信息功能:查看医生信息详情;
(4)问诊功能:选择医生进行问诊,描述自己的症状并进行提交亦可以附加信息备注;
(5)病历信息管理功能:查看、导出、打印病历信息;
(6)问诊记录管理功能:查看问诊记录以及医生审核状态;
(7)就诊记录管理功能:查看、导出、打印就诊记录信息;
(8)报告记录管理功能:查看、导出、打印报告记录信息。
通过以上对患者的需求分析构建了患者功能用例图,如图3.2所示。
图3.2 患者功能用例图
3.5医生总体功能需求分析
通过对本系统的总体功能需求分析,医生角色具有以下的一些功能需求。
(1)登录功能:在访问本系统之前,医生需要输进去准确的工号和密码,以便获得正确的登录信息。输入信息若错误的,将无法访问系统;
(2)个人中心管理功能:医生了解自己的用户名和密码,也可以进行修改;
(3)添加就诊功能:医生输入就诊内容、医嘱信息和开药记录;
(4)病历信息管理功能:医生可以在线查看患者既往病历信息从而作出更加全面诊断;
(5)问诊记录管理功能:医生可以在线查看患者问诊信息从而作出审核;
(6)检验报告功能:输入检验内容和对检查报告进行评估复核;
(7)就诊记录管理功能:医生可以查看、修改、导出和打印就诊信息;
(8)报告记录管理功能:医生可以在线查看患者既往报告信息从而作出准确诊断,也可以根据患者需求生成纸质报告。
根据以上对医生的需求分析,成功构建了医生功能用例图,如图3.3所示。
图3.3 医生功能用例图
第四章 系统设计
4.1系统的总体设计
基于SpringBoot的医院电子病历系统主要供三类用户使用,一个是管理员,一个是病人,一个是医生。管理员的功能是可以登录并对科室的信息、医生的问诊记录、病人的就诊记录以及病历进行管理。对报告纪录进行修正和查询。病人可以根据自己需求咨询相应的医生。同时也能查看自己的病历信息,问诊记录信息以及导出打印就诊记录信息以及报告记录管理信息。医生主要是可以添加就诊,查看病历信息。检验以及修改报告等功能。
该系统功能结构图如4.1所示。
图4.1 系统功能结构图
4.2系统的详细设计
医院电子病历系统中,根据以上管理员、患者和医生的功能用例分析,将选取几个具有交互性场景的过程进行建模,分别是患者进行问诊顺序图、医生审核患者问诊记录顺序图和添加问诊活动图。
4.2.1患者进行问诊顺序图
患者进行问诊用例场景中,成功完成信息处理的交互过程如下。
(1)病人到登录网页,在登录网页上键入自己的名称及密码,然后登录;
(2)当病人登录成功后,病人就会出现在系统的页面上;
(3)在进入到系统的界面之后,就会出现一个“添加问诊”的页面;
(4)患者进行问诊操作并输入描述自身症状;
(5)当该运作完成时,该数据库对该已被修改的数据进行处理;
(6)将经过修改数据信息在该系统上进行展示;
(7)对所增加的信息进行显示;
(8)在全部程序结束后,病人离开。
完成后的病人进行问诊顺序图如图4.2所示。
图4.2 患者进行问诊顺序图
4.2.2医生审核患者问诊记录顺序图
医生审核患者问诊记录用例的具体描述如下。
(1)医生在登录网页上,通过输入自己的名称和密码登录;
(2)登录成功后,医生进入登录页面;
(3)进入后,选择问诊记录管理,查看患者提交的问诊信息;
(4)医生审查病人所提交的信息的纪录并回复审计;
(5)为已审计的内容增加答复;
(6)当该运算完成时,该数据库对该已被修改的该信息数据进行处理;
(7)对已被修改过的资料进行显示;
(8)当上述程序完成时,医生停止工作。
完成后的医生审核患者问诊记录顺序图如图4.3所示。
图4.3 医生审核患者问诊记录顺序图
4.2.3添加问诊活动图
根据患者添加问诊进行活动图建模,具体活动过程描述如下。
(1)患者通过登录,进入医院电子病历系统;
(2)进入管理界面查看医生详情;
(3)选择相关医生进行问诊;
(4)点击添加问诊;
(5)退出系统。
完成后的添加问诊活动图如图4.4所示。
图4.4 添加问诊活动图
4.3数据库设计
4.3.1概念结构设计
通过以上对医院电子病历系统的详细分析得到数据库的一些实体对象,主要包括:管理员、患者、医生、科室信息、病历信息、问诊记录、就诊记录、报告记录等,其中属性如下面所示。
(1)管理员:(用户名,密码)
(2)患者:(患者姓名,密码,性别,相片,年龄,手机,病史)
(3)医生:(医生工号,密码,姓名,性别,相片,头衔,联系电话,部门名称)
(4)科室信息:(部门名称)
(5)病历信息:(病历编号,病历名称,患者姓名,年龄,性别,手机,病史,添加时间,信息备注,手术记录,就诊记录,检查记录,用药记录,护理记录)
(6)问诊记录:(医生工号,姓名,科室名称,症状描述,问诊时间,信息备注,患者姓名)
(7)就诊记录:(病历编号,姓名,性别,年龄,就诊内容,医嘱信息,开药记录,就诊时间,医生工号,医生姓名,科室名称)
(8)报告记录:(姓名,性别,年龄,报告名称,检验内容,报告内容,报告时间,医生工号,科室名称)
系统总体E-R图如4.5所示。
图4.5 总体E-R图
4.3.2逻辑结构设计
以上论述以数据库需求的分析为基础,并在构造实体联系图的基础上,利用数据库逻辑结构进行了设计,使用MySQL来创建一个数据库表,在这个系统中,有关数据库的表结构设计具体如下所示。
(1)患者信息表
患者信息表的功能是对患者的个人资料进行存储,具体内容包括患者姓名、密码、性别、照片、年龄、手机、病史,如表4.1所示。
表4.1 患者信息表
列名 数据类型 长度 允许空 是否主键 说明
id bigint 20 否 是 主键
xingming varchar 200 否 否 姓名
mima varchar 200 否 否 密码
xingbie varchar 200 是 否 性别
zhaopian varchar 200 是 否 照片
nianling int 11 是 否 年龄
shouji varchar 200 是 否 手机
bingshi varchar 200 是 否 病史
(2)医生信息表
医生信息表收录了医生的个人资料,包括医生的工作编号、姓名、性别、相片、头衔、联系电话、部门头衔。如表4.2所示。
表4.2 医生信息表
列名 数据类型 长度 允许空 是否主键 说明
id bigint 20 否 是 主键
yishenggonghao varchar 200 否 否 医生工号
mima varchar 200 否 否 密码
yishengxingming varchar 200 否 否 医生姓名
表4.2 医生信息表(续)
列名 数据类型 长度 允许空 是否主键 说明
yishengxingbie varchar 200 是 否 医生性别
yishengzhaopian varchar 200 是 否 医生照片
yishengzhicheng varchar 200 是 否 医生职称
lianxidianhua varchar 200 是 否 联系电话
keshimingcheng varchar 200 否 否 科室职称
(3)报告记录信息表
报告记录信息表主要是保存患者姓名、性别、年龄、报告名称、检验内容、报告内容、报告时间、医生工号、科室名称,如表4.3所示。
表4.3 报告记录信息表
列名 数据类型 长度 允许空 是否主键 说明
id bigint 20 否 是 主键
xingming varchar 200 是 否 姓名
xingbie varchar 200 是 否 性别
nianling int 11 是 否 年龄
baogaomingcheng varchar 200 是 否 报告名称
jianyanneirong longtext 是 否 检验内容
baogaoneirong longtext 是 否 报告内容
baogaoshijian datetime 是 否 报告时间
yishenggonghao varchar 200 否 否 医生工号
keshimingcheng varchar 200 是 否 科室名称
(4)科室信息表
科室信息表主要用保存科室名称,如表4.4所示。
表4.4 科室信息表
列名 数据类型 长度 允许空 是否主键 说明
id bigint 20 否 是 主键
表4.4 科室信息表(续)
列名 数据类型 长度 允许空 是否主键 说明
addtime timestamp 否 否 创建时间
keishimingcheng varchar 200 否 否 科室名称
(5)病历信息表
该病历信息表旨在收集和整合各种相关数据,包括但不限于:病历编号、病历名称、患者姓名、患者性别、患者年龄、患者手机、患者病史、添加时间、信息备注、手术记录、就诊记录、检查记录、用药记录以及护理记录,详见表4.5。
表4.5 病历信息表
列名 数据类型 长度 允许空 是否主键 说明
id bigint 20 否 是 主键
binglibianhao varchar 200 是 否 病历编号
binglimingcheng varchar 200 否 否 病历名称
xingming varchar 200 是 否 姓名
xingbie varchar 200 是 否 性别
nianling int 11 是 否 年龄
shouji varchar 200 是 否 手机
bingshi varchar 200 是 否 病史
tianjiashijian datetime 是 否 添加时间
xinxibeizhu varchar 200 是 否 信息备注
shoushujilu varchar 200 是 否 手术记录
jiuzhenjilu longtext 是 否 就诊记录
jianchajilu longtext 是 否 检查记录
yongyaojilu longtext 是 否 用药记录
hulijilu longtext 是 否 护理记录
(6)就诊记录信息表
就诊记录信息表主要用于记载病历编号、病人名称和病人性别,病人的年龄,看病的内容,医嘱的内容;处方单,就诊时间,医生的工号;医生的姓名,科室的名称。如表4.6所示。
表4.6 就诊记录信息表
列名 数据类型 长度 允许空 是否主键 说明
id bigint 20 否 是 主键
binglibianhao varchar 200 是 否 病历编号
xingming varchar 200 是 否 姓名
xingbie varchar 200 是 否 性别
nianling int 11 是 否 年龄
jiuzhenneirong longtext 是 否 就诊内容
yizhuxinxi longtext 是 否 医嘱信息
kaiyaojilu longtext 是 否 开药记录
jiuzhenshijian datetime 是 否 就诊时间
yishenggonghao varchar 否 否 医生工号
yishengxingming varchar 200 是 否 医生姓名
keshimingcheng varchar 200 是 否 科室名称
(7)问诊记录信息表
问诊记录信息表主要用来保存,如表4.7所示。
列名 数据类型 长度 允许空 是否主键 说明
id bigint 20 否 是 主键