Configure SynthIQ's inbound DICOM listeners and the backend pool of nodes each one forwards to.
Changes are persisted to synthiq_pools.json in the data directory and take effect
immediately — no service restart required.
ℹ
DCR-2026-080 · SynthIQ …
Loading pools…
Add Pool
1-65535. Must be unique across pools.
≤16 chars (DICOM PS3.5 §6.2).
storage proxies images to a pool of archives. worklist
relays Modality Worklist queries, so a modality asks one AE and reaches whichever
worklist provider is healthy. A worklist pool's backends must point at the
worklist port of each backend, which is normally a different port from C-STORE
on the same host. Saving a change re-cycles this pool's listener.
StudyInstanceUID-keyed is the only affinity implemented in this release —
every instance of a study follows its first instance to the same backend. PatientID-keyed
affinity is not built and is rejected by the API.
Max concurrent inbound C-STORE associations this pool accepts. Blank = built-in default (32); range 1–256.
Higher = more simultaneous senders but more RAM/sockets. Saving re-cycles this pool's listener
(a brief socket drop, like changing the port/AE).
Fail-closed: if the server certificate cannot load, the listener is SKIPPED
rather than binding in cleartext. Server-only TLS (inbound mutual TLS is a later phase).
Saving re-cycles this pool's listener.
SynthIQ pre-populates outbound DICOM presentation contexts before
opening the SCU association to each backend. Most operators leave
this on the Phase 1A default (38 Storage SOP classes × Explicit /
Implicit / Big-Endian Little-Endian transfer syntaxes). Override
ONLY if you have a backend that proposes a non-standard SOP set
or you need to narrow the allowlist for compliance reasons.
Empty list = no SOP class PCs pre-populated (fo-dicom falls back
to per-request auto-PC, with much higher overhead). Each entry
must be a valid DICOM UID per PS3.5 §9.
Presets populate the textarea; "Custom" preserves your edits.
0 SOP class UIDs.
0 transfer syntax UIDs.
Add Node
≤16 chars. Leave blank for "ANY-SCP" default.
http:// or https:// only. Polled every heartbeat — this is what gives the
backend a health signal. Without it the backend is never polled, can never be picked by
health-aware routing, and the pool degrades to cursor rotation: a dead backend stays in
rotation and a Failover standby starts receiving live traffic. If this backend exposes no
HTTP health endpoint, leave this blank and set Health Mode to
dicom_echo — its DICOM C-ECHO becomes the health signal instead.
Opens the association over TLS. Supply a CA below for private/enterprise PKI,
or a client certificate for mutual TLS.
Uncheck ONLY for a self-signed backend in a controlled test — it disables
server authentication.
Fail-closed: once a client certificate is configured, a
forward is aborted rather than sent if the certificate cannot load.
How SynthIQ interprets this backend's health for routing. native backends contest on measured queue depth; liveness backends only answer a probe and earn a weighted share instead of being flooded.
Liveness only. 0 = cold standby; ≥1 = share.
A Failover node stays idle until every Primary in this pool is down (confirmed by heartbeat + C-ECHO), then takes over automatically; new studies return to Primary when it recovers. Independent of Health Mode.