面向基层人群的健康管理平台设计与实现
2022-07-07张宏宽周书旺朱喆苏礼辉张世凯
张宏宽 周书旺 朱喆 苏礼辉 张世凯
(山东省人工智能研究院 山东省济南市 250000)
据权威调查显示,我国目前医疗资源分布不均,大中城市优质医疗资源集中,健康体检智能化程度高;相比之下,基层医疗、健康体检相对落后,处于医疗技术的低谷。根据国家统计局数据显示,2021年我国乡村人口占中国人口总数的35.28%,但基层人群在健康体检、健康数据管理存在软硬件设施不完善、数字化程度不高等问题。特别是随着我国人口老龄化问题日趋严重,对卫生医疗系统需求日益增加的情况下,如何解决基层人群的医疗资源不足以及如何提高基层人群健康管理的智能化程度,仍是目前亟需解决的问题。
根据工业和信息化部、民政部、国家卫生健康委共同印发的《智慧健康养老产业发展行动计划(2021-2025年)》提出要丰富智慧医养健康服务,提升健康管理能力,依托互联网平台等建设预防、医疗、康复、护理、安宁治疗等相衔接的覆盖全生命周期的智慧健康服务体系,推动优质健康医疗资源下沉,提升人民群众的健康素养及健康管理能力。
信息化是健康管理(体检)中心持续快速发展的关键。本系统基于互联网技术开发了一套面向基层人群的健康管理平台,实现了用户档案管理、用户健康数据查询、用户健康走势展示、健康数据分析及健康报告生成等功能,为基层人群体检数据管理、健康计划、健康趋势查询服务,为基层医生提供在线诊断辅助支持。
1 系统环境搭建
本系统基于SpringMVC架构开发,前端使用Vue框架开发,服务端使用Java作为开发语言,数据库则采用MySQL。服务端系统采用Win10系统。首先安装开发依赖软件JDK1.8、MySQL8.0数据库、缓存数据库Redis。使用SpringBoot脚手架初始化服务端工程;前端工程使用Vue Cli脚手架初始化前端工程。
首先安装JDK1.8,在系统环境变量设置中,添加Java环境变量,并使用Java、Javac指令判断环境变量是否配置成功。在配置完jdk后,安装MySQL数据库,本系统采用MySQL8.0版本,该版本提供安装版,只需按照提示操作即可。Redis缓存服务器采用3.2版本,在本系统中Redis服务器主要用于存储高频使用数据,如数据字典,常用指标分类数据等,以提高数据的读取效率,提升用户端的相应速度。至此,本系统所依赖的运行环境已搭建完成。
2 关键技术介绍
2.1 SpringMVC框架介绍
Spring框架是为了适当降低开发公司的开发复杂程度而产生的开源框架,其本质目标是实现开发过程中各个层次之间的隔离,以达到每个层次可灵活选择组件的目的,同时可以很好地和J2EE开发框架进行集成。MVC是一种程序设计思想,它将程序逻辑按照任务分工分为M(Model,数据模型)、V(Views,视图)、C(Controller,控制器)三层。数据模型层是一个较大的概念,根据业务逻辑的不同会有不同的表现形式,简单概括来说,该层主要负责与数据相关的逻辑,与数据库打交道的逻辑都可归为数据模型层;视图层,顾名思义,负责展示界面、数据展示。控制器,具体表现为Servlet,它接收客户端的请求,将请求分发给处理器,并将处理结果返回给客户端。SpringMVC核心流程如图1所示。
图1:SpringMVC核心流程
2.2 Vue框架介绍
Vue是一套用来构建用户界面的渐进式前端框架,差别与其他大型框架,Vue在整体架构上采用了自底向上逐层应用的设计。Vue的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。此外,当与现代化的工具链以及各种支持类库结合使用时,Vue也完全能够为复杂的单页面应用提供驱动。而且由于Vue的MVVM双向数据绑定、组件化、虚拟DOM等机制使其拥有更好的性能,更好的扩展性,完全能支撑本系统的前面模块开发。
3 系统架构设计
如图2所示,采用前后端分离设计,基于Java语言开发。系统整体为三层架构设计:展现层即视图层,负责数据的展现与交互,展现层采用Vue框架,UI使用element-ui设计。服务层采用SpringMVC架构设计,根据功能划分为用户登录模块、用户信息管理、健康数据采集及管理、健康数据走势分析等模块,此外,系统还集成shiro框架用于实现用户的角色划分及权限控制。数据层基于Mybatis,MyBatis是一款优秀的持久层框架,通过简单的XML或注解方法来配置和映射业务层面的对象到数据库中的数据对象,实现对数据的增删改查处理。
图2:系统架构图
4 系统核心模块
4.1 用户档案管理模块
如图3、图4和图5所示,系统提供用户档案管理功能。在该模块,可对用户的基本信息包括姓名、身份证号、住址、血型、家族病史及生活环境等信息进行维护。系统服务端Controller层提供对应接口editUserInfo(@RequestBody UserInfoEntity userInfo),该接口支持http协议的post方式请求,具体参数使用RequestBody传值。在后台接口到请求后,首先查询该用户的历史填写信息,如果已填写则将该数据传给前台,并对页面进行数据渲染,用户只需输入要变更的数据即可;如果首次填写,则需要用户输入全部信息。后台接口在接收到数据后,根据参数中ID主键对填写信息进行保存或更新。
图3:用户档案管理
图4:用户档案编辑
图5:用户档案管理流程图
4.2 健康数据采集模块
如图6所示,健康数据采集模块为用户体检数据录入提供接口,该模块将检测设备检测的数据上传至平台服务端数据库,为平台的健康分析功能提供数据基础。
图6:健康数据采集
在该模块主要采集用户的当前用户的体温、脉率、呼吸率、血压、体质指数、当前生活方式、脏器功能(视力、听力、运动能力等)、心电数据、当前脑血管疾病、肾脏疾病、心血管疾病等系统疾病情况、及当前的用药情况。由于该模块检测项目较多,如果同时存入同一张数据表时,会影响数据的存取速度,因此,为该模块数据设计了基本体检数据(health_basic_data)、12导联心电数据表(health_ecg_data)、现存问题表(health_current_problem)、用药情况表(health_medication_status),使用user_id字段查询用户的所有健康数据。后台服务端对应各表设计了HealthBasicDataEntity、HealthEcgData Entity、HealthCurrentProblemEntity、Health MedicationStatusEntity四个实体类接收前端数据,根据MVC设计原则,系统所有的业务逻辑均在Service层实现,Controller层负责处理前端请求并调用Service层EditHealthData接口处理健康数据管理相关业务:该接口根据前台参数分别调用基本体检数据HealthBasicDataService层编辑接口、心电数据HealthEcgService层接口、现存问题HealthCurrentProblemService层接口、用药情况Helath MedicationStatusService层编辑接口保存对应数据。
4.3 健康数据管理模块
如图7、图8和图9所,健康数据管理模块主要实现对已采集的健康数据管理、分析、生成健康数据趋势图等功能。通过数据可视化组件Echarts实现健康数据趋势的展示;通过用户的健康数据、年龄、现存问题、家族病史等多维度数据,对用户的健康状况进行分析,并生成指导意见报告,再经过专业医生审核后得出最终健康指导意见,并将指导意见以PDF文件格式供用户下载。
图7:健康数据分析流程图
图8:健康数据分析模块
图9:健康报告审核
为了保证系统的运行效率,使用单独进程处理健康数据。用户保存健康数据时,系统向健康数据待分析表(health_data_process)表添加一条初始状态为“INIT”的待处理记录。健康数据分析进程定时轮询该表,查询表中是否存在待处理的数据(状态为“INIT”的数据),如果有则唤醒数据分析进程分析健康数据。首先健康数据分析进程将当前处理的记录状态置为处理中(“RUNNING”)状态,抢占该数据以防止其他线程重复处理。此后,进程根据health_data_id查询对应的健康体检数据,并将查寻到的健康数据传递至健康数据分析模块处理,在健康数据分析结束后,将结果存入健康数据分析结果表(health_data_result),并修改该条记录状态为完成状态(“FINISHED”),此后,系统将数据分析结果会反馈给责任医生,在医生审核通过后生成PDF报告文件供用户下载。
5 结语
该系统通过互联网技术设计出一套面向基层群体的健康管理平台,设计开发了健康数据在线管理、健康状况分析及健康报告下载等功能,辅助体检医生管理用户健康数据,查看用户历史健康数据及了解用户的身体状况发展趋势,致力于解决基层人群健康数据管理配套软件不完善等问题,同时促进基层健康管理模式的改革并为我国医疗卫生事业的发展贡献力量。