Inspiration

Scheduling healthcare appointments is tedious for patients and staff. We wanted to automate the process with a voice agent that can call patients, suggest available slots, and handle booking or rescheduling, reducing friction and no-shows.

What we built

  • An automated system connected to a FHIR server for managing appointments.
  • A call queue that prevents duplicate calls and suggests available slots.
  • Endpoints to book, reschedule, or cancel appointments.
  • Scripts for setup, demo runs, and resetting the FHIR server.

How we built it

  • Backend: Python + FastAPI for FHIR endpoints and scheduling logic.
  • Data: FHIR server for patients, practitioners, and appointment slots.
  • Automation: Wrapper scripts to manage queues and simulate agent calls.
  • Containerization: Docker for running services locally.

Challenges

  • Mapping complex FHIR data to backend logic.
  • Ensuring queue management avoids duplicate calls.
  • Handling edge cases for slot availability and rescheduling.
  • Testing without real voice integration (LiveKit).
  • Redesigning the system to manage complex latency issues.

What we learned

  • FHIR is powerful but requires careful data handling.
  • Queue logic is critical for asynchronous agent workflows.
  • Mapping natural language (e.g., "next Tuesday") to slots is non-trivial.
  • Automated appointment flows significantly reduce manual effort.

Next steps

  • Integrate finished LiveKit for real voice calls.
  • Improve natural language date/time parsing.
  • Add an admin UI to visualize queues and slots.
  • Support multi-practitioner and multi-location scheduling.

Built With

Share this project:

Updates