黃志峰,許尚文,肖慧,鐘群,付麗媛,王曉陽,陳自謙
解放軍福州總醫(yī)院 醫(yī)學(xué)影像中心,福建 福州 350025
為保證醫(yī)用磁共振成像設(shè)備的穩(wěn)定運行,需要對設(shè)備進行系統(tǒng)的監(jiān)控和管理。傳統(tǒng)的設(shè)備參數(shù)管理根據(jù)各臺設(shè)備獨立運行,維護數(shù)據(jù)多停留在紙質(zhì)化記錄,文檔分散,數(shù)據(jù)無法得到有效分析處理,管理效率不高[1-4]。
目前常見的設(shè)備管理系統(tǒng)架構(gòu)以客戶端/服務(wù)器(Client/Server,C/S)和瀏覽器 /服務(wù)器(Browser/Server,B/S)兩種架構(gòu)為主。隨著互聯(lián)網(wǎng)技術(shù)的蓬勃發(fā)展,相較于C/S架構(gòu),B/S結(jié)構(gòu)服務(wù)模型能更為便捷高效地維護和升級,維護成本相對較低,適用于醫(yī)療設(shè)備管理系統(tǒng)的開發(fā)[5-6]。在B/S架構(gòu)的應(yīng)用中,服務(wù)端編程語言以PHP、Java為主。相比于PHP、Java等語言部署的Apache、Tomcat等服務(wù),Node.js能輕量級地應(yīng)用“模型—視圖—控制器”(Model-View-Controller,MVC)設(shè)計模式進行路由控制、處理業(yè)務(wù)邏輯、調(diào)用數(shù)據(jù)及用戶界面渲染[7-8]。利用Express開源開發(fā)框架,能快速搭建可處理高并發(fā)請求的可靠服務(wù),僅需較少的硬件資源開銷。Node.js的開發(fā)語言為Javascript,與瀏覽器端的腳本語言一致,統(tǒng)一的前后端邏輯處理語言也使得切換開發(fā)語言環(huán)境的開銷減少,提高開發(fā)的效率,減少業(yè)務(wù)功能開發(fā)成本。
本研究旨在構(gòu)建一個基于Web與Node.js的醫(yī)用磁共振成像設(shè)備動態(tài)管理系統(tǒng),以Node.js提供運行環(huán)境和應(yīng)用服務(wù)及靜態(tài)文件服務(wù)器,采用超文本傳輸協(xié)議(HTTP/HTTPS)協(xié)議通信,以MySQL作為數(shù)據(jù)庫,構(gòu)建統(tǒng)一的數(shù)字化設(shè)備管理平臺,為終端設(shè)備提供實時運行參數(shù)監(jiān)控、設(shè)備維護日志管理、運行數(shù)據(jù)分析等服務(wù)。該系統(tǒng)能動態(tài)監(jiān)控設(shè)備運行關(guān)鍵參數(shù),提供統(tǒng)一的設(shè)備維護日志管理,針對動態(tài)數(shù)據(jù)進行統(tǒng)計分析,規(guī)范、系統(tǒng)地保障磁共振設(shè)備的日常運行,為設(shè)備的最佳運行狀態(tài)提供策略方案,整體提高磁共振設(shè)備質(zhì)量控制水平[9-10]。
研究利用Web、Node.js等技術(shù)實現(xiàn)醫(yī)用磁共振設(shè)備動態(tài)管理系統(tǒng)平臺,構(gòu)建參數(shù)監(jiān)控模塊、設(shè)備維護日志管理模塊、運行數(shù)據(jù)分析模塊等。
醫(yī)用磁共振設(shè)備的穩(wěn)定運行,需要對設(shè)備自身運行參數(shù)及空間環(huán)境參數(shù)進行有效監(jiān)控,在出現(xiàn)故障及不穩(wěn)定因素時及時提供反饋信息。需要監(jiān)控的部分參數(shù)(部分)有:操作間溫度、操作間濕度、設(shè)備間溫度、設(shè)備間濕度、空調(diào)溫度、空調(diào)濕度、水冷機溫度、水冷機流量、水泵壓力、壓機壓力、設(shè)備硬盤容量、工作站硬盤容量、液氦面和穩(wěn)壓。
各終端設(shè)備通過局域網(wǎng)連接參數(shù)監(jiān)控模塊。由聯(lián)網(wǎng)的設(shè)備工作站及環(huán)境溫濕度檢測硬件模塊作為數(shù)據(jù)的發(fā)送端,通過腳本程序(以Python語言為主)實時發(fā)送HTTP/HTTPS請求,與Node.js服務(wù)端建立會話連接,向服務(wù)端推送設(shè)備運行數(shù)據(jù),服務(wù)端接收并分析實時數(shù)據(jù),實現(xiàn)對多設(shè)備的統(tǒng)一管理,示意圖,見圖1。
圖1 設(shè)備參數(shù)監(jiān)控模塊示意圖
設(shè)備維護日志管理模塊用于向設(shè)備維護人員提供配套的日志應(yīng)用。
設(shè)備維護日志管理模塊管理系統(tǒng)提供設(shè)備的注冊登記、基礎(chǔ)信息登記及日常維護記錄等功能,并提供相應(yīng)的數(shù)據(jù)查詢、報表及打印等功能,并為設(shè)備運行數(shù)據(jù)分析模塊提供部分的分析數(shù)據(jù)源[12]。模塊示意圖,見圖2。
圖2 設(shè)備維護日志管理模塊
設(shè)備運行數(shù)據(jù)分析模塊用于管理和分析由設(shè)備參數(shù)監(jiān)控模塊及設(shè)備維護日志模塊提供的數(shù)據(jù),主要實現(xiàn)數(shù)據(jù)可視化分析、預(yù)測性分析等。模塊示意圖,見圖3。
圖3 設(shè)備運行數(shù)據(jù)分析模塊流程示意圖
系統(tǒng)以Web為基礎(chǔ),采用B/S的組織架構(gòu)模式,客戶端與服務(wù)器間使用HTTP(超文本傳輸協(xié)議,HyperText Transfer Protocol)及HTTPS(安全超文本傳輸協(xié)議,Secure Hyper Text Transfer Protocol)協(xié)議進行通信。
前端表示層提供設(shè)備參數(shù)監(jiān)控、日志記錄管理、信息查詢、數(shù)據(jù)導(dǎo)入導(dǎo)出及設(shè)備運行數(shù)據(jù)分析等服務(wù),見圖4;業(yè)務(wù)邏輯層由Node.js提供運行環(huán)境,構(gòu)建Web服務(wù)器及靜態(tài)文件服務(wù)器,提供應(yīng)用服務(wù),并與MySQL數(shù)據(jù)庫進行交互。
圖4 醫(yī)用磁共振設(shè)備動態(tài)管理系統(tǒng)架構(gòu)圖
系統(tǒng)主要的業(yè)務(wù)流程,見圖5。
第四,水利普查專業(yè)性強,對普查員在掌握普查知識、各種專業(yè)測量儀器使用等方面要求比較高,因此普查指導(dǎo)員必須深入現(xiàn)場指導(dǎo)普查員工作。
圖5 醫(yī)用磁共振設(shè)備動態(tài)管理系統(tǒng)操作流程圖
在完成登錄系統(tǒng)后,管理人員根據(jù)自身需求,進行查看設(shè)備運行參數(shù)信息、更新設(shè)備維護日志、獲取運行數(shù)據(jù)分析報告等操作。后臺系統(tǒng)收到請求后,返回相應(yīng)的數(shù)據(jù)信息,管理人員可根據(jù)需求進行進一步的檢索查詢、打印、輸出為Excel文件等操作。
客戶端采用Chrome瀏覽器。服務(wù)端采用Node.js的Express開發(fā)框架處理業(yè)務(wù)邏輯;數(shù)據(jù)庫使用MySQL。
3.1.1 用戶界面渲染組件
前端應(yīng)用部分采用了Bootstrap樣式框架、AngularJS、JQuery代碼庫等開源框架與工具,通過調(diào)用“異步Javascript和 XML”(Asynchronous Javascript And XML,AJAX)請求,在無需重新加載整個頁面的情況下更新界面數(shù)據(jù)等內(nèi)容。
3.1.2 服務(wù)器端組件
服務(wù)器端由Node.js為編程語言的運行環(huán)境,通過Express框架搭建HTTP/HTTPS服務(wù)器。用戶通過系統(tǒng)界面發(fā)送HTTP/HTTPS請求到服務(wù)器,服務(wù)器根據(jù)請求路徑及類型將其分配到相應(yīng)的處理單元[13-14](圖6),需要與數(shù)據(jù)庫進行交互的請求則通過第三方模塊“ORM”連接MySQL數(shù)據(jù)庫調(diào)取數(shù)據(jù)后處理,并返回結(jié)果。
圖6 設(shè)備管理路由請求處理列表(部分)
系統(tǒng)界面主要包括設(shè)備查詢界面、參數(shù)信息界面、日志界面、數(shù)據(jù)分析模塊界面等,文中僅列出部分模塊界面。
3.2.1 設(shè)備查詢界面
設(shè)備查詢界面,見圖7。該界面列出并顯示接入系統(tǒng)的醫(yī)用磁共振設(shè)備的實時信息。
圖7 設(shè)備查詢界面
3.2.2 參數(shù)信息界面
醫(yī)用磁共振設(shè)備動態(tài)管理系統(tǒng)的參數(shù)信息界面,用于記錄和提示、查看相關(guān)設(shè)備的基礎(chǔ)信息,見圖8。
3.2.3 創(chuàng)建維護日志界面
創(chuàng)建維護日志界面(部分功能)見圖9。針對具體的設(shè)備,由登錄用戶創(chuàng)建設(shè)備維護日志,記錄維護內(nèi)容及上傳維護相關(guān)圖像附件等。
圖8 參數(shù)信息界面
圖9 創(chuàng)建維護日志界面(部分功能)
3.2.4 日志清單界面
日志清單界面(部分功能)見圖10。主要提供具體設(shè)備日志的增加、刪除、修改及查詢、報表、打印等功能。
圖10 日志清單界面(部分功能)
為了使系統(tǒng)能穩(wěn)定并最大兼容地提供服務(wù),應(yīng)注意部分運行組件及參數(shù)的選擇。
3.3.1 系統(tǒng)進程管理工具的選擇
“進程管理器2”(Process Manager 2,PM2)是一款管理Node.js進程的良好工具,可進行高效地配置、管理、更新、監(jiān)控Node.js進程,為系統(tǒng)管理提供極大的便捷。
3.3.2 服務(wù)端運行模式的選擇
Node.js的運行模式有“fork”模式與“cluster”模式。在僅采用Node.js作為后端編程語言的情況下,用cluster模式啟用多進程,能開啟多個服務(wù)實例,提高服務(wù)器的容錯性和穩(wěn)定性。但在cluster模式下,應(yīng)注意進程間數(shù)據(jù)通信的問題,應(yīng)將服務(wù)端session信息保存在公用的緩存庫如Redis中。
3.3.3 前端瀏覽器的選擇
為改善在Windows XP下的用戶體驗,建議采用Chrome V49的版本作為系統(tǒng)的通用瀏覽器。
3.3.4 系統(tǒng)運行安全
在數(shù)據(jù)安全存儲方面,應(yīng)制定定期的自動備份策略;訪問安全方面,應(yīng)配置好系統(tǒng)防火墻的出入站規(guī)則,對于node.js服務(wù)本身,應(yīng)當(dāng)制定訪問的“黑名單”“白名單”訪問控制中間件等。
基于Web與Node.js的醫(yī)用磁共振設(shè)備動態(tài)管理系統(tǒng)可控制在極低的成本下達(dá)到其應(yīng)有的性能和效率,便于維護,滿足用戶使用需求。
區(qū)別于傳統(tǒng)的醫(yī)療設(shè)備管理系統(tǒng),本文所設(shè)計的基于Web與Node.js的醫(yī)用磁共振設(shè)備管理系統(tǒng)能實時地在局域網(wǎng)設(shè)備上進行對設(shè)備的監(jiān)控、信息查詢、故障信息發(fā)布、維護日志登記及設(shè)備操作流程教學(xué)視頻發(fā)布等[15]。
在系統(tǒng)試運行的月兩個月時間內(nèi),除中途例行的系統(tǒng)更新維護,服務(wù)持續(xù)了37天的穩(wěn)定在線(圖11)。系統(tǒng)還將傳統(tǒng)的紙質(zhì)化設(shè)備信息記錄管理轉(zhuǎn)為了電子文檔化管理,便于長期存儲、回顧、分析和即時備份,且降低了紙質(zhì)化數(shù)據(jù)資料在保存過程中數(shù)據(jù)流失的風(fēng)險;便捷的查詢訪問功能,也得到了系統(tǒng)使用人員的積極評價。
圖11 服務(wù)器后臺管理界面(部分)
系統(tǒng)更加全面地對醫(yī)用磁共振設(shè)備的運行狀態(tài)進行監(jiān)控,有助于及時發(fā)現(xiàn)系統(tǒng)潛在問題,排除安全隱患,分析并提供更為科學(xué)的運行指導(dǎo)參數(shù),提高MRI臨床應(yīng)用的可靠性。
文章旨在闡述醫(yī)用磁共振設(shè)備動態(tài)管理系統(tǒng)實際生產(chǎn)價值,并提供一種基于Web和Node.js構(gòu)建該系統(tǒng)架構(gòu)的解決方案。
該系統(tǒng)根據(jù)醫(yī)用磁共振設(shè)備的質(zhì)量控制需求構(gòu)建和實現(xiàn)相應(yīng)的管理模塊,滿足科室在生產(chǎn)實踐中的需要,也為通過大樣本數(shù)據(jù)分析設(shè)備運行狀況制定最佳運行方案提供了數(shù)據(jù)和技術(shù)支持[16]。