@ohif/app 3.13.0-beta.119 → 3.13.0-beta.120

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 (39) hide show
  1. package/dist/{1483.bundle.e208a19dd0ff9a11.js → 1483.bundle.5e93c978bd32d7de.js} +1 -1
  2. package/dist/{2343.bundle.e50c08b2df863e1a.js → 2343.bundle.3445fda02a002697.js} +12 -8
  3. package/dist/{2036.bundle.1b6c0d890aa6bf4e.js → 2493.bundle.f3b6a64d158365da.js} +113 -35
  4. package/dist/{3215.bundle.1fca83719c1b786b.js → 3330.bundle.b1297ef8c94e5440.js} +796 -180
  5. package/dist/{2690.bundle.f5dc28ac498de122.js → 3568.bundle.45dc681ef6890166.js} +2112 -76
  6. package/dist/{6495.bundle.84b83aa091c338cd.js → 6495.bundle.a6764fdb8c0c252f.js} +846 -219
  7. package/dist/{8668.bundle.93c88419e37dc076.js → 8668.bundle.0e47f7231aa07da2.js} +227 -3
  8. package/dist/{9402.bundle.0dd1b538f0708077.js → 9402.bundle.928437e2e48c12dd.js} +2 -2
  9. package/dist/{9560.bundle.bb39f946ea79cf0e.js → 9560.bundle.517f0ef7ee3a20bf.js} +159 -196
  10. package/dist/{app.bundle.bdeb02edea129b2c.js → app.bundle.81a823d1149be346.js} +99 -25
  11. package/dist/{compute.bundle.77e80c1775429bd6.js → compute.bundle.9cc3697d07fbb082.js} +3 -3
  12. package/dist/index.html +1 -1
  13. package/dist/{polySeg.bundle.5e350e0723aa59b6.js → polySeg.bundle.a526954fc2fed311.js} +3 -3
  14. package/dist/sw.js +1 -1
  15. package/package.json +6 -6
  16. /package/dist/{100.bundle.bd6735a86c215595.js → 100.bundle.84a35e9d087b403c.js} +0 -0
  17. /package/dist/{1180.bundle.4c5146471b4d3497.js → 1180.bundle.7f790d9fd6fb031c.js} +0 -0
  18. /package/dist/{1602.bundle.163e3da3a27b860c.js → 1602.bundle.254a392a6b5d2b85.js} +0 -0
  19. /package/dist/{2779.bundle.664d9d0a704f7b94.js → 2779.bundle.c879d6af5dc0c274.js} +0 -0
  20. /package/dist/{3500.bundle.18412afd9ee5d6a7.js → 3500.bundle.d4aaab15c4461cc4.js} +0 -0
  21. /package/dist/{3760.bundle.f69046888fc2b881.js → 3760.bundle.c95abd6ab662bd3b.js} +0 -0
  22. /package/dist/{4556.bundle.128d2abaea69dce3.js → 4556.bundle.c3ac23e680d677b2.js} +0 -0
  23. /package/dist/{4683.bundle.b02523a9d66f4d19.js → 4683.bundle.ed3f14fcb89fbad1.js} +0 -0
  24. /package/dist/{5189.bundle.2a0f740738759e32.js → 5189.bundle.ea191ea99047fd6f.js} +0 -0
  25. /package/dist/{5642.bundle.1622d255af1102d8.js → 5642.bundle.98e17a4413db6ef1.js} +0 -0
  26. /package/dist/{5696.bundle.2f47cb5ab5a7f983.js → 5696.bundle.e77041f7e2b08236.js} +0 -0
  27. /package/dist/{6749.bundle.9f0550714a4d5f8b.js → 6749.bundle.9dcda33e49485da4.js} +0 -0
  28. /package/dist/{7231.bundle.46f843b74a964f89.js → 7231.bundle.1063d727ad99108a.js} +0 -0
  29. /package/dist/{7248.bundle.bffd4e60f806e25d.js → 7248.bundle.ab6f276adad059da.js} +0 -0
  30. /package/dist/{7499.bundle.bb240e8754167cb2.js → 7499.bundle.832916b9b820c33f.js} +0 -0
  31. /package/dist/{781.bundle.f7411dabe0628911.js → 781.bundle.f06b6ab92ef4d695.js} +0 -0
  32. /package/dist/{8423.bundle.071901427fd3cd9e.js → 8423.bundle.ebf8d7d638d9616b.js} +0 -0
  33. /package/dist/{8492.bundle.9c17dcbab24b07c3.js → 8492.bundle.1ceeb18471c1c06b.js} +0 -0
  34. /package/dist/{8832.bundle.e413f00216682f40.js → 8832.bundle.1eb46bfa451c792f.js} +0 -0
  35. /package/dist/{9116.bundle.1cb5c393e3a152cd.js → 9116.bundle.1d0c6c18a4db51cc.js} +0 -0
  36. /package/dist/{9290.bundle.77a274271ce884a3.js → 9290.bundle.82e8dfc0f73c41bb.js} +0 -0
  37. /package/dist/{9383.bundle.9b1d03c71cc52f4f.js → 9383.bundle.ec44c452ccc23e93.js} +0 -0
  38. /package/dist/{9415.bundle.d3532cc872787744.js → 9415.bundle.69d74a2b03d5d6e4.js} +0 -0
  39. /package/dist/{9437.bundle.a18085ed31658c82.js → 9437.bundle.ca5db89624e35827.js} +0 -0
