吳 龍 嚴曉明 陳秀娟 麥爾丹·吐魯甫 黎美秀 劉立宇
(廣東省人民醫院 廣州 510080) (生命奇點(北京)科技有限公司 北京 100089)
張 帆 高云鶴 梁會營 楊小紅
(廣州市婦女兒童醫療中心 廣州 510623) (廣東省人民醫院 廣州 510080)
為實現醫院數字化管理,各醫院配套建設了數據倉庫、商務智能(Business Intelligence,BI)系統等數據管理工具支撐醫院運維決策。隨著各臨床學科發展,物聯網、可穿戴設備的接入,各醫療系統間數據格式不一致、關聯性不強、值域不統一、數據異構等問題越發突出。在數據管理方面現有數據倉庫模式已無法滿足醫院快速發展需要。隨著高水平醫院建設的推進,醫院對運營管理風險防控、可視化監控、預測分析和精細化管理提出更高要求,數據管理需要打破不同業務系統之間的壁壘,做到數據和業務流程的融會貫通,進一步挖掘數據價值,提升醫院綜合決策能力[1]。醫療數據湖是可以存儲醫院各類原始數據的大型倉庫,其數據可供存取、處理、分析及傳輸。數據湖從院內不同業務系統數據源獲取原始數據,針對不同的入湖目的,同一份原始數據還可能有多種滿足特定內部模型格式的數據副本。數據湖中被處理的數據可能是任意類型信息,包括結構化和非結構化數據。醫院希望通過數據湖建設及數據治理提升醫療數據內涵質量,加強醫療數據價值挖掘,幫助臨床及管理部門快速獲取有用信息并通過數據分析和機器學習算法為醫院運營管理和科研業務提供支撐。
2.1.1 發展過程 數據管理經歷了數據收集、數據庫、數據倉庫階段。數據庫面向應用,每個應用可能僅需要一個數據庫,如果一個企業有幾十個應用就可能需要幾十個數據庫,由于這些數據庫之間無法進行統一分析,因此發展出數據倉庫[2]。數據倉庫不面向任何應用,而是對接到應用數據庫,通過提取-轉換-加載(Extract-Transform-Load,ETL)進行數據抽取和匯總,并按照范式模型進行分析,得到一段時間內的數據視圖。隨著數據量的增加及數據類型的變化,很多非結構化數據占比越來越多。數據倉庫很難繼續支撐,越來越多的企業希望將原始數據以真實的初始狀態保留下來,在此類需求的推動下數據湖理念逐漸形成。
2.1.2 定義 數據湖(Data Lake)一詞最早由美國互聯網企業于 2011 年提出[2],其最早定義為以原始格式存儲數據的存儲庫或系統,是企業級數據解決方案。隨著大數據技術的融合發展,數據湖不斷演變,匯集了各種技術,包括數據倉庫、實時和高速數據流、數據挖掘、深度學習、分布式存儲等技術[3],逐漸發展成為可以存儲所有結構化和非結構化任意規模數據并可以運行不同類型數據的大數據工具,是可以對大數據進行處理、實時分析和機器學習等操作的統一數據管理平臺[3]。
數據倉庫通常從業務系統中提取,在將數據加載到數據倉庫之前會對數據進行清理與轉換[4]。在數據抓取中數據湖會獲取半結構化和非結構化數據[2],而數據倉庫則是獲取結構化數據并將其按模型進行組織的[4]。數據湖適合深入分析非結構化數據,而數據倉庫因為具有高度結構化的特點而較適用于生成數據指標、報表、報告等。數據湖與數據倉庫理念不同,相對于數據倉庫注重數據管控,數據湖更傾向于數據服務。
2.3.1 數據情況錯綜復雜 醫院業務系統因為升級換代、更換廠商等原因,造成不同時期的數據在不同系統中,或者系統升級換代的過渡時期,兩套系統同時使用,難以區分業務數據重疊還是分散在不同系統中。數據在抽取、匯聚、分析過程中出現找不到、讀不懂、獲取難、不敢信等情況。
2.3.2 標準不統一 醫院同一業務在不同時期、不同系統中術語不統一,進行數據分析時處理數據、統一術語標準成為最耗時費力的工作。例如診斷、手術操作、藥品、檢驗項目等在不同時間段都存在不同標準術語集,使用這些數據就需要先統一標準集,每次處理業務數據都需要考慮同一業務在不同時期標準字典,還需進行數據格式統一和數據匯總。
2.3.3 數據使用不方便 臨床數據分布在不同系統中,各系統數據之間的關聯、條件查詢缺乏系統支撐。不同系統中的數據缺少外鍵關聯或者外鍵關聯規則不統一,導致各系統關聯規則不一致、規則復雜等。例如要查詢臨床科研數據往往要訪問多個業務系統,且各業務系統數據庫之間的外鍵規則不統一,需要關聯中間表,查詢繁瑣、執行效率低。
醫療數據湖是對醫療原始數據的匯聚,數據入湖過程中不對數據做轉換、清洗和加工,保留數據原始特征,為后期數據的加工和消費提供豐富可能。數據入湖是數據消費的基礎,必須遵從一定入湖標準。
3.2.1 發布數據標準 入湖數據要有對應的業務數據標準。業務數據標準包括數據資產目錄(數據資產目錄是元數據的集合,相當于可用數據清單)、數據定義及規則(物理表結構、字段、長度及業務屬性描述等)、責任主體,這些標準是醫院對數據的共同理解,一旦明確發布需要被共同遵守[5],如對時間域設置固定的數據長度,值域設置固定的格式“YYYY-MM-DD”即年-月-日,對性別設置標準代碼庫,業務系統中的“男”“男性”“male”“man”“1”等,都對應標準代碼庫中“男”。
3.2.2 定義數據密級 醫療數據入湖的必要條件。根據數據資產的重要程度定義不同密級,不同密級數據對應不同數據消費要求。數據密級決定了數據可以共享的級別及用戶。
3.2.3 元數據注冊 將需要進入醫療數據湖的業務元數據和數據湖的技術元數據進行關聯,包括邏輯實體和物理表的對應關系,如超聲系統數據庫網絡地址與數據湖資產目錄注冊關聯,業務表的結構、業務屬性和表字段的對應關系與數據湖技術元數據關聯。
3.3.1 概述 結構化數據是指以二維表結構表達和實現的數據,其遵循嚴格的數據格式和長度規范,通常在關系型數據庫中存儲和管理,見圖1。

