張宏寬 周書旺 朱喆 蘇禮輝 張世凱
(山東省人工智能研究院 山東省濟南市 250000)
據權威調查顯示,我國目前醫(yī)療資源分布不均,大中城市優(yōu)質醫(yī)療資源集中,健康體檢智能化程度高;相比之下,基層醫(yī)療、健康體檢相對落后,處于醫(yī)療技術的低谷。根據國家統計局數據顯示,2021年我國鄉(xiāng)村人口占中國人口總數的35.28%,但基層人群在健康體檢、健康數據管理存在軟硬件設施不完善、數字化程度不高等問題。特別是隨著我國人口老齡化問題日趨嚴重,對衛(wèi)生醫(yī)療系統需求日益增加的情況下,如何解決基層人群的醫(yī)療資源不足以及如何提高基層人群健康管理的智能化程度,仍是目前亟需解決的問題。
根據工業(yè)和信息化部、民政部、國家衛(wèi)生健康委共同印發(fā)的《智慧健康養(yǎng)老產業(yè)發(fā)展行動計劃(2021-2025年)》提出要豐富智慧醫(yī)養(yǎng)健康服務,提升健康管理能力,依托互聯網平臺等建設預防、醫(yī)療、康復、護理、安寧治療等相銜接的覆蓋全生命周期的智慧健康服務體系,推動優(yōu)質健康醫(yī)療資源下沉,提升人民群眾的健康素養(yǎng)及健康管理能力。
信息化是健康管理(體檢)中心持續(xù)快速發(fā)展的關鍵。本系統基于互聯網技術開發(fā)了一套面向基層人群的健康管理平臺,實現了用戶檔案管理、用戶健康數據查詢、用戶健康走勢展示、健康數據分析及健康報告生成等功能,為基層人群體檢數據管理、健康計劃、健康趨勢查詢服務,為基層醫(yī)生提供在線診斷輔助支持。
本系統基于SpringMVC架構開發(fā),前端使用Vue框架開發(fā),服務端使用Java作為開發(fā)語言,數據庫則采用MySQL。服務端系統采用Win10系統。首先安裝開發(fā)依賴軟件JDK1.8、MySQL8.0數據庫、緩存數據庫Redis。使用SpringBoot腳手架初始化服務端工程;前端工程使用Vue Cli腳手架初始化前端工程。
首先安裝JDK1.8,在系統環(huán)境變量設置中,添加Java環(huán)境變量,并使用Java、Javac指令判斷環(huán)境變量是否配置成功。在配置完jdk后,安裝MySQL數據庫,本系統采用MySQL8.0版本,該版本提供安裝版,只需按照提示操作即可。Redis緩存服務器采用3.2版本,在本系統中Redis服務器主要用于存儲高頻使用數據,如數據字典,常用指標分類數據等,以提高數據的讀取效率,提升用戶端的相應速度。至此,本系統所依賴的運行環(huán)境已搭建完成。
Spring框架是為了適當降低開發(fā)公司的開發(fā)復雜程度而產生的開源框架,其本質目標是實現開發(fā)過程中各個層次之間的隔離,以達到每個層次可靈活選擇組件的目的,同時可以很好地和J2EE開發(fā)框架進行集成。MVC是一種程序設計思想,它將程序邏輯按照任務分工分為M(Model,數據模型)、V(Views,視圖)、C(Controller,控制器)三層。數據模型層是一個較大的概念,根據業(yè)務邏輯的不同會有不同的表現形式,簡單概括來說,該層主要負責與數據相關的邏輯,與數據庫打交道的邏輯都可歸為數據模型層;視圖層,顧名思義,負責展示界面、數據展示。控制器,具體表現為Servlet,它接收客戶端的請求,將請求分發(fā)給處理器,并將處理結果返回給客戶端。SpringMVC核心流程如圖1所示。
圖1:SpringMVC核心流程
Vue是一套用來構建用戶界面的漸進式前端框架,差別與其他大型框架,Vue在整體架構上采用了自底向上逐層應用的設計。Vue的核心庫只關注視圖層,不僅易于上手,還便于與第三方庫或既有項目整合。此外,當與現代化的工具鏈以及各種支持類庫結合使用時,Vue也完全能夠為復雜的單頁面應用提供驅動。而且由于Vue的MVVM雙向數據綁定、組件化、虛擬DOM等機制使其擁有更好的性能,更好的擴展性,完全能支撐本系統的前面模塊開發(fā)。
如圖2所示,采用前后端分離設計,基于Java語言開發(fā)。系統整體為三層架構設計:展現層即視圖層,負責數據的展現與交互,展現層采用Vue框架,UI使用element-ui設計。服務層采用SpringMVC架構設計,根據功能劃分為用戶登錄模塊、用戶信息管理、健康數據采集及管理、健康數據走勢分析等模塊,此外,系統還集成shiro框架用于實現用戶的角色劃分及權限控制。數據層基于Mybatis,MyBatis是一款優(yōu)秀的持久層框架,通過簡單的XML或注解方法來配置和映射業(yè)務層面的對象到數據庫中的數據對象,實現對數據的增刪改查處理。
圖2:系統架構圖
如圖3、圖4和圖5所示,系統提供用戶檔案管理功能。在該模塊,可對用戶的基本信息包括姓名、身份證號、住址、血型、家族病史及生活環(huán)境等信息進行維護。系統服務端Controller層提供對應接口editUserInfo(@RequestBody UserInfoEntity userInfo),該接口支持http協議的post方式請求,具體參數使用RequestBody傳值。在后臺接口到請求后,首先查詢該用戶的歷史填寫信息,如果已填寫則將該數據傳給前臺,并對頁面進行數據渲染,用戶只需輸入要變更的數據即可;如果首次填寫,則需要用戶輸入全部信息。后臺接口在接收到數據后,根據參數中ID主鍵對填寫信息進行保存或更新。
圖3:用戶檔案管理
圖4:用戶檔案編輯
圖5:用戶檔案管理流程圖
如圖6所示,健康數據采集模塊為用戶體檢數據錄入提供接口,該模塊將檢測設備檢測的數據上傳至平臺服務端數據庫,為平臺的健康分析功能提供數據基礎。
圖6:健康數據采集
在該模塊主要采集用戶的當前用戶的體溫、脈率、呼吸率、血壓、體質指數、當前生活方式、臟器功能(視力、聽力、運動能力等)、心電數據、當前腦血管疾病、腎臟疾病、心血管疾病等系統疾病情況、及當前的用藥情況。由于該模塊檢測項目較多,如果同時存入同一張數據表時,會影響數據的存取速度,因此,為該模塊數據設計了基本體檢數據(health_basic_data)、12導聯心電數據表(health_ecg_data)、現存問題表(health_current_problem)、用藥情況表(health_medication_status),使用user_id字段查詢用戶的所有健康數據。后臺服務端對應各表設計了HealthBasicDataEntity、HealthEcgData Entity、HealthCurrentProblemEntity、Health MedicationStatusEntity四個實體類接收前端數據,根據MVC設計原則,系統所有的業(yè)務邏輯均在Service層實現,Controller層負責處理前端請求并調用Service層EditHealthData接口處理健康數據管理相關業(yè)務:該接口根據前臺參數分別調用基本體檢數據HealthBasicDataService層編輯接口、心電數據HealthEcgService層接口、現存問題HealthCurrentProblemService層接口、用藥情況Helath MedicationStatusService層編輯接口保存對應數據。
如圖7、圖8和圖9所,健康數據管理模塊主要實現對已采集的健康數據管理、分析、生成健康數據趨勢圖等功能。通過數據可視化組件Echarts實現健康數據趨勢的展示;通過用戶的健康數據、年齡、現存問題、家族病史等多維度數據,對用戶的健康狀況進行分析,并生成指導意見報告,再經過專業(yè)醫(yī)生審核后得出最終健康指導意見,并將指導意見以PDF文件格式供用戶下載。
圖7:健康數據分析流程圖
圖8:健康數據分析模塊
圖9:健康報告審核
為了保證系統的運行效率,使用單獨進程處理健康數據。用戶保存健康數據時,系統向健康數據待分析表(health_data_process)表添加一條初始狀態(tài)為“INIT”的待處理記錄。健康數據分析進程定時輪詢該表,查詢表中是否存在待處理的數據(狀態(tài)為“INIT”的數據),如果有則喚醒數據分析進程分析健康數據。首先健康數據分析進程將當前處理的記錄狀態(tài)置為處理中(“RUNNING”)狀態(tài),搶占該數據以防止其他線程重復處理。此后,進程根據health_data_id查詢對應的健康體檢數據,并將查尋到的健康數據傳遞至健康數據分析模塊處理,在健康數據分析結束后,將結果存入健康數據分析結果表(health_data_result),并修改該條記錄狀態(tài)為完成狀態(tài)(“FINISHED”),此后,系統將數據分析結果會反饋給責任醫(yī)生,在醫(yī)生審核通過后生成PDF報告文件供用戶下載。
該系統通過互聯網技術設計出一套面向基層群體的健康管理平臺,設計開發(fā)了健康數據在線管理、健康狀況分析及健康報告下載等功能,輔助體檢醫(yī)生管理用戶健康數據,查看用戶歷史健康數據及了解用戶的身體狀況發(fā)展趨勢,致力于解決基層人群健康數據管理配套軟件不完善等問題,同時促進基層健康管理模式的改革并為我國醫(yī)療衛(wèi)生事業(yè)的發(fā)展貢獻力量。