基于Vert.x 的医学论文智能管理平台的设计与实现

2024-04-12 09:01林静LINJing吕发金LVFajin
价值工程 2024年8期
关键词:医学论文页面架构

林静LIN Jing;吕发金②LV Fa-jin

(①重庆医科大学生物医学工程学院、超声医学工程国家重点实验室,重庆 400016;②重庆医科大学附属第一医院放射科,重庆 400016)

0 引言

2023 年9 月中国科学技术信息研究所公布的《中国科技论文统计报告2023》中提到:2022 年中国卓越科技论文共计59.58 万篇,比2021 年增加了11.53 万篇,其中医学领域的卓越科技论文数量较多。由此,可看出我国的科技产出水平的提高,随之也伴随着论文、专利的增加,其中医学论文在我国的总论文占据不小的份额。就临床医学举例,在《2021 中国临床医学研究发展报告》中显示2011-2020 年我国在临床医学研究领域共发表论文37.39 万篇,其中2020 年为73616 篇,并且我国临床医学研究论文的数量还在不断攀升中。其实,临床医学论文仅仅只是医学论文中一个缩影,我国的医学论文涵盖多个方面,数量也是更为庞大。随着医学论文数量的不断增长,医学论文数字化也在急速发展,各类论文检索、管理平台层出不穷,而各类平台的优势也是各有千秋,但医学论文的定向管理平台目前却寥寥无几,而医学论文的管理问题确实亟待解决。

本项目主要针对目前所面临的问题,设计实现了一个面向广大医学论文管理需求者的智能管理平台,解决了医学论文的个性化、用户友好界面的管理问题,可以使用户更加便捷地录入相关论文信息、检索相关论文信息、统计分析用户论文质量、定制化地显示个人论文的隐私信息等,旨在开发一个高可扩展性、高性能、高健壮性的Web应用。

据此,本项目采用B/S(Browser/Server:客户端/服务器)架构模式实现。为实现轻量级的Web 开发,本项目采用了前后端不分离的模式进行实现,使得前后端的部署、交互和开发都更为便捷。后端采用Vert.x+Thymeleaf 进行部署,前端使用了BootStrap+ECharts+JQuery 实现页面的开发(项目各模块依据实际需求而定)。

1 相关技术简介

软件架构模式:B/S 架构。与传统C/S(Client/Server)架构模式相比,其具备多种特性:首先是跨平台兼容性:它是基于Web 浏览器作为客户端,可在各种操作系统和设备上运行;其次是高度可扩展性:由于其应用程序逻辑在服务器端执行,可以通过增加服务器资源来实现横向扩展,以满足大量用户的需求;除此之外还有简化部署和维护:B/S 应用程序的服务器端部署和维护相对简单,只需要在服务器上进行更新和维护,C/S 架构需要在每个客户端上进行安装和升级;最后是具备数据安全性:B/S 架构可以将敏感数据集中存储和处理在服务器端,减少了C/S 架构中数据在客户端传输和存储的风险,提高了数据的安全性。它采用了三层架构实现,分别是表示层、应用层和数据层,其工作原理大致如图1 所示。

图1 B/S 架构工作原理图

整体模式:前后端不分离的模式。由于需求的快速更新迭代,所以在开发部署中,应尽量减小开支,故采用前后端不分离的模式。其还具备可以集成在同一个应用程序中,不需要进行跨域请求和接口定义的特点。对开发者来说,该方式更容易开发、维护和升级;对用户来说:该方式使得访问更快速流畅,因为不需要多个服务器,可以减少服务器负载和维护的开销,而且由于不用进行跨域请求,可以减少相应的网络流量与延迟。

版本控制系统:Git。Git 具有分布式架构、强大的分支和合并功能、高效的性能、本地操作和离线支持、强大的历史记录和回滚功能,以及广泛的社区支持等优点,这使得它成为了本次项目首选的版本控制系统。

项目开发语言:本次开发实现过程中,选用Java+Kotlin 结合的方式作为开发语言。Java 作为一种成熟、稳定的编程语言具备很多企业级开发、后端开发的优势,同时Java 还具备了丰富的类库和框架,方便开发者更高效地构建系统;除此之外,Java 还有着庞大的社区支持,这意味着开发者可以更为方便地获取解决方案和技术支持。Kotlin 则是一种更为现代化的、安全、简洁的编程语言,其函数式编程的特性使得开发者可以减少许多代码量,提高代码的质量。JVM(Java Virtual Machine,Java 虚拟机)也可以兼容二者。在该项目中,主要使用Java 作为主要逻辑开发,对于某些较繁琐的部分则是采用Kotlin 进行代码优化,这提升本项目的系统后端开发的体验和效率。

