@cornerstonejs/core 5.4.12 → 5.4.14

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.
@@ -104,6 +104,8 @@ import getVolumeViewReferenceId from './getVolumeViewReferenceId.js';
104
104
  import calculateSpacingBetweenImageIds from './calculateSpacingBetweenImageIds.js';
105
105
  export * as logger from './logger.js';
106
106
  import { calculateNeighborhoodStats } from './calculateNeighborhoodStats.js';
107
+ import { mapScalarToViewportVoiIntensity, mapViewportVoiIntensityToScalar, mapMappedBandToRawRange } from './viewportVoiIntensityMapping.js';
108
+ export type { ViewportVoiMappingProps } from './viewportVoiIntensityMapping.js';
107
109
  export * from './getPixelSpacingInformation.js';
108
110
  export * from './getPlaneCubeIntersectionDimensions.js';
109
111
  export * from './rotateToViewCoordinates.js';
@@ -114,4 +116,4 @@ export { updatePlaneRestriction } from './updatePlaneRestriction.js';
114
116
  declare const getViewportModality: (viewport: IViewport, volumeId?: string) => string;
115
117
  declare const getScalingDescriptor: (viewport: IViewport, targetId?: string) => import("../types/index.js").ScalingDescriptor;
116
118
  export * from './isEqual.js';
117
- export { FrameRange, eventListener, csUtils as invertRgbTransferFunction, createSigmoidRGBTransferFunction, getVoiFromSigmoidRGBTransferFunction, createLinearRGBTransferFunction, scaleRgbTransferFunction, triggerEvent, imageIdToURI, fnv1aHash, calibratedPixelSpacingMetadataProvider, clamp, uuidv4, getMinMax, clonePoint3, hasOwn, getRuntimeId, getVOIRangeFromWindowLevel, isOpposite, getViewportModality, getScalingDescriptor, resolveGenericViewportVolumeId, windowLevel, convertToGrayscale, convertColorArrayToRgbString, getClosestImageId, getSpacingInNormalDirection, getTargetVolumeAndSpacingInNormalDir, getVolumeActorCorners, indexWithinDimensions, indexAlmostWithinDimensions, 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, genericViewportDisplaySetMetadataProvider, 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, handleMultiframe4D, generateFrameImageId, pointInShapeCallback, ECGUtilities, VideoUtilities, WSIUtilities, deepEqual, jumpToSlice, scroll, clip, transformWorldToIndexContinuous, createSubVolume, getAcquisitionPlaneOrientation, getVolumeDirectionVectors, getVolumeViewReferenceId, calculateSpacingBetweenImageIds, getImageDataMetadata, buildMetadata, calculateNeighborhoodStats, asArray, viewportSupportsImageSlices, viewportSupportsStackCalibration, viewportSupportsStackCompatibility, viewportSupportsVolumeActors, viewportSupportsVolumeCompatibility, viewportSupportsVolumeId, viewportSupportsVolumeURI, isGenericViewport, viewportSupportsDisplaySetPresentation, getViewportContentMode, viewportIsInVolumeMode, viewportIsInStackMode, getNormalizedAspectRatio, };
119
+ export { FrameRange, eventListener, csUtils as invertRgbTransferFunction, createSigmoidRGBTransferFunction, getVoiFromSigmoidRGBTransferFunction, createLinearRGBTransferFunction, scaleRgbTransferFunction, triggerEvent, imageIdToURI, fnv1aHash, calibratedPixelSpacingMetadataProvider, clamp, uuidv4, getMinMax, clonePoint3, hasOwn, getRuntimeId, getVOIRangeFromWindowLevel, isOpposite, getViewportModality, getScalingDescriptor, resolveGenericViewportVolumeId, windowLevel, convertToGrayscale, convertColorArrayToRgbString, getClosestImageId, getSpacingInNormalDirection, getTargetVolumeAndSpacingInNormalDir, getVolumeActorCorners, indexWithinDimensions, indexAlmostWithinDimensions, 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, genericViewportDisplaySetMetadataProvider, 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, handleMultiframe4D, generateFrameImageId, pointInShapeCallback, ECGUtilities, VideoUtilities, WSIUtilities, deepEqual, jumpToSlice, scroll, clip, transformWorldToIndexContinuous, createSubVolume, getAcquisitionPlaneOrientation, getVolumeDirectionVectors, getVolumeViewReferenceId, calculateSpacingBetweenImageIds, getImageDataMetadata, buildMetadata, calculateNeighborhoodStats, mapScalarToViewportVoiIntensity, mapViewportVoiIntensityToScalar, mapMappedBandToRawRange, asArray, viewportSupportsImageSlices, viewportSupportsStackCalibration, viewportSupportsStackCompatibility, viewportSupportsVolumeActors, viewportSupportsVolumeCompatibility, viewportSupportsVolumeId, viewportSupportsVolumeURI, isGenericViewport, viewportSupportsDisplaySetPresentation, getViewportContentMode, viewportIsInVolumeMode, viewportIsInStackMode, getNormalizedAspectRatio, };
@@ -106,6 +106,7 @@ import getVolumeViewReferenceId from './getVolumeViewReferenceId.js';
106
106
  import calculateSpacingBetweenImageIds from './calculateSpacingBetweenImageIds.js';
