@ohif/mode-segmentation 3.13.0-beta.119 → 3.13.0-beta.120
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
!function(e,o){"object"==typeof exports&&"object"==typeof module?module.exports=o(require("@ohif/mode-basic")):"function"==typeof define&&define.amd?define("@ohif/mode-segmentation",["@ohif/mode-basic"],o):"object"==typeof exports?exports["@ohif/mode-segmentation"]=o(require("@ohif/mode-basic")):e["@ohif/mode-segmentation"]=o(e["@ohif/mode-basic"])}("u">typeof self?self:this,e=>(()=>{"use strict";var o={382(o){o.exports=e}},t={};function n(e){var i=t[e];if(void 0!==i)return i.exports;var a=t[e]={exports:{}};return o[e](a,a.exports,n),a.exports}n.d=(e,o)=>{for(var t in o)n.o(o,t)&&!n.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:o[t]})},n.o=(e,o)=>Object.prototype.hasOwnProperty.call(e,o),n.r=e=>{"u">typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var i={};return(()=>{n.r(i),n.d(i,{customizations:()=>c,default:()=>p,initToolGroups:()=>s,modeInstance:()=>d,onModeEnter:()=>l,segmentationLayout:()=>u,segmentationRoute:()=>m});let e=JSON.parse('{"UU":"@ohif/mode-segmentation"}').UU,o={"viewport-0":"rgb(200, 0, 0)","viewport-1":"rgb(200, 200, 0)","viewport-2":"rgb(0, 200, 0)"},t={axial:"rgb(200, 0, 0)",sagittal:"rgb(200, 200, 0)",coronal:"rgb(0, 200, 0)"};function a({utilityModule:e,commandsManager:o}){let{toolNames:t,Enums:n}=e.exports,i={active:[{toolName:t.WindowLevel,bindings:[{mouseButton:n.MouseBindings.Primary}]},{toolName:t.Pan,bindings:[{mouseButton:n.MouseBindings.Auxiliary}]},{toolName:t.Zoom,bindings:[{mouseButton:n.MouseBindings.Secondary},{numTouchPoints:2}]},{toolName:t.StackScroll,bindings:[{mouseButton:n.MouseBindings.Wheel},{numTouchPoints:3}]}],passive:[{toolName:"CircularBrush",parentTool:"Brush",configuration:{activeStrategy:"FILL_INSIDE_CIRCLE",minRadius:.5,maxRadius:99.5}},{toolName:t.LabelmapSlicePropagation},{toolName:t.MarkerLabelmap},{toolName:t.
|
|
1
|
+
!function(e,o){"object"==typeof exports&&"object"==typeof module?module.exports=o(require("@ohif/mode-basic")):"function"==typeof define&&define.amd?define("@ohif/mode-segmentation",["@ohif/mode-basic"],o):"object"==typeof exports?exports["@ohif/mode-segmentation"]=o(require("@ohif/mode-basic")):e["@ohif/mode-segmentation"]=o(e["@ohif/mode-basic"])}("u">typeof self?self:this,e=>(()=>{"use strict";var o={382(o){o.exports=e}},t={};function n(e){var i=t[e];if(void 0!==i)return i.exports;var a=t[e]={exports:{}};return o[e](a,a.exports,n),a.exports}n.d=(e,o)=>{for(var t in o)n.o(o,t)&&!n.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:o[t]})},n.o=(e,o)=>Object.prototype.hasOwnProperty.call(e,o),n.r=e=>{"u">typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var i={};return(()=>{n.r(i),n.d(i,{customizations:()=>c,default:()=>p,initToolGroups:()=>s,modeInstance:()=>d,onModeEnter:()=>l,segmentationLayout:()=>u,segmentationRoute:()=>m});let e=JSON.parse('{"UU":"@ohif/mode-segmentation"}').UU,o={"viewport-0":"rgb(200, 0, 0)","viewport-1":"rgb(200, 200, 0)","viewport-2":"rgb(0, 200, 0)"},t={axial:"rgb(200, 0, 0)",sagittal:"rgb(200, 200, 0)",coronal:"rgb(0, 200, 0)"};function a({utilityModule:e,commandsManager:o}){let{toolNames:t,Enums:n}=e.exports,i={active:[{toolName:t.WindowLevel,bindings:[{mouseButton:n.MouseBindings.Primary}]},{toolName:t.Pan,bindings:[{mouseButton:n.MouseBindings.Auxiliary}]},{toolName:t.Zoom,bindings:[{mouseButton:n.MouseBindings.Secondary},{numTouchPoints:2}]},{toolName:t.StackScroll,bindings:[{mouseButton:n.MouseBindings.Wheel},{numTouchPoints:3}]}],passive:[{toolName:"CircularBrush",parentTool:"Brush",configuration:{activeStrategy:"FILL_INSIDE_CIRCLE",minRadius:.5,maxRadius:99.5}},{toolName:t.LabelmapSlicePropagation},{toolName:t.MarkerLabelmap},{toolName:t.ClickSegment},{toolName:"CircularEraser",parentTool:"Brush",configuration:{activeStrategy:"ERASE_INSIDE_CIRCLE",minRadius:.5,maxRadius:99.5}},{toolName:"SphereBrush",parentTool:"Brush",configuration:{activeStrategy:"FILL_INSIDE_SPHERE",minRadius:.5,maxRadius:99.5}},{toolName:"SphereEraser",parentTool:"Brush",configuration:{activeStrategy:"ERASE_INSIDE_SPHERE",minRadius:.5,maxRadius:99.5}},{toolName:"ThresholdCircularBrush",parentTool:"Brush",configuration:{activeStrategy:"THRESHOLD_INSIDE_CIRCLE",minRadius:.5,maxRadius:99.5}},{toolName:"ThresholdSphereBrush",parentTool:"Brush",configuration:{activeStrategy:"THRESHOLD_INSIDE_SPHERE",minRadius:.5,maxRadius:99.5}},{toolName:"ThresholdCircularBrushDynamic",parentTool:"Brush",configuration:{activeStrategy:"THRESHOLD_INSIDE_CIRCLE",minRadius:.5,maxRadius:99.5,threshold:{isDynamic:!0,dynamicRadius:3}}},{toolName:t.SegmentBidirectional},{toolName:t.SegmentSelect},{toolName:"ThresholdSphereBrushDynamic",parentTool:"Brush",configuration:{activeStrategy:"THRESHOLD_INSIDE_SPHERE",minRadius:.5,maxRadius:99.5,threshold:{isDynamic:!0,dynamicRadius:3}}},{toolName:t.LabelMapEditWithContourTool},{toolName:t.CircleScissors},{toolName:t.RectangleScissors},{toolName:t.SphereScissors},{toolName:t.StackScroll},{toolName:t.Magnify},{toolName:t.WindowLevelRegion},{toolName:t.UltrasoundDirectional},{toolName:t.PlanarFreehandContourSegmentation},{toolName:t.LivewireContourSegmentation},{toolName:t.SculptorTool},{toolName:t.PlanarFreehandROI},{toolName:"CatmullRomSplineROI",parentTool:t.SplineContourSegmentation,configuration:{spline:{type:"CATMULLROM",enableTwoPointPreview:!0}}},{toolName:"LinearSplineROI",parentTool:t.SplineContourSegmentation,configuration:{spline:{type:"LINEAR",enableTwoPointPreview:!0}}},{toolName:"BSplineROI",parentTool:t.SplineContourSegmentation,configuration:{spline:{type:"BSPLINE",enableTwoPointPreview:!0}}}],disabled:[{toolName:t.ReferenceLines},{toolName:t.AdvancedMagnify}]};return o.run("initializeSegmentLabelTool",{tools:i})}let s=function({extensionManager:e,toolGroupService:n,commandsManager:i}){let s;s=a({commandsManager:i,utilityModule:e.getModuleEntry("@ohif/extension-cornerstone.utilityModule.tools")}),n.createToolGroupAndAddTools("default",s),function(e,n,i){let s=e.getModuleEntry("@ohif/extension-cornerstone.utilityModule.tools"),{cornerstoneViewportService:r}=e._servicesManager.services,l=a({commandsManager:i,utilityModule:s});l.disabled.push({toolName:s.exports.toolNames.Crosshairs,configuration:{viewportIndicators:!0,viewportIndicatorsConfig:{circleRadius:5,xOffset:.95,yOffset:.05},disableOnPassive:!0,autoPan:{enabled:!1,panSize:10},getReferenceLineColor:e=>{let n=r.getViewportInfo(e),i=n?.viewportOptions;return i?o[i.id]||t[i.orientation]||"#0c0":(console.warn("missing viewport?",e),"#0c0")}}},{toolName:s.exports.toolNames.ReferenceLines}),n.createToolGroupAndAddTools("mpr",l)}(e,n,i),function(e,o){let{toolNames:t,Enums:n}=e.getModuleEntry("@ohif/extension-cornerstone.utilityModule.tools").exports,i={active:[{toolName:t.TrackballRotateTool,bindings:[{mouseButton:n.MouseBindings.Primary}]},{toolName:t.Zoom,bindings:[{mouseButton:n.MouseBindings.Secondary},{numTouchPoints:2}]},{toolName:t.Pan,bindings:[{mouseButton:n.MouseBindings.Auxiliary}]}]};o.createToolGroupAndAddTools("volume3d",i)}(e,n)};var r=n(382);function l(e){r.onModeEnter.call(this,e);let{segmentationService:o,viewportGridService:t,panelService:n}=e.servicesManager.services,{unsubscribeAutoTabSwitchEvents:i}=function({segmentationService:e,viewportGridService:o,panelService:t}){let n=[e.EVENTS.SEGMENTATION_MODIFIED,e.EVENTS.SEGMENTATION_REPRESENTATION_MODIFIED],i=!0;return{unsubscribeAutoTabSwitchEvents:n.map(n=>e.subscribe(n,()=>{if(!e.getSegmentations().length){i=!0;return}let n=o.getActiveViewportId(),a=e.getSegmentationRepresentations(n)?.find(e=>e.active);if(a&&i)switch(i=!1,a.type){case"Labelmap":t.activatePanel("@ohif/extension-cornerstone.panelModule.panelSegmentationWithToolsLabelMap",!0);break;case"Contour":t.activatePanel("@ohif/extension-cornerstone.panelModule.panelSegmentationWithToolsContour",!0)}})).map(e=>e.unsubscribe)}}({segmentationService:o,viewportGridService:t,panelService:n});this._unsubscriptions.push(...i)}let u={id:r.ohif.layout,props:{leftPanels:[r.ohif.thumbnailList],leftPanelResizable:!0,rightPanels:[r.cornerstone.labelMapSegmentationPanel,r.cornerstone.contourSegmentationPanel],rightPanelResizable:!0,viewports:[{namespace:r.cornerstone.viewport,displaySetsToDisplay:[r.ohif.sopClassHandler]},{namespace:r.segmentation.viewport,displaySetsToDisplay:[r.segmentation.sopClassHandler]},{namespace:r.dicomRT.viewport,displaySetsToDisplay:[r.dicomRT.sopClassHandler]}]}},m={path:"template",layoutTemplate:r.layoutTemplate,layoutInstance:u},d={id:e,routeName:"segmentation",displayName:"Segmentation",toolbarButtons:[{$reference:"cornerstone.toolbarButtons"},{$reference:"cornerstone.segmentationToolbarButtons"}],toolbarSections:[{$reference:"cornerstone.segmentationModeToolbarSections"},{$reference:"cornerstone.segmentationToolbarSections"}],toolGroupAdditions:{default:[],mpr:[],volume3d:[]},initToolGroups:s,modeCustomizations:"segmentationModeCustomizations",activatePanelTriggers:[],onModeEnter:l,onModeExit:r.onModeExit,validationTags:{study:[],series:[]},isValidMode:r.isValidMode,nonModeModalities:["SM","ECG","OT","DOC"],routes:[m],extensions:r.extensionDependencies,hangingProtocol:["@ohif/mnGrid"],sopClassHandlers:[r.ohif.sopClassHandler,r.segmentation.sopClassHandler,r.dicomRT.sopClassHandler]},c={segmentationModeCustomizations:{}},p={id:e,modeFactory:r.modeFactory,modeInstance:d,extensionDependencies:r.extensionDependencies,customizations:c}})(),i})());
|
|
2
2
|
//# sourceMappingURL=index.umd.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.umd.js","sources":["webpack://@ohif/mode-segmentation/webpack/runtime/define_property_getters","webpack://@ohif/mode-segmentation/webpack/runtime/has_own_property","webpack://@ohif/mode-segmentation/webpack/runtime/make_namespace_object","webpack://@ohif/mode-segmentation/./src/id.js","webpack://@ohif/mode-segmentation/json|/home/circleci/repo/modes/segmentation/package.json","webpack://@ohif/mode-segmentation/./src/initToolGroups.ts","webpack://@ohif/mode-segmentation/./src/index.tsx","webpack://@ohif/mode-segmentation/./src/utils/setUpAutoTabSwitchHandler.ts"],"sourcesContent":["__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n }\n }\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import packageJson from '../package.json';\n\nconst id = packageJson.name;\n\nexport { id };\n","var __rspack_ns_object = JSON.parse('{\"UU\":\"@ohif/mode-segmentation\"}')","import { MIN_SEGMENTATION_DRAWING_RADIUS, MAX_SEGMENTATION_DRAWING_RADIUS } from './constants';\n\nconst colours = {\n 'viewport-0': 'rgb(200, 0, 0)',\n 'viewport-1': 'rgb(200, 200, 0)',\n 'viewport-2': 'rgb(0, 200, 0)',\n};\n\nconst colorsByOrientation = {\n axial: 'rgb(200, 0, 0)',\n sagittal: 'rgb(200, 200, 0)',\n coronal: 'rgb(0, 200, 0)',\n};\n\nfunction createTools({ utilityModule, commandsManager }) {\n const { toolNames, Enums } = utilityModule.exports;\n\n const tools = {\n active: [\n { toolName: toolNames.WindowLevel, bindings: [{ mouseButton: Enums.MouseBindings.Primary }] },\n { toolName: toolNames.Pan, bindings: [{ mouseButton: Enums.MouseBindings.Auxiliary }] },\n {\n toolName: toolNames.Zoom,\n bindings: [{ mouseButton: Enums.MouseBindings.Secondary }, { numTouchPoints: 2 }],\n },\n {\n toolName: toolNames.StackScroll,\n bindings: [{ mouseButton: Enums.MouseBindings.Wheel }, { numTouchPoints: 3 }],\n },\n ],\n passive: [\n {\n toolName: 'CircularBrush',\n parentTool: 'Brush',\n configuration: {\n activeStrategy: 'FILL_INSIDE_CIRCLE',\n minRadius: MIN_SEGMENTATION_DRAWING_RADIUS,\n maxRadius: MAX_SEGMENTATION_DRAWING_RADIUS,\n },\n },\n {\n toolName: toolNames.LabelmapSlicePropagation,\n },\n {\n toolName: toolNames.MarkerLabelmap,\n },\n {\n toolName: toolNames.RegionSegmentPlus,\n },\n {\n toolName: 'CircularEraser',\n parentTool: 'Brush',\n configuration: {\n activeStrategy: 'ERASE_INSIDE_CIRCLE',\n minRadius: MIN_SEGMENTATION_DRAWING_RADIUS,\n maxRadius: MAX_SEGMENTATION_DRAWING_RADIUS,\n },\n },\n {\n toolName: 'SphereBrush',\n parentTool: 'Brush',\n configuration: {\n activeStrategy: 'FILL_INSIDE_SPHERE',\n minRadius: MIN_SEGMENTATION_DRAWING_RADIUS,\n maxRadius: MAX_SEGMENTATION_DRAWING_RADIUS,\n },\n },\n {\n toolName: 'SphereEraser',\n parentTool: 'Brush',\n configuration: {\n activeStrategy: 'ERASE_INSIDE_SPHERE',\n minRadius: MIN_SEGMENTATION_DRAWING_RADIUS,\n maxRadius: MAX_SEGMENTATION_DRAWING_RADIUS,\n },\n },\n {\n toolName: 'ThresholdCircularBrush',\n parentTool: 'Brush',\n configuration: {\n activeStrategy: 'THRESHOLD_INSIDE_CIRCLE',\n minRadius: MIN_SEGMENTATION_DRAWING_RADIUS,\n maxRadius: MAX_SEGMENTATION_DRAWING_RADIUS,\n },\n },\n {\n toolName: 'ThresholdSphereBrush',\n parentTool: 'Brush',\n configuration: {\n activeStrategy: 'THRESHOLD_INSIDE_SPHERE',\n minRadius: MIN_SEGMENTATION_DRAWING_RADIUS,\n maxRadius: MAX_SEGMENTATION_DRAWING_RADIUS,\n },\n },\n {\n toolName: 'ThresholdCircularBrushDynamic',\n parentTool: 'Brush',\n configuration: {\n activeStrategy: 'THRESHOLD_INSIDE_CIRCLE',\n minRadius: MIN_SEGMENTATION_DRAWING_RADIUS,\n maxRadius: MAX_SEGMENTATION_DRAWING_RADIUS,\n threshold: {\n isDynamic: true,\n dynamicRadius: 3,\n },\n },\n },\n {\n toolName: toolNames.SegmentBidirectional,\n },\n {\n toolName: toolNames.SegmentSelect,\n },\n {\n toolName: 'ThresholdSphereBrushDynamic',\n parentTool: 'Brush',\n configuration: {\n activeStrategy: 'THRESHOLD_INSIDE_SPHERE',\n minRadius: MIN_SEGMENTATION_DRAWING_RADIUS,\n maxRadius: MAX_SEGMENTATION_DRAWING_RADIUS,\n threshold: {\n isDynamic: true,\n dynamicRadius: 3,\n },\n },\n },\n {\n toolName: toolNames.LabelMapEditWithContourTool,\n },\n { toolName: toolNames.CircleScissors },\n { toolName: toolNames.RectangleScissors },\n { toolName: toolNames.SphereScissors },\n { toolName: toolNames.StackScroll },\n { toolName: toolNames.Magnify },\n { toolName: toolNames.WindowLevelRegion },\n\n { toolName: toolNames.UltrasoundDirectional },\n {\n toolName: toolNames.PlanarFreehandContourSegmentation,\n },\n { toolName: toolNames.LivewireContourSegmentation },\n { toolName: toolNames.SculptorTool },\n { toolName: toolNames.PlanarFreehandROI },\n {\n toolName: 'CatmullRomSplineROI',\n parentTool: toolNames.SplineContourSegmentation,\n configuration: {\n spline: {\n type: 'CATMULLROM',\n enableTwoPointPreview: true,\n },\n },\n },\n {\n toolName: 'LinearSplineROI',\n parentTool: toolNames.SplineContourSegmentation,\n configuration: {\n spline: {\n type: 'LINEAR',\n enableTwoPointPreview: true,\n },\n },\n },\n {\n toolName: 'BSplineROI',\n parentTool: toolNames.SplineContourSegmentation,\n configuration: {\n spline: {\n type: 'BSPLINE',\n enableTwoPointPreview: true,\n },\n },\n },\n ],\n disabled: [{ toolName: toolNames.ReferenceLines }, { toolName: toolNames.AdvancedMagnify }],\n };\n\n const updatedTools = commandsManager.run('initializeSegmentLabelTool', { tools });\n\n return updatedTools;\n}\n\nfunction initDefaultToolGroup(extensionManager, toolGroupService, commandsManager, toolGroupId) {\n const utilityModule = extensionManager.getModuleEntry(\n '@ohif/extension-cornerstone.utilityModule.tools'\n );\n const tools = createTools({ commandsManager, utilityModule });\n toolGroupService.createToolGroupAndAddTools(toolGroupId, tools);\n}\n\nfunction initMPRToolGroup(extensionManager, toolGroupService, commandsManager) {\n const utilityModule = extensionManager.getModuleEntry(\n '@ohif/extension-cornerstone.utilityModule.tools'\n );\n const servicesManager = extensionManager._servicesManager;\n const { cornerstoneViewportService } = servicesManager.services;\n const tools = createTools({ commandsManager, utilityModule });\n tools.disabled.push(\n {\n toolName: utilityModule.exports.toolNames.Crosshairs,\n configuration: {\n viewportIndicators: true,\n viewportIndicatorsConfig: {\n circleRadius: 5,\n xOffset: 0.95,\n yOffset: 0.05,\n },\n disableOnPassive: true,\n autoPan: {\n enabled: false,\n panSize: 10,\n },\n getReferenceLineColor: viewportId => {\n const viewportInfo = cornerstoneViewportService.getViewportInfo(viewportId);\n const viewportOptions = viewportInfo?.viewportOptions;\n if (viewportOptions) {\n return (\n colours[viewportOptions.id] ||\n colorsByOrientation[viewportOptions.orientation] ||\n '#0c0'\n );\n } else {\n console.warn('missing viewport?', viewportId);\n return '#0c0';\n }\n },\n },\n },\n { toolName: utilityModule.exports.toolNames.ReferenceLines }\n );\n toolGroupService.createToolGroupAndAddTools('mpr', tools);\n}\n\nfunction initVolume3DToolGroup(extensionManager, toolGroupService) {\n const utilityModule = extensionManager.getModuleEntry(\n '@ohif/extension-cornerstone.utilityModule.tools'\n );\n\n const { toolNames, Enums } = utilityModule.exports;\n\n const tools = {\n active: [\n {\n toolName: toolNames.TrackballRotateTool,\n bindings: [{ mouseButton: Enums.MouseBindings.Primary }],\n },\n {\n toolName: toolNames.Zoom,\n bindings: [{ mouseButton: Enums.MouseBindings.Secondary }, { numTouchPoints: 2 }],\n },\n {\n toolName: toolNames.Pan,\n bindings: [{ mouseButton: Enums.MouseBindings.Auxiliary }],\n },\n ],\n };\n\n toolGroupService.createToolGroupAndAddTools('volume3d', tools);\n}\n\nfunction initToolGroups({ extensionManager, toolGroupService, commandsManager }) {\n initDefaultToolGroup(extensionManager, toolGroupService, commandsManager, 'default');\n initMPRToolGroup(extensionManager, toolGroupService, commandsManager);\n initVolume3DToolGroup(extensionManager, toolGroupService);\n}\n\nexport default initToolGroups;\n","import { id } from './id';\nimport initToolGroups from './initToolGroups';\nimport setUpAutoTabSwitchHandler from './utils/setUpAutoTabSwitchHandler';\nimport {\n ohif,\n cornerstone,\n extensionDependencies,\n dicomRT,\n segmentation,\n isValidMode,\n onModeEnter as basicOnModeEnter,\n onModeExit,\n layoutTemplate,\n modeFactory,\n} from '@ohif/mode-basic';\n\n/**\n * Extends the basic mode enter with the segmentation panel auto tab switch\n * handling (switching between labelmap/contour panels as segmentations of the\n * relevant type become active).\n */\nexport function onModeEnter(ctx: withAppTypes) {\n basicOnModeEnter.call(this, ctx);\n\n const { segmentationService, viewportGridService, panelService } = ctx.servicesManager.services;\n\n const { unsubscribeAutoTabSwitchEvents } = setUpAutoTabSwitchHandler({\n segmentationService,\n viewportGridService,\n panelService,\n });\n\n this._unsubscriptions.push(...unsubscribeAutoTabSwitchEvents);\n}\n\nexport const segmentationLayout = {\n id: ohif.layout,\n props: {\n // Literal panel lists; the mode route seeds them into the standard\n // `leftPanels` / `rightPanels` customizations so `mode` phase\n // blocks and global customizations can modify them.\n leftPanels: [ohif.thumbnailList],\n leftPanelResizable: true,\n rightPanels: [cornerstone.labelMapSegmentationPanel, cornerstone.contourSegmentationPanel],\n rightPanelResizable: true,\n viewports: [\n {\n namespace: cornerstone.viewport,\n displaySetsToDisplay: [ohif.sopClassHandler],\n },\n {\n namespace: segmentation.viewport,\n displaySetsToDisplay: [segmentation.sopClassHandler],\n },\n {\n namespace: dicomRT.viewport,\n displaySetsToDisplay: [dicomRT.sopClassHandler],\n },\n ],\n },\n};\n\nexport const segmentationRoute = {\n path: 'template',\n layoutTemplate,\n layoutInstance: segmentationLayout,\n};\n\nexport const modeInstance = {\n id,\n routeName: 'segmentation',\n displayName: 'Segmentation',\n // Toolbar/tool-group composition: which capability packs this mode uses.\n // The mode route seeds these onto the Mode customization scope on enter, so\n // `?customization=` modules extend them through the `mode` phase (e.g. add\n // the annotation tools/buttons). Pack names are resolved when the toolbar is\n // registered.\n toolbarButtons: [\n { $reference: 'cornerstone.toolbarButtons' },\n { $reference: 'cornerstone.segmentationToolbarButtons' },\n ],\n toolbarSections: [\n { $reference: 'cornerstone.segmentationModeToolbarSections' },\n { $reference: 'cornerstone.segmentationToolbarSections' },\n ],\n toolGroupAdditions: {\n default: [],\n mpr: [],\n volume3d: [],\n },\n // Tool group setup used by onModeEnter; extending modes can replace it.\n initToolGroups,\n // The mode's own customizations, applied by the mode route as the bottom\n // layer of the mode scope. Unlike basic, the registered block is empty (no\n // `panelSegmentation.disableEditing`): the segmentation panel is editable.\n modeCustomizations: 'segmentationModeCustomizations',\n activatePanelTriggers: [],\n\n /**\n * Lifecycle hooks\n */\n onModeEnter,\n onModeExit,\n validationTags: {\n study: [],\n series: [],\n },\n\n // Data-driven validity: valid unless the study ONLY contains modalities that\n // segmentation cannot be performed on.\n isValidMode,\n nonModeModalities: ['SM', 'ECG', 'OT', 'DOC'],\n routes: [segmentationRoute],\n extensions: extensionDependencies,\n // Prefer the grid layout hanging protocol when applicable.\n hangingProtocol: ['@ohif/mnGrid'],\n sopClassHandlers: [ohif.sopClassHandler, segmentation.sopClassHandler, dicomRT.sopClassHandler],\n};\n\n/**\n * Customizations the mode registers (Default scope) when it loads. The mode's\n * own block is empty — the segmentation panel is editable in this mode — but\n * it is registered so bootstrap / `?customization=` modules can add\n * mode-scoped values to it.\n */\nexport const customizations = {\n segmentationModeCustomizations: {},\n};\n\n/**\n * The mode uses the basic mode's `modeFactory`, which applies\n * immutability-helper commands from `modeConfiguration` onto `modeInstance`,\n * so a site can define a `mySegmentation` mode that extends this one.\n */\nconst mode = {\n id,\n modeFactory,\n modeInstance,\n extensionDependencies,\n customizations,\n};\n\nexport default mode;\nexport { initToolGroups };\n","/**\n * Sets up auto tab switching for when the first segmentation is added into the viewer.\n */\nexport default function setUpAutoTabSwitchHandler({\n segmentationService,\n viewportGridService,\n panelService,\n}) {\n const autoTabSwitchEvents = [\n segmentationService.EVENTS.SEGMENTATION_MODIFIED,\n segmentationService.EVENTS.SEGMENTATION_REPRESENTATION_MODIFIED,\n ];\n\n // Initially there are no segmentations, so we should switch the tab whenever the first segmentation is added.\n let shouldSwitchTab = true;\n\n const unsubscribeAutoTabSwitchEvents = autoTabSwitchEvents\n .map(eventName =>\n segmentationService.subscribe(eventName, () => {\n const segmentations = segmentationService.getSegmentations();\n\n if (!segmentations.length) {\n // If all the segmentations are removed, then the next time a segmentation is added, we should switch the tab.\n shouldSwitchTab = true;\n return;\n }\n\n const activeViewportId = viewportGridService.getActiveViewportId();\n const activeRepresentation = segmentationService\n .getSegmentationRepresentations(activeViewportId)\n ?.find(representation => representation.active);\n\n if (activeRepresentation && shouldSwitchTab) {\n shouldSwitchTab = false;\n\n switch (activeRepresentation.type) {\n case 'Labelmap':\n panelService.activatePanel(\n '@ohif/extension-cornerstone.panelModule.panelSegmentationWithToolsLabelMap',\n true\n );\n break;\n case 'Contour':\n panelService.activatePanel(\n '@ohif/extension-cornerstone.panelModule.panelSegmentationWithToolsContour',\n true\n );\n break;\n }\n }\n })\n )\n .map(subscription => subscription.unsubscribe);\n\n return { unsubscribeAutoTabSwitchEvents };\n}\n"],"names":["e","Object","Symbol","id","packageJson","JSON","colours","colorsByOrientation","axial","sagittal","coronal","createTools","utilityModule","commandsManager","toolNames","Enums","exports","tools","active","toolName","WindowLevel","bindings","mouseButton","MouseBindings","Primary","Pan","Auxiliary","Zoom","Secondary","numTouchPoints","StackScroll","Wheel","passive","parentTool","configuration","activeStrategy","minRadius","MIN_SEGMENTATION_DRAWING_RADIUS","maxRadius","MAX_SEGMENTATION_DRAWING_RADIUS","LabelmapSlicePropagation","MarkerLabelmap","RegionSegmentPlus","threshold","isDynamic","dynamicRadius","SegmentBidirectional","SegmentSelect","LabelMapEditWithContourTool","CircleScissors","RectangleScissors","SphereScissors","Magnify","WindowLevelRegion","UltrasoundDirectional","PlanarFreehandContourSegmentation","LivewireContourSegmentation","SculptorTool","PlanarFreehandROI","SplineContourSegmentation","spline","type","enableTwoPointPreview","disabled","ReferenceLines","AdvancedMagnify","run","extensionManager","toolGroupService","getModuleEntry","createToolGroupAndAddTools","initMPRToolGroup","cornerstoneViewportService","servicesManager","_servicesManager","services","push","Crosshairs","viewportIndicators","viewportIndicatorsConfig","circleRadius","xOffset","yOffset","disableOnPassive","autoPan","enabled","panSize","getReferenceLineColor","viewportId","viewportInfo","getViewportInfo","viewportOptions","orientation","console","warn","initVolume3DToolGroup","TrackballRotateTool","onModeEnter","ctx","basicOnModeEnter","segmentationService","viewportGridService","panelService","unsubscribeAutoTabSwitchEvents","setUpAutoTabSwitchHandler","autoTabSwitchEvents","EVENTS","SEGMENTATION_MODIFIED","SEGMENTATION_REPRESENTATION_MODIFIED","shouldSwitchTab","map","eventName","subscribe","segmentations","getSegmentations","length","activeViewportId","getActiveViewportId","activeRepresentation","getSegmentationRepresentations","find","representation","activatePanel","subscription","unsubscribe","_unsubscriptions","segmentationLayout","ohif","props","leftPanels","leftPanelResizable","rightPanels","cornerstone","rightPanelResizable","viewports","namespace","displaySetsToDisplay","segmentation","dicomRT","segmentationRoute","path","layoutTemplate","layoutInstance","modeInstance","routeName","displayName","toolbarButtons","$reference","toolbarSections","toolGroupAdditions","default","mpr","volume3d","initToolGroups","modeCustomizations","activatePanelTriggers","onModeExit","validationTags","study","series","isValidMode","nonModeModalities","routes","extensions","extensionDependencies","hangingProtocol","sopClassHandlers","customizations","segmentationModeCustomizations","modeFactory"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.umd.js","sources":["webpack://@ohif/mode-segmentation/webpack/runtime/define_property_getters","webpack://@ohif/mode-segmentation/webpack/runtime/has_own_property","webpack://@ohif/mode-segmentation/webpack/runtime/make_namespace_object","webpack://@ohif/mode-segmentation/./src/id.js","webpack://@ohif/mode-segmentation/json|/home/circleci/repo/modes/segmentation/package.json","webpack://@ohif/mode-segmentation/./src/initToolGroups.ts","webpack://@ohif/mode-segmentation/./src/index.tsx","webpack://@ohif/mode-segmentation/./src/utils/setUpAutoTabSwitchHandler.ts"],"sourcesContent":["__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n }\n }\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import packageJson from '../package.json';\n\nconst id = packageJson.name;\n\nexport { id };\n","var __rspack_ns_object = JSON.parse('{\"UU\":\"@ohif/mode-segmentation\"}')","import { MIN_SEGMENTATION_DRAWING_RADIUS, MAX_SEGMENTATION_DRAWING_RADIUS } from './constants';\n\nconst colours = {\n 'viewport-0': 'rgb(200, 0, 0)',\n 'viewport-1': 'rgb(200, 200, 0)',\n 'viewport-2': 'rgb(0, 200, 0)',\n};\n\nconst colorsByOrientation = {\n axial: 'rgb(200, 0, 0)',\n sagittal: 'rgb(200, 200, 0)',\n coronal: 'rgb(0, 200, 0)',\n};\n\nfunction createTools({ utilityModule, commandsManager }) {\n const { toolNames, Enums } = utilityModule.exports;\n\n const tools = {\n active: [\n { toolName: toolNames.WindowLevel, bindings: [{ mouseButton: Enums.MouseBindings.Primary }] },\n { toolName: toolNames.Pan, bindings: [{ mouseButton: Enums.MouseBindings.Auxiliary }] },\n {\n toolName: toolNames.Zoom,\n bindings: [{ mouseButton: Enums.MouseBindings.Secondary }, { numTouchPoints: 2 }],\n },\n {\n toolName: toolNames.StackScroll,\n bindings: [{ mouseButton: Enums.MouseBindings.Wheel }, { numTouchPoints: 3 }],\n },\n ],\n passive: [\n {\n toolName: 'CircularBrush',\n parentTool: 'Brush',\n configuration: {\n activeStrategy: 'FILL_INSIDE_CIRCLE',\n minRadius: MIN_SEGMENTATION_DRAWING_RADIUS,\n maxRadius: MAX_SEGMENTATION_DRAWING_RADIUS,\n },\n },\n {\n toolName: toolNames.LabelmapSlicePropagation,\n },\n {\n toolName: toolNames.MarkerLabelmap,\n },\n {\n toolName: toolNames.ClickSegment,\n },\n {\n toolName: 'CircularEraser',\n parentTool: 'Brush',\n configuration: {\n activeStrategy: 'ERASE_INSIDE_CIRCLE',\n minRadius: MIN_SEGMENTATION_DRAWING_RADIUS,\n maxRadius: MAX_SEGMENTATION_DRAWING_RADIUS,\n },\n },\n {\n toolName: 'SphereBrush',\n parentTool: 'Brush',\n configuration: {\n activeStrategy: 'FILL_INSIDE_SPHERE',\n minRadius: MIN_SEGMENTATION_DRAWING_RADIUS,\n maxRadius: MAX_SEGMENTATION_DRAWING_RADIUS,\n },\n },\n {\n toolName: 'SphereEraser',\n parentTool: 'Brush',\n configuration: {\n activeStrategy: 'ERASE_INSIDE_SPHERE',\n minRadius: MIN_SEGMENTATION_DRAWING_RADIUS,\n maxRadius: MAX_SEGMENTATION_DRAWING_RADIUS,\n },\n },\n {\n toolName: 'ThresholdCircularBrush',\n parentTool: 'Brush',\n configuration: {\n activeStrategy: 'THRESHOLD_INSIDE_CIRCLE',\n minRadius: MIN_SEGMENTATION_DRAWING_RADIUS,\n maxRadius: MAX_SEGMENTATION_DRAWING_RADIUS,\n },\n },\n {\n toolName: 'ThresholdSphereBrush',\n parentTool: 'Brush',\n configuration: {\n activeStrategy: 'THRESHOLD_INSIDE_SPHERE',\n minRadius: MIN_SEGMENTATION_DRAWING_RADIUS,\n maxRadius: MAX_SEGMENTATION_DRAWING_RADIUS,\n },\n },\n {\n toolName: 'ThresholdCircularBrushDynamic',\n parentTool: 'Brush',\n configuration: {\n activeStrategy: 'THRESHOLD_INSIDE_CIRCLE',\n minRadius: MIN_SEGMENTATION_DRAWING_RADIUS,\n maxRadius: MAX_SEGMENTATION_DRAWING_RADIUS,\n threshold: {\n isDynamic: true,\n dynamicRadius: 3,\n },\n },\n },\n {\n toolName: toolNames.SegmentBidirectional,\n },\n {\n toolName: toolNames.SegmentSelect,\n },\n {\n toolName: 'ThresholdSphereBrushDynamic',\n parentTool: 'Brush',\n configuration: {\n activeStrategy: 'THRESHOLD_INSIDE_SPHERE',\n minRadius: MIN_SEGMENTATION_DRAWING_RADIUS,\n maxRadius: MAX_SEGMENTATION_DRAWING_RADIUS,\n threshold: {\n isDynamic: true,\n dynamicRadius: 3,\n },\n },\n },\n {\n toolName: toolNames.LabelMapEditWithContourTool,\n },\n { toolName: toolNames.CircleScissors },\n { toolName: toolNames.RectangleScissors },\n { toolName: toolNames.SphereScissors },\n { toolName: toolNames.StackScroll },\n { toolName: toolNames.Magnify },\n { toolName: toolNames.WindowLevelRegion },\n\n { toolName: toolNames.UltrasoundDirectional },\n {\n toolName: toolNames.PlanarFreehandContourSegmentation,\n },\n { toolName: toolNames.LivewireContourSegmentation },\n { toolName: toolNames.SculptorTool },\n { toolName: toolNames.PlanarFreehandROI },\n {\n toolName: 'CatmullRomSplineROI',\n parentTool: toolNames.SplineContourSegmentation,\n configuration: {\n spline: {\n type: 'CATMULLROM',\n enableTwoPointPreview: true,\n },\n },\n },\n {\n toolName: 'LinearSplineROI',\n parentTool: toolNames.SplineContourSegmentation,\n configuration: {\n spline: {\n type: 'LINEAR',\n enableTwoPointPreview: true,\n },\n },\n },\n {\n toolName: 'BSplineROI',\n parentTool: toolNames.SplineContourSegmentation,\n configuration: {\n spline: {\n type: 'BSPLINE',\n enableTwoPointPreview: true,\n },\n },\n },\n ],\n disabled: [{ toolName: toolNames.ReferenceLines }, { toolName: toolNames.AdvancedMagnify }],\n };\n\n const updatedTools = commandsManager.run('initializeSegmentLabelTool', { tools });\n\n return updatedTools;\n}\n\nfunction initDefaultToolGroup(extensionManager, toolGroupService, commandsManager, toolGroupId) {\n const utilityModule = extensionManager.getModuleEntry(\n '@ohif/extension-cornerstone.utilityModule.tools'\n );\n const tools = createTools({ commandsManager, utilityModule });\n toolGroupService.createToolGroupAndAddTools(toolGroupId, tools);\n}\n\nfunction initMPRToolGroup(extensionManager, toolGroupService, commandsManager) {\n const utilityModule = extensionManager.getModuleEntry(\n '@ohif/extension-cornerstone.utilityModule.tools'\n );\n const servicesManager = extensionManager._servicesManager;\n const { cornerstoneViewportService } = servicesManager.services;\n const tools = createTools({ commandsManager, utilityModule });\n tools.disabled.push(\n {\n toolName: utilityModule.exports.toolNames.Crosshairs,\n configuration: {\n viewportIndicators: true,\n viewportIndicatorsConfig: {\n circleRadius: 5,\n xOffset: 0.95,\n yOffset: 0.05,\n },\n disableOnPassive: true,\n autoPan: {\n enabled: false,\n panSize: 10,\n },\n getReferenceLineColor: viewportId => {\n const viewportInfo = cornerstoneViewportService.getViewportInfo(viewportId);\n const viewportOptions = viewportInfo?.viewportOptions;\n if (viewportOptions) {\n return (\n colours[viewportOptions.id] ||\n colorsByOrientation[viewportOptions.orientation] ||\n '#0c0'\n );\n } else {\n console.warn('missing viewport?', viewportId);\n return '#0c0';\n }\n },\n },\n },\n { toolName: utilityModule.exports.toolNames.ReferenceLines }\n );\n toolGroupService.createToolGroupAndAddTools('mpr', tools);\n}\n\nfunction initVolume3DToolGroup(extensionManager, toolGroupService) {\n const utilityModule = extensionManager.getModuleEntry(\n '@ohif/extension-cornerstone.utilityModule.tools'\n );\n\n const { toolNames, Enums } = utilityModule.exports;\n\n const tools = {\n active: [\n {\n toolName: toolNames.TrackballRotateTool,\n bindings: [{ mouseButton: Enums.MouseBindings.Primary }],\n },\n {\n toolName: toolNames.Zoom,\n bindings: [{ mouseButton: Enums.MouseBindings.Secondary }, { numTouchPoints: 2 }],\n },\n {\n toolName: toolNames.Pan,\n bindings: [{ mouseButton: Enums.MouseBindings.Auxiliary }],\n },\n ],\n };\n\n toolGroupService.createToolGroupAndAddTools('volume3d', tools);\n}\n\nfunction initToolGroups({ extensionManager, toolGroupService, commandsManager }) {\n initDefaultToolGroup(extensionManager, toolGroupService, commandsManager, 'default');\n initMPRToolGroup(extensionManager, toolGroupService, commandsManager);\n initVolume3DToolGroup(extensionManager, toolGroupService);\n}\n\nexport default initToolGroups;\n","import { id } from './id';\nimport initToolGroups from './initToolGroups';\nimport setUpAutoTabSwitchHandler from './utils/setUpAutoTabSwitchHandler';\nimport {\n ohif,\n cornerstone,\n extensionDependencies,\n dicomRT,\n segmentation,\n isValidMode,\n onModeEnter as basicOnModeEnter,\n onModeExit,\n layoutTemplate,\n modeFactory,\n} from '@ohif/mode-basic';\n\n/**\n * Extends the basic mode enter with the segmentation panel auto tab switch\n * handling (switching between labelmap/contour panels as segmentations of the\n * relevant type become active).\n */\nexport function onModeEnter(ctx: withAppTypes) {\n basicOnModeEnter.call(this, ctx);\n\n const { segmentationService, viewportGridService, panelService } = ctx.servicesManager.services;\n\n const { unsubscribeAutoTabSwitchEvents } = setUpAutoTabSwitchHandler({\n segmentationService,\n viewportGridService,\n panelService,\n });\n\n this._unsubscriptions.push(...unsubscribeAutoTabSwitchEvents);\n}\n\nexport const segmentationLayout = {\n id: ohif.layout,\n props: {\n // Literal panel lists; the mode route seeds them into the standard\n // `leftPanels` / `rightPanels` customizations so `mode` phase\n // blocks and global customizations can modify them.\n leftPanels: [ohif.thumbnailList],\n leftPanelResizable: true,\n rightPanels: [cornerstone.labelMapSegmentationPanel, cornerstone.contourSegmentationPanel],\n rightPanelResizable: true,\n viewports: [\n {\n namespace: cornerstone.viewport,\n displaySetsToDisplay: [ohif.sopClassHandler],\n },\n {\n namespace: segmentation.viewport,\n displaySetsToDisplay: [segmentation.sopClassHandler],\n },\n {\n namespace: dicomRT.viewport,\n displaySetsToDisplay: [dicomRT.sopClassHandler],\n },\n ],\n },\n};\n\nexport const segmentationRoute = {\n path: 'template',\n layoutTemplate,\n layoutInstance: segmentationLayout,\n};\n\nexport const modeInstance = {\n id,\n routeName: 'segmentation',\n displayName: 'Segmentation',\n // Toolbar/tool-group composition: which capability packs this mode uses.\n // The mode route seeds these onto the Mode customization scope on enter, so\n // `?customization=` modules extend them through the `mode` phase (e.g. add\n // the annotation tools/buttons). Pack names are resolved when the toolbar is\n // registered.\n toolbarButtons: [\n { $reference: 'cornerstone.toolbarButtons' },\n { $reference: 'cornerstone.segmentationToolbarButtons' },\n ],\n toolbarSections: [\n { $reference: 'cornerstone.segmentationModeToolbarSections' },\n { $reference: 'cornerstone.segmentationToolbarSections' },\n ],\n toolGroupAdditions: {\n default: [],\n mpr: [],\n volume3d: [],\n },\n // Tool group setup used by onModeEnter; extending modes can replace it.\n initToolGroups,\n // The mode's own customizations, applied by the mode route as the bottom\n // layer of the mode scope. Unlike basic, the registered block is empty (no\n // `panelSegmentation.disableEditing`): the segmentation panel is editable.\n modeCustomizations: 'segmentationModeCustomizations',\n activatePanelTriggers: [],\n\n /**\n * Lifecycle hooks\n */\n onModeEnter,\n onModeExit,\n validationTags: {\n study: [],\n series: [],\n },\n\n // Data-driven validity: valid unless the study ONLY contains modalities that\n // segmentation cannot be performed on.\n isValidMode,\n nonModeModalities: ['SM', 'ECG', 'OT', 'DOC'],\n routes: [segmentationRoute],\n extensions: extensionDependencies,\n // Prefer the grid layout hanging protocol when applicable.\n hangingProtocol: ['@ohif/mnGrid'],\n sopClassHandlers: [ohif.sopClassHandler, segmentation.sopClassHandler, dicomRT.sopClassHandler],\n};\n\n/**\n * Customizations the mode registers (Default scope) when it loads. The mode's\n * own block is empty — the segmentation panel is editable in this mode — but\n * it is registered so bootstrap / `?customization=` modules can add\n * mode-scoped values to it.\n */\nexport const customizations = {\n segmentationModeCustomizations: {},\n};\n\n/**\n * The mode uses the basic mode's `modeFactory`, which applies\n * immutability-helper commands from `modeConfiguration` onto `modeInstance`,\n * so a site can define a `mySegmentation` mode that extends this one.\n */\nconst mode = {\n id,\n modeFactory,\n modeInstance,\n extensionDependencies,\n customizations,\n};\n\nexport default mode;\nexport { initToolGroups };\n","/**\n * Sets up auto tab switching for when the first segmentation is added into the viewer.\n */\nexport default function setUpAutoTabSwitchHandler({\n segmentationService,\n viewportGridService,\n panelService,\n}) {\n const autoTabSwitchEvents = [\n segmentationService.EVENTS.SEGMENTATION_MODIFIED,\n segmentationService.EVENTS.SEGMENTATION_REPRESENTATION_MODIFIED,\n ];\n\n // Initially there are no segmentations, so we should switch the tab whenever the first segmentation is added.\n let shouldSwitchTab = true;\n\n const unsubscribeAutoTabSwitchEvents = autoTabSwitchEvents\n .map(eventName =>\n segmentationService.subscribe(eventName, () => {\n const segmentations = segmentationService.getSegmentations();\n\n if (!segmentations.length) {\n // If all the segmentations are removed, then the next time a segmentation is added, we should switch the tab.\n shouldSwitchTab = true;\n return;\n }\n\n const activeViewportId = viewportGridService.getActiveViewportId();\n const activeRepresentation = segmentationService\n .getSegmentationRepresentations(activeViewportId)\n ?.find(representation => representation.active);\n\n if (activeRepresentation && shouldSwitchTab) {\n shouldSwitchTab = false;\n\n switch (activeRepresentation.type) {\n case 'Labelmap':\n panelService.activatePanel(\n '@ohif/extension-cornerstone.panelModule.panelSegmentationWithToolsLabelMap',\n true\n );\n break;\n case 'Contour':\n panelService.activatePanel(\n '@ohif/extension-cornerstone.panelModule.panelSegmentationWithToolsContour',\n true\n );\n break;\n }\n }\n })\n )\n .map(subscription => subscription.unsubscribe);\n\n return { unsubscribeAutoTabSwitchEvents };\n}\n"],"names":["e","Object","Symbol","id","packageJson","JSON","colours","colorsByOrientation","axial","sagittal","coronal","createTools","utilityModule","commandsManager","toolNames","Enums","exports","tools","active","toolName","WindowLevel","bindings","mouseButton","MouseBindings","Primary","Pan","Auxiliary","Zoom","Secondary","numTouchPoints","StackScroll","Wheel","passive","parentTool","configuration","activeStrategy","minRadius","MIN_SEGMENTATION_DRAWING_RADIUS","maxRadius","MAX_SEGMENTATION_DRAWING_RADIUS","LabelmapSlicePropagation","MarkerLabelmap","ClickSegment","threshold","isDynamic","dynamicRadius","SegmentBidirectional","SegmentSelect","LabelMapEditWithContourTool","CircleScissors","RectangleScissors","SphereScissors","Magnify","WindowLevelRegion","UltrasoundDirectional","PlanarFreehandContourSegmentation","LivewireContourSegmentation","SculptorTool","PlanarFreehandROI","SplineContourSegmentation","spline","type","enableTwoPointPreview","disabled","ReferenceLines","AdvancedMagnify","run","extensionManager","toolGroupService","getModuleEntry","createToolGroupAndAddTools","initMPRToolGroup","cornerstoneViewportService","servicesManager","_servicesManager","services","push","Crosshairs","viewportIndicators","viewportIndicatorsConfig","circleRadius","xOffset","yOffset","disableOnPassive","autoPan","enabled","panSize","getReferenceLineColor","viewportId","viewportInfo","getViewportInfo","viewportOptions","orientation","console","warn","initVolume3DToolGroup","TrackballRotateTool","onModeEnter","ctx","basicOnModeEnter","segmentationService","viewportGridService","panelService","unsubscribeAutoTabSwitchEvents","setUpAutoTabSwitchHandler","autoTabSwitchEvents","EVENTS","SEGMENTATION_MODIFIED","SEGMENTATION_REPRESENTATION_MODIFIED","shouldSwitchTab","map","eventName","subscribe","segmentations","getSegmentations","length","activeViewportId","getActiveViewportId","activeRepresentation","getSegmentationRepresentations","find","representation","activatePanel","subscription","unsubscribe","_unsubscriptions","segmentationLayout","ohif","props","leftPanels","leftPanelResizable","rightPanels","cornerstone","rightPanelResizable","viewports","namespace","displaySetsToDisplay","segmentation","dicomRT","segmentationRoute","path","layoutTemplate","layoutInstance","modeInstance","routeName","displayName","toolbarButtons","$reference","toolbarSections","toolGroupAdditions","default","mpr","volume3d","initToolGroups","modeCustomizations","activatePanelTriggers","onModeExit","validationTags","study","series","isValidMode","nonModeModalities","routes","extensions","extensionDependencies","hangingProtocol","sopClassHandlers","customizations","segmentationModeCustomizations","modeFactory"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ohif/mode-segmentation",
|
|
3
|
-
"version": "3.13.0-beta.
|
|
3
|
+
"version": "3.13.0-beta.120",
|
|
4
4
|
"description": "OHIF segmentation mode which enables labelmap segmentation read/edit/export",
|
|
5
5
|
"author": "@ohif",
|
|
6
6
|
"license": "MIT",
|
|
@@ -22,15 +22,15 @@
|
|
|
22
22
|
"access": "public"
|
|
23
23
|
},
|
|
24
24
|
"peerDependencies": {
|
|
25
|
-
"@ohif/core": "3.13.0-beta.
|
|
26
|
-
"@ohif/extension-cornerstone": "3.13.0-beta.
|
|
27
|
-
"@ohif/extension-cornerstone-dicom-rt": "3.13.0-beta.
|
|
28
|
-
"@ohif/extension-cornerstone-dicom-seg": "3.13.0-beta.
|
|
29
|
-
"@ohif/extension-cornerstone-dicom-sr": "3.13.0-beta.
|
|
30
|
-
"@ohif/extension-default": "3.13.0-beta.
|
|
31
|
-
"@ohif/extension-dicom-pdf": "3.13.0-beta.
|
|
32
|
-
"@ohif/extension-dicom-video": "3.13.0-beta.
|
|
33
|
-
"@ohif/mode-basic": "3.13.0-beta.
|
|
25
|
+
"@ohif/core": "3.13.0-beta.120",
|
|
26
|
+
"@ohif/extension-cornerstone": "3.13.0-beta.120",
|
|
27
|
+
"@ohif/extension-cornerstone-dicom-rt": "3.13.0-beta.120",
|
|
28
|
+
"@ohif/extension-cornerstone-dicom-seg": "3.13.0-beta.120",
|
|
29
|
+
"@ohif/extension-cornerstone-dicom-sr": "3.13.0-beta.120",
|
|
30
|
+
"@ohif/extension-default": "3.13.0-beta.120",
|
|
31
|
+
"@ohif/extension-dicom-pdf": "3.13.0-beta.120",
|
|
32
|
+
"@ohif/extension-dicom-video": "3.13.0-beta.120",
|
|
33
|
+
"@ohif/mode-basic": "3.13.0-beta.120"
|
|
34
34
|
},
|
|
35
35
|
"dependencies": {
|
|
36
36
|
"@babel/runtime": "7.29.7",
|