Chapter 22: Implementing Scanners

For developers: keep scanning logic deterministic, configuration-driven, and measurable. OTs need predictable behavior that they can tune; developers need clear parameters with measurable effects.

Why This Matters

Single-switch scanning performance is dominated by timing, layout, and errors. If the implementation hides or blends those factors, clinicians and developers can’t reliably improve text entry rate (TER). The goal here is a predictable system with explicit settings and instrumentation.

Settings Optimization (Koester & Simpson 2014)

A structured decision tree improves text entry rate (TER). A key rule is the 25% scanning error threshold: if errors exceed 25% of correct selections, focus on reducing errors before optimizing efficiency.

Koester and Simpson 2014 settings optimization flowchart
Decision tree for identifying revised scanning settings (Koester & Simpson, 2014).

Summary: fix switch consistency → measure scanning errors → if >25% focus on timing and initiation; if ≤25% focus on dead time, prediction use, and layout.

What You Need to Measure

At minimum, capture three inputs before trying to optimize:

If you log scan steps, you can diagnose whether errors are “late press,” “early press,” or “missed row/column” problems.

Decision Branch Summary

Use this as a short-form implementation guide.

Error-Reduction Interventions

When errors are high, target the specific failure mode:

These are intentionally conservative changes; once errors drop, move to efficiency improvements.

Efficiency Improvements

Once errors are controlled, aim for fewer scan steps and less dead time:

Implementation Checklist

Code Integration Notes

The book includes a small TypeScript module (ScanSettingsAdvisor.ts) that translates error patterns into suggested adjustments. Treat it as an advisory layer, not an automatic reconfiguration. The interface should allow clinicians to accept or reject the changes and then retest.

Settings Advisor (Prototype)

Summary: