| """DDI safety rules.""" | |
| from __future__ import annotations | |
| _CONTRAINDICATED: set[tuple[str, str]] = { | |
| ("warfarin_like", "nsaid_like"), | |
| ("benzodiazepine_like", "opioid_like"), | |
| } | |
| def is_contraindicated_pair(drug_a: str, drug_b: str) -> bool: | |
| key = tuple(sorted((drug_a, drug_b))) | |
| canon = {tuple(sorted(item)) for item in _CONTRAINDICATED} | |
| return key in canon | |
| def top_risky_pairs(drugs: list[str]) -> list[tuple[str, str]]: | |
| hits: list[tuple[str, str]] = [] | |
| for i, a in enumerate(drugs): | |
| for b in drugs[i + 1 :]: | |
| if is_contraindicated_pair(a, b): | |
| hits.append((a, b)) | |
| return hits | |