2014-03-06 28 views
6

我正在使用Neo4j圖形數據庫來存儲醫療症狀和疾病。其背後的目的是推薦一個人可以從用戶進入系統的症狀中得到的疾病。現在我已經存儲了各種症狀,如下所示。 Medical SymptomsNeo4j - 在圖中存儲醫療症狀

這是一個非常基本的圖形結構,我通過匹配模式通過密碼查詢(如發燒,頭痛和流感引起的交集)來檢索疾病。我想要實現的是構建一個涉及位置和年齡因素等的複雜結構,並編寫各種算法來通過高效遍歷來檢索最多連接的節點。我無法找到這樣複雜的結構到互聯網,所以任何建議,將不勝感激。儘管編碼不像問題那麼多,但請給出一些建議,因爲它只是一個大學項目,我必須在此進一步研究。

+0

請問你能澄清一下你在問什麼?你寫到你想要建立一個「涉及位置和年齡因素的複雜結構」,但你「無法找到這樣複雜的結構」。你是否在尋求建模模式的幫助?您是否在尋找可用於填充圖表的數據源? –

+0

是的,我無法找到如此複雜的結構,你能幫我建立我的模式嗎? – pawan9977

回答

0

爲了找到最連接的節點,又名一個具有最關係使用

MATCH (n)-[r]-() 
RETURN n, count(r) 
ORDER by count(r) desc 
LIMIT 1 

與Neo4j的2.0以上的作品。請注意,這遍歷整個圖表。但是如果你的要求是這樣,你必須做骯髒的工作。

0

也許你應該重新考慮你的模型。 IMG,你沒有分開症狀,疾病 ,也許考試。

給看看到的Neo4j標籤

(:症狀) - [屬於] - >(:symptomGroup) - [MAY_INDICATE] - >(:疾病) (:考試) - [驗證] - > (:疾病)

你要組症狀

由於它是一個大學項目,也許你是不是醫生,你不希望建立一個「治一切」系統。

處理未找到解決方案的情況。

我不應該那樣寫,但我知道輝煌的法國醫學出版商ppl working近日發表了一個關於該主題的圖表專家。

0

這是一個簡單的模型,可以回答複雜的查詢。

有3種類型的節點:

  1. 症狀或因子 - 這可以是任何症狀,溫度,位置,年齡,性別或能夠在疾病的病因的任何因素。
  2. 病人或病例 - 此節點將所有症狀節點作爲傳入節點,並將連接到一種疾病。
  3. 疾病 - 該節點將指示疾病。

一旦你建立這個與患者的數據,你將有一個足夠複雜的圖形執行以下操作:

  1. 基於目前病人的症狀,你可以寫一個簡單的路徑查詢,以獲得最可能的疾病。這不僅會給你一個單一的疾病,但會給你一個可能的疾病列表和基於過去的病人記錄的信心評分。
  2. 您還可以顯示感興趣的統計數據,例如位置A和年齡B中的所有患者一般都會得到疾病C.
  3. 這也將是所有過去患者記錄的數據庫。

由於這是一個大學項目,您可以先嚐試一些模擬數據。這種方法應該是有效性和簡單性之間的完美結合。