Trusted-network DICOM workstation

Dicommunication.One app for every DICOM admin job.

One application, one tab per job: Dicommunication tests connectivity (ping, C-ECHO, C-STORE, C-FIND, MWL, HL7), Dicomtag Analytics queries and exports tags — including Philips Vue PACS — Dicom Anonymizer strips or scrambles PHI, Dicom Router watches a PACS and forwards new studies on a schedule, and Dicom Cleaner redacts burned-in pixel data. One shared config. Docker, Windows MSI, or macOS DMG — no Python, no venv, no vendor toolkit.

The name is a small grammar joke. DICOM plus communication share that extra m, so they become dicommunication.

What is Dicommunication?

Hospital PACS/VNA work stalls on the same questions: can we reach the port, does verification work, will storage accept an instance, does Query/Retrieve find studies, does the RIS offer a worklist, what does a study actually contain, and does anything need to be caught automatically or cleaned up before it moves on? Dicommunication answers those from one application. A tab row across the top switches between five tools — Dicommunication, Dicomtag Analytics, Dicom Anonymizer, Dicom Router, and Dicom Cleaner — and a shared Configuration tab holds the local AE, remote nodes, virtual identities, and logs once for all of them. A successful C-ECHO only proves Verification — the Testbench shows which SOP Classes were accepted or rejected so Storage, Q/R, and MWL stay distinct.

See it in action

Five tools, one app

A tab row across the top switches products. Configuration — local AE, remote nodes, virtual identities, logs — is set once and shared by all five. The Windows MSI and macOS DMG install a single shortcut for the whole thing.

Test and analyze DICOM traffic

Dicommunication

The network / DIMSE / HL7 workstation. Testbench, C-ECHO board, PING, C-STORE, PDF to Encapsulated PDF Storage, Study Root C-FIND, Modality Worklist C-FIND, a local worklist SCP, and HL7 v2 send over MLLP — with the association log and accepted vs rejected SOP Classes.

DICOM tag analytics

Dicomtag Analytics

Study Root C-FIND at Study, Series, or Image level, including Philips Vue ELSCINT1 private keys. List and retrieve DICOM Structured Reports — Findings and Impression flattened from the Content Sequence, no language model — then export as copy, CSV, or JSON.

Anonymization

Dicom Anonymizer

Query, retrieve, and de-identify studies, series, or images. Nuke, Fuzz, remove-patient-information, or per-tag Custom mode, with UIDs remapped consistently so a multi-instance study stays coherent afterward.

Automated routing

Dicom Router

Scheduled Study Root C-FIND rules that watch a PACS on an interval or daily schedule. Add destination nodes and it auto-retrieves and forwards each new match — Start, Pause, or Stop any rule independently, with a live status dot and a full run history.

Pixel-level redaction

Dicom Cleaner

Query, retrieve, and black out a rectangle of burned-in pixel data — drag the region right on the retrieved image — then C-STORE the cleaned instance back out. Handles PHI baked into pixels, which tag scrubbing alone can't touch — a common fix for ultrasound studies, where patient demographics are often burned into the frame, especially after a patient mismatch needs correcting.

Features

  • Tab row switches between tools, each with its own left sidebar
  • Add the local AE and remote nodes once, then reuse them everywhere
  • Run PING, C-ECHO, C-STORE, C-FIND, or MWL from the Testbench
  • See accepted vs rejected presentation contexts per node
  • Catch cases where C-ECHO passes but Storage or Modality Worklist still fail
  • Docker, Windows MSI, or macOS DMG — nothing to install on the PC itself
  • No pip-installing Python on a locked-down PACS workstation
  • Present as the workstation AE, or impersonate a modality AE when needed
  • Dicomtag Analytics queries at Study, Series, or Image level, including Vue ELSCINT1 keys
  • List and retrieve Structured Report text, export as CSV or JSON
  • Dicom Anonymizer pulls studies off a PACS and de-identifies them
  • Choose Nuke, Fuzz, remove-PHI, or per-tag Custom anonymization modes
  • UIDs remapped consistently across an anonymization run
  • Dicom Router watches a PACS on a schedule for new studies
  • Auto-retrieve and forward to one or more destinations
  • Start, pause, or stop each routing rule independently, with a full run history
  • Dicom Cleaner blacks out burned-in pixel data on the retrieved image
  • Reaches PHI baked into pixels, not just tags — handy for ultrasound
  • Optional local MWL listener on port 11112 so a modality can C-FIND this workstation
  • Rotating log file plus an in-app Logs page
  • Theme and settings survive upgrades

