An offline, privacy-first Android app that turns scattered lab reports (PDFs and paper scans) into per-person health trends. Built for families, with multiple profiles. No cloud, no accounts, no network permission.
Author: Somesh Mohapatra License: PolyForm Noncommercial 1.0.0. Free for personal, research, and other noncommercial use; commercial use needs a separate license from the author. Third-party components keep their own licenses, see THIRD_PARTY_NOTICES.md. Releases up to and including v1.0.0 were published under the MIT License, and copies obtained under it keep those terms.
- Ingest a lab report (camera, image, or PDF).
- Extract text on-device (PDF text layer first, OCR for scans).
- Parse biomarkers with deterministic rules, falling back to a small local model. Results printed as words (urine colour, "Trace" protein, "Positive (+)" blood, "2-4 /hpf") are kept as text.
- You verify and correct every value before anything is saved. Dates like 01/07/2026 are read day first or month first from the phone's region (no location access), and the report's own unambiguous dates settle it first. Settings has a manual override.
- View trends over time per profile. Ask simple questions in a data-only chat ("show my ALT trend").
- Export a PDF, or back up and restore an encrypted file to move to a new phone.
- Zero network access. The release build strips the INTERNET permission.
- No raw files stored. Images, PDFs, and OCR text are never written to the database.
- Nothing is saved without human verification.
- Backups are encrypted with a user passphrase.
LabTrends only stores, retrieves, and plots values you provide. It does not diagnose, interpret, or advise. Always consult a qualified clinician.
Model files are not committed to this repo (GitHub rejects files over 100 MB). They are attached to GitHub Releases and imported in-app through the file picker. See PLAN.md for the default choices.
Phases 1 to 8 built. Still open from PLAN.md: the Phase 0 on-device measurements and the "Later: model packaging" item (publishing GGUF files with checksums). See PLAN.md and docs/ARCHITECTURE.md.