Article

MediJourney: Converting Paper Chaos into Medical Intelligence

9 min readVinay Punera
aiprivacylocal-firstgeminiopenaihealth-techmedical-report-analyticsdigitization
ListenAI narration
0:00
04:33
Abstract visualization of scattered paper medical reports transforming into a clean, digital trend line.

Editor's Note: This is a personal project born out of frustration with managing my family's medical records. It's an exploration of what's possible with local-first AI, not a commercial product.

Try it Live: medijourney.stealthbit.in

We've all been there: sitting in a new doctor's office, clutching a thick folder of crumpled lab reports from the last five years. The doctor has precisely ten minutes. They glance at the most recent sheet, but the rich history of your health - the subtle trend in your thyroid levels, the gradual improvement in Vitamin D - is lost in the noise of paper and scattered PDFs.

The data exists, but it's trapped in a format that humans can't process quickly. It's Data Rich, Intelligence Poor.

I built MediJourney to fix this. It's a tool that doesn't just store files but actually reads, understands, and visualizes them. And primarily, I wanted to do this without ever seeing your data.

The Pain Point: No Way to Analyze Reports Over Time

Here's the reality that drove this project: I had years of blood reports - PDFs, scanned images, physical papers - and no way to analyze them over time without going through each one manually.

If you do regular health checkups (even just once a year), reports accumulate fast. Blood work, lipid panels, thyroid tests, HbA1c, kidney function markers, liver enzymes... the list goes on.

The Chaos of Paper & PDFs

Each report arrives as either:

  • A physical paper from the diagnostic lab
  • A PDF downloaded from an online portal
  • Sometimes, just an image clicked on a phone

Over years, these accumulate into a mess:

  • Reports scattered across email attachments, WhatsApp forwards, and physical folders
  • No unified view of how a marker has changed over time
  • When visiting a specialist, you're left frantically searching for "that one report from last year"

The Core Problem

I realized the problem wasn't a lack of data. It was the inability to visualize trends across scattered reports without manually going through each one.

I needed something that could:

  1. Consolidate all reports - PDFs, images, scanned papers - into one place
  2. Extract the markers automatically - no manual data entry
  3. Show trends over time - a simple line chart showing cholesterol, sugar levels, or any marker across years
  4. Generate doctor-friendly summaries - a clean graphical + tabular view I could share during consultations

Why Existing Solutions Failed

Sure, there are health trackers and EHR apps. But:

  • Most require manual data entry (who has time for that?)
  • They're often locked to specific hospital ecosystems
  • Privacy concerns - do I really want to upload my family's medical history to yet another cloud service?

MediJourney was born from this gap. It understands that health data isn't just numbers - it's context, it's history, it's patterns that emerge only when you can see the full picture.

A Typical Use Case in Action

Let's say you have 12 blood reports from 3 years of quarterly checkups. Here's how MediJourney helps:

StepWhat Happens
1. UploadDrop all 12 PDFs/images at once
2. AI ExtractionThe AI reads each report, extracting markers like Hemoglobin, TSH, Creatinine, etc.
3. Automatic Standardization"Hb", "Hgb", and "Hemoglobin" are unified into a single tracked marker
4. Trend VisualizationInteractive charts show how each marker has changed over 3 years
5. Doctor-Ready ExportGenerate a PDF with your selected markers' trends to share during consultations

This is the power of turning passive medical documents into active health intelligence.

The Architecture: Zero-Backend & Local-First

Health data is radioactive. The moment it touches a server, you have a massive responsibility. Breaches happen. Compliance is always a nightmare.

I circumvented this entire problem by asking: What if there is no server?

MediJourney is built with a Local-First architecture.

  • Storage: All data lives in your browser's IndexedDB. That means if you clear your cache, your data is gone (by default).
  • Sync (Under Privacy Review): To solve the persistence problem without a backend, we use the user's own cloud. I am currently re-evaluating the integration (even the picker) to ensure zero unauthorized access. This feature is temporarily disabled while I explore the most secure implementation with verified zero-knowledge adaptors.
  • Compute: AI processing happens via API (or locally), but the state management is purely client-side.

MediJourney Process Flow A visual overview of how MediJourney ingests, processes, and visualizes data without a backend.

Choosing an AI Model: What Works

This is where choosing the right AI model matters. Medical reports aren't simple text - they're structured data with context.

When you upload a blood report, the AI needs to:

  • Parse tabular layouts - understand rows, columns, and nested sections
  • Recognize medical terminology - know that "RBC" and "Red Blood Cell Count" are the same thing
  • Interpret reference ranges - understand that "Normal" changes based on age, gender, and lab equipment
  • Handle variations - different labs use different formats, abbreviations, and units

