目 录
线上医疗问诊系统是随着信息技术的发展和民众对医疗服务便捷性需求增加而逐渐兴起的一种新型医疗服务模式。主要时通过互联网技术,将患者与医生连接起来,提供从咨询到治疗的一站式服务,在本次软件设计中,以用户的实际操作感作为整体开发的出发点,结合Java开发语言对软件开发原理,使用Springboot框架技术整体开发源程序,最终实现一个线上医疗问诊系统。
线上医疗问诊系统总体可以分为医生端、管理员端、用户端。系统主要可以实现的功能包括医生信息、健康档案、医疗咨询、预约信息、就诊信息、处方开具、药品配送、健康提醒、随访信息等模块。线上医疗问诊系统不仅能提升医疗服务效率,还能改善患者的就医体验,尤其对于慢性病管理和老年人群体来说,具有显著的价值。
关键词:医疗问诊;Spring Boot框架;就诊信息、处方开具
Abstract
The online medical consultation system is a new type of medical service model that has gradually emerged with the development of information technology and the increasing demand for medical service convenience among the public. It mainly connects patients and doctors through Internet technology to provide one-stop services from consultation to treatment. In this software design, the user's sense of actual operation is taken as the starting point of overall development, the Java development language is combined with the software development principle, and the Springboot framework technology is used to develop the source program as a whole, finally realizing an online medical consultation system.
The online medical consultation system can be generally divided into doctor end, administrator end, and user end. The main functions that the system can achieve include modules such as doctor information, health records, medical consultation, appointment information, medical information, prescription issuance, drug delivery, health reminders, follow-up information, etc. The online medical consultation system can not only improve the efficiency of medical services, but also enhance the patient's medical experience, especially for chronic disease management and the elderly population, which has significant value.
Key words:Medical consultation; Spring Boot framework; Medical information and prescription issuance
1 绪论
1.1研究背景与意义
在传统医疗模式下,患者往往需要面对长时间的等待、繁琐的挂号流程以及医院间信息不互通等困扰。此外,医疗机构特别是优质医疗资源集中在大城市,导致偏远地区和农村地区的居民难以获得高质量的医疗服务。随着信息技术的迅猛发展,互联网技术逐渐渗透到医疗健康领域,线上医疗问诊系统应运而生。这一系统不仅反映了现代社会对医疗服务便捷性、高效性的追求,也是应对全球人口老龄化加剧、慢性病患者数量增加以及医疗资源分布不均等问题的重要手段。
线上医疗问诊系统不仅支持日常的医疗咨询、预约挂号服务,还涵盖了个人健康档案管理、健康提醒等功能,帮助用户更好地关注和管理自己的健康状况。电子处方和药品配送服务则进一步简化了患者的就医流程,特别是对于行动不便或长期服药的患者来说,提供了极大的便利。
从医疗卫生体系的角度来看,线上医疗问诊系统有助于优化医疗资源配置,减轻大型医院的压力,同时促进分级诊疗制度的落实。通过引导患者合理分流,使轻症患者能够在基层医疗机构得到有效治疗,重症患者及时转诊至高级别医院,从而实现医疗资源的最大化利用。
1.2国内外研究现状
在国内,线上医疗问诊系统的发展呈现出多样化的特点,例如“春雨医生”以其早期进入市场和注重用户体验而著称。它通过提供免费的在线咨询服务,尤其是支持文字、电话等多种沟通方式,吸引了大量年轻和中产阶级用户,构建了一个便捷的医患交流平台。然而,尽管拥有庞大的用户基础,春雨医生在专业医生资源的整合方面仍有不足,有时提供的医疗建议缺乏针对性和详细性,影响了服务质量。“平安好医生”则凭借中国平安集团的支持,与多家医院合作确保医疗服务的专业性和权威性。尽管如此,平安好医生在用户体验上存在改进空间,如界面设计较为复杂,对老年用户不够友好,同时面临数据安全和个人隐私保护的挑战。两个平台虽已取得一定成就,但在提升服务质量和用户体验方面仍有进一步发展的必要。
在国外,线上医疗问诊系统同样得到了快速发展,其中美国的Teladoc和英国的Babylon Health是两个具有代表性的例子。Teladoc 是美国领先的远程医疗服务提供商之一,它通过电话、视频通话等方式为用户提供全天候的医疗咨询服务。其优势在于广泛的覆盖范围和服务网络,能够满足不同用户的多样化需求,包括心理健康服务等。此外,Teladoc还与许多保险公司合作,使得用户可以通过保险直接支付部分费用,降低了个人负担。然而在一些州份受到严格的法规限制,影响了服务的扩展,同时,由于依赖于第三方医生网络,服务质量可能存在参差不齐的情况。
Babylon Health 在英国及全球范围内提供基于AI的在线医疗咨询服务,并且逐渐扩展到非洲和亚洲市场。Babylon Health的优势在于其先进的AI技术,可以进行初步诊断并推荐进一步行动方案,极大提高了咨询效率。此外,它还推出了个性化的健康管理计划,帮助用户预防疾病。尽管如此,Babylon Health也面临着数据隐私保护的问题,以及AI诊断准确性和责任归属方面的争议。
1.3开发目标
该项目课题的目标是遵从软件工程学术思想,综合软件工程开发的生命周期各个阶段进行划分。首先,经过系统分析,从功能性需求和非功能性需求三个角度分析用户需求,绘制线上医疗问诊系统的用例模型和功能结构图,撰写用例描述;经过系统设计,设计系统功能模块结构,遵循软件设计模式“高内聚,低耦合额特性”的设计原则设计系统架构,同时进行数据库设计,形成系统的数据模型;通过系统实现,开发出一套完整的基于JavaWeb的线上医疗问诊系统。经过系统测试对线上医疗问诊系统执行严格的功能测试,确保所有功能全部通过测试。最终生成的线上医疗问诊系统功能包括医生信息、健康档案、医疗咨询、预约信息、就诊信息、处方开具、药品配送、健康提醒、随访信息等功能。
1.4论文结构与章节安排
本文档的具体章节安排如下:
第一章:绪论,主要介绍基于线上医疗问诊系统的研究背景目的以及概述国内外研究动态,系统的开发目标,并提出课题章节安排。
第二章:系统相关技术介绍,主要阐述基于线上医疗问诊系统的开发技术,包含Java语言、Springboot框架、MySQL数据库、Vue技术等。
第三章:系统需求分析,通过调研开发此平台开发中的是市场需求、经济可行性、技术可行性分析,明确用户对线上医疗问诊系统的需求和系统应具备的功能。
第四章:系统设计,主要对系统的总体设计结构进行介绍。
第五章:系统数据库总体设计方案,包括数据库结构概念设计以及数据库逻辑结构的设计。
第六章:系统测试,概述系统的测试目的和意义,保证系统的协调性和稳定性。
第七章,结论。
2相关技术介绍
2.1springboot框架
Spring Boot,作为Spring生态系统中一颗璀璨的明星,以其“约定优于配置”的核心理念,极大地简化了Java应用的开发、部署与管理流程。它并非是对Spring框架的颠覆,而是在其基础上进行了深度封装与优化,旨在快速搭建独立的、生产级别的Spring应用。Spring Boot通过自动配置功能,减少了大量繁琐的配置工作,让开发者能够更加专注于业务逻辑的实现。同时,它集成了众多常用库,如数据库连接池、缓存、消息队列等,为系统开发提供了一站式的解决方案。此外,Spring Boot还支持多种部署方式,无论是传统的WAR包部署,还是现代的容器化部署,都能轻松应对。因此,选择Spring Boot作为基于JavaWeb的线上医疗问诊系统的开发框架,不仅能够提升开发效率,还能确保系统的稳定性和可维护性。
2.2Java语言
基于JavaWeb的线上医疗问诊系统采用了Java语言作为后端开发的核心技术。Java语言因其跨平台特性和高度灵活性而备受青睐,使系统能够在不同操作系统上稳定运行,并为未来功能的拓展提供可靠的技术支持。同时,采用Spring Boot框架简化了配置,提升了开发效率和系统的稳定性。Java的选择确保了平台具有良好的可扩展性和稳定性,在为基于JavaWeb的线上医疗问诊系统提供技术支持的同时,也为用户提供畅顺的体验。
2.3Mysql数据库
MySQL数据库,作为开源关系型数据库管理系统的佼佼者,以其高性能、可靠性、易用性和灵活性,在全球范围内被广泛应用于各类企业级应用中。MySQL采用SQL(结构化查询语言)作为数据操作的标准语言,支持复杂的查询、数据更新、索引优化等功能,确保数据的高效存取和完整性。其强大的事务处理能力,为业务逻辑的原子性、一致性、隔离性和持久性提供了坚实保障。此外,MySQL还具备高度的可配置性和可扩展性,通过优化存储引擎、调整配置参数等手段,可以轻松应对高并发、大数据量的应用场景。在基于JavaWeb的线上医疗问诊系统中,MySQL作为后端数据存储的核心,不仅为系统提供了稳定可靠的数据支持,还通过其丰富的数据操作功能,助力系统实现复杂的业务逻辑和高效的数据管理。
2.4Vue框架
Vue.js是一套构建用户界面的渐进式框架。与其他重量级框架不同的是,Vue采用自底向上增量开发的设计。Vue 的核心库只关注视图层,并且非常容易学习,非常容易与其它库或已有项目整合。另一方面,Vue 完全有能力驱动采用单文件组件和Vue生态系统支持的库开发的复杂单页应用。
Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件。
Vue.js 自身不是一个全能框架——它只聚焦于视图层。因此它非常容易学习,非常容易与其它库或已有项目整合。另一方面,在与相关工具和支持库一起使用时,Vue.js 也能驱动复杂的单页应用。
3 系统分析
需求的分析中用户需求就是比较的重要,而且可以通过各种的路径,以及各每个用户对于系统的功能需求,需要对这些内容做出整理以及分类,然后分析这些需求的现实情况下的可能原因,还需要有认真的分析过程,结合现实的情况下最终做出一系列的需求资料。线上医疗问诊系统的需求可以从不同角度进行分析,包括功能需求、非功能需求,以下是对系统需求的初步分析。
3.1 功能需求分析
3.1.1 用户需求分析
在线上医疗问诊系统主要使用角色分为普通用户、医生用户以及系统管理员。
(1)普通用户功能需求模块:
注册登录:用户可以通过手机号或电子邮箱快速注册并登录系统,登录后,用户可以设置个人信息以及登录密码以增强账户安全性。
医疗资讯:提供最新的医疗新闻和健康知识,帮助用户了解疾病预防和健康管理的基本常识。
医生信息:展示医生的专业背景、擅长领域及科室信息,便于用户选择合适的医生进行咨询。
医疗咨询:通过文字咨询方式,用户能够随时随地与专业医生交流健康问题。
预约信息:允许用户在线预约医生的的门诊时间,减少现场排队等候的时间。
健康档案:用户可以在系统中建立和更新个人健康档案,包括病史、过敏反应、手术历史等重要信息。
就诊信息:记录用户的历次就诊详情,包括诊断结果、检查报告和治疗建议,方便用户回顾和跟踪健康状态的变化。
处方开具:可以查看医生开具电子处方信息,简化了传统纸质处方的繁琐过程。
药品配送:用户可以查看药品配送详情。
健康提醒:根据用户的健康档案和医嘱,系统会发送复诊等健康提醒,帮助用户养成良好的健康管理习惯。
随访信息:随访记录包含详细的沟通内容和治疗进展,用户也可以主动发起随访请求,向医生反馈最新的健康变化。
注册登录:医生用户需在后台端完成注册,注册后,账户需要经过管理员审核才能正式使用,成功登录后,医生可以访问和管理其专属的功能模块。
健康档案管理:允许医生查看患者用户的健康档案,包括病史、过敏信息等重要数据。通过维护准确的健康记录,医生能够为患者提供更精准的医疗服务。
医生信息管理:医生可以在该模块中更新个人资料,如擅长领域及联系方式等。保持个人信息的最新状态。
咨询信息管理:医生可以通过此功能查看所有来自患者用户的咨询请求,并根据病情紧急程度优先处理。
咨询回复管理:允许医生撰写并发送对患者咨询的回复,增强沟通效果。
预约信息管理:医生能够查看和处理患者用户的预约就诊。
就诊信息管理:医生可以录入和编辑每次就诊的详细信息,如诊断结果、治疗方案等。
处方开具管理:在此模块中,医生可以根据患者的病情开具电子处方,确保用药安全。
药品配送管理:医生可以追踪由其开具的处方药的配送状态,确保患者及时收到所需药品。
健康提醒管理:医生能够发送给患者用户的健康提醒,如复诊通知、服药提示等,帮助患者遵循治疗计划。
随访信息管理:医生可以记录和管理患者的随访信息,包括沟通要点和治疗进展。
(3)管理员功能需求模块:
系统用户管理:管理员可以添加、删除或修改系统内的用户账户,包括医生和患者,确保系统的安全性和用户信息的准确性。通过审核新注册医生的资料,管理员保证只有合格的用户才能获得医生权限。
健康档案管理:管理员有权查看和管理所有用户的健康档案,确保信息完整且更新及时。
科室名称管理:管理员能够创建、编辑或删除科室名称,帮助医院更好地组织医疗服务资源。
医生信息管理:负责维护医生的个人信息资料的准确性和最新状态。
咨询信息管理:管理员可以查看所有未处理的患者用户咨询请求,确保每个问题都能得到及时回应。
咨询回复管理:管理员监督医生对患者咨询的回复情况,确保回复内容符合专业标准并具有针对性。
预约信息管理:管理员可以查看和管理所有的预约记录。
就诊信息管理:管理员负责确保所有就诊记录的准确录入和妥善保管,为后续诊疗提供依据。
处方开具管理:管理员可以监控电子处方的开具过程,确保其合规性和安全性。
药品配送管理:管理员跟踪药品从开具处方到送达患者手中的全过程,确保物流信息透明准确。
健康提醒管理:管理员确保提醒机制不侵犯用户隐私。
随访信息管理:管理员负责维护随访信息的完整性和及时性,确保医生能够有效跟进患者的康复进展。
系统管理:管理员负责对医疗资讯以及资讯分类和轮播图进行管理。
线上医疗问诊系统的完整UML用例图分别是图3-1、3-2和图3-3。

