根據不同的症狀,會建議做些相對應的檢驗、檢查
檢查數據
examine_data.csv
建議值用“”引起來。避免中間有,號造成誤識別
檢查
"膝關節核磁"
"眼睛酸脹"
"視力"
"砂眼"
"辨色力"
"角膜"
"眼底"
創建節點
參考 創建藥品 節點。
import logging
from utils.neo4j_provider import driver
import pandas as pd
logging.root.setLevel(logging.INFO)
# 並生成 CQL
def generate_cql() -> str:
cql = """
CREATE (examine1:Examine {name: "膝關節核磁"}),
(examine2:Examine {name: "眼睛酸脹"}),
"""
df = pd.read_csv('examine_data.csv')
symptoms = []
for each in df['檢查']:
symptoms.extend(each.split(',')) # 按,號分割成數組,並將每行數據到一個隊列裏面
symptoms = set(symptoms) # 去除重複項
# 拼接 CQL
cql = ""
for idx, item in enumerate(symptoms):
cql += """(examine%s:Examine {name: "%s"}),\r\n""" \
% (idx, item)
return "CREATE %s" % (cql.rstrip(",\r\n")) # 刪除最後一個節點的 逗號
# 執行寫的命令
def execute_write(cql):
with driver.session() as session:
session.execute_write(execute_cql, cql)
driver.close()
# 執行 CQL 語句
def execute_cql(tx, cql):
tx.run(cql)
# 清除 Examine 標籤數據
def clear_data():
cql = "MATCH (n:Examine) DETACH DELETE n"
execute_write(cql)
if __name__ == "__main__":
clear_data()
cql = generate_cql()
print(cql)
execute_write(cql)