Open /ir workspace
Dictum + Interventional Radiology

Your template.
Your terms. Structured.

Pick the procedure. Dictate or paste the consult.
Dictum extracts the structured note in your template, with your vocabulary,
flags what payers will ask for, and writes the prior-auth packet.

9 procedure templates live · grounded extraction · PA / appeal / P2P / necessity letter
Open the workspace See what's shipped
Scroll
It's Live

The workspace is on. Try it now.

Everything below the fold of this page used to be roadmap. Most of it shipped. Here's the short version of what's wired up at /ir right now.

Open workspace
/ir
Pick a template, paste or dictate the consult, click Extract. Fields, gaps, and citations come back side-by-side.
9 templates
Wired and seeded
GAE, BVN, MILD, kyphoplasty, ESI, UFE, renal ablation, cryo, varicose vein. Each ships ~11 gap rules and a procedure-specific schema.
Sonnet 4.6
Grounded extraction
Every structured field cites a transcript span (a prov_id). If the model can't cite the source, it leaves the field null instead of inventing one.
4 documents
Payer paperwork, one click
Prior-auth packet. Letter of medical necessity. Peer-to-peer prep sheet. Denial appeal letter. All from the same extraction.
Gap tiers
BLOCK WARN SUGGEST
BLOCK = patient-safety / hard payer requirement. WARN = realistic denial risk. SUGGEST = nice-to-have. The rules know which payers care about what.
Voice + paste
Dictate or type
Same voice bar as census/admissions. Mic on the phone, mic at the desk, or paste the consult straight in. Whatever's faster on the day.
The Ask

Select. Dictate. Done.

The ask is simple: pick the right template before walking in — GAE, back pain, kypho, ESI, ablation, UFE, varicose veins — dictate your findings, and get a structured note out without fighting your EHR. Then have the prior auth letter waiting before the patient leaves the room.

Voice-to-structure is built and tested. 101 tests passing. Medical-grade speech recognition with your IR vocabulary loaded as keyterms — it knows kyphoplasty, basivertebral nerve, genicular artery, CEAP, Kellgren-Lawrence. Works on Android, Windows, and iPhone — no app install, runs in your browser.

Template selection — live. Pick from 9 procedure templates at /ir and the workspace pre-loads the schema, keyterms, and the gap rules that template needs. Sonnet 4.6 extracts the structured fields and cites the transcript span behind every value. The insurance defense layer — PA packet, necessity letter, P2P prep, denial appeal — is wired to the same extraction. One click per document.

Still tightening: per-procedure prompt tuning so the smaller templates don't miss obvious fields, and the dictation last-mile so the mic on /ir lands every transcript in the textarea without the user having to refocus.

Medical-grade speech recognition
Built, tested, 101 tests passing
IR vocabulary injection
BVN, MILD, kyphoplasty, GAE, CEAP, etc.
Three-tier structured extraction
Regex → fast LLM → full LLM
Session persistence + export
Clipboard, PDF, JSON, FHIR
Android + Windows + iPhone
Cross-platform via Chrome, zero app install
Procedure template registry (9 IR templates)
GAE, BVN, MILD, kypho, ESI, UFE, renal abl, cryo, VV
Grounded structured extraction (Sonnet 4.6)
Every field cites a transcript span (prov_id)
Insurance defense layer
PA packet, necessity letter, P2P prep, appeal letter
Per-procedure prompt tuning
8 of 9 templates use a generic prompt — fields under-extract
Dictation last-mile on /ir
Voice bar reaches Sonnet, transcript landing in textarea still tightening
How It Works

Select. Dictate. Review.

Four steps between selecting the procedure and having a structured note.

1

Select Procedure Template

Before you walk in, tap the procedure. Templates pre-load your IR vocabulary as Deepgram keyterms and set the output structure. One tap — SpineJack consult, GAE evaluation, UFE follow-up, whatever you're doing next.

template: "back_pain.kyphoplasty"
keyterms: ["kyphoplasty", "SpineJack", "vertebral compression fracture", "VCF", "PMMA", "T12", "L1", "bipedicular", "balloon tamp"]
output_format: "ir_consult_note"
2

Dictate Your Findings

After the visit, dictate what matters — on your phone, desktop, or wherever you document. Speak naturally using your own terminology. Dictum understands IR vocabulary out of the box and structures your dictation against the template fields. Type anything you prefer to type.

