Two of us care deeply about healthcare and the intersection between healthcare and computer science. Our volunteering experience at hospitals and working with elderly people made us realize how scheduling and paying hospital visits can be uneasy and frustrating processes. For example, patients spend a long time waiting in telephone queues to schedule an appointment. The process can be similarly frustrating to the hospital staff in charge of receiving calls and entering new patient data, because they could have spent their time doing attending to more important tasks, which could then increase the quality of patient care. The other two of us are passionate about applying chatbot to a new field. Conveniently, chatbot is an ideal platform for this application because it is interactive and easy to use from the user’s perspective. As a result, we decided to use chatbot to relieve the burden of scheduling appointments and registering new patients from both the patient and the administrator side. Moreover, we thought about how troublesome it can be to find driving directions to the hospital and nearby pharmacies, especially for elderly patients not familiar with map services. Therefore, we expanded our original idea to also include map services that allows easy visualization of directions and traffic.

What it does

Hospital patients can use our Facebook messenger chatbot to schedule appointments with specific physicians that fit their needs based on both the patients’ and the physicians’’ availability. The map provides directions to the Duke Hospital, local pharmacies, and their homes. It also visualizes live traffic flow and sickness in the area using a built-in Sickweather application from ESRI.

How we built it

We built the chatbot using Howdy Botkit with a Node.js frontend and the Facebook Development Console as the deployment platform (See We hosted a local web server using localtunnel and an Amazon Web Services Elastic Beanstalk instance. We used a google form linked to an online Excel spreadsheet to record new patient data. After the patient schedules their appointment, we integrated an ESRI platform using an ESRI ArcGIS API to link them to the map

Challenges we ran into

Localtunnel setup of the Facebook messenger chatbot, such as with setting up the correct host number. Coding the Node.js Howdy Botkit file using Javascript. Many syntax and data structure issues, since we are not too familiar with Javascript Issues with setup of the howdy botkit command structures Structuring the decision tree for the conversation and making it as simple as possible to fit the user’s needs. Making the ESRI web app public by deploying the webapp to the public.

Accomplishments that we're proud of

Making a potentially long and uneasy scheduling process very intuitive to the user is the selling point of our product. We’re proud of learning a new technology in a short time and successfully implementing it without major bugs or user issues. Most importantly, we take pride in using this technology to accomplish something that will make a difference in people’s lives.

What we learned

We learned how to build a chatbot and how to use the ESRI ArcGIS API. Moreover, we came to understand how to put ourselves into the user’s perspective and how to think about accomplishing what the user needs in the most simple and straightforward way. Finally, we learned how to have fun at a hackathon :)

What's next for HealthSchedulingBuddy

A smaller, but necessary update to HealthSchedulingBuddy will be to account for users scheduling appointments for another person. In order to makes this possible, we are planning to ask in the beginning of the conversation: “Are you scheduling the appointment for yourself or for someone else?” Depending on the answer, the question prompts would either continue to use “you” or to use “the patient”. For example: “Are you/ is the patient coming for a (a) new or (b) return visit?” Further, we would like to provide the user with a detailed time table for the entire hospital visit as a summary page at the end of the chatbot conversation. We will pull the driving time from the map and provide the times for when the patient should start driving, when the patient will arrive and when the appointment will begin. Additionally, we could provide a link to a page that summarizes driving directions that the user could print out or download. To extend beyond chatbot and to make it even more user-friendly, we envision an automated text messaging service that sends a reminder of the entire schedule a day before the visit and an hour before the patient should start driving. Any updates in the schedule due to traffic or appointment changes would be accounted for in this messaging service.

Share this project: