๐ Patient Intake Forms โ ScriptQ makes it easy to add a patient, capture their details, and record the request in a structured way so the right information is attached to the right job from the start. That reduces confusion and keeps the queue useful as volume rises.
- Capture patient details and dispensing context in one place
- Keep intake consistent across staff and public submissions
- Move from patient request to operational progress without losing detail
๐ Live Queue Tracking โ Every prescription moves through a defined workflow, with statuses such as Future, Queued, In progress, Ready, Collected, and Cancelled. The dashboard updates automatically so staff can see the current operational picture without rechecking manual lists.
- See all active work in one live queue
- Recognise delays before they become visible to customers
- Keep the team aligned on what's happening now
โฑ๏ธ Wait Time Estimation โ The queue uses a dispensary pipeline capacity model rather than guessing from queue length alone: approximately three minutes for work in progress and four minutes for each queued prescription, compared with active expected-back times. Overdue work adds a buffer, later-today returns join the estimate within 60 minutes, and an idle queue shows no current wait.
- Estimate completion windows in real time
- Track how far each job is from expected completion
- Help OTC and dispensary teams communicate more clearly
๐ฑ QR Code Check-in โ Patients can submit a request through a pharmacy-specific QR code or public link, which makes the first intake step easy and friction-free. There is no customer app to install, but the work still lands in the same operational queue as a staff-created request.
- Customers scan once and submit a request
- Work enters the same queue as in-store requests
- Pharmacy can respond without extra admin overhead
๐ฅ๏ธ Patient Kiosk โ A shared counter tablet can run a touch-friendly ScriptQ kiosk for walk-in intake. It uses the same queue and wait estimate as public check-in, then shows a neutral confirmation and resets automatically without exposing a patient status link or retaining the previous request in the browser.
- Designed for a shared pharmacy counter screen
- Neutral confirmation protects the next patient's privacy
- Automatic reset after submission
๐ Search & Task Views โ Staff can search active and archived work and switch between All, Queued, Future, Awaiting Stock, Recently Changed, and Archive. This keeps the interface practical when volume rises without splitting OTC and dispensary work into separate dashboards.
- Find the right patient without scanning the whole queue
- Focus on current work, future returns, stock delays, recent changes, or history
- Support better daily service during busy periods
๐ 7-Day Analytics Dashboard โ ScriptQ is not only operational but also informative. The analytics layer summarises processed prescriptions, patient additions, and seven-day trends so the pharmacy can review real patterns instead of relying on memory alone.
- Track activity across the last seven days
- Spot peaks, quiet periods, and service trends
- Support smarter staffing and pharmacy decisions
๐จโโ๏ธ Pharmacist Requests โ Priority workflow requests are treated as high-urgency work, giving the team a clear signal when something needs earlier attention. This helps protect patient care and makes urgent items harder to miss.
- Urgent requests stay visible and time-sensitive
- Priority items are easier to resolve in order
- Staff can act without losing the request context
๐ฆ Stock, Storage & Collection Tracking โ ScriptQ keeps stock work separate from the main prescription status. Staff can record Not checked, In stock, Awaiting stock, or Partially available, along with an expected arrival date, supplier order status, patient contact status, shelf location, and final collection or cancellation.
- Update stock quickly without changing patient or return-time details
- Track expected stock arrival, supplier ordering, and patient contact
- Close the loop cleanly when a patient collects or cancels
๐ Data Retention Policies โ Local SQLite retention rules and status-aware cleanup keep the queue relevant without letting stale items clutter the system. The result is a practical operational tool that stays coherent over time.
- Normal queue records are retained for a default 30-day window, subject to configuration
- Future, Ready, Collected, and Cancelled records follow status-aware retention rules
- Resolved pharmacist requests are removed immediately
- Preserve local-first data handling for the pharmacy
๐ Local-first resilience โ The app includes a cached app shell, offline warnings, browser-local recovery for interrupted public submissions, and retry-safe submission handling. Public check-in can only retry successfully when the pharmacy host is reachable, and live queue data still requires a connection to the local ScriptQ host.
- Load the public check-in page once while online before relying on offline recovery
- Protect public submissions with CSRF, honeypot, rate-limit, and idempotency controls
- Use SQLite WAL mode, container health checks, pre-update backups, and health-gated rollback procedures
๐ก Optional Anonymous Metrics โ A pharmacy can opt in to reporting a random installation ID and cumulative queue-log count. Reporting is disabled unless configured and never sends patient details, prescription content, staff names, statuses, stock information, tokens, or individual timestamps.
๐ก๏ธ Privacy controls โ Public requests are protected with CSRF validation, IP and phone rate limits, honeypot detection, sanitised input, no-cache responses for dynamic patient data, random status tokens, and idempotent retries that help prevent duplicate queue entries.
- Public check-in and private status routes remain separate from staff operations
- Kiosk submissions use neutral confirmation rather than exposing a status link
- Each pharmacy remains responsible for access controls, retention, backups, privacy notices, and regulatory obligations