李 愷 呂尋偉
(北京懷柔醫院 北京 101400)
醫院信息系統的開發、應用,經過多年的歷程之后正向廣度和深度發展,達到前所未有的新高度、新水平,主要表現在建立大規模的“以病人為中心”,具有網絡分布、數據集中、一體化設計和數據共享等4個基本特征的一體化醫院信息系統,各應用軟件服務商獨立開發眾多系統,但缺乏建設主線,各系統各自為政,導致醫院的整體信息系統缺乏融合,無法充分發揮作用。
隨著現代醫療信息化的普及與發展,越來越多的現代化臨床設備被引入到診療過程中,各類應用系統日趨豐富繁雜,系統間的數據關系、數據流向、接口實現等日趨復雜且缺乏有效的監控和統一的調度,給實際應用帶來一系列的問題。對于醫院管理者和信息管理者,院內信息系統相對獨立、數據分散,“信息孤島”問題嚴重,在推行分級診療政策、探索互聯網醫療的過程中,醫療數據的互聯互通成為最大障礙。臨床數據發布中心項目的主旨在于促進醫療資料的收集與共享,為患者提供客觀、連續的個人病歷資料,為醫護人員全面準確地提供患者醫療信息,實現醫聯體內患者病歷信息的互聯互通,為電子處方推送、異地就診、遠程會診、居民健康檔案奠定基礎[1-4]。
Hadoop是能夠對大量數據以一種可靠、高效、可伸縮的方式進行分布式處理的軟件框架,大幅度提升數據處理程序開發及運維的效率。利用成本比較低的中低端PC級服務器集群輕松存儲和分析PB級別的海量數據。Hadoop生態系統中集成大量的工具和組件來滿足不同計算和存儲需求,如HDFS分布式文件系統、HBase列式數據庫、Hive數據倉庫、Mahout機器學習等,可以方便地進行數據存儲和分析計算。采用Hadoop中分布式文件系統HDFS和分布式列式數據庫HBase進行數據存儲,每份文件存儲至少3份,有效保證數據的可靠性。基于Spark和分布式消息隊列(KAFKA),實現具備實時計算能力的并行計算框架及任務的并行調度,提升臨床數據中心的運行效率。采用多個機器節點組成的服務器集群,來構建分布式的存儲系統,通過萬兆網卡實現節點間的高速數據交換。Hadoop共有3種角色節點,分別為NameNode、CMNode和DataNode,其中NameNode負責任務調度和元數據存儲,CMNode負責基群監控和管理,DataNode負責數據存儲和計算。為保證系統的高可用性,NameNode采用2臺機器進行主從備份,CMNode使用1臺機器,即使宕機不影響集群使用,其他節點作為DataNode,提供數據冗余存儲和分布式計算能力。在Hadoop集群上端,分別是數據中心服務平臺和應用服務器,通過主從備份方式部署,為外部客戶端提供服務[5-6]。
臨床數據中心的數據采集分為兩個環節:采集歷史數據和增量數據。歷史數據采用Hadoop ETL組件Sqoop,將關系型數據庫的歷史數據一次性導入到 Hadoop 及MySQL中,由于Sqoop是通過 MapReduce 作業來實現的,而MapReduce是一種批處理方式進行數據傳輸,難以實現實時數據的導入和導出,加上增量數據業務繁瑣,如修改后的數據、多服務器多數據源聯合數據采集的方式,普通的ETL難以滿足需求,所以增量數據需要借助二次開發的ETL來完成。抽取、轉換、裝載(Extract-Transform-Load,ETL)作為數據處理引擎,會對從數據源流入的數據進行清洗換轉化,再將處理后的數據傳送至臨床數據中心的數據倉庫。采用與數據庫底層存儲方式無關的ETL,能夠實現復雜的數據清洗功能并降低數據庫系統的壓力[7-9]。
臨床數據發布中心使用Hadoop、HBase、ETL等大數據技術,全面收集醫院信息系統(Hospital Information System,HIS)、影像存儲與傳輸系統(Picture Archiving and Communication System,PACS)、檢驗信息系統(Laboratory Information System,LIS)、電子病歷系統(Electronic Medical Records,EMR)以及各類小型醫療信息系統的數據信息;通過大數據處理引擎,對數據進行有序化處理,建立患者統一索引,形成患者就診記錄和報告的有序關聯,構成臨床數據發布中心,為數據的挖掘利用提供基礎,見圖1。