后端项目架构:Vert.x+Thymeleaf。区别于Spring 系列的框架,Vert.x 是一种异步式后端框架,其底层基于Netty,而Spring 底层则均是内置Tomcat/Jetty 容器来部署实现WEB 应用,通过事件循环(Event Loop)来调起存储在异步任务队列(Call Back Queue)中的任务,这也大大降低了传统阻塞模型中线程对于操作系统的开销,其大致工作原理如图2 所示。而且Vert.x 还具有多语言支持、分布式通信、高度可扩展性、多种集成能力以及开源社区支持等优点。这些特点使得Vert.x 成为了构建本次高性能、可伸缩、分布式应用程序的理想工具包。由于本次项目采用前后端不分离的思想,并且架构中选用了Vert.x 作为整体的框架,可发现Vert.x 中可以很便捷地对Thymeleaf 进行整合并且实现所需要的效果,且Thymeleaf 构建动态Web 应用程序也具备自然的模板语法、强大的表达式功能、高度可扩展性、可视化模板调试以及多语言支持等优势。据此在选用Vert.x 的基础上同时选定Thymeleaf 作为本次项目中服务器端Java 模板引擎。

图2 Vert.x 工作原理图

前端项目框架:BootStrap+ECharts+JQuery。由于本次项目中采用Vert.x+Thymeleaf 作为引擎进行Html 模版的渲染,所以前端框架中采用同样是响应式设计的工具和组件:BootStrap,其快速开发、易于定制、跨浏览器兼容性和社区支持等优点也为本次项目的前端页面设计实现提供了帮助。同时本次项目涉及统计分析、门户数据展示、图标设计等前端需求,所以也同时需要对前端图表框架进行选定,其中ECharts 是一款功能强大且灵活的数据可视化库,它提供了Bootstrap 样式的主题,可以与Bootstrap 框架完美融合,并且支持各种常见的图表类型和数据可视化需求,故选用Echarts 进行图表绘制等实现。在此基础上,集成了JQuery 进行更多功能的实现,如操作HTML 文档、处理事件、执行动画和实现AJAX 等,使得前端开发更为敏捷。

数据库:SQLite 3。SQLite 是一种轻量级的嵌入式关系型数据库管理系统(RDBMS),它具备支持事务、高性能、支持跨平台等特点,完美契合了本次项目开发。其中,SQLite 3 稳定性高、功能丰富以及社区支持广泛,可使得数据存储具备多种优势。其架构图如图3 所示。

图3 SQLite 架构图

2 平台的设计与实现

根据目前的主要需求划分七个模块,分别为登录模块,门户数据模块,个人中心模块,论文资源模块,期刊资源模块,系统模块和管理员模块。其架构如图4 所示。

图4 医学论文智能管理平台功能模块图

2.1 登录模块

在该模块主要包括四个功能:用户登录、用户注册、注销账号和密码找回。

用户注册:若要注册新用户,用户需点击登录页面中的注册按钮,跳转至注册页面。用户填写用户基本信息:账号,密码和验证码。该验证码为常规四位数字和字母组合,验证码的生成和校验均在前端进行实现。将验证码通过后的注册数据进行加密传输给后端,后端经对应的路由分发到相应的服务中。后端处理数据,检查是否含有非法字符,若无异常完成数据库中user 表的插入操作并返回相应的结果。前端根据后端返回的参数进行显示,若注册成功跳转至登录页面。

用户登录:采用传统的单点登录和验证码校验(与用户注册相同实现)。前端加密传输登录数据给后端,后端处理数据,访问数据库中是否包含该值并返回结果。前端根据页面的返回结果显示和跳转页面。值得注意的是,当用户首次登录时,用户会先跳转至用户信息完善模块,待个人信息完善提交后,才跳转至首页。

注销账号:用户点击注销账号后会二次显示确认注销提示(防误触),确认后会再次提示输入密码,待检验匹配后将用户数据进行逻辑删除,用户可联系管理员三十天内恢复账号。

密码找回:当用户忘记密码后有两种方式可找回密码。第一种根据用户所填个人信息进行找回,即根据个人信息进行匹配校验,通过后可重新设定密码;第二种是联系管理员,管理员进行密码找回。

2.2 门户数据模块

该模块中主要包含四个模块:用户数据概览、用户数据统计、用户数据关联、用户数据定位。其中用户数据概览、用户数据统计、用户数据定位和用户数据关联的数据均显示在同一页面中,除此之外,用户数据关联还有与其关联的下钻页面。

用户数据概览:其中主要包括用户的论文数,用户的公开论文数,用户的隐藏论文数,用户的阅读论文数,用户的访问期刊数。该部分数据展示在门户页面的数据概览部分,其大致原型图如图5 所示。

图5 门户数据模块页面原型图

用户数据统计:其中数据主要与数据概览中的主要值类似,在前端进行数据处理,实现各类表格和饼图的实现。该部分数据展示在门户页面的图表中,大致如原型图图5所示。

用户数据关联:主要包含用户的论文引用数和被引用数。其下钻页面可以显示各论文的引用多叉树和被引用多叉树,实现过程即前端再次发送请求,获取用户指定论文的关联树信息(数组实现),前端根据后端用户返回的数据渲染成多叉树。

