@cornerstonejs/tools 1.46.0 → 1.47.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. package/dist/cjs/tools/MIPJumpToClickTool.js +1 -1
  2. package/dist/cjs/tools/MIPJumpToClickTool.js.map +1 -1
  3. package/dist/cjs/tools/StackScrollTool.js +1 -1
  4. package/dist/cjs/tools/StackScrollTool.js.map +1 -1
  5. package/dist/cjs/tools/StackScrollToolMouseWheelTool.js +1 -1
  6. package/dist/cjs/tools/StackScrollToolMouseWheelTool.js.map +1 -1
  7. package/dist/cjs/tools/WindowLevelTool.js +1 -1
  8. package/dist/cjs/tools/WindowLevelTool.js.map +1 -1
  9. package/dist/cjs/tools/base/AnnotationDisplayTool.js +1 -1
  10. package/dist/cjs/tools/base/AnnotationDisplayTool.js.map +1 -1
  11. package/dist/cjs/tools/base/AnnotationTool.js +1 -1
  12. package/dist/cjs/tools/base/AnnotationTool.js.map +1 -1
  13. package/dist/cjs/tools/base/BaseTool.js +7 -10
  14. package/dist/cjs/tools/base/BaseTool.js.map +1 -1
  15. package/dist/cjs/tools/segmentation/RectangleROIStartEndThresholdTool.js +3 -3
  16. package/dist/cjs/tools/segmentation/RectangleROIStartEndThresholdTool.js.map +1 -1
  17. package/dist/cjs/tools/segmentation/RectangleROIThresholdTool.js +1 -1
  18. package/dist/cjs/tools/segmentation/RectangleROIThresholdTool.js.map +1 -1
  19. package/dist/cjs/utilities/viewport/isViewportPreScaled.js +3 -1
  20. package/dist/cjs/utilities/viewport/isViewportPreScaled.js.map +1 -1
  21. package/dist/esm/tools/MIPJumpToClickTool.js +1 -1
  22. package/dist/esm/tools/MIPJumpToClickTool.js.map +1 -1
  23. package/dist/esm/tools/StackScrollTool.js +1 -1
  24. package/dist/esm/tools/StackScrollTool.js.map +1 -1
  25. package/dist/esm/tools/StackScrollToolMouseWheelTool.js +1 -1
  26. package/dist/esm/tools/StackScrollToolMouseWheelTool.js.map +1 -1
  27. package/dist/esm/tools/WindowLevelTool.js +1 -1
  28. package/dist/esm/tools/WindowLevelTool.js.map +1 -1
  29. package/dist/esm/tools/base/AnnotationDisplayTool.js +1 -1
  30. package/dist/esm/tools/base/AnnotationDisplayTool.js.map +1 -1
  31. package/dist/esm/tools/base/AnnotationTool.js +1 -1
  32. package/dist/esm/tools/base/AnnotationTool.js.map +1 -1
  33. package/dist/esm/tools/base/BaseTool.js +7 -11
  34. package/dist/esm/tools/base/BaseTool.js.map +1 -1
  35. package/dist/esm/tools/segmentation/RectangleROIStartEndThresholdTool.js +3 -3
  36. package/dist/esm/tools/segmentation/RectangleROIStartEndThresholdTool.js.map +1 -1
  37. package/dist/esm/tools/segmentation/RectangleROIThresholdTool.js +1 -1
  38. package/dist/esm/tools/segmentation/RectangleROIThresholdTool.js.map +1 -1
  39. package/dist/esm/utilities/viewport/isViewportPreScaled.js +3 -1
  40. package/dist/esm/utilities/viewport/isViewportPreScaled.js.map +1 -1
  41. package/dist/types/tools/base/BaseTool.d.ts.map +1 -1
  42. package/dist/types/utilities/viewport/isViewportPreScaled.d.ts.map +1 -1
  43. package/dist/umd/index.js +1 -1
  44. package/dist/umd/index.js.map +1 -1
  45. package/package.json +3 -3
  46. package/src/tools/MIPJumpToClickTool.ts +1 -1
  47. package/src/tools/StackScrollTool.ts +1 -1
  48. package/src/tools/StackScrollToolMouseWheelTool.ts +1 -1
  49. package/src/tools/WindowLevelTool.ts +1 -1
  50. package/src/tools/base/AnnotationDisplayTool.ts +1 -1
  51. package/src/tools/base/AnnotationTool.ts +1 -1
  52. package/src/tools/base/BaseTool.ts +7 -10
  53. package/src/tools/segmentation/RectangleROIStartEndThresholdTool.ts +3 -3
  54. package/src/tools/segmentation/RectangleROIThresholdTool.ts +1 -1
  55. package/src/utilities/viewport/isViewportPreScaled.ts +3 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cornerstonejs/tools",
