Skip to main content

Progressive Sync: Queue-Based Offline Documentation

12 min read

Connectivity Outages Halt Documentation. Progressive Sync Keeps You Working.

The Reality: Healthcare Internet Is Unreliable

Your rural practice loses internet for 2 hours on a Tuesday morning. Eight patients have been seen. Zero documentation entered into the EHR because your cloud-based AI scribe shows “Connection lost. Please reconnect to continue.” The patients are documented. The conversations are recorded. But the notes can’t be completed until the internet returns. By the time connectivity comes back, you’re seeing new patients. The backlog waits until evening. That’s 90 minutes of catch-up documentation after your last scheduled patient.

A home health nurse visits a patient in a basement apartment. No cell signal. No WiFi. The cloud-based documentation system shows an error: “Cannot sync. Please connect to internet.” The nurse writes paper notes in the car, then spends 30 minutes that evening typing everything from memory into the EHR from home. This happens 3-5 times per week. Over a year, that’s 78-130 hours of duplicate documentation work.

A critical access hospital in rural Montana has a single internet provider. When that connection goes down (2-3 times monthly), the entire clinical documentation system is unavailable. Providers resort to paper charting, then spend hours after the outage transferring everything to the EHR. Each outage costs 10-15 hours of provider and staff time reconstructing documentation.

The Core Problem: Most enterprise healthcare solutions assume always-on connectivity. They’re architected for hospitals with redundant internet, backup circuits, and IT departments to maintain infrastructure. Rural practices, mobile clinicians, and small facilities don’t have that luxury. When internet fails, documentation stops.

The Cost: 2-5 hours per week lost to connectivity issues, 104-260 hours annually per clinician. At $150-200/hour clinical time, that’s $15,600-$52,000 in lost productivity per provider. The billing delays add another layer: documentation not completed means claims not submitted, revenue delayed by days or weeks.

Why Enterprise Solutions Fall Short

Most AI scribes (Nuance DAX, Abridge, Suki, Freed, Ambience) require cloud connectivity for core functionality. They’re not designed for connectivity failures. Here’s why:

1. Architectural Assumption: Cloud-First Design

Enterprise Architecture Pattern:

  • Audio captured locally, immediately uploaded to cloud
  • AI processing happens on cloud servers (GPU clusters, massive compute)
  • Results streamed back to device
  • EHR integration via cloud APIs
  • Every operation requires API connectivity

Why It’s Built This Way: Cloud processing is economically efficient for vendors. Centralized GPU clusters cost less than distributing AI models to millions of devices. Cloud APIs are easier to maintain than offline sync logic. For enterprise customers with reliable connectivity, this works fine.

Where It Fails: When connectivity drops, the entire workflow halts. You can’t record (needs cloud upload). You can’t process (needs cloud AI). You can’t integrate (needs cloud API). The system becomes entirely non-functional.

2. Economic Model: Enterprise IT Assumptions

Enterprise Customer Profile:

  • IT department with dedicated staff
  • Redundant internet circuits (primary + backup)
  • On-premises networking infrastructure
  • Budget for connectivity redundancy
  • 99.9% uptime expectations with resources to achieve them

Rural/Small Practice Reality:

  • No IT department (providers manage technology)
  • Single internet provider (DSL, cable, or cellular)
  • No budget for redundant circuits
  • Connectivity failures are accepted reality
  • Documentation must continue despite outages

The Mismatch: Enterprise solutions assume you’ll solve connectivity problems with infrastructure investment. Small practices can’t afford that. They need technology that works despite infrastructure limitations, not technology that requires enterprise-grade infrastructure.

3. Workflow Assumption: Office-Based Documentation

Enterprise Workflow Model:

  • Providers document in exam rooms (controlled environment)
  • Reliable WiFi coverage throughout facility
  • Documentation happens at workstations with stable connections
  • IT support available for connectivity issues
  • Backup internet circuits prevent extended outages

