Hi Streamlit Community! ![]()
I’m a former medical student from Italy, currently transitioning into Data Science and Bioinformatics. During my clinical rotations, I noticed a huge issue: medical software often looks like a chaotic 1990s database, causing severe cognitive overload for doctors.
To solve this, I built NeuroDiag-AI, a proof-of-concept probabilistic diagnostic tool for psychiatric and neurological preliminary stratification.
Live Web App: https://neurodiag-ai-medicine.streamlit.app/ GitHub Repo:https://github.com/stefanopisani91/NeuroDiag-AI
How I built it with Streamlit:
-
Dynamic
st.session_state(“Onion Triage”): I wanted to mimic a real doctor’s progressive interview. The forms are deeply nested. Broad screening questions appear first; specific clinical follow-up questions (like HAM-D or UPDRS criteria) only render if the user toggles a positive response. This keeps the UI incredibly clean. -
Theming & UI: Used custom medical-grade color coding and progress bars to guide the user naturally without overwhelming them.
-
Visual Outputs: Integrated Radar Charts to visually explain the AI’s probabilistic output.
(Note: The underlying model is trained on 10,000 synthetic patients generated with strict clinical rules to ensure zero privacy/GDPR issues).
My Ask: I’d love your feedback on the UI/UX! Specifically, how do you usually handle complex, multi-level nested forms using session_state without making the code too messy? Any tips on optimizing my approach?
Thanks for checking it out!