MediSight
The Future of Healthcare
The problem MediSight solves
Of course. Based on the project files, here is a description of your MediSight application.
The Problem It Solves
MediSight tackles the critical challenge of making preliminary medical diagnostics more accessible and immediate. In many situations, individuals may worry about a potential health issue, such as a suspicious skin lesion or symptoms of a respiratory illness, but face barriers to seeing a doctor immediately. These barriers can include:
Appointment Delays: It can take days or weeks to get a non-emergency appointment with a specialist.
Cost: The initial consultation fee can be a deterrent for some.
Accessibility: People in remote areas may lack easy access to specialized medical professionals.
Anxiety and Uncertainty: The waiting period before a professional diagnosis can cause significant stress.
MediSight acts as a first step, providing an instant, AI-powered risk assessment to help users make more informed decisions about seeking professional medical care.
How People Can Use It
MediSight provides users with a suite of AI-powered tools for preliminary health assessments, making certain diagnostic tasks easier, faster, and more proactive.
Symptom Analysis ("Dockinator"): Users can describe their symptoms in plain language, and the application's AI model will predict a potential underlying condition from a list of 41 common diseases. This helps users contextualize their symptoms and understand the potential seriousness before speaking with a doctor.
Skin Cancer Detection: Users can upload an image of a skin mole or lesion. The application uses a computer vision model to analyze the image and classify it into one of seven categories, determining if it is a benign lesion or a potentially cancerous one like Melanoma or Basal cell carcinoma.
How it helps: This provides an immediate risk assessment. It can prompt a user to seek an urgent dermatological consultation for a high-risk lesion or provide peace of mind for a low-risk one, encouraging safer health practices through early detection.
Tuberculosis (TB) Screening: Users can upload a chest X-ray image, and the application's model will predict whether the X-ray shows signs of Tuberculosis or appears normal.
How it helps: This feature can serve as a preliminary screening tool, especially in areas where access to radiologists may be limited. A positive indication would strongly guide a user to get clinical confirmation, facilitating earlier treatment.
Disclaimer: The application provides clear recommendations, such as "High risk detected. Please consult a dermatologist immediately," ensuring users understand that the tool is for preliminary assessment and not a substitute for a professional medical diagnosis. More disease models can be added later
Challenges we ran into
Of course. Here are the challenges you ran into, framed from the context of your project.
Challenges I Ran Into
Developing MediSight involved overcoming several technical hurdles, particularly in deploying the machine learning backend and integrating the disparate frontend and backend technologies.
Backend Deployment: Deploying the Python backend, which serves multiple large machine learning models, was the most significant challenge.
Dependency Management: Ensuring all necessary packages like transformers and torch were correctly listed in requirements.txt was a crucial first step to resolve initial ModuleNotFoundError crashes.
Model File Integrity: A persistent OSError: Unable to synchronously open file (file signature not found) error occurred while loading the Keras models. This required extensive debugging, including verifying the model file uploads, simplifying file paths, and isolating the problematic model to ensure it wasn't corrupted or an incompatible format.
Platform Configuration: Configuring the deployment environment on Hugging Face Spaces required setting up a Dockerfile to correctly install dependencies and launch the Gunicorn server, a non-trivial task for a complex application.
NLP Model Integration: Creating and serving the "Dockinator" feature involved more than just training a model.
The primary challenge was building a robust API endpoint in Flask that could efficiently handle user input. This involved loading the pre-trained transformer model and tokenizer into memory and creating a prediction function to process text, tokenize it, and perform inference to return a JSON response to the frontend.
Full-Stack Integration (JavaScript vs. Python): The project's frontend is built with React (using npm/Vite), while the backend is Python/Flask. Managing this dual-stack environment presented its own set of challenges.
Cross-Origin Resource Sharing (CORS): A key issue was enabling the frontend, deployed on a different domain, to communicate with the backend API. This was solved by implementing the Flask-CORS library on the backend to handle requests from the frontend application.
Environment Disparity: Developing and debugging required running two separate environments simultaneously (a Node.js server for the frontend and a Python server for the backend), demanding careful management of API endpoints and data formats.