Mobile/Rural Reality:

  • Home health nurses document in patient basements (no signal)
  • Rural clinics have spotty cellular, slow DSL
  • Mobile clinics travel beyond coverage areas
  • Documentation happens in vehicles, parking lots, remote locations
  • No IT support, providers troubleshoot connectivity themselves

The Gap: Enterprise systems optimize for controlled environments. Real-world healthcare happens in uncontrolled environments where connectivity is unreliable or nonexistent. Progressive sync architecture inverts the assumption: offline is default, connectivity is opportunistic.

How Progressive Sync Works (For Decision-Makers)

The concept is simple: Documentation works exactly the same whether you have internet or not.

Your home health nurse documents a patient visit in a basement apartment (no cell signal). OrbDoc captures the voice note locally. When the nurse drives home and WiFi appears, the note automatically syncs to the EHR in the background. Zero time lost. Zero manual work.

A rural clinic’s internet goes down at 10 AM. Providers keep documenting. OrbDoc queues everything locally. When internet returns at 2 PM, all notes sync automatically to the EHR. No backlog. No catch-up documentation. The providers never notice the outage happened.

This is impossible with cloud-first architecture. Traditional AI scribes (Nuance, Abridge, Suki) require cloud connectivity for everything: recording, processing, documentation, EHR integration. When internet fails, they fail completely.

OrbDoc inverts that model: offline is the default, connectivity is background enhancement. Documentation happens locally on the device. When internet is available, data syncs automatically. When it’s not, nothing changes—you keep working.


Technical Architecture (For Development Teams)

For developers, architects, and IT teams: Full technical documentation of progressive sync architecture, queue-based sync logic, IndexedDB implementation, conflict resolution, and encryption protocols is available below. This section covers business requirements and use cases first.


Local-First Architecture: Why Offline Is Default

OrbDoc stores all clinical data locally on the device using IndexedDB (browsers) or SQLite (native apps):

Sync Queue Structure:

syncQueue = [
 {
  operation_id: "op_12847",
  type: "create_note",
  priority: "high", // Completed notes for billing
  data: { encounter_id: "enc_4857", ... },
  timestamp: "2025-10-25T09:30:00Z",
  retry_count: 0,
  status: "pending"
 },
 {
  operation_id: "op_12848",
  type: "upload_audio",
  priority: "medium", // Audio backup
  data: { audio_blob: ..., encounter_id: "enc_4857" },
  timestamp: "2025-10-25T09:31:00Z",
  retry_count: 0,
  status: "pending"
 },
 {
  operation_id: "op_12849",
  type: "update_patient_allergies",
  priority: "high", // Clinical safety data
  data: { patient_id: "pt_9234", allergies: [...] },
  timestamp: "2025-10-25T09:35:00Z",
  retry_count: 0,
  status: "pending"
 }
]

Queue Priorities:

  1. Critical (Sync immediately when connectivity returns):
  • Completed clinical notes ready for billing
  • Patient safety data (allergies, medications)
  • Encounter sign-off and attestation
  1. High (Sync within 1 hour):
  • Draft notes in progress
  • Lab orders and referrals
  • Prescription renewals
  1. Medium (Sync within 24 hours):
  • Audio file backups
  • Historical note updates
  • Template modifications
  1. Low (Sync when bandwidth available):
  • Reference data updates
  • Analytics and reporting data
  • User preference changes

Queue Processing Logic:

// Background worker runs every 30 seconds
async function processQueue() {
 // Check connectivity
 if (!navigator.onLine) return;

 // Get network type (WiFi vs cellular)
 const connection = navigator.connection;
 const isWiFi = connection.type === 'wifi';
 const bandwidth = connection.downlink; // Mbps

 // Adjust behavior based on connection quality
 if (bandwidth < 1.0) {
  // Slow connection: only critical items
  queueFilter = queue.filter(item => item.priority === 'critical');
 } else if (isWiFi && bandwidth > 10.0) {
  // Fast WiFi: process all priorities
  queueFilter = queue;
 } else {
  // Cellular or moderate speed: critical + high
  queueFilter = queue.filter(item =>
   ['critical', 'high'].includes(item.priority)
  );
 }

 // Process queue in priority order
 for (const item of queueFilter.sort(byPriority)) {
  try {
   await syncOperation(item);
   markComplete(item.operation_id);
  } catch (error) {
   handleRetry(item, error);
  }
 }
}

