?

基于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中的研究與應用
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合