This requires multimodal reasoning, not just OCR. Any leading AI model with strong vision capabilities should work well. I've been experimenting with Google Gemini 3 Pro because of its ease of use and solid multimodal reasoning, but OpenAI's GPT-4o, Anthropic's Claude, and other frontier models are equally capable for this task.

The key requirement is that the model must be vision-enabled - it needs to understand images/PDFs, not just text.

Note on API Keys (BYOK): MediJourney follows a "Bring Your Own Key" model. I do not provide free AI processing. You must provide your own API Key (from Google AI Studio, OpenAI, or other providers) in the settings. This ensures you control the billing and the quotas.

True Privacy with Local LLMs (OpenAI Compatible)

For the absolute privacy purists, I added support for any OpenAI-compliant endpoint. This means you're not tied to Big Tech APIs.

You can spin up LocalAI, Ollama, LM Studio, or llama.cpp on your own machine and point MediJourney to http://localhost:1234/v1.

Recommended Models (2026 Edition): Since MediJourney relies heavily on reading charts and tables from images, you must use a vision-enabled model. Simple text models will not work. I have successfully tested:

  • Qwen3-VL (Instruct or Thinking): Released in late 2025, this model (especially the 7B and 30B variants) currently holds the crown for local OCR and chart reasoning. It rivals proprietary models for extracting data from complex medical tables.
  • Gemma 3: Google's latest open model (released March 2025) is now natively multimodal. It runs incredibly fast on consumer hardware and handles medical reports better than its predecessors.

⚠️ Important Note on Privacy

While MediJourney itself is "Zero-Backend" and stores nothing on my servers, the AI provider you choose matters:

  • Local Models: 100% Private. Data never leaves your machine.
  • External APIs (Gemini/OpenAI): If you use cloud API keys, your image data is sent to Google or OpenAI for processing. While they generally do not train on API data by default for paid tiers, you must read their specific Terms of Service and Data Retention policies to ensure you're comfortable with how they handle sensitive health data.

The "Regrounding" Engine: Solving Data Dirtiness

It's easy to ask an LLM to "extract the hemoglobin value." It's hard to make sure it plots "Hb", "Hgb", "Haemoglobin", and "Hemoglobin (Fasting)" on the same chart line over five years.

This is where the Regrounding Feature comes in.

I implemented an iterative feedback loop. When a new report is uploaded, the AI doesn't just look at the paper; it looks at your existing database keys.

Diagram 1

I call this the "Standardization Engine". It allows the app to automatically unify different terminologies without the user having to manually link synonyms in their head.

Feature Deep Dive

I wanted this to be a robust utility, not just a tech demo.

  • ⚡ Multiple Profiles: Manage health records for your entire family (parents, kids, spouse) in one browser instance, keeping their data logically separated in the database.
  • 📂 JSON Portability: You are not locked in. You can export your entire database as a raw JSON file at any time. It's your data, in a standard format.
  • 📄 PDF Export: Need to share with a doctor? Generate a clean, summarized PDF of your trend lines and abnormal results directly from the browser.
  • ☁️ Drive Backup (Under Privacy Review): Seamlessly sync your local IndexedDB to your personal Google Drive for cross-device access. Currently disabled for security audit.
  • 🔍 RAG Assistant: Chat with your records using a retrieval-augmented generation pipeline. Ask, "Show me all my kidney function tests from 2024," and get a cited answer.

Call for Collaboration 🤝

When I researched this space, I found that commercial health platforms do offer report analysis features - but always as part of a larger product, often requiring you to upload your data to their servers. I couldn't find a single standalone, privacy-focused solution that lets you analyze your medical reports over time without giving up your data.

That gap was another driver for building MediJourney.

This is a passion project, but the potential for Privacy-First Health AI is massive. There are so many ways this can be extended, and I'm looking to collaborate with open-source enthusiasts:

  • UX Engineers: Healthcare data is dense. I need help making it beautiful and accessible.
  • Secure Cloud Sync: I need help effectively integrating Google Picker in a strictly trustless manner. If you know how to build secure, user-owned sync adaptors, I'd love to connect.
  • On-Device AI Researchers: I'm experimenting with Gemma 3N (Google's open-weights model) to move the entire pipeline offline, removing the need for even the API call to external AI services.
  • Privacy & Security Experts: There are many more ways to make this even more privacy-respecting - end-to-end encryption, better local storage options, secure sharing mechanisms. If you're passionate about privacy-first software, let's talk.
  • Feature Ideas: If you have ideas on how this tool can help in ways I haven't thought of - different report types, integrations, visualizations - I'm all ears.

If you're interested in building the future of patient-owned medical records, reach out. I'd love to hack on this together.