Retry Logic:

  • Failed operations retry with exponential backoff
  • Max retries: 10 attempts over 24 hours
  • Permanent failures alert user for manual resolution
  • Network errors retry automatically (don’t count toward limit)
  • Server errors (500s) retry less aggressively than client errors (400s)

3. Conflict Resolution

Scenario: Provider documents encounter offline. Meanwhile, nurse updates patient medications online. When provider syncs, there’s a conflict.

Last-Write-Wins with Timestamp Authority:

// Server receives conflicting updates
async function resolveConflict(localData, serverData) {
 // Compare timestamps
 const localTime = new Date(localData.updated_at);
 const serverTime = new Date(serverData.updated_at);

 // Determine field-level changes
 const conflicts = detectConflicts(localData, serverData);

 if (conflicts.length === 0) {
  // No actual conflict, merge additions
  return mergeAdditions(localData, serverData);
 }

 // Field-specific resolution rules
 for (const conflict of conflicts) {
  switch (conflict.field) {
   case 'allergies':
    // Allergies: merge both lists (safety-critical)
    resolved[conflict.field] = mergeLists(
     localData.allergies,
     serverData.allergies
    );
    break;

   case 'medications':
    // Medications: most recent wins (provider authority)
    resolved[conflict.field] = localTime > serverTime
     ? localData.medications
     : serverData.medications;
    break;

   case 'clinical_note':
    // Clinical notes: never auto-resolve, prompt user
    return promptUserResolution(conflict);

   default:
    // Default: timestamp authority (most recent wins)
    resolved[conflict.field] = localTime > serverTime
     ? localData[conflict.field]
     : serverData[conflict.field];
  }
 }

 // Log conflict resolution for audit trail
 auditLog.record({
  type: 'conflict_resolution',
  conflicts: conflicts,
  resolution: resolved,
  timestamp: new Date()
 });

 return resolved;
}

User Notification: When conflicts require manual resolution (clinical notes, safety-critical data), user sees:

Conflict Detected: Patient Medications

Your offline change (9:30 AM):
 Added: Lisinopril 10mg daily

Server change (9:25 AM by Nurse Johnson):
 Added: Metformin 500mg twice daily

Choose resolution:
 [Keep both medications] (recommended)
 [Keep only my change]
 [Keep only server change]
 [Edit manually]

Conflict Prevention:

  • Optimistic locking with version numbers
  • Field-level granularity (not document-level)
  • Automatic merge when changes don’t overlap
  • Clear audit trail of all resolutions

4. Background Sync (Service Worker)

Progressive Web App service workers enable background sync even when the app isn’t open.

Service Worker Registration:

// Register background sync when queueing offline operation
if ('serviceWorker' in navigator && 'sync' in ServiceWorkerRegistration.prototype) {
 navigator.serviceWorker.ready.then(registration => {
  return registration.sync.register('sync-clinical-notes');
 });
}

Background Sync Handler:

// Service worker (runs in background)
self.addEventListener('sync', event => {
 if (event.tag === 'sync-clinical-notes') {
  event.waitUntil(
   processQueueInBackground()
    .then(results => {
     // Notify user of successful sync
     return self.registration.showNotification('Documentation Synced', {
      body: `${results.count} notes synced to EHR`,
      icon: '/imgs/icon-sync.png'
     });
    })
    .catch(error => {
     // Retry will happen automatically
     console.error('Background sync failed:', error);
    })
  );
 }
});

User Experience:

  • Documentation completes offline
  • User closes app, goes home
  • Phone connects to WiFi automatically
  • Background sync uploads all pending notes
  • User receives notification: “5 notes synced to EHR”
  • Next morning, everything is already in the EHR
  • Zero manual intervention required

5. Progressive Enhancement

The system provides value immediately offline, then enhances with cloud capabilities when connectivity returns.

Three Enhancement Levels:

Level 1: Offline-Only (No Connectivity)

  • Record patient conversation
  • On-device transcription (lightweight model, 92% accuracy)
  • Basic structured note generation
  • Local storage and review
  • Full clinical documentation capability
  • Time to completion: 5-7 minutes per encounter

Level 2: Delayed Cloud Enhancement (Sync When Available)

  • Level 1 features complete immediately
  • When connectivity returns (background):
  • Advanced AI model refines transcription (96-98% accuracy)
  • Enhanced clinical comprehension improves note quality
  • Evidence-linking adds claim-level audio timestamps
  • Billing optimization suggests additional codes
  • Enhancement happens invisibly, notes auto-update

Level 3: Real-Time Cloud (Always Connected)

  • All features from Level 1 and 2
  • Plus real-time benefits:
  • Instant EHR integration (bidirectional)
  • Real-time team collaboration
  • Live dashboard analytics
  • Multi-device sync within seconds
  • Optimal experience, but not required

The Philosophy:

  • Offline-only still provides 90% of value
  • Cloud enhancement adds 10% polish
  • Users never notice the transition between levels
  • Degradation is graceful (not a cliff)

How It Works: Progressive Sync in Action

Step-by-Step Workflow

Morning: Internet Outage (8:00 AM - 10:00 AM)

8:00 AM - Internet Goes Down

  • Provider arrives, starts seeing patients
  • OrbDoc app detects offline status
  • Displays subtle indicator: “Offline mode - syncing when connected”
  • Documentation workflow unchanged

8:15 AM - First Patient (Offline)

  1. Provider opens patient chart (loads from local IndexedDB)
  2. Taps “Start Recording”
  3. Conducts visit, conversation captured locally
  4. Taps “Stop Recording”
  5. On-device AI processes audio:
  • Transcription: 2-3 minutes (lightweight model)
  • Structured note generation: 30 seconds
  • Clinical facts extraction: 15 seconds
  1. Provider reviews note, makes corrections
  2. Taps “Sign and Complete”
  3. Note saved locally with status: “Pending sync”
  4. Total time: 5 minutes (same as online)

8:30 AM - Second Patient (Offline)

  • Exact same workflow
  • No difference from first patient
  • Provider doesn’t think about connectivity
  • Notes accumulate in local queue

9:00 AM - Twelve Patients Documented (Offline)

  • All notes completed and signed locally
  • Sync queue contains:
  • 12 completed clinical notes
  • 12 audio files for cloud backup
  • 4 prescription renewals
  • 2 lab orders
  • Total queue size: 180MB (mostly audio)
  • Status bar shows: “12 notes pending sync”

10:00 AM - Internet Returns

Automatic Background Sync Begins:

[10:00:05] Network detected: WiFi, 45 Mbps
[10:00:07] Starting sync queue (12 critical items, 16 total)
[10:00:10] Syncing note 1/12: enc_4857 (Patient: John Smith)
[10:00:12] Success: Note created in EHR, claim submitted
[10:00:12] Syncing note 2/12: enc_4858 (Patient: Mary Johnson)
[10:00:14] Success: Note created in EHR, claim submitted
...
[10:02:30] All critical items synced (12 notes to EHR)
[10:02:35] Starting medium priority: audio backups
[10:05:20] Sync complete: 12 notes, 12 audio files, 6 orders
[10:05:22] Notification: "12 encounters synced to EHR"

Provider Experience:

  • Sees notification 5 minutes after internet returns
  • All documentation already in EHR
  • Claims already submitted for billing
  • Zero manual intervention
  • Continues seeing next patient without interruption

Real-World Scenarios

Scenario 1: Rural Practice Morning Outage

Practice: 6-provider family medicine, rural Tennessee, single DSL provider

Event: Internet outage 8:00 AM - 10:00 AM (2 hours)

Without Progressive Sync:

  • Cloud-based AI scribe shows “Connection error”
  • Providers resort to paper notes
  • 6 providers × 4 patients each = 24 patients on paper
  • After internet returns:
  • 10:00 AM - 12:00 PM: Providers between patients trying to transfer notes
  • Documentation incomplete by lunch
  • Evening catch-up: 2 hours × 6 providers = 12 hours total
  • Time cost: 12 hours provider time
  • Billing delay: 24 encounters not submitted until evening
  • Quality impact: Notes from memory, incomplete details

With Progressive Sync:

  • OrbDoc continues working offline
  • 24 patients documented normally during outage
  • 10:00 AM: Internet returns, background sync begins
  • 10:05 AM: All 24 notes synced to EHR, claims submitted
  • Time cost: Zero (documentation happened in real-time)
  • Billing delay: None (claims submitted immediately after sync)
  • Quality impact: None (documentation during encounter, not from memory)
  • Savings: 12 hours provider time = $1,800-$2,400

Annual Impact (2-3 outages/month):

  • 30 outages/year × 12 hours saved = 360 hours
  • 360 hours × $150-200/hour = $54,000-$72,000 annual savings
  • Plus: Zero billing delays, better documentation quality

Scenario 2: Home Health Nurse in Basement Apartment

Clinician: Home health RN, visiting patient in basement apartment, zero cell signal

Without Progressive Sync:

  • Cloud-based app shows “No connection”
  • Nurse writes paper notes in car
  • Evening: Transfers notes to EHR from home WiFi
  • Time: 30 minutes evening work per visit
  • Frequency: 3-5 basement/rural visits per week
  • Annual cost: 150-250 visits × 30 min = 75-125 hours
  • Value: 100 hours × $40/hour = $4,000

With Progressive Sync:

  • Nurse documents in patient’s home (offline)
  • Note complete before leaving
  • Drives to next patient
  • Phone detects cell signal, auto-syncs in background
  • Nurse receives notification: “2 notes synced”
  • Time: Zero evening work
  • Annual savings: 75-125 hours = $3,000-$5,000

Scenario 3: Mobile Clinic Rural Outreach

Practice: FQHC mobile clinic, 4-hour rural session, cellular dead zone

Event: Friday mobile clinic, 25 patients, zero connectivity during session

Without Progressive Sync:

  • Cloud system non-functional in dead zone
  • Provider documents from memory Friday evening
  • 4-5 hours evening documentation
  • Weekend catch-up common
  • Time cost: 6-7 hours per mobile clinic session
  • Quality: Documentation from memory, incomplete

With Progressive Sync:

  • Provider documents all 25 patients offline during session
  • Notes complete before driving back
  • Enters cell coverage 20 minutes from office
  • Background sync uploads all 25 notes during drive
  • Arrives at office: all documentation already in EHR
  • Time cost: Zero evening work
  • Quality: Real-time documentation, complete and accurate
  • Savings: 6-7 hours per session × 24 sessions/year = 144-168 hours annually
  • Value: 156 hours × $200/hour = $31,200

Economic Impact: Time and Revenue Protection

Time Savings: Recovered Productivity

Average Rural Practice (2-10 providers):

  • Connectivity issues: 2-5 hours/week per practice
  • Providers affected: 60-80% of clinical staff
  • Recovery time with paper → EHR transfer: 2:1 ratio
  • 1 hour of paper notes = 2 hours of evening EHR data entry
  • Annual time loss: 104-260 hours per affected provider

With Progressive Sync:

  • Documentation continues offline (zero interruption)
  • Automatic sync when connectivity returns
  • Time recovered: 104-260 hours/year per provider
  • Value: $15,600-$52,000 per provider annually

5-Provider Practice Example:

  • 3 providers regularly face connectivity issues
  • 150 hours lost annually per provider (average)
  • Total time loss: 450 hours/year
  • With progressive sync: 450 hours recovered
  • Value: 450 hours × $180/hour = $81,000 annually

Revenue Protection: Zero Billing Delays

The Problem: Documentation delays = billing delays = cash flow problems

