75% of adults over the age of 50 take prescription medication on a regular basis. Of these people, over half do not take their medication as prescribed - either taking them too early (causing toxic effects) or taking them too late (non-therapeutic). This type of medication non-adherence causes adverse drug reactions which is costing the Canadian government over $8 billion in hospitalization fees every year. Further, the current process of prescription between physicians and patients is extremely time-consuming and lacks transparency and accountability. There's a huge opportunity for a product to help facilitate the medication adherence and refill process between these two parties to not only reduce the effects of non-adherence but also to help save tremendous amounts of tax-paying dollars.

What it does

EZPill is a platform that consists of a web application (for physicians) and a mobile app (for patients). Doctors first create a prescription in the web app by filling in information including the medication name and indications such as dosage quantity, dosage timing, total quantity, etc. This prescription generates a unique prescription ID and is translated into a QR code that practitioners can print and attach to their physical prescriptions. The patient then has two choices: 1) to either create an account on EZPill and scan the QR code (which automatically loads all prescription data to their account and connects with the web app), or 2) choose to not use EZPill (prescription will not be tied to the patient). This choice of data assignment method not only provides a mechanism for easy onboarding to EZPill, but makes sure that the privacy of the patients’ data is not compromised by not tying the prescription data to any patient UNTIL the patient consents by scanning the QR code and agreeing to the terms and conditions.

Once the patient has signed up, the mobile app acts as a simple tracking tool while the medicines are consumed, but also serves as a quick communication tool to quickly reach physicians to either request a refill or to schedule the next check-up once all the medication has been consumed.

How we built it

We split our team into 4 roles: API, Mobile, Web, and UI/UX Design.

  • API: A Golang Web Server on an Alpine Linux Docker image. The Docker image is built from a laptop and pushed to DockerHub; our Azure App Service deployment can then pull it and update the deployment. This process was automated with use of Makefiles and the Azure (az) CLI (Command Line Interface). The db implementation is a wrapper around MongoDB (Azure CosmosDB).
  • Mobile Client: A client targeted exclusively at patients, written in swift for iOS.
  • Web Client: A client targeted exclusively at healthcare providers, written in HTML & JavaScript. The Web Client is also hosted on Azure.
  • UI/UX Design: Userflow was first mapped with the entire team's input. The wireframes were then created using Adobe XD in parallel with development, and the icons were vectorized using Gravit Designer to build a custom assets inventory.

Challenges we ran into

  • Using AJAX to build dynamically rendering websites

Accomplishments that we're proud of

  • Built an efficient privacy-conscious QR sign-up flow
  • Wrote a custom MongoDB driver in Go to use Azure's CosmosDB
  • Recognized the needs of our two customers and tailored the delivery of the platform to their needs

What we learned

  • We learned the concept of "Collections" and "Documents" in the Mongo(NoSQL)DB

What's next for EZPill

There are a few startups in Toronto (such as MedMe, Livi, etc.) that are trying to solve this same problem through a pure hardware solution using a physical pill dispenser. We hope to collaborate with them by providing the software solution in addition to their hardware solution to create a more complete product.

Built With

Share this project: