@ohif/app 3.9.0-beta.107 → 3.9.0-beta.108
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/dist/{2455.bundle.549b3f25f2c1b3bdf652.js → 1185.bundle.09d13de246385f1eecec.js} +138 -124
- package/dist/{1436.bundle.80c489caf66d53844e47.js → 1436.bundle.ffe514361e39273cb437.js} +10 -6
- package/dist/{149.bundle.236f32779705d9777acf.js → 149.bundle.54475bb9f72311be64bf.js} +1 -0
- package/dist/{1927.bundle.52d4f6ffeb436732c86a.js → 1927.bundle.7655ff4783bfaa28049f.js} +33 -38
- package/dist/{3198.bundle.a384d035d24280dc1f90.js → 3198.bundle.d8fd8e333394d9a214bc.js} +2 -2
- package/dist/{4571.bundle.b504060ff3f87e81f8f0.js → 4571.bundle.9ad4f229948c2a2da2ec.js} +1 -1
- package/dist/{5139.bundle.e3f8ef5bd4a8bde46a02.js → 5139.bundle.4bc1debcb236cb6a9ec8.js} +2 -2
- package/dist/{5687.bundle.d2fa9c7c31b8f7039a6b.js → 5687.bundle.b27fcee05402bc00d8a9.js} +4 -4
- package/dist/{5717.bundle.75f147939670154e769a.js → 5717.bundle.15335c2857a756212d16.js} +10 -6
- package/dist/{717.bundle.e7c1ec55f5b1dfde925e.js → 717.bundle.9e8751b64f11222f7bb2.js} +2 -2
- package/dist/{8329.bundle.8b54c33521ae5612f119.js → 8329.bundle.8ec6d09ed821d880af8c.js} +2 -2
- package/dist/{8523.bundle.9adf8f328f383bd26146.js → 8523.bundle.5d315f8096e3704ba241.js} +14 -17
- package/dist/{9212.bundle.1f4e22b153835a1b3777.js → 9212.bundle.613fc0d3b9753c477f6c.js} +7 -2
- package/dist/{9611.bundle.f81a5a1c76e7a06f3207.js → 9611.bundle.99199674cf2df5c7607b.js} +14 -22
- package/dist/{9952.bundle.858170b3010546ae8b93.js → 9952.bundle.6f1a92b82c42c60f57eb.js} +3 -28
- package/dist/{app.bundle.06a6e91a47336d5b50e5.js → app.bundle.787a9c83528ee4149e09.js} +25 -28
- package/dist/index.html +1 -1
- package/dist/{polySeg.bundle.7e3736144d6585cbe5b9.js → polySeg.bundle.cf443bab5e1888443354.js} +1 -1
- package/dist/{suv-peak-worker.bundle.7d96e701505dc0c69320.js → suv-peak-worker.bundle.ad1de658c7260083e81d.js} +1 -1
- package/dist/sw.js +1 -1
- package/package.json +19 -19
- /package/dist/{1266.bundle.f1fa7ec6484c9468cd21.js → 1266.bundle.8fc2047453219e0469a1.js} +0 -0
- /package/dist/{1374.bundle.baa11b23a34c66b9a570.js → 1374.bundle.41e540d7ef3c4fd25668.js} +0 -0
- /package/dist/{213.bundle.92f182058b364c485c94.js → 213.bundle.de9c712ff892512f2cd2.js} +0 -0
- /package/dist/{2424.bundle.c466382604fc07e63e02.js → 2424.bundle.b00a89625a6c0c436a8c.js} +0 -0
- /package/dist/{2825.bundle.cc9734062a044ff2aca6.js → 2825.bundle.2cafab651022748828de.js} +0 -0
- /package/dist/{4834.bundle.3eadeba1f3e0902a6245.js → 4834.bundle.b803124da60529b93d7f.js} +0 -0
- /package/dist/{5247.bundle.5e14b52ca308071cf339.js → 5247.bundle.72b6f73110dd82b748b1.js} +0 -0
- /package/dist/{7197.bundle.05b33da315dd65c0d568.js → 7197.bundle.3f686728681d08c75b00.js} +0 -0
- /package/dist/{7955.bundle.4120857bb15259fad1e2.js → 7955.bundle.af6fc2694f0a7d3b8498.js} +0 -0
- /package/dist/{8008.bundle.6021b889890c42f49170.js → 8008.bundle.4c08c0bd8a0840c38605.js} +0 -0
- /package/dist/{8259.bundle.606d8dab793cf41361b9.js → 8259.bundle.875c819aff78bc7ba362.js} +0 -0
- /package/dist/{8558.bundle.7e877c71665e0bd411d5.js → 8558.bundle.cbf6494d75f41196fee1.js} +0 -0
- /package/dist/{9551.bundle.0068d6b50fabb362ce14.js → 9551.bundle.a612f424e160e734d9e4.js} +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
(self["webpackChunk"] = self["webpackChunk"] || []).push([[
|
|
2
|
+
(self["webpackChunk"] = self["webpackChunk"] || []).push([[1185],{
|
|
3
3
|
|
|
4
4
|
/***/ 5791:
|
|
5
5
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
@@ -738,7 +738,139 @@ const useViewportActionCornersContext = () => (0,react__WEBPACK_IMPORTED_MODULE_
|
|
|
738
738
|
|
|
739
739
|
/***/ }),
|
|
740
740
|
|
|
741
|
-
/***/
|
|
741
|
+
/***/ 73421:
|
|
742
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
743
|
+
|
|
744
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
745
|
+
/* harmony export */ j: () => (/* binding */ useSegmentations)
|
|
746
|
+
/* harmony export */ });
|
|
747
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(86326);
|
|
748
|
+
/* harmony import */ var lodash_debounce__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(62051);
|
|
749
|
+
/* harmony import */ var lodash_debounce__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash_debounce__WEBPACK_IMPORTED_MODULE_1__);
|
|
750
|
+
/* harmony import */ var _ohif_core_src_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(37415);
|
|
751
|
+
|
|
752
|
+
|
|
753
|
+
|
|
754
|
+
function mapSegmentationToDisplay(segmentation, customizationService) {
|
|
755
|
+
const {
|
|
756
|
+
label,
|
|
757
|
+
segments
|
|
758
|
+
} = segmentation;
|
|
759
|
+
|
|
760
|
+
// Get the readable text mapping once
|
|
761
|
+
const {
|
|
762
|
+
readableText: readableTextMap
|
|
763
|
+
} = customizationService.getCustomization('PanelSegmentation.readableText', {});
|
|
764
|
+
|
|
765
|
+
// Helper function to recursively map cachedStats to readable display text
|
|
766
|
+
function mapStatsToDisplay(stats, indent = 0) {
|
|
767
|
+
const primary = [];
|
|
768
|
+
const indentation = ' '.repeat(indent);
|
|
769
|
+
for (const key in stats) {
|
|
770
|
+
if (Object.prototype.hasOwnProperty.call(stats, key)) {
|
|
771
|
+
const value = stats[key];
|
|
772
|
+
const readableText = readableTextMap?.[key];
|
|
773
|
+
if (!readableText) {
|
|
774
|
+
continue;
|
|
775
|
+
}
|
|
776
|
+
if (typeof value === 'object' && value !== null && !Array.isArray(value)) {
|
|
777
|
+
// Add empty row before category (except for the first category)
|
|
778
|
+
if (primary.length > 0) {
|
|
779
|
+
primary.push('');
|
|
780
|
+
}
|
|
781
|
+
// Add category title
|
|
782
|
+
primary.push(`${indentation}${readableText}`);
|
|
783
|
+
// Recursively handle nested objects
|
|
784
|
+
primary.push(...mapStatsToDisplay(value, indent + 1));
|
|
785
|
+
} else {
|
|
786
|
+
// For non-nested values, don't add empty rows
|
|
787
|
+
primary.push(`${indentation}${readableText}: ${(0,_ohif_core_src_utils__WEBPACK_IMPORTED_MODULE_2__/* .roundNumber */ .Wf)(value, 2)}`);
|
|
788
|
+
}
|
|
789
|
+
}
|
|
790
|
+
}
|
|
791
|
+
return primary;
|
|
792
|
+
}
|
|
793
|
+
|
|
794
|
+
// Get customization for display text mapping
|
|
795
|
+
const displayTextMapper = segment => {
|
|
796
|
+
const defaultDisplay = {
|
|
797
|
+
primary: [],
|
|
798
|
+
secondary: []
|
|
799
|
+
};
|
|
800
|
+
|
|
801
|
+
// If the segment has cachedStats, map it to readable text
|
|
802
|
+
if (segment.cachedStats) {
|
|
803
|
+
const primary = mapStatsToDisplay(segment.cachedStats);
|
|
804
|
+
defaultDisplay.primary = primary;
|
|
805
|
+
}
|
|
806
|
+
return defaultDisplay;
|
|
807
|
+
};
|
|
808
|
+
const updatedSegments = {};
|
|
809
|
+
Object.entries(segments).forEach(([segmentIndex, segment]) => {
|
|
810
|
+
updatedSegments[segmentIndex] = {
|
|
811
|
+
...segment,
|
|
812
|
+
displayText: displayTextMapper(segment)
|
|
813
|
+
};
|
|
814
|
+
});
|
|
815
|
+
|
|
816
|
+
// Map the segments and apply the display text mapper
|
|
817
|
+
return {
|
|
818
|
+
...segmentation,
|
|
819
|
+
label,
|
|
820
|
+
segments: updatedSegments
|
|
821
|
+
};
|
|
822
|
+
}
|
|
823
|
+
|
|
824
|
+
/**
|
|
825
|
+
* Custom hook that provides segmentation data.
|
|
826
|
+
* @param options - The options object.
|
|
827
|
+
* @param options.servicesManager - The services manager object.
|
|
828
|
+
* @param options.subscribeToDataModified - Whether to subscribe to segmentation data modifications.
|
|
829
|
+
* @param options.debounceTime - Debounce time in milliseconds for updates.
|
|
830
|
+
* @returns An array of segmentation data.
|
|
831
|
+
*/
|
|
832
|
+
function useSegmentations({
|
|
833
|
+
servicesManager,
|
|
834
|
+
subscribeToDataModified = false,
|
|
835
|
+
debounceTime = 0
|
|
836
|
+
}) {
|
|
837
|
+
const {
|
|
838
|
+
segmentationService,
|
|
839
|
+
customizationService
|
|
840
|
+
} = servicesManager.services;
|
|
841
|
+
const [segmentations, setSegmentations] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)([]);
|
|
842
|
+
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
|
|
843
|
+
const update = () => {
|
|
844
|
+
const segmentations = segmentationService.getSegmentations();
|
|
845
|
+
if (!segmentations?.length) {
|
|
846
|
+
setSegmentations([]);
|
|
847
|
+
return;
|
|
848
|
+
}
|
|
849
|
+
const mappedSegmentations = segmentations.map(segmentation => mapSegmentationToDisplay(segmentation, customizationService));
|
|
850
|
+
setSegmentations(mappedSegmentations);
|
|
851
|
+
};
|
|
852
|
+
const debouncedUpdate = debounceTime > 0 ? lodash_debounce__WEBPACK_IMPORTED_MODULE_1___default()(update, debounceTime, {
|
|
853
|
+
leading: true,
|
|
854
|
+
trailing: true
|
|
855
|
+
}) : update;
|
|
856
|
+
update();
|
|
857
|
+
const subscriptions = [segmentationService.subscribe(segmentationService.EVENTS.SEGMENTATION_MODIFIED, debouncedUpdate), segmentationService.subscribe(segmentationService.EVENTS.SEGMENTATION_REMOVED, debouncedUpdate)];
|
|
858
|
+
if (subscribeToDataModified) {
|
|
859
|
+
subscriptions.push(segmentationService.subscribe(segmentationService.EVENTS.SEGMENTATION_DATA_MODIFIED, debouncedUpdate));
|
|
860
|
+
}
|
|
861
|
+
return () => {
|
|
862
|
+
subscriptions.forEach(subscription => subscription.unsubscribe());
|
|
863
|
+
if (debounceTime > 0) {
|
|
864
|
+
debouncedUpdate.cancel();
|
|
865
|
+
}
|
|
866
|
+
};
|
|
867
|
+
}, [segmentationService, customizationService, debounceTime, subscribeToDataModified]);
|
|
868
|
+
return segmentations;
|
|
869
|
+
}
|
|
870
|
+
|
|
871
|
+
/***/ }),
|
|
872
|
+
|
|
873
|
+
/***/ 11185:
|
|
742
874
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
743
875
|
|
|
744
876
|
// ESM COMPAT FLAG
|
|
@@ -766,7 +898,7 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
766
898
|
useMeasurements: () => (/* reexport */ useMeasurements),
|
|
767
899
|
usePositionPresentationStore: () => (/* reexport */ usePositionPresentationStore/* usePositionPresentationStore */.q),
|
|
768
900
|
useSegmentationPresentationStore: () => (/* reexport */ useSegmentationPresentationStore/* useSegmentationPresentationStore */.v),
|
|
769
|
-
useSegmentations: () => (/* reexport */ useSegmentations),
|
|
901
|
+
useSegmentations: () => (/* reexport */ useSegmentations/* useSegmentations */.j),
|
|
770
902
|
useSynchronizersStore: () => (/* reexport */ useSynchronizersStore/* useSynchronizersStore */.U)
|
|
771
903
|
});
|
|
772
904
|
|
|
@@ -7404,7 +7536,7 @@ function commandsModule({
|
|
|
7404
7536
|
getCrosshairInstances(toolGroup.id);
|
|
7405
7537
|
}
|
|
7406
7538
|
crosshairInstances.forEach(ins => {
|
|
7407
|
-
ins?.
|
|
7539
|
+
ins?.computeToolCenter();
|
|
7408
7540
|
});
|
|
7409
7541
|
},
|
|
7410
7542
|
/**
|
|
@@ -16433,126 +16565,8 @@ DicomUpload.propTypes = {
|
|
|
16433
16565
|
onStarted: (prop_types_default()).func.isRequired
|
|
16434
16566
|
};
|
|
16435
16567
|
/* harmony default export */ const DicomUpload_DicomUpload = (DicomUpload);
|
|
16436
|
-
|
|
16437
|
-
|
|
16438
|
-
|
|
16439
|
-
|
|
16440
|
-
function useSegmentations_mapSegmentationToDisplay(segmentation, customizationService) {
|
|
16441
|
-
const {
|
|
16442
|
-
label,
|
|
16443
|
-
segments
|
|
16444
|
-
} = segmentation;
|
|
16445
|
-
|
|
16446
|
-
// Get the readable text mapping once
|
|
16447
|
-
const {
|
|
16448
|
-
readableText: readableTextMap
|
|
16449
|
-
} = customizationService.getCustomization('PanelSegmentation.readableText', {});
|
|
16450
|
-
|
|
16451
|
-
// Helper function to recursively map cachedStats to readable display text
|
|
16452
|
-
function mapStatsToDisplay(stats, indent = 0) {
|
|
16453
|
-
const primary = [];
|
|
16454
|
-
const indentation = ' '.repeat(indent);
|
|
16455
|
-
for (const key in stats) {
|
|
16456
|
-
if (Object.prototype.hasOwnProperty.call(stats, key)) {
|
|
16457
|
-
const value = stats[key];
|
|
16458
|
-
const readableText = readableTextMap?.[key];
|
|
16459
|
-
if (!readableText) {
|
|
16460
|
-
continue;
|
|
16461
|
-
}
|
|
16462
|
-
if (typeof value === 'object' && value !== null && !Array.isArray(value)) {
|
|
16463
|
-
// Add empty row before category (except for the first category)
|
|
16464
|
-
if (primary.length > 0) {
|
|
16465
|
-
primary.push('');
|
|
16466
|
-
}
|
|
16467
|
-
// Add category title
|
|
16468
|
-
primary.push(`${indentation}${readableText}`);
|
|
16469
|
-
// Recursively handle nested objects
|
|
16470
|
-
primary.push(...mapStatsToDisplay(value, indent + 1));
|
|
16471
|
-
} else {
|
|
16472
|
-
// For non-nested values, don't add empty rows
|
|
16473
|
-
primary.push(`${indentation}${readableText}: ${(0,utils/* roundNumber */.Wf)(value, 2)}`);
|
|
16474
|
-
}
|
|
16475
|
-
}
|
|
16476
|
-
}
|
|
16477
|
-
return primary;
|
|
16478
|
-
}
|
|
16479
|
-
|
|
16480
|
-
// Get customization for display text mapping
|
|
16481
|
-
const displayTextMapper = segment => {
|
|
16482
|
-
const defaultDisplay = {
|
|
16483
|
-
primary: [],
|
|
16484
|
-
secondary: []
|
|
16485
|
-
};
|
|
16486
|
-
|
|
16487
|
-
// If the segment has cachedStats, map it to readable text
|
|
16488
|
-
if (segment.cachedStats) {
|
|
16489
|
-
const primary = mapStatsToDisplay(segment.cachedStats);
|
|
16490
|
-
defaultDisplay.primary = primary;
|
|
16491
|
-
}
|
|
16492
|
-
return defaultDisplay;
|
|
16493
|
-
};
|
|
16494
|
-
const updatedSegments = {};
|
|
16495
|
-
Object.entries(segments).forEach(([segmentIndex, segment]) => {
|
|
16496
|
-
updatedSegments[segmentIndex] = {
|
|
16497
|
-
...segment,
|
|
16498
|
-
displayText: displayTextMapper(segment)
|
|
16499
|
-
};
|
|
16500
|
-
});
|
|
16501
|
-
|
|
16502
|
-
// Map the segments and apply the display text mapper
|
|
16503
|
-
return {
|
|
16504
|
-
...segmentation,
|
|
16505
|
-
label,
|
|
16506
|
-
segments: updatedSegments
|
|
16507
|
-
};
|
|
16508
|
-
}
|
|
16509
|
-
|
|
16510
|
-
/**
|
|
16511
|
-
* Custom hook that provides segmentation data.
|
|
16512
|
-
* @param options - The options object.
|
|
16513
|
-
* @param options.servicesManager - The services manager object.
|
|
16514
|
-
* @param options.subscribeToDataModified - Whether to subscribe to segmentation data modifications.
|
|
16515
|
-
* @param options.debounceTime - Debounce time in milliseconds for updates.
|
|
16516
|
-
* @returns An array of segmentation data.
|
|
16517
|
-
*/
|
|
16518
|
-
function useSegmentations({
|
|
16519
|
-
servicesManager,
|
|
16520
|
-
subscribeToDataModified = false,
|
|
16521
|
-
debounceTime = 0
|
|
16522
|
-
}) {
|
|
16523
|
-
const {
|
|
16524
|
-
segmentationService,
|
|
16525
|
-
customizationService
|
|
16526
|
-
} = servicesManager.services;
|
|
16527
|
-
const [segmentations, setSegmentations] = (0,react.useState)([]);
|
|
16528
|
-
(0,react.useEffect)(() => {
|
|
16529
|
-
const update = () => {
|
|
16530
|
-
const segmentations = segmentationService.getSegmentations();
|
|
16531
|
-
if (!segmentations?.length) {
|
|
16532
|
-
setSegmentations([]);
|
|
16533
|
-
return;
|
|
16534
|
-
}
|
|
16535
|
-
const mappedSegmentations = segmentations.map(segmentation => useSegmentations_mapSegmentationToDisplay(segmentation, customizationService));
|
|
16536
|
-
setSegmentations(mappedSegmentations);
|
|
16537
|
-
};
|
|
16538
|
-
const debouncedUpdate = debounceTime > 0 ? lodash_debounce_default()(update, debounceTime, {
|
|
16539
|
-
leading: true,
|
|
16540
|
-
trailing: true
|
|
16541
|
-
}) : update;
|
|
16542
|
-
update();
|
|
16543
|
-
const subscriptions = [segmentationService.subscribe(segmentationService.EVENTS.SEGMENTATION_MODIFIED, debouncedUpdate), segmentationService.subscribe(segmentationService.EVENTS.SEGMENTATION_REMOVED, debouncedUpdate)];
|
|
16544
|
-
if (subscribeToDataModified) {
|
|
16545
|
-
subscriptions.push(segmentationService.subscribe(segmentationService.EVENTS.SEGMENTATION_DATA_MODIFIED, debouncedUpdate));
|
|
16546
|
-
}
|
|
16547
|
-
return () => {
|
|
16548
|
-
subscriptions.forEach(subscription => subscription.unsubscribe());
|
|
16549
|
-
if (debounceTime > 0) {
|
|
16550
|
-
debouncedUpdate.cancel();
|
|
16551
|
-
}
|
|
16552
|
-
};
|
|
16553
|
-
}, [segmentationService, customizationService, debounceTime, subscribeToDataModified]);
|
|
16554
|
-
return segmentations;
|
|
16555
|
-
}
|
|
16568
|
+
// EXTERNAL MODULE: ../../../extensions/cornerstone/src/hooks/useSegmentations.ts
|
|
16569
|
+
var useSegmentations = __webpack_require__(73421);
|
|
16556
16570
|
;// CONCATENATED MODULE: ../../../extensions/cornerstone/src/index.tsx
|
|
16557
16571
|
function src_extends() { return src_extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, src_extends.apply(null, arguments); }
|
|
16558
16572
|
|
|
@@ -5743,9 +5743,13 @@ class CrosshairsTool extends base/* AnnotationTool */.EC {
|
|
|
5743
5743
|
}
|
|
5744
5744
|
viewport.render();
|
|
5745
5745
|
}
|
|
5746
|
-
this.
|
|
5746
|
+
this._computeToolCenter(viewportsInfo);
|
|
5747
5747
|
};
|
|
5748
|
-
this.computeToolCenter = (
|
|
5748
|
+
this.computeToolCenter = () => {
|
|
5749
|
+
const viewportsInfo = this._getViewportsInfo();
|
|
5750
|
+
this._computeToolCenter(viewportsInfo);
|
|
5751
|
+
};
|
|
5752
|
+
this._computeToolCenter = (viewportsInfo) => {
|
|
5749
5753
|
if (!viewportsInfo.length || viewportsInfo.length === 1) {
|
|
5750
5754
|
console.warn('For crosshairs to operate, at least two viewports must be given.');
|
|
5751
5755
|
return;
|
|
@@ -6288,7 +6292,7 @@ class CrosshairsTool extends base/* AnnotationTool */.EC {
|
|
|
6288
6292
|
};
|
|
6289
6293
|
this._onNewVolume = () => {
|
|
6290
6294
|
const viewportsInfo = this._getViewportsInfo();
|
|
6291
|
-
this.
|
|
6295
|
+
this._computeToolCenter(viewportsInfo);
|
|
6292
6296
|
};
|
|
6293
6297
|
this._areViewportIdArraysEqual = (viewportIdArrayOne, viewportIdArrayTwo) => {
|
|
6294
6298
|
if (viewportIdArrayOne.length !== viewportIdArrayTwo.length) {
|
|
@@ -6757,15 +6761,15 @@ class CrosshairsTool extends base/* AnnotationTool */.EC {
|
|
|
6757
6761
|
const viewportsInfo = this._getViewportsInfo();
|
|
6758
6762
|
this._unsubscribeToViewportNewVolumeSet(viewportsInfo);
|
|
6759
6763
|
this._subscribeToViewportNewVolumeSet(viewportsInfo);
|
|
6760
|
-
this.
|
|
6764
|
+
this._computeToolCenter(viewportsInfo);
|
|
6761
6765
|
}
|
|
6762
6766
|
onSetToolPassive() {
|
|
6763
6767
|
const viewportsInfo = this._getViewportsInfo();
|
|
6764
|
-
this.
|
|
6768
|
+
this._computeToolCenter(viewportsInfo);
|
|
6765
6769
|
}
|
|
6766
6770
|
onSetToolEnabled() {
|
|
6767
6771
|
const viewportsInfo = this._getViewportsInfo();
|
|
6768
|
-
this.
|
|
6772
|
+
this._computeToolCenter(viewportsInfo);
|
|
6769
6773
|
}
|
|
6770
6774
|
onSetToolDisabled() {
|
|
6771
6775
|
const viewportsInfo = this._getViewportsInfo();
|
|
@@ -6292,6 +6292,7 @@ async function addLabelmapToElement(element, labelMapData, segmentationId) {
|
|
|
6292
6292
|
];
|
|
6293
6293
|
await (0,_cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.addImageSlicesToViewports)(renderingEngine, stackInputs, [viewportId]);
|
|
6294
6294
|
}
|
|
6295
|
+
(0,_stateManagement_segmentation_triggerSegmentationEvents__WEBPACK_IMPORTED_MODULE_3__.triggerSegmentationDataModified)(segmentationId);
|
|
6295
6296
|
}
|
|
6296
6297
|
function _ensureVolumeHasVolumeId(labelMapData, segmentationId) {
|
|
6297
6298
|
let { volumeId } = labelMapData;
|
|
@@ -71,17 +71,14 @@
|
|
|
71
71
|
/******/ }
|
|
72
72
|
/******/ // Create a new module (and put it into the cache)
|
|
73
73
|
/******/ var module = __webpack_module_cache__[moduleId] = {
|
|
74
|
-
/******/ id
|
|
75
|
-
/******/ loaded
|
|
74
|
+
/******/ // no module.id needed
|
|
75
|
+
/******/ // no module.loaded needed
|
|
76
76
|
/******/ exports: {}
|
|
77
77
|
/******/ };
|
|
78
78
|
/******/
|
|
79
79
|
/******/ // Execute the module function
|
|
80
80
|
/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
|
|
81
81
|
/******/
|
|
82
|
-
/******/ // Flag the module as loaded
|
|
83
|
-
/******/ module.loaded = true;
|
|
84
|
-
/******/
|
|
85
82
|
/******/ // Return the exports of the module
|
|
86
83
|
/******/ return module.exports;
|
|
87
84
|
/******/ }
|
|
@@ -99,11 +96,6 @@
|
|
|
99
96
|
/******/ };
|
|
100
97
|
/******/
|
|
101
98
|
/************************************************************************/
|
|
102
|
-
/******/ /* webpack/runtime/amd options */
|
|
103
|
-
/******/ (() => {
|
|
104
|
-
/******/ __webpack_require__.amdO = {};
|
|
105
|
-
/******/ })();
|
|
106
|
-
/******/
|
|
107
99
|
/******/ /* webpack/runtime/chunk loaded */
|
|
108
100
|
/******/ (() => {
|
|
109
101
|
/******/ var deferred = [];
|
|
@@ -150,6 +142,36 @@
|
|
|
150
142
|
/******/ };
|
|
151
143
|
/******/ })();
|
|
152
144
|
/******/
|
|
145
|
+
/******/ /* webpack/runtime/create fake namespace object */
|
|
146
|
+
/******/ (() => {
|
|
147
|
+
/******/ var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);
|
|
148
|
+
/******/ var leafPrototypes;
|
|
149
|
+
/******/ // create a fake namespace object
|
|
150
|
+
/******/ // mode & 1: value is a module id, require it
|
|
151
|
+
/******/ // mode & 2: merge all properties of value into the ns
|
|
152
|
+
/******/ // mode & 4: return value when already ns object
|
|
153
|
+
/******/ // mode & 16: return value when it's Promise-like
|
|
154
|
+
/******/ // mode & 8|1: behave like require
|
|
155
|
+
/******/ __webpack_require__.t = function(value, mode) {
|
|
156
|
+
/******/ if(mode & 1) value = this(value);
|
|
157
|
+
/******/ if(mode & 8) return value;
|
|
158
|
+
/******/ if(typeof value === 'object' && value) {
|
|
159
|
+
/******/ if((mode & 4) && value.__esModule) return value;
|
|
160
|
+
/******/ if((mode & 16) && typeof value.then === 'function') return value;
|
|
161
|
+
/******/ }
|
|
162
|
+
/******/ var ns = Object.create(null);
|
|
163
|
+
/******/ __webpack_require__.r(ns);
|
|
164
|
+
/******/ var def = {};
|
|
165
|
+
/******/ leafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];
|
|
166
|
+
/******/ for(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {
|
|
167
|
+
/******/ Object.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key])));
|
|
168
|
+
/******/ }
|
|
169
|
+
/******/ def['default'] = () => (value);
|
|
170
|
+
/******/ __webpack_require__.d(ns, def);
|
|
171
|
+
/******/ return ns;
|
|
172
|
+
/******/ };
|
|
173
|
+
/******/ })();
|
|
174
|
+
/******/
|
|
153
175
|
/******/ /* webpack/runtime/define property getters */
|
|
154
176
|
/******/ (() => {
|
|
155
177
|
/******/ // define getter functions for harmony exports
|
|
@@ -180,7 +202,7 @@
|
|
|
180
202
|
/******/ // This function allow to reference async chunks and sibling chunks for the entrypoint
|
|
181
203
|
/******/ __webpack_require__.u = (chunkId) => {
|
|
182
204
|
/******/ // return url for filenames based on template
|
|
183
|
-
/******/ return "" + chunkId + ".bundle." + {"4571":"
|
|
205
|
+
/******/ return "" + chunkId + ".bundle." + {"4571":"9ad4f229948c2a2da2ec","8094":"411698eaf81975a7f12d","9952":"6f1a92b82c42c60f57eb"}[chunkId] + ".js";
|
|
184
206
|
/******/ };
|
|
185
207
|
/******/ })();
|
|
186
208
|
/******/
|
|
@@ -193,33 +215,6 @@
|
|
|
193
215
|
/******/ };
|
|
194
216
|
/******/ })();
|
|
195
217
|
/******/
|
|
196
|
-
/******/ /* webpack/runtime/global */
|
|
197
|
-
/******/ (() => {
|
|
198
|
-
/******/ __webpack_require__.g = (function() {
|
|
199
|
-
/******/ if (typeof globalThis === 'object') return globalThis;
|
|
200
|
-
/******/ try {
|
|
201
|
-
/******/ return this || new Function('return this')();
|
|
202
|
-
/******/ } catch (e) {
|
|
203
|
-
/******/ if (typeof window === 'object') return window;
|
|
204
|
-
/******/ }
|
|
205
|
-
/******/ })();
|
|
206
|
-
/******/ })();
|
|
207
|
-
/******/
|
|
208
|
-
/******/ /* webpack/runtime/harmony module decorator */
|
|
209
|
-
/******/ (() => {
|
|
210
|
-
/******/ __webpack_require__.hmd = (module) => {
|
|
211
|
-
/******/ module = Object.create(module);
|
|
212
|
-
/******/ if (!module.children) module.children = [];
|
|
213
|
-
/******/ Object.defineProperty(module, 'exports', {
|
|
214
|
-
/******/ enumerable: true,
|
|
215
|
-
/******/ set: () => {
|
|
216
|
-
/******/ throw new Error('ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: ' + module.id);
|
|
217
|
-
/******/ }
|
|
218
|
-
/******/ });
|
|
219
|
-
/******/ return module;
|
|
220
|
-
/******/ };
|
|
221
|
-
/******/ })();
|
|
222
|
-
/******/
|
|
223
218
|
/******/ /* webpack/runtime/hasOwnProperty shorthand */
|
|
224
219
|
/******/ (() => {
|
|
225
220
|
/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
|
|
@@ -970,8 +970,8 @@ PanelPetSUV.propTypes = {
|
|
|
970
970
|
}).isRequired
|
|
971
971
|
}).isRequired
|
|
972
972
|
};
|
|
973
|
-
// EXTERNAL MODULE: ../../../extensions/cornerstone/src/index.tsx +
|
|
974
|
-
var cornerstone_src = __webpack_require__(
|
|
973
|
+
// EXTERNAL MODULE: ../../../extensions/cornerstone/src/index.tsx + 105 modules
|
|
974
|
+
var cornerstone_src = __webpack_require__(11185);
|
|
975
975
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/index.js
|
|
976
976
|
var esm = __webpack_require__(81985);
|
|
977
977
|
;// CONCATENATED MODULE: ../../../extensions/tmtv/src/utils/handleROIThresholding.ts
|
|
@@ -824,7 +824,7 @@ function decodeJPEGLossless_initialize(decodeConfig) {
|
|
|
824
824
|
return Promise.resolve();
|
|
825
825
|
}
|
|
826
826
|
return new Promise((resolve, reject) => {
|
|
827
|
-
__webpack_require__.e(/* import() */ 9952).then(__webpack_require__.bind(__webpack_require__, 69952)).then((jpeg) => {
|
|
827
|
+
__webpack_require__.e(/* import() */ 9952).then(__webpack_require__.t.bind(__webpack_require__, 69952, 23)).then((jpeg) => {
|
|
828
828
|
decodeJPEGLossless_local.jpeg = jpeg;
|
|
829
829
|
resolve();
|
|
830
830
|
}, reject);
|
|
@@ -28,8 +28,8 @@ var src = __webpack_require__(29463);
|
|
|
28
28
|
var esm = __webpack_require__(81985);
|
|
29
29
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/adapters/dist/esm/index.js + 61 modules
|
|
30
30
|
var dist_esm = __webpack_require__(33970);
|
|
31
|
-
// EXTERNAL MODULE: ../../../extensions/cornerstone/src/index.tsx +
|
|
32
|
-
var cornerstone_src = __webpack_require__(
|
|
31
|
+
// EXTERNAL MODULE: ../../../extensions/cornerstone/src/index.tsx + 105 modules
|
|
32
|
+
var cornerstone_src = __webpack_require__(11185);
|
|
33
33
|
;// CONCATENATED MODULE: ../../../extensions/cornerstone-dicom-pmap/src/getSopClassHandlerModule.ts
|
|
34
34
|
|
|
35
35
|
|
|
@@ -75,8 +75,8 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
75
75
|
var react = __webpack_require__(86326);
|
|
76
76
|
// EXTERNAL MODULE: ../../core/src/index.ts + 71 modules
|
|
77
77
|
var src = __webpack_require__(29463);
|
|
78
|
-
// EXTERNAL MODULE: ../../../extensions/cornerstone/src/index.tsx +
|
|
79
|
-
var cornerstone_src = __webpack_require__(
|
|
78
|
+
// EXTERNAL MODULE: ../../../extensions/cornerstone/src/index.tsx + 105 modules
|
|
79
|
+
var cornerstone_src = __webpack_require__(11185);
|
|
80
80
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/adapters/dist/esm/index.js + 61 modules
|
|
81
81
|
var esm = __webpack_require__(33970);
|
|
82
82
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/index.js + 82 modules
|
|
@@ -2122,8 +2122,8 @@ function getLabelFromDCMJSImportedToolData(toolData) {
|
|
|
2122
2122
|
}
|
|
2123
2123
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/index.js + 82 modules
|
|
2124
2124
|
var tools_dist_esm = __webpack_require__(55139);
|
|
2125
|
-
// EXTERNAL MODULE: ../../../extensions/cornerstone/src/index.tsx +
|
|
2126
|
-
var cornerstone_src = __webpack_require__(
|
|
2125
|
+
// EXTERNAL MODULE: ../../../extensions/cornerstone/src/index.tsx + 105 modules
|
|
2126
|
+
var cornerstone_src = __webpack_require__(11185);
|
|
2127
2127
|
;// CONCATENATED MODULE: ../../../extensions/cornerstone-dicom-sr/src/utils/hydrateStructuredReport.ts
|
|
2128
2128
|
|
|
2129
2129
|
|
|
@@ -10950,9 +10950,13 @@ class CrosshairsTool extends base/* AnnotationTool */.EC {
|
|
|
10950
10950
|
}
|
|
10951
10951
|
viewport.render();
|
|
10952
10952
|
}
|
|
10953
|
-
this.
|
|
10953
|
+
this._computeToolCenter(viewportsInfo);
|
|
10954
10954
|
};
|
|
10955
|
-
this.computeToolCenter = (
|
|
10955
|
+
this.computeToolCenter = () => {
|
|
10956
|
+
const viewportsInfo = this._getViewportsInfo();
|
|
10957
|
+
this._computeToolCenter(viewportsInfo);
|
|
10958
|
+
};
|
|
10959
|
+
this._computeToolCenter = (viewportsInfo) => {
|
|
10956
10960
|
if (!viewportsInfo.length || viewportsInfo.length === 1) {
|
|
10957
10961
|
console.warn('For crosshairs to operate, at least two viewports must be given.');
|
|
10958
10962
|
return;
|
|
@@ -11495,7 +11499,7 @@ class CrosshairsTool extends base/* AnnotationTool */.EC {
|
|
|
11495
11499
|
};
|
|
11496
11500
|
this._onNewVolume = () => {
|
|
11497
11501
|
const viewportsInfo = this._getViewportsInfo();
|
|
11498
|
-
this.
|
|
11502
|
+
this._computeToolCenter(viewportsInfo);
|
|
11499
11503
|
};
|
|
11500
11504
|
this._areViewportIdArraysEqual = (viewportIdArrayOne, viewportIdArrayTwo) => {
|
|
11501
11505
|
if (viewportIdArrayOne.length !== viewportIdArrayTwo.length) {
|
|
@@ -11964,15 +11968,15 @@ class CrosshairsTool extends base/* AnnotationTool */.EC {
|
|
|
11964
11968
|
const viewportsInfo = this._getViewportsInfo();
|
|
11965
11969
|
this._unsubscribeToViewportNewVolumeSet(viewportsInfo);
|
|
11966
11970
|
this._subscribeToViewportNewVolumeSet(viewportsInfo);
|
|
11967
|
-
this.
|
|
11971
|
+
this._computeToolCenter(viewportsInfo);
|
|
11968
11972
|
}
|
|
11969
11973
|
onSetToolPassive() {
|
|
11970
11974
|
const viewportsInfo = this._getViewportsInfo();
|
|
11971
|
-
this.
|
|
11975
|
+
this._computeToolCenter(viewportsInfo);
|
|
11972
11976
|
}
|
|
11973
11977
|
onSetToolEnabled() {
|
|
11974
11978
|
const viewportsInfo = this._getViewportsInfo();
|
|
11975
|
-
this.
|
|
11979
|
+
this._computeToolCenter(viewportsInfo);
|
|
11976
11980
|
}
|
|
11977
11981
|
onSetToolDisabled() {
|
|
11978
11982
|
const viewportsInfo = this._getViewportsInfo();
|
|
@@ -1097,8 +1097,8 @@ function WorkflowPanel({
|
|
|
1097
1097
|
|
|
1098
1098
|
|
|
1099
1099
|
|
|
1100
|
-
// EXTERNAL MODULE: ../../../extensions/cornerstone/src/index.tsx +
|
|
1101
|
-
var cornerstone_src = __webpack_require__(
|
|
1100
|
+
// EXTERNAL MODULE: ../../../extensions/cornerstone/src/index.tsx + 105 modules
|
|
1101
|
+
var cornerstone_src = __webpack_require__(11185);
|
|
1102
1102
|
;// CONCATENATED MODULE: ../../../extensions/cornerstone-dynamic-volume/src/panels/DynamicExport.tsx
|
|
1103
1103
|
|
|
1104
1104
|
|
|
@@ -1917,8 +1917,8 @@ WrappedPanelStudyBrowserTracking.propTypes = {
|
|
|
1917
1917
|
servicesManager: (prop_types_default()).object.isRequired
|
|
1918
1918
|
};
|
|
1919
1919
|
/* harmony default export */ const panels_PanelStudyBrowserTracking = (WrappedPanelStudyBrowserTracking);
|
|
1920
|
-
// EXTERNAL MODULE: ../../../extensions/cornerstone/src/index.tsx +
|
|
1921
|
-
var cornerstone_src = __webpack_require__(
|
|
1920
|
+
// EXTERNAL MODULE: ../../../extensions/cornerstone/src/index.tsx + 105 modules
|
|
1921
|
+
var cornerstone_src = __webpack_require__(11185);
|
|
1922
1922
|
;// CONCATENATED MODULE: ../../../extensions/measurement-tracking/src/panels/PanelMeasurementTableTracking.tsx
|
|
1923
1923
|
|
|
1924
1924
|
|
|
@@ -121,26 +121,23 @@ class BaseVolumeViewport extends _Viewport__WEBPACK_IMPORTED_MODULE_18__/* ["def
|
|
|
121
121
|
return;
|
|
122
122
|
}
|
|
123
123
|
const { colormap: latestColormap, VOILUTFunction, interpolationType, invert, slabThickness, preset, } = this.viewportProperties;
|
|
124
|
-
|
|
124
|
+
volumeId ||= this.getVolumeId();
|
|
125
|
+
const volume = _cache_cache__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Ay.getVolume(volumeId);
|
|
125
126
|
if (!volume) {
|
|
126
127
|
return null;
|
|
127
128
|
}
|
|
128
|
-
const
|
|
129
|
-
.
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
}
|
|
140
|
-
.filter(Boolean);
|
|
141
|
-
const voiRange = volumeId
|
|
142
|
-
? voiRanges.find((range) => range.volumeId === volumeId)?.voiRange
|
|
143
|
-
: voiRanges[0]?.voiRange;
|
|
129
|
+
const volumeActorEntry = this.getActors().find((actorEntry) => {
|
|
130
|
+
return actorEntry.referencedId === volumeId;
|
|
131
|
+
});
|
|
132
|
+
if (!volumeActorEntry) {
|
|
133
|
+
return;
|
|
134
|
+
}
|
|
135
|
+
const volumeActor = volumeActorEntry.actor;
|
|
136
|
+
const cfun = volumeActor.getProperty().getRGBTransferFunction(0);
|
|
137
|
+
const [lower, upper] = this.viewportProperties?.VOILUTFunction === 'SIGMOID'
|
|
138
|
+
? (0,_utilities_getVoiFromSigmoidRGBTransferFunction__WEBPACK_IMPORTED_MODULE_23__/* ["default"] */ .A)(cfun)
|
|
139
|
+
: cfun.getRange();
|
|
140
|
+
const voiRange = { lower, upper };
|
|
144
141
|
const volumeColormap = this.getColormap(volumeId);
|
|
145
142
|
const colormap = volumeId && volumeColormap ? volumeColormap : latestColormap;
|
|
146
143
|
return {
|
|
@@ -3047,8 +3047,8 @@ function ViewerHeader({
|
|
|
3047
3047
|
hotkeyDefinitions,
|
|
3048
3048
|
hotkeyDefaults
|
|
3049
3049
|
} = hotkeysManager;
|
|
3050
|
-
const versionNumber = "3.9.0-beta.
|
|
3051
|
-
const commitHash = "
|
|
3050
|
+
const versionNumber = "3.9.0-beta.108";
|
|
3051
|
+
const commitHash = "aa2b649444eb4fe5422e72ea7830a709c4d24a90";
|
|
3052
3052
|
const menuOptions = [{
|
|
3053
3053
|
title: t('Header:About'),
|
|
3054
3054
|
icon: 'info',
|
|
@@ -6824,6 +6824,11 @@ const commandsModule = ({
|
|
|
6824
6824
|
findOrCreateViewport,
|
|
6825
6825
|
isHangingProtocolLayout: true
|
|
6826
6826
|
});
|
|
6827
|
+
|
|
6828
|
+
// Reset crosshairs after restoring the layout
|
|
6829
|
+
setTimeout(() => {
|
|
6830
|
+
commandsManager.runCommand('resetCrosshairs');
|
|
6831
|
+
}, 0);
|
|
6827
6832
|
} else {
|
|
6828
6833
|
// We are not in one-up, so toggle to one up.
|
|
6829
6834
|
|