smooth-app
A collaborative, free and open database of ingredients, nutrition facts and information on food products from around the world
AI-assisted radiology reporting (demo, synthetic data only)
Translation pending
HealthTypeScript · PLpgSQLGitHub @mvmmarcusOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
AI Radiology Reporting
Translation pending
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
AI-native radiology reporting MVP: a worklist, a reading room with a DICOM viewer next
to a structured report editor and a copilot panel, streaming AI report generation from
shorthand findings, and a hybrid copilot (deterministic safety rules + LLM review +
guideline calculators). Reports go through a sign/amend lifecycle and export to FHIR R4
and PDF.
Demo project. Synthetic data only. Not for clinical use.
Live: https://radpilot.vercel.app (demo login available on request)Read the full README ↗AI-native radiology reporting MVP: a worklist, a reading room with a DICOM viewer next to a structured report editor and a copilot panel, streaming AI report generation from shorthand findings, and a hybrid copilot (deterministic safety rules + LLM review + guideline calculators). Reports go through a sign/amend lifecycle and export to FHIR R4 and PDF.
Demo project. Synthetic data only. Not for clinical use.
Live: https://radpilot.vercel.app (demo login available on request)
Stack: Next.js 16 (App Router) · TypeScript · Supabase (Postgres, Auth, Storage, RLS) · Vercel AI SDK · Tiptap · Cornerstone3D · shadcn/ui + Tailwind v4 · Vitest · Playwright.
All sessions (0, 0b, Docs, Tracks A-D, Session 5) are done: auth and worklist, templates and streaming AI generation, the copilot/guidelines/lifecycle, the DICOM viewer and FHIR/PDF export, and the reading room that wires them together. See docs/sessions.md for how the work was split, and docs/demo-script.md for a 5-minute walkthrough of the seeded studies.
Requires Node 22 and Docker Desktop (running). The Supabase CLI is a dev dependency, installed by npm install.
npm install
cp .env.example .env.local
npm run db:start # local Supabase: API :54321, Studio :54323. Prints the keys.
Fill .env.local with the values db:start printed (run supabase status to see them
again): NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY (publishable or anon key) and
SUPABASE_SERVICE_ROLE_KEY (secret or service_role key). Then:
npm run db:reset # apply migrations and supabase/seed.sql
npm run dicom:generate # write the synthetic phantom DICOM to supabase/dicom/ (gitignored)
npm run dicom:upload # upload it to the private `dicom` bucket (uses the service role key)
npm run dev # http://localhost:3000
Log in as the demo radiologist: [email protected] / radpilot-demo (an admin, [email protected], has the same password).
supabase/seed.sql creates 2 users and 6 report templates (CT chest, CT head, CT
abdomen/pelvis, chest radiograph, US thyroid, mammography), then calls
seed_demo_data() for 25 synthetic studies. Study times are relative to now(), so
the worklist always looks fresh.
The demo has a shared login, so the studies are restored to this set every night at
07:00 UTC by reset_demo_data() (pg_cron), and on demand from the admin's user menu
(Restore demo data). Both live in
supabase/migrations/20261002000000_demo_data.sql.
Studies 1 to 10 each demo one feature, starting from an unread study:
| # | Exam | Patient | Priority | Demonstrates | Images |
|---|---|---|---|---|---|
| 1 | CTA chest | F 58 | STAT | Suspected PE: critical finding | ct-chest-phantom |
| 2 | CT chest | M 64 | routine | Incidental nodule, 30 pack-years: Fleischner | ct-chest-phantom |
| 3 | XR chest | M 71 | STAT | Left subclavian line, pneumothorax: critical + laterality | cr-chest-pneumothorax |
| 4 | XR chest | F 45 | routine | Already signed (final): FHIR and PDF export | cr-chest-normal |
| 5 | CT head | M 82 | STAT | Fall on anticoagulation, hemorrhage: critical + laterality | ct-head-phantom |
| 6 | CT abdomen/pelvis | F 27 | urgent | Right lower quadrant pain: laterality + sex checks | |
| 7 | CT abdomen/pelvis | M 59 | routine | Cirrhosis, HCC surveillance: LI-RADS | |
| 8 | US thyroid | F 39 | routine | Palpable left nodule: TI-RADS + laterality | |
| 9 | Mammography | F 52 | routine | Screening: BI-RADS | |
| 10 | CT abdomen/pelvis | M 68 | urgent | Hematuria: sex-mismatch check |
Studies 11 to 25 are the same exam types in other states, so a visitor can pick up anywhere in the workflow:
| # | Exam | State | Demonstrates |
|---|---|---|---|
| 11 | CT chest | draft | AI draft pending review: Accept / Regenerate, sign gate |
| 12 | XR chest | draft | Pneumothorax: signing blocked until the critical finding is acknowledged |
| 13, 25 | CT head | preliminary | Ready to sign |
| 14 | CTA chest | final, critical | Signed pulmonary embolism: critical flag on the PDF |
| 15 | XR chest | amended | Re-opened after signing: edit and sign again |
| 16, 17, 18 | CT abdomen/pelvis, US thyroid, mammography | final | Signed reports to export (TI-RADS, BI-RADS) |
| 22 | CT abdomen/pelvis | draft | Left/right conflict between findings and impression |
| 19, 20, 21, 23, 24 | CT head (STAT), XR chest, CT chest, US thyroid, mammography | unread | Start from scratch |
The phantoms are drawn by scripts/dicom/phantoms.ts (a CTA chest with a right
pulmonary artery filling defect and an 8 mm right lower lobe nodule, a head CT with a
right subdural hematoma, and normal and pneumothorax chest radiographs) and written by
a small dependency-free DICOM Part 10 writer (scripts/dicom/part10-writer.ts).
Full walkthrough (local Supabase, OpenAI, hosted Supabase, Vercel) with a check after each
stage: docs/setup.md. npm run verify:setup tells you what's missing.
Opening a study from the worklist (/studies/[id]) loads a three-pane reading room
(src/app/(app)/studies/[id]/):
reports.version).The header has Sign (runs the sign gate first, with a friendly message if blocked), Mark preliminary, Amend (once final) and, once the report is final or amended, Export FHIR / Export PDF links to the Track D routes.
Panels are resizable (shadcn's resizable, wrapping react-resizable-panels).
| Script | What it does |
|---|---|
npm run check | typecheck + lint + unit tests |
npm run test / test:watch | Vitest |
npm run test:e2e | Playwright, including the reading-room happy path (e2e/reading-room.spec.ts) |
npm run eval | AI eval suite: 18 golden cases scored against the configured LLMProvider (evals/) |
npm run db:start / db:stop / db:reset | local Supabase (reset re-applies migrations + seed, the "reset to demo state" script) |
npm run verify:setup | check env, Supabase, seed, DICOM storage and OpenAI (-- --env <file>, -- --live-ai) |
npm run db:types | regenerate src/lib/supabase/database.types.ts |
npm run dicom:generate / dicom:upload | write the phantom DICOM series / upload them to Storage |
src/
app/ thin routes: call module use cases only
lib/ env (zod), Supabase clients, logger
modules/<name>/
domain/ pure types, zod schemas, rules (no frameworks)
application/ use cases, depend on ports
infrastructure/ Supabase repositories, LLM adapters, mappers
ui/ React components
index.ts public domain entry point -> @/modules/<name>
server.ts server-only entry point -> @/modules/<name>/server
supabase/migrations/ schema, RLS, storage (invariants enforced in the DB)
supabase/seed.sql demo users, templates, synthetic patients and studies
scripts/ phantom DICOM generator and uploader
evals/ golden cases, scorers and the eval runner (npm run eval)
e2e/ Playwright specs