| import requests |
|
|
| def print_tree(node, prefix="", visited=None, root_id="Healthcare"): |
| """Recursive function to print all relationships in a hierarchical tree format.""" |
| if visited is None: |
| visited = set() |
|
|
| node_id = node.get("node_id") |
| if not node_id: |
| print(f"{prefix}(unknown node)") |
| return |
|
|
| if node_id in visited or (node_id == root_id and prefix != ""): |
| print(f"{prefix}(already listed) {node_id}") |
| return |
| visited.add(node_id) |
|
|
| relationship_label = f"({node.get('relationship', '')})" if node.get("relationship") else "" |
| print(f"{prefix}{node_id} {relationship_label}") |
|
|
| |
| descendants = node.get("descendants", []) |
| if not descendants: |
| print(f"{prefix}(no further descendants)") |
| else: |
| for i, child in enumerate(descendants): |
| new_prefix = f"{prefix}βββ " if i < len(descendants) - 1 else f"{prefix}βββ " |
| print_tree(child, new_prefix, visited, root_id) |
|
|
| def inspect_and_print_relationships(node_id): |
| """Inspect and display relationships for a specified node in a tree format.""" |
| response = requests.get(f"{base_url}/inspect_relationships?node_id={node_id}") |
| traversal_hierarchy = response.json() |
|
|
| print(f"\nTraversal Response for {node_id}:", traversal_hierarchy) |
| |
| if "node_id" not in traversal_hierarchy: |
| traversal_hierarchy = { |
| "node_id": node_id, |
| "descendants": traversal_hierarchy.get("child_relations", []) |
| } |
|
|
| print(f"\nInspect Relationships for {node_id} (Full Hierarchy):") |
| print_tree(traversal_hierarchy) |
|
|
| |
| base_url = "http://localhost:5000" |
|
|
| |
| print("\n--- Testing Graph Loading ---") |
| graph_data = {"graph_file": "graphs/PHSA/phsa_sec_340b.json"} |
| response = requests.post(f"{base_url}/load_graph", json=graph_data) |
| print("Load Graph Response:", response.json()) |
|
|
| |
| print("\n--- Testing Node Creation ---") |
| create_data = { |
| "node_id": "patient_123", |
| "data": {"name": "John Doe", "age": 45, "medical_conditions": ["hypertension", "diabetes"]}, |
| "domain": "Healthcare", |
| "type": "Patient" |
| } |
| response = requests.post(f"{base_url}/create_node", json=create_data) |
| print("Create Node Response:", response.json()) |
|
|
| |
| print("\n--- Testing Inspect Relationships for Node (Healthcare) ---") |
| inspect_and_print_relationships("Healthcare") |
|
|
| |
| print("\n--- Testing Inspect Relationships for Node (Section 340B) ---") |
| inspect_and_print_relationships("Section 340B") |