Skip to main content

工具

介绍

工具是一个未实例化的类,至少实现了 BaseTool 接口。
工具可以通过其构造函数进行配置。要使用工具,必须:

  • 使用库的顶层 addTool 函数添加未实例化的工具
  • 通过名称将该工具添加到一个工具组

在这里,我们将介绍 Cornerstone3DTools 中的一些工具(注释和分割工具)概念。

工具

操作工具

Cornerstone3DTools 提供了一组可以用于操作视口中图像的工具。这些工具包括:

  • 启用图像的缩放(ZoomTool
  • 执行图像的平移和导航(PanTool
  • 滚动浏览图像(StackScrollMouseWheelTool
  • 操控图像的窗口级别(WindowLevelTool

注释工具

Cornerstone3DTools 提供了一组注释工具。您可以使用这些工具来创建和编辑注释,适用于以下用例:

  • 测量两点之间的距离(Length Tool)
  • 测量两点之间的高度(Height Tool)
  • 测量结构的宽度和长度(Bidirectional Tool)
  • 测量矩形区域的面积和统计数据(RectangleRoi Tool)
  • 测量椭圆的体积和统计数据(EllipseRoi Tool)
  • 获取体素的底层值(Probe Tool)

下面,您可以看到 Cornerstone3DTools 中可用的注释工具的屏幕截图。

动态工具统计

Cornerstone3DTools 能够根据渲染的体积的成像模式计算动态统计。例如,对于 CT 体积,ProbeTool 会给出 Hounsfield 单位,对于 PET 它会计算 SUV 统计数据。

在参考框架中共享注释

由于注释存储在患者的物理空间中,如果有两个视口显示相同的参考框架,它们将共享相同的注释。

分割工具

Cornerstone3D 还提供了分割工具。这些包括 3D 分割编辑工具,如刷子、矩形和圆形剪刀,以及 3D 球体工具。

我们将在 Segmentation 部分详细讨论不同类型的分割工具及其在 Cornerstone3DTools 中的使用。

工具如何在内部工作

鼠标和键盘触发事件,这些事件被 Cornerstone3DTools 捕获并规范化。然后,规范化的事件会作为 mouseDownmouseDragmouseUp 事件触发并由工具处理。

添加工具

Cornerstone3DTools 库附带了几个常用工具。所有工具都实现了 BaseToolAnnotationTool。为了能够使用这些工具,您必须先将它们添加到 Cornerstone3DTools。可以使用 addTool 函数来完成此操作。

import * as csTools3d from "@cornerstonejs/tools";

const { PanTool, ProbeTool, ZoomTool, LengthTool } = csTools3d;

csTools3d.addTool(PanTool);
csTools3d.addTool(ZoomTool);
csTools3d.addTool(LengthTool);
csTools3d.addTool(ProbeTool);
warning

将工具添加到库中只会让库知道该工具。
它不会自动将工具添加到任何工具组中,也不会实例化该工具以供使用。

工具模式

工具(在其工具组中)可以处于四种模式之一。每种模式会影响工具对交互的响应。

不应该有两个具有相同绑定的活动工具


工具模式 描述
活动

  • 具有活动绑定的工具将响应交互

  • 如果该工具是注释工具,则点击事件如果不在现有注释上,将创建一个新的注释。
被动(默认)
  • 如果该工具是注释工具,并且其句柄或线条被选中,则可以移动和重新定位。
启用
  • 该工具将渲染,但不能进行交互。
禁用
  • 该工具将不渲染。无法进行交互。