圖1 臨床數據中心體系架構
患者、醫務人員、醫院管理者以上問題實際上是數據管理和數據利用問題。目前醫院的數據量級已經達到大數據的規模,應該由信息化向數據化轉變;由分散信息向聚合數據的轉變;由單一的面向業務的數據展示,向數據整合利用與價值輸出轉變。臨床數據發布中心以醫院現有的信息系統為基礎,基于大數據技術,通過互聯網、移動互聯網、APP 等主流技術和終端,充分釋放數據的價值,喚醒沉睡在各個臨床系統中的數據。
臨床數據發布中心的數據來自各業務系統,通過ETL工具、虛擬打印技術、高拍儀、影像采集工具等技術手段收集各類系統的數據,見表1。

表1 臨床數據發布中心數據來源及類別

表2 臨床數據發布中心數據采集方式及時間
4.4.1 源數據 隨著衛生機構信息化的發展,大大小小的系統從規范到紊亂,沉淀下來的數據不下幾百TB。此外有的系統自身具有災備的能力,有的則僅此一份、沒有備份,從數據安全的角度考慮,數據一旦丟失或毀壞后果嚴重。因此,當數據再次整合時需要從存貯成本、數據價值兩個方面對入庫數據進行評估。存貯方面,已具備一個或多個副本的存儲,數據再次聚合時需要減少多個副本的重復出現。數據價值方面,將具有利用價值的數據收錄到臨床數據發布中心,如針對處方數據、檢查數據、檢驗數據、病歷數據、醫囑數據等有價值歷數據進行采集和處理。
4.4.2 網關服務 源數據的數據類型多樣,可大致分為結構化數據、非結構化數據兩種。常用的數據獲取方式主要有JDBC、FTP、共享目錄、虛擬打印、掃描等。數據處理過程分為以下幾個步驟:(1)索引數據。Hbase最核心的工作不是表設計,而是行主鍵的設計,在Hbase中定位某條數據或某區域的數據都是通過行主鍵來定位的,由于Hadoop集群的優勢是數據分散計算、分散存儲,互不影響,而數據為什么能平均分散在各個節點中,取決于行主鍵的設計,行主鍵的來源與業務需求息息相關,每條進入到Hbase的數據都需要一個行主鍵,可理解為索引,而該索引會存儲到MYSQL中,便于快速找到自己需要的數據。(2)結果數據。檢驗報告結果、檢查報告結果等結構化數據會以增量和全量的形式進入寫到Hbase。(3)非結構化數據。檢驗版式文件、檢查版式文件、病歷版式文件等會以昂和全量的形式進入寫到Hbase。(4)科研數據。將科研用到的數據通過Kafka消息推送給科研平臺,科研平臺再進行針對行分析、處理。(5)緩存數據。為優化用戶使用體驗及響應速度,部分數據需要進行臨時緩存,如影像數據和分析數據。
4.4.3 數據庫 數據會被分別寫入到MySql和HBase數據庫中,兩者相互補充彌補各自的不足:MYSQL用來支持聯機事務處理過程負載(OLTP Workload),就是大量的單行查詢。MYSQL本身不是分布式設計,即便使用傳統的分表做法也無法與分布式的大數據運算相比。集成HBase的Hadoop是用來處理OLAP workload的,就是大量的單行查詢。數據分析是Hadoop的優勢。
4.4.4 應用服務 當數據被合理分配在各自的適當位置,數據利用就簡單便捷,如患者的移動APP應用、臨床和區域的患者統一視圖系統等在數據質量和數據體驗上與以往基于關系型數據庫模式都有明顯的提升。
臨床數據發布中心通過管理控制平臺進行集中的配置管理,包括控制臺、信息發布管理、數據質量控制、報表管理等數據服務,對臨床數據發布中心多種數據及應用的管理配置與控制。
患者統一視圖為醫院管理者和臨床醫生提供患者信息全面展示、資料查閱功能,如可以通過統一視圖所提供的全景資料快速獲取患者的病歷、檢查檢驗資料等診療數據。統一視圖提供就診視圖和分類視圖兩種高效的病歷瀏覽方式。就診視圖按患者就診時間方式進行病歷瀏覽;分類視圖可以結合報告類型和時間,按照報告類型針對性瀏覽。有PC版本和Pad版本,可嵌入EMR、HIS等集成使用。
4.7.1 基本服務 臨床數據發布中心的患者端移動 APP 支持iOS、Android 主流手機平臺;基于發布中心向患者開放的數據類別,圍繞病歷資料,為患者提供基于病歷信息的查閱瀏覽功能。(1)患者身份驗證。患者注冊并登錄APP后,填入身份信息和醫院的就診卡號實現就診卡的認證和綁定,以便獲取病歷信息。(2)最近就診信息快捷查看入口。在首頁直觀列出患者最近就診的科室和診斷信息,顯示最近用藥的處方信息;點擊可以查看對應的詳細信息。(3)家庭健康檔案管理。患者可以建立多個健康檔案,綁定家人的就診卡號,實現對家人病歷信息的獲取和查閱,對家人的健康情況進行關注和查閱。(4)就診記錄。患者可以查閱自己在醫院的就診記錄,根據其就診時間從新到舊的顯示就診信息記錄;點擊可以查看該次就診的詳細信息。(5)就診詳細信息查閱。就診詳細信息可以顯示某次就診的類別、日期、科室和就診醫生;顯示該就診的病歷、處方、檢驗、檢查等報告。點擊可以查看各類報告的詳細內容。(6)報告查閱。檢驗檢查報告可以顯示該份報告的電子版內容;影像類檢查,可以查看影像圖像。(7)分類查閱。檢驗檢查報告提供分類視圖,可以分類展示患者就診記錄中各類別的報告,可以按照病歷、處方、檢驗、檢查等類別進行針對性的瀏覽。(8)病歷分享。對某個報告進行分享,支持分享到 QQ好友、微信好友、郵件等。(9)就診醫生。可以查看患者就診過的醫生列表,點擊某位醫生可以查看這位醫生為其診斷的詳細記錄。
4.7.2 擴展應用服務 臨床數據發布中心面向多應用場景的應用擴展機制,可以在患者端擴展以下應用服務。(1)智能可穿戴設備接入。接入指定品牌的智能電子血壓儀產品,實現血壓測量后自動上傳,將測量記錄顯示在移動 APP 的患者端。(2)院內就診導引。在移動APP 的患者端加入院內就診導引模塊,實現在 APP 內查看院內的路線圖、樓層分布等。(3)患者滿意度調查。通過移動 APP 進行患者滿意度調查。患者可以通過移動 APP 患者端對最近就診進行滿意度評分。(4)健康宣教。在移動 APP 患者端展示醫院的新聞動態和健康宣教內容。(5)移動病案復印。患者通過移動 APP 進行病案復印的申請、繳費,醫院采用快遞的方式將復印后的病案送達患者。(6)醫聯體課題管理。如已開展醫聯體慢病課題,通過移動 APP 進行展示,借助APP的慢病管理入口告知患者疾病相關信息和健康宣教內容。(7)網絡預約與結算。患者可以通過移動APP進行預約掛號和繳費。其他需要繳費的業務使用移動 APP 進行支付結算。
臨床數據發布中心的醫生端移動 APP 支持 iOS、Android 主流手機平臺;發布中心向醫務人員開放的數據類別,具有為醫務人員提供患者病歷信息的查閱瀏覽和檢索功能。一是就診信息同步,提供與醫院信息系統一致的就診患者列表,可以查看患者的就診類型、時間和患者姓名、年齡等基本信息及其詳情。二是就診記錄,提供患者詳細就診記錄信息的查閱,根據患者就診時間從新到舊的顯示就診信息記錄;點擊可以查看某次就診的詳細信息。三是篩選功能,在就診患者中按就診類型、時間進行篩選。四是搜索功能,在就診患者中按患者ID或診斷信息進行搜索。五是分類視圖,分類展示患者就診記錄中各類別的報告,方便醫生按照病歷、處方、檢驗、檢查等類別進行針對性的瀏覽。六是就診詳情,提供某次就診的類別、日期、科室和就診醫生等就診詳細信息的展示;顯示該次就診的病歷、處方、檢驗、檢查等報告。點擊可以查看各類報告的詳細內容。七是查看報告,醫務人員可以查看電子版檢驗、檢查、病理等報告;影像類檢查還可以查看影像圖像。八是分組功能,提供患者分組功能,根據患者不同的屬性、維度進行分組管理。在患者列表中通過關注患者將其分配到某個分組中。九是臨床隨訪擴展應用,如果開展有臨床隨訪課題,通過醫生端二維碼掃碼方式邀請患者入組,入組后進行患者隨訪跟蹤,按照隨訪計劃分發隨訪問卷給患者填寫。十是常用工具和知識庫擴展,提供藥品庫、法律法規庫、醫療護理技術操作常規、治愈好轉標準庫知識庫以及常用醫學計算公式。
經過1年的調研和方案研究,北京懷柔醫院2018年年初開始進行基于大數據平臺的臨床數據發布中心項目調研、規劃、研發與建設,于2018年10月投入試運行。此APP不僅增強了患者病歷資料的獲得感,還為每個患者建立一個可以隨時隨地訪問的診療清單,在其中存儲X光、核磁共振、CT等檢查的歷史資料。患者不論是在基層醫療單位還是在大型醫院就醫,醫生都能夠及時了解患者的過往病史,減少大量重復性的醫療檢查,不僅提高診療效率,還能節省患者的開支,也使患者在不同的醫療機構之間獲得連續的診療服務,從而促進城市社區和農村衛生服務體系建設與協調發展。醫生還可通過臨床數據中心,在院前急救過程中及時獲取患者的診療史、過敏史等信息,避免因患者病史不清楚而耽誤搶救時間。后續還有許多便民惠民的功能正在規劃和開發。如近期已開發、還未上線的病案復印業務,患者可以通過APP 提交病案復印申請并在線完成付費,醫生審核、復印后,直接通過快遞的方式郵寄給患者,為患者免去來回奔波及排隊等候的麻煩,非常便捷。APP最終將實現以患者為中心,覆蓋診前、診中、診后全流程的服務體系,讓患者足不出戶,就能享受到優質的醫療服務。
臨床數據中心通過基于電子病歷的醫院信息平臺數據集成,支持醫院信息系統中縱向和橫向的數據交換及信息共享。醫院內部患者連續、準確的電子病歷信息是高質、高效診療過程的基礎,而在醫院外需要及時向區域人口健康信息平臺提供診療記錄和檢查檢驗數據。基于臨床數據中心完成醫療信息數據整合,可實現對各院區分散在不同地域、不同系統的臨床數據和個人健康數據的匯聚和梳理,搭建起大數據中心,同時為醫院的檢查檢驗結果共享、運營數據分析及再利用提供支持,從而提升醫院診療質量,協助醫院進行臨床科研決策。建設開放式臨床數據中心,將醫院內部或者醫院集團間甚至是一個地區的各級醫療機構的非結構化數據以標準的的方式接入并且以靈活的方式存儲,以患者為中心、以患者的診療時間為軸線統一展現,實現單個體醫院內部、醫療集團之間、甚至是地區級、區域級醫療結構之間數據共享,可減少重復檢查,改善患者就醫體驗,也有利于提高醫療質量與效率。