@cornerstonejs/core 2.0.0-beta.1 → 2.0.0-beta.2

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 (116) hide show
  1. package/dist/cjs/RenderingEngine/BaseVolumeViewport.d.ts +4 -1
  2. package/dist/cjs/RenderingEngine/BaseVolumeViewport.js +28 -2
  3. package/dist/cjs/RenderingEngine/BaseVolumeViewport.js.map +1 -1
  4. package/dist/cjs/RenderingEngine/RenderingEngine.js.map +1 -1
  5. package/dist/cjs/RenderingEngine/StackViewport.d.ts +1 -0
  6. package/dist/cjs/RenderingEngine/StackViewport.js +15 -6
  7. package/dist/cjs/RenderingEngine/StackViewport.js.map +1 -1
  8. package/dist/cjs/RenderingEngine/VolumeViewport.d.ts +2 -0
  9. package/dist/cjs/RenderingEngine/VolumeViewport.js +17 -0
  10. package/dist/cjs/RenderingEngine/VolumeViewport.js.map +1 -1
  11. package/dist/cjs/RenderingEngine/VolumeViewport3D.d.ts +1 -0
  12. package/dist/cjs/RenderingEngine/VolumeViewport3D.js +3 -0
  13. package/dist/cjs/RenderingEngine/VolumeViewport3D.js.map +1 -1
  14. package/dist/cjs/RenderingEngine/helpers/cpuFallback/rendering/getVOILut.js +3 -1
  15. package/dist/cjs/RenderingEngine/helpers/cpuFallback/rendering/getVOILut.js.map +1 -1
  16. package/dist/cjs/RenderingEngine/helpers/cpuFallback/rendering/renderColorImage.js +3 -2
  17. package/dist/cjs/RenderingEngine/helpers/cpuFallback/rendering/renderColorImage.js.map +1 -1
  18. package/dist/cjs/RenderingEngine/helpers/setVolumesForViewports.js.map +1 -1
  19. package/dist/cjs/Settings.js +4 -2
  20. package/dist/cjs/Settings.js.map +1 -1
  21. package/dist/cjs/cache/classes/ImageVolume.js +2 -3
  22. package/dist/cjs/cache/classes/ImageVolume.js.map +1 -1
  23. package/dist/cjs/init.d.ts +1 -1
  24. package/dist/cjs/init.js +1 -1
  25. package/dist/cjs/init.js.map +1 -1
  26. package/dist/cjs/loaders/volumeLoader.d.ts +1 -1
  27. package/dist/cjs/loaders/volumeLoader.js.map +1 -1
  28. package/dist/cjs/requestPool/requestPoolManager.js +1 -1
  29. package/dist/cjs/requestPool/requestPoolManager.js.map +1 -1
  30. package/dist/cjs/types/AffineMatrix.d.ts +27 -0
  31. package/dist/cjs/types/AffineMatrix.js +3 -0
  32. package/dist/cjs/types/AffineMatrix.js.map +1 -0
  33. package/dist/cjs/types/IImage.d.ts +1 -0
  34. package/dist/cjs/types/IVolumeViewport.d.ts +2 -0
  35. package/dist/cjs/types/Mat3.d.ts +1 -11
  36. package/dist/cjs/types/ViewportProperties.d.ts +2 -1
  37. package/dist/cjs/types/index.d.ts +2 -1
  38. package/dist/cjs/utilities/calculateViewportsSpatialRegistration.js +9 -14
  39. package/dist/cjs/utilities/calculateViewportsSpatialRegistration.js.map +1 -1
  40. package/dist/cjs/utilities/getClosestStackImageIndexForPoint.js +12 -6
  41. package/dist/cjs/utilities/getClosestStackImageIndexForPoint.js.map +1 -1
  42. package/dist/cjs/utilities/getRuntimeId.js +2 -1
  43. package/dist/cjs/utilities/getRuntimeId.js.map +1 -1
  44. package/dist/cjs/utilities/windowLevel.js +4 -4
  45. package/dist/cjs/utilities/windowLevel.js.map +1 -1
  46. package/dist/esm/RenderingEngine/BaseVolumeViewport.d.ts +4 -1
  47. package/dist/esm/RenderingEngine/BaseVolumeViewport.js +28 -2
  48. package/dist/esm/RenderingEngine/BaseVolumeViewport.js.map +1 -1
  49. package/dist/esm/RenderingEngine/RenderingEngine.js.map +1 -1
  50. package/dist/esm/RenderingEngine/StackViewport.d.ts +1 -0
  51. package/dist/esm/RenderingEngine/StackViewport.js +15 -6
  52. package/dist/esm/RenderingEngine/StackViewport.js.map +1 -1
  53. package/dist/esm/RenderingEngine/VolumeViewport.d.ts +2 -0
  54. package/dist/esm/RenderingEngine/VolumeViewport.js +17 -0
  55. package/dist/esm/RenderingEngine/VolumeViewport.js.map +1 -1
  56. package/dist/esm/RenderingEngine/VolumeViewport3D.d.ts +1 -0
  57. package/dist/esm/RenderingEngine/VolumeViewport3D.js +3 -0
  58. package/dist/esm/RenderingEngine/VolumeViewport3D.js.map +1 -1
  59. package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/getVOILut.js +3 -1
  60. package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/getVOILut.js.map +1 -1
  61. package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/renderColorImage.js +3 -2
  62. package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/renderColorImage.js.map +1 -1
  63. package/dist/esm/RenderingEngine/helpers/setVolumesForViewports.js.map +1 -1
  64. package/dist/esm/Settings.js +4 -2
  65. package/dist/esm/Settings.js.map +1 -1
  66. package/dist/esm/cache/classes/ImageVolume.js +2 -3
  67. package/dist/esm/cache/classes/ImageVolume.js.map +1 -1
  68. package/dist/esm/init.d.ts +1 -1
  69. package/dist/esm/init.js +1 -1
  70. package/dist/esm/init.js.map +1 -1
  71. package/dist/esm/loaders/volumeLoader.d.ts +1 -1
  72. package/dist/esm/loaders/volumeLoader.js.map +1 -1
  73. package/dist/esm/requestPool/requestPoolManager.js +1 -1
  74. package/dist/esm/requestPool/requestPoolManager.js.map +1 -1
  75. package/dist/esm/types/AffineMatrix.d.ts +27 -0
  76. package/dist/esm/types/AffineMatrix.js +2 -0
  77. package/dist/esm/types/AffineMatrix.js.map +1 -0
  78. package/dist/esm/types/IImage.d.ts +1 -0
  79. package/dist/esm/types/IVolumeViewport.d.ts +2 -0
  80. package/dist/esm/types/Mat3.d.ts +1 -11
  81. package/dist/esm/types/ViewportProperties.d.ts +2 -1
  82. package/dist/esm/types/index.d.ts +2 -1
  83. package/dist/esm/utilities/calculateViewportsSpatialRegistration.js +9 -14
  84. package/dist/esm/utilities/calculateViewportsSpatialRegistration.js.map +1 -1
  85. package/dist/esm/utilities/getClosestStackImageIndexForPoint.js +12 -6
  86. package/dist/esm/utilities/getClosestStackImageIndexForPoint.js.map +1 -1
  87. package/dist/esm/utilities/getRuntimeId.js +2 -1
  88. package/dist/esm/utilities/getRuntimeId.js.map +1 -1
  89. package/dist/esm/utilities/windowLevel.js +4 -4
  90. package/dist/esm/utilities/windowLevel.js.map +1 -1
  91. package/dist/umd/index.js +1 -1
  92. package/dist/umd/index.js.map +1 -1
  93. package/package.json +2 -2
  94. package/src/RenderingEngine/BaseVolumeViewport.ts +55 -1
  95. package/src/RenderingEngine/RenderingEngine.ts +1 -0
  96. package/src/RenderingEngine/StackViewport.ts +23 -7
  97. package/src/RenderingEngine/VolumeViewport.ts +34 -0
  98. package/src/RenderingEngine/VolumeViewport3D.ts +4 -0
  99. package/src/RenderingEngine/helpers/cpuFallback/rendering/getVOILut.ts +9 -1
  100. package/src/RenderingEngine/helpers/cpuFallback/rendering/renderColorImage.ts +5 -3
  101. package/src/RenderingEngine/helpers/setVolumesForViewports.ts +3 -1
  102. package/src/Settings.ts +6 -2
  103. package/src/cache/classes/ImageVolume.ts +3 -3
  104. package/src/init.ts +1 -1
  105. package/src/loaders/volumeLoader.ts +2 -2
  106. package/src/requestPool/requestPoolManager.ts +1 -1
  107. package/src/types/AffineMatrix.ts +8 -0
  108. package/src/types/IImage.ts +2 -0
  109. package/src/types/IVolumeViewport.ts +8 -0
  110. package/src/types/Mat3.ts +3 -11
  111. package/src/types/ViewportProperties.ts +3 -1
  112. package/src/types/index.ts +2 -0
  113. package/src/utilities/calculateViewportsSpatialRegistration.ts +21 -28
  114. package/src/utilities/getClosestStackImageIndexForPoint.ts +18 -6
  115. package/src/utilities/getRuntimeId.ts +3 -1
  116. package/src/utilities/windowLevel.ts +13 -4
