Inspiration

Millions of people in India get lab reports full of abbreviations, numbers, and English medical jargon. For patients with limited formal schooling or who are more comfortable in Hindi, Tamil, Telugu, or Bengali, these reports create instant anxiety. Many turn to random Google results that show the worst-case scenarios. Doctors are often too busy to explain every line, so patients leave the clinic without understanding their own results and without good questions to ask.

I wanted to build something that acts like a calm companion (“Saathi”) — not a doctor, just a clear translator of the numbers into everyday language.

What it does

LabSaathi is a patient-centred web tool that turns a dense blood-test report into plain language in 5 Indian languages (English, Hindi, Tamil, Telugu, Bengali).

Patients simply upload a photo or PDF of their report and instantly get:

  • A short 3-line summary of how many tests are Normal / Borderline / Needs Attention
  • Colour-coded status badges for every test
  • A one-sentence biological explanation of what each out-of-range number means in the body
  • 5 neutral, non-alarming questions they can take to their doctor
  • Everything written for people with no medical background

The app also shows a collapsible table of the exact values it extracted, so the patient can double-check against the printed report.

How we built it

We used a deterministic hybrid pipeline so the critical math never depends on the AI:

  1. Call 1 – Gemini Vision OCR (Gemini 3.8 Flash, with 3.6 Flash as backup)
    Reads the report and extracts test names, values, units and the printed reference ranges into structured JSON.

  2. Pure Python Math Engine
    Zero AI guesswork.

    • Inside the printed range → Normal
    • Outside by ≤ 10% → Borderline
    • Outside by > 10% → Needs Attention
    • Qualitative results or missing ranges → Not Rated
  3. Call 2 – Gemini Language Explainer
    Translates test names into the chosen script, writes one-sentence physiological explanations, and crafts the 5 doctor questions — all under strict safety rules.

  4. Script Integrity Check
    A Python regex scan looks for unexpected characters (Cyrillic, Arabic, Chinese, or wrong Indic script) and automatically retries once if anything is wrong.

The whole interface is built with Streamlit so it feels simple and fast.

Challenges we ran into

  • Making the OCR reliable on real-world phone photos (blurry, tilted, low light).
  • Keeping the AI strictly explanatory — never diagnosing, never suggesting medicines or diets.
  • Ensuring the translations stay in the correct Indian script and don’t leak characters from other languages.
  • Designing a 10% borderline rule that is transparent and easy to explain, while being clear that it is not a clinical standard.

Accomplishments that we're proud of

  • A fully working end-to-end pipeline that is deterministic for all status calculations.
  • Support for 5 major Indian languages with proper script handling.
  • Strong safety layer: explains only, never diagnoses, never prescribes, always points the patient back to their doctor.
  • Transparent “extracted values” table so patients can verify the AI’s reading.
  • Clean, progressive UI that shows the summary immediately while the explanations are still being generated.

What we learned

  • Hybrid systems (AI for understanding + deterministic code for decisions) are far more trustworthy in healthcare than pure LLM pipelines.
  • Patients need neutral language more than they need medical terms.
  • Simple, honest limits (OCR can fail, translations are AI-generated, ranges come only from the printed report) actually increase user trust.

What's next for LabSaathi

  • More Indian languages (Marathi, Gujarati, Kannada, Malayalam, Punjabi)
  • Tracking the same biomarkers across multiple reports over time
  • Review of all wording by doctors and native speakers
  • Audio read-aloud for users who prefer listening
  • Better handling of more report formats beyond metabolic panels

Built With

  • google-genai
  • googlegeminiapi
  • healthcare
  • multilingualai
  • ocr
  • python
  • python-dotenv
  • streamlit
Share this project:

Updates

Submission history