Inspiration
What would you do with 22 hours of your time? I could explore all of Ottawa - from sunrise at parliament, to lunch at Shawarma palace, and end the night at our favourite pub, Heart and Crown!
But imagine you hurt your ankle and go to the ER. You're gonna spend that entire 22 hours in the waiting room, before you even get to see a doctor for this. This is a critical problem in our health care system.
We're first year medical students, and we've seen how much patients struggle to get the care they need. From the overwhelming ER wait time, to travelling over 2 hours to talk to a family doctor (not to mention only 1/5 Canadians having a family doctor), Canada's health care system is currently in a crisis. Using our domain knowledge, we wanted to take a step towards solving this problem.
What is PocketDoc?
PocketDoc is your own personal physician available on demand. You can talk to it like you would to any other person, explaining what you're feeling, and PocketDoc will inform you what you may be experiencing at the moment. But can't WedMD do that? No! Because our app actually uses your personalized portfolio - consisting of user inputed vaccinations, current medications, allergies, and more, and PocketDoc can use that information to figure out the best diagnosis for your body. It tells you what your next steps are: go to your pharmacist who can now in Ontario, prescribe the appropriate medication, or maybe use your puffer for an acute allergic reaction, or maybe you do need to go to the ER. But wait, it doesn't stop there! PocketDoc uses your location to find the closest walk-in clinics, pharmacies, and hospitals - and its all in one app!
How we built it
We've all dealt with the healthcare system in Canada, and with all the pros it offers, there are also many cons. From the perspective of a healthcare provider, we recognized that a more efficient solution is feasible. We used a dataset from Kaggle which provided long text data on symptoms, and the associated diagnosis. After trying various ML systems for classification, we decided to Cohere to implement a natural language processing model to classify any user input into one of 21 possible diagnoses. We further used XCode to implement login and used Auth0 to provide an authenticated login experience and ensure users feel safe inputing and storing their data on the app. We fully prototyped our app in Figma to show the range of functionalities we wish to implement beyond this hackathon.
Challenges we ran into
We faced challenges at every step of the design and implementation process. As computer science beginners, we took on a ML-based classification task that required a lot of new learning. The first step was the most difficult: choosing a dataset. There were many ML systems we were considering, such as Tensor Flow, PyTorch, Keras, Scikid-learn, and each one worked best with a certain type of dataset. The dataset we chose also had to give use verified diagnoses for a set of symptoms, and we narrowed it down to 3 different sets. Choosing one of these sets took up a lot of time and effort.
The next challenge we faced occurred due to cross-platform incompatibility, where Xcode was used for app development but the ML algorithm was built on python 3. A huge struggle was bringing this model to run on the app directly. We found our only solution was to build a python API that can be accessed by Xcode, a task that we had no time to learn and implement.
Hardware was also a bottleneck for our productivity. With limited storage and computing power on our devices, we were compelled to use smaller datasets and simpler algorithms. This used up lots of time and resources as well.
The final and most important challenge was the massive learning curve under the short time constraints. For the majority of our team, this was our first hackathon and there is a lot to learn about the hackathon expectations/requirements while also learning new skills on the fly. The lack of prior knowledge made it difficult for us to manage resources efficiently throughout the 36 hours. This brought on more unexpected challenges throughout the entire process.
Accomplishments that we're proud of
As medical students, we're proud to have been introduced to the field of computer science and the intersection between computer science and medicine as this will help us become well-versed and equipped physicians.
Project Planning and Ideation: Our team spent the initial hours of the hackathon discussing various ideas using the creative design process and finally settled on the healthcare app concept. Together, we outlined the features and functionalities the app would offer, considering user experience and technical feasibility.
Learning and Skill Development: Since this was our first time coding, we embraced the opportunity to learn new programming languages and technologies. We used our time carefully to learn from tutorials, online resources, and guidance from hackathon mentors.
Prototype Development: Despite the time constraints, we worked hard to develop a functional prototype of the app. We divided and conquered -- some team members focused on front-end development including designing the user interface and implementing navigation elements while others tackled back-end tasks like cleaning up the dataset and building our machine learning model.
Iterative Development and Feedback: We worked tirelessly on the prototype based on feedback from mentors and participants. We remained open to suggestions for improvement to enhance the app's functionality.
Presentation Preparation: As the deadline rapidly approached, we prepared a compelling presentation to showcase our project to the judges using the skills we learned from the public speaking workshop with Ivan Wanis Ruiz.
Final Demo and Pitch: In the final moments of the hackathon, we confidently presented our prototype to the judges and fellow participants. We demonstrated the key functionalities of the app, emphasizing its user-friendly design and its potential to improve the lives of individuals managing chronic illnesses.
Reflection: The hackathon experience itself has been incredibly rewarding. We gained valuable coding skills, forged strong bonds with our teammates, and contributed to a meaningful project with real-world applications.
Specific tasks:
- Selected a high quality medical-based dataset that was representative of the Canadian patient population to ensure generalizability
- Learned Cohere AI through YouTube tutorials
- Learned Figma through trial and error and YouTube tutorials
- Independently used XCode
- Learned a variety of ML systems - Tensor Flow, PyTorch, Keras, Scikid-learn
- Acquired skills in public speaking to captivate and audience with our unique solution to enhance individual quality of life, improve population health, and streamline the use of scarce healthcare resources.
What we learned
- Technical skills in coding, problem-solving, and utilizing development tools.
- Effective time management under tight deadlines.
- Improved communication and collaboration within a team setting.
- Creative thinking and innovation in problem-solving.
- Presentation skills for effectively showcasing our project.
- Resilience and adaptability in overcoming challenges.
- Ethical considerations in technology, considering the broader implications of our solutions on society and individuals.
- Experimental learning by fearlessly trying new approaches and learning from both successes and failures.
Most importantly, we developed a passion for computer science and we’re incredibly eager to build off our skills through future independent projects, hackathons, and internships. Now more than ever, with rapid advancements in technology and the growing complexity of healthcare systems, as future physicians and researchers we must embrace computational tools and techniques to enhance patient care and optimize clinical outcomes. This could be through Electronic Health Records (EHR) management, data analysis and interpretation, diagnosing complex medical conditions using machine learning algorithms, and creating clinician decision support systems with evidence-based recommendations to improve patient care.
What's next for PocketDoc
Main goal: connecting our back end with our front end through an API
NEXT STEPS
Enhancing Accuracy and Reliability: by integrating more comprehensive medical databases, and refining the diagnostic process based on user feedback and real-world data.
Expanding Medical Conditions: to include a wider range of specialties and rare diseases.
Integrating Telemedicine: to facilitate seamless connections between users and healthcare providers. This involves implemented features including real-time video consultations, secure messaging and virtual follow-up appointments.
Personalizing Health Recommendations: along with preventive care advice based on users' medical history, lifestyle factors, and health goals to empower users to take control of their health and prevent health issues before they arise. This can decrease morbidity and mortality.
Health Monitoring and Tracking: this would enable users to monitor their health metrics, track progress towards health goals, and receive actionable insights to improve their well-being.
Global Expansion and Localization: having PocketDoc available to new regions and markets along with tailoring the app to different languages, cultural norms, and healthcare systems.
Partnerships and Collaborations: with healthcare organizations, insurers, pharmaceutical companies, and other stakeholders to enhance the app's capabilities and promote its adoption.
Log in or sign up for Devpost to join the conversation.