@@ -128,7 +128,7 @@ class RequestPoolManager {
128
128
  const priorities = Object.keys(this.requestPool[type])
129
129
  .map(Number)
130
130
  .filter((priority) => this.requestPool[type][priority].length)
131
- .sort();
131
+ .sort((a, b) => a - b);
132
132
  return priorities;
133
133
  }
134
134
  getRequestPool() {
@@ -1 +1 @@
1
- {"version":3,"file":"requestPoolManager.js","sourceRoot":"","sources":["../../../src/requestPool/requestPoolManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"requestPoolManager.js","sourceRoot":"","sources":["../../../src/requestPool/requestPoolManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ declare type AffineMatrix = [
2
+ [
3
+ number,
4
+ number,
5
+ number,
6
+ number
7
+ ],
8
+ [
9
+ number,
10
+ number,
11
+ number,
12
+ number
13
+ ],
14
+ [
15
+ number,
16
+ number,
17
+ number,
18
+ number
19
+ ],
20
+ [
21
+ number,
22
+ number,
23
+ number,
24
+ number
25
+ ]
26
+ ];
27
+ export type { AffineMatrix };
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=AffineMatrix.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AffineMatrix.js","sourceRoot":"","sources":["../../../src/types/AffineMatrix.ts"],"names":[],"mappings":""}
@@ -36,6 +36,7 @@ interface IImage {
36
36
  rowPixelSpacing: number;
37
37
  sliceThickness?: number;
38
38
  invert: boolean;
39
+ photometricInterpretation?: string;
39
40
  sizeInBytes: number;
40
41
  modalityLUT?: CPUFallbackLUT;
41
42
  voiLUT?: CPUFallbackLUT;
@@ -12,6 +12,7 @@ export default interface IVolumeViewport extends IViewport {
12
12
  getProperties: () => VolumeViewportProperties;
13
13
  canvasToWorld: (canvasPos: Point2) => Point3;
14
14
  worldToCanvas: (worldPos: Point3) => Point2;
15
+ getImageIds: (volumeId?: string) => string[];
15
16
  getCurrentImageIdIndex: () => number;
16
17
  hasVolumeId: (volumeId: string) => boolean;
17
18
  hasImageURI: (imageURI: string) => boolean;
@@ -29,4 +30,5 @@ export default interface IVolumeViewport extends IViewport {
29
30
  getSlabThickness(): number;
30
31
  getImageData(volumeId?: string): IImageData | undefined;
31
32
  setOrientation(orientation: OrientationAxis): void;
33
+ resetProperties(volumeId?: string): void;
32
34
  }
@@ -1,12 +1,2 @@
1
- declare type Mat3 = [
2
- number,
3
- number,
4
- number,
5
- number,
6
- number,
7
- number,
8
- number,
9
- number,
10
- number
11
- ];
1
+ declare type Mat3 = [number, number, number, number, number, number, number, number, number] | Float32Array;
12
2
  export default Mat3;
@@ -1,8 +1,9 @@
1
- import { VOILUTFunctionType } from '../enums';
1
+ import { InterpolationType, VOILUTFunctionType } from '../enums';
2
2
  import { VOIRange } from './voi';
3
3
  declare type ViewportProperties = {
4
4
  voiRange?: VOIRange;
5
5
  VOILUTFunction?: VOILUTFunctionType;
6
6
  invert?: boolean;
7
+ interpolationType?: InterpolationType;
7
8
  };
8
9
  export type { ViewportProperties };
@@ -66,4 +66,5 @@ import type { ViewportProperties } from './ViewportProperties';
66
66
  import type { PixelDataTypedArray } from './PixelDataTypedArray';
67
67
  import type { ImagePixelModule } from './ImagePixelModule';
68
68
  import type { ImagePlaneModule } from './ImagePlaneModule';
69
- export type { Cornerstone3DConfig, ICamera, IStackViewport, IVolumeViewport, IEnabledElement, ICache, IVolume, VolumeScalarData, IViewportId, IImageVolume, IDynamicImageVolume, IRenderingEngine, ScalingParameters, PTScaling, Scaling, IStreamingImageVolume, IImage, IImageData, IImageCalibration, CPUIImageData, CPUImageData, EventTypes, ImageLoaderFn, VolumeLoaderFn, IRegisterImageLoader, IStreamingVolumeProperties, IViewport, StackViewportProperties, VolumeViewportProperties, ViewportProperties, PublicViewportInput, VolumeActor, Actor, ActorEntry, IImageLoadObject, IVolumeLoadObject, IVolumeInput, VolumeInputCallback, ViewportPreset, Metadata, OrientationVectors, Point2, Point3, Point4, Mat3, Plane, ViewportInputOptions, VOIRange, VOI, DisplayArea, FlipDirection, ICachedImage, ICachedVolume, CPUFallbackEnabledElement, CPUFallbackViewport, CPUFallbackTransform, CPUFallbackColormapData, CPUFallbackViewportDisplayedArea, CPUFallbackColormapsData, CPUFallbackColormap, TransformMatrix2D, CPUFallbackLookupTable, CPUFallbackLUT, CPUFallbackRenderingTools, CustomEventType, ActorSliceRange, ImageSliceData, IGeometry, IGeometryLoadObject, ICachedGeometry, PublicContourSetData, ContourSetData, ContourData, IContourSet, IContour, RGB, ColormapPublic, ColormapRegistration, PixelDataTypedArray, ImagePixelModule, ImagePlaneModule, };
69
+ import type { AffineMatrix } from './AffineMatrix';
70
+ export type { Cornerstone3DConfig, ICamera, IStackViewport, IVolumeViewport, IEnabledElement, ICache, IVolume, VolumeScalarData, IViewportId, IImageVolume, IDynamicImageVolume, IRenderingEngine, ScalingParameters, PTScaling, Scaling, IStreamingImageVolume, IImage, IImageData, IImageCalibration, CPUIImageData, CPUImageData, EventTypes, ImageLoaderFn, VolumeLoaderFn, IRegisterImageLoader, IStreamingVolumeProperties, IViewport, StackViewportProperties, VolumeViewportProperties, ViewportProperties, PublicViewportInput, VolumeActor, Actor, ActorEntry, IImageLoadObject, IVolumeLoadObject, IVolumeInput, VolumeInputCallback, ViewportPreset, Metadata, OrientationVectors, Point2, Point3, Point4, Mat3, Plane, ViewportInputOptions, VOIRange, VOI, DisplayArea, FlipDirection, ICachedImage, ICachedVolume, CPUFallbackEnabledElement, CPUFallbackViewport, CPUFallbackTransform, CPUFallbackColormapData, CPUFallbackViewportDisplayedArea, CPUFallbackColormapsData, CPUFallbackColormap, TransformMatrix2D, CPUFallbackLookupTable, CPUFallbackLUT, CPUFallbackRenderingTools, CustomEventType, ActorSliceRange, ImageSliceData, IGeometry, IGeometryLoadObject, ICachedGeometry, PublicContourSetData, ContourSetData, ContourData, IContourSet, IContour, RGB, ColormapPublic, ColormapRegistration, PixelDataTypedArray, ImagePixelModule, ImagePlaneModule, AffineMatrix, };
@@ -1,26 +1,21 @@
1
1
  import { vec3, mat4 } from 'gl-matrix';
2
- import { StackViewport } from '../RenderingEngine';
3
2
  import spatialRegistrationMetadataProvider from './spatialRegistrationMetadataProvider';
4
3
  import { metaData } from '..';
5
- import isEqual from './isEqual';
4
+ const ALLOWED_DELTA = 0.05;
6
5
  function calculateViewportsSpatialRegistration(viewport1, viewport2) {
7
- if (!(viewport1 instanceof StackViewport) ||
8
- !(viewport2 instanceof StackViewport)) {
9
- throw new Error('calculateViewportsSpatialRegistration: Both viewports must be StackViewports, volume viewports are not supported yet');
10
- }
11
- const isSameFrameOfReference = viewport1.getFrameOfReferenceUID() === viewport2.getFrameOfReferenceUID();
12
- if (isSameFrameOfReference) {
13
- return;
14
- }
15
6
  const imageId1 = viewport1.getCurrentImageId();
16
7
  const imageId2 = viewport2.getCurrentImageId();
17
8
  const imagePlaneModule1 = metaData.get('imagePlaneModule', imageId1);
18
9
  const imagePlaneModule2 = metaData.get('imagePlaneModule', imageId2);
19
- const isSameImagePlane = imagePlaneModule1 &&
20
- imagePlaneModule2 &&
21
- isEqual(imagePlaneModule1.imageOrientationPatient, imagePlaneModule2.imageOrientationPatient);
10
+ if (!imagePlaneModule1 || !imagePlaneModule2) {
11
+ console.log('Viewport spatial registration requires image plane module');
12
+ return;
13
+ }
14
+ const { imageOrientationPatient: iop2 } = imagePlaneModule2;
15
+ const isSameImagePlane = imagePlaneModule1.imageOrientationPatient.every((v, i) => Math.abs(v - iop2[i]) < ALLOWED_DELTA);
22
16
  if (!isSameImagePlane) {
23
- throw new Error('Viewport spatial registration only supported for same orientation (hence translation only) for now');
17
+ console.log('Viewport spatial registration only supported for same orientation (hence translation only) for now', imagePlaneModule1?.imageOrientationPatient, imagePlaneModule2?.imageOrientationPatient);
18
+ return;
24
19
  }
25
20
  const imagePositionPatient1 = imagePlaneModule1.imagePositionPatient;
26
21
  const imagePositionPatient2 = imagePlaneModule2.imagePositionPatient;
@@ -1 +1 @@
1
- {"version":3,"file":"calculateViewportsSpatialRegistration.js","sourceRoot":"","sources":["../../../src/utilities/calculateViewportsSpatialRegistration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEvC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,mCAAmC,MAAM,uCAAuC,CAAC;AACxF,OAAO,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AAC9B,OAAO,OAAO,MAAM,WAAW,CAAC;AAchC,SAAS,qCAAqC,CAC5C,SAAyB,EACzB,SAAyB;IAEzB,IACE,CAAC,CAAC,SAAS,YAAY,aAAa,CAAC;QACrC,CAAC,CAAC,SAAS,YAAY,aAAa,CAAC,EACrC;QACA,MAAM,IAAI,KAAK,CACb,sHAAsH,CACvH,CAAC;KACH;IAED,MAAM,sBAAsB,GAC1B,SAAS,CAAC,sBAAsB,EAAE,KAAK,SAAS,CAAC,sBAAsB,EAAE,CAAC;IAE5E,IAAI,sBAAsB,EAAE;QAC1B,OAAO;KACR;IAED,MAAM,QAAQ,GAAG,SAAS,CAAC,iBAAiB,EAAE,CAAC;IAC/C,MAAM,QAAQ,GAAG,SAAS,CAAC,iBAAiB,EAAE,CAAC;IAE/C,MAAM,iBAAiB,GAAG,QAAQ,CAAC,GAAG,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAC;IACrE,MAAM,iBAAiB,GAAG,QAAQ,CAAC,GAAG,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAC;IAErE,MAAM,gBAAgB,GACpB,iBAAiB;QACjB,iBAAiB;QACjB,OAAO,CACL,iBAAiB,CAAC,uBAAuB,EACzC,iBAAiB,CAAC,uBAAuB,CAC1C,CAAC;IAEJ,IAAI,CAAC,gBAAgB,EAAE;QACrB,MAAM,IAAI,KAAK,CACb,oGAAoG,CACrG,CAAC;KACH;IAED,MAAM,qBAAqB,GAAG,iBAAiB,CAAC,oBAAoB,CAAC;IACrE,MAAM,qBAAqB,GAAG,iBAAiB,CAAC,oBAAoB,CAAC;IAErE,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAC/B,IAAI,CAAC,MAAM,EAAE,EACb,qBAAqB,EACrB,qBAAqB,CACtB,CAAC;IAEF,MAAM,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,WAAW,CAAC,CAAC;IAE7D,mCAAmC,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;AAC7E,CAAC;AAED,eAAe,qCAAqC,CAAC"}
1
+ {"version":3,"file":"calculateViewportsSpatialRegistration.js","sourceRoot":"","sources":["../../../src/utilities/calculateViewportsSpatialRegistration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEvC,OAAO,mCAAmC,MAAM,uCAAuC,CAAC;AACxF,OAAO,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AAQ9B,MAAM,aAAa,GAAG,IAAI,CAAC;AAc3B,SAAS,qCAAqC,CAC5C,SAAyB,EACzB,SAAyB;IAEzB,MAAM,QAAQ,GAAG,SAAS,CAAC,iBAAiB,EAAE,CAAC;IAC/C,MAAM,QAAQ,GAAG,SAAS,CAAC,iBAAiB,EAAE,CAAC;IAE/C,MAAM,iBAAiB,GAAG,QAAQ,CAAC,GAAG,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAC;IACrE,MAAM,iBAAiB,GAAG,QAAQ,CAAC,GAAG,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAC;IAErE,IAAI,CAAC,iBAAiB,IAAI,CAAC,iBAAiB,EAAE;QAC5C,OAAO,CAAC,GAAG,CAAC,2DAA2D,CAAC,CAAC;QACzE,OAAO;KACR;IACD,MAAM,EAAE,uBAAuB,EAAE,IAAI,EAAE,GAAG,iBAAiB,CAAC;IAC5D,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,uBAAuB,CAAC,KAAK,CACtE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,aAAa,CAChD,CAAC;IAEF,IAAI,CAAC,gBAAgB,EAAE;QACrB,OAAO,CAAC,GAAG,CACT,oGAAoG,EACpG,iBAAiB,EAAE,uBAAuB,EAC1C,iBAAiB,EAAE,uBAAuB,CAC3C,CAAC;QACF,OAAO;KACR;IAED,MAAM,qBAAqB,GAAG,iBAAiB,CAAC,oBAAoB,CAAC;IACrE,MAAM,qBAAqB,GAAG,iBAAiB,CAAC,oBAAoB,CAAC;IAErE,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAC/B,IAAI,CAAC,MAAM,EAAE,EACb,qBAAqB,EACrB,qBAAqB,CACtB,CAAC;IAEF,MAAM,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,WAAW,CAAC,CAAC;IAC7D,mCAAmC,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;AAC7E,CAAC;AAED,eAAe,qCAAqC,CAAC"}
@@ -8,12 +8,14 @@ export default function getClosestStackImageIndexForPoint(point, viewport) {
8
8
  export function calculateMinimalDistanceForStackViewport(point, viewport) {
9
9
  const imageIds = viewport.getImageIds();
10
10
  const currentImageIdIndex = viewport.getCurrentImageIdIndex();
11
- if (imageIds.length === 0)
11
+ if (imageIds.length === 0) {
12
12
  return null;
13
+ }
13
14
  const getDistance = (imageId) => {
14
15
  const planeMetadata = getPlaneMetadata(imageId);
15
- if (!planeMetadata)
16
+ if (!planeMetadata) {
16
17
  return null;
18
+ }
17
19
  const plane = planar.planeEquation(planeMetadata.planeNormal, planeMetadata.imagePositionPatient);
18
20
  const distance = planar.planeDistanceToPoint(plane, point);
19
21
  return distance;
@@ -26,27 +28,31 @@ export function calculateMinimalDistanceForStackViewport(point, viewport) {
26
28
  for (let i = 0; i < higherImageIds.length; i++) {
27
29
  const id = higherImageIds[i];
28
30
  const distance = getDistance(id);
29
- if (distance === null)
31
+ if (distance === null) {
30
32
  continue;
33
+ }
31
34
  if (distance <= closestStack.distance) {
32
35
  closestStack.distance = distance;
33
36
  closestStack.index = i + currentImageIdIndex + 1;
34
37
  }
35
- else
38
+ else {
36
39
  break;
40
+ }
37
41
  }
38
42
  const lowerImageIds = imageIds.slice(0, currentImageIdIndex);
39
43
  for (let i = lowerImageIds.length - 1; i >= 0; i--) {
40
44
  const id = lowerImageIds[i];
41
45
  const distance = getDistance(id);
42
- if (distance === null || distance === closestStack.distance)
46
+ if (distance === null || distance === closestStack.distance) {
43
47
  continue;
48
+ }
44
49
  if (distance < closestStack.distance) {
45
50
  closestStack.distance = distance;
46
51
  closestStack.index = i;
47
52
  }
48
- else
53
+ else {
49
54
  break;
55
+ }
50
56
  }
51
57
  return closestStack.distance === Infinity ? null : closestStack;
52
58
  }
@@ -1 +1 @@
1
- {"version":3,"file":"getClosestStackImageIndexForPoint.js","sourceRoot":"","sources":["../../../src/utilities/getClosestStackImageIndexForPoint.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"getClosestStackImageIndexForPoint.js","sourceRoot":"","sources":["../../../src/utilities/getClosestStackImageIndexForPoint.ts"],"names":[],"mappings":"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"}
@@ -19,8 +19,9 @@ function getNextRuntimeId(context, symbol, max) {
19
19
  }
20
20
  else {
21
21
  n = 0;
22
- if (i + 1 === idComponents.length)
22
+ if (i + 1 === idComponents.length) {
23
23
  idComponents.push(0);
24
+ }
24
25
  }
25
26
  idComponents[i] = n;
26
27
  }
@@ -1 +1 @@
1
- {"version":3,"file":"getRuntimeId.js","sourceRoot":"","sources":["../../../src/utilities/getRuntimeId.ts"],"names":[],"mappings":"AAAA,MAAM,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC;AAChD,MAAM,cAAc,GAAG,EAAE,CAAC;AAC1B,MAAM,WAAW,GAAG,UAAU,CAAC;AAC/B,MAAM,iBAAiB,GAAG,GAAG,CAAC;AAW9B,MAAM,CAAC,OAAO,UAAU,YAAY,CAClC,OAAiB,EACjB,SAAkB,EAClB,GAAY;IAEZ,OAAO,gBAAgB,CAErB,OAAO,KAAK,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,EAC1E,eAAe,EACf,CAAC,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAC/D,CAAC,IAAI,CAAC,OAAO,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC;AACxE,CAAC;AAMD,SAAS,gBAAgB,CACvB,OAAsC,EACtC,MAAc,EACd,GAAW;IAEX,IAAI,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACnC,IAAI,CAAC,CAAC,YAAY,YAAY,KAAK,CAAC,EAAE;QACpC,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC;QACnB,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC;KACjE;IACD,KAAK,IAAI,KAAK,GAAG,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;QACnE,IAAI,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,CAAC,GAAG,GAAG,EAAE;YACX,KAAK,GAAG,KAAK,CAAC;YACd,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;SACX;aAAM;YACL,CAAC,GAAG,CAAC,CAAC;YACN,IAAI,CAAC,GAAG,CAAC,KAAK,YAAY,CAAC,MAAM;gBAAE,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SACzD;QACD,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;KACrB;IACD,OAAO,YAAY,CAAC;AACtB,CAAC"}
1
+ {"version":3,"file":"getRuntimeId.js","sourceRoot":"","sources":["../../../src/utilities/getRuntimeId.ts"],"names":[],"mappings":"AAAA,MAAM,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC;AAChD,MAAM,cAAc,GAAG,EAAE,CAAC;AAC1B,MAAM,WAAW,GAAG,UAAU,CAAC;AAC/B,MAAM,iBAAiB,GAAG,GAAG,CAAC;AAW9B,MAAM,CAAC,OAAO,UAAU,YAAY,CAClC,OAAiB,EACjB,SAAkB,EAClB,GAAY;IAEZ,OAAO,gBAAgB,CAErB,OAAO,KAAK,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,EAC1E,eAAe,EACf,CAAC,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAC/D,CAAC,IAAI,CAAC,OAAO,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC;AACxE,CAAC;AAMD,SAAS,gBAAgB,CACvB,OAAsC,EACtC,MAAc,EACd,GAAW;IAEX,IAAI,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACnC,IAAI,CAAC,CAAC,YAAY,YAAY,KAAK,CAAC,EAAE;QACpC,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC;QACnB,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC;KACjE;IACD,KAAK,IAAI,KAAK,GAAG,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;QACnE,IAAI,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,CAAC,GAAG,GAAG,EAAE;YACX,KAAK,GAAG,KAAK,CAAC;YACd,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;SACX;aAAM;YACL,CAAC,GAAG,CAAC,CAAC;YACN,IAAI,CAAC,GAAG,CAAC,KAAK,YAAY,CAAC,MAAM,EAAE;gBACjC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aACtB;SACF;QACD,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;KACrB;IACD,OAAO,YAAY,CAAC;AACtB,CAAC"}
@@ -1,11 +1,11 @@
1
1
  function toWindowLevel(low, high) {
2
- const windowWidth = Math.abs(low - high);
3
- const windowCenter = low + windowWidth / 2;
2
+ const windowWidth = Math.abs(high - low) + 1;
3
+ const windowCenter = (low + high + 1) / 2;
4
4
  return { windowWidth, windowCenter };
5
5
  }
6
6
  function toLowHighRange(windowWidth, windowCenter) {
7
- const lower = windowCenter - windowWidth / 2.0;
8
- const upper = windowCenter + windowWidth / 2.0;
7
+ const lower = windowCenter - 0.5 - (windowWidth - 1) / 2;
8
+ const upper = windowCenter - 0.5 + (windowWidth - 1) / 2;
9
9
  return { lower, upper };
10
10
  }
11
11
  export { toWindowLevel, toLowHighRange };
@@ -1 +1 @@
1
- {"version":3,"file":"windowLevel.js","sourceRoot":"","sources":["../../../src/utilities/windowLevel.ts"],"names":[],"mappings":"AAMA,SAAS,aAAa,CACpB,GAAW,EACX,IAAY;IAKZ,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC;IACzC,MAAM,YAAY,GAAG,GAAG,GAAG,WAAW,GAAG,CAAC,CAAC;IAE3C,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC;AACvC,CAAC;AAQD,SAAS,cAAc,CACrB,WAAmB,EACnB,YAAoB;IAKpB,MAAM,KAAK,GAAG,YAAY,GAAG,WAAW,GAAG,GAAG,CAAC;IAC/C,MAAM,KAAK,GAAG,YAAY,GAAG,WAAW,GAAG,GAAG,CAAC;IAE/C,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;AAC1B,CAAC;AAED,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,CAAC"}
1
+ {"version":3,"file":"windowLevel.js","sourceRoot":"","sources":["../../../src/utilities/windowLevel.ts"],"names":[],"mappings":"AASA,SAAS,aAAa,CACpB,GAAW,EACX,IAAY;IAMZ,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7C,MAAM,YAAY,GAAG,CAAC,GAAG,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IAE1C,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC;AACvC,CAAC;AAaD,SAAS,cAAc,CACrB,WAAmB,EACnB,YAAoB;IAKpB,MAAM,KAAK,GAAG,YAAY,GAAG,GAAG,GAAG,CAAC,WAAW,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IACzD,MAAM,KAAK,GAAG,YAAY,GAAG,GAAG,GAAG,CAAC,WAAW,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IAEzD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;AAC1B,CAAC;AAED,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,CAAC"}