@cornerstonejs/core 1.66.3 → 1.66.5

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 (41) hide show
  1. package/dist/cjs/RenderingEngine/BaseVolumeViewport.js +2 -1
  2. package/dist/cjs/RenderingEngine/BaseVolumeViewport.js.map +1 -1
  3. package/dist/cjs/RenderingEngine/VolumeViewport.js +5 -1
  4. package/dist/cjs/RenderingEngine/VolumeViewport.js.map +1 -1
  5. package/dist/cjs/getEnabledElement.d.ts +1 -0
  6. package/dist/cjs/getEnabledElement.js +12 -1
  7. package/dist/cjs/getEnabledElement.js.map +1 -1
  8. package/dist/cjs/index.d.ts +2 -2
  9. package/dist/cjs/index.js +2 -1
  10. package/dist/cjs/index.js.map +1 -1
  11. package/dist/cjs/loaders/volumeLoader.js +1 -0
  12. package/dist/cjs/loaders/volumeLoader.js.map +1 -1
  13. package/dist/cjs/utilities/getTargetVolumeAndSpacingInNormalDir.js +1 -1
  14. package/dist/cjs/utilities/getTargetVolumeAndSpacingInNormalDir.js.map +1 -1
  15. package/dist/esm/RenderingEngine/BaseVolumeViewport.js +2 -1
  16. package/dist/esm/RenderingEngine/BaseVolumeViewport.js.map +1 -1
  17. package/dist/esm/RenderingEngine/VolumeViewport.js +5 -1
  18. package/dist/esm/RenderingEngine/VolumeViewport.js.map +1 -1
  19. package/dist/esm/getEnabledElement.js +10 -0
  20. package/dist/esm/getEnabledElement.js.map +1 -1
  21. package/dist/esm/index.js +2 -2
  22. package/dist/esm/index.js.map +1 -1
  23. package/dist/esm/loaders/volumeLoader.js +1 -0
  24. package/dist/esm/loaders/volumeLoader.js.map +1 -1
  25. package/dist/esm/utilities/getTargetVolumeAndSpacingInNormalDir.js +1 -1
  26. package/dist/esm/utilities/getTargetVolumeAndSpacingInNormalDir.js.map +1 -1
  27. package/dist/types/RenderingEngine/BaseVolumeViewport.d.ts.map +1 -1
  28. package/dist/types/RenderingEngine/VolumeViewport.d.ts.map +1 -1
  29. package/dist/types/getEnabledElement.d.ts +1 -0
  30. package/dist/types/getEnabledElement.d.ts.map +1 -1
  31. package/dist/types/index.d.ts +2 -2
  32. package/dist/types/index.d.ts.map +1 -1
  33. package/dist/umd/index.js +1 -1
  34. package/dist/umd/index.js.map +1 -1
  35. package/package.json +2 -2
  36. package/src/RenderingEngine/BaseVolumeViewport.ts +5 -2
  37. package/src/RenderingEngine/VolumeViewport.ts +7 -1
  38. package/src/getEnabledElement.ts +20 -0
  39. package/src/index.ts +2 -0
  40. package/src/loaders/volumeLoader.ts +1 -1
  41. package/src/utilities/getTargetVolumeAndSpacingInNormalDir.ts +2 -2
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cornerstonejs/core",
3
- "version": "1.66.3",
3
+ "version": "1.66.5",
4
4
  "description": "",
5
5
  "main": "src/index.ts",
6
6
  "types": "dist/types/index.d.ts",
@@ -47,5 +47,5 @@
47
47
  "type": "individual",
48
48
  "url": "https://ohif.org/donate"
49
49
  },
50
- "gitHead": "5dcb513f1cf32f85739c47416879eb4fe1a0afc4"
50
+ "gitHead": "23c01d5231da3a5283a0d042e4eb5abac3aed44e"
51
51
  }
