在線問診 Python、FastAPI、Neo4j — 創建 檢查節點


根據不同的症狀,會建議做些相對應的檢驗、檢查

檢查數據

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)

image

源代碼地址:https://gitee.com/VipSoft/VipQA

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章