一文详解cornerstone Tools 基础概念

cornerstone Tools 基础概念

Cornerstone Tools 是一个 JavaScript 库,用于帮助注释、分割和测量医学图像。该库还提供了一个框架,用于创建新工具,以一致、连贯的方式管理所有工具,以及导入/导出工具度量数据。

下面将介绍 Cornerstone Tools 中的基本概念,以便后续了解 Cornerstone Tools 的用法。

工具类型

目前,Cornerstone Tools 所有的工具均为 class 类,都是通过继承 class 类的方式实现统一的集成。根据工具的使用方式主要分为三个父类:BaseTool、BaseAnnotationTool、BaseBrushTool。

Base Tool

BaseTool 是 Cornerstone Tools 中所有工具的顶级父级。它负责初始化工具的配置,应用 mixin,并为激活状态工具的鼠标/触摸交互提供 @virtual 函数。

继承于 BaseTool 类的工具类:

工具类名 工具名称 说明
CrosshairsTool 十字线 用于在与同步图像序列中的图像位置相对应的另一元素中查找切片的工具。
DragProbeTool 探针 拖动时在输入位置提供图像数据探测的工具,主要用于测量 CT 值。
MagnifyTool 放大镜 用于放大检查区域的工具。
OrientationMarkersTool 方向标记 用于在图像上显示方向标记的工具,激活后无需操作自动显示。
PanTool 平移 用于平移图像的工具。
RotateTool 旋转 用于旋转图像的工具。
ScaleOverlayTool 比例尺 用于在图像上显示比例覆盖的工具,激活后无需操作自动显示。
WWWCTool 调窗 通过拖动设置窗宽窗位的工具。
ZoomTool 缩放 用于调整缩放比例的工具。
StackScrollTool 浏览序列 用于滚动系列的工具。
StackScrollMouseWheelTool 鼠标滚轮浏览序列 使用鼠标滚轮滚动序列的工具。
OverlayTool 覆盖层 用于在图像上显示覆盖信息或图形的工具。
ReferenceLinesTool 参考线 用于显示其他已启用元素的参考线的工具。
EraserTool 橡皮擦 用于删除其他注释工具的数据的工具。

BaseAnnotationTool

BaseAnnotationTool 继承于 BaseTool ,扩展了部分方法,主要用于创建和操作注释数据。

继承于 BaseAnnotationTool 类的工具类:

工具类名 工具名称 说明
AngleTool 角度 通过放置三个连续点创建和定位角度。
ArrowAnnotateTool 箭头标注 创建并定位箭头和标签。
BidirectionalTool 双向 创建并定位测量区域长度和宽度的注释。
CircleRoiTool 圆形 用于绘制感兴趣的圆形区域并测量封闭像素的统计信息的工具。
CobbAngleTool cobb 角 用于测量两条直线之间的角度的工具。
EllipticalRoiTool 椭圆 用于绘制感兴趣的椭圆区域并测量封闭像素的统计信息的工具。
FreehandRoiTool 多边形 用于绘制任意多边形感兴趣区域并测量封闭像素统计信息的工具。
LengthTool 长度 测量距离的工具。
ProbeTool 探针 在所需位置提供图像数据探测的工具,与 DragProbeTool 使用方式一致,区别在于 ProbeTool 会保存测量数据。
RectangleRoiTool 矩形 用于绘制感兴趣的矩形区域并测量封闭像素的统计信息的工具。
TextMarkerTool 文字标注 用于使用文本标记注释图像的工具。

工具模式

工具的模式决定了如何渲染工具,以及如何与其交互。包含四种标准模式,分别是:

工具类名 说明
Active 激活模式的工具将渲染并响应用户输入,并且能够创建新的注释或测量。
Passive 被动模式的工具将渲染并被动响应用户输入,数据可以被 操纵,但不能被创建。
Enabled 启用模式的工具将渲染,但不会响应输入,本质上是只读状态。
Disabled 工具的默认状态。禁用模式的工具无法交互,也不会在启用的元素上呈现。

事件

CornelstoneTools 事件将本地事件捕获,并进行规范化,并使用 cornerstonetools 前缀重新触发,这样在不同的浏览器中可以一致地处理事件。

事件分类 事件名称 说明
鼠标事件 cornerstonetoolsmousedown 鼠标按下时触发
cornerstonetoolsmouseup 鼠标抬起时触发
cornerstonetoolsmousedownactivate 鼠标按下 ,并且 cornerstonetoolsmousedown 事件回调函数不使用 stopPropagation 时触发。此时触发 createNewMeasurement 函数。
cornerstonetoolsmousedrag 鼠标拖拽时触发
cornerstonetoolsmousemove 鼠标移动时触发
cornerstonetoolsmouseclick 鼠标点击时触发
cornerstonetoolsmousedoubleclick 鼠标双击时触发
cornerstonetoolsmousewheel 鼠标滚轮滚动时触发
键盘事件 cornerstonetoolskeydown 键盘按下时触发
cornerstonetoolskeyup 键盘抬起时触发
cornerstonetoolskeypress 键盘按下生字符值的键时触发
自定义事件 cornerstonetoolsmeasurementadded 增加测量数据时触发
cornerstonetoolsmeasurementmodified 修改测量数据时触发
cornerstonetoolsmeasurementcompleted 测量停止时触发
cornerstonetoolsmeasurementremoved 移除测量数据时触发
cornerstonetoolstooldeactivated 工具停用时触发,工具模式被修改为 passive
cornerstonetoolsclipstopped 播放工具停止时触发
cornerstonetoolsstackscroll scroll stack 图像时触发
cornerstonetoolsstackprefetchimageloaded stack预加载图像完成时触发
cornerstonetoolsstackprefetchdone 全部完成 stack 预加载时触发
cornersontetoolslabelmapmodified labelmap 修改时触发

全局配置项

在初始化 Cornerstone Tools 时,可以通过应用合理的默认值,启用/禁用不同的特性和功能。

cornerstoneTools.init({
  // 当元素被启用时,是否监听鼠标事件
  mouseEnabled: true,
  // 当元素被启用时,是否监听触摸事件
  touchEnabled: true,
  // 全局工具同步
  globalToolSyncEnabled: true,
  // 显示svg光标
  showSVGCursors: true,
  // 自动调整视口大小
  autoResizeViewports: true,
  // 虚线样式
  lineDash: [4, 4]
});

以上就是一文详解cornerstone Tools 基础概念的详细内容,更多关于cornerstone Tools基础概念的资料请关注脚本之家其它相关文章!

你可能感兴趣的:(一文详解cornerstone Tools 基础概念)