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