一、健康云的興起
隨著我國經濟持續(xù)穩(wěn)定的發(fā)展和現代科技的日益進步,越來越多的人們開始重點關注自身健康。在滿足日常工作和生活的需求之外,規(guī)律的健身休閑活動、年度體檢、健康飲食已經成為越來越普遍的想象。與此同時,隨著國家新醫(yī)改政策的頒布和實施,與健康直接相關的醫(yī)療行業(yè)也正在迅猛發(fā)展。這里重點介紹一下我國醫(yī)療行業(yè)IT解決方案市場呈現的發(fā)展趨勢:
1、 漸增的多樣醫(yī)療數據源:醫(yī)療數據的生成和采集已經不再僅局限于醫(yī)院這個單一環(huán)境。它還可以來自于體檢中心、社區(qū)/鄉(xiāng)鎮(zhèn)衛(wèi)生院、私人診所、實驗室檢驗中心、急救中心、家庭,隨著物聯網(IoT, Internet of Things)相關技術的發(fā)展,甚至可以說:個人醫(yī)療數據可以采自于任何適合的地方。
2、 醫(yī)療數據的高度集中化:區(qū)域醫(yī)療信息系統(tǒng)(RHIS, Regional Health Information System)將逐步取代現有的基于醫(yī)院的信息系統(tǒng)。并且,它將更廣泛的覆蓋一個特定區(qū)域內的所有醫(yī)院、社區(qū)、急救中心、體檢中心、實驗室檢驗中心、社會保險機構等。居民個人來自各個數據源的全周期醫(yī)療數據將集中保存在統(tǒng)一的區(qū)域數據中心中。醫(yī)療數據將不再只是某家醫(yī)院獨享的資源,而是與整個區(qū)域中的所有醫(yī)療機構共享,甚至可以與更上層的大區(qū)域級、信息系統(tǒng)進行數據交換。
3、 從醫(yī)療信息系統(tǒng)到醫(yī)療信息服務:區(qū)域醫(yī)療信息系統(tǒng)的逐步建立將使先進的醫(yī)療信息服務的設計和開發(fā)變得更加便捷。例如:流行病分析、公共衛(wèi)生事件預測、臨床決策支持、慢性病管理、個性化的健康照護計劃、日常衛(wèi)生保健管理等。其原因是因為這些信息服務必須建立在數據集中化的基礎上。這些服務的受眾群體將是整個社會。
正是如上所述的發(fā)展趨勢使得“健康云(Healthcare Cloud)”的建立才會成為可能。試想一下:在不久的將來,我們可以通過手機統(tǒng)一查詢在不同醫(yī)院的就診記錄、生化檢驗結果、處方和收費清單;慢性病患者在家中可以自測血壓、血糖等指標并通過無線網絡上傳到區(qū)域醫(yī)療數據中心,醫(yī)生也可以遠程分析患者自測數據判斷其病情發(fā)展;大量的知識和規(guī)則從海量數據中自動提取出來,并用來協(xié)助社區(qū)及基層衛(wèi)生機構的初級醫(yī)生對患者作出準確的診斷和用藥決策;各個社區(qū)居民的醫(yī)療數據將會自動匯總,并進行統(tǒng)計分析,用以進行流行病、慢性病的自動篩查、趨勢分析和爆發(fā)預警,為公共衛(wèi)生機構制定防治干預計劃和行動提供有力的依據和參考;患者的癥狀、生命體征、檢驗檢測結果、醫(yī)療影像、診斷、處方、醫(yī)囑、手術、住院和賬單等全周期數據將會進行全方位的跟蹤和分析,為新藥開發(fā)、新治療方案的設計提供支持。上述這些事例都將是我們通過健康云可以逐步實現的。
當然,健康云不是一天就可以建成的,這將是個階段性的工程。除了國家政策和地方支持等外圍因素之外,云計算和大數據技術將會起決定性作用。從構建底層云基礎架構、云存儲方案,到中層的云計算平臺,后到上層的云應用服務設計和開發(fā),至少需要3~5年的長期規(guī)劃。其中,大數據分析部分更是縱向貫穿于云基礎架構、云平臺和云服務三層,需要整體設計和逐步實施?;诂F有技術和需求,在本文中,我們暫且把健康云簡化定義為:基于區(qū)域醫(yī)療信息系統(tǒng)的醫(yī)療信息服務,并重點關注1~3年的市場需求。
二、大數據分析技術的發(fā)展
區(qū)域醫(yī)療信息系統(tǒng)中的醫(yī)療數據是典型的大數據。所謂的“大數據”并不只是數量上的“大”。簡單套用一下大數據的4V(Volume,Velocity,Variety,Value)定義:
1、 Volume:區(qū)域醫(yī)療數據通常是來自于擁有上百萬人口和上百家醫(yī)療機構的區(qū)域,并且數據量持續(xù)增長。按照醫(yī)療行業(yè)的相關規(guī)定,一個患者的數據通常需要保留50年以上。我們可以想象這是多么巨大的數據量。
2、 Velocity:醫(yī)療信息服務中可能包含大量在線或實時數據分析處理的需求。例如:臨床決策支持中的診斷和用藥建議、流行病分析報表生成、健康指標預警等。
3、 Variety:醫(yī)療數據通常會包含各種結構化數據表、非(半)結構化文本文檔(xm[x]l和敘述文本)、醫(yī)療影像等多種多樣的數據存儲形式。
4、 Value:醫(yī)療數據的價值不必多說,它不僅與我們個人生活息息相關,更可用于國家乃至全球的疾病防控、新藥研發(fā)和頑疾攻克。
近年來,在衛(wèi)生部的領導下和國家財政支出的支持下,絕大多數的三甲醫(yī)院和部分二級醫(yī)院已經先后建立了先進的數字化信息系統(tǒng)和電子健康檔案系統(tǒng)。但至今為止,大部分系統(tǒng)和數據仍然只限于內部使用。據了解,2010年底,衛(wèi)生部完成了“十二五”衛(wèi)生信息化建設工程規(guī)劃編制工作,初步確定了我國衛(wèi)生信息化建設路線圖,簡稱“3521工程”,即建設、省級和地市級三級衛(wèi)生信息平臺,加強公共衛(wèi)生、醫(yī)療服務、新農合、基本藥物制度、綜合管理5項業(yè)務應用,建設健康檔案和電子病歷2個基礎數據庫和1個專用網絡建設。由此可看出,今后的幾年,隨著云計算技術的成熟和實用化,大規(guī)模區(qū)域醫(yī)療信息系統(tǒng)和大型數據中心的建立將逐步展開。然而,隨著海量醫(yī)療數據被保存下來,一個棘手的問題出現了:我們如何通過高效的分析這些數據來提供有價值的服務?
大數據分析技術初起源于互聯網行業(yè)。網頁存檔、用戶點擊、商品信息、用戶關系等數據形成了持續(xù)增長的海量數據集。這些大數據中蘊藏著大量可以用于增強用戶體驗、提高服務質量和開發(fā)新型應用的知識,而如何高效和準確的發(fā)現這些知識就基本決定了各大互聯網公司在激烈競爭環(huán)境中的位置。首先,以Google為首的技術型互聯網公司提出了MapReduce的技術框架,利用廉價的PC服務器集群,大規(guī)模并發(fā)處理批量事務。
利用文件系統(tǒng)存放非結構化數據,加上完善的備份和容災策略,這套經濟實惠的大數據解決方案與之前昂貴的企業(yè)小型機集群+商業(yè)數據庫方案相比,不僅沒有丟失性能,而且還贏在了可擴展性上。之前,我們在設計一個數據中心解決方案的前期,就要考慮到方案實施后的可擴展性。通常的方法是預估今后一段時期內的業(yè)務量和數據量,加入多余的計算單元(CPU)和存儲,以備不時只需。
這樣的方式直接導致了前期一次性投資的巨大,并且即使這樣也依然無法保證計算需求和存儲超出設計量時的系統(tǒng)性能。而一旦需要擴容,問題就會接踵而來。首先是商業(yè)并行數據庫通常需要各節(jié)點物理同構,也就是具有近似的計算和存儲能力。而隨著硬件的更新,我們通常加入的新硬件都會強于已有的硬件。這樣,舊硬件就成為了系統(tǒng)的瓶頸。為了保證系統(tǒng)性能,我們不得不把舊硬件逐步替換掉,經濟成本損失巨大。其次,即使是當前強的商業(yè)并行數據庫,其所能管理的數據節(jié)點也只是在幾十或上百這個數量級,這主要是由于架構上的設計問題,所以其可擴展性必然有限。
而MapReduce+GFS框架,不受上述問題的困擾。需要擴容了,只需增加個機柜,加入適當的計算單元和存儲,集群系統(tǒng)會自動分配和調度這些資源,絲毫不影響現有系統(tǒng)的運行。如今,我們用得更多的是Google MapReduce的開源實現,即Hadoop。除了計算模型的發(fā)展,與此同時,人們也在關注著數據存儲模型。傳統(tǒng)的關系型數據庫由于其規(guī)范的設計、友好的查詢語言、高效的數據處理在線事務的能力,長時間地占據了市場的主導地位。
然而,其嚴格的設計定式、為保證強一致性而放棄性能、可擴展性差等問題在大數據分析中被逐漸暴露。隨之而來,NoSQL數據存儲模型開始風行。NoSQL,也有人理解為Not Only SQL,并不是一種特定的數據存儲模型,它是一類非關系型數據庫的統(tǒng)稱。其特點是:沒有固定的數據表模式、可以分布式和水平擴展。NoSQL并不是單純的反對關系型數據庫,而是針對其缺點的一種補充和擴展。典型的NoSQL數據存儲模型有文檔存儲、鍵-值存儲、圖存儲、對象數據庫、列存儲等。而比較流行的,不得不提到Google提出的Bigtable。
Bigtable是一種用于管理海量結構化數據的分布式存儲系統(tǒng),其數據通??梢钥绯汕€節(jié)點進行分布式存儲,總數據量可達PB級(10的15次方字節(jié),106GB)。Hba[x]se是其開源實現。如今,在開源社區(qū),圍繞Google MapReduce框架,成長出了一批的開源項目。這些項目在技術和實現上相互支持和依托,逐漸形成了一個特有的生態(tài)系統(tǒng)。這里借用Cloudera所描繪的架構圖來展現Hadoop生態(tài)系統(tǒng)。這個系統(tǒng)為我們實現優(yōu)質廉價的大數據分析提供了堅實的技術基礎。
綜上所述,面對大數據分析的挑戰(zhàn),不管是計算模型還是存儲模型技術都有了超前的進步。然而,僅憑借當前的技術,我們準備好面對健康云上的大數據分析的挑戰(zhàn)了嗎?下一節(jié),我們將重點分析醫(yī)療數據的特有性質為大數據分析帶來的挑戰(zhàn)。
三、健康云上的大數據分析
由于醫(yī)療數據的一些特有的性質,給健康云上的大數據分析帶來了特殊的挑戰(zhàn)。
1、 醫(yī)療數據是持續(xù)、大量增長的大數據。根據估算,中國一個中等城市(一千萬人口)50年所積累的醫(yī)療數據量就會達到10PB級。并且,隨著時間的推移和業(yè)務系統(tǒng)的不斷升級換代,醫(yī)療數據模式的一致性也無法保證。因此,每天都會有大量的數據持續(xù)不斷的導入區(qū)域醫(yī)療數據中心,并且每當有數據模式的更改,相關的歷史數據也需要做相應的調整。所以,區(qū)域醫(yī)療數據中心并不是簡單的傳統(tǒng)數據倉庫概念。相比之下,它的模式更靈活、寫入和更新的操作更多,而對數據存儲的水平可擴展性的要求也更高。
2、 醫(yī)療數據是關系復雜的多維數據。由于醫(yī)療數據是多種數據源數據的匯總,數據之間的關系非常復雜。比如:一個簡單的實驗室檢驗檢測值,必須同時記錄這個值對應的編碼系統(tǒng)和編碼、單位、檢測時間、檢驗項目、標本編碼,以及相關聯的患者主索引號、就診機構、申請科室、申請醫(yī)師標識號、報告醫(yī)師標識號、審核醫(yī)師標識號、正常值參考等等。一條檢測記錄就可以把患者、醫(yī)生、醫(yī)療機構多個實體在不同層次上關聯起來。而不同的醫(yī)療信息服務更需要從不同的視角來觀察這些數據,如下圖所示。比如:以患者為中心的服務需要把一個患者的全周期數據按照時間軸排列,并分析診斷、用藥和患者生命體征、檢驗檢測值之間的關聯;以醫(yī)生為中心的服務又需要把與一個醫(yī)生相關的患者數據挑揀出來,并進行分類;以科室為中心的服務可能需要即從科室所屬醫(yī)生的角度,又要從在該科室就診患者的角度進行分析;針對社區(qū)的服務可能需要統(tǒng)計整個社區(qū)居民某項指標(比如血壓、血糖)的達標率??傊t(yī)療數據的多維度多粒度為各種信息服務的多角度多層次分析提供了可能,但同時也為大數據分析帶來了挑戰(zhàn)。因為我們不可能為每一種信息服務存儲一份特定的優(yōu)化模式的數據,況且我們也無法枚舉出所有可能的信息服務需求。這就需要醫(yī)療數據的存儲模型能夠適應靈活多變的多維統(tǒng)計分析需求。
3、 醫(yī)療數據是具有語義的數據。大家可能聽說過語義網(Semantic Web),它是為讓數據能跨應用進行共享和重用所設計的框架體系。我們可以把語義網簡單地理解為:一個讓機器(machines)讀懂的維基百科(Wikipedia),主要包括了各種條目的定義以及各個條目之間的關系。如果數據也采用這些條目和關系組織內容,那么機器就可以自動理解數據的語義,并推理出各種知識。所以建立語義網的關鍵就是如何制作一本百科全書(有個專有名詞叫Ontology)。由于醫(yī)學是一門非常嚴謹的科學,其在全球的標準化水平很高,對疾病名稱、藥物成分、臨床特征、儀器設備等都有嚴格的定義以及關聯描述。所以,語義網在醫(yī)學領域得到了廣泛應用。進而,醫(yī)療數據也越來越多的采用基于語義網的臨床文檔框架(CDA)格式的xm[x]l文檔來保存。這些xm[x]l文檔通過Ontology的解釋,就變成了一個無比巨大的概念+事實+關系的網絡。雖然機器能夠讀懂這個網絡,并能夠在上面進行邏輯推理,從而發(fā)現知識,但是其計算代價也是相當高的。當前的醫(yī)療系統(tǒng)通常會把復雜的臨床文檔解析成簡單的屬性值,并存入自定義的關系表中。這樣做雖然會有大量的語義及關系的丟失,但卻能夠滿足日常業(yè)務系統(tǒng)對數據處理性能的要求。但是對于未來的區(qū)域醫(yī)療信息系統(tǒng)來說,為了能夠提供豐富全面的信息服務,我們必須盡可能的保留臨床文檔中的語義信息。這樣,醫(yī)療數據分析的過程中就不可避免的需要對大量xm[x]l文檔進行解析、對各種關系進行推理。這樣的數據分析處理過程比我們之前提到的互聯網數據處理要復雜得多。
通過上述的分析可見,簡單地將現有的大數據分析技術套用在健康云服務上是行不通的。我們需要充分考慮健康云服務的特點和充分利用現有技術框架的靈活性,已達到好的大數據分析性能。初步解決方案:
1. 基于Hadoop生態(tài)系統(tǒng)構建健康云數據中心,用以解決數據存儲水平擴展的挑戰(zhàn)。利用MapReduce并行處理批量事務的能力,從多個數據源(主要是醫(yī)療機構的各個業(yè)務系統(tǒng))抽取數據、轉換格式、并導入基于Hba[x]se的數據存儲模型。
2. 在數據存儲模型的設計上,借鑒已有的數據倉庫中多維數據模型的設計思想,比如:星型模式和數據立方體的概念。在考慮應用需求的基礎上,利用Hba[x]se中行鍵、列鍵、列族設計的靈活性,將多維醫(yī)療數據有效地組織在一起。而在索引技術上,結合RDBMS領域的成熟技術,用以進一步提高Hba[x]se的查詢性能。對于數據模式的更新,Hba[x]se特有的多版本共存的特性正好成了解決問題的關鍵。
3. 為了保留醫(yī)療數據中大量的語義關系,采用結構化數據+xm[x]l文檔混合存儲的方式。在數據導入的同時,提取xm[x]l文檔中特定的元數據,(比如:患者主索引、就診科室、主治醫(yī)師等),并將xm[x]l文檔根據不同粒度打散成大小不一的子文檔。根據不同粒度的查詢條件,系統(tǒng)將自動選擇相應的子文檔進行進一步信息的解析,從而避免為提取少量信息而不得不解析大量xm[x]l文檔的問題。
4. 數據模型的接口將采用Hive提供的類SQL查詢的方式。這樣更有利于數據分析人員設計分析算法。同時,系統(tǒng)中將嵌入多種數據挖掘算法供數據分析師使用。
綜上所述,為解決健康云上的大數據分析問題,必須同時利用RDBMS和NoSQL的優(yōu)勢,并且采用結構化和非結構化數據混合存儲的形式,相互彌補缺陷,已達到靈活和高效的設計。而這套基于健康云的大數據分析平臺,也將有希望擴展到其他類似行業(yè),比如:電信、能源、物聯網和公共事業(yè)等。