107
107
  export * as logger from './logger.js';
108
108
  import { calculateNeighborhoodStats } from './calculateNeighborhoodStats.js';
109
+ import { mapScalarToViewportVoiIntensity, mapViewportVoiIntensityToScalar, mapMappedBandToRawRange, } from './viewportVoiIntensityMapping.js';
109
110
  export * from './getPixelSpacingInformation.js';
110
111
  export * from './getPlaneCubeIntersectionDimensions.js';
111
112
  export * from './rotateToViewCoordinates.js';
@@ -116,4 +117,4 @@ export { updatePlaneRestriction } from './updatePlaneRestriction.js';
116
117
  const getViewportModality = (viewport, volumeId) => _getViewportModality(viewport, volumeId, cache.getVolume);
117
118
  const getScalingDescriptor = (viewport, targetId) => _getScalingDescriptor(viewport, targetId, cache.getVolume);
118
119
  export * from './isEqual.js';
119
- export { FrameRange, eventListener, csUtils as invertRgbTransferFunction, createSigmoidRGBTransferFunction, getVoiFromSigmoidRGBTransferFunction, createLinearRGBTransferFunction, scaleRgbTransferFunction, triggerEvent, imageIdToURI, fnv1aHash, calibratedPixelSpacingMetadataProvider, clamp, uuidv4, getMinMax, clonePoint3, hasOwn, getRuntimeId, getVOIRangeFromWindowLevel, isOpposite, getViewportModality, getScalingDescriptor, resolveGenericViewportVolumeId, windowLevel, convertToGrayscale, convertColorArrayToRgbString, getClosestImageId, getSpacingInNormalDirection, getTargetVolumeAndSpacingInNormalDir, getVolumeActorCorners, indexWithinDimensions, indexAlmostWithinDimensions, 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, genericViewportDisplaySetMetadataProvider, 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, handleMultiframe4D, generateFrameImageId, pointInShapeCallback, ECGUtilities, VideoUtilities, WSIUtilities, deepEqual, jumpToSlice, scroll, clip, transformWorldToIndexContinuous, createSubVolume, getAcquisitionPlaneOrientation, getVolumeDirectionVectors, getVolumeViewReferenceId, calculateSpacingBetweenImageIds, getImageDataMetadata, buildMetadata, calculateNeighborhoodStats, asArray, viewportSupportsImageSlices, viewportSupportsStackCalibration, viewportSupportsStackCompatibility, viewportSupportsVolumeActors, viewportSupportsVolumeCompatibility, viewportSupportsVolumeId, viewportSupportsVolumeURI, isGenericViewport, viewportSupportsDisplaySetPresentation, getViewportContentMode, viewportIsInVolumeMode, viewportIsInStackMode, getNormalizedAspectRatio, };
120
+ export { FrameRange, eventListener, csUtils as invertRgbTransferFunction, createSigmoidRGBTransferFunction, getVoiFromSigmoidRGBTransferFunction, createLinearRGBTransferFunction, scaleRgbTransferFunction, triggerEvent, imageIdToURI, fnv1aHash, calibratedPixelSpacingMetadataProvider, clamp, uuidv4, getMinMax, clonePoint3, hasOwn, getRuntimeId, getVOIRangeFromWindowLevel, isOpposite, getViewportModality, getScalingDescriptor, resolveGenericViewportVolumeId, windowLevel, convertToGrayscale, convertColorArrayToRgbString, getClosestImageId, getSpacingInNormalDirection, getTargetVolumeAndSpacingInNormalDir, getVolumeActorCorners, indexWithinDimensions, indexAlmostWithinDimensions, 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, genericViewportDisplaySetMetadataProvider, 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, handleMultiframe4D, generateFrameImageId, pointInShapeCallback, ECGUtilities, VideoUtilities, WSIUtilities, deepEqual, jumpToSlice, scroll, clip, transformWorldToIndexContinuous, createSubVolume, getAcquisitionPlaneOrientation, getVolumeDirectionVectors, getVolumeViewReferenceId, calculateSpacingBetweenImageIds, getImageDataMetadata, buildMetadata, calculateNeighborhoodStats, mapScalarToViewportVoiIntensity, mapViewportVoiIntensityToScalar, mapMappedBandToRawRange, asArray, viewportSupportsImageSlices, viewportSupportsStackCalibration, viewportSupportsStackCompatibility, viewportSupportsVolumeActors, viewportSupportsVolumeCompatibility, viewportSupportsVolumeId, viewportSupportsVolumeURI, isGenericViewport, viewportSupportsDisplaySetPresentation, getViewportContentMode, viewportIsInVolumeMode, viewportIsInStackMode, getNormalizedAspectRatio, };
@@ -1,3 +1,4 @@
1
1
  import { logging } from '@cornerstonejs/utils';
2
2
  export declare const getRootLogger: typeof logging.getRootLogger, getLogger: typeof logging.getLogger, cs3dLog: logging.Logger, workerLog: logging.Logger, coreLog: logging.Logger, toolsLog: logging.Logger, loaderLog: logging.Logger, aiLog: logging.Logger, examplesLog: logging.Logger, dicomConsistencyLog: logging.Logger, imageConsistencyLog: logging.Logger;
3
3
  export type Logger = logging.Logger;
4
+ export declare const growCutLog: logging.Logger;
@@ -1,2 +1,3 @@
1
1
  import { logging } from '@cornerstonejs/utils';
2
2
  export const { getRootLogger, getLogger, cs3dLog, workerLog, coreLog, toolsLog, loaderLog, aiLog, examplesLog, dicomConsistencyLog, imageConsistencyLog, } = logging;
3
+ export const growCutLog = toolsLog.getLogger('growCut');
@@ -0,0 +1,15 @@
1
+ import VOILUTFunctionType from '../enums/VOILUTFunctionType.js';
2
+ export type ViewportVoiMappingProps = {
3
+ voiRange: {
4
+ lower: number;
5
+ upper: number;
6
+ };
7
+ VOILUTFunction?: string | VOILUTFunctionType;
8
+ invert?: boolean;
9
+ };
10
+ export declare function mapScalarToViewportVoiIntensity(value: number, props: ViewportVoiMappingProps): number;
11
+ export declare function mapViewportVoiIntensityToScalar(mapped01: number, props: ViewportVoiMappingProps): number;
12
+ export declare function mapMappedBandToRawRange(mappedMin: number, mappedMax: number, props: ViewportVoiMappingProps): {
13
+ rawMin: number;
14
+ rawMax: number;
15
+ };
@@ -0,0 +1,53 @@
1
+ import VOILUTFunctionType from '../enums/VOILUTFunctionType.js';
2
+ import { logit } from './logit.js';
3
+ import * as windowLevelUtil from './windowLevel.js';
4
+ const Y_EPS = 1e-6;
5
+ export function mapScalarToViewportVoiIntensity(value, props) {
6
+ const { lower, upper } = props.voiRange;
7
+ const span = upper - lower;
8
+ const fn = props.VOILUTFunction;
9
+ const applyInvert = (y) => (props.invert === true ? 1 - y : y);
10
+ if (fn === VOILUTFunctionType.SAMPLED_SIGMOID || fn === 'SIGMOID') {
11
+ const { windowCenter, windowWidth } = windowLevelUtil.toWindowLevel(lower, upper);
12
+ const w = Math.max(Math.abs(windowWidth), 1e-12);
13
+ return applyInvert(1 / (1 + Math.exp((-4 * (value - windowCenter)) / w)));
14
+ }
15
+ if (span === 0 || !Number.isFinite(span)) {
16
+ return applyInvert(0);
17
+ }
18
+ return applyInvert(clamp01((value - lower) / span));
19
+ }
20
+ export function mapViewportVoiIntensityToScalar(mapped01, props) {
21
+ const { lower, upper } = props.voiRange;
22
+ const fn = props.VOILUTFunction;
23
+ const y = props.invert === true ? clamp01(1 - clamp01(mapped01)) : clamp01(mapped01);
24
+ if (fn === VOILUTFunctionType.SAMPLED_SIGMOID || fn === 'SIGMOID') {
25
+ const { windowCenter, windowWidth } = windowLevelUtil.toWindowLevel(lower, upper);
26
+ const yy = clamp(y, Y_EPS, 1 - Y_EPS);
27
+ return logit(yy, windowCenter, windowWidth);
28
+ }
29
+ const span = upper - lower;
30
+ if (span === 0 || !Number.isFinite(span)) {
31
+ return lower;
32
+ }
33
+ return lower + y * span;
34
+ }
35
+ export function mapMappedBandToRawRange(mappedMin, mappedMax, props) {
36
+ const a = Math.min(mappedMin, mappedMax);
37
+ const b = Math.max(mappedMin, mappedMax);
38
+ const rawAtA = mapViewportVoiIntensityToScalar(a, props);
39
+ const rawAtB = mapViewportVoiIntensityToScalar(b, props);
40
+ return {
41
+ rawMin: Math.min(rawAtA, rawAtB),
42
+ rawMax: Math.max(rawAtA, rawAtB),
43
+ };
44
+ }
45
+ function clamp01(x) {
46
+ if (!Number.isFinite(x)) {
47
+ return 0;
48
+ }
49
+ return clamp(x, 0, 1);
50
+ }
51
+ function clamp(x, lo, hi) {
52
+ return Math.min(hi, Math.max(lo, x));
53
+ }
@@ -1 +1 @@
1
- export declare const version = "5.4.12";
1
+ export declare const version = "5.4.14";
@@ -1 +1 @@
1
- export const version = '5.4.12';
1
+ export const version = '5.4.14';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cornerstonejs/core",
3
- "version": "5.4.12",
3
+ "version": "5.4.14",
4
4
  "description": "Cornerstone3D Core",
