Inspiration
Preventable adverse drug events are still common in hospitals, and the alert systems meant to catch them often get ignored. Clinicians see so many binary "these drugs interact" popups that the useful ones blend into noise. I wanted something closer to how clinicians actually make decisions: a patient-specific risk estimate, an explanation they could inspect, and a way to see how changing a medication would affect that risk before the order was signed.
What it does
Clinisight takes demographics, vitals, labs, comorbidities, and a current med list (or one of three demo cases) and returns calibrated risk for six ADEs: AKI, hyperkalemia, QT prolongation, liver toxicity, bleeding, and hypoglycemia. For each outcome, Clinisight shows model feature attributions alongside a separate guideline-based checklist, plus suggested next actions tagged to sources like KDIGO or HAS-BLED. A what-if panel lets you add or remove medications and instantly compare the updated prediction against the baseline so you can see risk move before you commit.
How I built it
The stack is Next.js + TypeScript on the frontend and FastAPI + PyTorch on the backend. I generated synthetic patients from literature-informed risk factors, trained a small MLP (41 inputs to 64 to 32 to 6), then calibrate probabilities with per-outcome temperature scaling. Captum Integrated Gradients handles model attributions. I kept the rule-based explanation and recommendation engine separate from the neural network so guideline-based reasoning never gets confused with model outputs. The frontend uses react-hook-form and Tailwind, with a live what-if interface communicating with /predict and /simulate.
Challenges I ran into
Keeping explanations honest was harder than shipping a score. Model attributions and clinical checklists don't always agree, so I presented them as two separate systems. Getting the demo running across devices was also surprisingly frustrating. Between localhost vs. phone IPs, CORS, and Next.js cross-origin HMR restrictions, I spent more time debugging networking than I expected.
Accomplishments that I'm proud of
I built an end-to-end workflow from patient input to calibrated risks, attributions, guideline factors, and live what-if simulation. Instead of hiding metrics in notebooks, I surfaced them in the interface. Three demo personas make the story easy to show in a few minutes.
What I learned
Building the neural network was the straightforward part. Making predictions understandable, and keeping model output separate from guideline reasoning, was harder. Synthetic data was enough to prototype the pipeline, but only if the generation assumptions and limitations are documented clearly.
What's next for Clinisight
A silent pilot against real hospital outcomes first, then richer drug coverage, EHR integration, and override tracking to see if it actually reduces alert fatigue. Still prototype-only. Not clinically validated.
Built With
- captum
- fastapi
- next.js
- pydantic
- python
- pytorch
- react
- scikit-learn
- tailwind
- typescript
Log in or sign up for Devpost to join the conversation.