图3-1 线上医疗问诊系统普通用户角色用例图

图3-2 线上医疗问诊系统医生角色用例图

图3-3 线上医疗问诊系统管理员角色用例图
3.1.2 系统流程分析
对尚未拥有账号的用户可进行登记以获取账号密码。用户填写登记数据后,当系统接收到这些数据时,它会迅速进行核实。首先,系统会检查数据库中是否有该账户的存在,如果没有,系统会继续核实其他信息,如果有,系统会发出提示,要求用户更改账户,用流程图可以很好的展示出注册的这一过程。

图3-4注册流程图
本系统面向线上医疗问诊系统管理员,普通用户,全部用户根据已注册账号及密码登陆,登陆后可选择修改原密码再登陆以增强个人信息安全性。为使用本系统的使用者提供所需的认证。身份被精确验证后,基于所述系统登记用户数据信息,确定所述用户角色是否具有识别权限。

图3-5 登录流程图
(3)系统操作流程
系统操作流程包括以下几个步骤:首先,用户(普通用户、医生、管理员)通过登录界面输入账号和密码进行身份验证。普通用户可进入个人主页,进行医生咨询、预约、健康档案录入等操作;医生则进行预约处理、就诊安排、处方开具、药品安排配送等;管理员可进行用户管理、所有功能模块维护管理等。管理员监控全平台运行,确保系统稳定、信息准确。

