汪新建 韓 俗 龐子軒
(四川大學華西公共衛生學院/華西第四醫院信息化建設部 成都 610041)
在信息化建設發展進程中,醫院網絡通常按照局域網結構進行設計和構建。醫院信息管理部門為了保障網絡安全,防止和避免遭受病毒和木馬襲擊,通常將局域網與互聯網進行物理隔絕。與此同時醫院為方便患者就診,提供互聯網問診等服務。為杜絕外來電子設備對醫院網絡的威脅,大多數醫院禁止使用USB接口或限制外接移動設備接入,導致醫院工作人員難以實現文件共享和轉移[1-2],給業務工作開展造成阻礙。醫院日常工作還包括辦公、科研、管理等,通常需要文件共享與轉移,對此網絡管理人員開放部分電腦USB接口或解除外接移動設備限制,但不便于管理,給醫院網絡安全帶來嚴重隱患。因此醫院需要一個既能實現數據跨網絡共享又能保障網絡安全的文件存儲機制。四川大學華西第四醫院充分利用現有網絡安全設備,自主設計和研發醫院網盤系統,有效解決醫務人員自由存儲文件問題,工作人員可以通過網盤便利地存儲、瀏覽、分享、管理文件。網盤系統為智慧醫院建設提供數據共享存儲方案,同時有助于提升網絡安全管理水平。
醫院網盤系統不僅要考慮網絡資源安全性和穩定性,還要考慮經濟性。充分利用醫院現有軟、硬件資源,為用戶提供安全、便捷的服務。系統總體架構分為4層,見圖1。
2.2.1 概述 為實現網盤共享功能,使用戶便捷地通過網絡環境上傳或下載資料文檔,需要在物理層配備網絡安全設備以構建醫院局域網與互聯網互通的安全網絡。防火墻是醫院網絡安全架構中的必要設備,其主要功能是防護互聯網對內部網絡的攻擊,同時對內部網絡訪問互聯網行為進行控制[3]。
2.2.2 防火墻+網閘的網絡安全架構 為提升系統安全性,排除非安全因素,網盤系統采用防火墻+網閘的網絡安全架構,在傳統防火墻隔離方式上增加網閘設備,網閘隔離接近物理隔離,網絡層之間斷開,通過擺渡完成數據交換[4]。網閘通過硬件實現所有邏輯控制,且網閘內實現數據靜態化,無法被執行、修改,網閘采用無協議的GAP隔離反射技術實現開放網絡通訊協議的剝離與重組,有效阻斷來自網絡層的各類攻擊,提高系統安全性、可靠性[5],見圖2。
2.2.3 數據轉換 按照網絡安全架構,互聯網IP數據通過防火墻網絡地址轉換協議(Network Address Translation,NAT)轉換為網閘傳輸控制協議(Transmission Control Protocol,TCP)服務端地址,再通過網閘將TCP服務端地址轉換為客戶端地址。數據通過一系列地址和端口轉換才能從互聯網進入醫院局域網。同時防火墻設置適當防御安全策略,可以抵御網絡攻擊、限定數據傳輸類型并有效阻止病毒及木馬等惡意程序的攻擊,提升網盤系統安全穩定性。
2.3.1 數據層 為充分利用醫院現有數據資源,將網盤系統準入機制與醫院內部集成平臺系統相結合,利用集成平臺完成網盤系統單點登錄。在外網中通過與集成平臺相同的賬號和密碼進入系統,以便于統一管理人員身份信息。
2.3.2 服務層 采用Tomcat網絡服務器,易于擴展,同時具備更好的安全性。同時將文件服務器與應用服務器分離,提高系統存儲數據的安全性。
2.3.3 應用層 采用成熟穩定的SpringMVC框架進行設計。SpringMVC提供一整套完善的組件,易于配置管理,具有很好的靈活性和拓展性。其最大特點是具備清晰的角色劃分、控制器、視圖解析器、模型對象、處理器映射等,每個角色都可以用對象來實現,使程序設計更加高效。
考慮到工作人員會在內外網多環境下使用系統,在網絡架構上采用瀏覽器/服務器(Browser/Server,B/S)架構,無需在客戶端進行安裝,減輕操作者負擔,網盤系統同時支持Windows、Linux、Android等操作系統。
軟件系統以JAVA的SpringMVC作為基礎框架,SpringMVC 使用Model(模塊)、View(視圖)、Controller(控制器)的架構模式,各部件分工明確。其中控制器用于接收請求、響應結果;處理器映射器作用是基于請求的統一資源定位系統(Uniform Resource Locator,URL)尋找 Handler,用于處理不同用戶請求;視圖解析器對視圖進行解析和渲染,將視圖展示給用戶[6]。SpringMVC利用注解驅動,節省大量配置工作,且數據模型、參數的引用便于頁面層與邏輯控制層之間數據傳輸[7],見表1。

