A route optimization tool for nurses traveling between numerous patients.
Briova currently has no system in place to optimize the order in which nurses treat their patients. Our app aims to maximize the number of patients a Briova nurse can see in any given day by accounting for the time it takes to travel between patient's houses, while still putting high priority patients first.
- Swift (for iOS app)
- Flask (for communication with python script and CSVs in the backend)
- Google's Distance Matrix API (for route information)
- Google's ORTools, an open source software suite that we used to solve the Traveling Salesman Problem aspect of this optimization task
- Python
We factored in three different measurements into our optimization algorithm:
- Distance between patient houses (weighted highest)
- Priority level of task
- Due date of task
Using these three factors, we created weighted matrices that we passed into a tool built by Google to solve TSPs.
Our app takes in the ID of the employee and gets a list of that employee's patients based on the CSV's given to us by Optum (all patients were given random addresses in Champaign county for testing and development purposes). The app then communicates with a Flask server to get the optimal route based on our algorithm and displays it to the user in the form of a map.
This is a visual of the Optimal Path based on an employee id and and an Implementation of the Traveling Salesman problem. According to our method this is very close to the optimal path for this one employee to take. If another nurse were to run this algorithm they would get a different result based on thier start position and time of departure. The start position could be something like the office or the nurse's home.