GraphGists

医院的一天

为信息库课程的Neo4J小组作业创建的图谱片段。它表示医生在医院一天内进行的医疗咨询。

作者

  • Pablo Álvarez Álvarez

  • Jesus Fdez. Velasco

  • Joaquín Ceballos Gómez

grafo

医院的一天

领域元素及其关系

医生

在特定时间为患者提供治疗,此外还可以获得制药公司的资助。

患者

患有疾病,由医生治疗。

疾病

由特定药物治愈。

药物

由制药公司生产,治疗疾病,此外可能与其他药物不兼容。

制药公司

生产药物,可能为某些医生的工作提供特定金额的资助。

图谱创建

查询

查询 1

列出所有以给定子字符串开头的医生姓名

例如 Fe

match (n:medico) where n.nombre starts with "Fe" return n.nombre, n.apellido

查询 2

列出输入医生的患者数量

例如,名为 Federica SANZ SANZ 的医生

match (n:medico)-[r:ATIENDE_A]->(p:paciente) where n.nombre = "Federica" and n.apellido = "SANZ SANZ" return count(r)

查询 3

列出所有治疗患者数量达到最小值(例如 5 名)的医生

例如 5 名患者

match (n:medico)-[r:ATIENDE_A]->(p:paciente)
with n.nombre as nombre, n.apellido as apellido, count(r) as numero
where numero >= 5
return nombre, apellido, numero

查询 4

列出所有患有两种疾病的患者,这些疾病分别由相互不兼容的药物治疗。列出疾病和药物。

match (p:paciente)-[:PADECE]->(e:enfermedad), (p)-[:PADECE]->(n:enfermedad),
(e)-[:CURADA_POR]->(m:medicina), (n)-[:CURADA_POR]->(k:medicina),
(m)<-[:INCOMPATIBLE_CON]->(k)
return DISTINCT p.nombre as nombre, p.apellido as apellido, e.nombre as enfermedad, m.nombre as medicina

查询 5

列出所有埃博拉病毒感染风险人群。最大深度级别 = 5,级别 0 为埃博拉病毒感染患者

当某人与患者或与感染风险人群接触时,则存在感染风险。

MATCH (p:paciente)-[:PADECE]-(e:enfermedad)
WHERE e.nombre = 'Ebola'
WITH p AS enRiesgo
MATCH (enRiesgo)-[:ATIENDE_A*0..5]-(otro)
WHERE otro:paciente or otro:medico
RETURN DISTINCT labels(otro) AS tipo, otro.nombre AS nombre, otro.apellido AS apellido

查询 6

列出治疗患者的医生,患者的疾病由资助该医生的制药公司生产的药物治愈,前提是资助金额高于该制药公司的平均资助金额。

match (f:farmaceutica)-[r:FINANCIA_A]->()
with avg(r.importe) as media, f as farma
MATCH (m:medico)-[:ATIENDE_A]->(:paciente)-[:PADECE]->(:enfermedad)-[:CURADA_POR]-(:medicina)-[:FABRICADA_POR]->(farma)-[r:FINANCIA_A]->(m)
where r.importe > media
RETURN DISTINCT m.nombre as nombre, m.apellido as apellido, farma.nombre as farmaceutica, r.importe as importe, media as media

轮到你了!

对图谱执行您认为有趣的查询