喬臻,袁駿毅,蔡維明
上海市胸科醫院(上海交通大學附屬胸科醫院) 信息科,上海 200030
門診運營管理是醫院管理的重要環節,管理對象包括應對就診高峰、提升掛號預約機制、合理分配專家、診室和檢查資源。目的都是為了滿足門診就醫需求,緩解就醫難,提高患者就醫的診療水平[1]。為此,亟須設計一套門診運營監控系統,以便管理人員能夠實時掌握門診運行相關的各項監控數據。本文運用商業智能技術,從數據平臺中生成運營監控數據,并以圖形化方式進行展示,同時利用醫院微信內部服務號向門診管理者推送監控告警信息,以便及時干預,消除門診流程中的瓶頸。
門診運營監控系統架構如圖1所示。首先利用SQL SERVER數據庫的發布訂閱機制,將生產系統數據實時同步到數據平臺的ODS層;隨后建立門診監控數據模型,通過ETL工具每隔一定時間從生產系統訂閱庫(數據平臺的ODS層)中增量抽取運營監控數據,保存到數據平臺CDR(臨床數據中心)中;再通過CDR服務器上的數據庫作業,定時將運營數據推送到門診運營監控系統數據庫中;最后由系統UI界面網頁,以及微信實時告警程序定時從門診運營監控系統數據庫中獲取監控數據,分別以圖形化界面和微信消息推送的方式展示運營監控信息[2]。

圖1 門診運營監控系統架構
門診運營監控系統主要監控對象包括診間掛號、候診、預約情況,檢查等候、預約情況,醫生出診、診室閑置情況,以便合理分配醫生、診室和檢查資源。基于醫院數據平臺的門診運營監控系統,由圖形化展示網頁,以及微信告警程序構成,其功能結構設計,如圖2所示。

圖2 門診運營監控系統總體功能架構
1.2.1 圖形化網頁
圖形化網頁,每隔15 min從門診運營監控系統數據庫中抽取數據,并以圖表的形式在首頁進行展示,實際效果如圖3所示。
而各門診科室、診室的業務詳細信息,各檢查科室的業務詳細信息,則在下級網頁中進行展示,實際效果如圖4~5所示。
1.2.2 微信告警程序
微信告警程序,用于實現較為緊迫或重要數據的微信端實時推送,包括門診候診峰值告警、檢查等候人數峰值告警、門診空閑診室提醒、門診醫生遲到早退情況簡報等信息。對于告警類消息,需要提前設置峰值,微信告警程序每隔30 s查詢一次監控指標數值,如果超過峰值,則立即調用微信公眾號消息推送接口,向管理人員手機發送告警消息;而對于簡報類消息,則在每天固定時間段,查詢數據庫生成簡報信息后,通過微信公眾號發送至管理人員[3]。微信告警消息推送效果如圖6所示。

圖3 圖形化網頁主界面

圖4 圖形化網頁門診業務明細

圖5 圖形化網頁檢查業務明細

圖6 微信告警消息推送
CDR立足于醫院已有的信息系統,將封閉在多套孤立信息系統中的醫療數據釋放出來,實現了物理集中;然后通過對數據的離散化處理,轉變成各種有價值的信息,以幫助醫院實現持續的質量改進和服務創新[4-6]。
在CDR建設過程中,將對醫院業務系統進行數據分析,參考HL7 RIM模型把業務流程中的每一個活動事物所記錄的信息及各種原始文檔統一到數據實體CDR中,形成各領域內的數據模型,保證CDR數據的顆粒度足夠細,用于支撐對醫療過程的精細化管理,集成業務流程中的每一個活動事物所記錄的信息及各種原始文檔記錄全部集成到統一的數據庫中。圖7示意數據實體CDR邏輯模型的構建過程,遵循HL7 V3 RIM模型,并做適當裁剪與補充[7-9]。

圖7 CDR數據實體模型構建過程
醫院數據平臺需要實時地從業務系統抽取數據,為了使業務系統在數據捕獲的時候影響最小,本文采用對業務系統先進行數據庫復制,然后在復制的數據庫上啟用變化的數據捕獲(Change Data Capture,CDC)機制,最后通過ETL工具將數據寫入CDR數據庫。從實踐效果來看,該方案可以最小化對生產業務系統影響,并支持實時數據捕獲[10-12]。具體實現架構圖,見圖8。

圖8 CDR對業務數據捕獲技術架構
本文采用Bootstrap作為圖形化網站底層組件,并且為每個組件設計了模板,以確保整個Web網站的風格一致。同時Bootstrap作為響應式框架,無論系統從筆記本轉移到桌面個人電腦,還是從個人電腦轉移到平板電腦上,都能通過響應式布局自動識別,以超快的速遞與效率適應不同平臺間的差異。
前端圖形化展示,則采用HighCharts組件實現。首先作為純JavaScript編寫的圖表組件,能夠兼容當今大部分瀏覽器,包括Safari、IE、火狐等;其次由于其支持豐富的圖表類型,包括曲線圖、區域圖、柱狀圖、餅狀圖、散狀點圖和綜合圖表等,能夠很便捷地在Web網站中實現交互性圖表的展示;最后作為開源組件,能夠根據不同應用場景,實現定制功能來滿足業務需求[13-14]。
微信告警消息推送能夠滿足門診管理部門對門診業務運行狀況的實時掌握,提供輔助決策的作用。該程序最重要的是實現定時推送功能,本文采用自定義計時器委托,并在Controller的Index方法中開啟新線程,將計時器委托作為參數傳遞給線程的ThreadStart()方法,來實現告警消息的實時查詢和推送。計時器委托方法結構為一個死循環,不停獲取系統時間,當系統時間與設置的告警消息查詢推送時間一致時,則調用查詢邏輯,如果查詢到告警消息,則實時向微信企業號消息推送應用中預設的用戶或用戶群體發送消息。
本文設計的門診運營監控系統,在傳統的基于生產系統或者基于數據庫的醫院運營狀態監控系統基礎上,對系統架構進行了優化,在生產系統復制庫、CDR庫上啟用CDC機制,并通過ETL工具將數據寫入門診運營監控系統,數據庫,以避免對生產系統、數據平臺數據庫造成頻繁的查詢壓力,同時系統本身的查詢效率也非常高效。此外,除了傳統的圖形化展示方式,還針對需要重點關注的監控信息,利用醫院微信內部服務號消息推送服務,實現了告警信息的實時推送,方便管理人員第一時間掌握門診運營狀態的危機瓶頸,及時進行調控,改善門診服務能力[15-16]。