孫永亮,鄧文偉
1. 上海市靜安區中醫醫院 信息科,上海 200040;2. 上海市靜安區閘北中心醫院 信息科,上海 200040
傳染病的監控與預警是控制、降低疫情突發事件危害的關鍵工作,是提高公民醫療衛生質量的基本保障。隨著信息技術的發展與我國醫療衛生事業改革的進一步推進,醫療信息化、網絡化已成為當前醫院發展的主要方向[1]。推動醫療信息化進程可以為醫務人員提供更高效的工作方式,使之擁有更多精力為患者提供高質量服務[2]。我國醫療信息化起步較晚,醫院信息化與區域衛生信息化發展不足,許多醫療衛生機構仍使用傳統的方式識別、收集疫情信息,經人工整理后再錄入文件系統[3]。這種方式具有效率低下、易出錯、查詢困難、效果不明顯等缺點,為疫情監控工作帶來了極大不便[4]。因此如何實現患者疾病信息的實時監控,以及疫情報告的自動化管理成為了各級醫療管理者需要解決的難題。
本研究設計并實現了一種醫院疫情監控系統,通過監測與記錄患者就診的全流程,對傳染病疫情實時跟蹤與監控,并實現了疫情的自動化上報與報警。該系統可簡化醫院傳染病監測的工作流程,為防疫工作提供具有時效性的數據支持,并為醫療信息化進程的推進提供參考。
本研究設計的醫院疫情監控系統采用富互聯應用(Rich Internet Application,RIA)框架,整體上呈現分層風格體系結構,目的是為了具備較好的復用性與內部可修改性[5]。該系統主要由瀏覽器和后端框架組成,通過TCP連接,Web界面又包含BootStrap前端開發庫、JQuery通信模塊交互工作,后端框架包含ASP.Net MVC容器、應用程序服務器和數據庫,整體結構設計如下圖1所示。

圖1 醫院疫情監控系統整體架構設計
其中,使用Twitter公司開發的BootStrap工具來設計用于業務展現的前端頁面,然后通過建立前后端的TCP連接來完成對ASP.Net MVC容器中包含的網站頁面的訪問,最后將API響應結果返回至瀏覽器[6]。瀏覽器端通過XML PRC請求獲得數據,再將數據傳入JQuery通信模塊,從而實現業務的動態展現。在數據請求到達ASP.Net的應用程序服務器之后,首先在一個會話中進行權限判斷,這一請求也可以使用RESTful中XML RPC Call的授權令牌來實現[7]。此外,為了提高系統的可靠性與可用性,在服務器端部署了守護進程、備份系統和維護系統三種工具,作用如表1所示。

表1 服務器配置的可靠性工具
數據管理層的整體框架為三層結構,自下而上分別是數據庫訪問層、業務處理層以及對外接口。選擇基于ASP.Net的Entity Framework框架來實現數據持久化并生成相應的實體類,從而將數據管理與具體的業務邏輯分離開,以便于系統的開發與維護[8]。使用Entity Framework的數據管理層結構如圖2所示。

圖2 數據管理層框架設計
由圖2可知,在與業務對象模塊進行交互時,訪問的是框架中的業務實體;在與數據庫對象進行交互時,訪問的是數據存儲實體。為了實現這一過程,需要對數據實體到數據庫源以及業務實體到業務邏輯的交互協議進行設計,這兩方面的協議(映射關系)如圖3所示。
系統的業務功能層主要包含四個功能模塊,分別為:傳染病統計跟蹤模塊,就診數據分析模塊,疫情自動上報模塊,系統參數管理模塊。系統的主要功能模塊劃分如圖4所示。

圖3 數據管理層映射關系

圖4 醫院疫情監控系統功能能模塊劃分
各個功能模塊的組合方式采用XML配置文件來完成,然后以RESTful API的方式將不同的后端業務發布至不同的URI中,使得系統各個模塊之間以調用網絡接口的形式來交互,從而隱藏了模塊具體的實現細節[9]。每個功能模塊對應一個業務需求,具備一定的業務價值[10]。這一對應關系如表2所示。

表2 系統業務功能層功能模塊
為了實現表2所述的各項業務功能,將對各個功能模塊進行詳細闡述。
傳染病統計跟蹤模塊:該模塊包括傳染病信息的回顧性分析與預測性分析兩個部分。其中回顧性數據分析主要通過一系列的統計學方法將不同地區、不同患者群體、不同感染源的傳染病進行匯總并以圖表的形式向用戶提供數據展現服務;另一方面,預測性傳染病跟蹤統計主要是通過已收集到的歷史感染信息來對未來傳染病疫情的潛在風險、傳播路徑以及流行趨勢進行分析預測,并按照設定的報警策略自動向上級網絡節點傳遞疫情信息。
就診數據分析模塊:該功能模塊向用戶提供就診數據的錄入與查詢服務,用戶可通過此模塊查詢醫院接受患者中的疾病情況,并設定具體的風險判定規則。該模塊通過flask工具將所實現的數據分析服務打包為Web接口,從而實現系統邏輯與實現的分離,降低模塊之間的耦合性[11]。
疫情自動上報模塊:該模塊為用戶提供疫情信息的自動上報功能,用戶只需要針對某些數據預先設置報警規則,通過調用就診數據分析模塊所提供的接口獲取相關疾控信息,用于在達到所設定閾值時自動生成統計報告,并將其上報至上級網絡節點。
系統參數管理模塊:該模塊為管理員用戶提供系統整體的參數管理服務,從而通過動態配置的方式提高系統的靈活性。管理員用戶可通過該模塊實現對普通用戶賬號以及權限信息的管理,管理用于數據挖掘的備用模型與訓練數據集。
本系統前后端之間采用JSON作為通信交互方式,并按照前文提到的表現層狀態轉化來實現消息的請求與響應。JSON是一種基于ECMAScript的數據交換標準,適合于實現網絡中的少量數據通信[12]。JSON采用了完全獨立于語言的文本方式,具有結構簡單、編碼難度低、基于文本、可擴展性強等優點,因此被大量應用于Web應用程序中[13]。
醫院疫情監控系統的通信交互層主要通過JSON文本作為信息傳輸載體,使用.Net Framework 中的JSON serialization工具模塊來生成JSON數據。實際中按照場景的不同可選用3種不同的數據組織形式,見表3。