圖1 結構化數據入湖流程
3.3.2 醫療數據入湖需求分析 醫療數據入湖需求分為由數據管理部門發起的主動規劃類需求和由數據消費方發起的被動類需求,每個入湖申請都要以使用目的為導向,有針對性地提出今后使用方向,如臨床科研、醫院運維管理。發起人需要提供規劃清單,并由信息系統工程師提供信息系統分組、業務對象、邏輯實體、源系統物理表和物理字段、業務屬性對應的界面截圖等信息,經過業務系統部門負責人和數據湖項目建設負責人聯合評審通過。
3.3.3 數據入湖條件和標準評估 檢查數據源是數據入湖的前提條件,檢查需要源系統的工程師提供數據字典和數據模型,并檢查源系統的物理表規范度,評估源系統的數據質量[5]。評估標準包括明確數據所有者、發布數據標準、認證數據源、定義數據密級、評估入湖數據質量,不滿足上述任一入湖標準則需要源系統完成整改,滿足要求后方可實施數據入湖。
3.3.4 實施數據入湖 數據湖管理員根據數據消費場景選擇入湖方式,原則上不要求歷史數據,數據量小且實時性要求高的場景可優先考慮虛擬入湖;要求歷史數據的且數據量大、實時性要求不高的場景,優先考慮物理入湖。數據入湖由數據湖承建商實施,并負責設計集成方案和數據質量檢測方案,同醫院信息部門一起完成測試和上線驗證。
3.4.1 概述 醫療非結構化數據包括醫學影像、音頻、視頻、生命體征檢測波形數據、可穿戴設備數據、物聯網設備數據及信息系統數據庫日志等異構的格式文件。相較于結構化數據,非結構化數據更難通過標準化理解。因此醫療非結構化數據管理不僅包含文件本身還包含對文件的描述屬性,即非結構化的元數據信息。例如文件標題、格式、所有者、設備信息等基本特征,非結構化數據入湖包括基本特征入湖、文件解析內容入湖、文件關系入湖、原始文件入湖,見圖2。

