Room Tablet PWA Install
Install VetRx Ledger as an offline-capable Progressive Web App on iPad, Android, or Windows room tablets — no App Store, no MDM profile required.
Supported browsers
VetRx Ledger is a Progressive Web App (PWA) — it installs directly from the browser with no App Store listing required.
| Browser | Platform | Offline support | Recommended |
|---|---|---|---|
| Chrome 90+ | Android, Windows, ChromeOS | Full (Background Sync) | ✅ Yes |
| Edge 90+ | Windows, Android | Full (Background Sync) | ✅ Yes |
| Safari 15+ | iOS / iPadOS | Partial (manual sync tap) | ⚠️ Limited |
| Firefox 100+ | Android | Partial | ⚠️ Limited |
Step 1 — Open VetRx Ledger in Chrome
Navigate to https://grantshelf.com on the tablet browser. Sign in with the shared clinic account (see Shared tablet accounts below for the recommended account strategy).
Wait for the page to fully load — the service worker registers on first load and caches all required assets in the background. Look for the offline-ready indicator in the bottom-right corner (it shows ✓ once the cache is warm).
Step 2 — Install / Add to Home Screen
Trigger the install prompt using your browser's native mechanism:
- Chrome (Android): Tap the ⋮ three-dot menu → Add to Home Screen. Alternatively, Chrome shows an install banner at the bottom — tap Install.
- Edge (Windows / Android): Tap the ⋯ menu → Apps → Install this site as an app.
- Safari (iOS / iPadOS): Tap the Share icon (box with arrow) → Add to Home Screen → tap Add.
- Chrome (Windows / ChromeOS): Click the install icon (⊕) in the browser address bar → Install.
After installing, the VetRx Ledger icon appears on the tablet home screen or app drawer. Tap it to launch in standalone mode (no browser chrome, full-screen UI).
Step 3 — Verify offline cache
- Enable Airplane Mode on the tablet.
- Open VetRx Ledger from the home screen icon (not the browser).
- The full app UI should load, displaying an orange "Offline" indicator badge at the top.
- Navigate to Ledger — the event form should be fully functional.
- Record a test DRAW event (any drug, any quantity). The event queues in IndexedDB; the OfflineStatus widget shows a pending count (e.g. 1 pending).
- Re-enable WiFi. Within seconds, the pending count drops to 0 and the event appears in the ledger — confirming Background Sync is working.
Step 4 — Kiosk mode (optional)
For dedicated room tablets that should never leave the VetRx Ledger app, enable single-app lock:
- iOS / iPadOS — Guided Access: Go to Settings → Accessibility → Guided Access → enable it and set a passcode. Open VetRx Ledger, then triple-click the side button (or Home button) to activate. Staff can use the app but cannot switch apps or access Settings without the passcode.
- Android — App Pin: Go to Settings → Security → App Pinning (exact path varies by OEM). Open VetRx Ledger, then tap Recent Apps and tap the pin icon on the VetRx card. The device is locked to that app until the PIN is entered.
- Windows — Kiosk mode:Use Settings → Accounts → Family & other users → Set up a kiosk → assign Edge (with VetRx Ledger as the home page) to a dedicated account.
Shared tablet accounts
Most clinics operate shared room tablets rather than per-staff devices. The recommended account strategy:
- Create one VetRx account per tablet, e.g.
tablet-surgery@yourclinic.com. - Assign the tablet account the Tech role — it can submit events but cannot manage organisation settings or export DEA reports.
- Individual DVM and technician IDs are entered per-event in the DVM ID and Tech ID fields — so the audit trail records who performed the action, not just which device.
- Never share one account across multiple clinic sites — each site must have its own account so records stay separated by DEA registration location.
Offline event queue details
Events recorded offline are stored in the browser's IndexedDB store vetrx-queue. The OfflineStatus component (bottom-right of the app) shows:
- ✅ Online — all events synced
- 🟡 N pending — N events queued, awaiting sync
- 🔴 Offline — no network; events are queuing safely
On Chrome/Edge Android, the Background Sync API syncs automatically when the network returns — even if the app is in the background or the screen is off. On iOS Safari, sync triggers on next page focus; tap Sync Now in the OfflineStatus widget for immediate sync.
Troubleshooting
| Symptom | Likely cause | Fix |
|---|---|---|
| Offline banner never disappears even with WiFi | Stale service worker | Hard-refresh (hold-reload on mobile) then re-add to home screen |
| Events not syncing on iOS | Background Sync unavailable (iOS) | Tap Sync Now in the OfflineStatus widget |
| Camera / OCR not working | HTTPS required for camera API | Confirm URL is https:// (not http://) |
| Install banner not appearing | Already installed, or dismissed | Remove app from home screen, clear browser data, re-navigate to site |
| App crashes on open in standalone mode | Out-of-date cache after deployment | Open in browser first (not the home screen icon), hard-refresh, then relaunch from icon |
MDM deployment
If your clinic uses a Mobile Device Management (MDM) solution (Jamf, Intune, Mosyle, etc.), you can pre-configure the PWA without users needing to manually install it:
- iOS / Jamf: Use a Web Clip configuration profile pointing to
https://grantshelf.comwith a custom icon. Set the display mode to Full Screen. - Android / Intune:Use Managed Chrome to push a managed bookmark or configure Chrome's Add site to apps policy via Chrome Enterprise.
- Windows / Intune: Use the Edge management profile to set
grantshelf.comas a pinned site.