基于SpringBoot+Vue 新冠疫苗接种全过程管理系统
2022-04-20刘忠超李英玲
贾 黎,刘忠超,李英玲,3
(1. 中国电子科技集团公司第十研究所,四川 成都 610041;2. 西南民族大学计算机科学与工程学院,四川 成都 610041;3. 西南民族大学计算机系统国家民委重点实验室,四川 成都 610041)
近年,疫苗安全事件频繁发生,疫苗生产造假、过期疫苗滥用和疫苗储运违规等问题[1-2],严重威胁着人民群众的健康. 政府高度重视,也对建立疫苗全程追溯制度提出了明确要求[3],加强对疫苗从研发、生产、流通,以及使用等环节的全过程监管[4].为打破疫苗生产企业、物流企业、疾病预防控制中心及接种单位间的壁垒,上海市疾病预防控制中心将互联网及物联网技术与疫苗行业特点深度结合,建立综合追溯管理信息系统,实现了单支疫苗从生产企业到接种单位、到受种者全过程的闭环管理[5-6],但是一体式疫苗管理系统还未普及,现有的疫苗管理方式大多停滞在人工手动记录.自新冠疫情出现后,疫苗研究者们便投入到了疫苗研发的过程中,截止2020 年底,我国新冠疫苗年产达6.1 亿剂,预计2021 年产能将达到10亿剂以上[7-9],同时人们开始研究大规模接种的新型冠状病毒疫苗潜在不良反应[10].但是,新冠疫苗大规模接种后,简单的手工登记,将面临如下问题:(1)造成医务工作人员巨大的工作量,并且可能存在信息的缺失和遗漏,不利于疫苗安全的跟踪调查[11];(2)无法对接种者进行跟踪,可能造成接种后热线拥堵和医院爆满[4];(3)手动登记数据,不利于对数据的统计分析,影响相关科研工作的开展[12]. 因此,新冠疫苗的大规模接种,如何实现对接种前后的疫苗生产、存储、接种、接种后跟踪的“全过程”管理,显得尤为重要,以实现对疫苗管理便捷化、直观化、信息化,已有的接种管理系统不能满足当前大规模接种的要求[13-16].基于上述背景,本文采用SpringBoot 和Vue框架,前后端分离的开发模式,设计对疫苗全过程跟踪管理系统.该系统实现从疫苗出厂物流运输与疫苗仓储,到疫苗接种,再到接种后跟踪反馈,以及接种者论坛管理,通过对疫苗全过程数据的采集和分析,实现对疫苗“全过程、可追踪”的管理目标.因此,本系统能解决疫苗跟踪不完整、接种后无法跟踪等问题,并减轻医护人员在疫苗管理方面手动记录和整理过于繁琐的问题,为医护人员、接种者提供便捷化、信息化的疫苗接种平台.
1 系统需求分析
本系统的总体需求如图1 所示,包括疫苗物流模块,疫苗仓储模块,疫苗接种模块,接种者模块等.
图1 系统总体建设需求图Fig.1 Overall requirement diagram
(1)疫苗物流模块:包括录入物流批次信息、寄出批次、查看已寄出订单的接收状态、查看拒绝接收批次的拒收理由并且重新寄出.
(2)疫苗仓库管理:仓储及接种模块的医生用户可以选择接收疫苗批次或拒绝接收、录入疫苗信息、分类筛选查找疫苗、为已预约的接种者进行接种操作、查看每一个接种者的信息及其身体状况记录.
(3)疫苗接种模块:接种者可以在个人中心进行预约接种操作、查看到自己接种后的疫苗信息、记录接种后七天内的身体状况,还可以在论坛模块查看公告信息、发布帖子、点赞公告/帖子、评论帖子.
(4)接种者论坛相关业务:全局管理员用户除了拥有以上功能的操作权限,还可以对所有用户的账号进行管理、对帖子及公告进行管理.
1.1 疫苗物流管理需求分析
疫苗物流管理模块提供了添加物流批次信息、寄出批次订单、查看批次订单的运输、接收状态、重新寄出被拒绝订单、筛选查看各状态批次订单的列表的功能.
图2(a)为疫苗物流管理数据流图. 物流人员添加新的物流批次,寄出后,该批次状态为“运输中”;医生可看到运输中的批次,并可选择“接收”或“拒绝接收”,若接收,则该物流批次状态为“已接收”,若拒绝接收,需要填写拒绝接收理由,该订单会在拒绝接收栏中显示,物流人员线下整改后可进行“重新寄出”操作.
1.2 疫苗仓储管理需求分析
疫苗仓储管理模块为仓储人员提供了疫苗入库、疫苗信息录入、疫苗分类展示等功能.图2(b)为疫苗仓储管理数据流图.医生在疫苗入库时,可进行“接收”或“拒绝接收”操作,若确认接收,则在疫苗信息管理栏中填写疫苗信息,并关联疫苗批次信息;若拒绝接收,该物流批次会返回到物流人员处进行整改处理.
1.3 疫苗接种管理需求分析
疫苗接种管理为接种医师提供了筛选查看已预约接种者列表、根据身份码查询某一支疫苗、接种操作、筛选查看已接种用户及其接种疫苗信息、查看某一已接种用户的身体状况情况的功能.
图2(c)为疫苗接种管理数据流图,医生在疫苗接种操作栏中查看已预约接种者的列表,选择一位预约接种者进行接种,根据疫苗身份码搜索到疫苗信息;成功接种后,该接种者信息会转移到疫苗接种信息栏,同时显示该疫苗的信息,还可以查看每个用户接种后的身体变化情况记录.
1.4 接种者管理需求分析
图2(d)为接种者管理数据流图. 接种者进入个人中心模块,可以进行预约接种操作,预约成功并且接种完成后,接种后可查看个人的疫苗接种信息,并且记录接种后七天身体情况,包括体温、身体异常描述、记录日期,如果有身体异常情况,系统会给出提示,医生会及时与接种者取得联系.
图2 数据流程图Fig. 2 Data flow diagrams
在论坛模块主要包括公告的查看、点赞,帖子的查看、点赞、评论,发布帖子等功能,帮助医生更便捷地了解到接种者心中的情况,让接种者之间也能够密切地交流,另外还可以通过公告信息来通知重要的事宜.
2 系统设计
2.1 系统总体架构
本系统采用前后端分离的开发模式,后端基于MVC 设计模式以及SpringBoot+Mybatis-plus 框架,前端使用Vue 框架以及Element-UI 组件.系统的架构图如图3 所示,“①”表示用户权限的后端控制,Spring-Boot 后端服务通过获取token 的方式对用户角色加以判断,控制登录用户的功能权限.“②”过程表示SpringBoot 后端服务通过配置集成Mybatis 框架,实现对数据库进行操作以及从数据库中获取对应Json 格式数据.“③”过程表示Mybatis 框架,根据服务要求建立与MySql 数据库连接并且负责对具体业务sql 语句执行和执行结果的处理.“④”过程表示前后端通过发送Http 请求及响应的方式实现数据交互,前端通过tomcat 应用服务器处理请求,调用疫苗物流业务、疫苗仓储业务、疫苗接种业务、接种者管理业务的相关后端接口,获取数据,以实现页面中的功能.“⑤”表示前端根据不同用户的权限显示对应的模块和操作,以保护系统的安全性.
图3 系统架构图Fig.3 Design diagram
2.2 系统详细设计
2.2.1 疫苗物流管理设计与实现
图4 为疫苗物流管理流程图. 物流人员进入疫苗物流管理模块,前端自动发起请求,通过调用后端接口,使用Mybatis-Plus 的selectPage 方法从数据库获取物流相关表格数据并实现分页,前端渲染数据后展示给用户.在未寄出批次一栏中可“添加物流批次”操作,输入对应的物流信息,调用添加接口,传入前端输入的实体,插入数据库.添加批次信息成功后,可在未寄出批次的列表中进行查询、删除、寄出等操作,若点击寄出按钮,调用接口修改订单状态变为“已寄出”.在已寄出批次中,若仓储模块人员选择接收,则订单状态变为“已送达”,若未接收则显示状态为“运输中”,若拒绝接受,可在拒绝接收批次一栏中进行筛选查看,并且可重新寄出,重新寄出后订单状态再次为“运输中”,等待仓储模块人员的反馈.
图4 疫苗物流管理流程图Fig.4 Flow chart of vaccine logistics management
2.2.2 疫苗仓储管理设计与实现
图5 为疫苗仓储管理流程图.仓储人员进入系统后,前端页面调用查列表接口,使用Mybatis-plus 的selectPage 方法,从数据库中获取到分页数据,渲染在页面表格中.查看已寄出的疫苗物流批次信息,根据线下比对结果决定是否同意接收该批次疫苗,如同意接收,则录入该批次疫苗的信息,调用后端修改订单状态接口,将新状态码传入接口,进行更新操作;如拒绝接收,则需要在系统中填写拒绝接收理由,调用修改订单状态的接口,并且填写拒收理由,将订单发回寄出地.录入疫苗信息是选择每一支疫苗的对应批次名称,确保疫苗的轨迹可追溯性,添加完成后可以筛选查看疫苗信息,或进行逻辑删除操作.
图5 疫苗仓储管理流程图Fig.5 Flow chart of vaccine warehousing management
2.2.3 疫苗接种管理设计与实现
图6 为疫苗接种物流管理时序图.接种医生进入系统后,前端调用分页筛查列表接口,通过条件是否为null 来判断有无这个筛选条件,将列表返回前端,进行表格渲染,便可以筛选查看已预约接种者列表.选择某一预约者进行接种操作,点击接种后需要输入疫苗身份码,点击查询,调用根据疫苗身份码查询疫苗接口,若查询到对应的疫苗,则返回给前端这支疫苗的信息,供前端展示渲染,点击“确定接种”,调用修改疫苗信息接口,将userId 插入疫苗表的接种者id 字段;随即关联接种成功;若没有查到该疫苗,则说明系统中未录入疫苗的信息,换另一支疫苗再次进行查询及接种.
图6 疫苗接种管理时序图Fig.6 Flow chart of vaccination management
接种成功后,可以在疫苗接种信息一栏查看已接种的用户信息及其对应的疫苗信息,点击“身体状况记录”,调用接口通过userId 查询该用户记录的身体状况信息列表,查看某一用户接种后七天内的身体状况,包括体温、身体异常描述、记录日期等等;将后端返回的数据在前端进行遍历,通过每条信息的“状态”字段判断当前用户的身体状况,并且使用不同颜色进行区分,红色表示异常,绿色表示正常.
2.2.4 接种者管理设计与实现
接种者管理包括接种者个人中心和接种者论坛.接种者个人中心为接种者提供的可以预约疫苗接种、查看个人接种疫苗信息、记录个人接种后的身体状况等功能的模块.图7 为接种者个人中心时序图.
图7 接种者个人中心时序图Fig.7 Sequence chart of sequence diagram
接种者进入个人中心模块,可以进行预约接种操作,通过调用修改信息接口改变user 表中的预约状态字段,预约成功并且接种成功后,状态会变为已接种,之后再调用链表查询接口将user 表和vaccines 表进行关联,查询出这个用户的个人信息与接种的疫苗信息,用户便可以查看自己接种疫苗的信息;点击记录身体状况按钮,可以在弹窗中输入信息,包括体温、身体异常描述、记录日期,点击确定后,会调用后端添加接口,将这条数据插入到身体状况记录表,通过userId字段进行关联;如果有身体异常情况,则系统自动提示相关工作人员,及时与接种者取得联系.
接种者论坛模块时序流程如图8 所示,接种者调用添加帖子接口addPostNotice,实现对帖子的添加;接种调用查询接口,根据帖子的id 查询帖子的明细信息及评论接口;调用添加评论接口addCommitInfo实现对帖子的评论,同时也可调用帖子的点赞接口likePostOrNotice 实现对帖子点赞. 另外,也可以调用接口queryPostNoticeList 查询发布的帖子、公告信息.
图8 接种者论坛时序图Fig.8 Sequence chart of forum management
2.3 数据库设计
根据新冠疫苗接种全过程管理系统的业务,主要设计了如下业务表:①表system_user 记录用户信息;②表system_role 记录角色信息;③表system_user_role记录用户与角色的关联关系;④表 transportation_batch_info 记录物流批次信息;⑤表vaccines_info 记录疫苗信息;⑥表record_physiological 记录用户身体状况信息;⑦表post_notice_info 记录帖子、公告信息;⑧表comment_info 记录帖子评论信息;⑨表area_info 记录地域信息.各数据表之间的关系如图9 所示.
图9 新冠疫苗接种全过程管理系统ER 图Fig.9 Entity Relationship Diagram
3 系统实现与测试
3.1 系统实现
根据前面对新冠疫苗接种全过程管理系统的需求分析与功能设计,现在对该系统进行实现,数据库的实现采用Navicat 工具构建,数据库表结构根据上一章节的数据库设计.本系统的实现采用了Vue +Elment-UI 进行前端页面开发,Google Chrome 浏览器呈现页面,基于Java JDK1.8 环境和SpringBoot +Mybatis-Plus 框架开发后端,实现疫苗物流管理、疫苗仓储管理、疫苗接种管理、接种者管理和管理员模块,部分功能界面如下图10 所示.
图10 界面展示图Fig. 10 Page display diagrams
图10(a)为疫苗物流管理中,已寄出批次信息,可查看运输方式和配送状态;图10(b)为疫苗仓库管理中,入库操作,显示已配送的批次列表,可选中某个批次进行接收和拒绝操作;图10(c)为疫苗接种模块中,疫苗接种查看界面,可查看接种者信息,并可记录接种后的身体状态和查看某个接种者的跟踪情况,其中红色表示接种的异常情况,绿色表示接种后正常情况;图10(d)为公告、帖子查看界面,可查看某个帖子详情,并对其进行评论和点赞.
3.2 系统测试
为了评价本系统软件的质量,根据需求设计了表1的测试用例,从功能、界面等方面对系统进行测试.测试结果表明,本系统的疫苗物流管理、疫苗仓储管理、疫苗接种管理、接种者管理、管理员模块的所有功能均能测试通过,测试结果与预期效果一致,数据传输稳定,界面排版美观,具有良好的用户体验.在系统后续扩展测试时,需加强系统性能测试,进一步提高操作响应时间.
表1 测试用例及测试结果Table 1 Test cases and results
4 结论
本文立足于新冠疫苗“全过程、可追踪”的管理需求,设计并实现了新冠疫苗接种全过程管理系统. 该系统采用前后端分离的开发模式,前端采用了Vue 框架和Element-UI 组件库进行页面开发、数据渲染;后台基于Java 的SpringBoot +Mybatis-Plus 框架进行功能接口开发,从而实现对新冠疫苗从出厂物流运输、仓储、接种、接种者身体状况跟踪反馈,再到接着者论坛进行管理,特别对接种后身体状况的跟踪,并进行初步自动诊断,为市民提供优质便捷的诊疗咨询服务.
该系统具备极强的可行性与实用性,为医护人员、接种者提供便捷化、信息化的疫苗接种平台. 另外,该系统对疫苗全过程数据的收集,方便后期运用大数据技术对各种数据进行筛选、分析,可为科研工作提供强有力的数据分析支持.
下一步,计划从重构代码提高性能、增加功能模块这两方面来进一步完善系统,提高用户的使用体验,使本系统具有更大的现实意义与使用价值.