fix: preserve ancestor nodes in drug/directorate filters to prevent broken icicle hierarchy (Task 7.2)
Drug filter WHERE clause used `drug_sequence IS NULL` to keep ancestor nodes, but levels 0-2 have empty string '' not NULL. Changed to level-based gating: - Drug filter: `(level < 3 OR drug_sequence LIKE ...)` - Directorate filter: `(level < 2 OR directory IN (...) OR directory IS NULL OR directory = '')` - Trust filter was already correct (had `OR trust_name = ''`)
This commit is contained in:
@@ -170,7 +170,7 @@ def load_pathway_nodes(
|
||||
if selected_directorates:
|
||||
placeholders = ",".join("?" * len(selected_directorates))
|
||||
where_clauses.append(
|
||||
f"(directory IN ({placeholders}) OR directory IS NULL)"
|
||||
f"(level < 2 OR directory IN ({placeholders}) OR directory IS NULL OR directory = '')"
|
||||
)
|
||||
params.extend(selected_directorates)
|
||||
|
||||
@@ -180,7 +180,7 @@ def load_pathway_nodes(
|
||||
drug_conditions.append("drug_sequence LIKE ?")
|
||||
params.append(f"%{drug}%")
|
||||
where_clauses.append(
|
||||
f"({' OR '.join(drug_conditions)} OR drug_sequence IS NULL)"
|
||||
f"(level < 3 OR {' OR '.join(drug_conditions)})"
|
||||
)
|
||||
|
||||
if selected_trusts:
|
||||
|
||||
Reference in New Issue
Block a user