@@ -6279,6 +6279,9 @@ __webpack_require__.d(__webpack_exports__, {
6279
6279
  loadImageToCanvas: () => (/* reexport */ loadImageToCanvas/* ["default"] */.A),
6280
6280
  logger: () => (/* reexport */ logger),
6281
6281
  makeVolumeMetadata: () => (/* reexport */ makeVolumeMetadata/* ["default"] */.A),
6282
+ mapMappedBandToRawRange: () => (/* reexport */ viewportVoiIntensityMapping/* .mapMappedBandToRawRange */.j_),
6283
+ mapScalarToViewportVoiIntensity: () => (/* reexport */ viewportVoiIntensityMapping/* .mapScalarToViewportVoiIntensity */.fT),
6284
+ mapViewportVoiIntensityToScalar: () => (/* reexport */ viewportVoiIntensityMapping/* .mapViewportVoiIntensityToScalar */.l2),
6282
6285
  planar: () => (/* reexport */ planar),
6283
6286
  pointInShapeCallback: () => (/* reexport */ pointInShapeCallback/* .pointInShapeCallback */.ii),
6284
6287
  renderToCanvasCPU: () => (/* reexport */ renderToCanvasCPU/* ["default"] */.A),
@@ -6545,6 +6548,8 @@ var calculateSpacingBetweenImageIds = __webpack_require__(66831);
6545
6548
  var logger = __webpack_require__(80977);
6546
6549
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/calculateNeighborhoodStats.js
6547
6550
  var calculateNeighborhoodStats = __webpack_require__(5830);
6551
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/viewportVoiIntensityMapping.js
6552
+ var viewportVoiIntensityMapping = __webpack_require__(28656);
6548
6553
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/getPixelSpacingInformation.js
6549
6554
  var getPixelSpacingInformation = __webpack_require__(41840);
6550
6555
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/getPlaneCubeIntersectionDimensions.js
@@ -6675,6 +6680,7 @@ var isEqual = __webpack_require__(77981);
6675
6680
 
6676
6681
 
6677
6682
 
6683
+
6678
6684
 
6679
6685
 
6680
6686
  const utilities_getViewportModality = (viewport, volumeId) => (0,getViewportModality/* ._getViewportModality */.p)(viewport, volumeId, cache/* ["default"].getVolume */.Ay.getVolume);
@@ -6683,6 +6689,29 @@ const utilities_getScalingDescriptor = (viewport, targetId) => (0,getScalingDesc
6683
6689
 
6684
6690
 
6685
6691
 
6692
+ },
6693
+ 80977(__unused_rspack___webpack_module__, __webpack_exports__, __webpack_require__) {
6694
+ __webpack_require__.r(__webpack_exports__);
6695
+ __webpack_require__.d(__webpack_exports__, {
6696
+ aiLog: () => (aiLog),
6697
+ coreLog: () => (coreLog),
6698
+ cs3dLog: () => (cs3dLog),
6699
+ dicomConsistencyLog: () => (dicomConsistencyLog),
6700
+ examplesLog: () => (examplesLog),
6701
+ getLogger: () => (getLogger),
6702
+ getRootLogger: () => (getRootLogger),
6703
+ growCutLog: () => (growCutLog),
6704
+ imageConsistencyLog: () => (imageConsistencyLog),
6705
+ loaderLog: () => (loaderLog),
6706
+ toolsLog: () => (toolsLog),
6707
+ workerLog: () => (workerLog)
6708
+ });
6709
+ /* import */ var _cornerstonejs_utils__rspack_import_0 = __webpack_require__(53103);
6710
+
6711
+ const { /* getRootLogger */pp: getRootLogger, /* getLogger */tZ: getLogger, /* cs3dLog */gE: cs3dLog, /* workerLog */bM: workerLog, /* coreLog */uu: coreLog, /* toolsLog */UA: toolsLog, /* loaderLog */_E: loaderLog, /* aiLog */RZ: aiLog, /* examplesLog */UX: examplesLog, /* dicomConsistencyLog */HL: dicomConsistencyLog, /* imageConsistencyLog */U5: imageConsistencyLog, } = _cornerstonejs_utils__rspack_import_0/* .logging */.m9;
6712
+ const growCutLog = toolsLog.getLogger('growCut');
6713
+
6714
+
6686
6715
  },
6687
6716
  25481(__unused_rspack___webpack_module__, __webpack_exports__, __webpack_require__) {
6688
6717
  __webpack_require__.r(__webpack_exports__);
@@ -8262,6 +8291,7 @@ __webpack_require__.d(__webpack_exports__, {
8262
8291
  },
8263
8292
  88392(__unused_rspack___webpack_module__, __webpack_exports__, __webpack_require__) {
8264
8293
  __webpack_require__.d(__webpack_exports__, {
8294
+ $n: () => (removeLabelmap),
8265
8295
  AD: () => (registerLabelmap),
8266
8296
  Hs: () => (getLabelmap),
8267
8297
  kL: () => (getOrCreateLabelmapVolume),
@@ -8291,13 +8321,13 @@ function registerLabelmap(segmentation, layer) {
8291
8321
  labelmapState.labelmaps[layer.labelmapId] = layer;
8292
8322
  }
8293
8323
  function removeLabelmap(segmentation, labelmapId) {
8294
- const labelmapState = ensureLabelmapState(segmentation);
8324
+ const labelmapState = (0,_normalizeLabelmapSegmentationData_js__rspack_import_1/* .ensureLabelmapState */.uk)(segmentation);
8295
8325
  if (!labelmapState) {
8296
8326
  return;
8297
8327
  }
8298
8328
  const layer = labelmapState.labelmaps[labelmapId];
8299
- if (layer?.geometryVolumeId && cache.getVolume(layer.geometryVolumeId)) {
8300
- cache.removeVolumeLoadObject(layer.geometryVolumeId);
8329
+ if (layer?.geometryVolumeId && _cornerstonejs_core__rspack_import_0.cache.getVolume(layer.geometryVolumeId)) {
8330
+ _cornerstonejs_core__rspack_import_0.cache.removeVolumeLoadObject(layer.geometryVolumeId);
8301
8331
  }
8302
8332
  delete labelmapState.labelmaps[labelmapId];
8303
8333
  }
@@ -9549,6 +9579,7 @@ class BrushTool extends _LabelmapBaseTool_js__rspack_import_9/* ["default"] */.A
9549
9579
  };
9550
9580
  this._hoverData = this.createHoverData(element, canvasPoint);
9551
9581
  if (!this._hoverData) {
9582
+ this._editData = null;
9552
9583
  return false;
9553
9584
  }
9554
9585
  this._calculateCursor(element, canvasPoint);
@@ -11796,6 +11827,199 @@ function createIsInSegment(segVolumeId, segmentIndex, containedSegmentIndices) {
11796
11827
 
11797
11828
 
11798
11829
 
11830
+ },
11831
+ 29827(__unused_rspack___webpack_module__, __webpack_exports__, __webpack_require__) {
11832
+ __webpack_require__.d(__webpack_exports__, {
11833
+ A: () => (IslandRemoval)
11834
+ });
11835
+ /* import */ var _cornerstonejs_core__rspack_import_0 = __webpack_require__(88479);
11836
+ /* import */ var _normalizeViewportPlane_js__rspack_import_1 = __webpack_require__(95972);
11837
+
11838
+
11839
+ const { RLEVoxelMap, VoxelManager } = _cornerstonejs_core__rspack_import_0.utilities;
11840
+ const MAX_IMAGE_SIZE = 65535;
11841
+ var SegmentationEnum;
11842
+ (function (SegmentationEnum) {
11843
+ SegmentationEnum[SegmentationEnum["SEGMENT"] = -1] = "SEGMENT";
11844
+ SegmentationEnum[SegmentationEnum["ISLAND"] = -2] = "ISLAND";
11845
+ SegmentationEnum[SegmentationEnum["INTERIOR"] = -3] = "INTERIOR";
11846
+ SegmentationEnum[SegmentationEnum["EXTERIOR"] = -4] = "EXTERIOR";
11847
+ SegmentationEnum[SegmentationEnum["INTERIOR_SMALL"] = -5] = "INTERIOR_SMALL";
11848
+ SegmentationEnum[SegmentationEnum["INTERIOR_TEST"] = -6] = "INTERIOR_TEST";
11849
+ })(SegmentationEnum || (SegmentationEnum = {}));
11850
+ class IslandRemoval {
11851
+ constructor(options) {
11852
+ this.fillInternalEdge = false;
11853
+ this.maxInternalRemove = 128;
11854
+ this.maxInternalRemove =
11855
+ options?.maxInternalRemove ?? this.maxInternalRemove;
11856
+ this.fillInternalEdge = options?.fillInternalEdge ?? this.fillInternalEdge;
11857
+ }
11858
+ initialize(viewport, segmentationVoxels, options) {
11859
+ const hasSource = !!segmentationVoxels.sourceVoxelManager;
11860
+ const segmentationVoxelManager = hasSource
11861
+ ? segmentationVoxels.sourceVoxelManager
11862
+ : segmentationVoxels;
11863
+ const previewVoxelManager = hasSource
11864
+ ? segmentationVoxels
11865
+ : VoxelManager.createRLEHistoryVoxelManager(segmentationVoxelManager);
11866
+ const { segmentIndex = 1, previewSegmentIndex = 1 } = options;
11867
+ const clickedPoints = options.points || segmentationVoxelManager.getPoints();
11868
+ if (!clickedPoints?.length) {
11869
+ return;
11870
+ }
11871
+ const boundsIJK = segmentationVoxelManager
11872
+ .getBoundsIJK()
11873
+ .map((bound, i) => [
11874
+ Math.min(bound[0], ...clickedPoints.map((point) => point[i])),
11875
+ Math.max(bound[1], ...clickedPoints.map((point) => point[i])),
11876
+ ]);
11877
+ if (boundsIJK.find((it) => it[0] < 0 || it[1] > MAX_IMAGE_SIZE)) {
11878
+ return;
11879
+ }
11880
+ const { toIJK, fromIJK, boundsIJKPrime, error } = (0,_normalizeViewportPlane_js__rspack_import_1/* ["default"] */.A)(viewport, boundsIJK);
11881
+ if (error) {
11882
+ console.warn('Not performing island removal for planes not orthogonal to acquisition plane', error);
11883
+ return;
11884
+ }
11885
+ const [width, height, depth] = fromIJK(segmentationVoxelManager.dimensions);
11886
+ const segmentSet = new RLEVoxelMap(width, height, depth);
11887
+ const getter = (i, j, k) => {
11888
+ const index = segmentationVoxelManager.toIndex(toIJK([i, j, k]));
11889
+ const oldVal = segmentationVoxelManager.getAtIndex(index);
11890
+ if (oldVal === previewSegmentIndex || oldVal === segmentIndex) {
11891
+ return SegmentationEnum.SEGMENT;
11892
+ }
11893
+ };
11894
+ segmentSet.fillFrom(getter, boundsIJKPrime);
11895
+ segmentSet.normalizer = { toIJK, fromIJK, boundsIJKPrime };
11896
+ this.segmentSet = segmentSet;
11897
+ this.previewVoxelManager = previewVoxelManager;
11898
+ this.segmentIndex = segmentIndex;
11899
+ this.previewSegmentIndex = previewSegmentIndex ?? segmentIndex;
11900
+ this.selectedPoints = clickedPoints;
11901
+ return true;
11902
+ }
11903
+ floodFillSegmentIsland() {
11904
+ const { selectedPoints: clickedPoints, segmentSet } = this;
11905
+ let floodedCount = 0;
11906
+ const { fromIJK } = segmentSet.normalizer;
11907
+ clickedPoints.forEach((clickedPoint) => {
11908
+ const ijkPrime = fromIJK(clickedPoint);
11909
+ const index = segmentSet.toIndex(ijkPrime);
11910
+ const [iPrime, jPrime, kPrime] = ijkPrime;
11911
+ if (segmentSet.get(index) === SegmentationEnum.SEGMENT) {
11912
+ floodedCount += segmentSet.floodFill(iPrime, jPrime, kPrime, SegmentationEnum.ISLAND);
11913
+ }
11914
+ });
11915
+ return floodedCount;
11916
+ }
11917
+ removeExternalIslands() {
11918
+ const { previewVoxelManager, segmentSet } = this;
11919
+ const { toIJK } = segmentSet.normalizer;
11920
+ const callback = (index, rle) => {
11921
+ const [, jPrime, kPrime] = segmentSet.toIJK(index);
11922
+ if (rle.value !== SegmentationEnum.ISLAND) {
11923
+ for (let iPrime = rle.start; iPrime < rle.end; iPrime++) {
11924
+ const clearPoint = toIJK([iPrime, jPrime, kPrime]);
11925
+ const v = previewVoxelManager.getAtIJKPoint(clearPoint);
11926
+ previewVoxelManager.setAtIJKPoint(clearPoint, v === undefined ? 0 : null);
11927
+ }
11928
+ }
11929
+ };
11930
+ segmentSet.forEach(callback, { rowModified: true });
11931
+ }
11932
+ removeInternalIslands() {
11933
+ const { segmentSet, previewVoxelManager, previewSegmentIndex } = this;
11934
+ const { height, normalizer, width } = segmentSet;
11935
+ const { toIJK } = normalizer;
11936
+ segmentSet.forEachRow((baseIndex, row) => {
11937
+ let lastRle;
11938
+ for (const rle of [...row]) {
11939
+ if (rle.value !== SegmentationEnum.ISLAND) {
11940
+ continue;
11941
+ }
11942
+ if (!lastRle) {
11943
+ if (this.fillInternalEdge && rle.start > 0) {
11944
+ for (let iPrime = 0; iPrime < rle.start; iPrime++) {
11945
+ segmentSet.set(baseIndex + iPrime, SegmentationEnum.INTERIOR);
11946
+ }
11947
+ }
11948
+ lastRle = rle;
11949
+ continue;
11950
+ }
11951
+ for (let iPrime = lastRle.end; iPrime < rle.start; iPrime++) {
11952
+ segmentSet.set(baseIndex + iPrime, SegmentationEnum.INTERIOR);
11953
+ }
11954
+ lastRle = rle;
11955
+ }
11956
+ if (this.fillInternalEdge && lastRle?.end < width) {
11957
+ for (let iPrime = lastRle.end; iPrime < width; iPrime++) {
11958
+ segmentSet.set(baseIndex + iPrime, SegmentationEnum.INTERIOR);
11959
+ }
11960
+ }
11961
+ });
11962
+ segmentSet.forEach((baseIndex, rle) => {
11963
+ if (rle.value !== SegmentationEnum.INTERIOR) {
11964
+ return;
11965
+ }
11966
+ const [, jPrime, kPrime] = segmentSet.toIJK(baseIndex);
11967
+ const rowPrev = jPrime > 0 ? segmentSet.getRun(jPrime - 1, kPrime) : null;
11968
+ const rowNext = jPrime + 1 < height ? segmentSet.getRun(jPrime + 1, kPrime) : null;
11969
+ const isLast = jPrime === height - 1;
11970
+ const isFirst = jPrime === 0;
11971
+ const prevCovers = IslandRemoval.covers(rle, rowPrev) ||
11972
+ (isFirst && this.fillInternalEdge);
11973
+ const nextCovers = IslandRemoval.covers(rle, rowNext) || (isLast && this.fillInternalEdge);
11974
+ if (rle.end - rle.start > 2 && (!prevCovers || !nextCovers)) {
11975
+ segmentSet.floodFill(rle.start, jPrime, kPrime, SegmentationEnum.EXTERIOR, { singlePlane: true });
11976
+ }
11977
+ });
11978
+ segmentSet.forEach((baseIndex, rle) => {
11979
+ if (rle.value !== SegmentationEnum.INTERIOR) {
11980
+ return;
11981
+ }
11982
+ const [, jPrime, kPrime] = segmentSet.toIJK(baseIndex);
11983
+ const size = segmentSet.floodFill(rle.start, jPrime, kPrime, SegmentationEnum.INTERIOR_TEST);
11984
+ const isBig = size > this.maxInternalRemove;
11985
+ const newType = isBig
11986
+ ? SegmentationEnum.EXTERIOR
11987
+ : SegmentationEnum.INTERIOR_SMALL;
11988
+ segmentSet.floodFill(rle.start, jPrime, kPrime, newType);
11989
+ });
11990
+ segmentSet.forEach((baseIndex, rle) => {
11991
+ if (rle.value !== SegmentationEnum.INTERIOR_SMALL) {
11992
+ return;
11993
+ }
11994
+ for (let iPrime = rle.start; iPrime < rle.end; iPrime++) {
11995
+ const clearPoint = toIJK(segmentSet.toIJK(baseIndex + iPrime));
11996
+ previewVoxelManager.setAtIJKPoint(clearPoint, previewSegmentIndex);
11997
+ this.onInternalPointFilled(clearPoint);
11998
+ }
11999
+ });
12000
+ return previewVoxelManager.getArrayOfModifiedSlices();
12001
+ }
12002
+ onInternalPointFilled(_point) {
12003
+ }
12004
+ static covers(rle, row) {
12005
+ if (!row) {
12006
+ return false;
12007
+ }
12008
+ let { start } = rle;
12009
+ const { end } = rle;
12010
+ for (const rowRle of row) {
12011
+ if (start >= rowRle.start && start < rowRle.end) {
12012
+ start = rowRle.end;
12013
+ if (start >= end) {
12014
+ return true;
12015
+ }
12016
+ }
12017
+ }
12018
+ return false;
12019
+ }
12020
+ }
12021
+
12022
+
11799
12023
  },
11800
12024
  42692(__unused_rspack___webpack_module__, __webpack_exports__, __webpack_require__) {
11801
12025
  __webpack_require__.d(__webpack_exports__, {
@@ -11273,8 +11273,8 @@ function AboutModalDefault() {
11273
11273
  name
11274
11274
  } = (0,browser_detect_es5/* ["default"] */.A)();
11275
11275
  const browser = `${name[0].toUpperCase()}${name.substr(1)} ${version}`;
11276
- const versionNumber = "3.13.0-beta.119";
11277
- const commitHash = "1eee3e6119cf7d34edac9e9e71cdbd3286dc9bb1";
11276
+ const versionNumber = "3.13.0-beta.120";
11277
+ const commitHash = "9c76afa075e42a5e7197d42c89e10ef4c8b461a4";
11278
11278
  const [main, beta] = versionNumber.split('-');
11279
11279
  return /*#__PURE__*/react.createElement(ui_next_src/* .AboutModal */.VTU, {
11280
11280
  className: "w-[400px]"