


摘要:采用Hadoop技術構建醫療科研大數據平臺,通過數據采集系統實現醫院內部各核心業務系統數據的高效采集、加密、脫敏、存儲及整合,構建了科研數據中心,通過患者主索引的方式進行患者診療數據標準化和歸集,并通過數據查詢系統和后臺管理系統為科研人員提供便捷的查詢與管理功能。平臺通過政務外網安全接入,實現跨醫療機構查看患者歷史診療信息,解決了科研數據獲取困難的問題。
關鍵詞:Hadoop;科研數據平臺;醫療大數據
一、前言
近年來,伴隨著醫療技術的迅猛發展以及醫療信息化建設的持續深入,醫療數據規模呈現出指數級的增長趨勢。醫療數據的來源已不再局限于傳統的病歷記錄和醫學影像,還包括基因組測序、生物標志物檢測等新興數據類型[1]。這些醫療數據蘊含著巨大的價值,對于疾病診斷、治療方案優化、藥物研發以及公共衛生決策等都具有重要意義。然而,當前醫療數據的獲取面臨一定的挑戰。一方面,由于醫療數據主要存儲于醫院內部系統的數據庫中,并且這些數據涉及患者隱私,因此需要實施嚴格的授權和保密措施,無疑增加了科研人員獲取數據的程序復雜度[2]。另一方面,由于不同醫院的內部系統數據經歷了長時間的積累和系統更新,導致院內數據缺乏統一的國家標準存儲,不同醫院間的數據存儲格式和標準存在差異,甚至同類數據在規范上也存在不一致性,使得數據難以直接應用于科研工作,極大地限制了醫療數據的潛在價值發揮[3]。因此,構建一個能夠整合各醫療機構核心數據的科研數據中心顯得尤為重要。
一方面,平臺能夠整合和管理海量的醫療科研數據,實現數據共享與流通,為醫療科研人員提供全面、準確的數據支持,加速科研進程。例如,在藥物研發過程中,科研人員可以通過平臺獲取大量的臨床試驗數據、患者病歷數據等,進行數據分析和挖掘,從而更準確地評估藥物的療效和安全性,縮短研發周期。另一方面,利用Hadoop強大的計算能力,對醫療數據進行深度分析和挖掘,發現潛在的醫學知識和規律,為臨床決策提供科學依據,提高醫療服務質量。
二、Hadoop技術構成
平臺主要采用開源的Hadoop技術對醫療大數據平臺進行擴展和封裝,解決數據來源多樣性和異構性的問題。Hadoop因其高可靠性、高擴展性、高效性以及高容錯性,不僅能夠有效降低運營成本,而且確保了技術的穩定性和持續發展。此外,Hadoop生態系統中的技術成熟且全面,能夠充分滿足相關業務的技術需求。
Kettle是Hadoop架構中廣泛使用的數據收集技術,能夠從多種數據源(包括但不限于MySQL、Oracle等關系型數據庫,以及HDFS、Hive等大數據平臺)高效地抽取數據,并支持通過API接口獲取數據[4]。HBase是列存儲數據庫,基于HDFS構建,適合存儲半結構化和非結構化數據,支持高并發的隨機讀寫操作。Hive提供了類似SQL的查詢語言HiveQL對大規模數據進行存儲、查詢和分析,適合于批量處理和離線分析。Spark是基于內存計算的大數據處理框架,支持批處理、實時流處理、機器學習和圖計算[5]。Elasticsearch采用分布式架構,內部結構采用Lucene倒排索引的方式進行數據存儲,能對文本數據進行高效的全文檢索。Spark提供的查詢DSL支持多條件查詢、范圍查詢、布爾邏輯查詢、嵌套查詢等復雜查詢語句。Elasticsearch提供豐富的聚合操作,如分組、求平均值、計數、直方圖等。Cloudera Manager提供圖形用戶界面和命令行接口,用于部署、配置、監控和管理Hadoop集群。它還能收集和分析集群的性能數據,為管理員提供性能優化的建議和指導。
本平臺使用Kettle采集數據,Hive存儲歷史數據,HBase 存儲實時數據,Spark統一處理和分析這些數據,Elasticsearch進行復雜數據查詢和統計分析,Cloudera Manager管理和監控集群。
三、平臺架構
本平臺架構設計由下向上可劃分為四個層面,即基礎設施層、數據層、數據處理層和平臺應用層,如圖1所示。系統各層都緊密地架構在統一的醫療數據標準和規范、安全保障體系環境上,遵循統一的資源共享和業務協同標準規范體系[6]。
基礎設施層為整個平臺的運行提供硬件和網絡支持,構建在電信的私有云基礎設施之上,科研人員通過政務外網安全接入平臺。平臺充分利用現有的網絡、存儲、服務器主機等核心硬件資源。這些資源由云平臺進行統一管理,確保服務的高效性和穩定性。
數據層為平臺數據資源基礎,負責從多種醫療數據源(HIS、EMR、LIS、PACS、PEIS等)采集數據。平臺依據統一的數據規范與標準,構建統一的科研數據中心,滿足科研的多樣性需求。這一舉措旨在促進數據共享,解決醫療機構間數據不能互通的問題,從而克服醫療“數據孤島”現象。
數據處理層為平臺的核心部分,實現對海量醫療數據的存儲、管理、檢索和分析,主要分為數據脫敏、數據清洗、數據映射、數據交換和結構化處理。為保證醫療數據的安全及患者隱私,平臺依據HIPAA法案制定相應的數據權限管理、數據加密及脫敏規則[7]。數據清洗主要完成缺失值處理、去除冗余數據、過濾異常數據、糾正錯誤數據以及標準化數據格式,避免數據質量問題而導致錯誤的分析結果。例如,對于電子病歷中的年齡缺失值,通過分析其他相關信息,如首次就診時間、病史等,利用回歸模型預測出缺失的年齡值。為消除醫學術語表達差異而造成語義鴻溝,通過數據映射將各醫療機構的數據字典映射到統一的數據字典,包括疾病分類、檢查/檢驗類型、癥狀體征等。借助自然語言處理技術,對非結構化原始數據進行深度解析,識別并提取文本中的關鍵實體、屬性、關系等信息,精準地轉換為結構化數據,為建立精準的數據模型和高效的算法提供堅實可靠的基礎,從而為后續的數據分析和應用開發奠定關鍵的支撐[5]。例如,根據電子病歷中的半結構化文本數據,提取出患者的癥狀、診斷結果、治療措施等關鍵信息,將其轉換為結構化的表格數據,每一行代表一個患者的關鍵信息,每一列對應不同的信息字段。
平臺應用層劃分為三個子系統:數據采集、數據查詢以及后臺管理。數據采集子系統采集核心醫療數據,并對采集數據進行量化評估,以實現對數據采集結果的精確核對。數據查詢子系統實現對全庫數據進行多維度檢索,支持限制不同科研人員的查詢權限。后臺管理子系統為各級管理員提供用戶管理、角色權限管理、病歷指標和管理等功能,負責統一管理平臺內各子平臺、子系統的訪問權限和數據權限。
四、平臺實現
(一)數據采集系統
通過調研醫療機構的網絡平臺和信息化建設情況,平臺在各醫療機構部署采集前置服務器,利用Java Web服務定時采集不同醫療機構的各業務系統數據,并將數據進行脫敏處理后上傳到前置服務器,存儲到數據云平臺Oracle數據庫中。針對Oracle云庫中的數據,根據不同的業務類型,劃分醫療數據,如門診、住院、體檢、檢驗檢查等,分別構建抽取腳本,每月將增量數據寫入HBase庫中,并對這些表構建Hive外部表,直接用于數據操作。針對數據量特別大的表,如診斷事件表、門診表、費用表、用藥記錄表等,需要建立Hive分區分桶表,這些表對應的HBase臨時緩存表數據30至60天過期,每月定時將這些表的HBase數據進一步歸檔到Hive分區表中,防止HBase數據膨脹過大,也提高大表關聯查詢速度。
由于患者在各醫療機構的病人ID各不相同,為了便于匯集同一病人的數據,需要對匯集數據進行合并處理。利用Spark的強大計算能力,對數據進行合并清洗。在這個過程中,將識別為同一個病人的數據分配唯一索引。通過這種方式,每個患者都會擁有一個獨特的索引,根據該索引快速從HBase緩存中讀取該患者在各醫院機構的就診記錄以及診斷統計數據,從而實現對同一患者在不同醫療機構數據的有效匯集和整合。
最后,根據一定的條件,將歸檔數據每月進行增量清洗,并將清洗后的數據導入到全文檢索引擎中。通過這種方式,可以保證在進行復雜條件查詢時,能夠及時獲取最新的歸檔數據,從而提高查詢的時效性和準確性,更好地滿足用戶對醫療數據查詢的需求。
數據采集歸檔主流程圖如圖2所示。
此外,通過配置數據分值及采集缺失、錯誤扣分規則,平臺對醫療機構上傳的數據進行評分,以便對各醫療機構的數據采集質量進行量化評估。
(二)數據查詢系統
數據查詢系統采用Vue框架,并結合Echarts圖表庫,為科研人員提供了友好且功能強大的醫療數據查詢與展示功能。
第一,支持病例診斷、性別、數據字段的值等基于特定字段的多條件組合關聯檢索,并設置展示字段,如性別、機構名稱、檢驗項目結果值、檢驗項目參考值,從而協助科研人員快速找到科研所需的醫療數據。例如,查找男性A血型或者女性B血型的體檢記錄,查詢條件設置如圖3所示。執行查詢后,系統自動為用戶保存最近10次查詢設置,用戶也可將已設置的查詢條件和展示字段保存為模板,以便后續查詢。
第二,通過專病視圖展示患者的所有診療信息,包括門診、住院、體檢報告等,為疾病的診斷和治療提供重要依據。用戶可查看患者的歷次就診信息,可對檢索的病歷進行收藏,在用戶收藏夾中可以管理和查看用戶所收藏的病例。
第三,具有數據統計分析功能,如異常檢出的項目排行、各年度檢驗/檢查項目排行、各年度各年齡段男性和女性的高發疾病等數據,借助統計學和數據分析的方法,進行深入的數據挖掘和分析,幫助醫院精準洞察醫療服務現狀與問題,從而優化醫療流程,提升服務質量,同時助力提高患者的健康管理水平,為患者帶來更優質的醫療服務體驗。
(三)后臺管理系統
后臺管理系統采用開源的SpringBoot框架實現,整合數據查詢系統以及后臺管理系統相關基礎功能數據,主要包含資源管理、字典管理、角色管理、用戶管理、病歷指標、報表導出等功能。資源管理主要功能是對數據查詢子系統的查詢權限進行配置與維護,同時也涉及后臺管理子系統本身的接口權限配置與維護。字典管理通過提供標準化的字典項,達到統一數據格式、規范數據輸入、提高數據質量的目的。病歷指標為配置數據查詢系統使用的查詢參數,默認建立通用模板,也可對來源,如圖3中的數據歸類、數據類型,進行二次重新定義,為查詢系統提供形式多樣的數據查詢條件。角色管理采用基于角色的訪問控制(RBAC)模型,將平臺用戶分為醫生、科研人員、管理人員等不同角色,并可為每個角色分配數據來源、指標項、時間范圍等數據權限,實現對醫療數據的安全訪問,防止非法訪問和數據濫用。用戶管理模塊針對平臺的使用者,實現用戶基本信息的維護、賬號時效設置、角色分配等功能。
五、結語
本文構建的醫療科研大數據平臺基于Hadoop技術,實現了對海量醫療數據的有效整合與管理,解決了科研數據獲取困難、跨醫療機構查看患者歷史診療記錄不便的問題,實現對醫療數據的高效檢索。但平臺在實際應用中,由于醫療數據來源廣泛且復雜,不同醫療機構的數據格式和標準差異較大,實現完全的數據標準化仍面臨諸多挑戰。后續在保障數據安全的前提下,需深入挖掘醫療數據的潛在價值,結合先進的數據分析技術,開展大規模的醫療數據研究,推動醫療科學研究的發展和創新。
參考文獻
[1]沈惠文,馬得原,張策.醫療大數據與科研實踐[J].中國醫學教育技術,2023,37(03):351-355.
[2]郭子菁,羅玉川,蔡志平,等.醫療健康大數據隱私保護綜述[J].計算機科學與探索,2021,15(03):389-402.
[3]阮彤,邱加輝,張知行,等.醫療數據治理——構建高質量醫療大數據智能分析數據基礎[J].大數據,2019,5(01):12-24.
[4]李紅麗.Hadoop與Map Reduce應用下的大數據處理系統設計[J].網絡安全技術與應用,2021(09):48-50.
[5]張靚,楊志清,王海星,等.基于Hadoop的醫療科研大數據平臺的構建與應用[J].中國數字醫學,2020,15(10):82-84.
[6]孫凱旋,翟凌宇.基于云計算的健康醫療大數據平臺[J].軟件,2020,41(02):175-178.
[7]趙前前.基于大數據科研平臺的專病數據庫建設及應用[J].中國數字醫學,2020,15(12):89-92.
基金項目:福建省中青年教師教育科研項目(科技類)一般項目“基于Hadoop的醫療科研大數據平臺的構建與應用”(項目編號:JAT220501)
作者單位:福州工商學院
責任編輯:王穎振 鄭凱津