* 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>
This commit is contained in:
1 parent
1953118c8a
commit
5beb12a7fc
48 files changed
+2286
-231
No files matched your search
@@ -0,0 +1,108 @@
|
||||
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;
|
||||
Reference in new issue
Block a user