IMPORTANT NOTE
While we would love to have a fully working demo, a number of our services require secret API health keys that must be secure. To that end, we have limited use of our service to ourselves for the purposes of this hackathon, and the nature of a hackathon means we do not have the ability to implement fully secure auth that complies with HIPPA.
What it does
Hospitals often have a massive time spend on cancelled appointments When a patient cancels an appointment, secretaries often spend significant amounts of time calling every person that is in a waitlist for an earlier appointment. Often, this also results in the appointment slot not being filled, and time being wasted. Our project aims to fix that.
When a patient cancels their appointment, our service automates sending all users that have requested to be on a waitlist to have an earlier appointment time than they were able to book initially. We send out personalized SMS messages to every patient in the waitlist, and the first person to respond rebooks their appointment.
How we built it
This project is built with a dockerizable microservice architecture, ensuring scalability with any number of doctors' offices. As a result, separate services handle various different aspects of the project. The direct communication with the EHR providers (for this hackathon, we limited this to just AthenaHealth, but the design is intended to be extended to additional EHR providers). This service normalizes API requests to be readable and standardized, written in Node.js. Then, there is a server that automates sending SMS messages to people who wish to be put on a waitlist for an earlier appointment, and approves the first user to respond to be rescheduled to the earlier date. This is written in Golang. Our frontend shows a live view of the waitlist and users who have rescheduled, and the overall calendar for doctors for the week. This is written in React and Next.js.
Challenges we ran into
AthenaHealth's API is incredibly inconsistent and non-normalized, even within objects returned in one request. Additionally, the sandbox and test databases are global and accessible to all users testing Athena at a certain time. Having our own database requires being an official practicing doctor's office. Working through Athena's inconsistencies, as well as the global nature of the testing database meant navigating ensuring outside changes don't negatively impact our service was an incredibly difficult ordeal, and meant significant testing and work.
Accomplishments that we're proud of
We were able to successfully implement a real life health EHR provider, and we were able to successfully implement a microservice architecture that can be easily dockerized and scalable.
What's next for LARI
We would like to add more interactivity to our webapp, including sending users .ICS calendar invites to appointments, and rescheduled appointments, as well as live notifications for when an appointment is cancelled or rescheduled. Additionally, we would want to implement other EHR APIs.
Log in or sign up for Devpost to join the conversation.