圖2 非結構化數據入湖流程
3.4.2 基本特征數據入湖 基本特征數據入湖過程中,數據內容仍存儲在源系統,數據湖中僅存儲非結構化數據的基本特征及元屬性。非結構化數據的基本特征元屬性包括文件唯一標識、文件類型(圖片、音頻、視頻)、創建者、文件內容描述、創建或發布時間、版本、標識、來院、關聯、密級等。
3.4.3 文件解析內容入湖 文件解析內容入湖是對元數據的文件內容進行文本解析、拆分后入湖。入湖過程中原始文件仍存儲在源系統,數據湖中僅存儲解析后的內容增強元數據的描述[5]。如醫院早期手寫病歷,經過掃描歸檔后,歸檔目錄中僅包含患者住院號、住院時間、住院科室信息。這些數據入湖時經過對掃描文檔的文字識別及人工鑒別后(因工作量較大,僅對有科研價值的病歷進行屬性補充),增加了患者主要診斷、主訴、檢驗檢查等信息,為后續科研檢索提供服務。
3.4.4 文件關系入湖 文件關系入湖過程中原始文件仍存儲在源系統,數據湖中僅存儲文件的關系等增強元數據。如重癥監護系統在建設時醫院尚未建設臨床數據倉庫(Clinical Data Repository,CDR)系統,導致早期積累的PDF特護單不能在CDR中關聯調用。這些歷史數據入湖時,通過重新建立元數據關聯實現特護單在CDR中調取。
3.4.5 原始文件入湖 原始文件入湖是從源端將原始文件搬入數據湖,在數據湖中存儲原始文件并進行全生命周期管理。
傳統的數據倉庫將數據存儲在關系表中,而數據湖則使用平面結構。每個數據元素分配唯一標識符,并用一組元數據標簽進行標記[6]。如一條醫囑數據在醫院信息系統(Hospital Information System,HIS)中存放在醫囑表中,并設有對應的主外鍵關聯其他表;在進入數據湖后,需要對醫囑數據進行數據湖唯一標識分配并增加數據標簽為“醫囑數據”,同時更新醫囑表的主外鍵關系。經過元數據管理,之前互不相通的業務系統數據可以實現關聯檢索。
數據資源目錄包含業務術語表關聯、標簽管理、數據分類、數據來源和全文檢索[7]。每個進入數據湖的系統都需要提供系統數據庫配置信息,表結構、表描述及表之間的關聯關系等,經過自動化和人工操作更新數據湖資源目錄[8]。自動化的工作會設計相應模型,利用機器學習實現數據自動分類和打標簽。
通過屬性錯誤檢測進行篩選,篩選出屬性錯誤的數據,根據已發布的數據標準進行清洗[9-10],如時間格式錯誤、性別描述錯誤、身份證號格式錯誤等。除屬性錯誤清洗外,數據清洗還包括不完整數據清洗,相似重復記錄清洗,都需要對數據進行不完整或相似性重復檢測并根據規則進行清洗。
建立數據中心服務器集群,通過基于Hadoop技術擴展和封裝的醫療大數據平臺解決數據多源異構問題。在數據湖生產平臺中可以看到各項作業的代碼、配置、運行狀態、運行日志等,并在實時采集系統資源狀態的同時進行智能動態分配。在該體系下集群資源得到充分利用的同時,系統穩定性也得到保證,數據安全與平臺運行都處于可知、可控狀態。增量數據更新和高效的資源利用充分保證了數據的實時性。
使用通用數據模型(Common Data Model,CDM)作為大數據平臺數據存儲的模型,覆蓋了醫院絕大部分業務與系統,將多源異構數據轉換為統一數據模型,利用數據中臺存儲數據模型轉模規則,并通過統一調度平臺執行作業的方式實現高效的數據轉換和存儲,且過程可知、可控。
利用自然語言處理(Natural Language Processing,NLP)技術實現術語的字典映射,將不同時期、不同系統中非標準術語進行標準化處理,提高數據質量和可用性。數據標準定義參照國家衛生健康委員會以及國際標準如國際疾病分類(International Classification of Diseases,ICD)第9次、第10次修訂本等,建立代碼、數據元的分類標準,依數據規范要求制定詳細的代碼標準和數據元分類標準,為數據存儲、訪問、整合提供一致性保障,見圖3。

圖3 數據湖建設框架
目前借助數據湖所要達成的目標涉及不止一種數據技術,匯集了包括數據倉庫、實時和高速數據流技術、數據挖掘、深度學習、分布式存儲等技術在內的多種技術,已經從一種“大數據存算方案”進階到“大數據存算+處理分析+資產治理+安全隱私+數據變現”一攬子方案。在數字經濟時代,從數據倉庫到數據湖不僅是數據存儲架構的變革,更是大數據思維方式的升級。數據湖能為醫院賦能,幫助醫院優化運營模型,為醫院科研提供更多維度數據分析,有助于醫院提升運營管理和科研能力。