fix: improve slide-list overview preview sizing (#399) - #400
Conversation
|
|
Overall Grade |
Security Reliability Complexity Hygiene |
Code Review Summary
| Analyzer | Status | Updated (UTC) | Details |
|---|---|---|---|
| JavaScript | Aug 10, 2026 8:50p.m. | Review ↗ |
Important
AI Review is run only on demand for your team. We're only showing results of static analysis review right now. To trigger AI Review, comment @deepsourcebot review on this thread.
|
Visit the preview URL for this PR (updated for commit ef2edc4): https://idc-external-006--pr400-fix-399-overview-siz-6kevhuiw.web.app (expires Mon, 17 Aug 2026 20:52:53 GMT) 🔥 via Firebase Hosting GitHub Action 🌎 Sign: 88aacecd98ba54d2f9c8d201a9444e43d1ad8307 |
Google Healthcare rejects fractional viewport=w,h (HTTP 400). Derive resizeFactor so cols*factor and rows*factor are integers; fall back to factor 1 when no integer downscale fits the slide-list tile.
|
@igoroctaviano this is how the second slide looks like right now... is this expected?
|
Yes, if it's a wide and low case. The heuristic is using the slide dimensions to make it easier to see the overview while navigating. I can set it to be fixed height and width if that makes sense too. |
|
I admit I do not know what is a good heuristic, but when overview has the same size as the actual image, I am not sure the heuristic is good. Why is wide-and-low taking entire width, but narrow-and-tall does not take the full height? But after all, it is not a big deal - I think this is better than what we had before, so let's merge and refine later. |
Prefer a shared viewport fraction on both axes and cap growth at 60% so wide slides no longer spill to full width while tall slides get matching height treatment.
|
Addressed the wide vs tall asymmetry in the overview mini-map heuristic (also mirrored in ImagingDataCommons/dicom-microscopy-viewer#266):
Wide and tall extremes now get matching treatment instead of width-first expansion. |
Retarget DMV's locked overview resolution in place after Slim resizes the mini-map, re-pinning the slide center so OverviewMap resetExtent cannot crop the view when zooming.
Put MemoryFooter in an AppShell column below the viewer, size the mini-map with an OL-style fixed box, and keep overlay left/bottom insets aligned without the collapse control adding layout chrome.
Mirror antd Badge layout (line-height: 1 + translate(50%, -50%)) so AppShell overflow no longer crops pills pinned by the header line-height.
|
* fix: improve overview map sizing and integer viewport dimensions Size the volume overview mini-map with a minimum height and preferred width so wide/thin slides stay usable, and round non-volume viewport pixel sizes to integers for DICOMweb servers that reject fractional viewport values. Companion to ImagingDataCommons/slim#400. * fix: size overview mini-map symmetrically for wide and tall slides Match Slim's preferred/max fraction heuristic so wide slides stay under 60% viewport width and tall slides grow with the same height treatment. * fix: lock overview resolution to post-layout map size Derive the fixed overview view resolution from OpenLayers' size after updateSize so border/padding cannot crop the full-slide mini-map. * fix: tighten overview overlay insets and collapse button layout Size the mini-map with an OL-style fixed box, pin equal 8px control insets, and keep the collapse control overlaid when expanded so it cannot add dead space under the map after toggle.





Summary
TotalPixelMatrixextent but the rendered PNG is much smaller (Heuristic for sizing overview needs improvements #399).computeOverviewPreviewResizeFactorto deriveOverviewImageViewer.resizeFactorfrom the 100px preview tile and matrix dimensions (replaces the removed fixed0.3thumbnail heuristic from fix: Thumbnail fallback and multiple thumbnail using dicom tag browser #340).ResizeObserver.clampOverviewMapInViewport) for the volume viewer until the published DMV bundle includes the same sizing fix.Root cause
With
resizeFactor: 1, DMV builds an extent from the full matrix whileretrieveInstanceRenderedreturns a small overview/thumbnail PNG — the preview shows a tiny image or fails to fit the tile.Related
dicom-microscopy-viewerdependency in Slim; the client-side clamp can remain as a safety net or be simplified.Test plan
computeOverviewPreviewResizeFactor,recoverSeriesInstanceUID, andfitOverviewMapSizetsc --noEmitandbiome checkCloses #399