Connected Healthcare – Neo4j

2021-10-23

許多醫療保健組織只看到醫療保健系統的一小部分。很少數採取長期的整體分析去深入了解。大部分高成本的產生就是因為缺乏相互連結的訊息造成的。如何改善個人醫療保健做出高質量的預測意味著要考慮許多數據點。因此,醫療保健領域的數據非常適合圖結構。


在 Neo4j 的 GitHub 上,可以找到從 Synthea 把數據加載到 Neo4j 的 Cypher 腳本。

現今醫療保健面臨的 10 大挑戰:

  1. 數據孤島 (Data silos)
  2. 高可變數據 (Highly variable data)
  3. 各式各樣的資料格式 (Diverse data formats)
  4. 學術名詞 (Terminology)
  5. 醫療組織間的信任 (Intercompany trust)
  6. 資料保護 (Data privacy)
  7. 複雜的規則 (Complex rules)
  8. 聊天機器人和搜尋 (Chatbots and search)
  9. 機器學習和可解釋性 (Machine learning and explainability)
  10. 擴充 (Scale)

圖技術可以幫我們解決那些問題?

醫療保健充滿許多棘手的問題,圖形資料庫可以很好的幫助解決醫療保健上述的棘手問題。

醫療保健資料連結的問題,還需要有對圖形和以下技術有深入了解的工程師:

  • 自然語言處理(Natural Language Processing)
  • 機器學習(Machine Learning)
  • 語意搜尋和元資料(Search, semantics and metadata)
  • 圖形遍歷演算法 (Graph traversal algorithms)
  • 圖形視覺化 (Graph visualization)
  • 分散式系統 (Distributed systems)
  • 高可用性 (High availability)
  • 資安 (Security)
  • 統計資料和因果分析 (Statistics and causality)

現在醫療資訊變化越來越快,多元化的資料庫是趨勢潮流,當然不是只有圖形資料庫,而是結合其他資料庫,將所有資料融合至圖形資料庫(醫療保健知識圖譜)。Graph 做為基礎可將所有斷開的數據連結在一起,這也將降低醫療保健成本。


OPTUM:圖形技術可以連結以前從未連結過的各種醫療保健數據。

採用 Neo4j 建立患者旅程模型 (Patient 360 system or Patient Journey system)

首先,來一趟病患旅程吧!醫療創業更強調「同理心的過程」。

當人們想了解創業想法是否可行時,都會先在醫院裡進行一趟「病患旅程」(Patient Journey),通常「醫生在想的事,病人無從得知。醫生忙碌時,病人卻可能正急著想要接受治療,反之亦然。換句話說,Patient Journey 就是去看醫生和病人分別是處於什麼情況,而你可能就會從中發現到問題需求,就會思考『喔,我現在知道病人到底在焦急什麼,那我們是否可以想出解決方案去取代、或減輕他們的負擔?』

患者旅程在醫學領域,可以把一個人的生命視為“患者旅程”,充滿了醫療事件,從出生開始,到死亡。 一個人一生中和醫療機構的所有互動都是沿著這條路走的,包括看醫生、住院、開處方、診斷和醫療程序。如果匯總了大量的患者旅程,就可以觀察疾病的趨勢和治療模式。例如,可以看到哪些狀況會產生服用藥物的副作用,或者在診斷出疾病後依照哪些醫療程序,以及這些程序的有效性。


桑基圖 (Sankey diagram) 顯示了子癇前症 (Pre-eclampsia),又稱妊娠毒血症診斷後 90 天內的歷程。

