分段加锁

你可以给一份分割中的特定分段加锁,防止它们被任何工具修改。
以上面这张叠加了标签图的影像为例:
- 左图:显示
分段索引 1 - 中图:显示在
分段索引 1之上绘制分段索引 2后的结果 - 右图:显示
分段索引 1被加锁后、再在其上绘制分段索引 2的结果
如加锁后的情形(右图)所示,当分段索引 1 被加锁时,新的绘制无法修改它。
API
加锁 API 在 2.x 版本中做了更新,方法名和功能都更清晰:
import { segmentation } from '@cornerstonejs/tools';
// 给某份分割中的某个分段索引加锁 / 解锁
segmentation.locking.setSegmentIndexLocked(
segmentationId,
segmentIndex,
locked
);
// 取得某份分割中全部已加锁的分段索引
const lockedIndices =
segmentation.locking.getLockedSegmentIndices(segmentationId);
// 查询某个分段索引是否已加锁
const isLocked = segmentation.locking.isSegmentIndexLocked(
segmentationId,
segmentIndex
);
用法示例
// 给某份分割中的分段 1 加锁
segmentation.locking.setSegmentIndexLocked('segmentation1', 1, true);
// 查询分段 1 是否已加锁
const isLocked = segmentation.locking.isSegmentIndexLocked('segmentation1', 1);
console.log(`Segment 1 is ${isLocked ? 'locked' : 'unlocked'}`);
// 取得全部已加锁的分段
const lockedIndices =
segmentation.locking.getLockedSegmentIndices('segmentation1');
console.log('Locked segment indices:', lockedIndices);
// 给分段 1 解锁
segmentation.locking.setSegmentIndexLocked('segmentation1', 1, false);
2.x 版本中的主要改动
- 为表意清晰,
getLockedSegments改名为getLockedSegmentIndices。 - 加锁状态现在保存在分段的数据结构中:
{
segments: {
[segmentIndex]: {
locked: boolean,
// 其他分段属性……
}
}
}
注意:加锁状态作用于整份分割,而不是某个特定的表示形式或视口。 如果某个分段被加锁了,那么它在所有视口和所有表示形式中都是加锁的。