From 38620d969b457993424ac4c28c634a2bf698b6ec Mon Sep 17 00:00:00 2001 From: Ross Date: Mon, 2 Jun 2025 10:17:51 +0100 Subject: [PATCH] add a new no label arrow tool --- dicom-viewer/src/App.tsx | 8 +++++++- dicom-viewer/src/NoLabelArrowAnnotateTool.ts | 5 +++++ 2 files changed, 12 insertions(+), 1 deletion(-) create mode 100644 dicom-viewer/src/NoLabelArrowAnnotateTool.ts diff --git a/dicom-viewer/src/App.tsx b/dicom-viewer/src/App.tsx index d73174c..dd4f388 100644 --- a/dicom-viewer/src/App.tsx +++ b/dicom-viewer/src/App.tsx @@ -17,6 +17,8 @@ import { metaData } from '@cornerstonejs/core'; import * as dicomParser from "dicom-parser"; import cornerstoneDICOMImageLoader from "@cornerstonejs/dicom-image-loader" +import { NoLabelArrowAnnotateTool } from "./NoLabelArrowAnnotateTool"; + // Extend the Window interface to include cornerstoneTools declare global { interface Window { @@ -85,6 +87,7 @@ const TOOL_OPTIONS = [ { label: "Rotate", value: PlanarRotateTool.toolName }, { label: "Length", value: LengthTool.toolName }, { label: "Probe", value: ProbeTool.toolName }, + { label: "Arrow (No Label)", value: NoLabelArrowAnnotateTool.toolName }, { label: "Arrow Annotate", value: ArrowAnnotateTool.toolName }, { label: "Rectangle ROI", value: RectangleROITool.toolName }, { label: "Ellipse ROI", value: EllipticalROITool.toolName }, @@ -1205,6 +1208,7 @@ function App() { // Only keep annotations with toolName in the allowed list const allowedTools = [ LengthTool.toolName, + NoLabelArrowAnnotateTool.toolName, ArrowAnnotateTool.toolName, RectangleROITool.toolName, EllipticalROITool.toolName, @@ -2482,6 +2486,7 @@ function setupTools() { cornerstoneTools.addTool(ReferenceCursors) cornerstoneTools.addTool(CrosshairsTool) cornerstoneTools.addTool(ReferenceLinesTool); + cornerstoneTools.addTool(NoLabelArrowAnnotateTool); @@ -2495,7 +2500,8 @@ function setupTools() { mainToolGroup.addTool(StackScrollTool.toolName, { loop: false }); mainToolGroup.addTool(PlanarRotateTool.toolName); mainToolGroup.addTool(LengthTool.toolName); - mainToolGroup.addTool(ArrowAnnotateTool.toolName, { getTextCallback: () => '' }); + mainToolGroup.addTool(NoLabelArrowAnnotateTool.toolName, { getTextCallback: () => '' }); + mainToolGroup.addTool(ArrowAnnotateTool.toolName); mainToolGroup.addTool(ProbeTool.toolName, { statsCalculator: () => null }); mainToolGroup.addTool(RectangleROITool.toolName, { calculateStats: false, getTextCallback: () => '' }); mainToolGroup.addTool(EllipticalROITool.toolName, { getTextCallback: () => '' }); diff --git a/dicom-viewer/src/NoLabelArrowAnnotateTool.ts b/dicom-viewer/src/NoLabelArrowAnnotateTool.ts new file mode 100644 index 0000000..7a4da64 --- /dev/null +++ b/dicom-viewer/src/NoLabelArrowAnnotateTool.ts @@ -0,0 +1,5 @@ +import { ArrowAnnotateTool } from "@cornerstonejs/tools"; + +export class NoLabelArrowAnnotateTool extends ArrowAnnotateTool { + static toolName = "NoLabelArrowAnnotate"; +} \ No newline at end of file