Skip to content

aurabx/bounce

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

161 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Bounce

A lightweight DICOM C-STORE receiver that securely forwards medical imaging to Aurabox

License: BOUNCE EULA Platform: Windows | macOS | Linux


πŸ“– Overview

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.

Key Capabilities

  • 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

πŸš€ Quick Start

Installation

  1. Visit the Releases page
  2. Download the latest installer for your platform:
    • Windows: .msi or .exe installer
    • macOS: .dmg disk image
    • Linux: .deb, .AppImage, or .tar.gz
  3. Run the installer and follow the setup wizard

Configuration

  1. Launch Bounce application

  2. Navigate to Settings

  3. 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
  4. Click "Start Server" to begin receiving DICOM files

For detailed setup instructions, visit: https://docs.aurabox.cloud/applications/bounce/


πŸ§ͺ Testing

Send Test DICOM Files

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.dcm

Verify C-ECHO (Connection Test)

echoscu -aec BOUNCE 127.0.0.1 104

πŸ›  Development

Prerequisites

  • 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

Setup Development Environment

# 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:dev

The application will launch with hot-reload enabled for both the frontend and backend.

Project Structure

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

Available Commands

# 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

Building for Release

# Update version number
./update-version.sh 1.2.3

# Build release binaries
npm run tauri:build

Built applications will be in src-tauri/target/release/bundle/


πŸ“š Documentation


πŸ” Security

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

πŸ› Troubleshooting

DICOM Server Won't Start

  • 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

Files Not Uploading

  • Verify API key is correctly configured
  • Check internet connectivity to Aurabox
  • Review upload status in Studies tab
  • Check logs for error messages

Application Won't Launch

  • Ensure all dependencies are installed
  • Check system compatibility (Windows 10+, macOS 10.13+, recent Linux)
  • Try running from terminal to see error messages

πŸ“ License

See BOUNCE EULA.


πŸ™‹ Support

For issues, questions, or feature requests:


πŸ™ Acknowledgments

Built with:

About

Local DICOM proxy for forwarding imaging to Aurabox

Resources

License

Stars

Watchers

Forks

Contributors

Languages