@cornerstonejs/core 4.12.4 → 4.12.6

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.
@@ -632,8 +632,11 @@ class StackViewport extends Viewport {
632
632
  calibrateIfNecessary(imageId, imagePlaneModule) {
633
633
  const calibration = metaData.get('calibratedPixelSpacing', imageId);
634
634
  const isUpdated = this.calibration !== calibration;
635
- const { scale } = calibration || {};
636
- this.hasPixelSpacing = scale > 0 || imagePlaneModule.rowPixelSpacing > 0;
635
+ const scale = calibration?.scale;
636
+ this.hasPixelSpacing =
637
+ scale > 0 ||
638
+ (!imagePlaneModule.usingDefaultValues &&
639
+ imagePlaneModule.rowPixelSpacing > 0);
637
640
  imagePlaneModule.calibration = calibration;
638
641
  if (!isUpdated) {
639
642
  return imagePlaneModule;
@@ -13,8 +13,10 @@ declare class WSIViewport extends Viewport {
13
13
  protected metadataDicomweb: any;
14
14
  private microscopyElement;
15
15
  protected map: any;
16
+ private imageURISet;
16
17
  private internalCamera;
17
18
  private viewer;
19
+ private annotationRemovedListener;
18
20
  private voiRange;
19
21
  private feFilter;
20
22
  private averageWhite;
@@ -9,14 +9,18 @@ import { EPSILON } from '../constants';
9
9
  import triggerEvent from '../utilities/triggerEvent';
10
10
  import { peerImport } from '../init';
11
11
  import microscopyViewportCss from '../constants/microscopyViewportCss';
12
+ import eventTarget from '../eventTarget';
13
+ import imageIdToURI from '../utilities/imageIdToURI';
12
14
  let WSIUtilFunctions = null;
13
15
  const EVENT_POSTRENDER = 'postrender';
16
+ const ANNOTATION_REMOVED = 'CORNERSTONE_TOOLS_ANNOTATION_REMOVED';
14
17
  class WSIViewport extends Viewport {
15
18
  constructor(props) {
16
19
  super({
17
20
  ...props,
18
21
  canvas: props.canvas || getOrCreateCanvas(props.element),
19
22
  });
23
+ this.imageURISet = new Set();
20
24
  this.internalCamera = {
21
25
  rotation: 0,
22
26
  centerIndex: [0, 0],
@@ -26,6 +30,26 @@ class WSIViewport extends Viewport {
26
30
  resolution: 1,
27
31
  zoom: 1,
28
32
  };
33
+ this.annotationRemovedListener = (evt) => {
34
+ const { detail } = evt;
35
+ const metadata = detail?.annotation?.metadata;
36
+ if (!metadata) {
37
+ this.postrender();
38
+ return;
39
+ }
40
+ const referencedImageURI = metadata.referencedImageURI ??
41
+ (metadata.referencedImageId
42
+ ? imageIdToURI(metadata.referencedImageId)
43
+ : null);
44
+ if (referencedImageURI && !this.hasImageURI(referencedImageURI)) {
45
+ return;
46
+ }
47
+ const annotationFOR = metadata.FrameOfReferenceUID ?? null;
48
+ if (annotationFOR && annotationFOR !== this.frameOfReferenceUID) {
49
+ return;
50
+ }
51
+ this.postrender();
52
+ };
29
53
  this.voiRange = {
30
54
  lower: 0,
31
55
  upper: 255,
@@ -127,9 +151,11 @@ class WSIViewport extends Viewport {
127
151
  }
128
152
  addEventListeners() {
129
153
  this.canvas.addEventListener(EVENTS.ELEMENT_DISABLED, this.elementDisabledHandler);
154
+ eventTarget.addEventListener(ANNOTATION_REMOVED, this.annotationRemovedListener);
130
155
  }
131
156
  removeEventListeners() {
132
157
  this.canvas.removeEventListener(EVENTS.ELEMENT_DISABLED, this.elementDisabledHandler);
158
+ eventTarget.removeEventListener(ANNOTATION_REMOVED, this.annotationRemovedListener);
133
159
  }
134
160
  elementDisabledHandler() {
135
161
  this.removeEventListeners();
@@ -138,6 +164,7 @@ class WSIViewport extends Viewport {
138
164
  const cs3dElement = this.element.firstElementChild;
139
165
  cs3dElement.removeChild(this.microscopyElement);
140
166
  this.microscopyElement = null;
167
+ this.imageURISet.clear();
141
168
  }
142
169
  getImageDataMetadata(imageIndex = 0) {
143
170
  const maxImage = this.metadataDicomweb.reduce((maxImage, image) => {
@@ -269,7 +296,10 @@ class WSIViewport extends Viewport {
269
296
  return imageDataReturn;
270
297
  }
271
298
  hasImageURI(imageURI) {
272
- return true;
299
+ if (!imageURI) {
300
+ return false;
301
+ }
302
+ return this.imageURISet.has(imageURI);
273
303
  }
274
304
  setCamera(camera) {
275
305
  const previousCamera = this.getCamera();
@@ -358,7 +388,7 @@ class WSIViewport extends Viewport {
358
388
  const webClient = options?.webClient ||
359
389
  metaData.get(MetadataModules.WADO_WEB_CLIENT, imageIds[0]);
360
390
  if (!webClient) {
361
- throw new Error(`To use setDataIds on WSI data, you must provide metaData.webClient for ${imageIds[0]}`);
391
+ throw new Error(`To use setDataIds on WSI data, you must provide metaData.webClient for ${imageIds[0]}.`);
362
392
  }
363
393
  return this.setWSI(imageIds, webClient);
364
394
  }
@@ -366,6 +396,7 @@ class WSIViewport extends Viewport {
366
396
  this.microscopyElement.style.background = 'black';
367
397
  this.microscopyElement.innerText = 'Loading';
368
398
  this.imageIds = imageIds;
399
+ this.imageURISet = new Set(imageIds.map((imageId) => imageIdToURI(imageId)));
369
400
  const DicomMicroscopyViewer = await WSIViewport.getDicomMicroscopyViewer();
370
401
  WSIUtilFunctions ||= DicomMicroscopyViewer.utils;
371
402
  this.frameOfReferenceUID = null;
@@ -1,16 +1,13 @@
1
1
  import { CalibrationTypes } from '../enums';
2
- export default function getPixelSpacingInformation(instance: any): {
2
+ export declare function getERMF(instance: any): any;
3
+ export declare function calculateRadiographicPixelSpacing(instance: any): {
3
4
  PixelSpacing: any;
4
5
  type: CalibrationTypes;
5
6
  isProjection: boolean;
6
- PixelSpacingCalibrationType?: undefined;
7
- PixelSpacingCalibrationDescription?: undefined;
8
- } | {
7
+ };
8
+ export declare function getPixelSpacingInformation(instance: any): {
9
9
  PixelSpacing: any;
10
10
  type: CalibrationTypes;
11
11
  isProjection: boolean;
12
- PixelSpacingCalibrationType: any;
13
- PixelSpacingCalibrationDescription: any;
14
- } | {
15
- PixelSpacing: number[];
16
12
  };
13
+ export default getPixelSpacingInformation;
@@ -14,50 +14,62 @@ const projectionRadiographSOPClassUIDs = new Set([
14
14
  '1.2.840.10008.5.1.4.1.1.12.2.1',
15
15
  '1.2.840.10008.5.1.4.1.1.12.3',
16
16
  ]);
17
- const alreadySeenWarn = new Set();
18
- function calculateRadiographicPixelSpacing(instance) {
19
- const { PixelSpacing, ImagerPixelSpacing, EstimatedRadiographicMagnificationFactor, PixelSpacingCalibrationType, PixelSpacingCalibrationDescription, } = instance;
20
- const isProjection = true;
21
- if (!ImagerPixelSpacing) {
22
- return {
23
- PixelSpacing,
24
- type: CalibrationTypes.UNKNOWN,
25
- isProjection,
26
- };
17
+ export function getERMF(instance) {
18
+ const { PixelSpacing, ImagerPixelSpacing, EstimatedRadiographicMagnificationFactor: ermf, DistanceSourceToDetector: sid, DistanceSourceToPatient: sod, } = instance;
19
+ if (ermf) {
20
+ return ermf;
27
21
  }
28
- if (!PixelSpacing) {
29
- if (!EstimatedRadiographicMagnificationFactor) {
30
- if (!alreadySeenWarn.has(instance.SeriesInstanceUID)) {
31
- console.warn('EstimatedRadiographicMagnificationFactor was not present on series', instance.SeriesInstanceUID, ' Unable to correct ImagerPixelSpacing.');
32
- alreadySeenWarn.add(instance.SeriesInstanceUID);
33
- }
34
- return {
35
- PixelSpacing: ImagerPixelSpacing,
36
- type: CalibrationTypes.PROJECTION,
37
- isProjection,
38
- };
22
+ if (sod < sid) {
23
+ return sid / sod;
24
+ }
25
+ if (ImagerPixelSpacing?.[0] > PixelSpacing?.[0]) {
26
+ return true;
27
+ }
28
+ }
29
+ export function calculateRadiographicPixelSpacing(instance) {
30
+ const { PixelSpacing, ImagerPixelSpacing, PixelSpacingCalibrationType } = instance;
31
+ const isProjection = true;
32
+ if (PixelSpacing && PixelSpacingCalibrationType === 'GEOMETRY') {
33
+ if (isEqual(PixelSpacing, ImagerPixelSpacing)) {
34
+ console.warn('Calibration type is geometry, but pixel spacing and imager pixel spacing identical', PixelSpacing, ImagerPixelSpacing);
39
35
  }
40
- const correctedPixelSpacing = ImagerPixelSpacing.map((pixelSpacing) => pixelSpacing / EstimatedRadiographicMagnificationFactor);
41
36
  return {
42
- PixelSpacing: correctedPixelSpacing,
37
+ PixelSpacing,
43
38
  type: CalibrationTypes.ERMF,
44
39
  isProjection,
45
40
  };
46
41
  }
47
- if (isEqual(PixelSpacing, ImagerPixelSpacing)) {
42
+ if (PixelSpacing && PixelSpacingCalibrationType === 'FIDUCIAL') {
48
43
  return {
49
44
  PixelSpacing,
50
- type: CalibrationTypes.PROJECTION,
45
+ type: CalibrationTypes.CALIBRATED,
51
46
  isProjection,
52
47
  };
53
48
  }
54
- if (PixelSpacingCalibrationType || PixelSpacingCalibrationDescription) {
49
+ if (ImagerPixelSpacing) {
50
+ const ermf = getERMF(instance);
51
+ if (ermf > 1) {
52
+ const correctedPixelSpacing = ImagerPixelSpacing.map((pixelSpacing) => pixelSpacing / ermf);
53
+ return {
54
+ PixelSpacing: correctedPixelSpacing,
55
+ type: CalibrationTypes.ERMF,
56
+ isProjection,
57
+ };
58
+ }
59
+ if (ermf === true) {
60
+ return {
61
+ PixelSpacing,
62
+ type: CalibrationTypes.ERMF,
63
+ isProjection,
64
+ };
65
+ }
66
+ if (ermf) {
67
+ console.error('Illegal ERMF value:', ermf);
68
+ }
55
69
  return {
56
- PixelSpacing,
57
- type: CalibrationTypes.CALIBRATED,
70
+ PixelSpacing: PixelSpacing || ImagerPixelSpacing,
71
+ type: CalibrationTypes.PROJECTION,
58
72
  isProjection,
59
- PixelSpacingCalibrationType,
60
- PixelSpacingCalibrationDescription,
61
73
  };
62
74
  }
63
75
  return {
@@ -66,29 +78,8 @@ function calculateRadiographicPixelSpacing(instance) {
66
78
  isProjection,
67
79
  };
68
80
  }
69
- function calculateUSPixelSpacing(instance) {
70
- const { SequenceOfUltrasoundRegions } = instance;
71
- const isArrayOfSequences = Array.isArray(SequenceOfUltrasoundRegions);
72
- if (isArrayOfSequences && SequenceOfUltrasoundRegions.length > 1) {
73
- console.warn('Sequence of Ultrasound Regions > one entry. This is not yet implemented, all measurements will be shown in pixels.');
74
- return;
75
- }
76
- const { PhysicalDeltaX, PhysicalDeltaY } = isArrayOfSequences
77
- ? SequenceOfUltrasoundRegions[0]
78
- : SequenceOfUltrasoundRegions;
79
- const USPixelSpacing = [
80
- Math.abs(PhysicalDeltaX) * 10,
81
- Math.abs(PhysicalDeltaY) * 10,
82
- ];
83
- return {
84
- PixelSpacing: USPixelSpacing,
85
- };
86
- }
87
- export default function getPixelSpacingInformation(instance) {
88
- const { PixelSpacing, SOPClassUID, SequenceOfUltrasoundRegions } = instance;
89
- if (SequenceOfUltrasoundRegions) {
90
- return calculateUSPixelSpacing(instance);
91
- }
81
+ export function getPixelSpacingInformation(instance) {
82
+ const { PixelSpacing, SOPClassUID } = instance;
92
83
  const isProjection = projectionRadiographSOPClassUIDs.has(SOPClassUID);
93
84
  if (isProjection) {
94
85
  return calculateRadiographicPixelSpacing(instance);
@@ -99,3 +90,4 @@ export default function getPixelSpacingInformation(instance) {
99
90
  isProjection: false,
100
91
  };
101
92
  }
93
+ export default getPixelSpacingInformation;
@@ -92,9 +92,9 @@ import getVolumeDirectionVectors from './getVolumeDirectionVectors';
92
92
  import calculateSpacingBetweenImageIds from './calculateSpacingBetweenImageIds';
93
93
  export * as logger from './logger';
94
94
  import { calculateNeighborhoodStats } from './calculateNeighborhoodStats';
95
- import getPixelSpacingInformation from './getPixelSpacingInformation';
95
+ export * from './getPixelSpacingInformation';
96
96
  import { asArray } from './asArray';
97
97
  export { updatePlaneRestriction } from './updatePlaneRestriction';
98
98
  declare const getViewportModality: (viewport: IViewport, volumeId?: string) => string;
99
99
  export * from './isEqual';
100
- export { FrameRange, eventListener, csUtils as invertRgbTransferFunction, createSigmoidRGBTransferFunction, getVoiFromSigmoidRGBTransferFunction, createLinearRGBTransferFunction, scaleRgbTransferFunction, triggerEvent, imageIdToURI, fnv1aHash, calibratedPixelSpacingMetadataProvider, clamp, uuidv4, getMinMax, getRuntimeId, isOpposite, getViewportModality, windowLevel, convertToGrayscale, getClosestImageId, getSpacingInNormalDirection, getTargetVolumeAndSpacingInNormalDir, getVolumeActorCorners, indexWithinDimensions, getVolumeViewportsContainingSameVolumes, getViewportsWithVolumeId, transformWorldToIndex, transformIndexToWorld, loadImageToCanvas, renderToCanvasCPU, renderToCanvasGPU, worldToImageCoords, imageToWorldCoords, getVolumeSliceRangeInfo, getVolumeViewportScrollInfo, getSliceRange, snapFocalPointToSlice, getImageSliceDataForVolumeViewport, isImageActor, isPTPrescaledWithSUV, actorIsA, getViewportsWithImageURI, getClosestStackImageIndexForPoint, getCurrentVolumeViewportSlice, calculateViewportsSpatialRegistration, spatialRegistrationMetadataProvider, getViewportImageCornersInWorld, hasNaNValues, applyPreset, deepMerge, PointsManager, getScalingParameters, colormap, getImageLegacy, ProgressiveIterator, decimate, imageRetrieveMetadataProvider, transferFunctionUtils, updateVTKImageDataWithCornerstoneImage, sortImageIdsAndGetSpacing, makeVolumeMetadata, isValidVolume, genericMetadataProvider, isVideoTransferSyntax, HistoryMemo, generateVolumePropsFromImageIds, getBufferConfiguration, VoxelManager, RLEVoxelMap, convertStackToVolumeViewport, convertVolumeToStackViewport, roundNumber, roundToPrecision, getViewportImageIds, getRandomSampleFromArray, getVolumeId, color, hasFloatScalingParameters, getDynamicVolumeInfo, autoLoad, scaleArray, deepClone, splitImageIdsBy4DTags, pointInShapeCallback, deepEqual, jumpToSlice, scroll, clip, transformWorldToIndexContinuous, createSubVolume, getVolumeDirectionVectors, calculateSpacingBetweenImageIds, getImageDataMetadata, buildMetadata, calculateNeighborhoodStats, getPixelSpacingInformation, asArray, };
100
+ export { FrameRange, eventListener, csUtils as invertRgbTransferFunction, createSigmoidRGBTransferFunction, getVoiFromSigmoidRGBTransferFunction, createLinearRGBTransferFunction, scaleRgbTransferFunction, triggerEvent, imageIdToURI, fnv1aHash, calibratedPixelSpacingMetadataProvider, clamp, uuidv4, getMinMax, getRuntimeId, isOpposite, getViewportModality, windowLevel, convertToGrayscale, getClosestImageId, getSpacingInNormalDirection, getTargetVolumeAndSpacingInNormalDir, getVolumeActorCorners, indexWithinDimensions, getVolumeViewportsContainingSameVolumes, getViewportsWithVolumeId, transformWorldToIndex, transformIndexToWorld, loadImageToCanvas, renderToCanvasCPU, renderToCanvasGPU, worldToImageCoords, imageToWorldCoords, getVolumeSliceRangeInfo, getVolumeViewportScrollInfo, getSliceRange, snapFocalPointToSlice, getImageSliceDataForVolumeViewport, isImageActor, isPTPrescaledWithSUV, actorIsA, getViewportsWithImageURI, getClosestStackImageIndexForPoint, getCurrentVolumeViewportSlice, calculateViewportsSpatialRegistration, spatialRegistrationMetadataProvider, getViewportImageCornersInWorld, hasNaNValues, applyPreset, deepMerge, PointsManager, getScalingParameters, colormap, getImageLegacy, ProgressiveIterator, decimate, imageRetrieveMetadataProvider, transferFunctionUtils, updateVTKImageDataWithCornerstoneImage, sortImageIdsAndGetSpacing, makeVolumeMetadata, isValidVolume, genericMetadataProvider, isVideoTransferSyntax, HistoryMemo, generateVolumePropsFromImageIds, getBufferConfiguration, VoxelManager, RLEVoxelMap, convertStackToVolumeViewport, convertVolumeToStackViewport, roundNumber, roundToPrecision, getViewportImageIds, getRandomSampleFromArray, getVolumeId, color, hasFloatScalingParameters, getDynamicVolumeInfo, autoLoad, scaleArray, deepClone, splitImageIdsBy4DTags, pointInShapeCallback, deepEqual, jumpToSlice, scroll, clip, transformWorldToIndexContinuous, createSubVolume, getVolumeDirectionVectors, calculateSpacingBetweenImageIds, getImageDataMetadata, buildMetadata, calculateNeighborhoodStats, asArray, };
@@ -93,9 +93,9 @@ import getVolumeDirectionVectors from './getVolumeDirectionVectors';
93
93
  import calculateSpacingBetweenImageIds from './calculateSpacingBetweenImageIds';
94
94
  export * as logger from './logger';
95
95
  import { calculateNeighborhoodStats } from './calculateNeighborhoodStats';
96
- import getPixelSpacingInformation from './getPixelSpacingInformation';
96
+ export * from './getPixelSpacingInformation';
97
97
  import { asArray } from './asArray';
98
98
  export { updatePlaneRestriction } from './updatePlaneRestriction';
99
99
  const getViewportModality = (viewport, volumeId) => _getViewportModality(viewport, volumeId, cache.getVolume);
100
100
  export * from './isEqual';
101
- export { FrameRange, eventListener, csUtils as invertRgbTransferFunction, createSigmoidRGBTransferFunction, getVoiFromSigmoidRGBTransferFunction, createLinearRGBTransferFunction, scaleRgbTransferFunction, triggerEvent, imageIdToURI, fnv1aHash, calibratedPixelSpacingMetadataProvider, clamp, uuidv4, getMinMax, getRuntimeId, isOpposite, getViewportModality, windowLevel, convertToGrayscale, getClosestImageId, getSpacingInNormalDirection, getTargetVolumeAndSpacingInNormalDir, getVolumeActorCorners, indexWithinDimensions, getVolumeViewportsContainingSameVolumes, getViewportsWithVolumeId, transformWorldToIndex, transformIndexToWorld, loadImageToCanvas, renderToCanvasCPU, renderToCanvasGPU, worldToImageCoords, imageToWorldCoords, getVolumeSliceRangeInfo, getVolumeViewportScrollInfo, getSliceRange, snapFocalPointToSlice, getImageSliceDataForVolumeViewport, isImageActor, isPTPrescaledWithSUV, actorIsA, getViewportsWithImageURI, getClosestStackImageIndexForPoint, getCurrentVolumeViewportSlice, calculateViewportsSpatialRegistration, spatialRegistrationMetadataProvider, getViewportImageCornersInWorld, hasNaNValues, applyPreset, deepMerge, PointsManager, getScalingParameters, colormap, getImageLegacy, ProgressiveIterator, decimate, imageRetrieveMetadataProvider, transferFunctionUtils, updateVTKImageDataWithCornerstoneImage, sortImageIdsAndGetSpacing, makeVolumeMetadata, isValidVolume, genericMetadataProvider, isVideoTransferSyntax, HistoryMemo, generateVolumePropsFromImageIds, getBufferConfiguration, VoxelManager, RLEVoxelMap, convertStackToVolumeViewport, convertVolumeToStackViewport, roundNumber, roundToPrecision, getViewportImageIds, getRandomSampleFromArray, getVolumeId, color, hasFloatScalingParameters, getDynamicVolumeInfo, autoLoad, scaleArray, deepClone, splitImageIdsBy4DTags, pointInShapeCallback, deepEqual, jumpToSlice, scroll, clip, transformWorldToIndexContinuous, createSubVolume, getVolumeDirectionVectors, calculateSpacingBetweenImageIds, getImageDataMetadata, buildMetadata, calculateNeighborhoodStats, getPixelSpacingInformation, asArray, };
101
+ export { FrameRange, eventListener, csUtils as invertRgbTransferFunction, createSigmoidRGBTransferFunction, getVoiFromSigmoidRGBTransferFunction, createLinearRGBTransferFunction, scaleRgbTransferFunction, triggerEvent, imageIdToURI, fnv1aHash, calibratedPixelSpacingMetadataProvider, clamp, uuidv4, getMinMax, getRuntimeId, isOpposite, getViewportModality, windowLevel, convertToGrayscale, getClosestImageId, getSpacingInNormalDirection, getTargetVolumeAndSpacingInNormalDir, getVolumeActorCorners, indexWithinDimensions, getVolumeViewportsContainingSameVolumes, getViewportsWithVolumeId, transformWorldToIndex, transformIndexToWorld, loadImageToCanvas, renderToCanvasCPU, renderToCanvasGPU, worldToImageCoords, imageToWorldCoords, getVolumeSliceRangeInfo, getVolumeViewportScrollInfo, getSliceRange, snapFocalPointToSlice, getImageSliceDataForVolumeViewport, isImageActor, isPTPrescaledWithSUV, actorIsA, getViewportsWithImageURI, getClosestStackImageIndexForPoint, getCurrentVolumeViewportSlice, calculateViewportsSpatialRegistration, spatialRegistrationMetadataProvider, getViewportImageCornersInWorld, hasNaNValues, applyPreset, deepMerge, PointsManager, getScalingParameters, colormap, getImageLegacy, ProgressiveIterator, decimate, imageRetrieveMetadataProvider, transferFunctionUtils, updateVTKImageDataWithCornerstoneImage, sortImageIdsAndGetSpacing, makeVolumeMetadata, isValidVolume, genericMetadataProvider, isVideoTransferSyntax, HistoryMemo, generateVolumePropsFromImageIds, getBufferConfiguration, VoxelManager, RLEVoxelMap, convertStackToVolumeViewport, convertVolumeToStackViewport, roundNumber, roundToPrecision, getViewportImageIds, getRandomSampleFromArray, getVolumeId, color, hasFloatScalingParameters, getDynamicVolumeInfo, autoLoad, scaleArray, deepClone, splitImageIdsBy4DTags, pointInShapeCallback, deepEqual, jumpToSlice, scroll, clip, transformWorldToIndexContinuous, createSubVolume, getVolumeDirectionVectors, calculateSpacingBetweenImageIds, getImageDataMetadata, buildMetadata, calculateNeighborhoodStats, asArray, };
@@ -1 +1 @@
1
- export declare const version = "4.12.4";
1
+ export declare const version = "4.12.6";
@@ -1 +1 @@
1
- export const version = '4.12.4';
1
+ export const version = '4.12.6';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cornerstonejs/core",
3
- "version": "4.12.4",
3
+ "version": "4.12.6",
4
4
  "description": "Cornerstone3D Core",
5
5
  "module": "./dist/esm/index.js",
6
6
  "types": "./dist/esm/index.d.ts",
@@ -97,5 +97,5 @@
97
97
  "type": "individual",
98
98
  "url": "https://ohif.org/donate"
99
99
  },
100
- "gitHead": "709d5a61b1acccf6a2dd8f9193907f98b5ed6c4c"
100
+ "gitHead": "67da5ec35cb711e4310f0f1971bd8ed090377338"
101
101
  }