Inspiration

According to the Centers for Disease Control and Prevention (CDC), approximately 1 in 21 U.S. adults reported a vision disability in an earlier national study (CDC, 2025). For these individuals, navigating the healthcare system can present challenges, especially when important information is provided through printed documents.

Although assistive technologies such as screen readers and text-to-speech applications already exist, we wanted to create something specifically focused on healthcare accessibility. Our goal was to make medical documents easier to understand and improve communication between patients and healthcare providers. This inspired us to develop MediBridge, a web application designed to help bridge the accessibility gap in healthcare.

What it does

MediBridge is a healthcare accessibility application designed primarily for patients with visual or hearing impairments. The application allows users to upload images of medical documents, such as doctor's notes, treatment plans, and appointment instructions. It extracts the text from these documents and displays it in a readable format. For visually impaired users, MediBridge includes a text-to-speech feature that reads the extracted information aloud. Users can start, pause, resume, or stop the audio, allowing them to listen at their own pace. Additionally, MediBridge includes a live-captioning feature designed for deaf or hard-of-hearing patients. By converting spoken words into text, the application can help users follow conversations with healthcare providers or hospital staff. Together, these features aim to make navigating medical information and communicating in healthcare environments more accessible.

How we built it

We developed MediBridge using Python, Flask, HTML, CSS, and JavaScript. The backend uses Flask to handle document uploads and connect the user interface to our optical character recognition (OCR) system. We used OpenCV for image processing and Tesseract OCR to recognize and extract text from uploaded medical documents. Once the text is extracted, it is sent back to the frontend, where JavaScript's built-in Speech Synthesis API allows users to listen to the document. For live captions, we implemented the browser's Web Speech Recognition API, which converts spoken audio into text in real time. We also designed a simple, high-contrast interface with clearly labeled buttons and separate sections for document scanning, audio controls, and live captions. Our focus was on keeping the application lightweight, accessible, and easy to navigate without requiring complicated setup or specialized hardware.

Challenges we ran into

One of our biggest challenges was implementing accurate document scanning. Medical documents can contain different layouts, font sizes, and formatting, making text extraction difficult. We experimented with image preprocessing techniques using OpenCV to improve the quality of the text recognized by Tesseract. Another challenge was connecting our Python-based OCR system to the web interface. We had to learn how to use Flask to accept uploaded images, process them, and return the extracted text to the browser. We also encountered browser compatibility issues while developing the live-captioning feature. Speech recognition was not supported in our original browser, Zen, so we tested the functionality in Google Chrome, where it worked successfully. These challenges taught us the importance of testing individual components before integrating them into a complete application.

Accomplishments that we're proud of

Our biggest accomplishment was building a functional healthcare accessibility application within the limited time available during the hackathon.We successfully integrated three major features into one web application:

  • OCR document scanning: Extracting text from uploaded medical documents.
  • Text-to-speech: Reading extracted information aloud with playback controls.
  • Live captions: Converting spoken instructions into readable text.

We are especially proud that these features address different accessibility needs while remaining straightforward to use. Rather than building an overly complicated application, we focused on creating a working prototype that demonstrates how relatively simple technologies can help make healthcare more inclusive.

What we learned

Through MediBridge, we gained hands-on experience developing a full-stack web application and connecting multiple technologies. We learned how Flask handles communication between a Python backend and a JavaScript frontend, how OCR works with image-processing techniques, and how browser-based speech APIs can be used to build accessibility features. We also learned that accessibility involves more than simply adding assistive features. Interface design, browser compatibility, readability, and ease of use are all important considerations. Most importantly, we learned how to prioritize essential features and build a functional product under time constraints.

What's next for MediBridge

We would like to expand our application to cognitively impaired patients, as this is the greatest disability in the United States (source, year). If the patient is elderly or has difficulty remembering, the app will have an option to create a to-do list from action items listed from the inputted document. This will be able to be printed and downloaded, so that it can be carried around without requiring the app to stay open or for users to repeatedly operate the app. This will also address the privacy issue, because then data does not need to be retained for long periods of time. If medical information remains stored in an app for long periods of time, there is a risk for data leakage/vulnerability. Therefore, chats will not be stored for over 24 hours. Additionally, the models used are local, so the data does not go to a cloud. Finally, we would like to expand to support multiple languages, as the US is a diverse country, with about 8.4% of the population having limited English proficiency (People That Speak English Less than “Very Well” in the United States, 2020).

Built With

Share this project:

Updates

Submission history