表1 系統應用配置參數
3.3.1 概述 網盤利用醫院現有的Oracle數據庫系統,建立獨立的Owner存放相關數據庫對象并設置訪問權限。數據庫訪問采用Hibernate框架,通過事務控制保持數據表與上傳文件的一致性[8]。網盤空間大小根據服務器資源進行分配,存儲路徑與服務路徑分離,避免數據文件更新時對網盤數據造成影響。
3.3.2 用戶權限設計 對用戶設定登錄權限和網盤使用空間。普通網盤作為一個獨立的應用系統,具有單獨的用戶管理功能模塊。考慮到醫院集成平臺或醫院信息系統(Hospital Information System,HIS)已經存在完整的用戶管理功能[9],為方便用戶進行賬號管理,系統通過集成平臺提供的賬號驗證接口對用戶登錄賬號和密碼進行驗證,減少功能冗余,提升用戶體驗。網盤空間與服務器存儲容量有關,為合理分配利用服務器資源,需要對用戶網盤空間進行統一分配。空間資源的分配屬于邏輯劃分,并不是物理劃分,只需要設計賬號與空間分配表。如果用戶上傳文件容量大于剩余空間,系統將給予提示,提高系統可靠性。
3.3.3 文件上傳 系統利用SpringMVC中的MultipartFile工具,以表單形式實現文件上傳。為提升用戶體驗,系統利用FormData將表單數據序列化進行Ajax異步傳輸[10]。由于系統使用文件名為主鍵,文件上傳前除了判斷剩余空間大小,還要判斷當前上傳文件名是否與已上傳文件重復。另外系統需要引用到commons-fileupload-1.3.2.jar與commons-io-2.5.jar文件。為提高文件服務器安全性和穩定性,設置網絡安全防御策略,對上傳文檔進行掃描、多重防護,以有效防止病毒、木馬等惡意程序對服務器的攻擊,保護網盤系統和用戶數據文件安全。
3.3.4 文件下載 系統利用JAVA的IO流實現文件下載,執行過程中對文件路徑及文件等信息進行核查,頁面需要以表單形式提起下載,否則瀏覽器不能彈出下載界面。
3.3.5 文件管理 用戶上傳的文件不能無規則地存儲在服務器上,否則可能導致存儲空間邏輯混亂、影響文件歸屬。系統將賬號設置為主鍵,為每個賬號創建單獨文件夾,所屬文件放置在各自文件夾內,避免不同賬號同名文件情況發生。系統對上傳文件在數據庫中都有對應記錄,按照文件名、類型、大小、上傳時間在頁面中展示,提供文件刪除功能,上傳和刪除功能均通過事務來控制數據一致性。同時系統提供文件查詢功能,通過輸入文件名關鍵字模糊查找所需文件。
3.3.6 日志管理 系統將用戶操作統一納入日志管理,詳細記錄操作時間、主要內容及操作設備IP等信息,提高系統完整性和可靠性,有效解決用戶實際應用過程中誤操作引起的事件,降低系統風險[11]。
防火墻默認禁止全部端口,根據需要開放設置,如果內網與外網端口不同映射則需要開放兩個端口,如果僅開放1個端口會造成內部或外部網絡無法訪問網盤。
部分瀏覽器設置有自保留端口,服務器Web端口不能設置相同,否則將出現沖突,無法訪問網盤。例如Chrome瀏覽器對6665、6666、6667、6668、6669等端口進行自保留[12]。
由于各類應用系統默認的字符編碼不同,因此系統在設計應用過程中要對部門字符編碼進行轉換,否則會出現中文亂碼現象。頁面中文數據傳入oracle數據庫亂碼應對方法:對字符進行轉換,需要將“iso-8859-1”的字符編碼轉換為“UTF-8”。中文數據傳入頁面亂碼應對方法:注解時執行字符轉換,將“produces”設置為“text/html;charset=UTF-8”。下載中文文件名亂碼應對方法:對傳輸文件Header中的文件名進行字符“UTF-8”的轉換。
網盤系統滿足了醫院工作人員對文件管理的需求,系統啟用后受到廣大工作人員的關注,現擁有存儲文件賬戶320余個,各類型文件1 700余個,占用存儲空間約3.5G。由于系統支持移動終端設備瀏覽器,醫院工作人員可以利用手機瀏覽器進行文件上傳、下載和瀏覽,為移動辦公提供便利,同時改善醫院網絡安全環境。院內工作站采取嚴格禁止使用USB移動存儲接口的措施,經過近1年的持續改進和運行,醫院工作站故障率和感染病毒率大幅下降,由于感染病毒導致全盤殺毒或系統重裝次數從原來的日均1~2次降低到基本清零。
醫院信息化建設要圍繞解決實際工作中的痛點與難點實施開展,醫院網盤系統改變了以往在網絡安全條件限制下文件難以實現跨網共享與傳輸的困境,消除違規操作存儲設備帶來的網絡安全隱患,為醫院工作人員提供獨立數據存儲空間,可以在內外網環境下便捷存取文件,為多地開展醫療辦公、科研、管理等工作帶來便利。醫院網盤系統建設為未來醫院業務智能化、移動化提供重要的數據載體支持,對醫院信息化建設和發展具有重要意義。