图3-6系统操作流程图
3.2 非功能性需求分析
第一,友好界面:系统界面的友好性对于用户体验至关重要。通过人性化设计和动态的人机交互,用户能够轻松操作系统,并感受到便利。良好的用户体验可以提高用户满意度,并使系统更易于使用和接受。
第二,稳定性要求:系统的稳定性是确保系统高效运行的关键。系统应该能够稳定地处理各项管理工作,以提供可靠的服务。同时,系统应具备异常处理和数据备份等功能,以应对外部异常情况并保障数据的安全。
第三,可扩展性:线上医疗问诊系统需要具备良好的可扩展性,以应对未来业务需求的扩展。系统设计应充分考虑到功能需求的不断变化和扩展,确保系统能够适应多样化的需求,并保持高效运行。
第四,满足需求:系统开发应紧密与实际需求对接,以满足大量用户的需求。系统设计需要具有前瞻性,制定先导发展蓝图和行动纲领,确保系统能够长期发展和适应不同阶段的需求变化。系统应具备灵活性,以满足不同用户的特定需求,并充分发挥系统的价值。
3.3 可行性分析
3.3.1 技术可行性分析
线上医疗问诊系统采用Java语言编写,基于Spring Boot框架开发,遵循高内聚低耦合的原则,确保了系统的灵活性和扩展性,并且通过MyBatis-Plus框架加速了持久层开发,提高了整体开发效率。通过IntelliJ IDEA开发工具实现了与MySQL数据库的有效集成,在安全性与稳定性方面取得了显著成就。最终,该系统不仅达成了初始创意目标,而且满足了预期的功能需求和技术可行性要求,成功地为用户提供了一个安全可靠的在线医疗服务解决方案。
3.3.2 经济可行性分析
开发线上医疗问诊系统的经济可行性主要体现在成本效益和市场需求两方面。从成本角度来看,采用开源技术框架如Spring Boot和MyBatis-Plus减少了软件许可费用,同时提高了开发效率,降低了开发与维护成本。市场需求方面,随着公众对便捷医疗服务需求的增长以及互联网医疗政策的支持,该系统具有广阔的市场前景。通过提供高效、便捷的在线医疗服务,不仅可以改善患者就医体验,还能为医疗机构优化资源配置,减少不必要的开支。
3.3.3 操作可行性分析
线上医疗问诊系统旨在提供简便的挂号问诊服务,包括医生信息、健康档案、医疗咨询、预约信息、就诊信息、处方开具、药品配送、健康提醒、随访信息等功能。系统的前端UI设计简洁大方,提供直观的交互操作按钮,用户可轻松完成各项操作。操作简单易懂,无需额外培训,符合用户操作习惯。考虑用户需求和系统功能,系统在操作上具有良好的可行性和用户友好性。
4 系统设计
在完成系统需求分析之后,线上医疗问诊系统功能的设计实现涉及将需求分解为模块,并且确定每个模块的具体功能,通过科学、合理的方法,设计出符合系统需求的具体功能实现方案。
4.1 系统架构设计
随着Web系统功能的不断更新和完善,许多项目选择使用Web系统来实现其需求,其中包括线上医疗问诊系统。相比之下,Web系统相较于传统的C/S架构应用系统具有诸多优势。通过Web系统,用户可以通过常用的浏览器访问系统主页,无需安装或升级客户端应用程序,避免了由此带来的繁琐问题。用户只需打开浏览器即可轻松访问系统,无需担心不同版本之间可能导致的数据传输问题,使项目开发变得更加简便和便捷。Web系统的这种便利让用户体验更加流畅,系统的使用更加灵活和高效。
下图是具体的B/S架构图:

