Inspiration
- Imagine experiencing acute stomach pain—you’re in agony. There are 2–3 hospitals nearby, but you don’t know which one will minimize your overall wait time.
- Another scenario: after going through triage, answering screening questions, and being assigned to a zone based on the severity of your symptoms, you’re told the average wait to see a healthcare provider is 10 hours. You have no idea what to expect along the way—whether more tests like bloodwork are required, for example.
- A final scenario: it’s your first visit to a general hospital. How can you quickly navigate the building?
These real-life challenges, inspired by the personal experiences of our team members, motivated this project. Hackathon projects should ideally tackle real-world problems.
What It Does
- Recommends appropriate hospitals near the user’s location.
- Once triaged, generates a dynamic, personalized timeline of the patient’s position in the queue.
- Provides comfort messages to the user.
- Offers navigation instructions for the hospital building, including approximate wait times for common diagnostic tests.
How We Built It
Front End
Our frontend is built using React Native (Expo), with the following key features:
Overall Structure and Navigation
- Screens are organized in
/src/screens/, while navigation logic resides in/src/navigation/. - HealthFlowNavigator manages transitions between key screens:
SymptomCheckerScreenTriageResultsScreenHospitalRecommendationScreen
- React Navigation ensures seamless transitions and parameter passing, such as triage level and user location.
Symptom Input and Triage (SymptomCheckerScreen)
- Collects user data, including:
- Pain level
- Symptom duration
- Consciousness state
- Pain level
- The backend may analyze this data (via DeepSeek LLM or Firestore) to suggest a possible triage level.
AI-Driven Triage Results (TriageResultsScreen)
- Displays a triage level based on:
- Frontend-defined triage logic.
- Insights from DeepSeek LLM.
- Frontend-defined triage logic.
- Triage levels are visualized with color codes for easy interpretation.
Hospital Recommendations (HospitalRecommendationScreen)
- Retrieves hospital data (location, wait times, etc.) via Firestore.
- Key features include:
- Sorting hospitals by proximity, wait times, and travel time.
- Displaying hospitals on a map using react-native-maps.
- Obtaining user location via expo-location.
- Interactive map markers displaying wait times and hospital details.
- Sorting hospitals by proximity, wait times, and travel time.
Personalized Care Pathway (PathwayStatusScreen)
- Generates a personalized care pathway via DeepSeek LLM, including:
- Step-by-step stages (e.g., triage, tests, consultations).
- Estimated durations and guidance.
- Step-by-step stages (e.g., triage, tests, consultations).
Services Layer
hospitalService.js: Fetches and processes hospital data.deepseekApi.js: Connects to DeepSeek LLM for triage reasoning and care pathway generation.
Authentication and Configurations
- Authentication is managed via Auth0.
- Location permissions are configured in
app.json.
Expo and React Native Ecosystem
- expo-location: Retrieves user coordinates.
- react-native-maps: Displays hospital locations and maps.
- Firestore: Stores and retrieves real-time data.
Back End
- Built with Python to scrape real-life emergency department wait time data from the Quebec government.
- Data cleaning includes:
- Standardizing time units.
- Calculating wait times with weighted formulas using variables like:
- Estimated wait time for non-priority cases.
- Number of people waiting in the ER.
- Average waiting room time (from previous day).
- Standardizing time units.
- Packaged the backend with FastAPI for usability and integrated real-time data updates with a scheduler.
Challenges We Ran Into
- Web scraping: Scraping data from quebec.ca required confirming compliance with policies. (Scraping was allowed as long as no explicit IDs or geographic locations were included in URLs.)
Accomplishments We’re Proud Of
- Developed an aesthetic and user-friendly UI.
- Gained proficiency in web scraping techniques.
- Automated data updates with FastAPI and a local scheduler.
What We Learned
- The importance of checking Discord frequently for updates!
- Emphasizing a user-centered approach when designing software solutions.
What’s Next for ReassurED
- Concurrency: Scaling the app to handle multiple users simultaneously.
- Real-Time Floor Map: Displaying live floor maps for easier navigation.
- Hospital Specialization: Incorporating user preferences for hospital specializations in recommendations.
Log in or sign up for Devpost to join the conversation.