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