DoctorFinder!
这个GraphGist代表了一个移动应用后端,帮助用户根据其身体特征、位置和当前症状找到合适的药物和专家。
我们的结果模型
来自VIDAL的♥ (Suzanne, Nicolas, Édouard, Marouane, Sébastian, Thibaut, Olivier, Sylvain, Florent (又名 Cypher 翻译者))。
用户故事
药物建议
作为一名应用用户,
当我开始输入我的症状时合适的药物将按治疗类别分组返回。
示例
当前用户是一名35岁男性,表现出喘息和胸闷,患有对倍他米松过敏的高敏反应。
我们期望所有支气管扩张剂类药物(排除倍他米松,因为上述过敏)和黄嘌呤类药物都出现,因为它们是数据集中唯一适合成人的治疗类别。
MATCH (patho:Pathology)-[:MAY_MANIFEST_SYMPTOMS]->(symptoms:Symptom)
WHERE symptoms.name IN ['Chest tightness', 'Wheezing']
WITH patho
MATCH (DrugClass:DrugClass)-[cures:CURES]->(patho)
WHERE cures.age_min <= 35 AND 35 < cures.age_max
WITH DrugClass
MATCH (drug:Drug)-[:BELONGS_TO_CLASS]->(DrugClass), (allergy:ALLERGY)
WHERE allergy.name IN ['Hypersensitivity to Betametasone']
AND (NOT (drug)-[:MAY_CAUSE_ALLERGY]->(allergy))
RETURN DrugClass.name AS `Therapeutic class`, COLLECT(DISTINCT drug.name) AS `Drugs`;
医生查找器
作为一名应用用户,
当我开始输入我的症状时然后,能够(啊哈!)开具合适药物的医生将与这些药物一起返回,并按距离排序。
关于“合适药物”的定义见上文。如果药物无需处方即可购买,这些药物应返回“无需医生”的说明,到用户家的距离为0。
示例
当前用户是一名19岁女性,表现出咳嗽,患有对倍他米松过敏的高敏反应,居住在'14, rue de Bruxelles 75009 PARIS, FRANCE' (纬度:48.88344, 经度:2.33180)。
我们期望所有血管科医生都返回,因为他们可以开的药物能够治疗与用户症状相关的疾病。
此外,黄嘌呤类药物无需处方,并且也能治疗同类疾病。
MATCH (patho:Pathology)-[:MAY_MANIFEST_SYMPTOMS]->(symptoms:Symptom)
WHERE symptoms.name IN ['Cough']
WITH patho
MATCH (DrugClass:DrugClass)-[cures:CURES]->(patho)
WHERE cures.age_min <= 19 AND 19 < cures.age_max
WITH DrugClass
MATCH (drug:Drug)-[:BELONGS_TO_CLASS]->(DrugClass), (allergy:ALLERGY)
WHERE allergy.name IN ['Hypersensitivity to Betametasone']
AND (NOT (drug)-[:MAY_CAUSE_ALLERGY]->(allergy))
WITH DrugClass, drug
OPTIONAL MATCH (doctor:Doctor)-->(spe:DoctorSpecialization)-[:CAN_PRESCRIBE]->(DrugClass)
RETURN COALESCE(doctor.name + ' (' + spe.name + ')', 'No doctor required') AS `Doctor`, COLLECT(DISTINCT drug.name) AS `Drugs for your symptoms`, 2 * 6371 * asin(sqrt(haversin(radians(48.88344 - COALESCE(doctor.latitude,48.88344))) + cos(radians(48.88344)) * cos(radians(COALESCE(doctor.latitude,90)))* haversin(radians(2.33180 - COALESCE(doctor.longitude,2.33180))))) AS `Distance to home (km)`
ORDER BY `Distance to home (km)` ASC;
尽管看起来很复杂,但距离计算只是Cypher手册中解释的海弗辛公式的一种空安全变体(确实,有些药物无需医生处方)。
此页面有帮助吗?