fix: resolve DuplicateIdError by including search_term in drug-fragment badge IDs (Task 7.1)
Badge IDs changed from f"{directorate}|{frag}" to f"{directorate}|{search_term}|{frag}"
to handle fragments appearing under multiple indications within the same directorate.
Callback parsing updated to use rsplit("|", 1)[-1] for the 3-part key.
This commit is contained in:
@@ -44,8 +44,8 @@ def register_drawer_callbacks(app):
|
||||
if not any(n for n in (fragment_clicks or []) if n):
|
||||
return no_update, no_update
|
||||
|
||||
fragment_key = triggered["index"] # e.g. "CARDIOLOGY|ABCIXIMAB"
|
||||
fragment = fragment_key.split("|", 1)[-1] if "|" in fragment_key else fragment_key
|
||||
fragment_key = triggered["index"] # e.g. "CARDIOLOGY|acute coronary syndrome|RIVAROXABAN"
|
||||
fragment = fragment_key.rsplit("|", 1)[-1] if "|" in fragment_key else fragment_key
|
||||
|
||||
# Get all available drugs from reference data
|
||||
all_drugs = (ref_data or {}).get("available_drugs", [])
|
||||
|
||||
@@ -63,7 +63,7 @@ def _make_directorate_card(directorate: str, indications: dict[str, list[str]])
|
||||
children=[
|
||||
dmc.Badge(
|
||||
frag,
|
||||
id={"type": "drug-fragment", "index": f"{directorate}|{frag}"},
|
||||
id={"type": "drug-fragment", "index": f"{directorate}|{search_term}|{frag}"},
|
||||
variant="light",
|
||||
size="sm",
|
||||
className="drawer-drug-badge",
|
||||
|
||||
Reference in New Issue
Block a user