Inspiration
Clerky was built when I noticed a lot of repetition when clerking a patient. As a medical student and a programmer, I thought 'Why don't I build something that prevents all these repetition' among both medical students and practitioners alike.
What it does
It is web application that generates sex, age and department (e.g paediatrics, obstetrics and gynae and medicine and surgery)-specific question, while in the clerking flow it determines what questions to come next depending on what question was answered and after clerking it generates a clear and verbose summary.
How we built it
It was built with Laravel and Vue via the Inertia plugin because I figured Clerky would be highly reactivity dependent. It makes use of laravel's broadcasting, specifically Pusher channels to broadcast live questions when the agent is done generating the question depending on the presenting complaint(s). The agent makes use of Qwen3.7 Plus to generate high-yield, no-nonsense questions with little latency
Challenges we ran into
The challenges I ran into while building it was just time. Given I am medical student, finding the time to squeeze in programming it and studying for school was a bit tedious. But I am glad it is complete and ready.
Accomplishments that we're proud of
I am proud of the fact that some of my classmates find it truly helpful. That has been my goal all along, to build something useful
What we learned
Given that this is my first, truly AI-dependent project, I learnt a lot, including structured AI outputs, Server-Sent Events for streaming questions back to the frontend, prompt engineering for token efficiency, queue management, managing persistent clinical context across multiple clerking sections
What's next for Clerky
The next step for Clerky is refining the real time question generation experience. The current focus is on structured NDJSON streaming over SSE, delivering AI generated questions section by section as they are produced rather than waiting for the full response. From there, the goal is parallelising generation across all sections simultaneously to cut down consultation time, and eventually expanding the agent memory to carry clinical context across multiple patient encounters, not just a single session.
Built With
- ai
- broadcasting
- inertia
- laravel
- mysql
- qwen-cloud
- tailwind
- typescript
- vue
Log in or sign up for Devpost to join the conversation.