@ohif/app 3.7.0-beta.8 → 3.7.0-beta.80
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/{917.bundle.d238efac58b7fe8fd1a3.js → 12.bundle.4a052141b46dec16862d.js} +6 -6
- package/dist/{295.bundle.957b1159fec14b9199a1.js → 125.bundle.253395f320b72180da63.js} +6 -6
- package/dist/{208.bundle.37c2a73b3387e657568c.js → 128.bundle.5198a2266456afecd420.js} +41 -59
- package/dist/{351.bundle.0742237651aef9694a65.js → 181.bundle.fa57199595cf28f44c7b.js} +226 -204
- package/dist/{351.css → 181.css} +1 -1
- package/dist/{744.bundle.23011553706b687f67e4.js → 19.bundle.75ec1ec14786e136b7b3.js} +240 -375
- package/dist/{606.bundle.5d876f5f3dd8287f0a28.js → 202.bundle.96bbb4547a346fe3921f.js} +1420 -750
- package/dist/{926.bundle.dbc9d0e591cb9217fda2.js → 220.bundle.f7e1c96c94245e70f2be.js} +990 -400
- package/dist/221.bundle.8a81cea315fa7697c0e0.js +1722 -0
- package/dist/221.css +2 -0
- package/dist/{664.bundle.09abae984223969d1bde.js → 23.bundle.e008ad788170f2ed5569.js} +5 -6
- package/dist/{976.bundle.dcbddf56a7d8f388bb8a.js → 236.bundle.d2da6d1991e1229bf913.js} +87 -103
- package/dist/{55.bundle.550a823e75eb608e8d5e.js → 250.bundle.36909d7bc681d66087d1.js} +52 -36
- package/dist/{973.bundle.03b016e6095622adf12f.js → 281.bundle.21a9e3178ddebe01b958.js} +18 -14
- package/dist/{82.bundle.10c2133333748ec6fba0.js → 342.bundle.70da5239bd664aa5d41a.js} +1768 -475
- package/dist/{192.bundle.2dc14a6e3c4c6be913b0.js → 348.bundle.8c5b950d30e5aa992290.js} +86 -73
- package/dist/{404.bundle.5d57295bc05206092d42.js → 359.bundle.d2a3abe1a5cd3ca3cd8e.js} +46 -131
- package/dist/{790.bundle.cedf27deeed29266a92b.js → 410.bundle.be538faa9c7fad92189b.js} +11 -9
- package/dist/{151.bundle.31ea35044218837bf73f.js → 417.bundle.af0a207c29b109f84159.js} +49 -17
- package/dist/{569.bundle.c8e771a8d28e237b32be.js → 451.bundle.dc0d14c3724464cca2bf.js} +86 -106
- package/dist/{581.bundle.dc6197189f7c88c27d4c.js → 471.bundle.2206d4c0ac2ad0df2362.js} +78 -99
- package/dist/{199.bundle.e4ac6606dd62e42e9da4.js → 506.bundle.97e53732423192fee818.js} +11 -9
- package/dist/{531.bundle.2a82fb1d69e5b57cc72b.js → 530.bundle.a03b6f942ace3e1baa1e.js} +726 -447
- package/dist/579.css +1 -0
- package/dist/{935.bundle.deeffff0e4f7b528e3c3.js → 604.bundle.a51f83e64004bca5f497.js} +2 -3
- package/dist/613.bundle.549d71231abfed24a2dc.js +532 -0
- package/dist/{984.bundle.e7dcbd3b8992748823fb.js → 663.bundle.b0f98b6e7221b1b9cf6a.js} +68 -38
- package/dist/{205.bundle.b5a473c200dcf2bbcdb4.js → 686.bundle.dccef1f36e4bc79bcc48.js} +6 -6
- package/dist/{50.bundle.424f8d05f1bebaafcf2c.js → 687.bundle.ab0ffdccae4610b00224.js} +218 -9
- package/dist/{331.bundle.bd0c13931a21d53086c9.js → 754.bundle.e3ce6855d8d4d187f224.js} +12423 -7549
- package/dist/{728.bundle.d13856835357400fef82.js → 774.bundle.d365320749c4f67cda70.js} +93 -64
- package/dist/{381.bundle.0905e683605fcbc0895f.js → 775.bundle.2285e7e0e67878948c0d.js} +16 -16
- package/dist/{270.bundle.4564621556b0f963a004.js → 777.bundle.ae3fdb8a470caecc0c6a.js} +1330 -929
- package/dist/{283.bundle.085cddb2f16e430677b0.js → 782.bundle.ee8dba2e8582b55cb38d.js} +117 -67
- package/dist/{642.bundle.25e56df5f0bcd2c729b4.js → 814.bundle.eec4458e893e6055f0fc.js} +6 -6
- package/dist/{799.bundle.758558e64147e5aad612.js → 822.bundle.5fca45a4f40f5259aec5.js} +81 -34
- package/dist/831.bundle.83658f62fcc769043605.js +16700 -0
- package/dist/{953.bundle.3b0189ebc11cf0946f18.js → 886.bundle.a9de117c3a42b7907cf6.js} +34 -29
- package/dist/945.min.worker.js +1 -1
- package/dist/945.min.worker.js.map +1 -1
- package/dist/{707.bundle.17a9d7352409b6269596.js → 967.bundle.cce1d004b2ff178b1a8e.js} +895 -572
- package/dist/_redirects +1 -1
- package/dist/app-config.js +35 -17
- package/dist/{app.bundle.837996a8f7dd2aaac338.js → app.bundle.681f66ab37cef811e68b.js} +73339 -68140
- package/dist/app.bundle.css +13 -12
- package/dist/assets/yandex-browser-manifest.json +1 -1
- package/dist/cornerstoneDICOMImageLoader.min.js +1 -1
- package/dist/cornerstoneDICOMImageLoader.min.js.map +1 -1
- package/dist/{dicom-microscopy-viewer.bundle.aa60bdf008c32c39cfd7.js → dicom-microscopy-viewer.bundle.2c146384eb9466d02ff8.js} +5 -4
- package/dist/es6-shim.min.js +3569 -2
- package/dist/google.js +8 -7
- package/dist/index.html +1 -1
- package/dist/{index.worker.1c69152d710fa7b84bce.worker.js → index.worker.e62ecca63f1a2e124230.worker.js} +2 -2
- package/dist/index.worker.e62ecca63f1a2e124230.worker.js.map +1 -0
- package/dist/init-service-worker.js +3 -5
- package/dist/oidc-client.min.js +10857 -39
- package/dist/polyfill.min.js +184 -1
- package/dist/silent-refresh.html +18 -9
- package/dist/sw.js +1 -1
- package/package.json +20 -21
- package/dist/616.bundle.eb4887184da6c57bf7a3.js +0 -685
- package/dist/780.bundle.fd0f13dc92e9caa0581e.js +0 -4769
- package/dist/index.worker.1c69152d710fa7b84bce.worker.js.map +0 -1
- /package/dist/{806.css → 19.css} +0 -0
- /package/dist/{55.css → 250.css} +0 -0
- /package/dist/{707.css → 967.css} +0 -0
package/dist/221.css
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
.dicom-tag-browser-table{margin-left:auto;margin-right:auto}.dicom-tag-browser-table-wrapper{overflow-x:scroll}.dicom-tag-browser-table tr{border-top:1px solid #ddd;color:#fff;padding-left:10px;padding-right:10px;white-space:nowrap}.stick{overflow:clip;position:sticky}.dicom-tag-browser-content{overflow:hidden;padding-bottom:50px;width:100%}.dicom-tag-browser-instance-range .range{height:20px}.dicom-tag-browser-instance-range{padding:20px 0}.dicom-tag-browser-table td.dicom-tag-browser-table-center{text-align:center}.dicom-tag-browser-table th{color:"#20A5D6";padding-left:10px;padding-right:10px;text-align:center}.dicom-tag-browser-table th.dicom-tag-browser-table-left{text-align:left}
|
|
2
|
+
.chrome-picker{background:#090c29!important}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
(
|
|
2
|
+
(self["webpackChunk"] = self["webpackChunk"] || []).push([[23],{
|
|
3
3
|
|
|
4
|
-
/***/
|
|
4
|
+
/***/ 7023:
|
|
5
5
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
6
6
|
|
|
7
7
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
8
8
|
/* harmony export */ ZP: () => (/* binding */ ResizeDetector)
|
|
9
9
|
/* harmony export */ });
|
|
10
10
|
/* unused harmony exports useResizeDetector, withResizeDetector */
|
|
11
|
-
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
|
|
12
|
-
/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
|
|
11
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(43001);
|
|
12
|
+
/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(14347);
|
|
13
13
|
/*! *****************************************************************************
|
|
14
14
|
Copyright (c) Microsoft Corporation.
|
|
15
15
|
|
|
@@ -893,8 +893,7 @@ function useResizeDetector(props) {
|
|
|
893
893
|
};
|
|
894
894
|
}, [refreshMode, refreshRate, refreshOptions, handleWidth, handleHeight, onResize, observerOptions, ref.current]);
|
|
895
895
|
return __assign({ ref: ref }, size);
|
|
896
|
-
}
|
|
897
|
-
|
|
896
|
+
}
|
|
898
897
|
|
|
899
898
|
/***/ })
|
|
900
899
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
(
|
|
1
|
+
(self["webpackChunk"] = self["webpackChunk"] || []).push([[236],{
|
|
2
2
|
|
|
3
|
-
/***/
|
|
3
|
+
/***/ 80965:
|
|
4
4
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
5
5
|
|
|
6
6
|
"use strict";
|
|
@@ -19,15 +19,15 @@ const package_namespaceObject = JSON.parse('{"u2":"@ohif/extension-dicom-microsc
|
|
|
19
19
|
const id = package_namespaceObject.u2;
|
|
20
20
|
|
|
21
21
|
// EXTERNAL MODULE: ../../../node_modules/react/index.js
|
|
22
|
-
var react = __webpack_require__(
|
|
23
|
-
// EXTERNAL MODULE: ../../ui/src/index.js +
|
|
24
|
-
var src = __webpack_require__(
|
|
25
|
-
// EXTERNAL MODULE: ../../core/src/index.ts +
|
|
26
|
-
var core_src = __webpack_require__(
|
|
22
|
+
var react = __webpack_require__(43001);
|
|
23
|
+
// EXTERNAL MODULE: ../../ui/src/index.js + 485 modules
|
|
24
|
+
var src = __webpack_require__(71783);
|
|
25
|
+
// EXTERNAL MODULE: ../../core/src/index.ts + 75 modules
|
|
26
|
+
var core_src = __webpack_require__(34491);
|
|
27
27
|
// EXTERNAL MODULE: ../../../node_modules/react-i18next/dist/es/index.js + 15 modules
|
|
28
|
-
var es = __webpack_require__(
|
|
29
|
-
// EXTERNAL MODULE: ../../../node_modules/mathjs/lib/esm/index.js +
|
|
30
|
-
var esm = __webpack_require__(
|
|
28
|
+
var es = __webpack_require__(69190);
|
|
29
|
+
// EXTERNAL MODULE: ../../../node_modules/mathjs/lib/esm/index.js + 982 modules
|
|
30
|
+
var esm = __webpack_require__(55220);
|
|
31
31
|
;// CONCATENATED MODULE: ../../../extensions/dicom-microscopy/src/utils/coordinateFormatScoord3d2Geometry.js
|
|
32
32
|
|
|
33
33
|
|
|
@@ -61,7 +61,9 @@ function coordinateFormatScoord3d2Geometry(coordinates, pyramid) {
|
|
|
61
61
|
return coordinates;
|
|
62
62
|
}
|
|
63
63
|
function _getPixelSpacing(metadata) {
|
|
64
|
-
if (metadata.PixelSpacing)
|
|
64
|
+
if (metadata.PixelSpacing) {
|
|
65
|
+
return metadata.PixelSpacing;
|
|
66
|
+
}
|
|
65
67
|
const functionalGroup = metadata.SharedFunctionalGroupsSequence[0];
|
|
66
68
|
const pixelMeasures = functionalGroup.PixelMeasuresSequence[0];
|
|
67
69
|
return pixelMeasures.PixelSpacing;
|
|
@@ -211,10 +213,10 @@ const EVENTS = {
|
|
|
211
213
|
* expose only the features/behaviors that are relevant to the application
|
|
212
214
|
*/
|
|
213
215
|
class ViewerManager extends core_src/* PubSubService */.hC {
|
|
214
|
-
constructor(viewer,
|
|
216
|
+
constructor(viewer, viewportId, container, studyInstanceUID, seriesInstanceUID) {
|
|
215
217
|
super(EVENTS);
|
|
216
218
|
this.viewer = viewer;
|
|
217
|
-
this.
|
|
219
|
+
this.viewportId = viewportId;
|
|
218
220
|
this.container = container;
|
|
219
221
|
this.studyInstanceUID = studyInstanceUID;
|
|
220
222
|
this.seriesInstanceUID = seriesInstanceUID;
|
|
@@ -271,7 +273,7 @@ class ViewerManager extends core_src/* PubSubService */.hC {
|
|
|
271
273
|
}
|
|
272
274
|
|
|
273
275
|
/**
|
|
274
|
-
*
|
|
276
|
+
* Clears all the relevant event handlers for the third-party API
|
|
275
277
|
*/
|
|
276
278
|
unregisterEvents() {
|
|
277
279
|
this.container.removeEventListener(ApiEvents.ROI_ADDED, this.onRoiAdded);
|
|
@@ -365,7 +367,7 @@ class ViewerManager extends core_src/* PubSubService */.hC {
|
|
|
365
367
|
* @param {String} label The label of the annotation.
|
|
366
368
|
*/
|
|
367
369
|
addRoiGraphicWithLabel(roiGraphic, label) {
|
|
368
|
-
// NOTE: Dicom Microscopy Viewer will override styles for "Text"
|
|
370
|
+
// NOTE: Dicom Microscopy Viewer will override styles for "Text" evaluations
|
|
369
371
|
// to hide all other geometries, we are not going to use its label.
|
|
370
372
|
// if (label) {
|
|
371
373
|
// if (!roiGraphic.properties) roiGraphic.properties = {};
|
|
@@ -738,7 +740,7 @@ class RoiAnnotation extends core_src/* PubSubService */.hC {
|
|
|
738
740
|
/**
|
|
739
741
|
* Returns the geometry type of the annotation concatenated with the label
|
|
740
742
|
* defined for the annotation.
|
|
741
|
-
* Difference with getDetailedLabel() is that this will return empty string for
|
|
743
|
+
* Difference with getDetailedLabel() is that this will return empty string for empty
|
|
742
744
|
* label.
|
|
743
745
|
*
|
|
744
746
|
* @returns {String} Text with geometry type and label
|
|
@@ -805,13 +807,13 @@ class MicroscopyService extends core_src/* PubSubService */.hC {
|
|
|
805
807
|
}
|
|
806
808
|
|
|
807
809
|
/**
|
|
808
|
-
*
|
|
810
|
+
* Clears all the annotations and managed viewers, setting the manager state
|
|
809
811
|
* to its initial state
|
|
810
812
|
*/
|
|
811
813
|
clear() {
|
|
812
814
|
this.managedViewers.forEach(managedViewer => managedViewer.destroy());
|
|
813
815
|
this.managedViewers.clear();
|
|
814
|
-
for (
|
|
816
|
+
for (const key in this.annotations) {
|
|
815
817
|
delete this.annotations[key];
|
|
816
818
|
}
|
|
817
819
|
this.roiUids.clear();
|
|
@@ -879,7 +881,9 @@ class MicroscopyService extends core_src/* PubSubService */.hC {
|
|
|
879
881
|
managedViewer
|
|
880
882
|
} = data;
|
|
881
883
|
const roiAnnotation = this.getAnnotation(roiGraphic.uid);
|
|
882
|
-
if (!roiAnnotation)
|
|
884
|
+
if (!roiAnnotation) {
|
|
885
|
+
return;
|
|
886
|
+
}
|
|
883
887
|
roiAnnotation.setRoiGraphic(roiGraphic);
|
|
884
888
|
roiAnnotation.setViewState(managedViewer.getViewState());
|
|
885
889
|
}
|
|
@@ -933,7 +937,9 @@ class MicroscopyService extends core_src/* PubSubService */.hC {
|
|
|
933
937
|
} = data;
|
|
934
938
|
const selectedAnnotation = this.getAnnotation(roiGraphic.uid);
|
|
935
939
|
if (selectedAnnotation && selectedAnnotation !== this.getSelectedAnnotation()) {
|
|
936
|
-
if (this.selectedAnnotation)
|
|
940
|
+
if (this.selectedAnnotation) {
|
|
941
|
+
this.clearSelection();
|
|
942
|
+
}
|
|
937
943
|
this.selectedAnnotation = selectedAnnotation;
|
|
938
944
|
this._broadcastEvent(MicroscopyService_EVENTS.ANNOTATION_SELECTED, selectedAnnotation);
|
|
939
945
|
}
|
|
@@ -1014,23 +1020,23 @@ class MicroscopyService extends core_src/* PubSubService */.hC {
|
|
|
1014
1020
|
}
|
|
1015
1021
|
|
|
1016
1022
|
/**
|
|
1017
|
-
* Creates a managed viewer instance for the given
|
|
1023
|
+
* Creates a managed viewer instance for the given third-party API's viewer.
|
|
1018
1024
|
* Restores existing annotations for the given study/series.
|
|
1019
1025
|
* Adds event subscriptions for the viewer being added.
|
|
1020
1026
|
* Focuses the selected annotation when the viewer is being loaded into the
|
|
1021
1027
|
* active viewport.
|
|
1022
1028
|
*
|
|
1023
|
-
* @param
|
|
1024
|
-
* @param
|
|
1025
|
-
* @param
|
|
1026
|
-
* @param
|
|
1027
|
-
* @param
|
|
1028
|
-
* @param
|
|
1029
|
+
* @param viewer - Third-party viewer API's object to be managed
|
|
1030
|
+
* @param viewportId - The viewport Id where the viewer will be loaded
|
|
1031
|
+
* @param container - The DOM element where it will be rendered
|
|
1032
|
+
* @param studyInstanceUID - The study UID of the loaded image
|
|
1033
|
+
* @param seriesInstanceUID - The series UID of the loaded image
|
|
1034
|
+
* @param displaySets - All displaySets related to the same StudyInstanceUID
|
|
1029
1035
|
*
|
|
1030
1036
|
* @returns {ViewerManager} managed viewer
|
|
1031
1037
|
*/
|
|
1032
|
-
addViewer(viewer,
|
|
1033
|
-
const managedViewer = new viewerManager(viewer,
|
|
1038
|
+
addViewer(viewer, viewportId, container, studyInstanceUID, seriesInstanceUID) {
|
|
1039
|
+
const managedViewer = new viewerManager(viewer, viewportId, container, studyInstanceUID, seriesInstanceUID);
|
|
1034
1040
|
this._restoreAnnotations(managedViewer);
|
|
1035
1041
|
viewer._manager = managedViewer;
|
|
1036
1042
|
this.managedViewers.add(managedViewer);
|
|
@@ -1039,7 +1045,7 @@ class MicroscopyService extends core_src/* PubSubService */.hC {
|
|
|
1039
1045
|
this._addManagedViewerSubscriptions(managedViewer);
|
|
1040
1046
|
if (this.pendingFocus) {
|
|
1041
1047
|
this.pendingFocus = false;
|
|
1042
|
-
this.focusAnnotation(this.selectedAnnotation,
|
|
1048
|
+
this.focusAnnotation(this.selectedAnnotation, viewportId);
|
|
1043
1049
|
}
|
|
1044
1050
|
return managedViewer;
|
|
1045
1051
|
}
|
|
@@ -1081,7 +1087,7 @@ class MicroscopyService extends core_src/* PubSubService */.hC {
|
|
|
1081
1087
|
|
|
1082
1088
|
/**
|
|
1083
1089
|
* Removes the given third-party viewer API's object from the managed viewers
|
|
1084
|
-
* and
|
|
1090
|
+
* and clears all its event subscriptions
|
|
1085
1091
|
*
|
|
1086
1092
|
* @param {Object} viewer Third-party viewer API's object to be removed
|
|
1087
1093
|
*/
|
|
@@ -1188,7 +1194,9 @@ class MicroscopyService extends core_src/* PubSubService */.hC {
|
|
|
1188
1194
|
* @param {RoiAnnotation} roiAnnotation The instance to be selected
|
|
1189
1195
|
*/
|
|
1190
1196
|
selectAnnotation(roiAnnotation) {
|
|
1191
|
-
if (this.selectedAnnotation)
|
|
1197
|
+
if (this.selectedAnnotation) {
|
|
1198
|
+
this.clearSelection();
|
|
1199
|
+
}
|
|
1192
1200
|
this.selectedAnnotation = roiAnnotation;
|
|
1193
1201
|
this._broadcastEvent(MicroscopyService_EVENTS.ANNOTATION_SELECTED, roiAnnotation);
|
|
1194
1202
|
this.setROIStyle(roiAnnotation.uid, utils_styles.active);
|
|
@@ -1197,12 +1205,12 @@ class MicroscopyService extends core_src/* PubSubService */.hC {
|
|
|
1197
1205
|
/**
|
|
1198
1206
|
* Toggles overview map
|
|
1199
1207
|
*
|
|
1200
|
-
* @param
|
|
1208
|
+
* @param viewportId The active viewport index
|
|
1201
1209
|
* @returns {void}
|
|
1202
1210
|
*/
|
|
1203
|
-
toggleOverviewMap(
|
|
1211
|
+
toggleOverviewMap(viewportId) {
|
|
1204
1212
|
const managedViewers = Array.from(this.managedViewers);
|
|
1205
|
-
const managedViewer = managedViewers.find(mv => mv.
|
|
1213
|
+
const managedViewer = managedViewers.find(mv => mv.viewportId === viewportId);
|
|
1206
1214
|
if (managedViewer) {
|
|
1207
1215
|
managedViewer.toggleOverviewMap();
|
|
1208
1216
|
}
|
|
@@ -1239,10 +1247,10 @@ class MicroscopyService extends core_src/* PubSubService */.hC {
|
|
|
1239
1247
|
* the managed viewer instance is created.
|
|
1240
1248
|
*
|
|
1241
1249
|
* @param {RoiAnnotation} roiAnnotation RoiAnnotation instance to be focused
|
|
1242
|
-
* @param {
|
|
1250
|
+
* @param {string} viewportId Index of the viewport to focus
|
|
1243
1251
|
*/
|
|
1244
|
-
focusAnnotation(roiAnnotation,
|
|
1245
|
-
const filter = mv => mv.
|
|
1252
|
+
focusAnnotation(roiAnnotation, viewportId) {
|
|
1253
|
+
const filter = mv => mv.viewportId === viewportId;
|
|
1246
1254
|
const managedViewer = Array.from(this.managedViewers).find(filter);
|
|
1247
1255
|
if (managedViewer) {
|
|
1248
1256
|
managedViewer.setViewStateByExtent(roiAnnotation);
|
|
@@ -1360,7 +1368,7 @@ MicroscopyService.REGISTRATION = serviceManager => {
|
|
|
1360
1368
|
};
|
|
1361
1369
|
|
|
1362
1370
|
// EXTERNAL MODULE: ../../../node_modules/dcmjs/build/dcmjs.es.js
|
|
1363
|
-
var dcmjs_es = __webpack_require__(
|
|
1371
|
+
var dcmjs_es = __webpack_require__(67540);
|
|
1364
1372
|
;// CONCATENATED MODULE: ../../../extensions/dicom-microscopy/src/utils/callInputDialog.tsx
|
|
1365
1373
|
|
|
1366
1374
|
|
|
@@ -1418,11 +1426,11 @@ function callInputDialog(_ref) {
|
|
|
1418
1426
|
actions: [{
|
|
1419
1427
|
id: 'cancel',
|
|
1420
1428
|
text: 'Cancel',
|
|
1421
|
-
type: src/* ButtonEnums.type */.LZ.
|
|
1429
|
+
type: src/* ButtonEnums.type */.LZ.dt.secondary
|
|
1422
1430
|
}, {
|
|
1423
1431
|
id: 'save',
|
|
1424
1432
|
text: 'Save',
|
|
1425
|
-
type: src/* ButtonEnums.type */.LZ.
|
|
1433
|
+
type: src/* ButtonEnums.type */.LZ.dt.primary
|
|
1426
1434
|
}],
|
|
1427
1435
|
onSubmit: onSubmitHandler,
|
|
1428
1436
|
body: _ref3 => {
|
|
@@ -1434,7 +1442,7 @@ function callInputDialog(_ref) {
|
|
|
1434
1442
|
label: "Enter your annotation",
|
|
1435
1443
|
labelClassName: "text-white text-[14px] leading-[1.2]",
|
|
1436
1444
|
autoFocus: true,
|
|
1437
|
-
className: "
|
|
1445
|
+
className: "border-primary-main bg-black",
|
|
1438
1446
|
type: "text",
|
|
1439
1447
|
value: value.defaultValue,
|
|
1440
1448
|
onChange: event => {
|
|
@@ -1540,11 +1548,13 @@ function constructSR(metadata, _ref, annotations) {
|
|
|
1540
1548
|
marker,
|
|
1541
1549
|
presentationState
|
|
1542
1550
|
} = roi.properties;
|
|
1543
|
-
console.
|
|
1544
|
-
console.
|
|
1545
|
-
console.
|
|
1546
|
-
console.
|
|
1547
|
-
if (presentationState)
|
|
1551
|
+
console.log('[SR] storing marker...', marker);
|
|
1552
|
+
console.log('[SR] storing measurements...', measurements);
|
|
1553
|
+
console.log('[SR] storing evaluations...', evaluations);
|
|
1554
|
+
console.log('[SR] storing presentation state...', presentationState);
|
|
1555
|
+
if (presentationState) {
|
|
1556
|
+
presentationState.marker = marker;
|
|
1557
|
+
}
|
|
1548
1558
|
|
|
1549
1559
|
/** Avoid incompatibility with dcmjs */
|
|
1550
1560
|
measurements = measurements.map(measurement => {
|
|
@@ -1654,10 +1664,10 @@ function constructSR(metadata, _ref, annotations) {
|
|
|
1654
1664
|
* @param filename
|
|
1655
1665
|
*/
|
|
1656
1666
|
function saveByteArray(buffer, filename) {
|
|
1657
|
-
|
|
1667
|
+
const blob = new Blob([buffer], {
|
|
1658
1668
|
type: 'application/dicom'
|
|
1659
1669
|
});
|
|
1660
|
-
|
|
1670
|
+
const link = document.createElement('a');
|
|
1661
1671
|
link.href = window.URL.createObjectURL(blob);
|
|
1662
1672
|
link.download = filename;
|
|
1663
1673
|
link.click();
|
|
@@ -1728,14 +1738,14 @@ function MicroscopyPanel(props) {
|
|
|
1728
1738
|
displaySetService
|
|
1729
1739
|
} = servicesManager.services;
|
|
1730
1740
|
(0,react.useEffect)(() => {
|
|
1731
|
-
const viewport = props.viewports[props.
|
|
1741
|
+
const viewport = props.viewports[props.activeViewportId];
|
|
1732
1742
|
if (viewport.displaySetInstanceUIDs[0]) {
|
|
1733
1743
|
const displaySet = displaySetService.getDisplaySetByUID(viewport.displaySetInstanceUIDs[0]);
|
|
1734
1744
|
if (displaySet) {
|
|
1735
1745
|
setStudyInstanceUID(displaySet.StudyInstanceUID);
|
|
1736
1746
|
}
|
|
1737
1747
|
}
|
|
1738
|
-
}, [props.viewports, props.
|
|
1748
|
+
}, [props.viewports, props.activeViewportId]);
|
|
1739
1749
|
(0,react.useEffect)(() => {
|
|
1740
1750
|
const onAnnotationUpdated = () => {
|
|
1741
1751
|
const roiAnnotations = microscopyService.getAnnotationsForStudy(studyInstanceUID);
|
|
@@ -1883,7 +1893,7 @@ function MicroscopyPanel(props) {
|
|
|
1883
1893
|
*/
|
|
1884
1894
|
const onDeleteCurrentSRHandler = async () => {
|
|
1885
1895
|
try {
|
|
1886
|
-
const activeViewport = props.viewports[props.
|
|
1896
|
+
const activeViewport = props.viewports[props.activeViewportId];
|
|
1887
1897
|
const {
|
|
1888
1898
|
StudyInstanceUID
|
|
1889
1899
|
} = activeViewport;
|
|
@@ -1927,7 +1937,7 @@ function MicroscopyPanel(props) {
|
|
|
1927
1937
|
} = _ref;
|
|
1928
1938
|
const roiAnnotation = microscopyService.getAnnotation(uid);
|
|
1929
1939
|
microscopyService.selectAnnotation(roiAnnotation);
|
|
1930
|
-
microscopyService.focusAnnotation(roiAnnotation, props.
|
|
1940
|
+
microscopyService.focusAnnotation(roiAnnotation, props.activeViewportId);
|
|
1931
1941
|
};
|
|
1932
1942
|
|
|
1933
1943
|
/**
|
|
@@ -1978,7 +1988,7 @@ function MicroscopyPanel(props) {
|
|
|
1978
1988
|
});
|
|
1979
1989
|
const disabled = data.length === 0;
|
|
1980
1990
|
return /*#__PURE__*/react.createElement(react.Fragment, null, /*#__PURE__*/react.createElement("div", {
|
|
1981
|
-
className: "
|
|
1991
|
+
className: "ohif-scrollbar overflow-y-auto overflow-x-hidden",
|
|
1982
1992
|
"data-cy": 'measurements-panel'
|
|
1983
1993
|
}, /*#__PURE__*/react.createElement(src/* MeasurementTable */.wt, {
|
|
1984
1994
|
title: "Measurements",
|
|
@@ -1986,11 +1996,6 @@ function MicroscopyPanel(props) {
|
|
|
1986
1996
|
data: data,
|
|
1987
1997
|
onClick: onMeasurementItemClickHandler,
|
|
1988
1998
|
onEdit: onMeasurementItemEditHandler
|
|
1989
|
-
})), /*#__PURE__*/react.createElement("div", {
|
|
1990
|
-
className: "flex justify-center p-4"
|
|
1991
|
-
}, /*#__PURE__*/react.createElement(src/* ButtonGroup */.hE, {
|
|
1992
|
-
color: "black",
|
|
1993
|
-
size: "inherit"
|
|
1994
1999
|
})));
|
|
1995
2000
|
}
|
|
1996
2001
|
const connectedMicroscopyPanel = (0,es/* withTranslation */.Zh)(['MicroscopyTable', 'Common'])(MicroscopyPanel);
|
|
@@ -2013,12 +2018,12 @@ function getPanelModule(_ref) {
|
|
|
2013
2018
|
} = _ref;
|
|
2014
2019
|
const wrappedMeasurementPanel = () => {
|
|
2015
2020
|
const [{
|
|
2016
|
-
|
|
2021
|
+
activeViewportId,
|
|
2017
2022
|
viewports
|
|
2018
|
-
}
|
|
2023
|
+
}] = (0,src/* useViewportGrid */.O_)();
|
|
2019
2024
|
return /*#__PURE__*/react.createElement(MicroscopyPanel_MicroscopyPanel, {
|
|
2020
2025
|
viewports: viewports,
|
|
2021
|
-
|
|
2026
|
+
activeViewportId: activeViewportId,
|
|
2022
2027
|
onSaveComplete: () => {},
|
|
2023
2028
|
onRejectComplete: () => {},
|
|
2024
2029
|
commandsManager: commandsManager,
|
|
@@ -2057,7 +2062,9 @@ function getCommandsModule(_ref) {
|
|
|
2057
2062
|
} = _ref2;
|
|
2058
2063
|
if (uid) {
|
|
2059
2064
|
const roiAnnotation = microscopyService.getAnnotation(uid);
|
|
2060
|
-
if (roiAnnotation)
|
|
2065
|
+
if (roiAnnotation) {
|
|
2066
|
+
microscopyService.removeAnnotation(roiAnnotation);
|
|
2067
|
+
}
|
|
2061
2068
|
}
|
|
2062
2069
|
},
|
|
2063
2070
|
setLabel: _ref3 => {
|
|
@@ -2096,7 +2103,7 @@ function getCommandsModule(_ref) {
|
|
|
2096
2103
|
}];
|
|
2097
2104
|
if (['line', 'box', 'circle', 'point', 'polygon', 'freehandpolygon', 'freehandline'].indexOf(toolName) >= 0) {
|
|
2098
2105
|
// TODO: read from configuration
|
|
2099
|
-
|
|
2106
|
+
const options = {
|
|
2100
2107
|
geometryType: toolName,
|
|
2101
2108
|
vertexEnabled: true,
|
|
2102
2109
|
styleOptions: utils_styles["default"],
|
|
@@ -2126,37 +2133,23 @@ function getCommandsModule(_ref) {
|
|
|
2126
2133
|
}], dragPanOnMiddle, dragZoomOnRight]);
|
|
2127
2134
|
}
|
|
2128
2135
|
},
|
|
2129
|
-
incrementActiveViewport: () => {
|
|
2130
|
-
const {
|
|
2131
|
-
activeViewportIndex,
|
|
2132
|
-
viewports
|
|
2133
|
-
} = viewportGridService.getState();
|
|
2134
|
-
const nextViewportIndex = (activeViewportIndex + 1) % viewports.length;
|
|
2135
|
-
viewportGridService.setActiveViewportIndex(nextViewportIndex);
|
|
2136
|
-
},
|
|
2137
|
-
decrementActiveViewport: () => {
|
|
2138
|
-
const {
|
|
2139
|
-
activeViewportIndex,
|
|
2140
|
-
viewports
|
|
2141
|
-
} = viewportGridService.getState();
|
|
2142
|
-
const nextViewportIndex = (activeViewportIndex - 1 + viewports.length) % viewports.length;
|
|
2143
|
-
viewportGridService.setActiveViewportIndex(nextViewportIndex);
|
|
2144
|
-
},
|
|
2145
2136
|
toggleOverlays: () => {
|
|
2146
2137
|
// overlay
|
|
2147
2138
|
const overlays = document.getElementsByClassName('microscopy-viewport-overlay');
|
|
2148
2139
|
let onoff = false; // true if this will toggle on
|
|
2149
2140
|
for (let i = 0; i < overlays.length; i++) {
|
|
2150
|
-
if (i === 0)
|
|
2141
|
+
if (i === 0) {
|
|
2142
|
+
onoff = overlays.item(0).classList.contains('hidden');
|
|
2143
|
+
}
|
|
2151
2144
|
overlays.item(i).classList.toggle('hidden');
|
|
2152
2145
|
}
|
|
2153
2146
|
|
|
2154
2147
|
// overview
|
|
2155
2148
|
const {
|
|
2156
|
-
|
|
2149
|
+
activeViewportId,
|
|
2157
2150
|
viewports
|
|
2158
2151
|
} = viewportGridService.getState();
|
|
2159
|
-
microscopyService.toggleOverviewMap(
|
|
2152
|
+
microscopyService.toggleOverviewMap(activeViewportId);
|
|
2160
2153
|
},
|
|
2161
2154
|
toggleAnnotations: () => {
|
|
2162
2155
|
microscopyService.toggleROIsVisibility();
|
|
@@ -2178,14 +2171,6 @@ function getCommandsModule(_ref) {
|
|
|
2178
2171
|
storeContexts: [],
|
|
2179
2172
|
options: {}
|
|
2180
2173
|
},
|
|
2181
|
-
incrementActiveViewport: {
|
|
2182
|
-
commandFn: actions.incrementActiveViewport,
|
|
2183
|
-
storeContexts: []
|
|
2184
|
-
},
|
|
2185
|
-
decrementActiveViewport: {
|
|
2186
|
-
commandFn: actions.decrementActiveViewport,
|
|
2187
|
-
storeContexts: []
|
|
2188
|
-
},
|
|
2189
2174
|
toggleOverlays: {
|
|
2190
2175
|
commandFn: actions.toggleOverlays,
|
|
2191
2176
|
storeContexts: [],
|
|
@@ -2359,7 +2344,7 @@ async function loadSR(microscopyService, microscopySRDisplaySet, referencedDispl
|
|
|
2359
2344
|
// NOTE: When saving Microscopy SR, we are attaching identifier property
|
|
2360
2345
|
// to each ROI, and when read for display, it is coming in as "TEXT"
|
|
2361
2346
|
// evaluation.
|
|
2362
|
-
// As the Dicom Microscopy Viewer will override styles for "Text"
|
|
2347
|
+
// As the Dicom Microscopy Viewer will override styles for "Text" evaluations
|
|
2363
2348
|
// to hide all other geometries, we are going to manually remove that
|
|
2364
2349
|
// evaluation item.
|
|
2365
2350
|
const roi = rois[i];
|
|
@@ -2373,7 +2358,7 @@ async function loadSR(microscopyService, microscopySRDisplaySet, referencedDispl
|
|
|
2373
2358
|
async function _getROIsFromToolState(naturalizedDataset, FrameOfReferenceUID) {
|
|
2374
2359
|
const toolState = MeasurementReport.generateToolState(naturalizedDataset);
|
|
2375
2360
|
const tools = Object.getOwnPropertyNames(toolState);
|
|
2376
|
-
const DICOMMicroscopyViewer = await __webpack_require__.e(/* import() | dicom-microscopy-viewer */ 18).then(__webpack_require__.t.bind(__webpack_require__,
|
|
2361
|
+
const DICOMMicroscopyViewer = await __webpack_require__.e(/* import() | dicom-microscopy-viewer */ 18).then(__webpack_require__.t.bind(__webpack_require__, 42613, 23));
|
|
2377
2362
|
const measurementGroupContentItems = _getMeasurementGroups(naturalizedDataset);
|
|
2378
2363
|
const rois = [];
|
|
2379
2364
|
const labels = [];
|
|
@@ -2446,11 +2431,11 @@ async function _getROIsFromToolState(naturalizedDataset, FrameOfReferenceUID) {
|
|
|
2446
2431
|
});
|
|
2447
2432
|
if (measurements && measurements.length) {
|
|
2448
2433
|
properties.measurements = measurements;
|
|
2449
|
-
console.
|
|
2434
|
+
console.log('[SR] retrieving measurements...', measurements);
|
|
2450
2435
|
}
|
|
2451
2436
|
if (evaluations && evaluations.length) {
|
|
2452
2437
|
properties.evaluations = evaluations;
|
|
2453
|
-
console.
|
|
2438
|
+
console.log('[SR] retrieving evaluations...', evaluations);
|
|
2454
2439
|
}
|
|
2455
2440
|
const roi = new DICOMMicroscopyViewer.roi.ROI({
|
|
2456
2441
|
scoord3d,
|
|
@@ -2533,7 +2518,7 @@ function DicomMicroscopySRSopClassHandler_getDisplaySetsFromSeries(instances, se
|
|
|
2533
2518
|
const instance = instances[0];
|
|
2534
2519
|
|
|
2535
2520
|
// TODO ! Consumption of DICOMMicroscopySRSOPClassHandler to a derived dataset or normal dataset?
|
|
2536
|
-
//
|
|
2521
|
+
// TODO -> Easy to swap this to a "non-derived" displaySet, but unfortunately need to put it in a different extension.
|
|
2537
2522
|
const naturalizedDataset = core_src.DicomMetadataStore.getSeries(instance.StudyInstanceUID, instance.SeriesInstanceUID).instances[0];
|
|
2538
2523
|
const ReferencedFrameOfReferenceUID = _getReferencedFrameOfReferenceUID(naturalizedDataset);
|
|
2539
2524
|
const {
|
|
@@ -2613,7 +2598,7 @@ function _extends() { _extends = Object.assign ? Object.assign.bind() : function
|
|
|
2613
2598
|
|
|
2614
2599
|
|
|
2615
2600
|
const Component = /*#__PURE__*/react.lazy(() => {
|
|
2616
|
-
return Promise.all(/* import() */[__webpack_require__.e(
|
|
2601
|
+
return Promise.all(/* import() */[__webpack_require__.e(754), __webpack_require__.e(604), __webpack_require__.e(417), __webpack_require__.e(23), __webpack_require__.e(342), __webpack_require__.e(250)]).then(__webpack_require__.bind(__webpack_require__, 76516));
|
|
2617
2602
|
});
|
|
2618
2603
|
const MicroscopyViewport = props => {
|
|
2619
2604
|
return /*#__PURE__*/react.createElement(react.Suspense, {
|
|
@@ -2655,7 +2640,7 @@ const MicroscopyViewport = props => {
|
|
|
2655
2640
|
*
|
|
2656
2641
|
* @param props {*}
|
|
2657
2642
|
* @param props.displaySets
|
|
2658
|
-
* @param props.
|
|
2643
|
+
* @param props.viewportId
|
|
2659
2644
|
* @param props.viewportLabel
|
|
2660
2645
|
* @param props.dataSource
|
|
2661
2646
|
* @param props.viewportOptions
|
|
@@ -2668,16 +2653,15 @@ const MicroscopyViewport = props => {
|
|
|
2668
2653
|
} = props;
|
|
2669
2654
|
const [viewportGrid, viewportGridService] = (0,src/* useViewportGrid */.O_)();
|
|
2670
2655
|
const {
|
|
2671
|
-
|
|
2672
|
-
activeViewportIndex
|
|
2656
|
+
activeViewportId
|
|
2673
2657
|
} = viewportGrid;
|
|
2674
2658
|
return /*#__PURE__*/react.createElement(MicroscopyViewport, _extends({
|
|
2675
2659
|
servicesManager: servicesManager,
|
|
2676
2660
|
extensionManager: extensionManager,
|
|
2677
2661
|
commandsManager: commandsManager,
|
|
2678
|
-
|
|
2679
|
-
setViewportActive:
|
|
2680
|
-
viewportGridService.
|
|
2662
|
+
activeViewportId: activeViewportId,
|
|
2663
|
+
setViewportActive: viewportId => {
|
|
2664
|
+
viewportGridService.setActiveViewportId(viewportId);
|
|
2681
2665
|
},
|
|
2682
2666
|
viewportData: viewportOptions
|
|
2683
2667
|
}, props));
|