首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Neo4j -在图中存储医学症状

Neo4j -在图中存储医学症状
EN

Stack Overflow用户
提问于 2014-03-06 21:28:22
回答 3查看 1.2K关注 0票数 9

我正在使用Neo4j图形数据库来存储医学症状和疾病。这背后的目的是根据用户输入到系统中的症状给出一个人可能患有的疾病的建议。现在我存储了各种症状,如下所示。

这是一个非常基本的图形结构,我通过cypher查询匹配模式来检索疾病,例如发烧、头痛和流感的原因的交集。我想要实现的是建立一个复杂的结构,包括位置和年龄等因素,并编写各种算法,通过高效遍历来检索连接最多的节点。我无法在互联网上找到如此复杂的结构,所以任何建议都将不胜感激。尽管它不是很像编码的问题,但请给出一些建议,因为这只是一个大学项目,我必须在这方面走得更远。

EN

回答 3

Stack Overflow用户

发布于 2014-03-15 00:09:19

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

有3种类型的节点:

  1. Symptom或因素节点-这可以是任何症状、温度、位置、年龄、性别或任何可能导致disease.
  2. Patient或disease.
  3. Disease 的因素-此节点将具有作为传入节点的所有必需症状节点,并将连接到一个节点-此节点将指示疾病。

一旦你用患者的数据构建了这个模型,你就有了一个足够复杂的图表来做以下事情:

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

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

票数 2
EN

Stack Overflow用户

发布于 2014-03-11 19:19:13

也许你应该重新考虑你的模型。我的天,你没有分开症状,疾病,也许还有考试。

看一看Neo4J标签

(:symptom)-BELONGS->(:symptomGroup)-MAY_INDICATE->(:illNess) (:检查)-验证->(:疾病)

你必须对症状进行分组

因为这是一个大学项目,也许你不是一个医生,你不会被期望建立一个‘包治百病’的系统。

处理找不到解决方案的情况。

我不应该写这个,但我知道有个聪明的人在@ Vidal (法国医学出版商)最近发表了一篇关于这个话题的图解。

票数 1
EN

Stack Overflow用户

发布于 2014-03-06 21:59:43

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

代码语言:javascript
运行
复制
MATCH (n)-[r]-()
RETURN n, count(r) 
ORDER by count(r) desc
LIMIT 1

以上内容适用于Neo4j 2.0。请注意,这将遍历整个图形。但是如果你的需求是这样的话,你就得做些苦差事。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22225979

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档