表3 通信交互層的JSON數據格式
基于對醫院疫情監控系統的設計,本系統在實現時選擇了Windows Server2008作為開發平臺,原因在于其具有良好的IT架構,且提供了服務器功能,從而具備了信息的基礎架構[14]。在服務器上搭建好ASP.Net的運行環境后,使用C#編程語言完成各個功能模塊的構建。考慮到本系統將與整體的醫院信息平臺相銜接,因此在整個開發過程中采用了原型模型的方法。系統實現過程中總共構建了3次拋棄式原型,按照OCP原則、差異化設計原則不斷進行演化,并保持與醫院現行系統的一致性[15]。最終得到一個能與醫院信息平臺有效銜接的疫情監控系統。
本系統主要部署于地區中心醫院的數據中心,通過醫院內網將各個分支節點接入到該中心醫院,實現區域網絡化覆蓋的疫情監控。其網絡拓撲結構如圖5所示。
在具體實施時需要使用醫院專線鏈路來連接中心醫院以及各分支醫院的網絡節點,并通過物理阻斷的方法隔絕外網。為了使疫情監控系統更為安全可靠,在分支醫院節點處使用基于互聯網安全協議的L2TP VPN加密通道來防止信息泄露[16]。此外,如圖5所示,中心醫院承擔了整個系統的所有流量,是系統性能的瓶頸,因此需要把中心節點的機房及其客戶端部署于數據鏈路交匯處,并提高其數據交換速率和負載能力。

圖5 系統網絡拓撲結構圖
在完成系統的設計、實現以及部署等工作之后,需要對系統相關業務功能最后的實現情況進行考察,并通過對比分析的方式驗證系統的有效性。系統的使用流程主要有三個步驟,分別為信息錄入階段、電子上報階段、疫情控制階段。其中信息錄入階段是系統整個流程的初始階段,由醫生在接診病人時將患者的相關信息以及疾病診斷結果通過疾病診斷卡界面錄入到系統中,如圖6所示。

圖6 疾病診斷卡界面
電子上報階段是相關醫療人員在完成信息錄入工作后,系統根據在數據管理層的傳染病案例字典自動地向醫生用戶發出傳染病疫情上報提示,用戶通過電子上報卡界面來填入初級疫情報告,完成此項工作后,系統將自動地分析傳染病信息,判斷該傳染病是正常可控的常規傳染病還是有潛在疫情風險的異常傳染病,這一階段如圖7所示。

圖7 電子上報卡界面
在醫療人員完成電子上報工作后則進入疫情控制階段,若系統根據其控制邏輯與相關策略發出疫情警報,則首先自動地生產疫情報告信息并向上級節點的醫療衛生機構進行匯報,然后向醫院管理者用戶提供疫情來源、傳染病種類、歷史防控方案等信息。在完成這一階段的工作后,系統將對門診數量、傳染病種類、疫情上報記錄等相關數據在后臺進行可視化展現,并提供報表打印功能,如圖8所示。

圖8 后臺信息展示界面
該醫院2018年12月3日開始使用本系統,相較于之前的傳統手寫檔案、手動錄入文件系統等方式,防疫工作中產生的文件規模總大小、單個工作人員的每月工作量等方面都有了較大的改進。為了驗證系統的有效性,以每月防疫工作產生的文件資源總大小為指標,分別選取了2018年與2019年上半年6個月的相關數據,繪制了如圖9所示的折線圖。
由圖9可見,系統投入到實際應用中后,醫院疫情監控工作效率有了極大的提高,醫院每月所能處理的數據規模提高非常顯著。

圖9 系統應用效果分析
本研究設計并實現了一種分層結構的醫院疫情監控系統,其整體架構上采用了RIA應用結構,使系統具有表現力強、更新及時等特點。在ASP.Net服務器運行環境下,選擇Entity Framework框架來完成數據管理層的實現,使用BootStrap完成系統前端界面的設計,前后端通信方式為RESTful API請求與響應模式,傳遞JSON文本以完成輕量級數據交互。系統的業務功能層主要包含用于監控傳染病數據的疫情跟蹤模塊;用于采集、整理、加工疾病信息的就診數據分析模塊;用于實現傳染病快速上報的疫情自動上報模塊;用于管理員維護、調整系統工作策略的參數管理模塊。
實驗結果表明,在地區中心醫院中使用本系統可以有效提高疫情監控工作的效率,充分利用了智能化、自動化的方法實現疫情監控工作的數據自動提取、智能上報,為醫療信息化進程提供了具備一定參考價值的解決方案。