@cornerstonejs/core 1.66.3 → 1.66.4

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cornerstonejs/core",
3
- "version": "1.66.3",
3
+ "version": "1.66.4",
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": "4d12d9d2ecf38805e7c9ca7e93bf36372bfe85ff"
51
51
  }
@@ -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 = {