import * as cornerstoneTools from '@cornerstonejs/tools' const { utilities } = cornerstoneTools const { roundNumber,BasicStatsCalculator } = utilities console.log(BasicStatsCalculator) class CircleROITool extends cornerstoneTools.CircleROITool { static toolName; // touchDragCallback: any; // mouseDragCallback: any; // _throttledCalculateCachedStats: any; // editData: { // annotation: any; // viewportIdsToRender: Array; // handleIndex?: number; // movingTextBox?: boolean; // newAnnotation?: boolean; // hasMoved?: boolean; // } | null; // isDrawing: boolean; // isHandleOutsideImage = false; constructor( toolProps = {}, defaultToolProps = { supportedInteractionTypes: ['Mouse', 'Touch'], configuration: { // shadow: true, // preventHandleOutsideImage: false, // centerPointRadius: 0 shadow: true, preventHandleOutsideImage: false, // Radius of the circle to draw at the center point of the circle. // Set this zero(0) in order not to draw the circle. centerPointRadius: 0, getTextLines: defaultGetTextLines, // statsCalculator: BasicStatsCalculator, } } ) { super(toolProps, defaultToolProps) // this._throttledCalculateCachedStats = utilities.throttle( // this._calculateCachedStats, // 100, // { trailing: true } // ) // this._getTextLines = this.getTextLines } } function defaultGetTextLines(data, targetId) { const cachedVolumeStats = data.cachedStats[targetId]; const { radius, radiusUnit, area, mean, stdDev, max, isEmptyArea, Modality, areaUnit, modalityUnit, } = cachedVolumeStats; const textLines= []; if (radius) { const radiusLine = isEmptyArea ? `Radius: Oblique not supported` : `Radius: ${roundNumber(radius)} ${radiusUnit}`; textLines.push(radiusLine); } if (area) { const areaLine = isEmptyArea ? `Area: Oblique not supported` : `Area: ${roundNumber(area)} ${areaUnit}`; textLines.push(areaLine); } if (mean) { textLines.push(`Mean: ${roundNumber(mean)} ${modalityUnit}`); } if (max) { textLines.push(`Max: ${roundNumber(max)} ${modalityUnit}`); } if (stdDev) { textLines.push(`Std Dev: ${roundNumber(stdDev)} ${modalityUnit}`); } return textLines } CircleROITool.toolName = 'CircleROI' export default CircleROITool