Skip to main content

DICOM Router

Overview

I built a self-hosted DICOM routing toolkit for telemedicine providers and medium-sized clinics that need to connect imaging devices to cloud storage, PACS, and AI pipelines without deploying a full enterprise PACS.

Problem

  • Telemedicine teams needed DICOM routing without expensive enterprise licenses.
  • The platform had to support multiple destination types: DICOM nodes, S3/MinIO, and local storage.
  • AI processing required asynchronous callbacks and conditional re-routing.
  • Healthcare workflows required a complete audit trail and operational reliability.

Solution

  • I implemented a single Go binary that combines SCP receiver, routing engine, dispatcher, API, and web UI.
  • I used rule-based routing by AE Title, modality, and tags to cover real-world workflows without plugin complexity.
  • I added C-FIND/C-MOVE support and DICOMweb (QIDO-RS, WADO-RS) for interoperability and OHIF integration.
  • I built callback-based AI integration so processors can classify studies and trigger follow-up routes.
  • I hardened runtime behavior with retries, structured logging, graceful shutdown, and encrypted secrets.

Results

  • 28,876 lines of production Go code.
  • 73.2% test coverage with 700+ unit and integration tests.
  • 10+ simultaneous routes handled through concurrent worker flows.
  • Reduced reliance on high-cost enterprise PACS for smaller telemedicine deployments.

Stack

Go, PostgreSQL, Gin, sqlc, Templ, HTMX, Docker, DICOMweb, S3/MinIO

Architecture

DICOM Router Architecture

Interface

DICOM Router UI