Skip to content

Bug: Fix segmentationid undefined 5106#5107

Merged
jbocce merged 7 commits intoOHIF:masterfrom
vishnusureshperumbavoor:vsp/fix-segmentationid-undefined-5106
Jul 16, 2025
Merged

Bug: Fix segmentationid undefined 5106#5107
jbocce merged 7 commits intoOHIF:masterfrom
vishnusureshperumbavoor:vsp/fix-segmentationid-undefined-5106

Conversation

@vishnusureshperumbavoor
Copy link
Contributor

@vishnusureshperumbavoor vishnusureshperumbavoor commented Jun 6, 2025

Context

Fixes #5106

When pressing the hotkey "A" to add a new segment in a viewport with no active segmentation, the application previously threw a TypeError:

Cannot read properties of undefined (reading 'segmentationId')

Root Cause

The code attempted to access segmentationId on an undefined segmentation object when no segmentation was active.

Changes & Results

Implemented graceful handling for missing active segmentation:

  • Added null check for activeSegmentation.

  • Added warning log to inform developers of the missing segmentation.

  • Prevented execution of addSegment when no active segmentation is present, avoiding the TypeError

Before: Pressing "A" with no active segmentation caused a TypeError and crashed the workflow.

After: Pressing "A" with no active segmentation logs a warning and safely exits, keeping the application stable.

Testing

  1. Open the OHIF viewer and load any image in a viewport.

  2. Ensure there is no active segmentation in the selected viewport.

  3. Press the hotkey "A".

  4. Confirm that a warning is logged and no error is thrown.

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
  • Node version: 20.18.1
  • Browser: Chrome 137

@netlify
Copy link

netlify bot commented Jun 6, 2025

Deploy Preview for ohif-dev ready!

Name Link
🔨 Latest commit
🔍 Latest deploy log https://app.netlify.com/projects/ohif-dev/deploys/6877da68f69fad4e2e117866
😎 Deploy Preview https://deploy-preview-5107--ohif-dev.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 project configuration.

@vishnusureshperumbavoor vishnusureshperumbavoor changed the title Vsp/fix segmentationid undefined 5106 Bug: Fix segmentationid undefined 5106 Jun 6, 2025
@sedghi sedghi requested a review from jbocce July 16, 2025 16:07
Copy link
Collaborator

@jbocce jbocce left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good. Thank you for your contribution!

@jbocce jbocce merged commit f38805e into OHIF:master Jul 16, 2025
7 checks passed
@vishnusureshperumbavoor vishnusureshperumbavoor deleted the vsp/fix-segmentationid-undefined-5106 branch July 16, 2025 17:19
WillianVarela added a commit to cfaz-net/dicomviewer that referenced this pull request Nov 10, 2025
* chore(version): version.json [skip ci]

* chore(version): Update package versions [skip ci]