input: voice dictation, typed entry, or both
vocabulary: procedure-specific keyterms (auto-loaded from template)
platform: Android / Windows / iPhone — browser-based, no install
3

AI Structures the Note

When the visit ends, the intelligence layer processes the raw transcript against your template. Free-form conversation becomes structured fields — HPI, relevant imaging, assessment, plan, procedure details. You didn't fill out a form. You had a conversation. This three-tier extraction pipeline is built and tested — real-time voice to structured clinical data.

pipeline: three-tier extraction (regex → fast LLM → full LLM)
input: raw_transcript + template_schema
output: structured_note{hpi, assessment, plan, procedure_details}
4

Review, Correct, Export

Review the structured note. Tap to correct any misrecognitions — Dictum learns your corrections and adds them to future keyterm sets. Before you export, the insurance gap analysis checks your note against payer-specific criteria: is the KL grade documented? KOOS score? Compression therapy duration? Missing fields get flagged. One click generates a prior auth letter citing your documented criteria + guideline language. Export to clipboard, PDF, or FHIR.

corrections: feed back to keyterm suggestions
insurance_check: gap analysis against payer criteria (RAG-powered)
prior_auth: auto-generated letter citing SIR/ACR/LCD guidelines
export: ["clipboard", "pdf", "txt", "json", "fhir"]
Grounded Extraction

Every field points back to your dictation.

The biggest risk with AI in clinical notes is invention. Dictum's extraction has a hard rule: if the model can't quote a transcript span that supports the value, it leaves the field empty. No clever guesses. No filler sentences a payer can pick apart.

Transcript — what you dictated

Patient is a 68-year-old woman with right knee pain for three years. Failed PT, two HA injection series, and three steroid injections.

Weight-bearing X-rays show Kellgren-Lawrence grade 3 changes, medial compartment predominant. WOMAC pain score 14 of 20 at consult.

Plan is right GAE via left radial access, target descending genicular and superior medial/lateral genicular arteries, IPM microspheres 75–150 micron.

Structured fields — with citations
side
right P-04
kl_grade
3 P-09
womac_pain
14/20 P-11
conservative_therapies
PT · HA ×2 · steroid ×3 P-04
target_arteries
DGA, SMG, SLG P-17
surgical_candidacy
no source
Hover a citation. The matching sentence highlights on the left. That's the contract: no source, no field.
Gap Rules

The denial, before it happens.

Each template ships a list of payer-specific checks. They run after extraction and tell you, in plain language, what a real denial reviewer would catch. Three tiers so you can ignore the noise and act on the real risks.

BLOCK Patient-safety gap or hard payer requirement. Don't submit without it.
WARN A reviewer at UHC, Molina, Aetna, BCBS, or Medicare will flag this.
SUGGEST Nice-to-have. Strengthens the appeal if you ever need one.
BLOCK GAP-002
KOOS and WOMAC baseline both missing.
Required by all GAE payers for medical necessity. Document at consult.
GAE · field: validated_outcomes
BLOCK GAP-011
Laterality mismatch — "right knee" in HPI but "left" in plan.
Patient-safety gap. Triggers when the assessment, plan, or procedure mention disagree with the consult side.
GAE · field: side
WARN GAP-001
Conservative therapy documentation incomplete.
Need ≥2 therapies, each with duration and outcome, totaling ≥12 weeks.
GAE · field: conservative_therapies
WARN GAP-007
Prior authorization status unclear.
UHC, Molina, and CMS WISeR require PA for CPT 37242. Note the auth number or "pending".
GAE · field: prior_auth_status
WARN GAP-009
Imaging referenced without an acquisition date.
Payers want concordant imaging cited with date of acquisition, not just "recent X-ray".
GAE · field: imaging
SUGGEST GAP-008
Fewer than 3 ADL limitations documented.
Specific functional limits prevent CO-50 medical-necessity denials. Two stairs, one block, sleep, etc.
GAE · field: adl_limitations
SUGGEST GAP-004
No evidence citations in the consult.
Aetna, Anthem, and Cigna call GAE investigational. The Bagla RCT and the 2024 meta-analysis swing appeals.
GAE · field: evidence_citations
SUGGEST GAP-010
ICD-10 missing, unspecified (M17.9), or laterality-inconsistent.
Use M17.11 (right), M17.12 (left), or M17.0 (bi). Unspecified codes hurt at the front desk.
GAE · field: primary_icd10

Eleven rules per template, nine templates. The dispatcher is generic — new templates plug in, no new code paths.

From Note to Paperwork

Four payer documents from one extraction.

The extraction is the source. Every payer document below is generated from the same structured fields and the same citations. Edit once, regenerate any of the four.

Prior Auth Packet

The full bundle. Patient summary, conservative therapy timeline, imaging table, ICD/CPT codes, and payer-specific medical-necessity criteria with the documented response next to each one.

POST /api/v1/ir/documents/pa_packet

Letter of Medical Necessity

Single-page letter, doctor voice. The clinical rationale, the failed conservative therapies, and why this procedure for this patient. Drops into the EHR as a signed attachment.

POST /api/v1/ir/documents/necessity_letter

Peer-to-Peer Prep Sheet

The cheatsheet for the call. Most-likely reviewer objections with the documented response next to each one. Evidence citations ready to read out loud. Talking points by payer.

POST /api/v1/ir/documents/p2p_prep

Denial Appeal Letter

For when it gets denied anyway. Rebuts the payer's stated reason point-by-point with the same documented criteria, plus the published evidence relevant to that denial.

POST /api/v1/ir/documents/appeal_letter
Open the workspace
Template Engine

Your procedures. Pre-loaded.

Each template packs the right vocabulary, output structure, and procedure-specific fields. Select before you walk in. The nine in the sidebar with a · dot are wired to the live extractor at /ir; SIJ and Facet/MBB/RFA are documented but not in the registry yet.

Dictum — Template Selector
IR PACK
Back / Spine
BVN Ablation
MILD Procedure
Kypho / SpineJack
ESI / SNRB
Facet / MBB / RFA
SIJ Injection
Embolization
GAE (Knee)
UFE
Ablation
Renal Ablation
Cryoablation
Venous
Varicose Vein
Structured Output Preview

GAE consultation — dictated, structured.

What it looks like when you dictate a GAE consult. Your words, your vocabulary, automatically mapped to template fields with structured extraction.

Session: Pre-procedure Consult — GAE Right Knee
LIVE
GAE (Knee)
Back Pain
UFE
Cryo
Varicose
Under the Hood

What's actually built.

No vapor. Here's the stack, what's running, and where templates slot in.

Layer 1 — Capture (built, cross-platform)
Any browser, any device. getUserMedia + AudioContext → PCM 16kHz mono. Android Chrome, Windows Chrome/Edge, iPhone Safari. QR pairing for walk-around dictation. Zero app install.
getUserMedia AudioContext Web Speech API Wake Lock QR Pairing
Layer 2 — Proxy (built, 101 tests)
FastAPI WebSocket relay with dual-connection management. JWT auth, session lifecycle, parameter validation against Deepgram's feature matrix. KeepAlive management. Structured logging.
FastAPI asyncio.TaskGroup Pydantic v2 structlog SQLAlchemy 2.0
Layer 3 — Speech Engine (built)
Deepgram Nova-3 streaming with smart formatting, diarization, keyterm injection, and VAD events. Every result normalized into the 8-type DictumEvent union. Append-only persistence.
Nova-3 3.45% medical WER 500-token keyterms 8 event types
Layer 4 — Template Engine (next build)
Procedure registry with per-template keyterm sets, output schemas, and LLM formatting prompts. Select a procedure, the engine loads the right vocabulary and output structure. Session config already supports this — the registry and UI are the new pieces.
procedure registry keyterm presets output schemas pre-visit picker
Layer 5 — Intelligence (pattern proven)
Three-tier extraction pipeline, built and tested. Tier 1: regex for vitals, pain scores, laterality (<10ms). Tier 2: fast LLM for section routing (~300ms). Tier 3: full LLM for structured extraction (~1.5s). For IR, we add procedure-specific extraction targets — KL grade, KOOS/WOMAC, Modic type, CEAP class — same architecture, new field definitions.
three-tier extraction proven in production field provenance tracking correction learning prompt caching
Layer 6 — Insurance Defense (designed)
RAG-powered payer criteria matching. After note generation, the system audits against payer-specific requirements (Medicare LCD, UHC, Aetna, Cigna, BCBS). Flags missing data points. Generates prior auth letters citing SIR/ACR guidelines with documented patient criteria. Denial appeal with peer-to-peer talking points. Criteria stored as markdown knowledge base — policy updates are document edits, not code changes.
RAG gap analysis payer criteria KB prior auth letters denial appeals P2P talking points SIR / ACR / LCD
Your Procedures

Every template, mapped out.

Each card is a template with its vocabulary, output fields, and the terminology Dictum needs to nail. These are the exact keyterm sets that get injected into Deepgram.

BVN Ablation

Basivertebral Nerve
Intracept procedure for chronic vertebrogenic low back pain. RF ablation of the basivertebral nerve within the vertebral body.
Pain duration, VAS/NRS score, prior treatments
MRI findings: Modic changes (type 1/2), levels
Target levels, approach, procedural details
Assessment + plan with follow-up timeline
basivertebral nerve Intracept Modic changes vertebrogenic RF ablation transpedicular

MILD Procedure

Minimally Invasive Lumbar Decompression
Percutaneous lumbar decompression for lumbar spinal stenosis. Removes ligamentum flavum and small bone to decompress the spinal canal.
Neurogenic claudication symptoms, walking distance
MRI: ligamentum flavum hypertrophy, canal diameter
Target level(s), decompression approach
Zurich Claudication Questionnaire baseline
MILD lumbar stenosis neurogenic claudication ligamentum flavum decompression percutaneous

Kyphoplasty / SpineJack

Vertebral Augmentation
Vertebral body augmentation for compression fractures. Balloon kyphoplasty or SpineJack device to restore height, followed by PMMA cement injection.
Fracture level(s), acuity, VAS score
MRI: marrow edema, height loss %, kyphotic angle
Bipedicular vs unipedicular, device, cement volume
Height restoration, alignment correction
kyphoplasty SpineJack VCF PMMA bipedicular balloon tamp vertebral augmentation

ESI / SNRB

Epidural / Selective Nerve Root Block
Fluoroscopic or CT-guided steroid injection for radiculopathy. Interlaminar, transforaminal, or caudal approach. Selective nerve root blocks for diagnostic localization.
Radiculopathy distribution, dermatomal pattern
MRI: disc herniation, foraminal stenosis, level
Approach (interlaminar/transforaminal/caudal), level
Injectate: steroid type, volume, anesthetic
ESI SNRB transforaminal interlaminar radiculopathy dexamethasone foraminal stenosis

Facet / MBB / RFA

3-Visit Paradigm
Facet-mediated axial pain. Diagnostic medial branch block → confirmatory block (≥80% relief) → radiofrequency ablation. Medicare requires dual comparative blocks before RFA approval.
Extension-loading signs, axial pain pattern, no radiculopathy
CT/MRI: facet arthropathy, hypertrophy, no instability
% pain relief after each block (documented for insurance)
RFA parameters, number of levels, lesion protocol
medial branch block facet arthropathy radiofrequency ablation dual block paradigm 80% relief threshold comparative block

SIJ Injection

Sacroiliac Joint
Fluoroscopic sacroiliac joint injection for posterior hip/buttock pain. Diagnostic standard: 3 of 5 provocative maneuvers positive. Arthrogram confirms intra-articular placement.
Posterior buttock pain pattern, provocative tests (FABER, Gaenslen, compression, distraction, thigh thrust)
3/5 provocative maneuvers positive
Fluoroscopic guidance, arthrogram confirmation
Diagnostic vs therapeutic intent, injectate
sacroiliac joint FABER test Gaenslen thigh thrust arthrogram provocative maneuvers

Genicular Artery Embolization

GAE
Transcatheter embolization of genicular arteries for chronic knee osteoarthritis pain. Targets neovascularity associated with synovial inflammation.
OA grade (Kellgren-Lawrence), duration, WOMAC/KOOS
Prior treatments: PT, injections, NSAIDs, bracing
Target arteries, embolic agent, endpoint
Pre/post angiographic findings
genicular artery GAE embolization Kellgren-Lawrence neovascularity IPM microspheres descending genicular

Uterine Fibroid Embolization