5
5
  "module": "./dist/esm/index.js",
6
6
  "types": "./dist/esm/index.d.ts",
@@ -85,18 +85,18 @@
85
85
  "prepublishOnly": "pnpm run build"
86
86
  },
87
87
  "dependencies": {
88
- "@cornerstonejs/utils": "5.4.12",
88
+ "@cornerstonejs/utils": "5.4.14",
89
89
  "@kitware/vtk.js": "35.5.3",
90
90
  "comlink": "4.4.2",
91
91
  "gl-matrix": "3.4.3",
92
92
  "loglevel": "1.9.2"
93
93
  },
94
94
  "devDependencies": {
95
- "@cornerstonejs/metadata": "5.4.12"
95
+ "@cornerstonejs/metadata": "5.4.14"
96
96
  },
97
97
  "peerDependencies": {
98
- "@cornerstonejs/metadata": "5.4.12",
99
- "@cornerstonejs/utils": "5.4.12"
98
+ "@cornerstonejs/metadata": "5.4.14",
99
+ "@cornerstonejs/utils": "5.4.14"
100
100
  },
101
101
  "contributors": [
102
102
  {
@@ -109,5 +109,5 @@
109
109
  "type": "individual",
110
110
  "url": "https://ohif.org/donate"
111
111
  },
112
- "gitHead": "0b67d01ebc033cc338c3612c1237b5d94025cac2"
112
+ "gitHead": "44424ece1744c4ee1fdd4c6304abc9005bf3bd39"
113
113
  }