@@ -863,7 +863,9 @@ abstract class BaseVolumeViewport extends Viewport implements IVolumeViewport {
863
863
  const colormapsVTK = vtkColorMaps.rgbPresetNames.map((presetName) =>
864
864
  vtkColorMaps.getPresetByName(presetName)
865
865
  );
866
- const colormapsCS3D = getColormapNames().map((colormapName) => getColormap(colormapName));
866
+ const colormapsCS3D = getColormapNames().map((colormapName) =>
867
+ getColormap(colormapName)
868
+ );
867
869
  const colormaps = colormapsVTK.concat(colormapsCS3D);
868
870
  const matchedColormap = colormaps.find((colormap) => {
869
871
  const { RGBPoints: presetRGBPoints } = colormap;
@@ -1563,7 +1565,8 @@ abstract class BaseVolumeViewport extends Viewport implements IVolumeViewport {
1563
1565
 
1564
1566
  sliceIndex ??= this.getCurrentImageIdIndex();
1565
1567
  const { viewPlaneNormal, focalPoint } = this.getCamera();
1566
- return `volumeId:${volumeId}?sliceIndex=${sliceIndex}&viewPlaneNormal=${viewPlaneNormal.join(
1568
+ const querySeparator = volumeId.indexOf('?') > -1 ? '&' : '?';
1569
+ return `volumeId:${volumeId}${querySeparator}sliceIndex=${sliceIndex}&viewPlaneNormal=${viewPlaneNormal.join(
1567
1570
  ','
1568
1571
  )}&focalPoint=${focalPoint.join(',')}`;
1569
1572
  }
@@ -356,7 +356,13 @@ class VolumeViewport extends BaseVolumeViewport {
356
356
  public getCurrentImageIdIndex = (volumeId?: string): number => {
357
357
  const { viewPlaneNormal, focalPoint } = this.getCamera();
358
358
 
359
- const { origin, direction, spacing } = this.getImageData(volumeId);
359
+ const imageData = this.getImageData(volumeId);
360
+
361
+ if (!imageData) {
362
+ return;
363
+ }
364
+
365
+ const { origin, direction, spacing } = imageData;
360
366
 
361
367
  const spacingInNormal = getSpacingInNormalDirection(
362
368
  { direction, spacing },
@@ -86,6 +86,26 @@ export function getEnabledElementByIds(
86
86
  };
87
87
  }
88
88
 
89
+ /**
90
+ * Retrieves the enabled element by the specified viewport ID. it searches
91
+ * through all the rendering engines to find the viewport with the specified
92
+ *
93
+ * @param viewportId - The ID of the viewport.
94
+ * @returns The enabled element associated with the specified viewport ID.
95
+ */
96
+ export function getEnabledElementByViewportId(viewportId: string) {
97
+ const renderingEngines = getRenderingEngines();
98
+
99
+ for (let i = 0; i < renderingEngines.length; i++) {
100
+ const renderingEngine = renderingEngines[i];
101
+ const viewport = renderingEngine.getViewport(viewportId);
102
+
103
+ if (viewport) {
104
+ return getEnabledElementByIds(viewportId, renderingEngine.id);
105
+ }
106
+ }
107
+ }
108
+
89
109
  /**
90
110
  * Get all the enabled elements from all the rendering engines
91
111
  * @returns An array of enabled elements.
package/src/index.ts CHANGED
@@ -25,6 +25,7 @@ import imageLoadPoolManager from './requestPool/imageLoadPoolManager';
25
25
 
26
26
  import getEnabledElement, {
27
27
  getEnabledElementByIds,
28
+ getEnabledElementByViewportId,
28
29
  getEnabledElements,
29
30
  } from './getEnabledElement';
30
31
  import * as metaData from './metaData';
@@ -110,6 +111,7 @@ export {
110
111
  getEnabledElement,
111
112
  getEnabledElementByIds,
112
113
  getEnabledElements,
114
+ getEnabledElementByViewportId,
113
115
  createVolumeActor,
114
116
  getOrCreateCanvas,
115
117
  createVolumeMapper,
@@ -284,7 +284,6 @@ export async function createAndCacheDerivedVolume(
284
284
  options: DerivedVolumeOptions
285
285
  ): Promise<IImageVolume> {
286
286
  const referencedVolume = cache.getVolume(referencedVolumeId);
287
-
288
287
  if (!referencedVolume) {
289
288
  throw new Error(
290
289
  `Cannot created derived volume: Referenced volume with id ${referencedVolumeId} does not exist.`
@@ -333,6 +332,7 @@ export async function createAndCacheDerivedVolume(
333
332
  scalarData: volumeScalarData,
334
333
  sizeInBytes: numBytes,
335
334
  imageIds: [],
335
+ referencedVolumeId,
336
336
  });
337
337
 
338
338
  const volumeLoadObject = {
@@ -66,8 +66,8 @@ export default function getTargetVolumeAndSpacingInNormalDir(
66
66
 
67
67
  // If a volumeId is defined, set that volume as the target
68
68
  if (targetVolumeId) {
69
- const imageVolumeIndex = imageVolumes.findIndex(
70
- (iv) => iv.volumeId === targetVolumeId
69
+ const imageVolumeIndex = imageVolumes.findIndex((iv) =>
70
+ iv.volumeId.includes(targetVolumeId)
71
71
  );
72
72
 
73
73
  const imageVolume = imageVolumes[imageVolumeIndex];