Facilities Preferences Page (Unfiltered)
Facilities Preferences Page (Filtered)
Facilities Preferences Page (Input Safeguard)
Facilities Preferences Page (Facility Tool Tip)
We import modules to calculate drive time based on each user's location
Application.html flask form implementation
CSV containing all healthcare facilities in Canada (Statistics Canada)
Hospital-side future development flowchart
Waiting for hours in clinics and emergency rooms is a horrible yet relatable experience for all. The hesitancy of many to seek healthcare due to these long wait times is equally unfortunate. To address these issues, we realized that we could significantly reduce the amount of time patients waste by directing everyone to the optimal facility.
What it does
Health Connect’s goal is to make healthcare accessible for all. With a database containing every healthcare facility in Canada, our app ranks all nearby options by order of convenience. Our ranking algorithm uses the user’s location to consider the current commute times and hospital wait times to determine the optimal facility for each user. Health Connect’s strength is in its simplicity. With a polished UI and a seamless UX, our web app is designed to be intuitive for all, including seniors!
How we built it
- We started by using Figma as our wireframing software to plan out the UI/UX
- We decided to use Flask for its simplicity in creating web applications
- In order to process our large dataset, we used Pandas, a Python library for data manipulation and analysis
- We used Geocoder and Geopy to determine the user’s location and calculate their distance from each facility
- To integrate forms in our application, we used WTForms, a flexible forms validation and rendering library for Python web development
- We used Bootstrap 4 to create our appealing and responsive front-end
Challenges we ran into
- Having no prior experience using Flask, we learned Flask and Jinja from scratch
- We also learned how to use the Python pandas library to effectively manipulate our dataframe and sort information
- Implementing the sorting system by province, healthcare facility, and max wait time was our key objective. For this, we had to resolve several issues retrieving form data using Flask and WTForms, sorting our dataframe with pandas, and displaying information on the website using Jinja and Bootstrap.
Accomplishments that we're proud of
- We are proud of our progress with learning Flask. In just 2 days, we were able to learn how to use Jinja2 and Flask to generate templates and return form data!
- We successfully manipulated a large CSV file using pandas; we were able to filter through thousands of rows of data, obtain the information the user requested, create new columns, and sort the data.
- We learned to use WTForms to retrieve form data in order to sort the displayed results in a personalized manner.
- Using Google Maps url manipulation, we were able to redirect the user to the location of each healthcare facility on Google Maps, with the healthcare facility shown with a destination pin. This allows users to conveniently find directions to the location.
What we learned
- We all learned how to use Flask to make HTML templates that we could use as the building blocks for our web application
- We also learned how to use Jinja2 in order to integrate our Python code into HTML
- Working with Pandas helped us understand more about data manipulation and processing in Python
- We learned how to use WTForms to create and take data from a form
What's next for Health Connect?
The next steps for Health Connect include developing a hospital-end wait time calculator to provide live wait time updates. We plan to first create a basic wait time calculator that generates an estimated time based on the number of patients and the number of staff members working in the facility at that time. We then want to incorporate AI into our work to evaluate the complexity of entered patient symptoms and generate a highly personalized wait time. This way, someone who uses the application with a small ankle injury may be assigned a shorter wait time than someone who reports chest pain. With this system in place, Health Connect will be able to produce more accurate estimates for users.