Whenever you get a medical report back from a lab, it is written entirely in dense jargon meant for doctors. If you try to search for the terms online, you usually end up reading extreme diagnosis threads and panicking. Most patients have no idea what their own health data means, which is a massive communication gap.
LumenSeed translates medical reports into clear, friendly language that anyone can read. It doesn't give medical advice. It just explains what the terms mean, what the normal ranges are, and what questions you should actually ask your doctor during your next visit.
Won 1st place at SparkX, Techfest IIT Bombay — the annual science and technology festival of IIT Bombay, one of India's largest tech fests.
Architecture
1. PDF Ingestion
OCR fallback for scanned reports using Tesseract with Hindi and English language packs. Text extraction for digital PDFs via PyMuPDF. The ingestion layer handles multi-page reports, mixed layouts, and embedded tables. Reports are classified by type (blood test, radiology, pathology, etc.) for downstream processing.
2. Semantic Chunking
Semantic boundary detection splits the report into logical sections. Rather than naive token-count splitting, the system uses embedding similarity to detect topic shifts: when a paragraph's embedding diverges from the running section centroid, a new chunk begins. This preserves clinical coherence within each chunk.
3. Entity Linking
Extracted terms are mapped to UMLS (Unified Medical Language System) ontologies. UMLS integrates over 200 biomedical vocabularies including SNOMED CT, ICD-10, LOINC, and RxNorm. Each term gets a CUI (Concept Unique Identifier) that disambiguates acronyms: “RA” maps to Rheumatoid Arthritis, not Right Atrium, based on surrounding context.
4. Retrieval
LangChain RAG pipeline pulls reference definitions from verified medical dictionaries stored in a Weaviate vector database. The retrieval layer is hybrid: dense embeddings (PubMedBERT) for semantic similarity combined with sparse BM25 for keyword precision. Retrieved passages are reranked by a cross-encoder before being passed to the generation stage.
5. Generation
Fine-tuned LLM writes the summary with a strict tone classifier enforcing human, calming output. The classifier checks every generated sentence against a trained tone model that penalizes alarmist language (“you may have cancer”), unsupported inferences, and overly technical phrasing. Output is constrained to read like a calm, knowledgeable friend explaining test results.
6. Confidence Scoring
Each explanation gets a reliability score so patients know how trustworthy the information is. The score combines: (a) retrieval relevance from the vector DB, (b) semantic alignment between the question and the generated answer, and (c) a calibrated uncertainty estimate from the LLM's output logits. Low-confidence explanations flag the user to verify with their doctor.
Privacy-First Design
Medical data is incredibly sensitive. The system runs on local-first principles wherever possible, stripping out PII (personally identifiable information) before any text gets processed by the inference layer. Name, age, patient ID, doctor name, and hospital identifiers are detected using a combination of regex patterns and a fine-tuned NER model, then replaced with anonymized tokens before the text reaches the RAG or generation stages. The original report is never stored or transmitted.