Inspiration
Hospital work is full of coordination gaps: a patient is admitted, notes get added, tests are requested, and suddenly the team is juggling tasks across multiple tools and shifts, all of this normally done without any digital tooling. We wanted to build something that feels immediately useful to clinicians: a web app that's simple, fast to enter patients and optimises clinic schedules while maintaining the input of healthcare professionals.
What we built
Cliniclár is an MVP platform to orchestrate multidisciplinary workflow end-to-end:
Patient intake (Through text or voice): capture core patient details, and use an agentic workflow to suggest prioritisation while the keeping the clinicians approving every decision.
Task assignments: a global catalog of tests/procedures; tasks can be assigned per patient and the data collected from tests are not stored to ensure compliance with legislation.
Automatic hourly scheduling: a planner that distributes pending tasks into hourly slots using an AI agent that uses sample data, user input and clinic scheduling history to book appointments effectively
Clinic persistence memory (Mem0): Time blocks to avoid, priority override rules, and scoring weights that tailor the planner to the clinician/team.
The result: less back-and-forth coordination, and faster movement from a patient's appointment to their appropriate tests
Architecture • Backend: FastAPI + Supabase (Postgres) with strict validation (Pydantic v2), clear modules (routers/services/clients), and robust fallbacks. • Frontend: React + TypeScript + Vite with real routes, shared styling tokens, and consistent UI patterns (cards/modals). • AI: OpenAI + LangChain for structured extraction and priority estimation using ChatOpenAI, ChatPromptTemplate, and PydanticOutputParser, with strict JSON schema and fallback logic. ElevenLabs for speech-to-text in the voice intake flow; Mem0 to persist clinician planning preferences.
Planner design We intentionally avoid “black-box scheduling”. The LLM can suggest a priority, but the final ordering is deterministic:
\text{waiting_minutes} = \max\left(0,\frac{now - admitted_at}{60}\right)
\text{score} = (\text{priority} \cdot w_{p}) + (\text{waiting_minutes} \cdot w_{w})
Items are then sorted by score DESC, ensuring reproducibility and auditability. Preferences (time blocks, overrides, weights) adjust inputs, not the core logic.
Voice intake workflow We added a dedicated voice intake route: 1. Push-to-talk (spacebar) captures speech. 2. STT produces a transcript. 3. The LLM performs slot-filling (name, surname, reason for test, time preference). 4. The session finalizes into a Pending Review card with: extracted structured fields, suggested tasks/tests from the existing catalog, suggested priority + confidence + reason and a generated PDF transcript for traceability. 5. The clinician reviews/edits and confirms—only then the patient becomes “complete” and enters the scheduler.
What we learned • In clinical contexts, explainability and determinism matter as much as “smartness”. A good workflow tool must be predictable. • A “human-in-the-loop” flow (preview → confirm) dramatically reduces risk and increases trust. • Voice is powerful for speed, but only works if the system is strict about slot completeness, confirmation, and safe defaults. • Treating clinician preferences as a memory layer (Mem0) makes the system feel “personalized” without changing the underlying safety guarantees.
Challenges we faced
• Reliability of structured outputs: we designed strict schemas and fallbacks to avoid broken payloads from LLM responses.
• Building for compliance from the start, ensuring we avoid falling into clinical trial requirements
• Data integrity in scheduling: preventing collisions required DB constraints and careful planner sync logic.
• Voice UX constraints: implementing push-to-talk + chunked turns while keeping the conversation natural and ensuring we collect all required fields.
• Keeping the MVP cohesive: we had to add features (voice intake, preferences, scheduling) without breaking the already-working Patients flow, so modular architecture and minimal invasive changes were essential.
Cliniclár is a hackathon MVP, but it demonstrates a practical path to reduce clinical coordination overhead: capture → explain → confirm → schedule, with guardrails throughout. As a team we firmly believe that through user trials and more development this tool will become invaluable for clinics.
Built With
- css
- elevenlabs
- fastapi
- html
- langgraph
- mem0
- openai
- postgresql
- python
- react
- typescript
Log in or sign up for Devpost to join the conversation.