Bounce is a cross-platform desktop application designed to bridge the gap between on-premises medical imaging equipment and cloud-based DICOM storage. Built with Tauri and Rust, Bounce runs behind healthcare providers' firewalls to receive DICOM files via the C-STORE protocol and securely forward them to Aurabox over HTTPS.
- DICOM C-STORE Receiver: Accepts inbound DICOM C-STORE requests from PACS, modalities, and other DICOM sources
- Secure Cloud Upload: Forwards received DICOM files to Aurabox backend using TUS protocol over HTTPS
- Metadata Extraction: Automatically extracts and logs DICOM metadata (Study UID, Series UID, Patient info, etc.)
- Local Storage Management: Temporarily stores DICOM files locally with configurable retention policies
- Study Aggregation: Intelligently groups DICOM instances into studies with debouncing logic
- Compression: Automatically compresses studies into ZIP archives before upload
- Desktop UI: Modern web-based interface for monitoring, configuration, and study management
- System Tray Integration: Runs in the background with system tray icon for quick access
- SQLite Database: Tracks study status and transmission history
- Logging: Comprehensive logging with optional remote logging to Better Stack
- Visit the Releases page
- Download the latest installer for your platform:
- Windows:
.msior.exeinstaller - macOS:
.dmgdisk image - Linux:
.deb,.AppImage, or.tar.gz
- Windows:
- Run the installer and follow the setup wizard
-
Launch Bounce application
-
Navigate to Settings
-
Configure the following:
- API Key: Your Aurabox API key (required)
- AE Title: Application Entity title for DICOM (default:
BOUNCE) - Port: DICOM receiver port (default:
104) - IP Address: Network interface to bind to (default:
0.0.0.0) - Storage Location: Directory for temporary DICOM file storage
- Delete After Send: Automatically delete files after successful upload
-
Click "Start Server" to begin receiving DICOM files
For detailed setup instructions, visit: https://docs.aurabox.cloud/applications/bounce/
Use storescu from DCMTK to send test DICOM files:
# Send a single DICOM file
storescu -aec BOUNCE 127.0.0.1 104 /path/to/test.dcm
# Send multiple files
storescu -aec BOUNCE 127.0.0.1 104 /path/to/dicom/folder/*.dcm
# Send with verbose output
storescu -v -aec BOUNCE 127.0.0.1 104 /path/to/test.dcmechoscu -aec BOUNCE 127.0.0.1 104- Node.js 18+ and npm
- Rust (latest stable) and Cargo
- Tauri CLI (installed via npm)
- Platform-specific dependencies:
- Linux:
libssl-dev,libsqlite3-dev,webkit2gtk-4.1-dev - macOS: Xcode Command Line Tools
- Windows: Visual Studio Build Tools
- Linux:
# Clone the repository
git clone https://github.com/aurabx/bounce.git
cd bounce
# Install Node dependencies
npm install
# Run in development mode
npm run tauri:devThe application will launch with hot-reload enabled for both the frontend and backend.
bounce/
βββ app/ # Next.js frontend application
β βββ components/ # React components
β βββ lib/ # Frontend utilities and helpers
β βββ logs/ # Logs page
β βββ settings/ # Settings page
β βββ studies/ # Studies management page
β βββ tools/ # Tools page
βββ src-tauri/ # Rust backend
β βββ src/
β β βββ aura/ # Aurabox API client
β β βββ db/ # SQLite database layer
β β βββ receiver/ # DICOM C-STORE receiver
β β βββ transmitter/ # Upload/transmission logic
β β βββ store/ # Configuration management
β β βββ lib/ # Utility modules
β β βββ main.rs # Application entry point
β βββ Cargo.toml # Rust dependencies
β βββ tauri.conf.json # Tauri configuration
βββ package.json # Node.js dependencies and scripts
βββ README.md
# Development
npm run dev # Run Next.js dev server only
npm run tauri:dev # Run full Tauri app in dev mode
# Building
npm run build # Build Next.js frontend
npm run tauri:build # Build Tauri application for release
# Linting
npm run lint # Run ESLint
# Version Management
./update-version.sh 1.2.3 # Update version across all config files# Update version number
./update-version.sh 1.2.3
# Build release binaries
npm run tauri:buildBuilt applications will be in src-tauri/target/release/bundle/
- Architecture Overview - System design and component interaction
- Development Guide - Detailed development setup and guidelines
- Configuration Guide - Configuration options and settings
- API Reference - Tauri commands and API documentation
- User Documentation - End-user guide
Bounce is designed for secure deployments in healthcare environments:
- All uploads to Aurabox use HTTPS with TLS 1.2+
- API key authentication for all cloud communications
- Local storage uses filesystem permissions for access control
- No PHI (Protected Health Information) is logged in plain text
- Optional automatic deletion of files after successful upload
- Check if port 104 is available (may require admin/sudo privileges)
- Verify firewall rules allow inbound connections on configured port
- Check logs in the application's Logs tab
- Verify API key is correctly configured
- Check internet connectivity to Aurabox
- Review upload status in Studies tab
- Check logs for error messages
- Ensure all dependencies are installed
- Check system compatibility (Windows 10+, macOS 10.13+, recent Linux)
- Try running from terminal to see error messages
See BOUNCE EULA.
For issues, questions, or feature requests:
- Email: support@aurabox.cloud
- Documentation: https://docs.aurabox.cloud
- GitHub Issues: https://github.com/aurabx/bounce/issues (for bug reports)
Built with:
- Tauri - Desktop application framework
- Next.js - React frontend framework
- Rust DICOM - DICOM protocol implementation
- TUS Protocol - Resumable file upload protocol