Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion CITATION.cff
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
cff-version: 1.2.0
message: "If you use Perspecta in academic work, please cite the associated preprint."
message: "If you use Perspecta in your research, please consider citing the preferred citation below."
type: software
title: "Perspecta DICOM Viewer"
authors:
Expand Down
3 changes: 2 additions & 1 deletion DESIGN.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ Its primary purpose is consistency during development, not full architecture cov
4. Structured Reports MUST load through the dedicated SR parser and single-document UI path.
5. Parametric Maps MUST load through the dedicated Parametric Map parser; they may render as standalone images or attach as supplemental overlays depending on explicit source-image references.
6. Mixed image+SR selections MUST stage SR documents as separate history entries, not image viewports.
7. Supplemental overlay visibility MUST default to off and MUST be user-toggled (`G`).
7. Supplemental overlay visibility MUST default to off and MUST be user-toggled (`G` by default, or its configured replacement).
8. GSPS overlays MUST attach by SOP Instance UID match only.
9. Mammography CAD SR overlays MUST attach by direct referenced-image SOP Instance UID match only. Only `Presentation Required` vector findings participate in render/navigation. Visible SR geometry may carry a short text label derived from the same finding metadata (for example finding meaning, laterality/view, and certainty). Non-geometric descriptive SR content remains available through the document view only.
10. Parametric Map overlays MUST attach only when they carry explicit source-image SOP Instance UID references; no geometry-only or study/series heuristics are allowed.
Expand All @@ -63,6 +63,7 @@ Its primary purpose is consistency during development, not full architecture cov
28. Browser builds MUST remain single-threaded on Glow/WebGL, use `platform::MonotonicInstant` for shared elapsed-time state, and exclude browser-incompatible JPEG 2000/JPEG-LS codecs without changing desktop defaults.
29. GitHub Pages MUST build from the exact triggering `master` commit and publish that commit identity in the artifact, footer, and `+web.<7-hex>` display version. Local builds MUST disclose a dirty source tree instead of presenting it as clean.
30. The configurable secondary color MUST cover live measurements, selected image/history borders, and GSPS/SR graphics and labels. Desktop builds persist it with the existing user settings; browser builds keep it only for the current session.
31. Configurable single-key shortcuts MUST remain unique, MUST NOT replace reserved navigation/close keys, and MUST persist alongside existing desktop settings. Invalid or conflicting persisted shortcut sets MUST fall back to safe defaults; browser changes remain session-only.

## Change Rules

Expand Down
18 changes: 10 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,15 +30,15 @@ Want to try Perspecta without installing it? [Open the browser demo](https://per
- Decode DICOM `PixelData` through `dicom-pixeldata` (including encapsulated data).
- JPEG 2000 support by default via `openjp2`; optional JPEG-LS support via the `jpeg_ls` feature and `charls`.
- Real-time window/level controls for grayscale workflows.
- Multi-frame cine playback (`C` key or UI control).
- GSPS (Grayscale Softcopy Presentation State) overlay support with manual toggle (`G` key, off by default).
- Multi-frame cine playback (`C` by default, configurable in Settings, or UI control).
- GSPS (Grayscale Softcopy Presentation State) overlay support with manual toggle (`G` by default, configurable in Settings, and off by default).
- Mammography CAD SR overlay support on matching images when the SR provides vector marks, with short finding text rendered alongside visible geometry.
- DICOM Parametric Map support for local files, including heatmap overlay on matching source images and standalone opening when no explicit source match is present.
- Structured Report (SR) DICOM support with a dedicated text/document view.
- Live distance measurement with DICOM pixel spacing support when available (`mm`, fallback to `px`).
- Mouse-wheel zoom + drag pan in single-image and multi-view (`1x2` / `1x3` / `2x2` / `2x4`) mammo views.
- Typical DICOM mouse conventions (single modifier): `Shift + wheel` for frame navigation and `Shift + drag` for window/level in multi-view layouts.
- Metadata side panel for quick inspection, with a full-field popup for the active object (`V`).
- Metadata side panel for quick inspection, with a full-field popup for the active object (`V` by default, configurable in Settings).
- Launch through a custom URL scheme (`perspecta://...`).
- Launch directly from DICOMweb (study/series/instance aware).

Expand Down Expand Up @@ -152,10 +152,12 @@ This writes a desktop entry under `~/.local/share/applications`.

## Keyboard Shortcuts

- `C`: toggle cine mode
- `G`: toggle image overlay (GSPS, Mammography CAD SR marks, or a matching Parametric Map, when available)
- `N`: jump to the next image/frame with an overlay
- `V`: open or close the full metadata field popup for the active object
The single-key shortcuts below are defaults. Change or individually reset them in **Settings**, or use **Reset all** to restore the shortcuts, secondary color, and visible metadata field selection. Reserved navigation and close shortcuts cannot be reassigned.

- `C` (default): toggle cine mode
- `G` (default): toggle image overlay (GSPS, Mammography CAD SR marks, or a matching Parametric Map, when available)
- `N` (default): jump to the next image/frame with an overlay
- `V` (default): open or close the full metadata field popup for the active object
- `Esc`: exit live measurement mode; if no measurement is active, close the full metadata popup
- `Tab`: next history item
- `Shift+Tab`: previous history item
Expand Down Expand Up @@ -223,7 +225,7 @@ make dev

## Citation

If you use Perspecta in academic work, please cite the associated engrXiv preprint:
If you use Perspecta in your research, please consider citing the associated engrXiv preprint:

Cogan, T. C. (2026). _Perspecta: A Minimalist, Launch-Driven Desktop DICOM Viewer for Targeted Review_. engrXiv. https://engrxiv.org/preprint/view/7224

Expand Down
Loading