gpt4 book ai didi

java - 症状及其疾病数据库设计

转载 作者:行者123 更新时间:2023-11-29 10:58:15 25 4
gpt4 key购买 nike

我正在使用 Android 健康应用程序,该应用程序将显示人体部位,例如头部、胸部等。目前我有三个表,例如症状、疾病和症状_疾病表,它将链接这两个表。如果用户选择头晕、晕厥、乏力等症状,则显示高血压疾病。但是当用户只选择一种症状(比如头晕)时就会出现问题,它也会显示相同的疾病。我如何区分这些东西?以及如何实现。

这是我的症状表

s_id    | s_name    | s_part
1 |dizziness | Head
2 |syncope | Head
3 |asthenia | Head

疾病表

d_id    | d_name             | d_desc
1 |hypertensive disease| ....

症状_疾病表

s_id | d_id
1 | 1
2 | 1
3 | 1

我使用这个查询来获取疾病

SELECT d.d_name, d.d_desc, s.symp_name 
FROM symtoms s
LEFT JOIN symptom_disease sd ON sd.sid = s.sid
LEFT JOIN diseases d ON d.did = sd.did
WHERE s.sid IN (1,2,3) GROUP BY d.d_name

这里的问题是,当用户仅选择一种疾病时,我不希望它显示该疾病,因为一种症状并不表明用户生病了。因此,我需要关于如何实现这一点的建议。我看到一个解决方案,要求我在症状_疾病表中添加排名/权重。但我不知道如何实现这个方法。提前致谢。

最佳答案

这是使用概率列之类的东西来确定特定疾病的可能性的基本方法。

对于疾病表:

1 Flu
2 Lyme

症状表:

1 Muscle Aches
2 Headache
3 Fatigue
4 Fever
5 Vomiting
6 Tick Bite

对于疾病症状表:

s_id  d_id  probability
1 1 0.2
2 1 0.2
3 1 0.2
4 1 0.2
5 1 0.2
1 2 0.1
2 2 0.1
3 2 0.1
4 2 0.1
6 2 0.6

因此,如果患者说有症状 2、4 和 5,那么

select d_name, sum(probability)
from disease, disease_symptom
where disease.d_id = disease_symptom.d_id
and s_id in (2, 4, 5)
group by d_name
order by sum(probability) desc

Flu   0.6
Lyme 0.2

所以流感是最有可能的。

但如果患者出现症状 2、4 和 6,则

select d_name, sum(probability)
from disease, disease_symptom
where disease.d_id = disease_symptom.d_id
and s_id in (2, 4, 6)
group by d_name
order by sum(probability) desc

Lyme   0.8
Flue 0.4

所以很有可能是莱姆病。

关于java - 症状及其疾病数据库设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42697640/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com