王瑩 周玉利 顧大勇
關鍵詞:檢驗醫(yī)學;大數(shù)據(jù);機器學習;數(shù)據(jù)集成;數(shù)據(jù)治理;數(shù)據(jù)開發(fā)
0 引言
檢驗醫(yī)學作為醫(yī)學科學的重要支撐性技術學科,在疾病的早期診斷、病情監(jiān)測、預后判斷與風險評估等方面發(fā)揮著重要作用。隨著醫(yī)學檢驗實驗室自動化、現(xiàn)代化技術水平的提升,醫(yī)學檢驗數(shù)據(jù)飛速增長,日積月累產(chǎn)生了海量數(shù)據(jù)資源,其中蘊藏著大量已知和未知的臨床相關規(guī)律??蒲腥藛T通過回顧性或前瞻性研究,重新解讀醫(yī)學檢驗數(shù)據(jù)將發(fā)揮其重要價值,不僅有助于進一步了解疾病的本質,確定疾病精準診療的方法,而且有利于發(fā)現(xiàn)新型診斷標志物和持續(xù)優(yōu)化醫(yī)學檢驗項目的參考區(qū)間[1]。據(jù)不完全統(tǒng)計,臨床決策所需信息的70%來自醫(yī)學檢驗,為臨床診斷提供強有力的數(shù)據(jù)支持[2-4] 。醫(yī)學檢驗數(shù)據(jù)不僅體量巨大、類型繁多,還有特征高維和冗余等特點,傳統(tǒng)的數(shù)據(jù)存儲和統(tǒng)計分析方法已難以處理愈加龐大的醫(yī)學檢驗數(shù)據(jù)[5-7]。
目前,醫(yī)學檢驗數(shù)據(jù)主要作為一次性的臨床診斷參考以及小樣本量的研究分析,導致這種狀況的客觀原因,一方面是醫(yī)學檢驗數(shù)據(jù)量大、醫(yī)學檢驗項目參考區(qū)間相對固定的顯性信息明確,另一方面是醫(yī)學檢驗數(shù)據(jù)散落在實驗室信息管理系統(tǒng)(Laboratory Infor? mation System,LIS) 中,傳統(tǒng)的數(shù)理統(tǒng)計工具和小樣本量難以全面、系統(tǒng)地發(fā)掘海量醫(yī)學檢驗數(shù)據(jù)中蘊藏的信息。主觀原因,一方面是傳統(tǒng)科研的問題導向流程,采用“發(fā)現(xiàn)問題、形成假說、收集數(shù)據(jù)、分析數(shù)據(jù)”的模式,數(shù)據(jù)的作用是支持假說而不是用于發(fā)現(xiàn)問題或規(guī)律;另一方面是把大數(shù)據(jù)平臺或工具充當計算能力更強、存儲空間更大的數(shù)據(jù)平臺[8-13]。這些原因導致醫(yī)學檢驗數(shù)據(jù)應用方式不同程度存在四個方面的缺憾:①人為把“大數(shù)據(jù)”裁剪為“小數(shù)據(jù)”,方便使用傳統(tǒng)的統(tǒng)計分析工具,可能會錯失被裁剪掉數(shù)據(jù)所蘊含的有價值信息;②對大數(shù)據(jù)重點關注數(shù)據(jù)量的維度,卻忽略了大數(shù)據(jù)的另一重要特征——數(shù)據(jù)種類多;③數(shù)據(jù)收集僅用于一次性特定的研究目的,沒有考慮復用于其他研究,導致產(chǎn)生大量重復的數(shù)據(jù)收集、數(shù)據(jù)清洗等工作;④傾向選擇理想的數(shù)據(jù)集作為標準的機器學習數(shù)據(jù)源,這與真實世界的數(shù)據(jù)分布情況差異較大,生成的機器學習模型普適性存疑。
傳統(tǒng)的數(shù)據(jù)收集、處理方式無法滿足機器學習和大數(shù)據(jù)對數(shù)據(jù)的需求,機器學習涵蓋了廣泛的方法,旨在為計算機提供學習任務的能力。這些方法依賴于從幾乎沒有人工輸入的數(shù)據(jù)中獲取模式的算法。這與嚴格依賴人類知識來驗證模型假設和變量選擇的統(tǒng)計技術形成鮮明對比。大數(shù)據(jù)方法通常不受經(jīng)驗知識的影響,無偏見地收集和分析數(shù)據(jù),并發(fā)現(xiàn)重要的模式,支持循證醫(yī)學,通過構建相關的預測模型,從而更準確地評估疾病風險以及改善預后[14-15]?,F(xiàn)有各種醫(yī)院信息化系統(tǒng)的設計初衷主要是為了滿足醫(yī)療業(yè)務流程需要,因此,在后續(xù)數(shù)據(jù)分析與應用的需求滿足上尚存在較大差距,數(shù)據(jù)的收集和管理方面缺乏結合人工智能等高價值的數(shù)據(jù)二次利用的設計考慮[16]。傳統(tǒng)科研模式中存在的“科研構思難、數(shù)據(jù)獲取難、想法驗證難、數(shù)據(jù)處理難”等弊端,已嚴重阻礙臨床研究水平的進一步提升,亟待使用新的技術手段加以解決[17]。
本研究針對醫(yī)學檢驗數(shù)據(jù)的大數(shù)據(jù)化進行創(chuàng)新,面向機器學習對數(shù)據(jù)質量的要求,綜合考慮實驗成本和實驗目標需要,選擇近5年的全量醫(yī)學檢驗數(shù)據(jù),使用大數(shù)據(jù)技術把選定時間段的全量醫(yī)學檢驗數(shù)據(jù)系統(tǒng)化治理、開發(fā),形成時段性醫(yī)學檢驗大數(shù)據(jù),實現(xiàn)對醫(yī)學檢驗數(shù)據(jù)的高效率復用和可持續(xù)積累模式的探索與驗證。
1 醫(yī)學檢驗大數(shù)據(jù)關鍵技術
1.1 轉置數(shù)據(jù)結構
醫(yī)學檢驗數(shù)據(jù)采集、處理、存儲均依托LIS,LIS作為業(yè)務系統(tǒng)通常采用關系型數(shù)據(jù)庫,關系型數(shù)據(jù)庫具有強大的事務處理能力,盡可能降低數(shù)據(jù)冗余度,節(jié)約存儲空間,關系型數(shù)據(jù)庫的結構特點決定了其只能做簡單的統(tǒng)計分析,不能做復雜的邏輯運算?;陉P系型數(shù)據(jù)庫的數(shù)據(jù)結構不能滿足復雜的數(shù)據(jù)分析需求。隨著計算、存儲技術的發(fā)展,計算和存儲資源的成本飛速下降,在數(shù)據(jù)結構方面以空間換時間的數(shù)據(jù)寬表結構應運而生,數(shù)據(jù)寬表是一張把業(yè)務主題相關的指標、維度、屬性關聯(lián)在一起的數(shù)據(jù)庫表,數(shù)據(jù)寬表具有降低數(shù)據(jù)復雜度、結構簡單、數(shù)據(jù)完備度高、減少數(shù)據(jù)交互、數(shù)據(jù)訪問效率高和易于業(yè)務人員自主使用數(shù)據(jù)等優(yōu)點,廣泛應用于數(shù)據(jù)挖掘模型訓練前的數(shù)據(jù)準備[18-20]。
傳統(tǒng)的醫(yī)學檢驗數(shù)據(jù)結構是以患者為中心,以提供患者個體的檢驗報告為目的,構成醫(yī)學檢驗數(shù)據(jù)的醫(yī)學檢驗項目及結果以多行的形式存在,方便直觀展示患者個體各個醫(yī)學檢驗項目結果,不利于對不同患者同一個醫(yī)學檢驗項目結果做復雜邏輯運算。轉為數(shù)據(jù)寬表可以實現(xiàn)患者ID主關鍵字的所有醫(yī)學檢驗項目位于同一行,不同患者的同一醫(yī)學檢驗項目結果位于同一列??梢栽谝粡垟?shù)據(jù)表中直接對不同患者的同一醫(yī)學檢驗項目數(shù)據(jù)治理、數(shù)據(jù)開發(fā)后進行統(tǒng)計分析和復雜邏輯運算。
1.2 建立數(shù)據(jù)治理標準
數(shù)據(jù)質量是數(shù)據(jù)發(fā)揮價值的關鍵,數(shù)據(jù)治理是提升數(shù)據(jù)質量、降低數(shù)據(jù)管理成本、保障數(shù)據(jù)安全和控制數(shù)據(jù)風險的方法。醫(yī)學檢驗數(shù)據(jù)通常來自不同廠家的不同類型的設備,以實現(xiàn)醫(yī)學檢驗功能為目的,缺乏全局性的數(shù)據(jù)標準,數(shù)據(jù)類型和質量參差不齊,主要存在非結構化數(shù)據(jù)、數(shù)據(jù)格式混亂、無效數(shù)據(jù)、重復數(shù)據(jù)、錯誤數(shù)據(jù)、數(shù)據(jù)缺失等問題。大部分的醫(yī)學檢驗數(shù)據(jù)為結構化數(shù)據(jù),天然符合復雜邏輯運算需求,但數(shù)據(jù)的使用維度是面向檢驗報告,導致大量的非結構化數(shù)據(jù)混雜其中,如定性的陰性、弱陽性和陽性等非結構化文本。數(shù)據(jù)格式混亂包括定量的格式化數(shù)據(jù)中混雜“<”“>”“+”“.”“*”“中英文注解”和“NULL”等,錯誤數(shù)據(jù)包括人工錄入錯誤(如:1.00錄入1.0.0) 、年齡為負值、數(shù)據(jù)類型轉換錯誤(數(shù)值區(qū)間1~2轉為1月2日)等,無效數(shù)據(jù)包括定標數(shù)據(jù)、測試數(shù)據(jù)、系統(tǒng)無法出具檢驗項目結果的默認數(shù)據(jù)等。
醫(yī)學檢驗數(shù)據(jù)治理需要全面統(tǒng)計分析醫(yī)學檢驗數(shù)據(jù),在符合實際業(yè)務需求的前提下,建立數(shù)據(jù)清洗和數(shù)據(jù)轉換的標準。對于多值有序非結構化數(shù)據(jù)按照業(yè)務要求的順序直接轉化為有序數(shù)值,對于多值無序非結構化數(shù)據(jù),則留待后續(xù)實際使用時采用獨熱編碼(One-Hot Encoding)方式處理;對于格式化數(shù)據(jù)中混雜的非格式化符號一般采用針對性刪除的方式;對于錯誤數(shù)據(jù)根據(jù)實際業(yè)務情況核驗后的結果,采用正確的數(shù)據(jù)做替換;對于定標數(shù)據(jù)、測試數(shù)據(jù)和系統(tǒng)無結果默認數(shù)據(jù)等采用針對性刪除的方式。對于診斷結果通過統(tǒng)計分析基于不同語言、縮略方式、命名習慣等方式帶來的同一疾病的重復情況,根據(jù)業(yè)務需求對其做標準化統(tǒng)一。
2 醫(yī)學檢驗大數(shù)據(jù)實驗方案設計
大數(shù)據(jù)的基礎是數(shù)據(jù)與應用分離,把數(shù)據(jù)作為資源實現(xiàn)數(shù)據(jù)資產(chǎn)化,避免重復數(shù)據(jù)集成、數(shù)據(jù)治理和數(shù)據(jù)開發(fā),該理念貫穿數(shù)據(jù)的全生命周期。在方案設計時采用分層策略實現(xiàn)清晰數(shù)據(jù)結構、減少重復開發(fā)、統(tǒng)一數(shù)據(jù)口徑和復雜問題簡單化。
2.1 整體方案
整體方案分為三層,分別為數(shù)據(jù)應用層、數(shù)據(jù)操作層和數(shù)據(jù)來源層,如圖1所示。其中數(shù)據(jù)應用層包括數(shù)據(jù)統(tǒng)計分析、機器學習和數(shù)據(jù)展示等應用。數(shù)據(jù)操作層對數(shù)據(jù)來源首先進行數(shù)據(jù)集成,數(shù)據(jù)集成后的一個副本做行列轉置,實現(xiàn)數(shù)據(jù)結構從關系型向數(shù)據(jù)寬表轉換。通過數(shù)據(jù)洞察全面分析數(shù)據(jù)質量,根據(jù)分析結果制定數(shù)據(jù)標準。按照數(shù)據(jù)標準采用計算機程序做數(shù)據(jù)清洗和數(shù)字化轉換。根據(jù)需要做數(shù)據(jù)歸一化,通過數(shù)據(jù)服務的方式向數(shù)據(jù)應用層提供數(shù)據(jù)調(diào)用查詢服務。數(shù)據(jù)來源層主要為LIS和醫(yī)院信息系統(tǒng)(Hospital Information System,HIS)的關系型數(shù)據(jù)庫。
2.2 方法設計
在數(shù)據(jù)操作層采用整體分級模式和分段清洗模式的數(shù)據(jù)治理方法,實現(xiàn)關系型數(shù)據(jù)平滑向數(shù)據(jù)寬表轉化。
整體分級模式:數(shù)據(jù)集成、數(shù)據(jù)治理和數(shù)據(jù)開發(fā)涉及多個環(huán)節(jié),產(chǎn)生錯誤則牽一發(fā)而動全身。采用分級處理的方法來實現(xiàn)功能分工、隔離穩(wěn)定和方便實現(xiàn)的原則。主要分為數(shù)據(jù)集成、行列轉置、數(shù)據(jù)清洗和數(shù)字化轉換,如圖2所示。每一級的輸入和輸出均有對應的數(shù)據(jù)表,每一級產(chǎn)生的系統(tǒng)或人工操作錯誤不會波及上一級,從而實現(xiàn)錯誤的有效隔離。
分段清洗:數(shù)據(jù)清洗需要統(tǒng)一的策略,避免數(shù)據(jù)被多次清洗[21]。數(shù)據(jù)清洗通常采用結構化查詢語言(Structured Query Language,SQL) ,SQL功能豐富、應用靈活,但在實際應用中運行環(huán)境出于系統(tǒng)安全考慮會做相應的資源限制,如果一次清洗的字段過多,會導致清洗語句的長度或者清洗程序占用空間超出資源限制,從而產(chǎn)生系統(tǒng)錯誤。如果將源數(shù)據(jù)表拆分為多個數(shù)據(jù)表再進行數(shù)據(jù)清洗,雖然可以避免該錯誤,但在數(shù)據(jù)量較大時,拆分過程的操作復雜,效率較低。采用分段清洗模式在保持整體一致性的基礎上,通過對字段的分段實施,靈活適應運行環(huán)境可提供的資源。如圖3所示,S1、S2、……Sn為源數(shù)據(jù)表中的字段名稱,T1-1、T1-2、……T1-n為目標數(shù)據(jù)表T1中的字段名稱,“as”代表字段對應數(shù)值的簡單的復制賦值,“->”代表字段對應數(shù)值經(jīng)過SQL語句(例如Case when條件語句)處理后的結果賦值。整體清洗程序在運行環(huán)境資源許可的情況下一次性完成,如果超出運行環(huán)境資源限制,可以針對一部分字段進行清洗處理,另外一部分保持簡單賦值模式。例如第一段清洗程序只對源數(shù)據(jù)表S 中的S1、S2和S3三個字段的數(shù)值進行清洗,清洗后的結果分別賦值到目標數(shù)據(jù)表T1 中對應的T1-1、T1-2、T1-3三個字段,源數(shù)據(jù)表S 中其余字段(S4至Sn)不做處理,直接賦值到目標數(shù)據(jù)表T1中對應的(T1-4至T1-n)。在第二段清洗中數(shù)據(jù)表T1為目標數(shù)據(jù)表,已經(jīng)完成清洗的字段T1-1、T1-2、T1-3直接賦值新的目標數(shù)據(jù)表T2對應T2-1、T2-2、T2-3字段。T1-4、T1-5、T1-6三個字段的數(shù)值經(jīng)過清洗后賦值到目標數(shù)據(jù)表T2的T2-4、T2-5、T2-6三個字段。源數(shù)據(jù)表T1的剩余字段(T1-7至T1-n) 不做處理直接賦值到目標數(shù)據(jù)表T2中對應的(T2-7至T2-n),后續(xù)分段依此類推,直至完成所有字段的清洗工作。
3 實驗實施與分析
3.1 實驗環(huán)境與實驗數(shù)據(jù)
研究采用的實驗環(huán)境為商用公有云服務提供的大數(shù)據(jù)計算服務平臺Maxcomputer和大數(shù)據(jù)開發(fā)治理平臺Dataworks。數(shù)據(jù)清洗采用SQL腳本。數(shù)據(jù)為某醫(yī)院2016年10月1日至2021年09月30日的LIS和HIS中全量醫(yī)學檢驗數(shù)據(jù)及診斷結果。原始數(shù)據(jù)包括患者的ID、年齡、性別、部門(門診或住院)、檢驗日期、醫(yī)學檢驗項目編碼、檢驗結果、診斷結果共8個字段。醫(yī)學檢驗項目總計1 297項(包括部分來自不同儀器設備對相同檢驗項目的重復),醫(yī)學檢驗數(shù)據(jù)合計141 477 953條。在實驗中,把醫(yī)學檢驗數(shù)據(jù)轉化為醫(yī)學檢驗大數(shù)據(jù)。
3.2 實驗實施過程
數(shù)據(jù)集成:以年為單位,從LIS和HIS中抽取患者的全量醫(yī)學檢驗數(shù)據(jù)和診斷結果生成數(shù)據(jù)文件,刪除861 252條無效醫(yī)學檢驗數(shù)據(jù)后剩余140 616 701條醫(yī)學檢驗數(shù)據(jù)的數(shù)據(jù)文件依次導入大數(shù)據(jù)計算服務平臺Maxcomputer。并逐年核對數(shù)據(jù)總量,保證數(shù)據(jù)導入過程不存在遺漏或丟失。
數(shù)據(jù)結構轉置:以患者ID為主關鍵字、檢驗日期為次關鍵字,把對應的醫(yī)學檢驗項目和結果從多行模式轉為多列模式,每位患者在確定的檢驗日期的所有醫(yī)學檢驗數(shù)據(jù)成為數(shù)據(jù)寬表的一條記錄,如圖4所示,140 616 701 行、8 列關系型數(shù)據(jù)表轉置為4 903 891 行、1 338列的數(shù)據(jù)寬表。
數(shù)據(jù)清洗:對轉置后的數(shù)據(jù)寬表的每一列分別做不重復數(shù)據(jù)查詢,并統(tǒng)計相應的數(shù)據(jù)類型、數(shù)值型數(shù)據(jù)數(shù)值區(qū)間、數(shù)據(jù)量、錯誤數(shù)據(jù)類型等。根據(jù)統(tǒng)計分析結果和對應字段的醫(yī)學意義制定數(shù)據(jù)治理標準。按照數(shù)據(jù)治理標準針對每一列在SQL腳本中實現(xiàn)相應的措施。例如對于簡單的“>”“<”和“*”等無效字符的清除,直接采用空字符替換方式,對于結構混亂數(shù)據(jù),采用正則表達式去除非法字符,對于少量的人工錄入錯誤,采用正確數(shù)值替換的方式。
數(shù)字化轉換:對于多值有序非結構化數(shù)據(jù)第一項為0、公差為1,構建數(shù)值列對多值有序非結構化數(shù)據(jù)做相應的字符替換。
3.3 實驗結果
經(jīng)過上述處理環(huán)節(jié),4 903 891行、1 338列的數(shù)據(jù)寬表中絕大數(shù)列已轉為結構化數(shù)據(jù),極少數(shù)因為源數(shù)據(jù)標準不一且數(shù)據(jù)量較少的醫(yī)學檢驗項目結果未做處理,數(shù)據(jù)寬表每一條記錄對應的診斷結果未做處理,主要是為了保障按照疾病種類查詢的便利和靈活性。在研究思路產(chǎn)生階段快速查詢所關心疾病所對應的數(shù)據(jù)量或若干項醫(yī)學檢驗項目的數(shù)據(jù)量來決定是否有必要進行研究。在數(shù)據(jù)應用階段,可以根據(jù)研究需要,隨時檢索抽取其所包含的所有疾病類別對應的全項醫(yī)學檢驗數(shù)據(jù),在數(shù)據(jù)挖掘分析階段,不但可以繼續(xù)使用傳統(tǒng)數(shù)理統(tǒng)計工具處理進行分析,而且可以直接被各種機器學習算法讀取,而無須重復為不同的機器學習算法或不同的疾病做煩瑣的數(shù)據(jù)處理工作。通過實驗不但可以全面掌握醫(yī)學檢驗項目實際覆蓋率,而且可以分鐘級快速驗證科研構思的可行性,分鐘級完成機器學習數(shù)據(jù)源準備。
對4 903 891條記錄中每個醫(yī)學檢驗項目的檢驗數(shù)量做了統(tǒng)計,檢驗數(shù)量超過百萬的41項,其中最高項平均紅細胞體積為2 128 955,占記錄總數(shù)的43.41%,即43.41%的患者均做了平均紅細胞體積這個醫(yī)學檢驗項目。檢驗數(shù)量為50萬至100萬26項,檢驗數(shù)量為10萬至50萬142項,檢驗數(shù)量為1萬~10 萬439項,檢驗數(shù)量為1萬以內(nèi)651項。通過時段性全量檢驗數(shù)據(jù)統(tǒng)計,第一次全景展示選定時段的所有醫(yī)學檢驗項目的實際覆蓋率。
大數(shù)據(jù)可以有效地節(jié)省臨床操作和研發(fā)兩個方面的投入,本研究成果帶來了直觀的科研高效率,通過幾分鐘的檢索驗證了B淋巴母細胞瘤白血病、慢性中性粒細胞白血病、毛細胞白血病等只有數(shù)十到數(shù)百不等病例的科研構思的不可行性。只需要通過診斷結果的簡單篩選,用時幾分鐘即可具備一種疾病類型的機器學習業(yè)務流程所需的數(shù)據(jù)源。已經(jīng)生成了急性髓系白血病、慢性粒細胞白血病、甲狀腺疾病、乳腺惡性腫瘤等疾病的機器學習模型,機器學習模型不但具有較高的預測水平,預測評估結果的主要指標受試者工作特征曲線下面積(Area Under Curve,AUC)、F1- Score大部分在0.9以上;而且發(fā)現(xiàn)了一些醫(yī)學檢驗項目和某些疾病存在常規(guī)研究無法察覺的相關性,例如淀粉酶與慢性粒細胞白血病密切相關。
4 結束語
在傳統(tǒng)的臨床研究模式下,數(shù)據(jù)采集和數(shù)據(jù)處理分析均是耗費大量人力、物力的工作,嚴重制約臨床科研成果的產(chǎn)出效率。據(jù)統(tǒng)計,在醫(yī)院采用傳統(tǒng)人工模式僅在數(shù)據(jù)處理階段就需要1~2個月、數(shù)據(jù)抽取耗時5個月、科學研究約需1個月,醫(yī)護科研人員的時間大量花費在數(shù)據(jù)的準備階段[22]。有研究認為,臨床數(shù)據(jù)獲取困難且需要大量的手工處理,導致科研周期長、效率低下。合理的方式是科研人員將精力放在科研本身,節(jié)約科研人員的時間,提高科研產(chǎn)出[23]。大數(shù)據(jù)時代需要大數(shù)據(jù)思維,大數(shù)據(jù)思維強調(diào)整體性,要求用整體的眼光看待數(shù)據(jù),與個體化時代強調(diào)研究部分有代表性的數(shù)據(jù)大不相同[24]。
本研究采用了離線方式抽取2016—2021年近5 年的某綜合性三甲醫(yī)院全量臨床檢驗數(shù)據(jù),沿用了現(xiàn)存業(yè)務部門與信息技術部門的合作模式和流程。使用了基于公有云服務的大數(shù)據(jù)平臺和機器學習平臺,大幅降低了試錯成本,提高了研究效率。對全項醫(yī)學檢驗數(shù)據(jù)不做p特定需求的處理并采用SQL腳本固化了數(shù)據(jù)治理、開發(fā)的方法和經(jīng)驗,可以平滑遷移到將來的自建醫(yī)療大數(shù)據(jù)平臺,既可對歷年醫(yī)學檢驗數(shù)據(jù)統(tǒng)一處理,又可以實時處理新增醫(yī)學檢驗數(shù)據(jù),彌補本研究僅離線處理時段性歷史數(shù)據(jù)的不足。