隨著信息技術的快速發展, 我國傳染病防控工作也日益依賴于信息技術的先進性和高效性。2003年SARS暴發后, 中國疾病預防控制中心研發了中國疾病預防控制信息系統 (以下簡稱“中疾控系統”) , 內含26個子系統, 覆蓋我國各級各類醫療衛生機構和衛生行政部門, 旨在將傳染病疫情發生情況及時從醫療機構源頭采集上報至各級疾病預防控制中心, 實現傳染病防控快速響應、準確決策、有效干預的目的, 有效遏制重大傳染病疫情及群體性不明原因疾病的暴發[1]。但各級系統用戶只能作為使用者參與系統的應用, 被動地熟悉和掌握系統現有的功能, 未能獲得任何個性化定制權限, 無法使相關功能更加契合實際工作需要。
目前, 系統的省級管理員知曉突發公共衛生事件發生情況的方式有以下2種:通過查詢“中疾控系統”中的突發公共衛生事件信息管理系統 (以下簡稱“突發系統”) ;通過下級疾控機構疫情管理員電話或者短信上報。疫情接報的時間直接影響疾控部門對事件干預和處理的進度。因此, 人為定時關注系統中突發事件報告與實時監控相比, 其時效性可能存在較大差距。為此, 設計開發一套突發公共衛生事件管理輔助軟件, 實現計算機代替人工進行實時在線自動監控和采集“突發系統”中事件的基本信息并及時提醒, 可促進傳染病疫情日常監控管理工作的信息化和智能化, 有效提高疫情報告信息處置效率。
1 主要做法及程序設計思路
“突發系統”是B/S架構的Web應用系統, 各級疾病預防控制中心的業務管理員根據不同的權限可以查詢到所屬轄區內報告的突發公共衛生事件的匯總及個案明細信息。考慮不依托“中疾控系統”開發商提供數據或服務接口的前提, 采用MicroSoft.Net平臺下的WebBrowser瀏覽器控件, 開發一個可以實現對系統中相關數據頁面進行自動監控和數據采集的應用程序軟件, 改善了基于B/S架構的Web應用程序在用戶端“弱控制”的不足。基于信息安全和部署便利性的需求, 本軟件采用C/S架構, 使用MicroSoft.Net平臺下的C#語言編寫開發, 集成WebBrowser、Office API、短信平臺等多種成熟技術, 實現對“突發系統”關鍵頁面的數據抓取和應用。
1.1 設計思路
本軟件通過WebBrowser瀏覽器控件對“突發系統”的頁面進行操作和控制, 利用定時器設置定時每隔60秒模擬觸發頁面上的查詢按鈕[2], 以實現對事件管理頁面數據的自動刷新, 同時避免因長期無操作導致系統認證超時。當頁面加載執行完畢后, 根據軟件程序中默認的文檔清理算法, 解析HTML網頁格式文檔, 對當前頁面上所有的突發事件基本信息進行抓取, 然后以突發事件名稱和事件ID兩個字段作為聯合主鍵, 逐條與本地數據庫中的已有記錄進行比對, 判斷是否屬于新發的突發事件。同時啟動巡檢函數, 查詢到數據庫中的信息提醒字段標注為未提醒的突發事件, 則對用戶進行程序彈窗或者短信提醒。如未發現新事件, 軟件則自動執行循環執行以上操作直至發現新事件, 以此來實現不間斷的在線監控。最后, 通過調用Office API, 抽取突發事件的關鍵字段信息對預先植入WORD報告模板的書簽進行匹配更新, 即可自動、快速地生成報告格式文檔。
1.2 可行性分析
通過對頁面源文件的分析, 發現突發公共衛生事件列表頁面文檔為標準化的HTML文檔格式, 需要監控和采集數據的頁面由查詢條件區域和數據顯示區域組成, 具備頁面分析和數據采集利用的可能性。通過對頁面元素進行分析, 發現需要獲取的信息元素均集中在數據顯示區域事件列表的TABLE元素中, 包含有:突發公共衛生事件級別、事件名稱、報告地區、狀態、創建時間、最近修改、發病數、死亡數、審核狀態等字段。上述所有字段信息均存在頁面中每一個<tr></tr>記錄行標簽內, 每一個關鍵字段占用一個<td></td>單元格, 需要抓取的關鍵信息字段均以文本和占位符形式存儲在單元格內部[3]。
2 主要功能和成效
根據上述設計思路, 軟件開發過程中主要實現了單點登錄、頁面自動刷新、頁面數據抓取、報告自動生成四個方面的功能, 主要技術要點和實現方式具體列舉如下:
2.1 單點登錄
“中疾控系統”登錄門戶現已實行數字證書認證登錄, 插入證書介質后只需要在頁面上輸入證書口令即可實現登錄。在完成頁面加載后, 在程序中進行循環查找, 定位到ID或者NAME屬性值為“UserPwd”的INPUT標簽[4], 然后將用戶的數字證書口令進行賦值, 并在程序內部通過WebBrowser對頁面進行控制, 調用頁面表單提交函數, 完成對“登錄”按鈕提交事件函數的模擬人工觸發, 通過密碼驗證后即可登錄系統。
2.2 自動刷新查詢
突發公共衛生事件查詢頁面上設置有“查詢”按鈕, 用于查詢報告的突發事件信息。根據自動查詢的需求, 需使用程序模擬人工觸發該按鈕。頁面中該按鈕使用的是INPUT標簽, VALUE屬性值為“查詢”, onclick事件調用JS查詢函數。利用該元素的唯一屬性值篩選過濾掉其他標簽元素, 再逐層嵌套循環查找, 利用GetAttribute (“value”) 屬性在頁面中唯一定位該按鈕元素, 然后在程序內部調用單擊查詢函數, 完成對“查詢”按鈕的模擬人工觸發。完成操作后會顯示相應時間段內的所有突發公共衛生事件列表。
2.3 頁面元素抓取
突發公共衛生事件關鍵基本信息全部集中存儲于頁面中的TABLE標簽內部, 因頁面中存在多個TABLE標簽, 可以唯一定位到目標是CLASS屬性值為“tbMain”的TABLE標簽, 然后依次循環查詢CLASS屬性值為“tbMain_data”的TR行標簽, 截取行標簽內部所有單元格TD的內容, 最后利用正則表達式或者其他預設好的文檔清洗算法對內容進行篩選取值, 直至讀取到當前TABLE結束標簽后完成所有事件信息的采集。
2.4 自動填寫生成事件報告
突發公共衛生事件報告需由業務人員根據事件關鍵信息填寫生成WORD文檔并打印審批, 通過在突發事件報告模板中對需要賦值的位置插入對應信息的書簽標識, 讓程序使用Office API的相關方法, 找到模板中的書簽名, 并在書簽處寫入要插入的數據, 操作完成后便可在指定操作系統路徑下自動生成以事件名稱命名的WORD文檔。
3 討論
該輔助軟件經廣西疫情管理人員在實際工作中測試和使用, 極大地減輕了系統業務管理員的工作量。如:改進了人為監控模式存在的弊端, 實現了實時數據采集和分析、自動預警新發事件, 有效地緩解值班工作人員壓力;可快速、準確地生成突發公共衛生事件報告, 既能減少人為手工操作產生的錯誤, 又能極大地提高工作效率。該軟件雖然實現了對“突發系統”進行自動監控和數據采集的目的, 但依賴于對頁面HTML格式標簽文本的識別和抓取, 如系統開發商因業務工作需要對相關頁面進行了變更, 那么軟件也要做相應的調整, 才能保證信息獲取準確。
基于WebBrowser的突發公共衛生事件信息管理系統自動監控和告警應用軟件開發, 通過多種成熟信息技術的整合利用, 有效改進了工作模式, 提高了工作效率。據統計, 廣西現有省、市、縣級疾病預防控制中心120余家, 各地疾病預防控制機構業務工作人員均有類似的工作需求。該軟件針對性強、操作簡單, 具備大范圍推廣使用的需求和可能性。同時, 這種基于網頁數據采集的軟件設計思路為公共衛生和醫療行業各類大型網絡信息系統數據采集和二次開發應用提供了依據。
本文地址:http://murenxiang.com.cn//article/5726.html