Dicomtag Analytics: built for Vue PACS

Philips Vue's private ELSCINT1 tags don't show up in generic DICOM tools. Dicomtag Analytics queries them directly, retrieves report text without opening Vue, and exports everything for spreadsheet-level analytics.

Vue ELSCINT1 private tags

Collapsed "Vue PACS" key lists expose Tamar study and series tags — like Assign To Doctor, a confirmed matching key on Vue 12.2.8 — alongside standard DICOM keywords, as optional return or match fields.

Hierarchical Study, Series, Image C-FIND

Series keys unlock once a Study Instance UID is set; Image keys unlock once Study and Series UIDs are set. MR-only keys such as Repetition Time stay locked unless Modality is MR — click a result row to copy parent UIDs straight into the next level.

Structured Report text, without opening Vue

List SR reports finds every report series for a batch of studies. Retrieve report text C-MOVEs each one on its own association — Vue only accepts one C-MOVE per association — then flattens the Content Sequence into Findings, Impression, and full report text. No language model.

Bulk analytics, not just single lookups

Count patients by name buckets a query by first letter of family name, starting from an approximate count and quietly re-running uncapped (up to 50,000 rows) for an exact one. Every table exports as copy (tab-separated for Excel), CSV, or JSON.

Multiplatform compatibility

Linux, Windows, or macOS — pick the runtime that already includes everything. Locked-down PACS PCs should not get a Python from python.org.

Built for DICOM connectivity, analytics, anonymization, routing, and redaction

C-ECHOC-STORE (Secondary Capture)PDF to Encapsulated PDFStudy Root C-FINDMWL C-FINDStudy / Series / Image tag C-FINDStructured Report retrievalAnonymization (Nuke / Fuzz / Custom)Scheduled routing (Dicom Router)Pixel redaction (Dicom Cleaner)ICMP / TCP PINGHL7 v2 / MLLP sendVirtual AE titlesLocal MWL SCPDockerWindows MSImacOS DMGFastAPI + HTMXpynetdicom / pydicom

Questions

What is Dicommunication?
One trusted-network DICOM application with a tab for every job: PING, C-ECHO, a tiny C-STORE, Study Root C-FIND, and Modality Worklist C-FIND for connectivity tickets, plus tag analytics, anonymization, routing, and pixel redaction in their own tabs. The name is DICOM plus communication — they share the extra m.
What are Dicomtag Analytics, Dicom Anonymizer, Dicom Router, and Dicom Cleaner?
Four more tabs inside the same Dicommunication app, sharing one Configuration tab (local AE, remote nodes, virtual identities, logs). Dicomtag Analytics: Study/Series/Image C-FIND, Vue ELSCINT1 keys, Structured Report listing/retrieval with CSV/JSON export. Dicom Anonymizer: query, retrieve, and de-identify with Nuke, Fuzz, remove-PHI, or per-tag Custom modes. Dicom Router: scheduled C-FIND rules with optional automatic retrieve-and-forward. Dicom Cleaner: black out a rectangle of burned-in pixel data, then store the cleaned instance back out.
Do I need to install Python?
No. Use Docker Compose, the Windows MSI, or the macOS Apple Silicon DMG. Each bundles the runtime for the whole app, as a single install. Locked-down PACS PCs should not install Python from python.org.
Is it a PACS or a viewer?
Neither. It is a lab / admin workstation for DICOM associations, tag analytics, anonymization, routing, and pixel redaction. It does not archive clinical images, speak DICOM TLS, or authenticate the web UI. Prefer synthetic data on a trusted VLAN.

Run it on the PACS VLAN

Clone the repo and docker compose up, or grab the MSI / DMG from GitHub Releases. Open Dicommunication, add a node, press C-ECHO — then switch tabs for Dicomtag Analytics, Dicom Anonymizer, Dicom Router, or Dicom Cleaner.

Trusted-network lab workstation. Not a PACS, not a diagnostic viewer, not DICOM TLS, not a CE-marked medical device. Prefer synthetic data.