图4-1 系统B/S架构图
4.2 功能模块架构
通过对上门的系统需求分析,可以将线上医疗问诊系统主要分为前台普通用户、医生以及后台管理员角色,该系统总体设计结构图如图所示。

图4-2 线上医疗问诊系统功能模块图
4.3 数据库设计
线上医疗问诊系统在进行数据库设计时,考虑到个人能力与数据库选择,选择了数据库Mysql。以下将使用E.R展示数据库中设计的实体及主要的字段和类型及数据库的描述。
4.3.1 数据库概念结构设计
以下是线上医疗问诊系统中主要的数据库表E-R图。

图4-3线上医疗问诊系统总E-R关系图
下面根据线上医疗问诊系统的数据库总E-R关系图,以下得出的的是线上医疗问诊系统的很多实体图,如下列出。

图4-4健康档案实体图

图4-5 咨询信息实体图

4-6就诊信息实体图

图4-7 处方开具实体图
4.3.2 数据库逻辑结构设计
结合以上各个实体的 E-R 图和联系,可以进一步分析数据库的逻辑结构,将各个 E-R
实体联系图装换成数据库表。
表appointment_information (预约信息)
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | appointment_information_id | int | 10 | 0 | N | Y | 预约信息ID | |
| 2 | user_account | int | 10 | 0 | Y | N | 0 | 用户账号 |
| 3 | user_name | varchar | 64 | 0 | Y | N | 用户姓名 | |
| 4 | user_phone_number | varchar | 64 | 0 | Y | N | 用户电话 | |
| 5 | doctor_account | int | 10 | 0 | Y | N | 0 | 医生账号 |
| 6 | doctors_name | varchar | 64 | 0 | Y | N | 医生姓名 | |
| 7 | department_name | varchar | 64 | 0 | Y | N | 科室名称 | |
| 8 | registration_fee | double | 9 | 2 | Y | N | 0.00 | 挂号费用 |
| 9 | time_of_appointment | datetime | 19 | 0 | Y | N | 预约时间 | |
| 10 | appointment_details | text | 65535 | 0 | Y | N | 预约详情 | |
| 11 | examine_state | varchar | 16 | 0 | N | N | 未审核 | 审核状态 |
| 12 | examine_reply | varchar | 16 | 0 | Y | N | 审核回复 | |
| 13 | pay_state | varchar | 16 | 0 | N | N | 未支付 | 支付状态 |
| 14 | pay_type | varchar | 16 | 0 | Y | N | 支付类型: 微信、支付宝、网银 | |
| 15 | prescription_limit_times | int | 10 | 0 | N | N | 0 | 就诊限制次数 |
| 16 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 17 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
| 18 | source_table | varchar | 255 | 0 | Y | N | 来源表 | |
| 19 | source_id | int | 10 | 0 | Y | N | 来源ID | |
| 20 | source_user_id | int | 10 | 0 | Y | N | 来源用户 |
表comment (评论)
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | comment_id | int | 10 | 0 | N | Y | 评论ID: | |
| 2 | user_id | int | 10 | 0 | N | N | 0 | 评论人ID: |
| 3 | reply_to_id | int | 10 | 0 | N | N | 0 | 回复评论ID:空为0 |
| 4 | content | longtext | 2147483647 | 0 | Y | N | 内容: | |
| 5 | nickname | varchar | 255 | 0 | Y | N | 昵称: | |
| 6 | avatar | varchar | 255 | 0 | Y | N | 头像地址:[0,255] | |
| 7 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
| 8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
| 9 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
| 10 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
| 11 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
表consultation_information (咨询信息)
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | consultation_information_id | int | 10 | 0 | N | Y | 咨询信息ID | |
| 2 | user_account | int | 10 | 0 | Y | N | 0 | 用户账号 |
| 3 | user_name | varchar | 64 | 0 | Y | N | 用户姓名 | |
| 4 | doctor_account | int | 10 | 0 | Y | N | 0 | 医生账号 |
| 5 | doctors_name | varchar | 64 | 0 | Y | N | 医生姓名 | |
| 6 | department_name | varchar | 64 | 0 | Y | N | 科室名称 | |
| 7 | consultation_time | date | 10 | 0 | Y | N | 咨询时间 | |
| 8 | consultation_content | text | 65535 | 0 | Y | N | 咨询内容 | |
| 9 | consultation_reply_limit_times | int | 10 | 0 | N | N | 0 | 回复限制次数 |
| 10 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 11 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
| 12 | source_table | varchar | 255 | 0 | Y | N | 来源表 | |
| 13 | source_id | int | 10 | 0 | Y | N | 来源ID | |
| 14 | source_user_id | int | 10 | 0 | Y | N | 来源用户 |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | consultation_reply_id | int | 10 | 0 | N | Y | 咨询回复ID | |
| 2 | doctor_account | int | 10 | 0 | Y | N | 0 | 医生账号 |
| 3 | doctors_name | varchar | 64 | 0 | Y | N | 医生姓名 | |
| 4 | user_account | int | 10 | 0 | Y | N | 0 | 用户账号 |
| 5 | user_name | varchar | 64 | 0 | Y | N | 用户姓名 | |
| 6 | department_name | varchar | 64 | 0 | Y | N | 科室名称 | |
| 7 | consultation_time | date | 10 | 0 | Y | N | 咨询时间 | |
| 8 | consultation_content | text | 65535 | 0 | Y | N | 咨询内容 | |
| 9 | doctors_reply | text | 65535 | 0 | Y | N | 医生回复 | |
| 10 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 11 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
| 12 | source_table | varchar | 255 | 0 | Y | N | 来源表 | |
| 13 | source_id | int | 10 | 0 | Y | N | 来源ID | |
| 14 | source_user_id | int | 10 | 0 | Y | N | 来源用户 |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | doctor_information_id | int | 10 | 0 | N | Y | 医生信息ID | |
| 2 | doctors_name | varchar | 64 | 0 | Y | N | 医生姓名 | |
| 3 | department_name | varchar | 64 | 0 | Y | N | 科室名称 | |
| 4 | hospital_information | varchar | 64 | 0 | Y | N | 医院信息 | |
| 5 | specializes_in_specific_fields | varchar | 64 | 0 | Y | N | 擅长领域 | |
| 6 | doctors_photo | varchar | 255 | 0 | Y | N | 医生照片 | |
| 7 | doctor_account | int | 10 | 0 | Y | N | 0 | 医生账号 |
| 8 | registration_fee | double | 9 | 2 | Y | N | 0.00 | 挂号费用 |
| 9 | available_time | text | 65535 | 0 | Y | N | 可约时间 | |
| 10 | doctor_introduction | text | 65535 | 0 | Y | N | 医生简介 | |
| 11 | hits | int | 10 | 0 | N | N | 0 | 点击数 |
| 12 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
| 13 | collect_len | int | 10 | 0 | N | N | 0 | 收藏数 |
| 14 | comment_len | int | 10 | 0 | N | N | 0 | 评论数 |
| 15 | consultation_information_limit_times | int | 10 | 0 | N | N | 0 | 咨询限制次数 |
| 16 | appointment_information_limit_times | int | 10 | 0 | N | N | 0 | 预约限制次数 |
| 17 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 18 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | drug_delivery_id | int | 10 | 0 | N | Y | 药品配送ID | |
| 2 | doctor_account | int | 10 | 0 | Y | N | 0 | 医生账号 |
| 3 | doctors_name | varchar | 64 | 0 | Y | N | 医生姓名 | |
| 4 | user_account | int | 10 | 0 | Y | N | 0 | 用户账号 |
| 5 | user_name | varchar | 64 | 0 | Y | N | 用户姓名 | |
| 6 | department_name | varchar | 64 | 0 | Y | N | 科室名称 | |
| 7 | visit_time | datetime | 19 | 0 | Y | N | 就诊时间 | |
| 8 | drug_name | varchar | 64 | 0 | Y | N | 药品名称 | |
| 9 | quantity_of_drugs | double | 9 | 2 | Y | N | 0.00 | 药品数量 |
| 10 | delivery_time | datetime | 19 | 0 | Y | N | 配送时间 | |
| 11 | delivery_address | varchar | 64 | 0 | Y | N | 配送地址 | |
| 12 | delivery_details | text | 65535 | 0 | Y | N | 配送详情 | |
| 13 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 14 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
| 15 | source_table | varchar | 255 | 0 | Y | N | 来源表 | |
| 16 | source_id | int | 10 | 0 | Y | N | 来源ID | |
| 17 | source_user_id | int | 10 | 0 | Y | N | 来源用户 |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | follow_up_information_id | int | 10 | 0 | N | Y | 随访信息ID | |
| 2 | doctor_account | int | 10 | 0 | Y | N | 0 | 医生账号 |
| 3 | doctors_name | varchar | 64 | 0 | Y | N | 医生姓名 | |
| 4 | user_account | int | 10 | 0 | Y | N | 0 | 用户账号 |
| 5 | user_name | varchar | 64 | 0 | Y | N | 用户姓名 | |
| 6 | follow_up_time | datetime | 19 | 0 | Y | N | 随访时间 | |
| 7 | follow_up_details | text | 65535 | 0 | Y | N | 随访详情 | |
| 8 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
| 10 | source_table | varchar | 255 | 0 | Y | N | 来源表 | |
| 11 | source_id | int | 10 | 0 | Y | N | 来源ID | |
| 12 | source_user_id | int | 10 | 0 | Y | N | 来源用户 |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | health_records_id | int | 10 | 0 | N | Y | 健康档案ID | |
| 2 | user_account | int | 10 | 0 | Y | N | 0 | 用户账号 |
| 3 | user_name | varchar | 64 | 0 | Y | N | 用户姓名 | |
| 4 | user_gender | varchar | 64 | 0 | Y | N | 用户性别 | |
| 5 | user_age | varchar | 64 | 0 | Y | N | 用户年龄 | |
| 6 | user_phone_number | varchar | 64 | 0 | Y | N | 用户电话 | |
| 7 | record_time | date | 10 | 0 | Y | N | 记录时间 | |
| 8 | previous_medical_records | text | 65535 | 0 | Y | N | 既往病历 | |
| 9 | family_medical_history | text | 65535 | 0 | Y | N | 家族病史 | |
| 10 | allergy_history | text | 65535 | 0 | Y | N | 过敏史 | |
| 11 | long_term_medication | text | 65535 | 0 | Y | N | 长期用药 | |
| 12 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 13 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | health_reminder_id | int | 10 | 0 | N | Y | 健康提醒ID | |
| 2 | doctor_account | int | 10 | 0 | Y | N | 0 | 医生账号 |
| 3 | doctors_name | varchar | 64 | 0 | Y | N | 医生姓名 | |
| 4 | user_account | int | 10 | 0 | Y | N | 0 | 用户账号 |
| 5 | user_name | varchar | 64 | 0 | Y | N | 用户姓名 | |
| 6 | reminder_time | date | 10 | 0 | Y | N | 提醒时间 | |
| 7 | reminder_content | text | 65535 | 0 | Y | N | 提醒内容 | |
| 8 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
| 10 | source_table | varchar | 255 | 0 | Y | N | 来源表 | |
| 11 | source_id | int | 10 | 0 | Y | N | 来源ID | |
| 12 | source_user_id | int | 10 | 0 | Y | N | 来源用户 |
5 系统详细设计
对线上医疗问诊系统进行详细设计的前提是在前面系统需求分析上结合系统的总体设计,除了网页还实现了业务逻辑,介绍了系统开发环境还有系统的两大部分包括界面实现以及业务逻辑实现。
5.1 系统开发环境
5.1.1 软件平台
系统开发平台:IDEA 2019.2.4
数据库管理系统软件:MySQL 5.7
运行平台: Windows 10
Java开发包:JDK 1.8
Web服务器:Tomcat 8.5.72
显示层:使用JSP技术开发
数据库运行平台:Navicat Premium 15.0
5.1.2 硬件平台
计算机:Intel(R) Core(TM) i5-10210U CPU @ 1.60GHz 2.11 GHz
核心交换机:1000Mb/s或更高
5.2前台功能模块
5.2.1 前台首页界面
首页是系统的主界面,展示平台的核心内容,包括轮播图、最新通知公告、资讯、医生信息等。用户可以通过首页快速访问各个功能模块,还可以根据关键词搜索相关内容,其主界面展示如下图5-1所示。
图5-1 前台首页界面图
5.2.2 用户注册界面
当新用户第一次登录时,需要进行注册。在用户进行注册的页面需要通过填写用户名、密码、姓名、手机、身份、性别等信息才可以完成用户注册,在注册时也要保证所有信息的填写完整性以及正确性。
用注册界面展示如下所示:
图5-2注册界面图
5.2.3用户登录界面
首先,系统用户需要输入各自的账号以及密码后提交,待系统核对确认数据一致后才能进入线上医疗问诊系统。
用户登录界面展示如下所示:
图5-3用户登录界面图
5.2.4医生信息界面
用户点击医生信息界面后,可以查看医生的姓名、科室名称以及详细的擅长领域介绍,方便根据个人需求选择合适的医生。每位医生的资料页面还展示其可预约时间,用户自行进行预约。
医生信息界面展示如下所示:
图5-4医生信息界面图
5.2.5预约信息界面
在医生详情页面,用户可以轻松找到预约按钮,点击即可进入预约提交界面。在此界面中,用户可以选择或输入期望的就诊时间、简述病情描述以便医生提前了解情况。提交预约请求后,医生将在后台进行审核。
预约信息界面展示如下所示:
图5-5预约信息界面图
5.2.6健康档案界面
用户可以通过个人中心的健康档案管理功能,便捷地录入和更新自己的健康信息,包括病史、过敏反应、长期用药、家族病史等。完成录入后,这些信息将被安全存储,仅授权的医疗人员在诊疗时可访问,保障用户的隐私安全。
健康档案界面展示如下所示:
图5-6健康档案界面图
5.2.7处方开具界面
用户点击处方功能模块后,可以清晰查看医生发布的电子处方详情,包括药品名称、医生建议、病症描述、药品单价、药品数量、药品功效、用法用量等。每张处方都附有医生的说明和建议,确保患者能够正确理解并遵循医嘱。此外,系统提供药品配送选项,用户可以直接选择将处方药配送到家,简化取药流程。
就诊信息界面展示如下所示:
图5-7处方开具界面图
5.3后台功能模块
5.3.1医生登录界面
医生使用该系统需要进行注册,注册后身份资料需要由管理员进行审核验证。审核通过后方可使用该账户和密码进行登录使用。
医生登录界面展示如下所示:
图5-8医生登录界面图
5.3.2医生信息管理界面
医生点击医生信息管理功能后,可以方便地编辑个人所属科室名称及详细的工作信息。在此界面中,医生能够设置和调整可预约的时间段,完成编辑后,更新的信息将立即同步到预约系统,保证患者获取最新的预约安排。
医生信息管理界面展示如下所示:
图5-9医生信息管理界面图
5.3.3 咨询信息管理界面
医生点击咨询信息功能后,可以查看用户提交的所有咨询内容,并对每一个问题进行详细回复。在回复界面中,医生可以提供专业的医疗建议,确保信息传达的准确性和全面性。
咨询信息管理界面展示如下所示:
图5-10咨询信息管理界面图
5.3.4预约信息管理界面
管理员可查看所有预约信息,进行增改删查操作,支持新闻标题进行搜索,可点击查看详情(医生工号、医生姓名、科室等)。
预约信息管理界面展示如下所示:
图5-11预约信息管理界面图
5.3.5健康提醒管理界面
健康提醒功能旨在辅助医生向用户发送用户的健康管理建议,如用药提醒、复诊通知等。此功能有助于提升患者的治疗依从性和健康管理效率,但所有提醒内容仅供参考,具体诊疗请遵医嘱。
健康提醒管理界面展示如下所示:
图5-12健康提醒管理界面图
5.3.6科室名称管理界面
管理员可以通过科室名称管理功能,轻松执行增删改查操作,添加新科室时,管理员可以详细设置科室属性和相关信息,确保医疗服务分类清晰。
科室名称管理界面展示如下所示。
图5-13科室名称管理界面图
6系统测试
6.1系统测试目的
确保软件稳定运行的关键是通过软件测试,其中性能测试至关重要。性能测试涵盖以下内容:
(1)为了尽快高效的将系统投入使用,测试过程需及时且快速发现错误并解决,反复此过程,直到不再出现错误,确保系统运行的安全性。
(2)每一次的测试计划及报告都要妥善保管,为系统正式投入时运行及维护提供必要的资料支持。
(3)测试过程中,反复出现的错误及异常要及时记录并归类,以便更有效地解决问题。
(4)不要用个人思想对系统测试进行评估操作,理应从公正的角度来评估系统,确保系统的应用符合具体要求。此外,应注重用户的实际需求和反馈,以确保系统设计与用户期望一致
6.2 系统测试用例
在对我们所设计的系统进行测试时,我们采用了最新的Windows 10 系统,对当时设计的功能结构进行功能模块的测试,通过操作测试,可以对系统是否可以正常实现做出判断,最后也可以在去验证用户与管理员的权限信息是否可以在权限范围内正常进行操作,并且验证数据更新是否一致。具体测试流程如下:
6.2.1创建数据测试
在系统中,创建功能也是基础功能之一,因此创建功能的测试很有代表性。在此章节主要列举在创建时各种情况下系统结果的测试。由于系统涉及创建功能操作过多,因此将多处统称创建功能。
创建数据用例如下表所示。
表6-1 创建数据测试用例
| 测试用例编号 | YL_05 | |
| 测试用例名称 | 系统使用者进行创建数据 | |
| 测试用例描述 | 使用者输入要创建的数据 | |
| 系统入口 | 浏览器 | |
| 步骤 | 预期结果 | 实际结果 |
| 输入完整并且格式正确的数据 | 提示“创建成功”,并显示所有数据 | 预期结果 |
| 核心位置数据但非必要位置不输入数据 | 提示“创建成功”,并显示所有数据 | 预期结果 |
| 核心数据位置不输入数据 | 提示“创建失败” | 预期结果 |
6.2.2修改数据测试
在系统中,修改功能是系统主要实现功能,因此修改功能的测试很有代表性。在此章节主要列举在修改时各种情况下系统结果的测试。由于系统涉及修改功能操作过多,因此将多处数据表记录修改和状态修改统称修改功能。
修改数据用例如下表所示。
表6-2 修改数据测试用例
| 测试用例编号 | YL_06 | |
| 测试用例名称 | 系统使用者进行修改数据 | |
| 测试用例描述 | 使用者对可修改的数据项进行修改 | |
| 系统入口 | 浏览器 | |
| 步骤 | 预期结果 | 实际结果 |
| 将现有数据修改成正确的数据 | 提示“修改成功”,并显示所有数据 | 预期结果 |
| 将现有数据修改成错误的数据 | 提示“修改失败” | 预期结果 |
6.2.3查询数据测试
在系统中,查询功能是使用系统使用最多也是最基础的功能,因此查询功能的测试很有代表性。在此章节主要列举在查询时各种情况下系统结果的测试。
查询数据用例如下表所示。
表6-3 查询数据测试用例
| 测试用例编号 | YL_05 | |
| 测试用例名称 | 系统使用者进行查询数据 | |
| 测试用例描述 | 全部查询以及输入关键词查询 | |
| 系统入口 | 浏览器 | |
| 步骤 | 预期结果 | 实际结果 |
| 界面自动查询全部 | 显示对应所有记录 | 预期结果 |
| 输入已存在且能匹配成功的关键字 | 显示所查询到的数据 | 预期结果 |
| 输入不存在的关键字 | 显示数据界面为空 | 预期结果 |
6.3 系统测试结果
在本次测试的过程主要针对所有功能下的添加操作,修改操作和删除操作,并以真实数据一一进行相关功能项目的输入,最终能够保证每个项目涉及的功能都是能够正常运行,因此能够保证本次设计的,已实现的功能能够正常运行并且相关数据库的信息也同样保证正确。
结论
线上医疗问诊系统通过集成现代化的信息管理和自动化服务,成功解决了传统医疗服务中存在的一系列问题。通过系统的设计与实现,医疗资源得到了更高效的配置,患者的就医体验得到了显著提升。
系统通过用户端和医生及管理员端的功能模块划分,满足了不同用户群体的需求。用户端提供了注册、登录、医生信息查看、在线预约、健康档案管理、咨询回复以及药品配送等功能,极大地方便了用户的操作,使其能够实时查询医生信息并完成线上咨询和支付。医生及管理员端则涵盖了医生信息管理、咨询信息管理、就诊记录管理、处方开具管理、健康提醒设置等多个功能,确保了医疗服务的高效运营和数据的安全性。
系统的架构基于Spring Boot框架,结合MySQL数据库存储,采用Spring Security进行安全认证,确保了系统的稳定性和安全性。系统的各项功能模块设计合理,具备良好的扩展性和维护性。通过系统测试,验证了其在实际环境中的可行性和有效性,证明了该系统在提升医疗服务效率、优化资源配置、改善患者体验等方面的优势。线上医疗问诊系统不仅有助于缓解医疗资源紧张的问题,还推动了智能医疗服务的实施,为智慧城市的建设贡献了一份力量。
总的来说,线上医疗问诊系统的设计与实现,不仅为医疗服务提供了一种创新的解决方案,还为相关领域的技术研究与应用提供了有益的实践经验。未来,随着技术的不断进步和需求的不断变化,线上医疗问诊系统的功能和智能化程度将进一步提升,更好地服务于广大患者和医疗从业者,成为提升医疗服务水平的重要工具。
参考文献
[1]高键,王海淼. 基于SpringBoot的结构化面试一体化系统的设计与实现 [J]. 电脑知识与技术, 2024, 20 (33): 47-50. DOI:10.14004/j.cnki.ckt.2024.1701.
[2]李琳,张航,黎俊熙,等. 基于SpringBoot的奖学金评定管理系统设计与实现 [J]. 电脑编程技巧与维护, 2024, (11): 95-97+113. DOI:10.16184/j.cnki.comprg.2024.11.014.
[3]赵浩奇,吴爱萍,孙庆云,等. 基于SpringBoot的脑动脉瘤辅助诊断系统设计与实现 [J]. 现代信息科技, 2024, 8 (18): 103-107. DOI:10.19850/j.cnki.2096-4706.2024.18.021.
[4]文丽娟,张广龙. “AI+医疗”:便捷与风险并存[N]. 法治日报, 2024-08-05 (008). DOI:10.28241/n.cnki.nfzrb.2024.004592.
[5]郑喜月. H在线医疗社区服务主体对患者付费线上问诊意愿影响及提升策略研究[D]. 西安理工大学, 2024. DOI:10.27398/d.cnki.gxalu.2024.001648.
[6]张雨薇. 在线健康社区用户线上问诊行为的时间习惯和空间习惯[D]. 上海外国语大学, 2024. DOI:10.27316/d.cnki.gswyu.2024.000507.
[7]屈巍,段盼君,刘岩,等. 基于物联网的智能问诊与药品售卖系统 [J]. 电脑编程技巧与维护, 2022, (08): 128-130. DOI:10.16184/j.cnki.comprg.2022.08.011.
[8]张小亮,景慎旗,戴作雷,等. 基于人工智能的门诊患者导诊系统建设 [J]. 中国卫生信息管理杂志, 2022, 19 (03): 443-446.
[9]宋妍锜. 在线问诊的用户使用意愿和行为影响因素研究[D]. 北京邮电大学, 2022. DOI:10.26969/d.cnki.gbydu.2022.001262.
[10]王智康. 基于“互联网+”的中医临床问诊规范化研究[D]. 湖北中医药大学, 2022. DOI:10.27134/d.cnki.ghbzc.2022.000379.
[11]左冲. 价值共创视角下的医疗问诊服务设计研究[D]. 中南大学, 2023. DOI:10.27661/d.cnki.gzhnu.2023.003743.
[12]Chen G ,Xu J . Design and implementation of efficient Learning platform based on SpringBoot Framework [J]. Journal of Electronics and Information Science, 2020, 6 (1):
[13]Chen J ,Jian C ,Hailan P . Design of Man Hour Management Information System on SpringBoot Framework [J]. Journal of Physics: Conference Series, 2020, 1646 (1): 012136.
致 谢
四年匆匆,大学时光如梦。入学初兴奋快乐,如今情感渐淡,也许是成长的代价。岁月更迭,转瞬即逝,即将告别校园,怀念大学时光,感慨万千。感谢老师、同学们的帮助和陪伴,毕业设计中遇到困难,感受到友情与温暖。特别感谢指导老师的耐心与细心,引导我完成毕业设计。在学习和困难中成长,学会分析和解决问题,感激老师们的教诲和关怀,以及同学们的帮助与支持。在这段美好时光里,感受到世界的美好,学会感恩,愿我们保持初心,青春不老。系统设计虽或有不足,但实现的过程是最宝贵的收获。
免费领取项目源码+数据库,请关注❥点赞收藏并私信博主

被折叠的 条评论
为什么被折叠?



