Neo4j - 将医疗症状存储在图形数据库中

9
我正在使用Neo4j图形数据库存储医学症状和疾病。其目的是根据用户输入系统的症状,推荐可能患有的疾病。目前,我已将各种症状存储如下所示。Medical Symptoms 这是一个非常基本的图形结构,我通过cypher查询匹配模式来检索疾病,例如Fever、Headache和Flu的交集。我想要实现的是构建一个涉及位置、年龄因素等复杂结构,并编写各种算法以通过有效遍历检索最相关的节点。我无法在互联网上找到这样的复杂结构,因此任何建议都将不胜感激。尽管这不像问题那样需要很多编码,但请给出一些建议,因为这只是一个大学项目,我必须进一步探讨。

请问您能否澄清一下您的问题?您写道想要构建一个“涉及位置和年龄因素的复杂结构”,但是您“无法找到这样的复杂结构”。您是在寻求模式设计方面的帮助吗?还是在寻找可以用来填充图形的数据源? - stephen mallette
是的,确切地说,我无法找到这样复杂的结构,你能帮我建模吗? - pawan9977
你使用哪些数据集作为疾病和症状的来源? - Freeedy
3个回答

2

这里有一个简单的模型可以回答复杂的查询。

它有3种类型的节点:

  1. 症状或因素 - 这可以是任何症状、温度、位置、年龄、性别或任何可能导致疾病的因素。
  2. 患者或病例 - 该节点将拥有所有所需的症状节点作为入节点,并连接到一个疾病。
  3. 疾病 - 该节点将指示疾病。

一旦你使用患者的数据构建了这个模型,你就可以进行以下操作:

  1. 基于当前患者的症状,您可以编写一个简单的路径查询来获取最可能的疾病。这不仅会给出单一的疾病,还会根据过去的患者记录给出可能疾病的列表和置信度分数。
  2. 您还可以显示有趣的统计数据,比如所有位于A地区且年龄为B的患者通常会得到C疾病。
  3. 这也将成为所有过去患者记录的数据库。

由于这是大学项目,你可以先尝试一些模拟数据。这种方法应该是效果和简单性的完美结合。


1
也许你应该重新考虑你的模型。在我看来,你没有将症状、疾病和可能的检查分开。
请看一下Neo4J标签
(:symptom)-[BELONGS]->(:symptomGroup)-[MAY_INDICATE]->(:illNess) (:exam)-[VERIFIES]->(:illNess)
你需要对症状进行分组。
由于这是一个大学项目,也许你不是医生,所以不要期望你能建立一个“万能”的系统。
处理找不到解决方案的情况。
我不应该写这个,但我知道在法国的医学出版社Vidal工作的聪明人最近发布了一个关于这个主题的图形故事。

0

要找到最连接的节点,也就是拥有最多关系的节点,请使用

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

以上代码适用于Neo4j 2.0。请注意,它会遍历整个图形。但如果您的要求是这样的,您就必须去做这些繁琐的工作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接