-
Notifications
You must be signed in to change notification settings - Fork 87
Hover over tool fill shows tooltips and Sparse state file #827
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
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Skip selecting tools when ruler, rectangle, or polygon tool is active. This prevents bugs when clicking on existing tools while placing new ones.
✅ Deploy Preview for volview-dev ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
Enable loading state files with minimal manifest.json containing just dataSources and optional tools. Made most manifest fields optional so Python tooling can generate session files without specifying layouts, views, or other defaults. Views now auto-assign the first loaded dataset when viewByID is not provided.
…tion - Show error messages when data sources fail to load during state restoration - Support multiple volumes from a single data source (e.g., DICOM folders) - Use getURLBasename for consistent name extraction with URL params flow
Integrate state file restoration into the main importDataSources pipeline for better parallel streaming support. Uses 3-phase restoration: - Phase 1: Set up view layout immediately (without data bindings) - Phase 2: Bind views incrementally as each data leaf completes - Phase 3: Restore tools, segments, and layers after all data loaded Key changes: - Remove duplicate resolvingHandlers chain from restoreStateFile - Add StateFileContext to track restoration progress across pipeline - Add stateFileLeaf metadata to data sources for tracking - Add deserializeLayout() and bindViewsToData() to view store - Handle URI fallback when archives can't be deserialized directly
… test - Move writeManifestToZip and openVolViewPage to shared utils.ts - Add browser.reloadSession() between tests to avoid stale element issues - Use waitForDisplayed instead of waitUntil polling loop - Fix remote-manifest test to not use openVolViewPage for failure case
Replace complex rebuildDataSources() with simpler resolveToLeafSources() that walks the serialized DAG to find importable leaf sources (URIs or files) without reconstructing the full runtime DataSource tree.
Replace StateFileContext callbacks with StateFileSetupResult type. State file restoration now collects results and completes at end of import instead of tracking pending counts with callbacks.
DICOM SEG images don't pre-allocate vtkImageData like regular DICOM, so getVtkImageData() could return empty data causing volume renderer to crash on null scalar texture.
State files can now be loaded as plain JSON files, not just zipped. This enables simpler workflows when data is referenced via URIs.
Paint strokes now convert world coordinates to index space using the labelmap's worldToIndex matrix instead of the parent image's. This fixes painting at wrong locations when segment groups have different direction matrices than their parent image.
Add coordinate transformation utilities and fix tools to use labelmap's own coordinate system instead of assuming it matches the parent image. Fixes paint, polygon rasterization, slice rendering, and scalar probe when segment groups have different direction matrices than the base image.
Verifies paint tool works correctly on coronal view when the segment group has a different direction matrix than the parent image (e.g., TotalSegmenter output). Also refactors shared manifest to configTestUtils.
- Rename LabelMap schema to SegmentGroup - Rename labelMaps field to segmentGroups in ManifestSchema - Add migrate610To620 migration for backwards compatibility - Update MANIFEST_VERSION to 6.2.0 - Delete unused 3.0.0 test fixture
- Add session-state-lifecycle.e2e.ts testing 5.0.1 manifest migration - Verify rectangle, polygon, and labelmap->segmentGroup migration - Test label strokeWidth persistence through save/load cycle - Use minimal DICOM fixture for faster test execution - Remove old session-zip.e2e.ts (was excluded from test suite)
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Adds support for sparse state file manifests - JSON state files that reference external data via URIs instead of embedding everything in a zip archive. Also includes bug fixes for labelmaps with different direction matrices and tool interaction improvements.
Features
*.volview.jsonmanifests that reference remote datasetsBug Fixes
Refactoring
labelMapstosegmentGroupsin state file schema (v6.2.0)