UFE
Bilateral uterine artery embolization for symptomatic fibroids. Particle embolization to devascularize fibroids while preserving the uterus.
Symptoms: menorrhagia, bulk, pain. Duration, severity
MRI: fibroid number, size, location (submucosal/intramural/subserosal)
Uterine artery catheterization, embolic agent, endpoint
Post-embolization syndrome counseling
UFE uterine artery fibroid menorrhagia embolization submucosal PVA particles

Renal Ablation

Percutaneous Tumor Ablation
CT-guided percutaneous ablation of renal masses. Cryoablation or microwave for T1a/T1b lesions in non-surgical candidates or elective nephron-sparing.
Tumor size, location (R.E.N.A.L. score), biopsy results
Ablation modality, probe placement, ice ball / ablation zone
Hydrodissection / thermal protection techniques
Immediate post-ablation imaging assessment
renal ablation cryoablation R.E.N.A.L. score ice ball hydrodissection nephron-sparing

Cryoablation

General Cryo
CT or ultrasound-guided cryoablation for soft tissue tumors, MSK pain (cryoneurolysis), or other targets. Dual freeze-thaw cycles with real-time ice ball monitoring.
Target lesion, size, location, prior imaging
Number of probes, placement, freeze cycle parameters
Ice ball dimensions, margin adequacy
Adjacent structure protection, monitoring
cryoablation cryoneurolysis freeze-thaw ice ball cryoprobe ablation zone

Varicose Vein

Endovenous Ablation / Sclerotherapy
Endovenous laser/RF ablation of the great or small saphenous vein, with or without phlebectomy and foam sclerotherapy for branch varicosities. CEAP classification.
CEAP class, symptoms, duplex findings
Target vein(s), diameter, reflux duration
Ablation modality (EVLA/RFA), tumescent anesthesia
Adjunctive sclerotherapy, phlebectomy details
GSV SSV EVLA radiofrequency ablation CEAP tumescent sclerotherapy saphenofemoral
Honest Status

Where we are. No hand-waving.

Green is built and tested. Yellow is the active build. Gray is planned.

Phase 0 — Complete (101 tests)

Core Infrastructure

FastAPI proxy, WebSocket relay with asyncio.TaskGroup, Deepgram Nova-3 + Flux adapters, 8-type event schema, JWT auth, session persistence, rate limiting, parameter validation.

Phase 1 — Complete

Cross-Platform Audio Capture

Web-based companion works on Android Chrome, Windows Chrome/Edge, and iPhone Safari. getUserMedia + AudioContext, QR pairing for walk-around dictation. Zero app install required. Audited: zero iOS-specific code branches.

Phase 2 — Shipped

Template Engine + Procedure Registry

9 IR templates wired in the registry (GAE, BVN, MILD, kypho, ESI/SNRB, UFE, renal ablation, cryo, varicose veins). Each has a Pydantic schema, ~11 gap rules, keyterms, and a JSON-schema tool spec for the extractor. Two more templates documented but not yet registered: Facet/MBB/RFA and SIJ.

Phase 3 — Shipped

Grounded Extraction (Sonnet 4.6)

Every structured field cites a transcript span (a prov_id). The extractor builds a paragraph-level catalog of the consult, then asks Sonnet to populate the schema with citations. Cited-but-unknown ids raise an error; uncited fields get nulled out instead of invented. This is the core hallucination guard.

Phase 4 — Shipped

Insurance Defense — PA, Necessity, P2P, Appeal

Four documents generated from one extraction (PA packet, letter of medical necessity, peer-to-peer prep sheet, denial appeal letter). All four confirmed live against a real GAE extraction.

Planned — Compliance

PHI Redaction + HIPAA Readiness

PII/PHI redaction at the Deepgram level, audit logging, data retention controls, HIPAA documentation. Required before clinical deployment.

Planned — EHR Integration

FHIR Export + Direct EHR Push

Structured notes in FHIR format. Integration patterns for Epic, Cerner. Copy-to-clipboard as the day-one bridge.

The Bottom Line

Built for how you
actually work.

Not a generic transcription app hoping doctors will use it. A voice system designed around procedure-specific documentation — your procedures, your vocabulary, your templates. With an insurance defense layer that fights the denial before it happens. Purpose-built integration, not a feature checklist.

9
Live Templates
~11
Gap Rules / Tpl
4
Payer Documents
3.45%
Medical WER
3
Platforms
Open the workspace at /ir

dictum — your voice, structured. your denial, defended.