You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
93 lines
3.4 KiB
93 lines
3.4 KiB
|
4 months ago
|
# test_neo4j.py
|
||
|
|
from util.neo4j_utils import neo4j_client
|
||
|
|
|
||
|
|
# 插入一个标签为 "Disease" 的节点,属性包括 name 和 icd10
|
||
|
|
# node_id = neo4j_client.insert_node(label="Disease", properties={"name": "糖尿病", "icd10": "E11.9"})
|
||
|
|
# print(f"创建的新节点 ID: {node_id}")
|
||
|
|
#
|
||
|
|
# # 删除所有标签为 "Disease" 的节点及其关系
|
||
|
|
# neo4j_client.delete_all_nodes_by_label(label="Disease")
|
||
|
|
# print("已删除所有 'Disease' 标签的节点")
|
||
|
|
#
|
||
|
|
# 删除所有属性 name 为 "糖尿病" 的 Disease 节点
|
||
|
|
# neo4j_client.delete_nodes_by_condition(label="Disease", conditions={"name": "糖尿病", "icd10": "E11.9"})
|
||
|
|
# print("已删除符合条件的节点")
|
||
|
|
#
|
||
|
|
# # 查询所有标签为 "Disease" 的节点
|
||
|
|
# nodes = neo4j_client.find_all_nodes(label="Disease")
|
||
|
|
# for node in nodes:
|
||
|
|
# print(node)
|
||
|
|
#
|
||
|
|
# # 查找所有 name 为 "糖尿病" 的 Disease 节点
|
||
|
|
# nodes = neo4j_client.find_nodes_with_element_id(label="Disease", properties={"name": "糖尿病"})
|
||
|
|
# for node in nodes:
|
||
|
|
# print(node)
|
||
|
|
#
|
||
|
|
# # 更新 name 为 "糖尿病" 的 Disease 节点的 icd10 属性
|
||
|
|
# neo4j_client.update_node_by_properties(label="Disease", where={"name": "糖尿病"}, updates={"icd10": "E11.8"})
|
||
|
|
# print("节点已更新")
|
||
|
|
#
|
||
|
|
# 创建一个从 "Disease" 节点到 "Drug" 节点的关系,类型为 TREATS
|
||
|
|
# neo4j_client.create_relationship(
|
||
|
|
# source_label="Disease",
|
||
|
|
# source_props={"name": "糖尿病"},
|
||
|
|
# target_label="Drug",
|
||
|
|
# target_props={"name": "二甲双胍"},
|
||
|
|
# rel_type="TREATS"
|
||
|
|
# )
|
||
|
|
#
|
||
|
|
# # 查询所有类型为 "TREATS" 的关系
|
||
|
|
# relationships = neo4j_client.find_all_relationships(rel_type="TREATS")
|
||
|
|
# for relationship in relationships:
|
||
|
|
# print(relationship)
|
||
|
|
#
|
||
|
|
# # 查询所有从 "Disease" 到 "Drug" 的 "TREATS" 类型关系
|
||
|
|
# relationships = neo4j_client.find_relationships_by_condition(
|
||
|
|
# source_label="Disease",
|
||
|
|
# source_props={"name": "糖尿病"},
|
||
|
|
# target_label="Drug",
|
||
|
|
# target_props={"name": "二甲双胍"},
|
||
|
|
# rel_type="TREATS"
|
||
|
|
# )
|
||
|
|
# for relationship in relationships:
|
||
|
|
# print(relationship)
|
||
|
|
|
||
|
|
# # 删除所有 "Disease" 节点的关系
|
||
|
|
# neo4j_client.delete_all_relationships_by_node_label(node_label="Disease")
|
||
|
|
# print("已删除所有 'Disease' 节点的关系")
|
||
|
|
#
|
||
|
|
# 删除所有 name 为 "糖尿病" 的 Disease 节点的关系
|
||
|
|
# neo4j_client.delete_all_relationships_by_node_props(label="Disease", properties={"name": "糖尿病"})
|
||
|
|
# print("已删除符合条件的节点的所有关系")
|
||
|
|
|
||
|
|
# # 删除所有从 "Disease" 到 "Drug" 的 "TREATS" 类型关系
|
||
|
|
# neo4j_client.delete_relationships_advanced(
|
||
|
|
# source_label="Disease",
|
||
|
|
# source_props={"name": "糖尿病"},
|
||
|
|
# target_label="Drug",
|
||
|
|
# target_props={"name": "二甲双胍"},
|
||
|
|
# rel_type="TREATS"
|
||
|
|
# )
|
||
|
|
# print("高级关系删除完成")
|
||
|
|
|
||
|
|
# 更新从 "Disease" 到 "Drug" 的 "TREATS" 类型关系的某些属性
|
||
|
|
# neo4j_client.update_relationship(
|
||
|
|
# source_label="Disease",
|
||
|
|
# source_props={"name": "糖尿病"},
|
||
|
|
# target_label="Drug",
|
||
|
|
# target_props={"name": "二甲双胍"},
|
||
|
|
# rel_type="TREATS",
|
||
|
|
# new_rel_properties={"effectiveness": "high"}
|
||
|
|
# )
|
||
|
|
# print("关系属性已更新")
|
||
|
|
# neighbors = neo4j_client.find_neighbors_with_relationships(
|
||
|
|
# node_label="Disease",
|
||
|
|
# node_properties={"name": "糖尿病"},
|
||
|
|
# direction="both" # 或 "out"/"in"
|
||
|
|
# )
|
||
|
|
#
|
||
|
|
# for item in neighbors:
|
||
|
|
# print(f"关系: {item['relationship']['type']}")
|
||
|
|
# print(f"目标节点: {item['target']['label']} - {item['target']}")
|
||
|
|
# print("---")
|