Engineer (TietoEvry), then independent build
Clinical Notes Intelligence
A clinical documentation assistant for therapists. It started at TietoEvry as a LangChain RAG summariser, then became an independent build: upload a session, get a transcript, summaries, SOAP and BIRP notes, and grounded Q&A.
Stack
Python, FastAPI, LangChain, Azure OpenAI, ChromaDB, Streamlit, React, TypeScript, ffmpeg
Problem
After each session a therapist has to turn a conversation into structured notes. The notes must be accurate and must never claim something the session does not support.
Interface
Architecture
What I built
- At TietoEvry: a GenAI therapy notes summariser with LangChain, RAG and Streamlit that significantly reduced practitioner review time.
- Independent build: React + TypeScript frontend and FastAPI backend; audio (MP3, WAV, M4A) or text upload with an editable transcript and ffmpeg pre-processing.
- Overall summary, key entities, SOAP note and BIRP note generation on Azure OpenAI, with a non-Azure OpenAI fallback.
- RAG Q&A over the session: chunking, embeddings, ChromaDB retrieval and reranking, confidence-threshold flagging and per-question caching.
- Guardrails keep answers grounded in the transcript, with no diagnoses and no PII.
- Runs fully offline on heuristic stubs when no AI credentials are configured; high-contrast, keyboard-navigable UI.
Stack
- Python
- FastAPI
- LangChain
- Azure OpenAI
- ChromaDB
- Streamlit
- React
- TypeScript
- ffmpeg
Share this case