* fix: e2e playwright tests runnigns (OHIF#5070)

* chore(version): version.json [skip ci]

* chore(version): Update package versions [skip ci]

* fix(Customization): Fixed incorrect events broadcast  (OHIF#5075)

Co-authored-by: Dan Elkis <dan.elkis@signalpet.com>

* chore(version): version.json [skip ci]

* chore(version): Update package versions [skip ci]

* fix(ui): Prevent unintended text selection and improve component behavior (OHIF#5077)

* chore(version): version.json [skip ci]

* chore(version): Update package versions [skip ci]

* feat: create memo when manually adding and removing annotations (OHIF#5051)

* chore(version): version.json [skip ci]

* chore(version): Update package versions [skip ci]

* docs: Fixed incorrect documentation and variables names (OHIF#5080)

Co-authored-by: Dan Elkis <dan.elkis@signalpet.com>

* chore(version): version.json [skip ci]

* chore(version): Update package versions [skip ci]

* fix(segmentation): Allow for debounced pub/sub events to be reliably cancelled when unsubscribed to. (OHIF#5092)

* chore(version): version.json [skip ci]

* chore(version): Update package versions [skip ci]

* fix(tmtv): Corrected the various section names being referenced. (OHIF#5093)

* chore(version): version.json [skip ci]

* chore(version): Update package versions [skip ci]

* fix(touch): Allow for multi-touch in OHIF (OHIF#5099)

* chore(version): version.json [skip ci]

* chore(version): Update package versions [skip ci]

* fix(WindowLevelActionMenu): The window level menu must show different contents for 3D volume viewports (OHIF#5113)

* chore(version): version.json [skip ci]

* chore(version): Update package versions [skip ci]

* docs: improved migration guides for 3p10 (OHIF#5110)

* chore(version): version.json [skip ci]

* chore(version): Update package versions [skip ci]

* fix(touch): Prevent touch drag to refresh the browser page. (OHIF#5108)

* chore(version): version.json [skip ci]

* chore(version): Update package versions [skip ci]

* fix(markerlabelmap): accept preview/reject preview not working when the marker annotation tools are active (OHIF#5101)

Co-authored-by: Bill Wallace <wayfarer3130@gmail.com>

* chore(version): version.json [skip ci]

* chore(version): Update package versions [skip ci]

* fix: data-viewportId name is illegal, renamed to data-viewportid (OHIF#5121)

* chore(version): version.json [skip ci]

* chore(version): Update package versions [skip ci]

* feat(commandsModule): Enhanced flipViewport and rotateViewport commands (OHIF#5065)

Co-authored-by: Dan Elkis <dan.elkis@signalpet.com>

* fix(ToolbarService): Fixed removeButton bug for removing buttons inside sections (OHIF#5123)

Co-authored-by: Dan Elkis <dan.elkis@signalpet.com>

* chore(version): version.json [skip ci]

* chore(version): Update package versions [skip ci]

* chore(deps): bump tar-fs from 2.1.2 to 2.1.3 (OHIF#5096)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(version): version.json [skip ci]

* chore(version): Update package versions [skip ci]

* fix(hp): When reapplying an hp the display set selectors should be considered. (OHIF#5074)

Co-authored-by: Bill Wallace <wayfarer3130@gmail.com>

* chore(version): version.json [skip ci]

* chore(version): Update package versions [skip ci]

* fix(getToolbarModule): fix enabled state of image slice sync (OHIF#5136)

* chore(version): version.json [skip ci]

* chore(version): Update package versions [skip ci]

* fix(UnitTest): run was failing due to JS tests importing TS modules (OHIF#5145)

* chore(version): version.json [skip ci]

* chore(version): Update package versions [skip ci]

* fix(action-corners): check hideWhenDisabled at both the evaluator and prop levels (OHIF#5149)

* chore(version): version.json [skip ci]

* chore(version): Update package versions [skip ci]

* chore(deps): bump pbkdf2 from 3.1.2 to 3.1.3 (OHIF#5152)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps-dev): bump webpack-dev-server from 4.7.3 to 5.2.1 (OHIF#5114)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Joe Boccanfuso <joe.boccanfuso@radicalimaging.com>
Co-authored-by: Joe Boccanfuso <109477394+jbocce@users.noreply.github.com>

* chore(version): version.json [skip ci]

* chore(version): Update package versions [skip ci]

* feat: Ultrasound Pleura B-line Annotation Mode & Extension (OHIF#5061)

* test(MeasurementPanel): Converted MeasurementPanel interaction tests from cypress to playwright (OHIF#5153)

* feat(toolbar/hokeys): add pub sub events to hotkeys manager class, subscribe toolbar to hotkeys pressed event (OHIF#5157)

* fix(build): BUILD_PACKAGES_QUICK  PR check (OHIF#5160)

* chore(version): version.json [skip ci]

* chore(version): Update package versions [skip ci]

* fix(unit-tests): Update bun.lock to fix unit tests. (OHIF#5159)

* chore(version): version.json [skip ci]

* chore(version): Update package versions [skip ci]

* chore(deps-dev): bump webpack from 5.89.0 to 5.94.0 in /modes/usAnnotation (OHIF#5156)

* chore(version): version.json [skip ci]

* chore(version): Update package versions [skip ci]

* feat(labelmap): Add labelmap segmentation in OHIF (OHIF#5158)

* chore(version): version.json [skip ci]

* chore(version): Update package versions [skip ci]

* chore(deps-dev): bump webpack from 5.89.0 to 5.94.0 in /extensions/usAnnotation (OHIF#5162)

* chore(version): version.json [skip ci]

* chore(version): Update package versions [skip ci]

* chore(deps): bump webpack to 5.95.0 (OHIF#5163)

* chore(version): version.json [skip ci]

* chore(version): Update package versions [skip ci]

* fix(segmentation): Changes to fix problems with non hydrated/loaded segmentations to be viewable when switching hanging protocols (e.g. MPR) (OHIF#5139)

* chore(version): version.json [skip ci]

* chore(version): Update package versions [skip ci]

* feat(hp): add onStageChange callback (OHIF#5165)

* chore(version): version.json [skip ci]

* chore(version): Update package versions [skip ci]

* fix(segmentation): Added support for unhydrated RTSTRUCT in MPR. Added support for overlaying segmentations over display sets the segmentations do not reference. (OHIF#5168)

* chore(version): version.json [skip ci]

* chore(version): Update package versions [skip ci]

* feat: Add possibility to add additional props for PanelSection (OHIF#5172)

* chore(version): version.json [skip ci]

* chore(version): Update package versions [skip ci]

* chore: recovery 2  (OHIF#5014) merge to 3.11 (OHIF#5175)

Co-authored-by: Alireza <ar.sedghi@gmail.com>
Co-authored-by: Dan Rukas <dan.rukas@gmail.com>
Co-authored-by: Tang Cheng <45505657+tctco@users.noreply.github.com>

* chore(version): version.json [skip ci]

* chore(version): Update package versions [skip ci]

* fix: add force to remove image from cache (OHIF#5176)

* chore(version): version.json [skip ci]

* chore(version): Update package versions [skip ci]

* fix(overlay-menu): Adding, changing and removing segmentation overlays should update the overlay menu instantly (OHIF#5181)

* chore(version): version.json [skip ci]

* chore(version): Update package versions [skip ci]

* fix(labeling): measurement labeling dialog was overwriting the entire measurement and breaking it (OHIF#5095)

* fix(measurement-group): use measurment study uid instead of active study uid (OHIF#5091)

* chore(version): version.json [skip ci]

* chore(version): Update package versions [skip ci]

* feat: add segment label tool (OHIF#5164)

* chore(version): version.json [skip ci]

* chore(version): Update package versions [skip ci]

* fix(segmentation overlays): Allow for the addition of multiple segmentation overlays. (OHIF#5189)

* chore(version): version.json [skip ci]

* chore(version): Update package versions [skip ci]

* fix(rendering): Introduce SequentialRenderingEngine to resolve canvas size limitation, performance degradation on high res monitors and enhance multi-monitor support (OHIF#5195)

* chore(version): version.json [skip ci]

* chore(version): Update package versions [skip ci]

* fix(security): Patch for Babel vulnerability (OHIF#5193)

* chore(version): version.json [skip ci]

* chore(version): Update package versions [skip ci]

* feat: group clear measurements history (OHIF#5194)

* chore(version): version.json [skip ci]

* chore(version): Update package versions [skip ci]

* feat(rendering): Introduce WebGLContextPool for parallel rendering in ContextPoolRenderingEngine (OHIF#5196)

* chore(version): version.json [skip ci]

* chore(version): Update package versions [skip ci]

* fix: exception in newly added segmentations (OHIF#5198)

* chore(version): version.json [skip ci]

* chore(version): Update package versions [skip ci]

* fix(UnitTests): Fixing "Cannot find module @cornerstonejs/core" error while running unit tests (OHIF#5148)

* ui(icons): Adds action and helper icon artwork for segmentation (OHIF#5200)

* chore(version): version.json [skip ci]

* chore(version): Update package versions [skip ci]

* fix: enhance preview accept method (OHIF#5199)

* chore(version): version.json [skip ci]

* chore(version): Update package versions [skip ci]

* fix(UI): Restored the scroll bar OHIF L&F (OHIF#5202)

* chore(version): version.json [skip ci]

* chore(version): Update package versions [skip ci]

* feat(viewport): Enhance Orientation Menu with Reformat Option and UI Improvements (OHIF#5184)

Co-authored-by: Joe Boccanfuso <joe.boccanfuso@radicalimaging.com>
Co-authored-by: Alireza <ar.sedghi@gmail.com>

* chore(version): version.json [skip ci]

* chore(version): Update package versions [skip ci]

* fix(panels): Allow for setting the initial and minimum expanded widths of each side panel. (OHIF#5207)

* chore(version): version.json [skip ci]

* chore(version): Update package versions [skip ci]

* fix(segmentation): Removed LOAD/hydrate button for segmentation overlays (OHIF#5214)

* chore(version): version.json [skip ci]

* chore(version): Update package versions [skip ci]

* fix(TMTV): The TMTV CSV file now has the correct name and contents (OHIF#5215)

* chore(version): version.json [skip ci]

* chore(version): Update package versions [skip ci]

* fix(segmentation): Fix segmentationid undefined 5106 (OHIF#5107)

* chore(version): version.json [skip ci]

* chore(version): Update package versions [skip ci]

* fix(DicomUpload): Fix upload form and some scrollbars styles (OHIF#5125)

* fix(black-viewports): MPR viewports were turning black if their parent stack had it's properties reset (OHIF#5219)

* fix(viewportgrid): don't subscribe to duplicate event listeners (OHIF#5218)

* chore(version): version.json [skip ci]

* chore(version): Update package versions [skip ci]

* fix: image slices are displayed in reverse order, if we switch from common layout to 2D MPR (OHIF#5022)

* chore(version): version.json [skip ci]

* chore(version): Update package versions [skip ci]

* fix(multimonitor): Study browser more menu fixes (OHIF#5208)

* chore(version): version.json [skip ci]

* chore(version): Update package versions [skip ci]

* fix: labelmap init (OHIF#5228)

* chore(version): version.json [skip ci]

* chore(version): Update package versions [skip ci]

* fix(security): Pin eslint-config-prettier and eslint-plugin-prettier versions. (OHIF#5234)

* chore(version): version.json [skip ci]

* chore(version): Update package versions [skip ci]

* fix(docs): Added entry for the showStudyList configuration setting. (OHIF#5235)

* chore(version): version.json [skip ci]

* chore(version): Update package versions [skip ci]

* feat(segmentation): Add customization for handling missing referencedDisplaySetInstanceUID for the SEG/RTSTRUCT. (OHIF#4983)

* chore(version): version.json [skip ci]

* chore(version): Update package versions [skip ci]

* chore(deps): bump form-data from 4.0.3 to 4.0.4 (OHIF#5244)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Joe Boccanfuso <joe.boccanfuso@radicalimaging.com>
Co-authored-by: Joe Boccanfuso <109477394+jbocce@users.noreply.github.com>

* chore(version): version.json [skip ci]

* chore(version): Update package versions [skip ci]

* fix(docs): Added docs for multimonitor and local linking (OHIF#5247)

* fix(security): Removed stylus package due to potential security vulnerability and we don't use it. (OHIF#5250)

* chore(version): version.json [skip ci]

* chore(version): Update package versions [skip ci]

* fix(ViewportOrientationMarkers): round rotation to fix floating point issue (OHIF#5135)

Co-authored-by: Joe Boccanfuso <109477394+jbocce@users.noreply.github.com>

* chore(version): version.json [skip ci]

* chore(version): Update package versions [skip ci]

* fix: disable seg download/export buttons until a user has drawn something (OHIF#4953)

* chore(version): version.json [skip ci]

* chore(version): Update package versions [skip ci]

* fix(calibration): do not override user set calibration (OHIF#5231)

Co-authored-by: Bill Wallace <wayfarer3130@gmail.com>

* chore(version): version.json [skip ci]

* chore(version): Update package versions [skip ci]

* chore(deps): bump axios from 1.10.0 to 1.11.0 (OHIF#5252)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Joe Boccanfuso <joe.boccanfuso@radicalimaging.com>

* chore(version): version.json [skip ci]

* chore(version): Update package versions [skip ci]

* Handle 200 status response and add default error handling (OHIF#5227)

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* chore(version): version.json [skip ci]

* chore(version): Update package versions [skip ci]

* fix: issue introduced from PR 5022 (OHIF#5223)

Co-authored-by: Bill Wallace <wayfarer3130@gmail.com>

* chore(version): version.json [skip ci]

* chore(version): Update package versions [skip ci]

* Fix flaky SEGDataOverlayForUnreferencedDisplaySetNoHydration test. (OHIF#5254)

* chore(version): version.json [skip ci]

* chore(version): Update package versions [skip ci]

* fix(ArrowAnnotate): Allow free-form text for arrow annotations (OHIF#5259)

* chore(version): version.json [skip ci]

* chore(version): Update package versions [skip ci]

* fix: prevent failure in DICOM loader for wadouri type (OHIF#5260)

Signed-off-by: Emmanuel Ferdman <emmanuelferdman@gmail.com>

* chore(version): version.json [skip ci]

* chore(version): Update package versions [skip ci]

* fix(tooltips): tool tips should be portals (OHIF#5265)

* chore(version): version.json [skip ci]

* chore(version): Update package versions [skip ci]

* test(SegmentationPanel): add test for jump to center of segments from PACS and basic add, rename, delete from panel (OHIF#5262)

* chore(version): version.json [skip ci]

* chore(version): Update package versions [skip ci]

* fix(multiframes): Corrected combining frame instances for multiframes. (OHIF#5264)

* fix: null save voi range properties (OHIF#5268)

* chore(version): version.json [skip ci]

* chore(version): Update package versions [skip ci]

* fix(colorbar): Allow for `AdvancedRenderingControls` to be placed at the top or bottom of the viewport. (OHIF#5270)

* chore(version): version.json [skip ci]

* chore(version): Update package versions [skip ci]

* fix(colorbar): Allow for AdvancedRenderingControls to be placed at the left or right of the viewport. (OHIF#5273)

* chore(version): version.json [skip ci]

* chore(version): Update package versions [skip ci]

* feat: improve segment label (OHIF#5217)

Co-authored-by: Joe Boccanfuso <joe.boccanfuso@radicalimaging.com>

* chore(version): version.json [skip ci]

* chore(version): Update package versions [skip ci]

* Adds containsAll validator (OHIF#5279)

* chore(version): version.json [skip ci]

* chore(version): Update package versions [skip ci]

* feat: add support to scoord3d (OHIF#5016)

Co-authored-by: Bill Wallace <wayfarer3130@gmail.com>

* chore(version): version.json [skip ci]

* chore(version): Update package versions [skip ci]

* fix(annotation): Add command to show pleura percentage in USAnnotationPanel and update condition for BLinePleuraPercentage (OHIF#5297)

* chore(version): version.json [skip ci]

* chore(version): Update package versions [skip ci]

* chore: release 3p11

* chore(version): version.json [skip ci]

* chore(version): Update package versions [skip ci]

* chore: 3.11 Recovery 1 (OHIF#5514)

* chore(version): version.json [skip ci]

* chore(version): Update package versions [skip ci]

---------

Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: Emmanuel Ferdman <emmanuelferdman@gmail.com>
Co-authored-by: ohif-bot <danny.ri.brown+ohif-bot@gmail.com>
Co-authored-by: Alireza <ar.sedghi@gmail.com>
Co-authored-by: Dan <12800016+rinslow@users.noreply.github.com>
Co-authored-by: Dan Elkis <dan.elkis@signalpet.com>
Co-authored-by: Pedro Köhler <pedrokohlerbh@gmail.com>
Co-authored-by: Joe Boccanfuso <109477394+jbocce@users.noreply.github.com>
Co-authored-by: Ibrahim <93064150+IbrahimCSAE@users.noreply.github.com>
Co-authored-by: Bill Wallace <wayfarer3130@gmail.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Patrick Wespi <pwespi@pm.me>
Co-authored-by: Vinícius Alves de Faria Resende <viniciusfariaresende@gmail.com>
Co-authored-by: Joe Boccanfuso <joe.boccanfuso@radicalimaging.com>
Co-authored-by: rodrigobasilio2022 <114958722+rodrigobasilio2022@users.noreply.github.com>
Co-authored-by: dxlin <dxlin@users.noreply.github.com>
Co-authored-by: Celian-abd <101793092+Celian-abd@users.noreply.github.com>
Co-authored-by: Dan Rukas <dan.rukas@gmail.com>
Co-authored-by: Tang Cheng <45505657+tctco@users.noreply.github.com>
Co-authored-by: Salim Kanoun <salim.kanoun@gmail.com>
Co-authored-by: Vishnu Suresh Perumbavoor <63797249+vishnusureshperumbavoor@users.noreply.github.com>
Co-authored-by: Alexey Klimovich <alexeyklimovich@gmail.com>
Co-authored-by: arul-trenser <arul.mozhi@trenser.com>
Co-authored-by: Teo Udovčić <65370281+deepnothing@users.noreply.github.com>
Co-authored-by: MatheusRdk <119511463+MatheusRdk@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Emmanuel Ferdman <emmanuelferdman@gmail.com>
Co-authored-by: Mateus Cota <mateus.cota@cfaz.net>
Co-authored-by: Will <70962569+WillianVarela@users.noreply.github.com>
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.

[Bug] TypeError: Cannot Read Properties of Undefined (reading 'segmentationId') in addNewSegment

3 participants