@ohif/app 3.12.0-beta.90 → 3.12.0-beta.92
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/{1037.bundle.87a5adb8c92bd5bf53f5.js → 1037.bundle.dd9098a9a640f0d0ef0f.js} +129 -96
- package/dist/{1608.bundle.3d904bc76f5d5f78ff21.js → 1608.bundle.f855c4bdb7f00eb66fca.js} +1 -1
- package/dist/{1903.bundle.f0505c6e927d0bef5589.js → 1903.bundle.9a291597f23ebaa3371c.js} +49 -47
- package/dist/{1604.bundle.4f01a6b0b8d5b1cbc294.js → 1933.bundle.a5d41c04da5425d06694.js} +13 -26
- package/dist/{2018.bundle.59c7c4cb3f79f63bab68.js → 2018.bundle.4527f2b0c1c8ff75f568.js} +18 -43
- package/dist/{306.bundle.f9faa2b3cdd7e86b5869.js → 306.bundle.a0af0889477845729c6a.js} +23 -1
- package/dist/{3461.bundle.458597198f24359ec78f.js → 3461.bundle.3cac685ef19f883a0f9d.js} +27 -8
- package/dist/{4019.bundle.1be1cdd0805ad2c59d65.js → 4019.bundle.03029c488a02493cb7f3.js} +17 -1
- package/dist/{2518.bundle.644302643ac0790e7374.js → 4033.bundle.1609f8751de2a6aff280.js} +457 -303
- package/dist/{4819.bundle.f187a4c0517c85e37ab0.js → 4819.bundle.14344bf9acf5c5f6d123.js} +3 -3
- package/dist/{5028.bundle.6003ab9178779929462f.js → 5028.bundle.c61b7cd88172e2d589d5.js} +2 -2
- package/dist/{5400.bundle.c3a3fe8867efa2edfa94.js → 5400.bundle.428fdd2dc347a7fda9e6.js} +96 -92
- package/dist/5457.bundle.af893cd38fdaeafd5c2a.js +89 -0
- package/dist/{5485.bundle.2ee096f57ff7e51d4c23.js → 5485.bundle.929d9add8bdf90a4f3c7.js} +8 -0
- package/dist/{5802.bundle.8922caf16c088b10cdb0.js → 5802.bundle.756d2ed511c06ee8b461.js} +2 -2
- package/dist/{6991.bundle.46bc04720d99fbb06785.js → 6991.bundle.7d091de815571097b96e.js} +8 -10
- package/dist/{7412.bundle.34fe5e72833e857edc0a.js → 7412.bundle.dfe01ae3e53107abe53d.js} +80 -57
- package/dist/{8305.bundle.8ea926425cdffaf84fe3.js → 8305.bundle.08ba73235df90e099838.js} +75 -55
- package/dist/{8558.bundle.c9ffb4f942dbbbff1849.js → 8558.bundle.705446f4883e84021bf4.js} +29 -11
- package/dist/{8583.bundle.7715397a42e8f00a9e3e.js → 8583.bundle.0288cadf5cf8401446b1.js} +12 -13
- package/dist/{874.bundle.92ddc54408fef9debee7.js → 874.bundle.7e543ec9343c9a718e3d.js} +35 -42
- package/dist/{3613.bundle.6157004e0592003c0800.js → 8802.bundle.4958d8ba1d0d521a002a.js} +131 -76
- package/dist/{9548.bundle.7be4f24aeadd0ad4f16c.js → 9195.bundle.70afccd0f802b78c279a.js} +75 -104
- package/dist/{9845.bundle.7e4db5e31b28d73fdac2.js → 9845.bundle.0d22f2210c1d5ac18882.js} +1 -1
- package/dist/{app.bundle.bdd8a45996ed4ca28560.js → app.bundle.2b7e40349f89ffdfd96c.js} +1055 -219
- package/dist/{compute.bundle.f3ca9fb0e7ce9e885b9c.js → compute.bundle.4c0ef8b919cbe5eef44d.js} +3 -3
- package/dist/index.html +1 -1
- package/dist/{polySeg.bundle.7b8d1bb21d442a48da1d.js → polySeg.bundle.75f37f2780c5375e161e.js} +3 -3
- package/dist/sw.js +1 -1
- package/package.json +22 -22
- package/dist/5457.bundle.535bae0c872c1ca0c2cb.js +0 -1358
- /package/dist/{1459.bundle.0481573ae1bde12b24ee.js → 1459.bundle.c4acfc6df383fc187e9e.js} +0 -0
- /package/dist/{147.bundle.6fc65a239d1ae1c6a918.js → 147.bundle.c191ca0b67633f707aff.js} +0 -0
- /package/dist/{1515.bundle.73d415797a677ae5261e.js → 1515.bundle.3f81b326242dd945ecdb.js} +0 -0
- /package/dist/{1604.css → 1933.css} +0 -0
- /package/dist/{213.bundle.9b152cd4d202cae43af2.js → 213.bundle.33092c23ffe1d81ae242.js} +0 -0
- /package/dist/{2243.bundle.25ca9faa6d0776355adf.js → 2243.bundle.e37c80996a222167dc14.js} +0 -0
- /package/dist/{2424.bundle.57b7484a3b1b1e5a1722.js → 2424.bundle.45583fc64208a2821aa3.js} +0 -0
- /package/dist/{319.bundle.4ea0dbcfeb553c900206.js → 319.bundle.febb2a63634488c11db6.js} +0 -0
- /package/dist/{6027.bundle.06ab1f1cd27f93f826e5.js → 6027.bundle.b2942a0dd2c583374d7b.js} +0 -0
- /package/dist/{7431.bundle.55dd86000e66bee467e2.js → 7431.bundle.b80819b8eb28d2ee897d.js} +0 -0
- /package/dist/{7639.bundle.a89f4a8c6e8b2593d7a4.js → 7639.bundle.2ad4b6cd132d87439fa6.js} +0 -0
- /package/dist/{85.bundle.f3a9149485e3fcf652f0.js → 85.bundle.a772983604a0f9514e33.js} +0 -0
- /package/dist/{9862.bundle.0456a2d473895bf2916e.js → 9862.bundle.eca4ea8821bb040a44c1.js} +0 -0
- /package/dist/{9927.bundle.d7051dac659d827d62d3.js → 9927.bundle.775cb41458de4c28a9ba.js} +0 -0
|
@@ -1183,7 +1183,7 @@ function PanelStudyBrowserTracking({
|
|
|
1183
1183
|
seriesNumber: ds.SeriesNumber,
|
|
1184
1184
|
modality: ds.Modality,
|
|
1185
1185
|
seriesDate: ds.SeriesDate ? new Date(ds.SeriesDate).toLocaleDateString() : '',
|
|
1186
|
-
numInstances: ds.numImageFrames,
|
|
1186
|
+
numInstances: ds.numImageFrames ?? ds.instances?.length,
|
|
1187
1187
|
loadingProgress,
|
|
1188
1188
|
countIcon: ds.countIcon,
|
|
1189
1189
|
messages: ds.messages,
|
|
@@ -1244,8 +1244,8 @@ function getImageSrcFromImageId(cornerstone, imageId) {
|
|
|
1244
1244
|
});
|
|
1245
1245
|
}
|
|
1246
1246
|
/* harmony default export */ const PanelStudyBrowserTracking_getImageSrcFromImageId = (getImageSrcFromImageId);
|
|
1247
|
-
// EXTERNAL MODULE: ../../../extensions/default/src/index.ts +
|
|
1248
|
-
var default_src = __webpack_require__(
|
|
1247
|
+
// EXTERNAL MODULE: ../../../extensions/default/src/index.ts + 139 modules
|
|
1248
|
+
var default_src = __webpack_require__(39195);
|
|
1249
1249
|
;// ../../../extensions/measurement-tracking/src/panels/PanelStudyBrowserTracking/index.tsx
|
|
1250
1250
|
|
|
1251
1251
|
//
|
|
@@ -28,8 +28,8 @@ var src = __webpack_require__(42356);
|
|
|
28
28
|
var i18n_src = __webpack_require__(68523);
|
|
29
29
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/index.js + 1 modules
|
|
30
30
|
var esm = __webpack_require__(15327);
|
|
31
|
-
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/adapters/dist/esm/index.js +
|
|
32
|
-
var dist_esm = __webpack_require__(
|
|
31
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/adapters/dist/esm/index.js + 70 modules
|
|
32
|
+
var dist_esm = __webpack_require__(14041);
|
|
33
33
|
// EXTERNAL MODULE: ../../../extensions/cornerstone/src/index.tsx + 192 modules
|
|
34
34
|
var cornerstone_src = __webpack_require__(71903);
|
|
35
35
|
;// ../../../extensions/cornerstone-dicom-pmap/src/getSopClassHandlerModule.ts
|
|
@@ -622,9 +622,12 @@ function getToolGroupForViewport(viewportId, renderingEngineId) {
|
|
|
622
622
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
623
623
|
/* harmony export */ A: () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
624
624
|
/* harmony export */ });
|
|
625
|
+
/* unused harmony export PlanarFreehandContourSegmentationTool */
|
|
625
626
|
/* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(15327);
|
|
626
627
|
/* harmony import */ var _stateManagement_segmentation_triggerSegmentationEvents__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(49906);
|
|
627
628
|
/* harmony import */ var _PlanarFreehandROITool__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(28220);
|
|
629
|
+
/* harmony import */ var _utilities_contours_AnnotationToPointData__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(29632);
|
|
630
|
+
|
|
628
631
|
|
|
629
632
|
|
|
630
633
|
|
|
@@ -639,6 +642,9 @@ class PlanarFreehandContourSegmentationTool extends _PlanarFreehandROITool__WEBP
|
|
|
639
642
|
}, toolProps);
|
|
640
643
|
super(initialProps);
|
|
641
644
|
}
|
|
645
|
+
static {
|
|
646
|
+
_utilities_contours_AnnotationToPointData__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .A.register(this);
|
|
647
|
+
}
|
|
642
648
|
isContourSegmentationTool() {
|
|
643
649
|
return true;
|
|
644
650
|
}
|
|
@@ -664,32 +670,30 @@ class PlanarFreehandContourSegmentationTool extends _PlanarFreehandROITool__WEBP
|
|
|
664
670
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
665
671
|
/* harmony export */ A: () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
666
672
|
/* harmony export */ });
|
|
667
|
-
/* harmony import */ var
|
|
668
|
-
/* harmony import */ var
|
|
669
|
-
/* harmony import */ var
|
|
670
|
-
/* harmony import */ var
|
|
671
|
-
/* harmony import */ var
|
|
672
|
-
/* harmony import */ var
|
|
673
|
-
/* harmony import */ var
|
|
674
|
-
/* harmony import */ var
|
|
675
|
-
/* harmony import */ var
|
|
676
|
-
/* harmony import */ var
|
|
677
|
-
/* harmony import */ var
|
|
678
|
-
/* harmony import */ var
|
|
679
|
-
/* harmony import */ var
|
|
680
|
-
/* harmony import */ var
|
|
681
|
-
/* harmony import */ var
|
|
682
|
-
/* harmony import */ var
|
|
683
|
-
/* harmony import */ var
|
|
684
|
-
/* harmony import */ var
|
|
685
|
-
/* harmony import */ var
|
|
686
|
-
/* harmony import */ var
|
|
687
|
-
/* harmony import */ var
|
|
688
|
-
/* harmony import */ var
|
|
689
|
-
/* harmony import */ var
|
|
690
|
-
/* harmony import */ var
|
|
691
|
-
/* harmony import */ var _utilities_getPixelValueUnits__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(40634);
|
|
692
|
-
|
|
673
|
+
/* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(15327);
|
|
674
|
+
/* harmony import */ var gl_matrix__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(3823);
|
|
675
|
+
/* harmony import */ var _utilities_getCalibratedUnits__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(4096);
|
|
676
|
+
/* harmony import */ var _utilities_math__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(95527);
|
|
677
|
+
/* harmony import */ var _utilities_planar__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(13165);
|
|
678
|
+
/* harmony import */ var _utilities_throttle__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(27730);
|
|
679
|
+
/* harmony import */ var _utilities_viewportFilters__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(60810);
|
|
680
|
+
/* harmony import */ var _utilities_triggerAnnotationRenderForViewportIds__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(58640);
|
|
681
|
+
/* harmony import */ var _planarFreehandROITool_drawLoop__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(55927);
|
|
682
|
+
/* harmony import */ var _planarFreehandROITool_editLoopCommon__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(92400);
|
|
683
|
+
/* harmony import */ var _planarFreehandROITool_closedContourEditLoop__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(57999);
|
|
684
|
+
/* harmony import */ var _planarFreehandROITool_openContourEditLoop__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(69855);
|
|
685
|
+
/* harmony import */ var _planarFreehandROITool_openContourEndEditLoop__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(70734);
|
|
686
|
+
/* harmony import */ var _planarFreehandROITool_renderMethods__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(58161);
|
|
687
|
+
/* harmony import */ var _stateManagement_annotation_helpers_state__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(44049);
|
|
688
|
+
/* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(74347);
|
|
689
|
+
/* harmony import */ var _utilities_drawing__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(473);
|
|
690
|
+
/* harmony import */ var _utilities_math_polyline__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(92984);
|
|
691
|
+
/* harmony import */ var _utilities_viewport_isViewportPreScaled__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(18990);
|
|
692
|
+
/* harmony import */ var _utilities_math_basic__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(73262);
|
|
693
|
+
/* harmony import */ var _utilities_contours_calculatePerimeter__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(93843);
|
|
694
|
+
/* harmony import */ var _base_ContourSegmentationBaseTool__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(36320);
|
|
695
|
+
/* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(99737);
|
|
696
|
+
/* harmony import */ var _utilities_getPixelValueUnits__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(40634);
|
|
693
697
|
|
|
694
698
|
|
|
695
699
|
|
|
@@ -715,10 +719,10 @@ class PlanarFreehandContourSegmentationTool extends _PlanarFreehandROITool__WEBP
|
|
|
715
719
|
|
|
716
720
|
|
|
717
721
|
|
|
718
|
-
const { pointCanProjectOnLine } =
|
|
719
|
-
const { EPSILON } =
|
|
722
|
+
const { pointCanProjectOnLine } = _utilities_math__WEBPACK_IMPORTED_MODULE_3__.polyline;
|
|
723
|
+
const { EPSILON } = _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.CONSTANTS;
|
|
720
724
|
const PARALLEL_THRESHOLD = 1 - EPSILON;
|
|
721
|
-
class PlanarFreehandROITool extends
|
|
725
|
+
class PlanarFreehandROITool extends _base_ContourSegmentationBaseTool__WEBPACK_IMPORTED_MODULE_21__/* ["default"] */ .A {
|
|
722
726
|
static { this.toolName = 'PlanarFreehandROI'; }
|
|
723
727
|
constructor(toolProps = {}, defaultToolProps = {
|
|
724
728
|
supportedInteractionTypes: ['Mouse', 'Touch'],
|
|
@@ -726,7 +730,7 @@ class PlanarFreehandROITool extends _base_ContourSegmentationBaseTool__WEBPACK_I
|
|
|
726
730
|
storePointData: false,
|
|
727
731
|
shadow: true,
|
|
728
732
|
preventHandleOutsideImage: false,
|
|
729
|
-
contourHoleAdditionModifierKey:
|
|
733
|
+
contourHoleAdditionModifierKey: _enums__WEBPACK_IMPORTED_MODULE_22__.KeyboardBindings.Shift,
|
|
730
734
|
alwaysRenderOpenContourHandles: {
|
|
731
735
|
enabled: false,
|
|
732
736
|
radius: 2,
|
|
@@ -753,7 +757,7 @@ class PlanarFreehandROITool extends _base_ContourSegmentationBaseTool__WEBPACK_I
|
|
|
753
757
|
displayOnePointAsCrosshairs: false,
|
|
754
758
|
calculateStats: true,
|
|
755
759
|
getTextLines: defaultGetTextLines,
|
|
756
|
-
statsCalculator:
|
|
760
|
+
statsCalculator: _utilities_math_basic__WEBPACK_IMPORTED_MODULE_19__.BasicStatsCalculator,
|
|
757
761
|
},
|
|
758
762
|
}) {
|
|
759
763
|
super(toolProps, defaultToolProps);
|
|
@@ -765,22 +769,22 @@ class PlanarFreehandROITool extends _base_ContourSegmentationBaseTool__WEBPACK_I
|
|
|
765
769
|
const { element } = eventDetail;
|
|
766
770
|
const annotation = this.createAnnotation(evt);
|
|
767
771
|
this.addAnnotation(annotation, element);
|
|
768
|
-
const viewportIdsToRender = (0,
|
|
772
|
+
const viewportIdsToRender = (0,_utilities_viewportFilters__WEBPACK_IMPORTED_MODULE_6__.getViewportIdsWithToolToRender)(element, this.getToolName());
|
|
769
773
|
this.activateDraw(evt, annotation, viewportIdsToRender);
|
|
770
774
|
evt.preventDefault();
|
|
771
|
-
(0,
|
|
775
|
+
(0,_utilities_triggerAnnotationRenderForViewportIds__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .A)(viewportIdsToRender);
|
|
772
776
|
return annotation;
|
|
773
777
|
};
|
|
774
778
|
this.handleSelectedCallback = (evt, annotation, handle) => {
|
|
775
779
|
const eventDetail = evt.detail;
|
|
776
780
|
const { element } = eventDetail;
|
|
777
|
-
const viewportIdsToRender = (0,
|
|
781
|
+
const viewportIdsToRender = (0,_utilities_viewportFilters__WEBPACK_IMPORTED_MODULE_6__.getViewportIdsWithToolToRender)(element, this.getToolName());
|
|
778
782
|
this.activateOpenContourEndEdit(evt, annotation, viewportIdsToRender, handle);
|
|
779
783
|
};
|
|
780
784
|
this.toolSelectedCallback = (evt, annotation) => {
|
|
781
785
|
const eventDetail = evt.detail;
|
|
782
786
|
const { element } = eventDetail;
|
|
783
|
-
const viewportIdsToRender = (0,
|
|
787
|
+
const viewportIdsToRender = (0,_utilities_viewportFilters__WEBPACK_IMPORTED_MODULE_6__.getViewportIdsWithToolToRender)(element, this.getToolName());
|
|
784
788
|
if (annotation.data.contour.closed) {
|
|
785
789
|
this.activateClosedContourEdit(evt, annotation, viewportIdsToRender);
|
|
786
790
|
}
|
|
@@ -790,7 +794,7 @@ class PlanarFreehandROITool extends _base_ContourSegmentationBaseTool__WEBPACK_I
|
|
|
790
794
|
evt.preventDefault();
|
|
791
795
|
};
|
|
792
796
|
this.isPointNearTool = (element, annotation, canvasCoords, proximity) => {
|
|
793
|
-
const enabledElement = (0,
|
|
797
|
+
const enabledElement = (0,_cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.getEnabledElement)(element);
|
|
794
798
|
const { viewport } = enabledElement;
|
|
795
799
|
const { polyline: points } = annotation.data.contour;
|
|
796
800
|
let previousPoint = viewport.worldToCanvas(points[0]);
|
|
@@ -838,25 +842,25 @@ class PlanarFreehandROITool extends _base_ContourSegmentationBaseTool__WEBPACK_I
|
|
|
838
842
|
const { imageData, metadata } = image;
|
|
839
843
|
const canvasCoordinates = points.map((p) => viewport.worldToCanvas(p));
|
|
840
844
|
const modalityUnitOptions = {
|
|
841
|
-
isPreScaled: (0,
|
|
845
|
+
isPreScaled: (0,_utilities_viewport_isViewportPreScaled__WEBPACK_IMPORTED_MODULE_18__/* .isViewportPreScaled */ .u)(viewport, targetId),
|
|
842
846
|
isSuvScaled: this.isSuvScaled(viewport, targetId, annotation.metadata.referencedImageId),
|
|
843
847
|
};
|
|
844
|
-
const modalityUnit = (0,
|
|
845
|
-
const calibratedScale = (0,
|
|
848
|
+
const modalityUnit = (0,_utilities_getPixelValueUnits__WEBPACK_IMPORTED_MODULE_23__/* .getPixelValueUnits */ .j)(metadata.Modality, annotation.metadata.referencedImageId, modalityUnitOptions);
|
|
849
|
+
const calibratedScale = (0,_utilities_getCalibratedUnits__WEBPACK_IMPORTED_MODULE_2__/* .getCalibratedLengthUnitsAndScale */ .Op)(image, () => {
|
|
846
850
|
const polyline = data.contour.polyline;
|
|
847
851
|
const numPoints = polyline.length;
|
|
848
852
|
const projectedPolyline = new Array(numPoints);
|
|
849
853
|
for (let i = 0; i < numPoints; i++) {
|
|
850
854
|
projectedPolyline[i] = viewport.worldToCanvas(polyline[i]);
|
|
851
855
|
}
|
|
852
|
-
const { maxX: canvasMaxX, maxY: canvasMaxY, minX: canvasMinX, minY: canvasMinY, } =
|
|
856
|
+
const { maxX: canvasMaxX, maxY: canvasMaxY, minX: canvasMinX, minY: canvasMinY, } = _utilities_math__WEBPACK_IMPORTED_MODULE_3__.polyline.getAABB(projectedPolyline);
|
|
853
857
|
const topLeftBBWorld = viewport.canvasToWorld([canvasMinX, canvasMinY]);
|
|
854
|
-
const topLeftBBIndex =
|
|
858
|
+
const topLeftBBIndex = _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.utilities.transformWorldToIndex(imageData, topLeftBBWorld);
|
|
855
859
|
const bottomRightBBWorld = viewport.canvasToWorld([
|
|
856
860
|
canvasMaxX,
|
|
857
861
|
canvasMaxY,
|
|
858
862
|
]);
|
|
859
|
-
const bottomRightBBIndex =
|
|
863
|
+
const bottomRightBBIndex = _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.utilities.transformWorldToIndex(imageData, bottomRightBBWorld);
|
|
860
864
|
return [topLeftBBIndex, bottomRightBBIndex];
|
|
861
865
|
});
|
|
862
866
|
const canvasPoint = canvasCoordinates[0];
|
|
@@ -869,8 +873,8 @@ class PlanarFreehandROITool extends _base_ContourSegmentationBaseTool__WEBPACK_I
|
|
|
869
873
|
canvasPoint[0],
|
|
870
874
|
canvasPoint[1] + 1,
|
|
871
875
|
]);
|
|
872
|
-
const deltaInX =
|
|
873
|
-
const deltaInY =
|
|
876
|
+
const deltaInX = gl_matrix__WEBPACK_IMPORTED_MODULE_1__/* .vec3.distance */ .eR.distance(originalWorldPoint, deltaXPoint);
|
|
877
|
+
const deltaInY = gl_matrix__WEBPACK_IMPORTED_MODULE_1__/* .vec3.distance */ .eR.distance(originalWorldPoint, deltaYPoint);
|
|
874
878
|
if (closed) {
|
|
875
879
|
this.updateClosedCachedStats({
|
|
876
880
|
targetId,
|
|
@@ -900,7 +904,7 @@ class PlanarFreehandROITool extends _base_ContourSegmentationBaseTool__WEBPACK_I
|
|
|
900
904
|
const invalidated = annotation.invalidated;
|
|
901
905
|
annotation.invalidated = false;
|
|
902
906
|
if (invalidated) {
|
|
903
|
-
(0,
|
|
907
|
+
(0,_stateManagement_annotation_helpers_state__WEBPACK_IMPORTED_MODULE_14__.triggerAnnotationModified)(annotation, enabledElement.viewport.element, _enums__WEBPACK_IMPORTED_MODULE_22__.ChangeTypes.StatsUpdated);
|
|
904
908
|
}
|
|
905
909
|
return cachedStats;
|
|
906
910
|
};
|
|
@@ -923,13 +927,13 @@ class PlanarFreehandROITool extends _base_ContourSegmentationBaseTool__WEBPACK_I
|
|
|
923
927
|
}
|
|
924
928
|
const canvasCoordinates = data.contour.polyline.map((p) => viewport.worldToCanvas(p));
|
|
925
929
|
if (!data.handles.textBox.hasMoved) {
|
|
926
|
-
const canvasTextBoxCoords = (0,
|
|
930
|
+
const canvasTextBoxCoords = (0,_utilities_drawing__WEBPACK_IMPORTED_MODULE_16__.getTextBoxCoordsCanvas)(canvasCoordinates);
|
|
927
931
|
data.handles.textBox.worldPosition =
|
|
928
932
|
viewport.canvasToWorld(canvasTextBoxCoords);
|
|
929
933
|
}
|
|
930
934
|
const textBoxPosition = viewport.worldToCanvas(data.handles.textBox.worldPosition);
|
|
931
935
|
const textBoxUID = '1';
|
|
932
|
-
const boundingBox = (0,
|
|
936
|
+
const boundingBox = (0,_drawingSvg__WEBPACK_IMPORTED_MODULE_15__.drawLinkedTextBox)(svgDrawingHelper, annotation.annotationUID ?? '', textBoxUID, textLines, textBoxPosition, canvasCoordinates, {}, options);
|
|
933
937
|
const { x: left, y: top, width, height } = boundingBox;
|
|
934
938
|
data.handles.textBox.worldBoundingBox = {
|
|
935
939
|
topLeft: viewport.canvasToWorld([left, top]),
|
|
@@ -938,13 +942,13 @@ class PlanarFreehandROITool extends _base_ContourSegmentationBaseTool__WEBPACK_I
|
|
|
938
942
|
bottomRight: viewport.canvasToWorld([left + width, top + height]),
|
|
939
943
|
};
|
|
940
944
|
};
|
|
941
|
-
(0,
|
|
942
|
-
(0,
|
|
943
|
-
(0,
|
|
944
|
-
(0,
|
|
945
|
-
(0,
|
|
946
|
-
(0,
|
|
947
|
-
this._throttledCalculateCachedStats = (0,
|
|
945
|
+
(0,_planarFreehandROITool_drawLoop__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .A)(this);
|
|
946
|
+
(0,_planarFreehandROITool_editLoopCommon__WEBPACK_IMPORTED_MODULE_9__/* ["default"] */ .A)(this);
|
|
947
|
+
(0,_planarFreehandROITool_closedContourEditLoop__WEBPACK_IMPORTED_MODULE_10__/* ["default"] */ .A)(this);
|
|
948
|
+
(0,_planarFreehandROITool_openContourEditLoop__WEBPACK_IMPORTED_MODULE_11__/* ["default"] */ .A)(this);
|
|
949
|
+
(0,_planarFreehandROITool_openContourEndEditLoop__WEBPACK_IMPORTED_MODULE_12__/* ["default"] */ .A)(this);
|
|
950
|
+
(0,_planarFreehandROITool_renderMethods__WEBPACK_IMPORTED_MODULE_13__/* ["default"] */ .A)(this);
|
|
951
|
+
this._throttledCalculateCachedStats = (0,_utilities_throttle__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .A)(this._calculateCachedStats, 100, { trailing: true });
|
|
948
952
|
}
|
|
949
953
|
filterInteractableAnnotationsForElement(element, annotations) {
|
|
950
954
|
if (!annotations || !annotations.length) {
|
|
@@ -954,16 +958,16 @@ class PlanarFreehandROITool extends _base_ContourSegmentationBaseTool__WEBPACK_I
|
|
|
954
958
|
if (!baseFilteredAnnotations || !baseFilteredAnnotations.length) {
|
|
955
959
|
return;
|
|
956
960
|
}
|
|
957
|
-
const enabledElement = (0,
|
|
961
|
+
const enabledElement = (0,_cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.getEnabledElement)(element);
|
|
958
962
|
const { viewport } = enabledElement;
|
|
959
963
|
let annotationsToDisplay;
|
|
960
|
-
if (viewport instanceof
|
|
964
|
+
if (viewport instanceof _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.VolumeViewport) {
|
|
961
965
|
const camera = viewport.getCamera();
|
|
962
|
-
const { spacingInNormalDirection } =
|
|
966
|
+
const { spacingInNormalDirection } = _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.utilities.getTargetVolumeAndSpacingInNormalDir(viewport, camera);
|
|
963
967
|
annotationsToDisplay = this.filterAnnotationsWithinSlice(baseFilteredAnnotations, camera, spacingInNormalDirection);
|
|
964
968
|
}
|
|
965
969
|
else {
|
|
966
|
-
annotationsToDisplay = (0,
|
|
970
|
+
annotationsToDisplay = (0,_utilities_planar__WEBPACK_IMPORTED_MODULE_4__.filterAnnotationsForDisplay)(viewport, annotations);
|
|
967
971
|
}
|
|
968
972
|
return annotationsToDisplay;
|
|
969
973
|
}
|
|
@@ -975,9 +979,9 @@ class PlanarFreehandROITool extends _base_ContourSegmentationBaseTool__WEBPACK_I
|
|
|
975
979
|
!annotationViewPlaneNormal &&
|
|
976
980
|
td.metadata.FrameOfReferenceUID) {
|
|
977
981
|
for (const point of td.data.contour.polyline) {
|
|
978
|
-
const vector =
|
|
979
|
-
const dotProduct =
|
|
980
|
-
if (!
|
|
982
|
+
const vector = gl_matrix__WEBPACK_IMPORTED_MODULE_1__/* .vec3.sub */ .eR.sub(gl_matrix__WEBPACK_IMPORTED_MODULE_1__/* .vec3.create */ .eR.create(), point, camera.focalPoint);
|
|
983
|
+
const dotProduct = gl_matrix__WEBPACK_IMPORTED_MODULE_1__/* .vec3.dot */ .eR.dot(vector, camera.viewPlaneNormal);
|
|
984
|
+
if (!_cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.utilities.isEqual(dotProduct, 0)) {
|
|
981
985
|
return false;
|
|
982
986
|
}
|
|
983
987
|
}
|
|
@@ -987,14 +991,14 @@ class PlanarFreehandROITool extends _base_ContourSegmentationBaseTool__WEBPACK_I
|
|
|
987
991
|
}
|
|
988
992
|
if (!annotationViewPlaneNormal) {
|
|
989
993
|
const { referencedImageId } = td.metadata;
|
|
990
|
-
const { imageOrientationPatient } =
|
|
991
|
-
const rowCosineVec =
|
|
992
|
-
const colCosineVec =
|
|
993
|
-
annotationViewPlaneNormal =
|
|
994
|
-
|
|
994
|
+
const { imageOrientationPatient } = _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.metaData.get('imagePlaneModule', referencedImageId);
|
|
995
|
+
const rowCosineVec = gl_matrix__WEBPACK_IMPORTED_MODULE_1__/* .vec3.fromValues */ .eR.fromValues(imageOrientationPatient[0], imageOrientationPatient[1], imageOrientationPatient[2]);
|
|
996
|
+
const colCosineVec = gl_matrix__WEBPACK_IMPORTED_MODULE_1__/* .vec3.fromValues */ .eR.fromValues(imageOrientationPatient[3], imageOrientationPatient[4], imageOrientationPatient[5]);
|
|
997
|
+
annotationViewPlaneNormal = gl_matrix__WEBPACK_IMPORTED_MODULE_1__/* .vec3.create */ .eR.create();
|
|
998
|
+
gl_matrix__WEBPACK_IMPORTED_MODULE_1__/* .vec3.cross */ .eR.cross(annotationViewPlaneNormal, rowCosineVec, colCosineVec);
|
|
995
999
|
td.metadata.viewPlaneNormal = annotationViewPlaneNormal;
|
|
996
1000
|
}
|
|
997
|
-
const isParallel = Math.abs(
|
|
1001
|
+
const isParallel = Math.abs(gl_matrix__WEBPACK_IMPORTED_MODULE_1__/* .vec3.dot */ .eR.dot(viewPlaneNormal, annotationViewPlaneNormal)) >
|
|
998
1002
|
PARALLEL_THRESHOLD;
|
|
999
1003
|
return annotationViewPlaneNormal && isParallel;
|
|
1000
1004
|
});
|
|
@@ -1010,9 +1014,9 @@ class PlanarFreehandROITool extends _base_ContourSegmentationBaseTool__WEBPACK_I
|
|
|
1010
1014
|
if (!annotation.isVisible) {
|
|
1011
1015
|
continue;
|
|
1012
1016
|
}
|
|
1013
|
-
const dir =
|
|
1014
|
-
|
|
1015
|
-
const dot =
|
|
1017
|
+
const dir = gl_matrix__WEBPACK_IMPORTED_MODULE_1__/* .vec3.create */ .eR.create();
|
|
1018
|
+
gl_matrix__WEBPACK_IMPORTED_MODULE_1__/* .vec3.sub */ .eR.sub(dir, focalPoint, point);
|
|
1019
|
+
const dot = gl_matrix__WEBPACK_IMPORTED_MODULE_1__/* .vec3.dot */ .eR.dot(dir, viewPlaneNormal);
|
|
1016
1020
|
if (Math.abs(dot) < halfSpacingInNormalDirection) {
|
|
1017
1021
|
annotationsWithinSlice.push(annotation);
|
|
1018
1022
|
}
|
|
@@ -1028,7 +1032,7 @@ class PlanarFreehandROITool extends _base_ContourSegmentationBaseTool__WEBPACK_I
|
|
|
1028
1032
|
const onInterpolationComplete = (annotation) => {
|
|
1029
1033
|
annotation.data.handles.points.length = 0;
|
|
1030
1034
|
};
|
|
1031
|
-
const annotation =
|
|
1035
|
+
const annotation = _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.utilities.deepMerge(contourAnnotation, {
|
|
1032
1036
|
data: {
|
|
1033
1037
|
contour: {
|
|
1034
1038
|
polyline: [[...worldPos]],
|
|
@@ -1124,7 +1128,7 @@ class PlanarFreehandROITool extends _base_ContourSegmentationBaseTool__WEBPACK_I
|
|
|
1124
1128
|
updateClosedCachedStats({ viewport, points, imageData, metadata, cachedStats, targetId, modalityUnit, canvasCoordinates, calibratedScale, deltaInX, deltaInY, }) {
|
|
1125
1129
|
const { scale, areaUnit, unit } = calibratedScale;
|
|
1126
1130
|
const { voxelManager } = viewport.getImageData();
|
|
1127
|
-
const worldPosIndex =
|
|
1131
|
+
const worldPosIndex = _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.utilities.transformWorldToIndex(imageData, points[0]);
|
|
1128
1132
|
worldPosIndex[0] = Math.floor(worldPosIndex[0]);
|
|
1129
1133
|
worldPosIndex[1] = Math.floor(worldPosIndex[1]);
|
|
1130
1134
|
worldPosIndex[2] = Math.floor(worldPosIndex[2]);
|
|
@@ -1135,7 +1139,7 @@ class PlanarFreehandROITool extends _base_ContourSegmentationBaseTool__WEBPACK_I
|
|
|
1135
1139
|
let kMin = worldPosIndex[2];
|
|
1136
1140
|
let kMax = worldPosIndex[2];
|
|
1137
1141
|
for (let j = 1; j < points.length; j++) {
|
|
1138
|
-
const worldPosIndex =
|
|
1142
|
+
const worldPosIndex = _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.utilities.transformWorldToIndex(imageData, points[j]);
|
|
1139
1143
|
worldPosIndex[0] = Math.floor(worldPosIndex[0]);
|
|
1140
1144
|
worldPosIndex[1] = Math.floor(worldPosIndex[1]);
|
|
1141
1145
|
worldPosIndex[2] = Math.floor(worldPosIndex[2]);
|
|
@@ -1146,13 +1150,13 @@ class PlanarFreehandROITool extends _base_ContourSegmentationBaseTool__WEBPACK_I
|
|
|
1146
1150
|
kMin = Math.min(kMin, worldPosIndex[2]);
|
|
1147
1151
|
kMax = Math.max(kMax, worldPosIndex[2]);
|
|
1148
1152
|
}
|
|
1149
|
-
const worldPosIndex2 =
|
|
1153
|
+
const worldPosIndex2 = _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.utilities.transformWorldToIndex(imageData, points[1]);
|
|
1150
1154
|
worldPosIndex2[0] = Math.floor(worldPosIndex2[0]);
|
|
1151
1155
|
worldPosIndex2[1] = Math.floor(worldPosIndex2[1]);
|
|
1152
1156
|
worldPosIndex2[2] = Math.floor(worldPosIndex2[2]);
|
|
1153
|
-
let area =
|
|
1157
|
+
let area = _utilities_math__WEBPACK_IMPORTED_MODULE_3__.polyline.getArea(canvasCoordinates) / scale / scale;
|
|
1154
1158
|
area *= deltaInX * deltaInY;
|
|
1155
|
-
const perimeter = (0,
|
|
1159
|
+
const perimeter = (0,_utilities_contours_calculatePerimeter__WEBPACK_IMPORTED_MODULE_20__/* ["default"] */ .A)(points, closed) / scale;
|
|
1156
1160
|
const iDelta = 0.01 * (iMax - iMin);
|
|
1157
1161
|
const jDelta = 0.01 * (jMax - jMin);
|
|
1158
1162
|
const kDelta = 0.01 * (kMax - kMin);
|
|
@@ -1182,7 +1186,7 @@ class PlanarFreehandROITool extends _base_ContourSegmentationBaseTool__WEBPACK_I
|
|
|
1182
1186
|
if (point[1] != curRow) {
|
|
1183
1187
|
intersectionCounter = 0;
|
|
1184
1188
|
curRow = point[1];
|
|
1185
|
-
intersections = (0,
|
|
1189
|
+
intersections = (0,_utilities_math_polyline__WEBPACK_IMPORTED_MODULE_17__.getLineSegmentIntersectionsCoordinates)(canvasCoordinates, point, [canvasPosEnd[0], point[1]]);
|
|
1186
1190
|
intersections.sort((function (index) {
|
|
1187
1191
|
return function (a, b) {
|
|
1188
1192
|
return a[index] === b[index]
|
|
@@ -1224,7 +1228,7 @@ class PlanarFreehandROITool extends _base_ContourSegmentationBaseTool__WEBPACK_I
|
|
|
1224
1228
|
}
|
|
1225
1229
|
updateOpenCachedStats({ targetId, metadata, cachedStats, modalityUnit, calibratedScale, points, }) {
|
|
1226
1230
|
const { scale, unit } = calibratedScale;
|
|
1227
|
-
const length = (0,
|
|
1231
|
+
const length = (0,_utilities_contours_calculatePerimeter__WEBPACK_IMPORTED_MODULE_20__/* ["default"] */ .A)(points, closed) / scale;
|
|
1228
1232
|
cachedStats[targetId] = {
|
|
1229
1233
|
Modality: metadata.Modality,
|
|
1230
1234
|
length,
|
|
@@ -1237,29 +1241,29 @@ function defaultGetTextLines(data, targetId) {
|
|
|
1237
1241
|
const cachedVolumeStats = data.cachedStats[targetId];
|
|
1238
1242
|
const { area, mean, stdDev, length, perimeter, max, min, isEmptyArea, unit, areaUnit, modalityUnit, } = cachedVolumeStats || {};
|
|
1239
1243
|
const textLines = [];
|
|
1240
|
-
if (
|
|
1244
|
+
if (_cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.utilities.isNumber(area)) {
|
|
1241
1245
|
const areaLine = isEmptyArea
|
|
1242
1246
|
? `Area: Oblique not supported`
|
|
1243
|
-
: `Area: ${
|
|
1247
|
+
: `Area: ${_cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.utilities.roundNumber(area)} ${areaUnit}`;
|
|
1244
1248
|
textLines.push(areaLine);
|
|
1245
1249
|
}
|
|
1246
|
-
if (
|
|
1247
|
-
textLines.push(`Mean: ${
|
|
1250
|
+
if (_cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.utilities.isNumber(mean)) {
|
|
1251
|
+
textLines.push(`Mean: ${_cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.utilities.roundNumber(mean)} ${modalityUnit}`);
|
|
1248
1252
|
}
|
|
1249
|
-
if (
|
|
1250
|
-
textLines.push(`Max: ${
|
|
1253
|
+
if (_cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.utilities.isNumber(max)) {
|
|
1254
|
+
textLines.push(`Max: ${_cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.utilities.roundNumber(max)} ${modalityUnit}`);
|
|
1251
1255
|
}
|
|
1252
|
-
if (
|
|
1253
|
-
textLines.push(`Min: ${
|
|
1256
|
+
if (_cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.utilities.isNumber(min)) {
|
|
1257
|
+
textLines.push(`Min: ${_cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.utilities.roundNumber(min)} ${modalityUnit}`);
|
|
1254
1258
|
}
|
|
1255
|
-
if (
|
|
1256
|
-
textLines.push(`Std Dev: ${
|
|
1259
|
+
if (_cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.utilities.isNumber(stdDev)) {
|
|
1260
|
+
textLines.push(`Std Dev: ${_cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.utilities.roundNumber(stdDev)} ${modalityUnit}`);
|
|
1257
1261
|
}
|
|
1258
|
-
if (
|
|
1259
|
-
textLines.push(`Perimeter: ${
|
|
1262
|
+
if (_cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.utilities.isNumber(perimeter)) {
|
|
1263
|
+
textLines.push(`Perimeter: ${_cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.utilities.roundNumber(perimeter)} ${unit}`);
|
|
1260
1264
|
}
|
|
1261
|
-
if (
|
|
1262
|
-
textLines.push(`${
|
|
1265
|
+
if (_cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.utilities.isNumber(length)) {
|
|
1266
|
+
textLines.push(`${_cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.utilities.roundNumber(length)} ${unit}`);
|
|
1263
1267
|
}
|
|
1264
1268
|
return textLines;
|
|
1265
1269
|
}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
(globalThis["webpackChunk"] = globalThis["webpackChunk"] || []).push([[5457],{
|
|
3
|
+
|
|
4
|
+
/***/ 95457:
|
|
5
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
6
|
+
|
|
7
|
+
// ESM COMPAT FLAG
|
|
8
|
+
__webpack_require__.r(__webpack_exports__);
|
|
9
|
+
|
|
10
|
+
// EXPORTS
|
|
11
|
+
__webpack_require__.d(__webpack_exports__, {
|
|
12
|
+
"default": () => (/* binding */ longitudinal_src),
|
|
13
|
+
extensionDependencies: () => (/* binding */ extensionDependencies),
|
|
14
|
+
initToolGroups: () => (/* reexport */ src.initToolGroups),
|
|
15
|
+
longitudinalInstance: () => (/* binding */ longitudinalInstance),
|
|
16
|
+
longitudinalRoute: () => (/* binding */ longitudinalRoute),
|
|
17
|
+
modeInstance: () => (/* binding */ modeInstance),
|
|
18
|
+
toolbarButtons: () => (/* reexport */ src.toolbarButtons),
|
|
19
|
+
tracked: () => (/* binding */ tracked)
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
// EXTERNAL MODULE: ../../../node_modules/i18next/dist/esm/i18next.js
|
|
23
|
+
var i18next = __webpack_require__(40680);
|
|
24
|
+
;// ../../../modes/longitudinal/package.json
|
|
25
|
+
const package_namespaceObject = /*#__PURE__*/JSON.parse('{"UU":"@ohif/mode-longitudinal"}');
|
|
26
|
+
;// ../../../modes/longitudinal/src/id.js
|
|
27
|
+
|
|
28
|
+
const id = package_namespaceObject.UU;
|
|
29
|
+
|
|
30
|
+
// EXTERNAL MODULE: ../../../modes/basic/src/index.tsx + 4 modules
|
|
31
|
+
var src = __webpack_require__(35485);
|
|
32
|
+
;// ../../../modes/longitudinal/src/index.ts
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
const tracked = {
|
|
37
|
+
measurements: '@ohif/extension-measurement-tracking.panelModule.trackedMeasurements',
|
|
38
|
+
thumbnailList: '@ohif/extension-measurement-tracking.panelModule.seriesList',
|
|
39
|
+
viewport: '@ohif/extension-measurement-tracking.viewportModule.cornerstone-tracked'
|
|
40
|
+
};
|
|
41
|
+
const extensionDependencies = {
|
|
42
|
+
// Can derive the versions at least process.env.from npm_package_version
|
|
43
|
+
...src.extensionDependencies,
|
|
44
|
+
'@ohif/extension-measurement-tracking': '^3.0.0'
|
|
45
|
+
};
|
|
46
|
+
const longitudinalInstance = {
|
|
47
|
+
...src.basicLayout,
|
|
48
|
+
id: src.ohif.layout,
|
|
49
|
+
props: {
|
|
50
|
+
...src.basicLayout.props,
|
|
51
|
+
leftPanels: [tracked.thumbnailList],
|
|
52
|
+
rightPanels: [src.cornerstone.segmentation, tracked.measurements],
|
|
53
|
+
viewports: [{
|
|
54
|
+
namespace: tracked.viewport,
|
|
55
|
+
// Re-use the display sets from basic
|
|
56
|
+
displaySetsToDisplay: src.basicLayout.props.viewports[0].displaySetsToDisplay
|
|
57
|
+
}, ...src.basicLayout.props.viewports]
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
const longitudinalRoute = {
|
|
61
|
+
...src.basicRoute,
|
|
62
|
+
path: 'longitudinal',
|
|
63
|
+
/*init: ({ servicesManager, extensionManager }) => {
|
|
64
|
+
//defaultViewerRouteInit
|
|
65
|
+
},*/
|
|
66
|
+
layoutInstance: longitudinalInstance
|
|
67
|
+
};
|
|
68
|
+
const modeInstance = {
|
|
69
|
+
...src.modeInstance,
|
|
70
|
+
// TODO: We're using this as a route segment
|
|
71
|
+
// We should not be.
|
|
72
|
+
id: id,
|
|
73
|
+
routeName: 'viewer',
|
|
74
|
+
displayName: i18next/* default */.A.t('Modes:Basic Viewer'),
|
|
75
|
+
routes: [longitudinalRoute],
|
|
76
|
+
extensions: extensionDependencies
|
|
77
|
+
};
|
|
78
|
+
const mode = {
|
|
79
|
+
...src.mode,
|
|
80
|
+
id: id,
|
|
81
|
+
modeInstance,
|
|
82
|
+
extensionDependencies
|
|
83
|
+
};
|
|
84
|
+
/* harmony default export */ const longitudinal_src = (mode);
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
/***/ })
|
|
88
|
+
|
|
89
|
+
}]);
|
|
@@ -30,6 +30,7 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
30
30
|
ohif: () => (/* binding */ ohif),
|
|
31
31
|
onModeEnter: () => (/* binding */ onModeEnter),
|
|
32
32
|
onModeExit: () => (/* binding */ onModeExit),
|
|
33
|
+
segmentation: () => (/* binding */ segmentation),
|
|
33
34
|
sopClassHandlers: () => (/* binding */ sopClassHandlers),
|
|
34
35
|
toolbarButtons: () => (/* reexport */ src_toolbarButtons),
|
|
35
36
|
toolbarSections: () => (/* binding */ toolbarSections)
|
|
@@ -1020,10 +1021,13 @@ const ohif = {
|
|
|
1020
1021
|
layout: '@ohif/extension-default.layoutTemplateModule.viewerLayout',
|
|
1021
1022
|
sopClassHandler: '@ohif/extension-default.sopClassHandlerModule.stack',
|
|
1022
1023
|
thumbnailList: '@ohif/extension-default.panelModule.seriesList',
|
|
1024
|
+
hangingProtocol: '@ohif/extension-default.hangingProtocolModule.default',
|
|
1023
1025
|
wsiSopClassHandler: '@ohif/extension-cornerstone.sopClassHandlerModule.DicomMicroscopySopClassHandler'
|
|
1024
1026
|
};
|
|
1025
1027
|
const cornerstone = {
|
|
1026
1028
|
measurements: '@ohif/extension-cornerstone.panelModule.panelMeasurement',
|
|
1029
|
+
labelMapSegmentationPanel: '@ohif/extension-cornerstone.panelModule.panelSegmentationWithToolsLabelMap',
|
|
1030
|
+
contourSegmentationPanel: '@ohif/extension-cornerstone.panelModule.panelSegmentationWithToolsContour',
|
|
1027
1031
|
segmentation: '@ohif/extension-cornerstone.panelModule.panelSegmentation',
|
|
1028
1032
|
viewport: '@ohif/extension-cornerstone.viewportModule.cornerstone'
|
|
1029
1033
|
};
|
|
@@ -1052,6 +1056,10 @@ const dicomRT = {
|
|
|
1052
1056
|
viewport: '@ohif/extension-cornerstone-dicom-rt.viewportModule.dicom-rt',
|
|
1053
1057
|
sopClassHandler: '@ohif/extension-cornerstone-dicom-rt.sopClassHandlerModule.dicom-rt'
|
|
1054
1058
|
};
|
|
1059
|
+
const segmentation = {
|
|
1060
|
+
sopClassHandler: '@ohif/extension-cornerstone-dicom-seg.sopClassHandlerModule.dicom-seg',
|
|
1061
|
+
viewport: '@ohif/extension-cornerstone-dicom-seg.viewportModule.dicom-seg'
|
|
1062
|
+
};
|
|
1055
1063
|
const extensionDependencies = {
|
|
1056
1064
|
// Can derive the versions at least process.env.from npm_package_version
|
|
1057
1065
|
'@ohif/extension-default': '^3.0.0',
|
|
@@ -14,8 +14,8 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
14
14
|
|
|
15
15
|
// EXTERNAL MODULE: ../../../node_modules/react/index.js
|
|
16
16
|
var react = __webpack_require__(86326);
|
|
17
|
-
// EXTERNAL MODULE: ../../../extensions/default/src/index.ts +
|
|
18
|
-
var src = __webpack_require__(
|
|
17
|
+
// EXTERNAL MODULE: ../../../extensions/default/src/index.ts + 139 modules
|
|
18
|
+
var src = __webpack_require__(39195);
|
|
19
19
|
;// ../../../extensions/dicom-microscopy/src/DicomMicroscopyViewport.css
|
|
20
20
|
// extracted by mini-css-extract-plugin
|
|
21
21
|
|
|
@@ -742,6 +742,10 @@ var PleuraBlinePercentage = __webpack_require__(28024);
|
|
|
742
742
|
|
|
743
743
|
|
|
744
744
|
|
|
745
|
+
|
|
746
|
+
const {
|
|
747
|
+
downloadBlob
|
|
748
|
+
} = src/* utils */.Wp;
|
|
745
749
|
const {
|
|
746
750
|
transformWorldToIndex
|
|
747
751
|
} = dist_esm.utilities;
|
|
@@ -752,8 +756,7 @@ const {
|
|
|
752
756
|
* @returns The commands module with actions and definitions
|
|
753
757
|
*/
|
|
754
758
|
function commandsModule({
|
|
755
|
-
servicesManager
|
|
756
|
-
commandsManager
|
|
759
|
+
servicesManager
|
|
757
760
|
}) {
|
|
758
761
|
const {
|
|
759
762
|
viewportGridService,
|
|
@@ -1027,14 +1030,9 @@ function commandsModule({
|
|
|
1027
1030
|
const blob = new Blob([jsonString], {
|
|
1028
1031
|
type: 'application/json'
|
|
1029
1032
|
});
|
|
1030
|
-
|
|
1031
|
-
|
|
1032
|
-
|
|
1033
|
-
|
|
1034
|
-
// Create an anchor element
|
|
1035
|
-
const a = document.createElement('a');
|
|
1036
|
-
a.href = url;
|
|
1037
|
-
a.download = `ultrasound_annotations_${new Date().toISOString().slice(0, 10)}.json`;
|
|
1033
|
+
downloadBlob(blob, {
|
|
1034
|
+
filename: `ultrasound_annotations_${new Date().toISOString().slice(0, 10)}.json`
|
|
1035
|
+
});
|
|
1038
1036
|
|
|
1039
1037
|
// Append to the document, click to download, and remove
|
|
1040
1038
|
document.body.appendChild(a);
|