Add an indicator to the study list which indicates if a study has been downloaded to the local cache, add a button to pre-fetch or clear
Waiting for images and their associated metadata to load is one of the most significant issues with the OHIF viewer. For some large studies it can take several minutes for the data to transfer -- disrupting review, validation, and reporting -- and frustrating users. In ad-hoc testing, we've been told by members of some care teams that the viewer is "too slow and we will not use it." This particularly applies to large CT and X-ray studies.
OHIF uses session storage to cache for searches and series that have been downloaded to the local machine. That capability could be extended to help improve the perceived performance of the viewer. Proposed changes:
- Extend caching to use both local storage in addition to session storage. The current session storage used by OHIF resets when the page is refreshed. That works for studies that have been passively loaded and the user may not want to preserve between sessions. There are however, studies that the user might want to explicitly transfer to the local machine for review (or to work with offline). If the caching system in OHIF were extended to use both the local storage and session storage, a user could queue multiple studies to download in the background. After download, loading the data from local storage would be near instant.
-
Add controls which allow for the user to manage local storage. One of the frustrating aspects of the current caching system, is there is no way to control which studies are cached or to refresh data in the cache. Adding controls to allow download (or to clear) a study from the local storage would solve this issue.
- Study list: add indicator showing whether a study is available locally (and if it is downloading, show progress)
- Viewer: add a button indicating the data is stored locally and allowing the user to delete it from the local cache
As-built update (2026-07-21, authorized by @roakes): implemented via #125 (closed) (full spec) and !60. The original text above is preserved for history; the following points were decided differently during specification and implementation:
-
Storage mechanism. The "local storage in addition to session storage" framing was corrected in #125 (closed) §2.1 — this codebase has no session-storage study cache to extend, and
localStoragecannot hold pixel data. The cache is IndexedDB (raw Part10 bytes + metadata per instance), durable across reload/restart, with a newsonadorlocal:image-loader scheme on both rendering stacks. Cached studies open with zero network requests. -
Study-list indicator. Locally available studies render with a heavier row font rather than an icon (decision recorded in #125 (closed) FR-6 as-built). Per-row download progress is not shown: in-flight transfers surface through the "Save Offline Copy"
↔️ "Cancel Download" state of the row's Action menu, an active-transfer count badge on the Offline Storage launcher (visible on every study-list page), and per-job progress bars inside the Offline Storage dialog. - Controls. Download/clear management went beyond the original ask: per-row and bulk Save Offline Copy actions, a viewer More-menu Save/Remove Offline Copy button, and an Offline Storage dialog (Active Transfers / Offline Studies tabs) with search, per-job cancel, per-study remove, Cancel Transfers, and Clear Storage.
- Cancel behaviour. Cancelling an in-flight save removes that job's partial downloads (clean-up-after-itself) rather than retaining them — per-study cache state stays all-or-nothing from the user's perspective, while missing instances always fall back to the network per instance.