Lab results usually live in scattered PDFs, which makes it hard to see how a biomarker changes over time or to ask questions about your own history.
- 01Uploaded PDFs go onto a BullMQ queue; workers parse the reports, extract biomarkers and generate embeddings.
- 02Structured results are stored in Supabase Postgres, with row-level security isolating each tenant's data at the database level.
- 03A chat interface retrieves relevant history with pgvector and answers grounded in the user's own records, alongside trend dashboards and nudges.
Architecture
- 1UploadPDF lab reports from the Next.js app
- 2QueueBullMQ on Redis schedules ingestion jobs
- 3WorkersParse reports, extract biomarkers, embed text
- 4StoreSupabase Postgres + pgvector, RLS per tenant
- 5UseRAG chat, trends and health nudges
- RAG-based chat using pgvector for semantic retrieval over medical history.
- Async ingestion pipeline (BullMQ + Redis) with scalable workers for parsing and embeddings.
- Biomarker tracking and trend analytics with dashboards and health nudges.
- Secure storage and sharing via Supabase row-level security for tenant isolation.
- Backend self-hosted on a spare Android phone with push-to-deploy (see nas-deploy).
