All Stories
2026-09-174 min read

Healthcare · Multimodal AI · TableModel · Document · Audio · Pixeltable Cloud · Triage

MedDossier: Clinical Intake on One Audio + PDF + Image Row

Dictation, lab PDF, and a scan on the same row. Whisper and Gemini fill columns. A UDF flags contradictions. Not a diagnostic device. Not three microservices.

Pierre Brunelle

Pierre Brunelle

Pixeltable Team

Summary: MedDossier is clinical intake as a table row: doctor dictation, lab PDF, scan image. Whisper transcribes the audio. Gemini reads the PDF and the image. A UDF (or a third Gemini call) compares the three and writes triage_level. You do not store “a list of files” and hope a pipeline joins them later. Same shape as ClaimBot — different job. pip install pixeltable.

The Product#

  • Create a case with case_id
  • Attach pxt.Audio, pxt.Document, pxt.Image
  • Fill notes, lab summary, scan notes on insert
  • Flag routine / priority / urgent and a contradiction bit
  • Search similar scans (CLIP) and similar notes (MiniLM)

ClaimBot is FNOL: photo, memo, report, insurance triage. This post is the clinical analog — still one heterogeneous row, not an image array.

The Stitch You Delete#

One bucket for WAV. One for PDFs. One for DICOM exports you flattened to PNG. Three workers. A chart field you type by hand. Pixeltable is one insert. Delete the case; derived cells are not orphans in two other systems.

The Receipt#

python

Gemini on the image is a description column, not a shipped radiology API. CLIP on scan_image uses embedding= so a reference shot and a text query can share the index — same form as SnapCatalog. Same file on Cloud: db → schema → service.

What This Is Not#

Not a diagnostic device. Not medical advice. Not HIPAA-as-a-product — your BAA, retention, and EHR stay where they are. Not ClaimBot; that post is insurance FNOL. The multimodal row is intake evidence, not a finding.

People Also Ask#

Why not pxt.Image[]? One dictation, one lab PDF, one scan. Arrays hide the join. Many images are a child table.

Do I chunk the lab PDF? Only for passage citations. That receipt is DocuVision. Start with Gemini on lab_report.

How do I go to Cloud? Same app.py. PIXELTABLE_API_KEY, pxt://org:db, then pxt db updatepxt schema updatepxt service update.

Three Types, Clinical Job#

Declare the case. Apply the file. Insert audio, PDF, image. Read triage. Keep the intake. Delete the three-bucket stitch.

Declarative. Multimodal. Incremental.

Focus on innovation, not infrastructure.

10-minute tutorial · Join community