OverRead is a Windows reading-room suite for diagnostic radiologists. Hotkeys, clinical calculators, PACS measurement capture, and a live worklist. Scroll through to see the headline moves.
Scene 1 · The tray
One tray icon. One right-click for everything. Tray menu opens Settings, switches profile, reloads the suite, or fires Setup to capture your window layout.
app/Core/ui/tray_menu.ahk · A_TrayMenu
Scene 2 · Calculators
Five clinical calculators ship with the suite: Fleischner, Adrenal, Pancreas, Thyroid TI-RADS, Lung-RADS. Each parses the dictation context, asks for what's missing, and types a structured impression back into PowerScribe.
app/Core/calculators/*.ahk · #Include into OverRead.ahk
Scene 3 · The PACS bridge
Drop a measurement on an image in PACS. One hotkey types the value plus series/image reference at the PowerScribe cursor. The bridge crosses one localhost seam — only modality, geometry, and numbers ever leave the PACS process.
overread.htm + overread_server.py :8899 + overread_bridge.ahk
Scene 4 · Auto-priors
When PowerScribe opens a report, the in-process RadWhereCtrl event fires ReportOpened. The PACS plugin looks up the accession, formats the comparison dates, and types them straight into the dictation field. No clipboard. No keystroke.
overread.htm · <object classid="clsid:c1fa1a92-068c-411f-bf7f-66de29f51a22">
Scene 5 · The worklist
The dashboard PWA runs at dashboard.overread.app. Total unread on a radial gauge, color-coded modality cards, moonlighting alerts. Polls a Cloudflare Worker every 60 seconds; the workstation publisher posts updates from a single hospital machine.
overread-dashboard repo · D1-backed auth, passkeys, Web Push
Scene 6 · The push
The publisher computes a per-modality moonlighting state with hysteresis. The Cloudflare Worker diffs the new state against the old one and fans out Web Push notifications — VAPID-signed, AES-128-GCM encrypted — to every subscribed device that opted into that modality.
Relay worker · /api/dashboard · RFC 8291 / 8292 inline crypto
Scene 7 · PHI policy
Patient names, MRNs, DOBs, and accession numbers stay in PACS and PowerScribe memory. Only modality, dates, measurement values, and annotation geometry cross any seam. A filename allowlist in the localhost server is the literal gate.
app/Link/overread_server.py · ALLOWED_FILES