Traditional Scenario:

  • Internet outage Tuesday 8 AM - 10 AM
  • 12 patients seen during outage
  • Documentation from memory Tuesday evening
  • Notes not finalized until Wednesday
  • Claims submitted Thursday
  • Billing delay: 2 days for 12 encounters

Progressive Sync Scenario:

  • Same outage, 12 patients offline
  • Background sync completes 10:05 AM (5 minutes after internet returns)
  • Claims submitted 10:06 AM
  • Billing delay: Zero

Cash Flow Impact (Small Practice):

  • Average claim value: $150-200
  • 12 encounters delayed = $1,800-$2,400 in receivables
  • Frequency: 2-3 outages/month
  • Monthly impact: $3,600-$7,200 delayed receivables
  • Annual impact: $43,200-$86,400 cash flow improvement

Compliance Impact: Medicare requires documentation completion within 24 hours. Practices using progressive sync maintain compliance despite connectivity failures. Paper-based workarounds often exceed 24-hour window, creating audit risk.

Real-World Economics: Complete Picture

6-Provider Rural Practice Analysis:

Annual Connectivity Issues:

  • Internet outages: 30 events/year (2-3 per month)
  • Average duration: 2 hours per outage
  • Patients affected: 60 encounters/year
  • Mobile/field work: 3 providers spend 20% of time in spotty coverage

Without Progressive Sync (Current State):

  • Outage recovery time: 30 outages × 6 hours = 180 hours
  • Mobile documentation delays: 3 providers × 4 hours/week × 50 weeks = 600 hours
  • Total time loss: 780 hours annually
  • Cost: 780 hours × $175/hour = $136,500

With Progressive Sync:

  • Outage recovery: Zero (automatic sync)
  • Mobile documentation: Real-time (offline capability)
  • Time saved: 780 hours
  • Value: $136,500 annually
  • Platform cost: $199/month × 6 providers × 12 months = $14,328
  • Net benefit: $122,172 annually (8.5:1 ROI)

Additional Benefits:

  • Better documentation quality (real-time vs memory)
  • Improved billing accuracy (complete notes)
  • Reduced provider burnout (no evening catch-up)
  • Enhanced compliance (24-hour documentation rule)
  • Better patient care (complete records available immediately)

Implementation: Technical Requirements

Device and Browser Requirements

Progressive Web App (Browser-Based):

  • Chrome/Edge: Version 90+ (IndexedDB, Service Workers, Background Sync)
  • Safari: Version 14+ (iOS 14+, limited background sync)
  • Firefox: Version 88+ (full support)
  • Storage quota: 500MB-1GB available (browser-dependent)

Native Apps (iOS/Android):

  • iOS: iPhone 11 or newer, iOS 15+
  • Android: Android 10+, 4GB RAM minimum
  • Storage: 10-20GB free space recommended
  • SQLite: Native database, unlimited storage

Network Detection and Optimization

Connection Monitoring:

// Network status detection
const connection = navigator.connection || navigator.mozConnection || navigator.webkitConnection;

if (connection) {
 console.log('Connection type:', connection.effectiveType); // 'slow-2g', '2g', '3g', '4g'
 console.log('Downlink speed:', connection.downlink, 'Mbps');
 console.log('RTT:', connection.rtt, 'ms');
 console.log('Data saver:', connection.saveData); // User preference
}

// Listen for connectivity changes
window.addEventListener('online', handleOnline);
window.addEventListener('offline', handleOffline);
connection.addEventListener('change', handleConnectionChange);

Adaptive Sync Strategy:

  • WiFi (>10 Mbps): Sync all priorities, large files included
  • 4G LTE (2-10 Mbps): Sync critical + high priority, compress large files
  • 3G (0.5-2 Mbps): Critical only, pause audio uploads
  • Slow 2G (<0.5 Mbps): Critical text data only, defer everything else
  • Offline: Queue everything, notify user

Security and HIPAA Compliance

Encryption at Rest (Local Storage):

  • Browser: Relies on OS-level encryption (FileVault, BitLocker)
  • Native Apps: AES-256 encryption with hardware-backed keystore
  • Sensitive Data: Additional app-level encryption for PHI fields
  • User Authentication: Biometric (Face ID, fingerprint) or strong passcode required

Encryption in Transit (Sync):

  • TLS 1.3: All sync operations encrypted
  • Certificate pinning: Prevent man-in-the-middle attacks
  • Token-based auth: OAuth 2.0 with short-lived access tokens
  • Mutual TLS: Optional for high-security environments

Data Integrity:

  • Checksums: Verify data integrity during sync
  • Version control: Detect tampering or corruption
  • Audit logging: Complete trail of all sync operations
  • Rollback capability: Revert to known-good state if corruption detected

HIPAA Compliance:

  • BAA: Business Associate Agreement with cloud provider
  • Access controls: Role-based permissions, audit trails
  • Data retention: Configurable retention policies (7 years default)
  • Patient consent: Integrated into workflow
  • Breach notification: Automated alerts for security events

Storage Management and Optimization

Automatic Cache Management:

// Intelligent storage cleanup
async function manageCacheStorage() {
 const estimate = await navigator.storage.estimate();
 const usedMB = (estimate.usage / 1024 / 1024).toFixed(2);
 const quotaMB = (estimate.quota / 1024 / 1024).toFixed(2);
 const percentUsed = ((estimate.usage / estimate.quota) * 100).toFixed(1);

 console.log(`Storage: ${usedMB}MB / ${quotaMB}MB (${percentUsed}%)`);

 // If approaching limit, cleanup old cached audio
 if (percentUsed > 80) {
  await cleanupOldAudio({
   syncedOnly: true,    // Only remove already-synced audio
   olderThanDays: 30,    // Keep recent audio for 30 days
   keepUnsynced: true,    // Never remove unsynced data
   preserveStarred: true   // User-marked important encounters
  });
 }
}

User Controls:

Settings > Storage Management

Total Storage Used: 285 MB / 500 MB

Audio Cache:
 [x] Keep audio for 30 days after sync (180 MB)
 [ ] Keep audio for 60 days (estimated 320 MB)
 [ ] Keep audio for 90 days (estimated 450 MB)

Sync Preferences:
 [x] WiFi only for audio uploads (save cellular data)
 [ ] Use cellular for audio (faster sync)
 [x] Pause sync on slow connections (<1 Mbps)

Cleanup Options:
 [View cached audio files] (12 encounters, 180 MB)
 [Delete synced audio older than 30 days] (Free 120 MB)
 [Clear all cached data] (Use carefully - will re-download)

When Enterprise Systems Make Sense (And When They Don’t)

Progressive sync makes sense for:

  • Large hospital systems with enterprise WiFi and IT departments work well with cloud-dependent systems (Nuance, Abridge)
  • Urban specialty practices with reliable fiber internet don’t need offline architecture
  • Academic medical centers with redundant connectivity infrastructure can rely on always-online systems

Progressive sync is essential for:

  • Rural practices with DSL, cable, or cellular internet (single provider, frequent outages)
  • Mobile clinicians who document in patient homes, vehicles, or areas beyond reliable coverage
  • Critical access hospitals without redundant internet circuits
  • Home health agencies where nurses visit patients in basements, rural areas, or cellular dead zones
  • Any practice where connectivity failures cause documentation backlogs and evening catch-up work

The difference: Enterprise systems assume connectivity is your problem to solve with infrastructure investment. Progressive sync assumes connectivity is unreliable and architects around that reality. For practices that can’t afford redundant internet circuits and IT departments, progressive sync isn’t a feature - it’s a requirement.


Experience Progressive Sync Architecture

See how documentation continues seamlessly during internet outages, with automatic background sync when connectivity returns.

See It In Action:

  • Watch offline documentation: See complete workflow without internet connectivity
  • View background sync: Watch automatic sync when connection restored
  • Calculate time savings: Estimate annual hours recovered from connectivity issues

See Progressive Sync Demo Get Pricing Details