3
- "version": "1.46.0",
3
+ "version": "1.47.0",
4
4
  "description": "Cornerstone3D Tools",
5
5
  "main": "src/index.ts",
6
6
  "types": "dist/types/index.d.ts",
@@ -29,7 +29,7 @@
29
29
  "webpack:watch": "webpack --mode development --progress --watch --config ./.webpack/webpack.dev.js"
30
30
  },
31
31
  "dependencies": {
32
- "@cornerstonejs/core": "^1.46.0",
32
+ "@cornerstonejs/core": "^1.47.0",
33
33
  "comlink": "^4.4.1",
34
34
  "lodash.clonedeep": "4.5.0",
35
35
  "lodash.get": "^4.4.2"
@@ -53,5 +53,5 @@
53
53
  "type": "individual",
54
54
  "url": "https://ohif.org/donate"
55
55
  },
56
- "gitHead": "935b1d61a7e9a5e668b51577d6491f026dcae6db"
56
+ "gitHead": "b1235a2e36cda555341dfbd164ef45e519c4efd5"
57
57
  }
@@ -54,7 +54,7 @@ class MIPJumpToClickTool extends BaseTool {
54
54
  );
55
55
  }
56
56
 
57
- const volumeId = targetId.split('volumeId:')[1];
57
+ const volumeId = targetId.split(/volumeId:|\?/)[1];
58
58
 
59
59
  // 3. Criteria function to search for the point (maximum intensity)
60
60
  let maxIntensity = -Infinity;
