@ohif/app 3.8.0-beta.73 → 3.8.0-beta.75
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/{121.bundle.21827fec690c01ee9ab3.js → 121.bundle.bd8acf52b6a7047ae832.js} +2 -2
- package/dist/141.bundle.556b4c1e4cab770417ac.js +8620 -0
- package/dist/{191.bundle.c0ea2d031ffddeca32c9.js → 183.bundle.25293de927ef032a6695.js} +195 -122
- package/dist/{188.bundle.acfe3c0e6eb9cc90aef1.js → 188.bundle.e992f05e4e8166db89c4.js} +2 -2
- package/dist/{90.bundle.70f4752bb4ac79aef269.js → 206.bundle.88019f84ccd7fb9276e7.js} +580 -140
- package/dist/{987.bundle.e19408decfd59aadd118.js → 217.bundle.9631d914f170f8d7ef63.js} +31558 -39396
- package/dist/{295.bundle.3a0d5062d65296c4bf5d.js → 295.bundle.688b6bbff493cd904ae7.js} +2 -2
- package/dist/{155.bundle.64e00e96835d61e99c0e.js → 325.bundle.52287c47a07bb16869cb.js} +43 -58
- package/dist/{425.bundle.f796ed1020fbed0f1e71.js → 335.bundle.8ed90c9c715dafb05c77.js} +132 -518
- package/dist/{342.bundle.521c0217f82380c0c2ad.js → 342.bundle.c6165579c4ac3ef0d6a8.js} +2 -2
- package/dist/{41.bundle.8b3f6e6f4bd71b85ef14.js → 41.bundle.6a01588b0e9bf25372ea.js} +28 -29
- package/dist/{433.bundle.6f2308ab10593784778c.js → 433.bundle.1474591f213852cffcba.js} +188 -172
- package/dist/{290.bundle.952de53057f98e2c5ef0.js → 445.bundle.38c6d2af64e41cd7c614.js} +1 -1049
- package/dist/{448.bundle.19df2fef38bb0f6a272a.js → 448.bundle.eb2e38dfa7fd0d731109.js} +16 -22
- package/dist/487.bundle.c7a54a90b005e5b977df.js +1875 -0
- package/dist/{530.bundle.f4b7966fb33eafb8cd5d.js → 530.bundle.7c94543955552475c56a.js} +9 -9
- package/dist/{540.bundle.32224b29bfa11d1f1cec.js → 540.bundle.45a7a300cc09906b4acc.js} +15 -15
- package/dist/{544.bundle.1110b24e96863d719a95.js → 544.bundle.1c1f57118560046649c1.js} +9 -17
- package/dist/{574.bundle.2b3369042aad5d553463.js → 574.bundle.b4eb8773d7741868e84b.js} +166 -45
- package/dist/{594.bundle.61a9f0567260e9bb4480.js → 594.bundle.6a804bd412dbf955c5b9.js} +4 -4
- package/dist/{2.bundle.a849401e1fefc0898248.js → 633.bundle.65ed703c889005f8ffa8.js} +35 -43
- package/dist/{699.bundle.9f4eddf87548c0d0dca3.js → 699.bundle.d672e71097df9be1b2a7.js} +18 -35
- package/dist/702.bundle.963481fbf871984b646f.js +8426 -0
- package/dist/722.bundle.afab1fe6bfcd569130ac.js +1083 -0
- package/dist/{724.bundle.b57096deac9649aada4b.js → 724.bundle.73c3bd976d8a7f1d040c.js} +20 -11
- package/dist/{862.bundle.47305c27f0fb939c2f97.js → 862.bundle.f49a379497bb3b43a942.js} +3 -3
- package/dist/{889.bundle.3816444220909bd1fc78.js → 889.bundle.fa29b24385d14e4fa4fd.js} +8 -8
- package/dist/{595.bundle.e8ff2d0672cb195d4ab8.js → 896.bundle.2635ab03af0b472f6e39.js} +686 -57
- package/dist/{905.bundle.2dd7f62cb6e49851926b.js → 905.bundle.9f0b28f4bf91fffdc90c.js} +4 -4
- package/dist/{907.bundle.d22edc6203167e985ab3.js → 907.bundle.7c64be49c9a44fbd1e61.js} +2 -2
- package/dist/94.bundle.e9ca76b8e5c4000c9742.js +784 -0
- package/dist/{961.bundle.f207f1ac54a174e67d82.js → 961.bundle.d1888c50a49e80380c69.js} +2 -2
- package/dist/{app.bundle.5e5ee16c43a68961e8c4.js → app.bundle.a6eb6707172f9eb6c8c2.js} +98584 -89435
- package/dist/app.bundle.css +5 -4
- package/dist/cornerstoneDICOMImageLoader.min.js +1 -1
- package/dist/cornerstoneDICOMImageLoader.min.js.map +1 -1
- package/dist/histogram-worker.bundle.829e14ec12c2b41a4323.js +359 -0
- package/dist/index.html +1 -1
- package/dist/{polySeg.bundle.fe47718e6a8414f175b1.js → polySeg.bundle.c503e9460cef894737cd.js} +3 -6
- package/dist/sw.js +1 -1
- package/package.json +20 -19
- package/dist/425.css +0 -2
- /package/dist/{164.bundle.6b98e9caf53620fbd6ca.js → 164.bundle.2fd64799a0bae7596af8.js} +0 -0
- /package/dist/{155.css → 325.css} +0 -0
- /package/dist/{2.css → 633.css} +0 -0
- /package/dist/{595.css → 896.css} +0 -0
|
@@ -12,9 +12,9 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
12
12
|
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_0__);
|
|
13
13
|
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(41766);
|
|
14
14
|
/* harmony import */ var react_i18next__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(80619);
|
|
15
|
-
/* harmony import */ var _ohif_core__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(
|
|
15
|
+
/* harmony import */ var _ohif_core__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(55411);
|
|
16
16
|
/* harmony import */ var _tools_modules_dicomSRModule__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(74334);
|
|
17
|
-
/* harmony import */ var _ohif_ui__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(
|
|
17
|
+
/* harmony import */ var _ohif_ui__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(5085);
|
|
18
18
|
/* harmony import */ var _utils_hydrateStructuredReport__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(77089);
|
|
19
19
|
/* harmony import */ var _state__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(15575);
|
|
20
20
|
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
@@ -332,13 +332,13 @@ OHIFCornerstoneSRViewport.defaultProps = {
|
|
|
332
332
|
customProps: {}
|
|
333
333
|
};
|
|
334
334
|
async function _getViewportReferencedDisplaySetData(displaySet, measurementSelected, displaySetService) {
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
}
|
|
335
|
+
if (!displaySet.keyImageDisplaySet) {
|
|
336
|
+
// Create a new display set, and preserve a reference to it here,
|
|
337
|
+
// so that it can be re-displayed and shown inside the SR viewport.
|
|
338
|
+
// This is only for ease of redisplay - the display set is stored in the
|
|
339
|
+
// usual manner in the display set service.
|
|
340
|
+
displaySet.keyImageDisplaySet = createReferencedImageDisplaySet(displaySetService, displaySet);
|
|
341
|
+
}
|
|
342
342
|
const referencedDisplaySet = displaySetService.getDisplaySetByUID(displaySetInstanceUID);
|
|
343
343
|
const image0 = referencedDisplaySet.images[0];
|
|
344
344
|
const referencedDisplaySetMetadata = {
|
|
@@ -25,14 +25,14 @@ const id = package_namespaceObject.UU;
|
|
|
25
25
|
const SOPClassHandlerName = 'dicom-sr';
|
|
26
26
|
const SOPClassHandlerId = `${id}.sopClassHandlerModule.${SOPClassHandlerName}`;
|
|
27
27
|
|
|
28
|
-
// EXTERNAL MODULE: ../../core/src/index.ts +
|
|
29
|
-
var src = __webpack_require__(
|
|
30
|
-
// EXTERNAL MODULE: ../../../node_modules/gl-matrix/esm/index.js +
|
|
31
|
-
var esm = __webpack_require__(
|
|
32
|
-
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/index.js +
|
|
33
|
-
var dist_esm = __webpack_require__(
|
|
34
|
-
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/index.js +
|
|
35
|
-
var core_dist_esm = __webpack_require__(
|
|
28
|
+
// EXTERNAL MODULE: ../../core/src/index.ts + 70 modules
|
|
29
|
+
var src = __webpack_require__(55411);
|
|
30
|
+
// EXTERNAL MODULE: ../../../node_modules/gl-matrix/esm/index.js + 1 modules
|
|
31
|
+
var esm = __webpack_require__(44753);
|
|
32
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/index.js + 18 modules
|
|
33
|
+
var dist_esm = __webpack_require__(24542);
|
|
34
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/index.js + 327 modules
|
|
35
|
+
var core_dist_esm = __webpack_require__(44656);
|
|
36
36
|
// EXTERNAL MODULE: ../../../extensions/cornerstone-dicom-sr/src/tools/modules/dicomSRModule.js
|
|
37
37
|
var dicomSRModule = __webpack_require__(74334);
|
|
38
38
|
;// CONCATENATED MODULE: ../../../extensions/cornerstone-dicom-sr/src/constants/scoordTypes.js
|
|
@@ -1571,7 +1571,7 @@ const dicomSRExtension = {
|
|
|
1571
1571
|
/* harmony export */ m1: () => (/* binding */ setTrackingUniqueIdentifiersForElement)
|
|
1572
1572
|
/* harmony export */ });
|
|
1573
1573
|
/* unused harmony export setActiveTrackingUniqueIdentifierForElement */
|
|
1574
|
-
/* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
|
|
1574
|
+
/* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(44656);
|
|
1575
1575
|
|
|
1576
1576
|
const state = {
|
|
1577
1577
|
TrackingUniqueIdentifier: null,
|
|
@@ -1632,10 +1632,10 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
1632
1632
|
A: () => (/* binding */ hydrateStructuredReport)
|
|
1633
1633
|
});
|
|
1634
1634
|
|
|
1635
|
-
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/index.js +
|
|
1636
|
-
var esm = __webpack_require__(
|
|
1637
|
-
// EXTERNAL MODULE: ../../core/src/index.ts +
|
|
1638
|
-
var src = __webpack_require__(
|
|
1635
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/index.js + 327 modules
|
|
1636
|
+
var esm = __webpack_require__(44656);
|
|
1637
|
+
// EXTERNAL MODULE: ../../core/src/index.ts + 70 modules
|
|
1638
|
+
var src = __webpack_require__(55411);
|
|
1639
1639
|
;// CONCATENATED MODULE: ../../../extensions/cornerstone-dicom-sr/src/utils/getLabelFromDCMJSImportedToolData.js
|
|
1640
1640
|
/**
|
|
1641
1641
|
* Extracts the label from the toolData imported from dcmjs. We need to do this
|
|
@@ -1660,8 +1660,8 @@ function getLabelFromDCMJSImportedToolData(toolData) {
|
|
|
1660
1660
|
}
|
|
1661
1661
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/adapters/dist/adapters.es.js
|
|
1662
1662
|
var adapters_es = __webpack_require__(83342);
|
|
1663
|
-
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/index.js +
|
|
1664
|
-
var dist_esm = __webpack_require__(
|
|
1663
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/index.js + 18 modules
|
|
1664
|
+
var dist_esm = __webpack_require__(24542);
|
|
1665
1665
|
;// CONCATENATED MODULE: ../../../extensions/cornerstone-dicom-sr/src/utils/hydrateStructuredReport.js
|
|
1666
1666
|
|
|
1667
1667
|
|
|
@@ -22,8 +22,8 @@ var prop_types_default = /*#__PURE__*/__webpack_require__.n(prop_types);
|
|
|
22
22
|
// EXTERNAL MODULE: ../../../node_modules/lodash.debounce/index.js
|
|
23
23
|
var lodash_debounce = __webpack_require__(14771);
|
|
24
24
|
var lodash_debounce_default = /*#__PURE__*/__webpack_require__.n(lodash_debounce);
|
|
25
|
-
// EXTERNAL MODULE: ../../ui/src/index.js +
|
|
26
|
-
var src = __webpack_require__(
|
|
25
|
+
// EXTERNAL MODULE: ../../ui/src/index.js + 785 modules
|
|
26
|
+
var src = __webpack_require__(5085);
|
|
27
27
|
;// CONCATENATED MODULE: ../../../extensions/dicom-microscopy/src/DicomMicroscopyViewport.css
|
|
28
28
|
// extracted by mini-css-extract-plugin
|
|
29
29
|
|
|
@@ -59,8 +59,8 @@ const listComponentGenerator = props => {
|
|
|
59
59
|
|
|
60
60
|
// EXTERNAL MODULE: ../../../node_modules/moment/moment.js
|
|
61
61
|
var moment_moment = __webpack_require__(8291);
|
|
62
|
-
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/index.js +
|
|
63
|
-
var esm = __webpack_require__(
|
|
62
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/index.js + 327 modules
|
|
63
|
+
var esm = __webpack_require__(44656);
|
|
64
64
|
;// CONCATENATED MODULE: ../../../extensions/dicom-microscopy/src/components/ViewportOverlay/utils.ts
|
|
65
65
|
|
|
66
66
|
|
|
@@ -256,19 +256,13 @@ const itemGenerator = props => {
|
|
|
256
256
|
}, content.value)));
|
|
257
257
|
};
|
|
258
258
|
/* harmony default export */ const ViewportOverlay = (generateFromConfig({}));
|
|
259
|
-
// EXTERNAL MODULE:
|
|
260
|
-
var
|
|
261
|
-
// EXTERNAL MODULE:
|
|
262
|
-
var
|
|
259
|
+
// EXTERNAL MODULE: ../../core/src/index.ts + 70 modules
|
|
260
|
+
var core_src = __webpack_require__(55411);
|
|
261
|
+
// EXTERNAL MODULE: ../../../extensions/default/src/index.ts + 85 modules
|
|
262
|
+
var default_src = __webpack_require__(7206);
|
|
263
263
|
;// CONCATENATED MODULE: ../../../extensions/dicom-microscopy/src/utils/dicomWebClient.ts
|
|
264
264
|
|
|
265
265
|
|
|
266
|
-
const {
|
|
267
|
-
DICOMwebClient
|
|
268
|
-
} = dicomweb_client_es/* api */.FH;
|
|
269
|
-
DICOMwebClient._buildMultipartAcceptHeaderFieldValue = () => {
|
|
270
|
-
return '*/*';
|
|
271
|
-
};
|
|
272
266
|
|
|
273
267
|
/**
|
|
274
268
|
* create a DICOMwebClient object to be used by Dicom Microscopy Viewer
|
|
@@ -298,7 +292,7 @@ function getDicomWebClient({
|
|
|
298
292
|
headers: userAuthenticationService.getAuthorizationHeader(),
|
|
299
293
|
errorInterceptor: core_src/* errorHandler */.r_.getHTTPErrorHandler()
|
|
300
294
|
};
|
|
301
|
-
const client = new
|
|
295
|
+
const client = new default_src.StaticWadoClient(wadoConfig);
|
|
302
296
|
client.wadoURL = wadoConfig.url;
|
|
303
297
|
if (extensionManager.activeDataSource === 'dicomlocal') {
|
|
304
298
|
/**
|
|
@@ -339,8 +333,6 @@ function getDicomWebClient({
|
|
|
339
333
|
}
|
|
340
334
|
// EXTERNAL MODULE: ../../../node_modules/dcmjs/build/dcmjs.es.js
|
|
341
335
|
var dcmjs_es = __webpack_require__(31426);
|
|
342
|
-
// EXTERNAL MODULE: ../../../extensions/default/src/index.ts + 78 modules
|
|
343
|
-
var default_src = __webpack_require__(54090);
|
|
344
336
|
;// CONCATENATED MODULE: ../../../extensions/dicom-microscopy/src/utils/cleanDenaturalizedDataset.ts
|
|
345
337
|
|
|
346
338
|
function isPrimitive(v) {
|
|
@@ -19,14 +19,14 @@ var index_esm = __webpack_require__(78668);
|
|
|
19
19
|
// EXTERNAL MODULE: ../../../node_modules/prop-types/index.js
|
|
20
20
|
var prop_types = __webpack_require__(11374);
|
|
21
21
|
var prop_types_default = /*#__PURE__*/__webpack_require__.n(prop_types);
|
|
22
|
-
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/index.js +
|
|
23
|
-
var esm = __webpack_require__(
|
|
24
|
-
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/index.js +
|
|
25
|
-
var dist_esm = __webpack_require__(
|
|
26
|
-
// EXTERNAL MODULE: ../../core/src/index.ts +
|
|
27
|
-
var src = __webpack_require__(
|
|
28
|
-
// EXTERNAL MODULE: ../../ui/src/index.js +
|
|
29
|
-
var ui_src = __webpack_require__(
|
|
22
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/index.js + 18 modules
|
|
23
|
+
var esm = __webpack_require__(24542);
|
|
24
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/index.js + 327 modules
|
|
25
|
+
var dist_esm = __webpack_require__(44656);
|
|
26
|
+
// EXTERNAL MODULE: ../../core/src/index.ts + 70 modules
|
|
27
|
+
var src = __webpack_require__(55411);
|
|
28
|
+
// EXTERNAL MODULE: ../../ui/src/index.js + 785 modules
|
|
29
|
+
var ui_src = __webpack_require__(5085);
|
|
30
30
|
// EXTERNAL MODULE: ../../../extensions/cornerstone/src/state.ts
|
|
31
31
|
var state = __webpack_require__(71353);
|
|
32
32
|
;// CONCATENATED MODULE: ../../../extensions/cornerstone/src/Viewport/OHIFCornerstoneViewport.css
|
|
@@ -156,8 +156,8 @@ CornerstoneImageScrollbar.propTypes = {
|
|
|
156
156
|
servicesManager: (prop_types_default()).object.isRequired
|
|
157
157
|
};
|
|
158
158
|
/* harmony default export */ const ViewportImageScrollbar = (CornerstoneImageScrollbar);
|
|
159
|
-
// EXTERNAL MODULE: ../../../node_modules/gl-matrix/esm/index.js +
|
|
160
|
-
var gl_matrix_esm = __webpack_require__(
|
|
159
|
+
// EXTERNAL MODULE: ../../../node_modules/gl-matrix/esm/index.js + 1 modules
|
|
160
|
+
var gl_matrix_esm = __webpack_require__(44753);
|
|
161
161
|
// EXTERNAL MODULE: ../../../node_modules/moment/moment.js
|
|
162
162
|
var moment = __webpack_require__(8291);
|
|
163
163
|
var moment_default = /*#__PURE__*/__webpack_require__.n(moment);
|
|
@@ -482,7 +482,7 @@ function _getViewportInstances(viewportData) {
|
|
|
482
482
|
} else if (viewportData.viewportType === dist_esm.Enums.ViewportType.ORTHOGRAPHIC) {
|
|
483
483
|
const volumes = viewportData.data;
|
|
484
484
|
volumes.forEach(volume => {
|
|
485
|
-
if (!volume?.imageIds) {
|
|
485
|
+
if (!volume?.imageIds || volume.imageIds.length === 0) {
|
|
486
486
|
return;
|
|
487
487
|
}
|
|
488
488
|
imageIds.push(volume.imageIds[0]);
|
|
@@ -966,6 +966,8 @@ function CornerstoneOverlays(props) {
|
|
|
966
966
|
/* harmony default export */ const Overlays_CornerstoneOverlays = (CornerstoneOverlays);
|
|
967
967
|
// EXTERNAL MODULE: ../../../extensions/cornerstone/src/utils/measurementServiceMappings/utils/getSOPInstanceAttributes.js
|
|
968
968
|
var getSOPInstanceAttributes = __webpack_require__(1663);
|
|
969
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/streaming-image-volume-loader/dist/esm/index.js + 13 modules
|
|
970
|
+
var streaming_image_volume_loader_dist_esm = __webpack_require__(23722);
|
|
969
971
|
// EXTERNAL MODULE: ./state/index.js + 1 modules
|
|
970
972
|
var state_0 = __webpack_require__(15575);
|
|
971
973
|
;// CONCATENATED MODULE: ../../../extensions/cornerstone/src/components/CinePlayer/CinePlayer.tsx
|
|
@@ -973,6 +975,7 @@ var state_0 = __webpack_require__(15575);
|
|
|
973
975
|
|
|
974
976
|
|
|
975
977
|
|
|
978
|
+
|
|
976
979
|
function WrappedCinePlayer({
|
|
977
980
|
enabledVPElement,
|
|
978
981
|
viewportId,
|
|
@@ -986,30 +989,28 @@ function WrappedCinePlayer({
|
|
|
986
989
|
const [{
|
|
987
990
|
isCineEnabled,
|
|
988
991
|
cines
|
|
989
|
-
},
|
|
992
|
+
}, cineService] = (0,ui_src/* useCine */.tq)();
|
|
990
993
|
const [newStackFrameRate, setNewStackFrameRate] = (0,react.useState)(24);
|
|
994
|
+
const [dynamicInfo, setDynamicInfo] = (0,react.useState)(null);
|
|
991
995
|
const [appConfig] = (0,state_0/* useAppConfig */.r)();
|
|
992
996
|
const isMountedRef = (0,react.useRef)(null);
|
|
993
|
-
const {
|
|
994
|
-
component: CinePlayerComponent = ui_src/* CinePlayer */.F0
|
|
995
|
-
} = customizationService.get('cinePlayer') ?? {};
|
|
996
997
|
const cineHandler = () => {
|
|
997
|
-
if (!cines
|
|
998
|
+
if (!cines?.[viewportId] || !enabledVPElement) {
|
|
998
999
|
return;
|
|
999
1000
|
}
|
|
1000
|
-
const
|
|
1001
|
-
|
|
1002
|
-
|
|
1001
|
+
const {
|
|
1002
|
+
isPlaying = false,
|
|
1003
|
+
frameRate = 24
|
|
1004
|
+
} = cines[viewportId];
|
|
1003
1005
|
const validFrameRate = Math.max(frameRate, 1);
|
|
1004
|
-
|
|
1005
|
-
|
|
1006
|
-
|
|
1007
|
-
});
|
|
1008
|
-
} else {
|
|
1009
|
-
api.stopClip(enabledVPElement);
|
|
1010
|
-
}
|
|
1006
|
+
return isPlaying ? cineService.playClip(enabledVPElement, {
|
|
1007
|
+
framesPerSecond: validFrameRate
|
|
1008
|
+
}) : cineService.stopClip(enabledVPElement);
|
|
1011
1009
|
};
|
|
1012
|
-
const
|
|
1010
|
+
const newDisplaySetHandler = (0,react.useCallback)(() => {
|
|
1011
|
+
if (!enabledVPElement || !isCineEnabled) {
|
|
1012
|
+
return;
|
|
1013
|
+
}
|
|
1013
1014
|
const {
|
|
1014
1015
|
viewports
|
|
1015
1016
|
} = viewportGridService.getState();
|
|
@@ -1017,7 +1018,7 @@ function WrappedCinePlayer({
|
|
|
1017
1018
|
displaySetInstanceUIDs
|
|
1018
1019
|
} = viewports.get(viewportId);
|
|
1019
1020
|
let frameRate = 24;
|
|
1020
|
-
let isPlaying = cines[viewportId]
|
|
1021
|
+
let isPlaying = cines[viewportId]?.isPlaying || false;
|
|
1021
1022
|
displaySetInstanceUIDs.forEach(displaySetInstanceUID => {
|
|
1022
1023
|
const displaySet = displaySetService.getDisplaySetByUID(displaySetInstanceUID);
|
|
1023
1024
|
if (displaySet.FrameRate) {
|
|
@@ -1026,63 +1027,178 @@ function WrappedCinePlayer({
|
|
|
1026
1027
|
frameRate = Math.round(1000 / displaySet.FrameRate);
|
|
1027
1028
|
isPlaying ||= !!appConfig.autoPlayCine;
|
|
1028
1029
|
}
|
|
1030
|
+
|
|
1031
|
+
// check if the displaySet is dynamic and set the dynamic info
|
|
1032
|
+
if (displaySet.isDynamicVolume) {
|
|
1033
|
+
const {
|
|
1034
|
+
dynamicVolumeInfo
|
|
1035
|
+
} = displaySet;
|
|
1036
|
+
const numTimePoints = dynamicVolumeInfo.timePoints.length;
|
|
1037
|
+
const label = dynamicVolumeInfo.splittingTag;
|
|
1038
|
+
const timePointIndex = dynamicVolumeInfo.timePointIndex || 0;
|
|
1039
|
+
setDynamicInfo({
|
|
1040
|
+
volumeId: displaySet.displaySetInstanceUID,
|
|
1041
|
+
timePointIndex,
|
|
1042
|
+
numTimePoints,
|
|
1043
|
+
label
|
|
1044
|
+
});
|
|
1045
|
+
} else {
|
|
1046
|
+
setDynamicInfo(null);
|
|
1047
|
+
}
|
|
1029
1048
|
});
|
|
1030
1049
|
if (isPlaying) {
|
|
1031
|
-
|
|
1050
|
+
cineService.setIsCineEnabled(isPlaying);
|
|
1032
1051
|
}
|
|
1033
|
-
|
|
1052
|
+
cineService.setCine({
|
|
1034
1053
|
id: viewportId,
|
|
1035
1054
|
isPlaying,
|
|
1036
1055
|
frameRate
|
|
1037
1056
|
});
|
|
1038
1057
|
setNewStackFrameRate(frameRate);
|
|
1039
|
-
}, [displaySetService, viewportId, viewportGridService, cines]);
|
|
1058
|
+
}, [displaySetService, viewportId, viewportGridService, cines, isCineEnabled]);
|
|
1040
1059
|
(0,react.useEffect)(() => {
|
|
1041
1060
|
isMountedRef.current = true;
|
|
1042
|
-
|
|
1061
|
+
newDisplaySetHandler();
|
|
1043
1062
|
return () => {
|
|
1044
1063
|
isMountedRef.current = false;
|
|
1045
|
-
|
|
1046
|
-
|
|
1064
|
+
};
|
|
1065
|
+
}, [isCineEnabled, newDisplaySetHandler]);
|
|
1066
|
+
|
|
1067
|
+
/**
|
|
1068
|
+
* Use effect for handling new display set
|
|
1069
|
+
*/
|
|
1070
|
+
(0,react.useEffect)(() => {
|
|
1071
|
+
if (!enabledVPElement) {
|
|
1072
|
+
return;
|
|
1073
|
+
}
|
|
1074
|
+
dist_esm.eventTarget.addEventListener(dist_esm.Enums.Events.STACK_VIEWPORT_NEW_STACK, newDisplaySetHandler);
|
|
1075
|
+
// this doesn't makes sense that we are listening to this event on viewport element
|
|
1076
|
+
enabledVPElement.addEventListener(dist_esm.Enums.Events.VOLUME_VIEWPORT_NEW_VOLUME, newDisplaySetHandler);
|
|
1077
|
+
return () => {
|
|
1078
|
+
cineService.setCine({
|
|
1047
1079
|
id: viewportId,
|
|
1048
1080
|
isPlaying: false
|
|
1049
1081
|
});
|
|
1050
|
-
dist_esm.eventTarget.removeEventListener(dist_esm.Enums.Events.STACK_VIEWPORT_NEW_STACK,
|
|
1082
|
+
dist_esm.eventTarget.removeEventListener(dist_esm.Enums.Events.STACK_VIEWPORT_NEW_STACK, newDisplaySetHandler);
|
|
1083
|
+
enabledVPElement.removeEventListener(dist_esm.Enums.Events.VOLUME_VIEWPORT_NEW_VOLUME, newDisplaySetHandler);
|
|
1051
1084
|
};
|
|
1052
|
-
}, [enabledVPElement,
|
|
1085
|
+
}, [enabledVPElement, newDisplaySetHandler, viewportId]);
|
|
1053
1086
|
(0,react.useEffect)(() => {
|
|
1054
1087
|
if (!cines || !cines[viewportId] || !enabledVPElement || !isMountedRef.current) {
|
|
1055
1088
|
return;
|
|
1056
1089
|
}
|
|
1057
1090
|
cineHandler();
|
|
1058
1091
|
return () => {
|
|
1059
|
-
|
|
1092
|
+
cineService.stopClip(enabledVPElement);
|
|
1060
1093
|
};
|
|
1061
|
-
}, [cines, viewportId, enabledVPElement, cineHandler]);
|
|
1094
|
+
}, [cines, viewportId, cineService, enabledVPElement, cineHandler]);
|
|
1095
|
+
if (!isCineEnabled) {
|
|
1096
|
+
return null;
|
|
1097
|
+
}
|
|
1062
1098
|
const cine = cines[viewportId];
|
|
1063
|
-
const isPlaying = cine
|
|
1064
|
-
return
|
|
1099
|
+
const isPlaying = cine?.isPlaying || false;
|
|
1100
|
+
return /*#__PURE__*/react.createElement(RenderCinePlayer, {
|
|
1101
|
+
viewportId: viewportId,
|
|
1102
|
+
cineService: cineService,
|
|
1103
|
+
newStackFrameRate: newStackFrameRate,
|
|
1104
|
+
isPlaying: isPlaying,
|
|
1105
|
+
dynamicInfo: dynamicInfo,
|
|
1106
|
+
customizationService: customizationService
|
|
1107
|
+
});
|
|
1108
|
+
}
|
|
1109
|
+
function RenderCinePlayer({
|
|
1110
|
+
viewportId,
|
|
1111
|
+
cineService,
|
|
1112
|
+
newStackFrameRate,
|
|
1113
|
+
isPlaying,
|
|
1114
|
+
dynamicInfo: dynamicInfoProp,
|
|
1115
|
+
customizationService
|
|
1116
|
+
}) {
|
|
1117
|
+
const {
|
|
1118
|
+
component: CinePlayerComponent = ui_src/* CinePlayer */.F0
|
|
1119
|
+
} = customizationService.get('cinePlayer') ?? {};
|
|
1120
|
+
const [dynamicInfo, setDynamicInfo] = (0,react.useState)(dynamicInfoProp);
|
|
1121
|
+
(0,react.useEffect)(() => {
|
|
1122
|
+
setDynamicInfo(dynamicInfoProp);
|
|
1123
|
+
}, [dynamicInfoProp]);
|
|
1124
|
+
|
|
1125
|
+
/**
|
|
1126
|
+
* Use effect for handling 4D time index changed
|
|
1127
|
+
*/
|
|
1128
|
+
(0,react.useEffect)(() => {
|
|
1129
|
+
if (!dynamicInfo) {
|
|
1130
|
+
return;
|
|
1131
|
+
}
|
|
1132
|
+
const handleTimePointIndexChange = evt => {
|
|
1133
|
+
const {
|
|
1134
|
+
volumeId,
|
|
1135
|
+
timePointIndex,
|
|
1136
|
+
numTimePoints,
|
|
1137
|
+
splittingTag
|
|
1138
|
+
} = evt.detail;
|
|
1139
|
+
setDynamicInfo({
|
|
1140
|
+
volumeId,
|
|
1141
|
+
timePointIndex,
|
|
1142
|
+
numTimePoints,
|
|
1143
|
+
label: splittingTag
|
|
1144
|
+
});
|
|
1145
|
+
};
|
|
1146
|
+
dist_esm.eventTarget.addEventListener(streaming_image_volume_loader_dist_esm/* Enums.Events */.fX.s.DYNAMIC_VOLUME_TIME_POINT_INDEX_CHANGED, handleTimePointIndexChange);
|
|
1147
|
+
return () => {
|
|
1148
|
+
dist_esm.eventTarget.removeEventListener(streaming_image_volume_loader_dist_esm/* Enums.Events */.fX.s.DYNAMIC_VOLUME_TIME_POINT_INDEX_CHANGED, handleTimePointIndexChange);
|
|
1149
|
+
};
|
|
1150
|
+
}, [dynamicInfo]);
|
|
1151
|
+
(0,react.useEffect)(() => {
|
|
1152
|
+
if (!dynamicInfo) {
|
|
1153
|
+
return;
|
|
1154
|
+
}
|
|
1155
|
+
const {
|
|
1156
|
+
volumeId,
|
|
1157
|
+
timePointIndex,
|
|
1158
|
+
numTimePoints,
|
|
1159
|
+
splittingTag
|
|
1160
|
+
} = dynamicInfo || {};
|
|
1161
|
+
const volume = dist_esm.cache.getVolume(volumeId);
|
|
1162
|
+
volume.timePointIndex = timePointIndex;
|
|
1163
|
+
setDynamicInfo({
|
|
1164
|
+
volumeId,
|
|
1165
|
+
timePointIndex,
|
|
1166
|
+
numTimePoints,
|
|
1167
|
+
label: splittingTag
|
|
1168
|
+
});
|
|
1169
|
+
}, []);
|
|
1170
|
+
const updateDynamicInfo = (0,react.useCallback)(props => {
|
|
1171
|
+
const {
|
|
1172
|
+
volumeId,
|
|
1173
|
+
timePointIndex
|
|
1174
|
+
} = props;
|
|
1175
|
+
const volume = dist_esm.cache.getVolume(volumeId);
|
|
1176
|
+
volume.timePointIndex = timePointIndex;
|
|
1177
|
+
}, []);
|
|
1178
|
+
return /*#__PURE__*/react.createElement(CinePlayerComponent, {
|
|
1065
1179
|
className: "absolute left-1/2 bottom-3 -translate-x-1/2",
|
|
1066
1180
|
frameRate: newStackFrameRate,
|
|
1067
1181
|
isPlaying: isPlaying,
|
|
1068
1182
|
onClose: () => {
|
|
1069
1183
|
// also stop the clip
|
|
1070
|
-
|
|
1184
|
+
cineService.setCine({
|
|
1071
1185
|
id: viewportId,
|
|
1072
1186
|
isPlaying: false
|
|
1073
1187
|
});
|
|
1074
|
-
|
|
1188
|
+
cineService.setIsCineEnabled(false);
|
|
1075
1189
|
},
|
|
1076
1190
|
onPlayPauseChange: isPlaying => {
|
|
1077
|
-
|
|
1191
|
+
cineService.setCine({
|
|
1078
1192
|
id: viewportId,
|
|
1079
1193
|
isPlaying
|
|
1080
1194
|
});
|
|
1081
1195
|
},
|
|
1082
|
-
onFrameRateChange: frameRate =>
|
|
1196
|
+
onFrameRateChange: frameRate => cineService.setCine({
|
|
1083
1197
|
id: viewportId,
|
|
1084
1198
|
frameRate
|
|
1085
|
-
})
|
|
1199
|
+
}),
|
|
1200
|
+
dynamicInfo: dynamicInfo,
|
|
1201
|
+
updateDynamicInfo: updateDynamicInfo
|
|
1086
1202
|
});
|
|
1087
1203
|
}
|
|
1088
1204
|
/* harmony default export */ const CinePlayer = (WrappedCinePlayer);
|
|
@@ -2081,6 +2197,11 @@ const OHIFCornerstoneViewport = /*#__PURE__*/react.memo(props => {
|
|
|
2081
2197
|
onReady
|
|
2082
2198
|
} = props;
|
|
2083
2199
|
const viewportId = viewportOptions.viewportId;
|
|
2200
|
+
|
|
2201
|
+
// Since we only have support for dynamic data in volume viewports, we should
|
|
2202
|
+
// handle this case here and set the viewportType to volume if any of the
|
|
2203
|
+
// displaySets are dynamic volumes
|
|
2204
|
+
viewportOptions.viewportType = displaySets.some(ds => ds.isDynamicVolume) ? 'volume' : viewportOptions.viewportType;
|
|
2084
2205
|
const [scrollbarHeight, setScrollbarHeight] = (0,react.useState)('100px');
|
|
2085
2206
|
const [enabledVPElement, setEnabledVPElement] = (0,react.useState)(null);
|
|
2086
2207
|
const elementRef = (0,react.useRef)();
|
|
@@ -12,10 +12,10 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
12
12
|
"default": () => (/* binding */ basic_dev_mode_src)
|
|
13
13
|
});
|
|
14
14
|
|
|
15
|
-
// EXTERNAL MODULE: ../../ui/src/index.js +
|
|
16
|
-
var src = __webpack_require__(
|
|
17
|
-
// EXTERNAL MODULE: ../../core/src/index.ts +
|
|
18
|
-
var core_src = __webpack_require__(
|
|
15
|
+
// EXTERNAL MODULE: ../../ui/src/index.js + 785 modules
|
|
16
|
+
var src = __webpack_require__(5085);
|
|
17
|
+
// EXTERNAL MODULE: ../../core/src/index.ts + 70 modules
|
|
18
|
+
var core_src = __webpack_require__(55411);
|
|
19
19
|
;// CONCATENATED MODULE: ../../../modes/basic-dev-mode/src/toolbarButtons.js
|
|
20
20
|
|
|
21
21
|
|