* Add scoord3d parse / display tool to v2 * Update measurement panel with sr measurements * Update measurement panel to display read only items * Cleanup debugger statement * Check for empty measurement * fix SCOORD3D coordinates * Update getRenderableData.js * fix scoord3d coordinate transformation * implement logic to detect the ReferencedSOPInstanceUID if missing in the measurement. Fix also world to IJ coordinates. * Fix broken unit test / import * fix comment style * Init tools only once * restore default config dcmjs server Co-authored-by: igoroctaviano <igoroctaviano@gmail.com>
109 lines
2.5 KiB
JavaScript
109 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;
|