@@ -42,7 +42,7 @@ class StackScrollTool extends BaseTool {
42
42
  const deltaPointY = deltaPoints.canvas[1];
43
43
  let volumeId;
44
44
  if (viewport instanceof VolumeViewport) {
45
- volumeId = targetId.split('volumeId:')[1];
45
+ volumeId = targetId.split(/volumeId:|\?/)[1];
46
46
  }
47
47
 
48
48
  const pixelsPerImage = this._getPixelPerImage(viewport);
@@ -35,7 +35,7 @@ class StackScrollMouseWheelTool extends BaseTool {
35
35
  const delta = direction * (invert ? -1 : 1);
36
36
 
37
37
  const targetId = this.getTargetId(viewport);
38
- const volumeId = targetId.split('volumeId:')[1];
38
+ const volumeId = targetId.split(/volumeId:|\?/)[1];
39
39
 
40
40
  scroll(viewport, {
41
41
  delta,
@@ -51,7 +51,7 @@ class WindowLevelTool extends BaseTool {
51
51
  const properties = viewport.getProperties();
52
52
  if (viewport instanceof VolumeViewport) {
53
53
  const targetId = this.getTargetId(viewport as Types.IVolumeViewport);
54
- volumeId = targetId.split('volumeId:')[1];
54
+ volumeId = targetId.split(/volumeId:|\?/)[1];
55
55
  viewportsContainingVolumeUID = utilities.getViewportsWithVolumeId(
56
56
  volumeId,
57
57
  renderingEngine.id
@@ -137,7 +137,7 @@ abstract class AnnotationDisplayTool extends BaseTool {
137
137
  } else if (viewport instanceof VideoViewport) {
138
138
  referencedImageId = targetId.split('videoId:')[1];
139
139
  } else {
140
- const volumeId = targetId.split('volumeId:')[1];
140
+ const volumeId = targetId.split(/volumeId:|\?/)[1];
141
141
  const imageVolume = cache.getVolume(volumeId);
142
142
 
143
143
  referencedImageId = utilities.getClosestImageId(
@@ -301,7 +301,7 @@ abstract class AnnotationTool extends AnnotationDisplayTool {
301
301
  imageId?: string
302
302
  ): boolean {
303
303
  if (viewport instanceof BaseVolumeViewport) {
304
- const volumeId = targetId.split('volumeId:')[1];
304
+ const volumeId = targetId.split(/volumeId:|\?/)[1];
305
305
  const volume = cache.getVolume(volumeId);
306
306
  return volume.scaling?.PT !== undefined;
307
307
  }
@@ -206,7 +206,7 @@ abstract class BaseTool implements IBaseTool {
206
206
 
207
207
  return viewports[0].getImageData();
208
208
  } else if (targetId.startsWith('volumeId:')) {
209
- const volumeId = targetId.split('volumeId:')[1];
209
+ const volumeId = targetId.split(/volumeId:|\?/)[1];
210
210
  const viewports = utilities.getViewportsWithVolumeId(
211
211
  volumeId,
212
212
  renderingEngine.id
@@ -248,17 +248,14 @@ abstract class BaseTool implements IBaseTool {
248
248
  * @returns targetId
249
249
  */
250
250
  protected getTargetId(viewport: Types.IViewport): string | undefined {
251
- if (viewport instanceof StackViewport) {
252
- return `imageId:${viewport.getCurrentImageId()}`;
253
- } else if (viewport instanceof BaseVolumeViewport) {
251
+ const targetId = viewport.getTargetId?.();
252
+ if (targetId) {
253
+ return targetId;
254
+ }
255
+ if (viewport instanceof BaseVolumeViewport) {
254
256
  return `volumeId:${this.getTargetVolumeId(viewport)}`;
255
- } else if (viewport instanceof VideoViewport) {
256
- return `videoId:${viewport.getCurrentImageId()}`;
257
- } else {
258
- throw new Error(
259
- 'getTargetId: viewport must be a StackViewport or VolumeViewport'
260
- );
261
257
  }
258
+ throw new Error('getTargetId: viewport must have a getTargetId method');
262
259
  }
263
260
  }
264
261
 
@@ -104,7 +104,7 @@ class RectangleROIStartEndThresholdTool extends RectangleROITool {
104
104
  throw new Error('Stack Viewport Not implemented');
105
105
  } else {
106
106
  const targetId = this.getTargetId(viewport);
107
- volumeId = targetId.split('volumeId:')[1];
107
+ volumeId = targetId.split(/volumeId:|\?/)[1];
108
108
  imageVolume = cache.getVolume(volumeId);
109
109
  referencedImageId = csUtils.getClosestImageId(
110
110
  imageVolume,
@@ -269,8 +269,8 @@ class RectangleROIStartEndThresholdTool extends RectangleROITool {
269
269
  const { viewportId, renderingEngineId, viewport } = enabledElement;
270
270
 
271
271
  const { cachedStats } = data;
272
- const volumeId = this.getTargetId(viewport);
273
- const imageVolume = cache.getVolume(volumeId.split('volumeId:')[1]);
272
+ const targetId = this.getTargetId(viewport);
273
+ const imageVolume = cache.getVolume(targetId.split(/volumeId:|\?/)[1]);
274
274
 
275
275
  // Todo: this shouldn't be here, this is a performance issue
276
276
  // Since we are extending the RectangleROI class, we need to
@@ -90,7 +90,7 @@ class RectangleROIThresholdTool extends RectangleROITool {
90
90
  if (viewport instanceof StackViewport) {
91
91
  referencedImageId = targetId.split('imageId:')[1];
92
92
  } else {
93
- volumeId = targetId.split('volumeId:')[1];
93
+ volumeId = targetId.split(/volumeId:|\?/)[1];
94
94
  const imageVolume = cache.getVolume(volumeId);
95
95
  referencedImageId = csUtils.getClosestImageId(
96
96
  imageVolume,
@@ -12,7 +12,9 @@ function isViewportPreScaled(
12
12
  if (viewport instanceof BaseVolumeViewport) {
13
13
  const targetIdTokens = targetId.split('volumeId:');
14
14
  const volumeId =
15
- targetIdTokens.length > 1 ? targetIdTokens[1] : targetIdTokens[0];
15
+ targetIdTokens.length > 1
16
+ ? targetIdTokens[1].split('?')[0]
17
+ : targetIdTokens[0];
16
18
  const volume = cache.getVolume(volumeId);
17
19
  return !!volume?.scaling && Object.keys(volume.scaling).length > 0;
18
20
  } else if (viewport instanceof StackViewport) {