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.
 
 
 
 

92 lines
3.4 KiB

# 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("---")