sql - 在 Neo4j、noSQL 中加入两个表
问题描述
我想解决的查询是:
《来院2年以上的糖尿病患者名单》
有两个表,“PATIENTS_INFO”和“HOSPITAL_INFO”都有一个共同的属性,“PATIENT_ID”
我试过这个查询,但没有用:
MATCH (p:PATIENTS_INFO)->(h:HOSPITAL_INFO) WHERE p.years > 2 AND h.Category = 'Diabetes'RETURN p;
有人可以帮我加入这两个表并解决这个查询吗?
解决方案
您的架构需要更多复杂性。您有患者和医院的节点。听起来您至少需要一个额外的节点,例如访问或入场。它可能是带有 ID、日期、访问类型(门诊或住院)和诊断属性的访问。您还需要这些节点之间的边/关系,例如:(p:Patient)-[pv:PatientVisit]-(v:Visit)-[hv:HospVisit]->(h:Hospital)
然后你可以这样查询:
match (p:Patient{ID:xxx})-[pv:PatientVisit]-(v:Visit)-[:HospVisit]->(h:Hospital)
with p where min(v.date)<****
with p,collect(v.ID) as VIDs
match (p:Patient{ID:xxx})-[pv:PatientVisit]-(v:Visit)-[:HospVisit]->(h:Hospital)
where v.ID in VIDs and v.diagnosis='Diabetes'
return p,v,h
***有几种方法可以处理日期差异,APOC 功能可能是最好的。
初始匹配查找与任何给定医院有两年关系的患者的所有患者就诊,并收集就诊 ID。第二个得到他们所有的访问和这些医院。
如果您只需要患者列表而不是所有详细信息,则可以修改此设置。
您应该考虑使用标准代码集进行诊断,例如 ICD10-CM 或 SNOMED。还有医院标识符,例如 NPI。您可能想查看 AHRQ 入院标准数据集,了解它们如何处理这些数据的复杂性:https ://www.hcup-us.ahrq.gov/nisoverview.jsp
推荐阅读
- azure - 在 azure kubernetes 上部署 jenkins
- reactjs - .NET Core React SPA - 未经授权的用户访问时的预期行为
? - azure-devops - 从模板中内置函数“eq”中的 azure 管道库变量组访问变量
- javascript - AWS SDK3 在 Web-worker 中不起作用
- reactjs - 将 useState setter 函数设置为 useEffect 中的数组时渲染过多
- gdb - 如何将 FASM 与 GDB 一起使用?
- javascript - 错误:040A1079:rsa 例程:RSA_padding_check_PKCS1_OAEP_mgf1:AWS 上的 oaep 解码错误
- django-templates - 如何解决 django 上的这个模板语法错误
- angular - Angular:单击已选择的父级时如何防止从url中删除子路由的路径
- python - .wait_variable(var) 导致 gui 冻结