108 lines
2.5 KiB
JavaScript
108 lines
2.5 KiB
JavaScript
import cornerstoneTools from 'cornerstone-tools';
|
|||
|
|
import DICOMSRDisplayTool from './DICOMSRDisplayTool';
|
||
|
|
import TOOL_NAMES from './constants/toolNames';
|
||
|
|
import getToolAlias from './utils/getToolAlias';
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Initialize SR cornerstone tools.
|
||
|
|
*
|
||
|
|
* @param {*} targetElement
|
||
|
|
*/
|
||
|
|
const initSRTools = targetElement => {
|
||
|
|
const primaryToolId = 'Wwwc';
|
||
|
|
const toolAlias = getToolAlias(primaryToolId); // These are 1:1 for built-in only
|
||
|
|
|
||
|
|
// ~~ MAGIC
|
||
|
|
cornerstoneTools.addToolForElement(targetElement, DICOMSRDisplayTool);
|
||
|
|
cornerstoneTools.setToolEnabledForElement(
|
||
|
|
targetElement,
|
||
|
|
TOOL_NAMES.DICOM_SR_DISPLAY_TOOL
|
||
|
|
);
|
||
|
|
|
||
|
|
// ~~ Variants
|
||
|
|
cornerstoneTools.addToolForElement(
|
||
|
|
targetElement,
|
||
|
|
cornerstoneTools.LengthTool,
|
||
|
|
{
|
||
|
|
name: 'SRLength',
|
||
|
|
configuration: {
|
||
|
|
renderDashed: true,
|
||
|
|
},
|
||
|
|
}
|
||
|
|
);
|
||
|
|
cornerstoneTools.addToolForElement(
|
||
|
|
targetElement,
|
||
|
|
cornerstoneTools.ArrowAnnotateTool,
|
||
|
|
{
|
||
|
|
name: 'SRArrowAnnotate',
|
||
|
|
configuration: {
|
||
|
|
renderDashed: true,
|
||
|
|
},
|
||
|
|
}
|
||
|
|
);
|
||
|
|
cornerstoneTools.addToolForElement(
|
||
|
|
targetElement,
|
||
|
|
cornerstoneTools.BidirectionalTool,
|
||
|
|
{
|
||
|
|
name: 'SRBidirectional',
|
||
|
|
configuration: {
|
||
|
|
renderDashed: true,
|
||
|
|
},
|
||
|
|
}
|
||
|
|
);
|
||
|
|
cornerstoneTools.addToolForElement(
|
||
|
|
targetElement,
|
||
|
|
cornerstoneTools.EllipticalRoiTool,
|
||
|
|
{
|
||
|
|
name: 'SREllipticalRoi',
|
||
|
|
configuration: {
|
||
|
|
renderDashed: true,
|
||
|
|
},
|
||
|
|
}
|
||
|
|
);
|
||
|
|
cornerstoneTools.addToolForElement(
|
||
|
|
targetElement,
|
||
|
|
cornerstoneTools.RectangleRoiTool,
|
||
|
|
{
|
||
|
|
name: 'SRRectangleRoi',
|
||
|
|
configuration: {
|
||
|
|
renderDashed: true,
|
||
|
|
},
|
||
|
|
}
|
||
|
|
);
|
||
|
|
cornerstoneTools.addToolForElement(
|
||
|
|
targetElement,
|
||
|
|
cornerstoneTools.FreehandRoiTool,
|
||
|
|
{
|
||
|
|
name: 'SRFreehandRoi',
|
||
|
|
configuration: {
|
||
|
|
renderDashed: true,
|
||
|
|
},
|
||
|
|
}
|
||
|
|
);
|
||
|
|
|
||
|
|
// ~~ Business as usual
|
||
|
|
cornerstoneTools.setToolActiveForElement(targetElement, 'PanMultiTouch', {
|
||
|
|
pointers: 2,
|
||
|
|
});
|
||
|
|
cornerstoneTools.setToolActiveForElement(targetElement, 'ZoomTouchPinch', {});
|
||
|
|
|
||
|
|
// TODO: Add always dashed tool alternative aliases
|
||
|
|
// TODO: or same name... alternative config?
|
||
|
|
cornerstoneTools.setToolActiveForElement(targetElement, toolAlias, {
|
||
|
|
mouseButtonMask: 1,
|
||
|
|
});
|
||
|
|
cornerstoneTools.setToolActiveForElement(targetElement, 'Pan', {
|
||
|
|
mouseButtonMask: 4,
|
||
|
|
});
|
||
|
|
cornerstoneTools.setToolActiveForElement(targetElement, 'Zoom', {
|
||
|
|
mouseButtonMask: 2,
|
||
|
|
});
|
||
|
|
cornerstoneTools.setToolActiveForElement(
|
||
|
|
targetElement,
|
||
|
|
'StackScrollMouseWheel',
|
||
|
|
{}
|
||
|
|
);
|
||
|
|
};
|
||
|
|
|
||
|
|
export default initSRTools;
|