方智 電子科技大學(xué)成都學(xué)院 計(jì)算機(jī)系
在省、市、地區(qū)各級(jí)醫(yī)院運(yùn)行的HIS 信息系統(tǒng)、電子病歷系統(tǒng)中,就診數(shù)據(jù)和檢查數(shù)據(jù)是海量的,數(shù)據(jù)的來源、結(jié)構(gòu)、格式都不一致,醫(yī)療方面的大數(shù)據(jù)具有大量、高速、多樣、有價(jià)值的特點(diǎn),采用大數(shù)據(jù)和分布式計(jì)算技術(shù)、數(shù)據(jù)倉庫技術(shù)相結(jié)合。系統(tǒng)需要從多個(gè)數(shù)據(jù)源中根據(jù)規(guī)則,提取數(shù)據(jù),并轉(zhuǎn)換數(shù)據(jù)格式,以便進(jìn)行查詢和分析,最后轉(zhuǎn)換的數(shù)據(jù)被加載到目標(biāo)數(shù)據(jù)庫,組合到數(shù)據(jù)倉庫中,用于傳統(tǒng)存儲(chǔ)和分析所用。
醫(yī)療審核與智能監(jiān)管系統(tǒng)的應(yīng)用場(chǎng)景下,要求外掛于醫(yī)院的HIS(醫(yī)院信息管理系統(tǒng)),采集HIS 中的數(shù)據(jù),進(jìn)行分析運(yùn)算,發(fā)現(xiàn)其中的違規(guī)情況。能提供給醫(yī)生事前審核和管理者事后審核,管理單位智能審核的核心功能,并能從海量數(shù)據(jù)中心分析出醫(yī)療診療趨勢(shì),從而修正和改進(jìn)現(xiàn)有的診療規(guī)則數(shù)據(jù)庫。
根據(jù)就診工作流所產(chǎn)生的一系列數(shù)據(jù)來看,醫(yī)療核心數(shù)據(jù)采集包括患者基本信息數(shù)據(jù)、醫(yī)生診斷數(shù)據(jù)、檢查項(xiàng)目數(shù)據(jù)、處方數(shù)據(jù)以及取藥記錄數(shù)據(jù)、項(xiàng)目執(zhí)行情況數(shù)據(jù)等。要求智能監(jiān)管系統(tǒng)不能干擾醫(yī)生診療行為,也不對(duì)原有信息系統(tǒng)進(jìn)行過多的改造,便可完成對(duì)行為的監(jiān)管以及對(duì)違規(guī)行為的事前提示。事前審核的處理時(shí)間不超過1秒。
傳統(tǒng)就診流程中,醫(yī)生在HIS 系統(tǒng)醫(yī)生工作站上開具檢查單或處方,系統(tǒng)直接對(duì)此信息進(jìn)行保存。而采用智能監(jiān)管流程系統(tǒng)后,在醫(yī)生從工作站提交檢查單或處方箋后,平臺(tái)從智能監(jiān)管系統(tǒng)調(diào)取監(jiān)管服務(wù),對(duì)本次診療行為進(jìn)行運(yùn)算分析,如果發(fā)現(xiàn)違反監(jiān)管規(guī)則,會(huì)將以消息形式,反饋違規(guī)原因及事項(xiàng)給現(xiàn)場(chǎng)醫(yī)生,醫(yī)生可根據(jù)提示進(jìn)行本次診療內(nèi)容修改,或保留原醫(yī)囑進(jìn)入保存環(huán)節(jié)。完成對(duì)醫(yī)生診療記錄的事前審核。醫(yī)生可對(duì)已保存違規(guī)行為進(jìn)行事后解釋和說明。同樣,護(hù)士、醫(yī)技在執(zhí)行醫(yī)囑時(shí),也會(huì)對(duì)護(hù)士及醫(yī)技的醫(yī)療行為進(jìn)行監(jiān)控和智能分析,對(duì)違規(guī)或有風(fēng)險(xiǎn)的操作予以提示。院方管理者和上級(jí)社保部門可查看全部的違規(guī)記錄和事后說明,醫(yī)生個(gè)人診療信用記錄,醫(yī)療行為趨勢(shì)分析,監(jiān)管規(guī)則邏輯和閾值編輯。事后審核的處理時(shí)間不超過24 小時(shí)。
事前審核功能只能為單次診療行為的做出違規(guī)與否的判定。為管理者提供的違規(guī)情況智能監(jiān)管,是對(duì)全部醫(yī)療數(shù)據(jù)進(jìn)行分析、發(fā)現(xiàn)其中的違規(guī)情況。某個(gè)患者數(shù)據(jù)可能會(huì)在一次診療數(shù)據(jù)上沒有違規(guī)現(xiàn)象,但結(jié)合全部的多次診療數(shù)據(jù)就能發(fā)現(xiàn)可能存在的違規(guī)情況。因此在醫(yī)生工作站的事前審核提示環(huán)節(jié)是很難發(fā)現(xiàn)的。而對(duì)于管理者事后的違規(guī)情況監(jiān)管來說,通過大數(shù)據(jù)分析的方法,這種問題就可以被發(fā)現(xiàn)。
違規(guī)數(shù)據(jù)分析則包括對(duì)醫(yī)院違規(guī)數(shù)據(jù)進(jìn)行統(tǒng)計(jì)分析,并形成報(bào)表,從中提出數(shù)據(jù),對(duì)醫(yī)生診療信用進(jìn)行評(píng)價(jià),也要包括對(duì)頻繁出現(xiàn)的共性違規(guī)數(shù)據(jù)進(jìn)行預(yù)警和分析,比如飲片的過度用藥,為管理者提供決策,通過分析和論證,從而調(diào)整管理規(guī)則中的閾值。
根據(jù)醫(yī)療大數(shù)據(jù)的分析,平臺(tái)提供醫(yī)療機(jī)構(gòu)一段時(shí)間以來的發(fā)展趨勢(shì)數(shù)據(jù),比如醫(yī)療機(jī)構(gòu)的每日就診人數(shù),某種疾病在特定時(shí)期的發(fā)病高峰,治愈某種疾病的藥物用藥和用量的發(fā)展趨勢(shì)等等。
系統(tǒng)由五大子系統(tǒng)構(gòu)成,分別是數(shù)據(jù)處理、事前違規(guī)、大數(shù)據(jù)分析審核、知識(shí)庫管理子系統(tǒng)。由基于云的自主開發(fā)ETL 工具完成對(duì)實(shí)時(shí)信息的提取、轉(zhuǎn)換和加載。系統(tǒng)采用分布式計(jì)算和數(shù)據(jù)存儲(chǔ)MongDB 服務(wù)器集群和Oracle 數(shù)據(jù)庫作為數(shù)據(jù)倉庫。系統(tǒng)提供事前提醒服務(wù)、web 應(yīng)用服務(wù)、其他接口服務(wù)等。
在數(shù)據(jù)采集上由ETL 通過數(shù)據(jù)接口在醫(yī)院的信息系統(tǒng)數(shù)據(jù)庫中進(jìn)行數(shù)據(jù)抽取,根據(jù)醫(yī)院的特定要求,設(shè)計(jì)了三種不同的采集接口方式。第一種是采用HIS 直接對(duì)ETL 工具開放查詢,這種做法不夠安全。但實(shí)現(xiàn)起來最簡(jiǎn)單,效率最高。第二種是由中間庫連接醫(yī)院HIS 數(shù)據(jù)和ETL,在兩者之間建立一個(gè)用于數(shù)據(jù)交互的中間庫,HIS系統(tǒng)按照約定將數(shù)據(jù)寫入中間庫,ETL 工具讀取中間庫來進(jìn)行抽取數(shù)據(jù)。這種方式相對(duì)安全,但降低效率,增加多次IO 讀寫。第三種是導(dǎo)出數(shù)據(jù)包方式來連接醫(yī)院信息系統(tǒng)數(shù)據(jù)庫和ETL。將HIS 系統(tǒng)數(shù)據(jù)按約定導(dǎo)出成數(shù)據(jù)文件,再導(dǎo)入中間庫,ETL 再進(jìn)行提取。這種做法安全但效率有損。
數(shù)據(jù)運(yùn)算任務(wù)經(jīng)過拆分后,交給規(guī)則引擎來進(jìn)行運(yùn)算處理。規(guī)則引擎類設(shè)計(jì)了引擎編號(hào)、狀態(tài)為屬性,并編寫啟動(dòng)服務(wù)()、啟動(dòng)服務(wù)()、載入規(guī)則()、啟動(dòng)運(yùn)算()等方法。將監(jiān)管規(guī)則直接讀入內(nèi)存來提高服務(wù)性能。調(diào)度類設(shè)計(jì)了運(yùn)行狀態(tài)屬性,并編寫采集數(shù)據(jù)()、保存數(shù)據(jù)()、接收數(shù)據(jù)()、分配任務(wù) ()、保存任務(wù)結(jié)果()等方法。
大數(shù)據(jù)分析的結(jié)果信息類主要包括規(guī)則類、違規(guī)信息類、單據(jù)信息類、單據(jù)明細(xì)類、患者信息類。知識(shí)庫管理主要設(shè)計(jì)對(duì)基于中華藥典、國家中醫(yī)藥管理局?jǐn)?shù)據(jù)等頒布的基礎(chǔ)數(shù)據(jù)庫、醫(yī)用材料數(shù)據(jù)庫、疾病診斷數(shù)據(jù)庫、醫(yī)療檢查服務(wù)項(xiàng)目數(shù)據(jù)庫、臨床知識(shí)庫等的導(dǎo)入、編輯、更新、梳理等。其中臨床知識(shí)庫是本系統(tǒng)的核心數(shù)據(jù)庫部分,根據(jù)臨床知識(shí)庫來對(duì)診療數(shù)據(jù)基于規(guī)則作出判斷,篩選偏離常規(guī)診療的項(xiàng)目,發(fā)現(xiàn)過度和缺失醫(yī)療行為。
在規(guī)則引擎分析之前,有規(guī)則編輯器來完成業(yè)務(wù)流的編輯,從而生成Fenix 和監(jiān)管規(guī)則。例如在載入待審核數(shù)據(jù)后,順序做出是否兒童,是否新生兒,是否疾病與年齡吻合,是否治療方案與年齡吻合,是否藥物耗材與患者年齡吻合并做出對(duì)應(yīng)的違規(guī)信息提示。
本系統(tǒng)采用分布式并行計(jì)算的方式進(jìn)行任務(wù)分配和執(zhí)行計(jì)算??梢栽诙嗯_(tái)服務(wù)器上部署規(guī)則引擎服務(wù),也可以在一臺(tái)上部署多個(gè)引擎[2]服務(wù),并采用多端口標(biāo)識(shí)服務(wù)進(jìn)程。在部署過程中,設(shè)計(jì)配置文件方式,當(dāng)數(shù)據(jù)源更換時(shí),僅需改變數(shù)據(jù)配置文件即可。配置文件以通用的XML 方式和Json 格式存儲(chǔ),便于數(shù)據(jù)交互。審核結(jié)果數(shù)據(jù)的接口實(shí)現(xiàn)上,可以支持查詢某一條診療單據(jù)數(shù)據(jù)是否違反規(guī)則,支持查詢某條問題單據(jù)和違反規(guī)則的相關(guān)沖突記錄、支持某條問題明細(xì)和違反規(guī)則的相關(guān)沖突記錄,支持查詢某條問題明細(xì)違反所涉及的臨床知識(shí)信息。數(shù)據(jù)庫方面在審核結(jié)果表上包括單據(jù)ID、明細(xì)ID、規(guī)則編碼、審核時(shí)間、規(guī)則提示信息、記錄、組編碼、臨床信息提示、疾病臨床提示、原文提示編碼等字段。
系統(tǒng)測(cè)試包括功能和性能測(cè)試。本系統(tǒng)測(cè)試主要是利用黑盒測(cè)試方法來進(jìn)行系統(tǒng)測(cè)試,測(cè)試保證覆蓋全部在需求文檔中的全部功能點(diǎn),并采用selenium 和python 技術(shù)方案進(jìn)行自動(dòng)化測(cè)試核心業(yè)務(wù)功能。系統(tǒng)性能測(cè)試則主要依賴自動(dòng)化工具進(jìn)行場(chǎng)景模擬和并發(fā)、壓力、負(fù)載、安全性方面的測(cè)試。測(cè)試結(jié)果符合預(yù)期。