Spaces:
Running
Running
| """Dose policy features.""" | |
| from __future__ import annotations | |
| from app.common.types import PatientProfile | |
| def build_dose_features(patient: PatientProfile, drug: str) -> dict[str, float]: | |
| med_count = float(len(patient.medications)) | |
| interaction_load = min(1.0, med_count / 12.0) | |
| organ_stress = min( | |
| 1.0, | |
| max(0.0, (35.0 - float(patient.labs.egfr or 60.0)) / 35.0) | |
| + max(0.0, (float(patient.labs.ast or 30.0) - 80.0) / 80.0) | |
| + max(0.0, (float(patient.labs.alt or 30.0) - 80.0) / 80.0), | |
| ) | |
| return { | |
| "egfr": float(patient.labs.egfr or 60.0), | |
| "ast": float(patient.labs.ast or 30.0), | |
| "alt": float(patient.labs.alt or 30.0), | |
| "adherence": float(patient.adherence_estimate), | |
| "frailty": float(patient.frailty_score), | |
| "interaction_load": interaction_load, | |
| "organ_stress": organ_stress, | |
| "inr": float(patient.labs.inr or 1.2), | |
| "glucose": float(patient.labs.glucose or 110.0), | |
| "is_target_drug_present": float(any(m.drug == drug for m in patient.medications)), | |
| } | |