File size: 1,380 Bytes
fd0c71a | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | #!/usr/bin/env python3
"""Build local drug knowledge artifact."""
from __future__ import annotations
import json
from pathlib import Path
from app.knowledge.ddi_knowledge import top_risky_pairs
from app.knowledge.drug_catalog import DRUG_CLASSES
from app.knowledge.hepatic_rules import is_hepatic_unsafe
from app.knowledge.renal_rules import is_renal_unsafe
from app.knowledge.side_effect_ontology import SIDE_EFFECT_TAGS
from app.knowledge.substitution_rules import SUBSTITUTIONS
from app.knowledge.taper_rules import requires_taper
def main() -> None:
root = Path(__file__).resolve().parents[1]
out_dir = root / "data" / "raw" / "knowledge"
out_dir.mkdir(parents=True, exist_ok=True)
payload = {
"drug_classes": DRUG_CLASSES,
"example_top_pairs": top_risky_pairs(list(DRUG_CLASSES.keys())),
"side_effect_tags": SIDE_EFFECT_TAGS,
"substitutions": SUBSTITUTIONS,
"taper_required": {drug: requires_taper(drug) for drug in DRUG_CLASSES},
"renal_flags": {drug: is_renal_unsafe(drug, 25.0) for drug in DRUG_CLASSES},
"hepatic_flags": {drug: is_hepatic_unsafe(drug, 120.0, 90.0) for drug in DRUG_CLASSES},
}
(out_dir / "drug_knowledge.json").write_text(json.dumps(payload, ensure_ascii=True, indent=2), encoding="utf-8")
print("wrote drug_knowledge.json")
if __name__ == "__main__":
main()
|