Inspiration
Our team was inspired by an interesting yet basic observation in healthcare – not all patients arriving first are those who should be seen first. Many times, queueing at the clinic works according to the first-come-first-served approach. There can be a patient arriving with chest pain or breathlessness and they can be standing in the queue behind other patients who have mild symptoms. Besides, sometimes the clinic receptionists might not be equipped to clinically assess all the patients due to their symptoms. Thus, the question of using AI to solve this problem arose. We decided to implement our idea in the development of a tool that will assist clinic staff with identifying potentially urgent cases and letting them know about this issue. Our team found it important to make the system accessible for people of different nationalities and those who have trouble with literacy. Therefore, we decided to create SmartQueue as a voice-based system with visual icons and interaction in different languages like English, Hindi, and Telugu.
What it does
SmartQueue turns a conventional clinic queue into an urgency-based, dynamic queue. A patient checks in by typing or voice entry of symptoms, choosing symptoms via visual icons, and uploading an image if desired. SmartQueue processes all the data and determines the urgency level of the request: RED — possibly critical and high priority YELLOW — requires attention GREEN — routine Then SmartQueue automatically builds a queue of the clinic based on urgency while respecting arrival sequence for patients with the same urgency level. Patients get a token and see where they are in queue, who is ahead, how long do they have to wait, and whether they are being seen by a doctor. Staff gets real-time notifications of patients' statuses and can call, update status, or override the urgency level generated by AI. It should be noted that SmartQueue was purposely created as human-in-the-loop: the system generates decisions, but the receptionist makes the final decision.
How we built it
SmartQueue has been created as a full-stack, real-time web application. React technology has been used to build the frontend, which includes two experiences – one for the patient and another one for the clinic staff. Voice input and announcements were provided using Web Speech API as well as visual symptom input and multilingual capability. The backend of SmartQueue was implemented using Node.js and Express technologies. The database used to store patient and queue data is MongoDB. Socket.IO is used to enable real-time communication between the patient interface and staff dashboard. AI-driven triage functionality is enabled through integration with Anthropic Claude. The AI receives the patient symptoms and corresponding context and gives back an urgency classification with the reasons for this decision. Fallback engine has been developed to support multi-language triage rules if the external AI service fails. Additionally, we have implemented image input, returning-patient recognition, chronic conditions context, QR-based tokens, queues tracking, wait time estimates, and staff override of the urgency level.
Challenges we ran into
Our primary challenge was to create an AI-driven workflow that could provide value while not turning the system into an autonomous diagnostician of the medical field. That is why we needed to clearly divide the AI-aided prioritization from clinical decisions. For this reason, we created the RED/YELLOW/GREEN system of urgency and included a receptionist so that the staff could review and change the AI's assessment. The next challenge was the matter of reliability. As our AI-driven service relies on the external LLM API, we needed to make sure that any potential failures in it would not prevent patients from checking-in. We addressed this issue via developing the multilingual rule-based fallback solution. The synchronization in real-time was the other challenge we faced. The patient interface and staff dashboard must stay consistent during the patients' addition, calling, completion, and reprioritization. This problem was solved via Socket.IO event-driven communication. Finally, we had to consider the accessibility of our service. The need to support voice input, multiple languages, visual symptoms, and audio announcements required us to create the intake procedure for those who might not feel comfortable filling in the digital forms.
Accomplishments that we're proud of
We are proud of the fact that our SmartQueue is not just an AI chatbot but an evolved solution which is used in practice as an end-to-end healthcare process. Some of the features that we are proud of include: AI-powered symptom urgency assessment Language support for English, Hindi, and Telugu Voice-based patient onboarding Visual symptom picking for illiterate patients Photo-based AI processing Queue reordering based on urgency Monitoring the patient queue Voice notifications to patients Patient QR tokens
What we learned
We learned that making an AI product goes far beyond hooking up an LLM API with a frontend through this project. We learned to design an AI product around a real-world workflow, structure outputs of models in a way that makes them usable for a software solution, deal with errors from an external API, and mix generative AI with deterministic algorithms. We also learned about the need for human-in-the-loop designs, which is particularly important for healthcare-related applications. It is crucial for an AI-driven recommendation to be explainable, re-reviewable, and, if required, overridable by a human. Engineering-wise, we got experience with real-time communication via WebSockets, API orchestration, MongoDB, voice interface, image processing, multi-language communication, and integration of AI within a full-stack app. But most importantly, we learned how to look at a problem from a user perspective instead of applying AI for its own sake.
What's next for SmartQueue
Our next step is to evolve the prototype into a robust healthcare technology platform that is ready for deployment in hospitals. We would like to enhance our triage process by employing validated clinical datasets and rigorous evaluation procedures while retaining control with the healthcare providers. In addition to this, we plan on adding multilingual capability for other Indian languages. Further releases can include integration with hospital and clinic management systems, better authentication and privacy features, an audit trail, and also integration with India's digital health framework. It may be worthwhile to analyze the queue data from the past and use them for predictions about staffing, waiting times, and resource management. We look forward to the day when SmartQueue will be flexible enough to work across clinics, PHCs, and hospitals and will prevent patients from being overlooked because of the time when they arrived.
Built With
- anthropic
- claude
- express.js
- generative
- healthcare
- javascript
- mongodb
- node.js
- react
- real-time
- rest
- socket.io
- speech
- speech-to-text
- text-to-speech
Log in or sign up for Devpost to join the conversation.