構建一個現代臨床醫療數據與三角洲湖湖
2020年4月21日 在工程的博客
醫療行業是最大的生產商的數據。事實上,一般的醫療組織正坐在近9 pb的醫療數據。電子健康記錄(EHR)的興起,數字醫學圖像,這套可導致這個數據爆炸。例如,EHR係統大型目錄提供者可以數以百萬計的醫學測試,臨床交互和規定的治療方法。從這個人口規模和潛在學習數據是巨大的。通過構建分析儀表盤和機器學習模型最重要的這些數據集,醫療組織可以改善病人的經驗和驅動更好的健康結果。這裏有幾個實際的例子:
預防新生兒敗血症 |
慢性疾病的早期檢測 |
跟蹤疾病在人群 |
防止欺詐和濫用 |
得到的早期預覽O ' reilly的新電子書一步一步的指導你需要開始使用三角洲湖。
對醫療組織前三大數據的挑戰
盡管機會改善與分析和機器學習的病人護理,醫療組織麵臨著古典大數據挑戰:
- 各種——醫療服務的交付產生大量的多維數據從不同的數據源。醫療團隊需要運行查詢病人,治療,設施和時間窗口來構建一個整體查看病人的經驗。這是計算密集型為遺留分析平台。Beplay体育安卓版本最重要的是,80%的醫療數據是非結構化(如臨床講義、醫學成像、基因組學等)。不幸的是,傳統的數據倉庫,作為分析骨幹對於大多數醫療組織,不支持非結構化數據。
- 體積,一些組織已經開始投資於健康數據湖泊將他們一起pb級的結構化和非結構化數據。不幸的是,傳統的查詢引擎的數據量大小。一個簡單的特別分析可以花幾小時或幾天。這是太長時間等待當病人需要實時調整。
- 速度病人總是進入診所或醫院。以一個恒定的數據流,EHR記錄可能需要更新修複編碼錯誤。它是至關重要的,一個事務處理模式存在,以便更新。
仿佛這挑戰性不夠,數據存儲也必須支持數據的科學家們需要運行特別轉換,就像創建一個縱向視圖的一個病人,或與機器學習技術建立預測的見解。
幸運的是,三角洲湖一個開源存儲層,為大數據帶來了ACID事務工作負載,以及Apache火花TM可以幫助解決這些挑戰提供事務支持快速多維查詢存儲在不同的數據以及豐富的數據科學功能。三角洲湖和Apache火花,醫療組織可以構建一個可伸縮的臨床資料分析和ML的湖。
在這個博客係列中,我們將開始,走過一個簡單的示例,展示了如何三角洲湖可用於特別的關於健康和臨床數據的分析。在未來的博客,我們將看看如何三角洲湖和火花可以是耦合在一起的過程流HL7 / FHIR數據集。最後,我們將看看一些數據科學的用例可以運行的健康數據與三角洲湖湖了。
使用構建疾病儀表板三角洲湖
為了演示三角洲湖使它容易使用大型臨床數據集,我們將開始一個簡單但強大的用例。我們會建立一個儀表板,允許我們識別並存狀況(一個或多個疾病或條件發生在與另一個條件在同一人在同一時間)在人口的病人。要做到這一點,我們將使用一個模擬電子健康檔案數據集,生成的Synthea模擬器通過數據磚數據集(AWS|Azure)。這個數據集代表了一群來自馬薩諸塞州的大約11000名患者,並存儲在12 CSV文件。之前,我們將負載的CSV文件屏蔽保護健康信息(φ)和加入表一起為我們的下遊獲取我們需要的數據表示查詢。一旦數據被提煉,我們將使用SparkR構建一個儀表板,使我們能夠交互式地探索和計算常見的衛生統計在我們的數據集。
這個用例是一種很常見的起點。在臨床中,我們也可以看並存病作為一種理解患者的疾病嚴重程度增加的風險。從醫療編碼和財務的角度來看,並存疾病可能會讓我們看確定共同的醫療編碼問題影響報銷。在醫藥研究,觀察共病疾病遺傳學證據可能給我們共享更深的了解基因的功能。
然而,當我們考慮底層的分析架構,我們還在一個起點。而不是在一個大型批量裝載數據,我們可以尋求負載流電子健康檔案數據,以便實時分析。而不是使用儀表板,給我們簡單的見解,我們可以提前機器學習用例,如培訓機器學習模型,使用數據從近期病人遇到來預測疾病的進展。這可以在一個ER設置強大的流數據和毫升可以用來預測病人的可能性提高實時或下降。
在這個博客的其餘部分,我們將實現我們的儀表板。我們將首先開始使用Apache火花和三角洲湖ETL模擬電子健康檔案數據集。一旦數據已經準備分析,我們將創建一個筆記本,標識並存狀況在我們的數據集。通過使用內置功能在磚(AWS|Azure),我們就可以直接把筆記本變成一個儀表板。
etl臨床數據為三角洲湖
開始,我們需要加載CSV數據轉儲到一個一致的表示對我們的分析,我們可以使用工作負載。通過使用三角洲湖,我們可以加速很多下遊查詢,我們將運行。三角洲湖支持z值,我們可以高效地查詢數據跨多個維度。這是處理電子健康檔案數據的關鍵,因為我們可能想切割數據的患者,按日期,由護理設施,或條件,在其他的事情。此外,在磚三角洲湖發行提供了額外的優化管理,加快探索查詢到我們的數據集。三角洲湖也不會過時的工作:目前我們沒有處理流數據時,我們可以使用EHR直播流在未來,和三角洲湖的酸語義(AWS|Azure)使處理流的簡單和可靠。
我們的工作流如下幾個步驟顯示在下麵的圖。我們將開始通過加載原始/青銅數據從我們的八個不同的CSV文件,我們將任何φ麵具出現在表,我們會寫出一組銀表。我們將我們的銀色的表聯接在一起,從而得到一個更容易表現為下遊處理查詢。
我們的原始CSV文件加載到三角洲湖表是一個簡單的過程。Apache火花原生支持加載CSV,我們能夠加載文件每一行代碼文件。而火花沒有內置支持掩蔽φ,我們可以用火花豐富的支持用戶定義函數(udf,AWS|Azure)來定義一個任意函數,確定性PIIφ和麵具字段。在我們的示例中筆記本,我們使用Python函數計算SHA1哈希。最後,將數據保存到三角洲湖是一行代碼。
一旦數據被加載到三角洲,我們可以優化表通過運行一個簡單的SQL命令。在我們的示例中並發症預測引擎,我們需要快速查詢在病人ID和他們評估的條件。通過使用三角洲湖z值的命令,我們可以優化表可以快速查詢維度。我們做過的一個最後的黃金表,已加入了幾個我們的銀表一起實現數據表示我們需要為我們的儀表板。
建立一個疾病儀表板
現在我們已經準備好了,我們的數據集,我們將構建儀表盤並存狀況讓我們去探索,或者更簡單地說,通常同時發生在一個病人的條件。有些時候,這些可以前體/風險因素,例如,高血壓是一個眾所周知的中風和其他心血管疾病的危險因素。通過發現和監控並存狀況,和其他健康統計數據,我們可以通過識別風險和提高護理建議病人在他們可以采取的預防措施。最終,確定並發症是計數鍛煉!我們需要確定患者的不同情況和條件B,這意味著它可以做所有的完全使用火花SQL SQL。在儀表板中,我們將遵循一個簡單的三個步驟:
-
- 首先,我們創建一個數據幀,有條件,在患者發生的數量。這允許用戶可視化最常見的條件的相對頻率的數據集。
- 因為我們在使用SparkR火花SQL,我們可以很容易地收集病人的計數和使用χ2測試計算的意義。我們打印這兩個條件之間的關係是否具有統計學意義。
而數據科學家正在迅速迭代了解趨勢躺在他們的數據集可能是快樂的工作在一個筆記本,我們會遇到許多用戶(醫生、公共衛生官員和研究人員,業務分析師、計費分析師)誰不感興趣看到代碼的分析。通過使用內置的儀表盤函數,我們可以隱藏的代碼和關注我們生成的可視化。因為我們小部件添加到我們的筆記本,用戶仍然可以提供輸入疾病比較的筆記本和改變。
開始建立你的臨床數據
在這個博客中,我們製定了構建一個可伸縮的基本麵健康數據湖三角洲湖和一個簡單的合並症儀表板。了解更多關於使用三角洲湖存儲和處理健康和臨床數據集:
- 下載我們的電子書使用真實世界臨床數據集。
- 注冊一個免費的磚試驗並開始嚐試與我們ETL和儀表盤筆記本中強調這個博客。