Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SmartScrollbar component to show cached slices #4340

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

Adithyan-Dinesh-Trenser
Copy link

@Adithyan-Dinesh-Trenser Adithyan-Dinesh-Trenser commented Aug 20, 2024

Context

A Viewport scrollbar that shows the cached slices of the displayset loading in that viewport. Also, a feature was added to scroll only to the cached slices in normal scrolling operations. To force scrolling ( scrolling to uncached slices ) must press the Ctrl key when scrolling.

Changes & Results

  • Created a 'SmartScrollbar' component based on 'ViewportImageScrollbar' and added a layer to show cached slices.
  • Extended 'StackScrollTool' and StackScrollMouseWheelTool' to support both regular and smart scrolling used when initializing instead of the original tools.
  • Modified the 'scroll' command to include an optional property to identify smart scrolling.
  • Modified tools are added in 'longitudinal' and 'segmentation' modes.
  • The SmartScrollbar is only available in stack viewport as the number of imagesIds and the number of slices may vary in 2d MPR viewports.

A sample screenshot of the SmartScrollbar

image

Testing

Checklist

PR

  • My Pull Request title is descriptive, accurate and follows the
    semantic-release format and guidelines.

Code

  • My code has been well-documented (function documentation, inline comments,
    etc.)

Public Documentation Updates

  • The documentation page has been updated as necessary for any public API
    additions or removals.

Tested Environment

  • OS: Windows 11 Pro
  • Node version: 18.17.0
  • Browser: Chrome 127.0.6533.120 (Official Build) (64-bit)

Copy link

netlify bot commented Aug 20, 2024

Deploy Preview for ohif-platform-docs ready!

Name Link
🔨 Latest commit b2e4b28
🔍 Latest deploy log https://app.netlify.com/sites/ohif-platform-docs/deploys/66fe8c9b6f73b00008cf8795
😎 Deploy Preview https://deploy-preview-4340--ohif-platform-docs.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify site configuration.

Copy link

netlify bot commented Aug 20, 2024

Deploy Preview for ohif-dev canceled.

Name Link
🔨 Latest commit b2e4b28
🔍 Latest deploy log https://app.netlify.com/sites/ohif-dev/deploys/66fe8c9b944c7700082d8bee

@Adithyan-Dinesh-Trenser
Copy link
Author

Cc : @Ouwen

@Ouwen
Copy link
Contributor

Ouwen commented Aug 20, 2024

@sedghi is this something that could be in upstream?

@sedghi
Copy link
Member

sedghi commented Aug 20, 2024

@Ouwen Hey guys, thanks, yes it can be. CCing our designer for this

@dan-rukas @james-hanks

@dan-rukas
Copy link
Member

Hi everyone! I work as a UX designer on the OHIF team. This is amazing! Thank you for sharing! We would love to add this to OHIF. We are currently looking at some design updates that we'll want to apply here. I can take a look at those applied to this component at the end of this week (or early next) and share them here.

Thank you again! ❤️

@salimkanoun
Copy link
Contributor

Hi there, thanks for this nice addition,

I have a question about this statement

The SmartScrollbar is only available in stack viewport as the number of imagesIds and the number of slices may vary in 2d MPR viewports.

I wonder if it woundn't be possible to see things differently, rather then trying to mach the number of slice in the viewport consider the displayset loaded fraction.

The displayset has a known number of frames so it would be possible to display how many slice of the display set have been loaded and this could work for a volume viewport no matter of its orientation.

Maybe would need a bit different presentation.
The actual vertical make sense for a stack viewport to display which slice is available.

Could this PR be extended to another overlay maybe a progress circle to show the fraction of laoaded display set in case of a volume viewport ?

@Adithyan-Dinesh-Trenser Adithyan-Dinesh-Trenser force-pushed the feat/smartscrollbar-component-for-showing-cached-slices branch from d781297 to 5fa622b Compare September 27, 2024 12:35
…layset and added an extra feature to prevent scrolling to uncached slices.
@Adithyan-Dinesh-Trenser Adithyan-Dinesh-Trenser force-pushed the feat/smartscrollbar-component-for-showing-cached-slices branch from 5fa622b to b2e4b28 Compare October 3, 2024 12:22
@sedghi
Copy link
Member

sedghi commented Oct 17, 2024

We were too busy with the rest of the component library, and still didn't have time to look at the design here, sorry about the delay

@sedghi
Copy link
Member

sedghi commented Nov 6, 2024

We're sorry we couldn't include this in 3.9 due to other high priorities. We appreciate your patience and will review this, and give a design as soon as possible.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants