Inspiration
The idea for MacyRx was originally inspired by a study done at the University of Copenhagen where researchers found that interactions with a voice assistant can help keep patients engaged in their treatment. Building off of that, Krit had the idea of getting kids engaged in taking their medication, helping them build habits and avoid non-adherence.
After some prior research, including conversations with Wilson's mother and 11-year-old sister, we narrowed down our idea to be a medication tracker for families, which uses gamification (in the form of "streaks") to keep patients - especially children - more engaged.
What it does
MacyRx was developed for patients and caregivers to manage medications for themselves and their families. It helps patients take their medications as prescribed by engaging them in daily conversations and keeping them accountable through streaks and motivating messages. Our goal was to create a seamless, continuous, and supportive journey to good health for our patients.
There are two main parts to MacyRx - the voice assistant and the web interface. The voice assistant is the primary way that users will interact with MacyRx; it guides the patient through the medications they need to take and lets them know when they've added onto their streak. The web interface allows a user to add new family members, manage their medications, and check whether those medications are being taken.
How we built it
We started by analysing the patient's journey and identifying loopholes that cause their frustrations. We also used the SWOT (strengths, weaknesses, opportunities, threats) analysis to test out some potential competitors (apps available such as PocketRx, Shoppers Drug Mart, Starbucks). From there, we decided to focus on 2 goals: helping families organise their prescriptions and improving adherence.
The voice assistant was built on Actions on Google, which is the development platform for Google Assistant. Jalena and Khanh worked on the conversation flow, which we implemented using the Actions Builder. The voice assistant pulls information from a custom-built API via webhooks. The API and web interface are both running on an express.js server, with data being stored in a MongoDB database.
Challenges we ran into
Early in the process, we struggled to find an idea that was simultaneously achievable, novel, creative, and actually solved a problem. An early idea we had included a chatbot that would answer questions for pharmacists and only refer the patient to the pharmacist if the chatbot couldn’t answer the question; this didn’t feel achievable or novel enough, though. Krit’s idea to loop kids into their own healthcare to make them more engaged in it was a real breakthrough that got the gears turning a lot better.
On the development side of things, there were a few main challenges. The most obvious one is time. There are so many more features that we wanted to include but just couldn't within the timeframe:
- refill tracking
- recording why medications weren't taken
- being able to create profiles and add medications to profiles through the voice assistant
- more involved gamification (maybe in a more kid-oriented way)
- offering tips on how to stay on track
- push notification reminders
- give Macy more personality
Push notification reminders were a feature we tried to add, but we kept hitting an error when trying to connect to the API for sending push notifications through the Google Assistant and we never managed to figure out what the issue was.
Another challenge was just the fact that none of us had any prior experience with the Actions API. The learning curve for it was pretty steep.
Accomplishments that we're proud of
We’re proud that we managed to bring an idea from concept to a working demo in just a day and work together to come up with a novel and interesting idea. Despite not getting to all of the features we wanted to, the amount that we did implement still feels impressive to us.
What we learned
We learned to brainstorm the problems using different research tools. During the discussions, there were times we had heated debates on different opinions, ideas and priorities. We listened to each other and worked collaboratively to figure out the solution as a group. We learned that there was a balance between having a deep understanding of the topic and dedicating a good portion of the time available to build our solution.
During the development phase, the main thing we had to learn was how to use Actions on Google and the Actions Builder. We also had to learn how to use Passport.js for Google authentication, but that was less difficult to understand and implement than the Actions API.
What's next for MacyRX
- Enhance accessibility for the elderly and visually impaired patients by setting up a complete profile using voice only.
- Track remaining medication and notify users when their medication is getting low and needs a refill.
- Offer solutions tailored to the cause of non-adherence: adjust reminder frequency, track medication adverse effects, address cost concerns, etc.
- Push notification reminders when it’s time to take medication.
- Allow setting up of insurance information. Partner with insurance companies to convert streaks into insurance benefits/reimbursements.
Built With
- actions-on-google
- digitalocean
- express.js
- figma
- google-assistant
- google-auth-library
- gulp.js
- handlebars.js
- html
- miro
- mongodb
- mongoose
- node.js
- oauth
- passport
- sass
- uikit
Log in or sign up for Devpost to join the conversation.