用户数据定位:主要包含用户阅读论文的学科分类、论文分类、期刊偏好和上次浏览。点击“上次浏览”字样即可跳转至上次浏览页面。方便用户快速对上次浏览页面进行回顾。

2.3 个人中心模块

在该模块中,只包含用户信息的操作功能。

用户信息操作:在该功能中主要包括两个操作——用户的基本信息操作(CRUD) 和用户隐私信息操作(CRUD)。在用户的基本信息中,包括用户账号名、姓名、出生日期、年龄、爱好、自我评价、最近登录时间、最近修改基本信息时间、用户初创时间等等多个基本信息,在用户的隐私信息中包含密码、籍贯、联系方式、居住地址、研究方向、学历、毕业院校、毕业专业、工作情况、主要荣誉、最近修改隐私信息时间等多个隐私信息。对于这二者的操作级别也分别设置了不同的隔离:对于基本信息,用户可直接进行查看、修改等操作;对于隐私信息,用户的查看操作需验证密码后进行操作,用户的修改操作则需要经过管理员的审核,审核通过方可生效。

2.4 论文资源模块

在论文资源模块中主要包含了论文资源列表展示、论文资源检索和论文资源操作。

论文资源展示:该功能主要实现各用户的公开论文资源的列表展示。特别地,对于已注销用户的公开论文资源,平台中仍会继续展示。

论文资源检索:该功能不仅满足对论文的主题、作者、单位、关键字、发表日期的检索,还同时满足对论文的引用数、被引用数进行检索(其操作资源均为公开资源)。这种形式在一定程度上对论文质量进行了限定。

论文资源操作:该功能主要包括论文新增、论文公开隐私状态切换、论文修改、论文删除。其中,论文公开隐私状态切换、论文修改论文删除均设定了权限,必须为该论文的作者才具备这两种权限,并且公开论文如果经过了论文修改后也会自动进入管理员的审核中,待审核通过后才算完成对公开论文的修改。这也使得论文资源的公开更具有严谨性。

2.5 期刊资源模块

在该资源模块中,主要包括期刊资源的展示和期刊资源的检索。

期刊资源展示:主要实现各期刊的分页展示。

期刊资源检索:主要实现对期刊标题、主办单位、出版周期、语种、影响因子等多种字段的检索,这使得用户对期刊也可以进行定向检索。

2.6 系统模块

在该模块中,主要包括两种功能实现:平台模式和平台反馈。

平台模式:主要实现平台的外观颜色切换、字体样式设置、字体大小设置,可以满足方便用户对WEB 页面的个性化定制。

平台反馈:主要是为运行维护中,用户出现某些问题可以有反馈的途径,方便开发者能够更精准地定位到用户的问题,提高了系统的健壮性。

2.7 管理员模块

在某种程度上,管理员模块并不是一个常规模块,之所以将管理员模块作为一个模块来管理,是为了使系统的整体功能和流程更加清晰,其实际上是一个基于逻辑实现的模块。在管理员的系统功能中,除了以上提及的常规功能,还包括审核用户注册、审核用户隐私信息、审核公开论文修改、反馈信息查看和期刊资源操作功能。其中期刊资源操作包括期刊资源新增、期刊资源修改、期刊资源删除。

2.8 数据库设计

本次项目设计中涉及数据库设计中包括两个重点:一个是用户与论文,论文与期刊之间关系,另一个是论文与论文之间的关系。根据这两个重点,将用户和各种数据抽象实体,完成对数据库的设计,主要抽象成用户、论文资源数据、期刊资源数据和论文引用数据库。其中用户对应论文资源为一对多的关系,期刊对应论文也是一对多的关系,论文与论文之间的引用关系也是一对多的。其E-R 图如图6 所示。

图6 E-R 图

由E-R 图可清晰看出其对应关系,可设计出表user、user_info、paper、journal、user_paper(用户拥有论文表)、user_journal(用户查阅期刊表)、journal_paper(期刊对应论文表)、paper_paper(论文引用表)等。

3 总结

本文主要介绍了一种医学论文智能管理平台的技术实现,开发了一个高可扩展性、高性能、高健壮性的响应式Web 应用,解决了医学论文管理平台急缺的现状,使得医学论文的检索、智能管理更为便捷。目前进行了一定的使用,并取得良好反响。

在当今智能化、信息化的大时代背景下,我国的科技创新稳步推进,各类论文管理平台也都在不断改进迭代,相信本项目可以使得医学论文的智能管理做出一定贡献,也为广大需求者提供了平台,为更多的科技创新做出技术铺垫。

猜你喜欢
医学论文页面架构
医学论文中引言的写法
医学论文中引言的写法
基于FPGA的RNN硬件加速架构
刷新生活的页面
医学论文中引言的写法
功能架构在电子电气架构开发中的应用和实践
医学论文中引言的写法
LSN DCI EVPN VxLAN组网架构研究及实现
一种基于FPGA+ARM架构的μPMU实现
网站结构在SEO中的研究与应用