# CTCAE Grading Engine
Purpose: Rule-based engine for grading chemotherapy toxicity
Usage:
def grade_symptom(symptom: str, severity: int) -> dict:
"""Grade a symptom based on CTCAE criteria."""
rules = load_ctcae_rules()
if symptom not in rules:
return {"grade": 0, "error": "Unknown symptom"}
rule = rules[symptom]
grade = min(severity, 4) # Max grade 4 for MVP
provisional = grade >= 2 # Grade >= 2 needs confirmation
return {
"term": symptom,
"grade": grade,
"criteria": rule["criteria"][grade],
"provisional": provisional
}
Notes:
- Grade 1: Mild, no intervention
- Grade 2: Moderate, intervention needed
- Grade 3: Severe, hospitalization
- Grade 4: Life-threatening
- Grade >= 2 flagged provisional until clinician confirms
Source: HAD Digital MVP (ctcae_engine.py)