Neo4j 在醫療保健系統的應用情境:

  1. 主資料管理 (患者 360 系統 或患者旅程系統)

    有助於將各個系統中的資料提取到患者的單一視圖中,或允許醫生查看整個患者旅程,甚至提出建議(如下範例)。這個圖形層級需使用權限控管來確保對的人使用正確的訊息。還可以為匿名分析和洞察奠定基礎,進一步改善醫院營運、效率等。


    單一患者旅程圖
  2. 超個人化 – 患者旅程建議

    使用圖形演算法改善患者治療結果,患者旅程的概念可以應用在醫院內部,甚至可以從內部資料中提取更廣大的醫療公共資料集等。

    阿斯利康 (AstraZeneca) 使用圖形可視化和查詢語言改善患者治療效果。阿斯利康全球商業 IT 洞察和分析高級總監 Joe Roemer 深入探討利用圖形演算法的概念驗證,包含患者旅程的相似性以及醫生的連結性和影響。


    單一病患以及他的疾病史,視覺化幫助假設的產生
  3. 身分管理

    很好的例子說明醫療保健中的每個角色需要查看不同的訊息。詳見第 4 點:使用權限的子圖存取控制。有了權限的概念,可以控制好每個使用者的職責權限。首先辨別不同類型的使用者:

    醫生
    • 能讀和寫大部分的圖形。
    • 防止醫生讀取患者的地址。
    • 確保醫生可以將診斷保存到資料庫中,但不要用新概念去擴展資料庫的結構。
    櫃台人員
    • 能讀取和寫入所有患者資料,但無法查看症狀、疾病或診斷。
    研究員
    • 除了患者的個人資訊外,能對所有資料進行統計分析,也因此無法讀取大部分患者的屬性。
    • 建立兩個角色並進行比較來說明設置相同有效權限的兩種不同方式。
    護理師
    初級護理師
    • 上述提到的資深護理師能夠像醫生一樣存取診斷,但是護理師不能對圖表進行更新。雖然可以從頭開始建立另一個角色,但透過將護理師角色與專門限制活動的新禁用診斷角色相結合,可以更容易實現。
    IT 管理員
    • 此角色與內建管理員的角色非常相似,不同之處在於對患者的 SSN 訪問權限限制,以及防止管理員執行非常關鍵的診斷存取的操作,這是專業醫療人員特定操作。為此,可以透過複製內建管理員的角色並修改副本的權限來建立此角色。
    使用者管理員
    • IT 管理員不需要像上述角色那樣強大。可以從頭開始建立一個新角色,只授予真正想要的特定管理功能。

分析 / 機器學習應用情境 – 如何改善患者的治療效果?提高效率的方法?風險評估?

機器學習已廣泛應用於資料探勘、電腦視覺、自然語言處理、生物特徵辨識、搜尋引擎、醫學診斷、檢測信用卡欺詐、證券市場分析、DNA 序列定序、語音和手寫辨識、戰略遊戲和機器人等領域。

機器學習中,通常會採用很多變數,並將它們壓平放入特徵中——通常是在表格函數中,必須使用許多複雜的演算法來拆分扁平化。

朝著一個單一圖形的想法發展,對數據產生的假設進行編碼。透過這個想法,需要的演算法會更少,而且這些演算法會更容易理解。


這些都稱為基於模型的機器學習,其中圖是學習過程中的一個密切關係。

GitHub 提供了來自 Neo4j 的 Connections: Graphs in Life Sciences & Healthcare 活動的 Graphs in Life Sciences 示範和範例程式碼。包含範例數據、示範期間所執行的查詢語言和演算法,以及使用 Bloom 的視覺化圖。

參考連結

Improving Patient Outcomes with Graph Algorithms
https://neo4j.com/blog/improving-patient-outcomes-algorithms-graphconnect/

Modeling Patient Journeys with Neo4j
https://medium.com/neo4j/modeling-patient-journeys-with-neo4j-d0785fbbf5a2

Connected Healthcare – Dan McCreary
https://neo4j.com/videos/connected-healthcare-dan-mccreary/

Fine-grained access control (Enterprise Edition)
https://neo4j.com/docs/operations-manual/current/authentication-authorization/access-control/

AliciaFrame / GDS_Patient_Journey
https://github.com/AliciaFrame/GDS_Patient_Journey

讓醫師告訴你為何不能盲目追求數位醫療
https://meet.bnext.com.tw/articles/view/42450