fix(segmentation): When setting the segmentation style and the representation type is not provided, apply the style to all representation types. (#5662)
This commit is contained in:
parent
fcfc2b4eb8
commit
f3beb8e711
@ -179,6 +179,31 @@ function commandsModule({
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a command function that sets a style property for segmentation types.
|
||||||
|
* If type is provided, sets the property for that type only.
|
||||||
|
* If type is not provided, sets the property for both Labelmap and Contour types.
|
||||||
|
* @param propertyName - The name of the style property to set
|
||||||
|
* @returns A command function that takes { type, value }
|
||||||
|
*/
|
||||||
|
const createSetStyleCommand = (propertyName: string) => {
|
||||||
|
return ({ type, value }) => {
|
||||||
|
const { segmentationService } = servicesManager.services;
|
||||||
|
if (type) {
|
||||||
|
segmentationService.setStyle({ type }, { [propertyName]: value });
|
||||||
|
} else {
|
||||||
|
segmentationService.setStyle(
|
||||||
|
{ type: SegmentationRepresentations.Labelmap },
|
||||||
|
{ [propertyName]: value }
|
||||||
|
);
|
||||||
|
segmentationService.setStyle(
|
||||||
|
{ type: SegmentationRepresentations.Contour },
|
||||||
|
{ [propertyName]: value }
|
||||||
|
);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
const actions = {
|
const actions = {
|
||||||
jumpToMeasurementViewport: ({ annotationUID, measurement }) => {
|
jumpToMeasurementViewport: ({ annotationUID, measurement }) => {
|
||||||
cornerstoneTools.annotation.selection.setAnnotationSelected(annotationUID, true);
|
cornerstoneTools.annotation.selection.setAnnotationSelected(annotationUID, true);
|
||||||
@ -1728,89 +1753,6 @@ function commandsModule({
|
|||||||
segmentationService.setRenderInactiveSegmentations(viewportId, !renderInactive);
|
segmentationService.setRenderInactiveSegmentations(viewportId, !renderInactive);
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets the fill alpha value for a segmentation type
|
|
||||||
* @param props.type - The type of segmentation
|
|
||||||
* @param props.value - The alpha value to set
|
|
||||||
*/
|
|
||||||
setFillAlphaCommand: ({ type, value }) => {
|
|
||||||
const { segmentationService } = servicesManager.services;
|
|
||||||
segmentationService.setStyle({ type }, { fillAlpha: value });
|
|
||||||
},
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets the outline width for a segmentation type
|
|
||||||
* @param props.type - The type of segmentation
|
|
||||||
* @param props.value - The width value to set
|
|
||||||
*/
|
|
||||||
setOutlineWidthCommand: ({ type, value }) => {
|
|
||||||
const { segmentationService } = servicesManager.services;
|
|
||||||
segmentationService.setStyle({ type }, { outlineWidth: value });
|
|
||||||
},
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets whether to render fill for a segmentation type
|
|
||||||
* @param props.type - The type of segmentation
|
|
||||||
* @param props.value - Whether to render fill
|
|
||||||
*/
|
|
||||||
setRenderFillCommand: ({ type, value }) => {
|
|
||||||
const { segmentationService } = servicesManager.services;
|
|
||||||
segmentationService.setStyle({ type }, { renderFill: value });
|
|
||||||
},
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets whether to render fill for inactive segmentations of a segmentation type
|
|
||||||
* @param props.type - The type of segmentation
|
|
||||||
* @param props.value - Whether to render fill for inactive segmentations
|
|
||||||
*/
|
|
||||||
setRenderFillInactiveCommand: ({ type, value }) => {
|
|
||||||
const { segmentationService } = servicesManager.services;
|
|
||||||
segmentationService.setStyle({ type }, { renderFillInactive: value });
|
|
||||||
},
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets whether to render outline for a segmentation type
|
|
||||||
* @param props.type - The type of segmentation
|
|
||||||
* @param props.value - Whether to render outline
|
|
||||||
*/
|
|
||||||
setRenderOutlineCommand: ({ type, value }) => {
|
|
||||||
const { segmentationService } = servicesManager.services;
|
|
||||||
segmentationService.setStyle({ type }, { renderOutline: value });
|
|
||||||
},
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets whether to render outline for inactive segmentations of a segmentation type
|
|
||||||
* @param props.type - The type of segmentation
|
|
||||||
* @param props.value - Whether to render outline for inactive segmentations
|
|
||||||
*/
|
|
||||||
setRenderOutlineInactiveCommand: ({ type, value }) => {
|
|
||||||
const { segmentationService } = servicesManager.services;
|
|
||||||
segmentationService.setStyle({ type }, { renderOutlineInactive: value });
|
|
||||||
},
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets the fill alpha for inactive segmentations.
|
|
||||||
* If no type is provided, the fill alpha for all types will be set.
|
|
||||||
* @param props.type - The type of segmentation
|
|
||||||
* @param props.value - The alpha value to set
|
|
||||||
*/
|
|
||||||
setFillAlphaInactiveCommand: ({ type, value }) => {
|
|
||||||
const { segmentationService } = servicesManager.services;
|
|
||||||
|
|
||||||
if (type) {
|
|
||||||
segmentationService.setStyle({ type }, { fillAlphaInactive: value });
|
|
||||||
} else {
|
|
||||||
segmentationService.setStyle(
|
|
||||||
{ type: SegmentationRepresentations.Labelmap },
|
|
||||||
{ fillAlphaInactive: value }
|
|
||||||
);
|
|
||||||
segmentationService.setStyle(
|
|
||||||
{ type: SegmentationRepresentations.Contour },
|
|
||||||
{ fillAlphaInactive: value }
|
|
||||||
);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
editSegmentLabel: async ({ segmentationId, segmentIndex }) => {
|
editSegmentLabel: async ({ segmentationId, segmentIndex }) => {
|
||||||
const { segmentationService, uiDialogService } = servicesManager.services;
|
const { segmentationService, uiDialogService } = servicesManager.services;
|
||||||
const segmentation = segmentationService.getSegmentation(segmentationId);
|
const segmentation = segmentationService.getSegmentation(segmentationId);
|
||||||
@ -2731,25 +2673,25 @@ function commandsModule({
|
|||||||
commandFn: actions.toggleRenderInactiveSegmentationsCommand,
|
commandFn: actions.toggleRenderInactiveSegmentationsCommand,
|
||||||
},
|
},
|
||||||
setFillAlpha: {
|
setFillAlpha: {
|
||||||
commandFn: actions.setFillAlphaCommand,
|
commandFn: createSetStyleCommand('fillAlpha'),
|
||||||
},
|
},
|
||||||
setOutlineWidth: {
|
setOutlineWidth: {
|
||||||
commandFn: actions.setOutlineWidthCommand,
|
commandFn: createSetStyleCommand('outlineWidth'),
|
||||||
},
|
},
|
||||||
setRenderFill: {
|
setRenderFill: {
|
||||||
commandFn: actions.setRenderFillCommand,
|
commandFn: createSetStyleCommand('renderFill'),
|
||||||
},
|
},
|
||||||
setRenderFillInactive: {
|
setRenderFillInactive: {
|
||||||
commandFn: actions.setRenderFillInactiveCommand,
|
commandFn: createSetStyleCommand('renderFillInactive'),
|
||||||
},
|
},
|
||||||
setRenderOutline: {
|
setRenderOutline: {
|
||||||
commandFn: actions.setRenderOutlineCommand,
|
commandFn: createSetStyleCommand('renderOutline'),
|
||||||
},
|
},
|
||||||
setRenderOutlineInactive: {
|
setRenderOutlineInactive: {
|
||||||
commandFn: actions.setRenderOutlineInactiveCommand,
|
commandFn: createSetStyleCommand('renderOutlineInactive'),
|
||||||
},
|
},
|
||||||
setFillAlphaInactive: {
|
setFillAlphaInactive: {
|
||||||
commandFn: actions.setFillAlphaInactiveCommand,
|
commandFn: createSetStyleCommand('fillAlphaInactive'),
|
||||||
},
|
},
|
||||||
editSegmentLabel: {
|
editSegmentLabel: {
|
||||||
commandFn: actions.editSegmentLabel,
|
commandFn: actions.editSegmentLabel,
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user