Bounce
Bounce is a cross-platform desktop application that connects on-premises DICOM systems with the Aurabox cloud platform as a full bidirectional DIMSE gateway.
Overview
Built with Tauri and Rust, Bounce runs behind a healthcare provider's firewall and brokers the four core DICOM services — store, query, retrieve, and echo — in both directions, so a local modality or PACS and the Aurabox cloud can each act as a peer of the other without exposing either directly.
What Bounce Does
- A local DICOM SCP — Local systems (modalities, PACS, viewers) connect to Bounce as if it were a normal DICOM peer. Bounce handles their C-ECHO, C-STORE, C-FIND, and C-MOVE requests, and fulfils them against Aurabox over HTTPS.
- A cloud-driven DICOM SCU — Aurabox can drive Bounce to issue C-ECHO, C-FIND, C-MOVE, and C-STORE against any registered local PACS. A background poller pulls pending jobs from Aurabox, executes them as DIMSE operations on the local network, and reports progress, results, and failures back to the cloud.
Bidirectional Flows
From local systems into Aurabox
- Store — Modalities and PACS push studies to Bounce via C-STORE; Bounce extracts metadata, aggregates instances into studies, compresses them, and forwards over the resumable TUS protocol with retry and crash-recovery.
- Query — Local viewers can issue C-FIND against Bounce to search Aurabox's catalogue without leaving the DICOM protocol.
- Retrieve — Local viewers can issue C-MOVE against Bounce to pull studies out of Aurabox; Bounce fetches them and stores them to the requesting destination AE.
- Echo — Standard C-ECHO connectivity verification.
From Aurabox into local systems
- Query — Aurabox queues C-FIND jobs against a registered local PACS; Bounce executes them as an SCU and returns the result set.
- Retrieve — Aurabox queues C-MOVE jobs; Bounce drives the remote PACS to send studies into Bounce's own C-STORE SCP, which then uploads them to Aurabox.
- Send / push — Aurabox can push a study to a local PACS: Bounce fetches the DICOM bytes from the Aurabox storage surface and issues C-STORE against the destination PACS as an SCU.
- Echo — Connectivity health checks against registered local PACS, on demand or on a schedule.
Operational Capabilities
- AE title allowlist — Inbound associations are rejected with
CallingAETitleNotRecognized unless the calling AE title is registered as a known PACS. Outbound SCU operations target only PACS configured in the same registry.
- Resumable cloud transfer — Uploads to Aurabox use TUS over HTTPS with automatic retry, exponential backoff, recovery on restart, and a disk-space safety check.
- Concurrent send throttling — Outbound C-STORE jobs are bounded so a single slow remote PACS cannot starve the rest of the gateway.
- Transactions view — A live, paginated, server-side searchable history of every upload attempt, with manual Stop and Retry controls on stuck studies.
- Unattended operation — Optional Start on login and Start receiver on app start settings keep the gateway online across reboots and manual restarts.
- Automatic updates — Optional auto-update mode applies downloaded updates inside a configurable restart window and resumes the receiver afterwards.
- System tray — Runs in the background. Closing the window hides Bounce to the tray on Windows and Linux; only an explicit quit terminates the process.
- Local persistence — SQLite tracks study status, transmission history, and job state; configurable retention controls how long received files remain on disk.
- Defensive boundaries — DICOM UIDs and transfer syntaxes are validated before use; unsupported syntaxes are rejected rather than panicking; malformed configuration falls back to safe defaults.
- Structured logging — Backend logging via the
tracing crate, with optional remote log delivery. API keys, upload tokens, and PHI are kept out of plain-text log lines.
Quick Start
Installation
- Visit the Releases page.
- Download the installer for your platform:
- Windows —
.msi or .exe
- macOS —
.dmg
- Linux —
.deb, .AppImage, or .tar.gz
- Run the installer.
Configuration
- Launch Bounce.
- Open Settings and configure:
- API Key — Your Aurabox API key (required).
- AE Title — Application Entity title for DICOM (default
BOUNCE).
- Port — DICOM receiver port (default
104; binding below 1024 requires elevated privileges on most systems).
- IP Address — Network interface to bind to (default
0.0.0.0).
- Storage Location — Directory for temporary DICOM file storage.
- Delete After Send — Remove local files after a successful upload.
- Startup — Optionally enable Start on login and Start receiver on app start for unattended operation.
- Click Start Receiver to begin accepting associations.
Detailed end-user setup instructions live at https://docs.aurabox.cloud/applications/bounce/.
Testing Against a Real DICOM Peer
Use DCMTK to drive Bounce as an SCP, and NightOwl — Aurabox's developer-grade test PACS — to act as a remote SCP that Bounce can drive as an SCU.
Driving Bounce as an SCP (local-to-cloud flows)
여기까지가 README 앞부분입니다. 나머지는 원문에서 읽을 수 있습니다. README 전문 보기 ↗