曲藝



摘要??? 隨著醫療行業電子病歷(Electronicmedicalrecords,EMR)數據的不斷累積與其科技化水平和信息化程度的不斷提高,傳統基于知識的專家系統逐漸暴露出知識庫完整性不足、更新速度慢和推理機無法推斷新知識等缺點。本文為了解決這些問題,設計并實現了一個基于電子病歷并應用機器學習算法的診斷決策支持系統(ClinicalDecisionSupportSystem,CDSS)。
【關鍵詞】電子病歷 機器學習 診斷決策 支持系統
1 概述
隨著醫院信息化建設的不斷推進,現如今醫院信息系統(Hospital Information System,HIS)建設都是以電子病歷系統(Electronic medical records system,EMRS)為核心,并在此基礎上集成擴展醫學影像系統(Picture Archiving and Communication Systems,PACS)、檢查/檢驗信息系統(Laboratory Information System,LIS)和臨床信息系統(Clinical Information System,CIS)等,最終實現了醫院信息化建設的信息共享與系統整合。而診斷決策支持系統則一直是國內外研究與應用的熱點,診斷決策支持系統是指能夠為醫生在診斷決策過程中通過人機交互方式提供輔助醫學支持的計算機應用系統。大量研究表明診斷決策支持系統可以有效解決臨床醫生在疾病診斷過程中知識的局限性問題,減少人為疏忽和不必要的醫療資源的消耗,并相對降低醫療費用,幫助醫院提高工作效率,并且為醫療質量提供保障。
2 系統需求分析
本文設計實現的基于電子病歷的診斷決策支持系統給醫院提供了一種新的就診模式,即在線就診,在線就診可以很好地解決中國醫療資源長期屬于緊缺狀態的問題。在中國很多患者來醫院就診不方便,掛號、候診以及去醫院的時間往往可能耽誤一整天,外地的患者更是苦不堪言,所以診斷決策支持系統提供的在線就診服務就可以解決上述問題,并減少交通和時間成本,避免患者來回奔波。在該診斷決策支持系統中使用對象是醫院,但是服務對象卻是患者,所以該診斷決策支持系統需要具備一定的用戶管理功能;同時它還需具備電子病歷管理和維護的功能,包括創建病歷、刪除病歷、修改病歷和查詢病歷等基本功能;在具備了一定電子病歷數據的基礎上,基于電子病歷的診斷決策支持系統通過運用機器學習算法將為患者提供核心的線上就診服務,具體的服務包括:人工智能診斷和醫生診斷服務,同時還為醫院提供更新智能診斷分類器的功能,幫助醫院在電子病歷數據量不斷增長的未來,可以及時提高智能診斷分類器的診斷準確率。
3 系統概要設計
3.1 系統架構設計
基于電子病歷的診斷決策支持系統主要由用戶管理模塊,電子病歷模塊和診斷決策(數據預處理、模型訓練、模型預測)模塊組成。為了使該系統具備可擴展性,本文還提供了一個模型更新模塊,即通過定時輪詢數據庫,判斷數據庫中電子病歷數據增量n是否達到診斷決策系統設置的閾值β,一旦達到該系統設置的閾值,就可進行主/副本預測模型的更新切換,系統架構如圖1所示。
在該架構中用戶通過用戶可視化界面與系統后端和數據庫進行電子病歷交互操作,其中核心方法為創建病歷create()與診斷病歷diagnosis()。而系統的診斷決策模型是將機器學習算法進行了落地應用,在模型預測階段,首先用戶可以通過/elec_record/create接口創建其電子病歷,然后通過/diag_decision/ai_diagnosis接口進行智能診斷,在智能診斷前需要通過特征選擇算法選擇出的特征向量將病歷數據進行轉換,然后可以完成疾病診斷功能。而在模型構建階段,該系統通過數據預處理模塊定時輪詢病歷數據庫的數據增量,來決定是否重新全量加載電子病歷數據,然后進行模型訓練和相應的模型更新功能。
3.2 數據庫設計
本文設計實現的基于電子病歷的診斷決策支持系統數據庫采用Mysql,系統的后端開發采用Python編程語言和Flask框架,前端則采用當前主流的前端框架Angular,機器學習算法則采用sklearn為主要類庫。為滿足診斷系統病歷管理和診斷的功能性需要,我們設計了電子病歷表,如表1所示。
4 系統詳細設計與實現
4.1 用戶管理模塊
基于電子病歷的診斷決策支持系統需要提供用戶管理模塊,該模塊目前需要具備注冊、登錄、注銷、配置個人信息等功能。用戶注冊后才能使用本系統,用戶注冊時會有兩種用戶角色的選擇:醫生、患者。其中醫生角色負責給患者進行線上診斷和定期維護患者的電子病歷和智能診斷模型;而患者角色則只需要管理好自己的電子病歷,按需進行線上就診即可。醫生或患者用其賬號密碼進行登錄,不同的角色會跳轉到不同的界面。醫生或患者在其退出該系統時可以選擇對登錄狀態進行注銷。醫生或患者可以進行個人基本信息的設置。
4.2 電子病歷模塊
電子病歷模塊主要由創建病歷、刪除病歷、修改病歷、查詢病歷和確診病歷等功能組成,操作界面如圖2所示。患者可以通過/elec_record/create接口創建病歷,一份病歷是患者的單次就診記錄,患者可以通過/elec_record/update接口對其病歷進行修改,但是一旦病歷被其責任醫生確診,則該病歷將無法修改。患者如果需要查詢病歷需要通過user_id查詢自己的所有病歷;而醫生可以根據其doctor_id查詢其負責的所有患者的電子病歷。而刪除病歷必須由患者和醫生雙方都確認通過后才可以刪除成功。在診斷病歷功能中,只有醫生才可以通過/elec_record/doc_diagnosis接口對其科室所負責的未確診病歷進行確診操作。
4.3 診斷決策模塊
診斷決策模塊主要由數據預處理、模型訓練、模型更新和模型預測等基本功能構成,具體診斷操作界面如圖3所示。診斷模塊首先通過數據預處理的Timer定時器定時向病歷數據庫中輪詢電子病歷增量值n,當n滿足用戶設定閾值β后,首先通過數據預處理方法將病歷數據庫中全部的病歷數據導出并轉換成相應的CSV格式,并且以CSV格式導入模型訓練。進入模型訓練后,即采用10折交叉驗證將數據集分為訓練集X_train和Y_train并以此來訓練隨機森林集成分類算法模型,訓練完后通過驗證集X_validation和Y_validation來驗證評估模型,最終通過評估結果得到最優分類模型F,導入模型更新。當電子病歷數據量積累到一定規模后,可以通過模型更新,重新訓練隨機森林集成學習分類器,并提高其分類準確率。模型更新模塊將訓練好的隨機森林分類模型Fi導入阻塞隊列中,一旦Timer定時器發現電子病歷數據庫中有數據增量值n>β,就從阻塞隊列中撈出一個Fi模型,替換當前使用的疾病診斷模型Ft。而模型預測則是患者或醫生可以通過/diag_decision/ai_diagnosis接口對未確診的電子病歷進行智能診斷。模型預測模塊本質就是通過電子病歷模塊導入患者的病歷數據,經過數據預處理與ReliefF特征選擇算法生成特征向量,并依據該特征向量進行數據轉換后進入隨機森林集成分類模型中,最后獲得疾病診斷結果并返回給用戶。
4.4 系統工作流
為了更清晰的展示該診斷決策系統的核心功能,接下來將以患者創建電子病歷并得到診斷結果、醫生診斷該患者的病歷和該患者查詢醫生最終的診斷結果為例,通過圖4來描述該診斷決策系統的各模塊交互情況。首先用戶通過前端web界面向后端server發起接口為/case/create的post請求,請求提交的數據為用戶提交的病歷信息,Http server根據路由規則將請求轉發至電子病歷模塊處
理。電子病歷模塊先向診斷決策模塊發起請求,獲取智能診斷結果,接著將病歷信息存入數據庫。最后將數據庫響應結果返回給電子病歷模塊,電子病歷根據響應返回智能診斷結果,此時用戶可在前端頁面上查看到智能診斷結果。醫生在查看患者病歷信息后,可提交醫生診斷結果,即通過前端頁面向后端發起接口為/case/update的post請求,請求提交的數據為病歷id和醫生診斷結果。Http server根據路由規則將請求轉發至電子病歷模塊處理。接著電子病歷模塊將更新數據庫中病歷id對應病歷的醫生診斷字段,數據庫完成更新操作后返回響應結果,電子病歷模塊接收到響應后返回修改操作結果給前端。此時如若用戶想查看醫生診斷結果,可通過web界面向后端server發起接口為/case/getbyid?id=caseid的get請求,請求url上帶有查詢的病歷id。Httpserver根據路由規則將請求轉發至電子病歷模塊處理。接著電子病歷模塊將查詢數據庫中該id的病歷信息,接收到數據庫返回的結果后,電子病歷模塊將結果返回給前端。
5 結語
本文設計實現的診斷決策支持系統以電子病歷為基礎,結合具體的應用場景,為患者和醫生進行在線就診提供了一個良好的交互平臺,該平臺不僅可以很好的存儲一些有用的電子病歷醫學數據,還可以通過機器學習算法給患者和醫生提供智能診斷的決策幫助,并且在系統的可擴展性上提供了預測模型更新的功能,方便了使用該系統的醫院隨著電子病歷數量的不斷增長,及時對疾病診斷模型進行更新升級。
參考文獻
[1]王靜儀.淺談以電子病歷為核心的醫院信息系統[J].信息系統工程,2013,3:49-50.
[2]BernerES.Clinical Decision Support Systems:Theory and Practice[M]. Springer,2016.
[3]朱朕君.醫院信息系統中電子病歷的規范化探討[J].中國衛生產業,2011,8(12):182-183.
[4]Dwyer G, Aggarwal S, Stouffer J.Flask: Building Python Web Services[M]. Packt Publishing,2017.[5]Bram Borggreve.Beginning Server-Side Application Development with Angular: Discover how to rapidly prototype SEO-friendly web applications with Angular Universal[M]. Packt Publishing,2018.
[6]https://scikit-learn.org/stable/ index.html[Z].
[7]周志華.機器學習[M].清華大學出版社,2016.
[8]KononenkoI.Estimating Attributes: Analysis and Extension of Relief[J]. Proc of the European Conf on Machine Learning,1994:171-182.
[9]胡育.基于病歷信息的智能診斷技術研究[D].電子科技大學,2015.
[10]王昱.基于電子病歷數據的臨床決策支持研究[D].浙江大學,2016.