@ohif/app 3.8.0-beta.8 → 3.8.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.
Files changed (99) hide show
  1. package/dist/{220.bundle.f7e1c96c94245e70f2be.js → 109.bundle.b4fee2a22b622839baf5.js} +4466 -3715
  2. package/dist/{471.bundle.49c8d281adbae4a2c4df.js → 121.bundle.787f5a848ed632a4d5fc.js} +90 -112
  3. package/dist/141.bundle.556b4c1e4cab770417ac.js +8620 -0
  4. package/dist/{687.bundle.9065db35c01823286f08.js → 164.bundle.d4598e491783753a8b6b.js} +22 -38
  5. package/dist/17dd54813d5acc10bf8f.wasm +0 -0
  6. package/dist/183.bundle.72bf18ad23ee6624986d.js +30394 -0
  7. package/dist/{506.bundle.5731bb4349e266491225.js → 188.bundle.b80554ec7df7dcd435a5.js} +23 -28
  8. package/dist/{342.bundle.e7c3d500f86fdfcc62b5.js → 206.bundle.f957e0d1cdff66dbac69.js} +1963 -1142
  9. package/dist/20fc4c659b85ccd2a9c0.wasm +0 -0
  10. package/dist/217.bundle.be1cc412f8e26be87d21.js +115079 -0
  11. package/dist/{451.bundle.57c21db5d003c75e9d61.js → 295.bundle.6f734abf8fa85b1a310d.js} +107 -127
  12. package/dist/{125.bundle.253395f320b72180da63.js → 297.bundle.194d8985ab974839b5b6.js} +7 -8
  13. package/dist/{19.bundle.f77c5787b6d8ac0b638b.js → 325.bundle.84909a08305556e9f924.js} +479 -371
  14. package/dist/335.bundle.c39d4aefe33aecab958f.js +2590 -0
  15. package/dist/{202.bundle.d3490836f71e001dd30f.js → 342.bundle.e6d0bba29351b5650a8c.js} +566 -868
  16. package/dist/{776.bundle.a2dedb405a12ffd7699b.js → 41.bundle.7c943bb857ed37831905.js} +7295 -3536
  17. package/dist/422.bundle.bd6529c536f59807fbee.js +881 -0
  18. package/dist/{957.bundle.9ea4506963ef8b2d84ba.js → 433.bundle.4c77c1fe8fc90ac14218.js} +14737 -27555
  19. package/dist/445.bundle.38c6d2af64e41cd7c614.js +7835 -0
  20. package/dist/{126.bundle.6e7111d58bcc937ffd80.js → 448.bundle.deedeff5744e77510734.js} +362 -430
  21. package/dist/487.bundle.7890ca42826941ebcd60.js +1875 -0
  22. package/dist/{886.bundle.c8dd3ecc42a4253de278.js → 530.bundle.7c94543955552475c56a.js} +98 -127
  23. package/dist/{663.bundle.d7be28450db14266cdd0.js → 540.bundle.079d43a6717e95c24392.js} +225 -188
  24. package/dist/{250.bundle.aea3335667054bdefe36.js → 544.bundle.1c1f57118560046649c1.js} +37 -62
  25. package/dist/574.bundle.be075ac52fb52b442a8b.js +2641 -0
  26. package/dist/{181.css → 574.css} +1 -1
  27. package/dist/{410.bundle.15c855b0ff4a1a674fb8.js → 594.bundle.0b1165661dd638820082.js} +183 -221
  28. package/dist/{221.bundle.aef554202c58483cb34e.js → 633.bundle.c1658e76f104cbd14cab.js} +349 -552
  29. package/dist/{774.bundle.4b2dc46a35012b898e1a.js → 644.bundle.1e77691d2eeb96a423b0.js} +1852 -8945
  30. package/dist/699.bundle.4f01772e7ce6637de339.js +768 -0
  31. package/dist/702.bundle.963481fbf871984b646f.js +8426 -0
  32. package/dist/722.bundle.afab1fe6bfcd569130ac.js +1083 -0
  33. package/dist/{359.bundle.45ecb3d28e8c22142606.js → 724.bundle.e5794460c391ee9cba2c.js} +164 -259
  34. package/dist/{757.bundle.ec8301d8e70d2b990f65.js → 726.bundle.0b3d9277d22fe7e15b89.js} +512 -879
  35. package/dist/{530.bundle.a03b6f942ace3e1baa1e.js → 835.bundle.15aff0b7433bb0dd6d6d.js} +37 -30
  36. package/dist/{822.bundle.82cdc418f8f56da6060b.js → 862.bundle.c0ee6e1d4d97e1353213.js} +77 -96
  37. package/dist/{236.bundle.4e9924934a747afac132.js → 889.bundle.7858e4b7ca1a2b12b64f.js} +207 -199
  38. package/dist/{281.bundle.deb7492d143e7768d8bf.js → 905.bundle.170908fe660fc6b40649.js} +157 -124
  39. package/dist/{814.bundle.c8c951d20039b63b865a.js → 907.bundle.dee4e30420caf07caea6.js} +16 -30
  40. package/dist/{417.bundle.af0a207c29b109f84159.js → 931.bundle.d270a1fda9a2836c3cc5.js} +26 -26
  41. package/dist/{686.bundle.dccef1f36e4bc79bcc48.js → 939.bundle.9d93b2e47c52338747a2.js} +7 -8
  42. package/dist/94.bundle.c452d9b0645277c2cf4e.js +784 -0
  43. package/dist/{12.bundle.b5ca13e5363f170ecb3b.js → 961.bundle.aaaaaba0ec015a3b85d8.js} +20 -33
  44. package/dist/app-config.js +1 -0
  45. package/dist/{app.bundle.a978edc59b9d82f2eb22.js → app.bundle.6c090a2d6d3ccc97a81d.js} +183240 -87650
  46. package/dist/app.bundle.css +16 -13
  47. package/dist/assets/images/CT-AAA.png +0 -0
  48. package/dist/assets/images/CT-AAA2.png +0 -0
  49. package/dist/assets/images/CT-Air.png +0 -0
  50. package/dist/assets/images/CT-Bone.png +0 -0
  51. package/dist/assets/images/CT-Bones.png +0 -0
  52. package/dist/assets/images/CT-Cardiac.png +0 -0
  53. package/dist/assets/images/CT-Cardiac2.png +0 -0
  54. package/dist/assets/images/CT-Cardiac3.png +0 -0
  55. package/dist/assets/images/CT-Chest-Contrast-Enhanced.png +0 -0
  56. package/dist/assets/images/CT-Chest-Vessels.png +0 -0
  57. package/dist/assets/images/CT-Coronary-Arteries-2.png +0 -0
  58. package/dist/assets/images/CT-Coronary-Arteries-3.png +0 -0
  59. package/dist/assets/images/CT-Coronary-Arteries.png +0 -0
  60. package/dist/assets/images/CT-Cropped-Volume-Bone.png +0 -0
  61. package/dist/assets/images/CT-Fat.png +0 -0
  62. package/dist/assets/images/CT-Liver-Vasculature.png +0 -0
  63. package/dist/assets/images/CT-Lung.png +0 -0
  64. package/dist/assets/images/CT-MIP.png +0 -0
  65. package/dist/assets/images/CT-Muscle.png +0 -0
  66. package/dist/assets/images/CT-Pulmonary-Arteries.png +0 -0
  67. package/dist/assets/images/CT-Soft-Tissue.png +0 -0
  68. package/dist/assets/images/DTI-FA-Brain.png +0 -0
  69. package/dist/assets/images/MR-Angio.png +0 -0
  70. package/dist/assets/images/MR-Default.png +0 -0
  71. package/dist/assets/images/MR-MIP.png +0 -0
  72. package/dist/assets/images/MR-T2-Brain.png +0 -0
  73. package/dist/assets/images/VolumeRendering.png +0 -0
  74. package/dist/cornerstoneDICOMImageLoader.min.js +1 -1
  75. package/dist/cornerstoneDICOMImageLoader.min.js.map +1 -1
  76. package/dist/{dicom-microscopy-viewer.bundle.2c146384eb9466d02ff8.js → dicom-microscopy-viewer.bundle.d3a56dc9f62df5e11019.js} +3 -3
  77. package/dist/histogram-worker.bundle.829e14ec12c2b41a4323.js +359 -0
  78. package/dist/index.html +1 -1
  79. package/dist/{index.worker.e62ecca63f1a2e124230.worker.js → index.worker.64c896c4316fcd506666.worker.js} +2 -2
  80. package/dist/index.worker.64c896c4316fcd506666.worker.js.map +1 -0
  81. package/dist/polySeg.bundle.63011312c3c79e717ea9.js +249 -0
  82. package/dist/serve.json +12 -0
  83. package/dist/sw.js +1 -1
  84. package/package.json +26 -22
  85. package/dist/181.bundle.a62b9f0ec692299acb35.js +0 -1527
  86. package/dist/23.bundle.e008ad788170f2ed5569.js +0 -900
  87. package/dist/604.bundle.a51f83e64004bca5f497.js +0 -1848
  88. package/dist/613.bundle.9e7072e5b575354fe51e.js +0 -532
  89. package/dist/743.bundle.489f7df3a089d4d374e1.js +0 -78007
  90. package/dist/75788f12450d4c5ed494.wasm +0 -0
  91. package/dist/775.bundle.2285e7e0e67878948c0d.js +0 -1009
  92. package/dist/788.bundle.207ac23c0dfa70cbe3fb.js +0 -2682
  93. package/dist/82.bundle.d6fdcca0f67540bb226a.js +0 -1049
  94. package/dist/index.worker.e62ecca63f1a2e124230.worker.js.map +0 -1
  95. /package/dist/{19.css → 325.css} +0 -0
  96. /package/dist/{776.css → 41.css} +0 -0
  97. /package/dist/{579.css → 481.css} +0 -0
  98. /package/dist/{250.css → 544.css} +0 -0
  99. /package/dist/{221.css → 633.css} +0 -0
@@ -1,25 +1,25 @@
1
1
  "use strict";
2
- (self["webpackChunk"] = self["webpackChunk"] || []).push([[530],{
2
+ (globalThis["webpackChunk"] = globalThis["webpackChunk"] || []).push([[835],{
3
3
 
4
- /***/ 44530:
4
+ /***/ 6835:
5
5
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
6
6
 
7
7
 
8
8
  // EXPORTS
9
9
  __webpack_require__.d(__webpack_exports__, {
10
- eO: () => (/* reexport */ useMachine)
10
+ zl: () => (/* reexport */ useMachine)
11
11
  });
12
12
 
13
13
  // UNUSED EXPORTS: createActorContext, shallowEqual, useActor, useInterpret, useSelector, useSpawn
14
14
 
15
15
  // EXTERNAL MODULE: ../../../node_modules/react/index.js
16
- var react = __webpack_require__(43001);
16
+ var react = __webpack_require__(41766);
17
17
  // EXTERNAL MODULE: ../../../node_modules/use-sync-external-store/shim/with-selector.js
18
- var with_selector = __webpack_require__(56901);
18
+ var with_selector = __webpack_require__(33724);
19
19
  // EXTERNAL MODULE: ../../../node_modules/xstate/es/index.js + 22 modules
20
- var es = __webpack_require__(261);
20
+ var es = __webpack_require__(57593);
21
21
  // EXTERNAL MODULE: ../../../node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.browser.esm.js
22
- var use_isomorphic_layout_effect_browser_esm = __webpack_require__(89067);
22
+ var use_isomorphic_layout_effect_browser_esm = __webpack_require__(96025);
23
23
  ;// CONCATENATED MODULE: ../../../node_modules/@xstate/react/es/useConstant.js
24
24
 
25
25
  function useConstant_useConstant(fn) {
@@ -89,12 +89,12 @@ function useIdleInterpreter(getMachine, options) {
89
89
  delays: delays
90
90
  };
91
91
  var machineWithConfig = machine.withConfig(machineConfig, function () { return (__assign(__assign({}, machine.context), context)); });
92
- return (0,es/* interpret */.kJ)(machineWithConfig, interpreterOptions);
92
+ return (0,es/* interpret */.U4)(machineWithConfig, interpreterOptions);
93
93
  });
94
94
  // Make sure options are kept updated when they change.
95
95
  // This mutation assignment is safe because the service instance is only used
96
96
  // in one place -- this hook's caller.
97
- (0,use_isomorphic_layout_effect_browser_esm/* default */.Z)(function () {
97
+ (0,use_isomorphic_layout_effect_browser_esm/* default */.A)(function () {
98
98
  Object.assign(service.machine.options.actions, actions);
99
99
  Object.assign(service.machine.options.guards, guards);
100
100
  Object.assign(service.machine.options.activities, activities);
@@ -221,7 +221,7 @@ function utils_isService(actor) {
221
221
  return 'state' in actor && 'machine' in actor;
222
222
  }
223
223
  function utils_isInterpreterStateEqual(service, prevState, nextState) {
224
- if (service.status === es/* InterpreterStatus */.TM.NotStarted) {
224
+ if (service.status === es/* InterpreterStatus */.vy.NotStarted) {
225
225
  return true;
226
226
  }
227
227
  // Only change the current state if:
@@ -270,9 +270,9 @@ function useMachine(getMachine) {
270
270
  // so we don't miss any notifications
271
271
  var service = useIdleInterpreter(getMachine, options);
272
272
  var getSnapshot = (0,react.useCallback)(function () {
273
- if (service.status === es/* InterpreterStatus */.TM.NotStarted) {
273
+ if (service.status === es/* InterpreterStatus */.vy.NotStarted) {
274
274
  return (options.state
275
- ? es/* State */.ZM.create(options.state)
275
+ ? es/* State */.Uw.create(options.state)
276
276
  : service.machine.initialState);
277
277
  }
278
278
  return service.getSnapshot();
@@ -287,10 +287,10 @@ function useMachine(getMachine) {
287
287
  var storeSnapshot = (0,with_selector.useSyncExternalStoreWithSelector)(subscribe, getSnapshot, getSnapshot, identity, isEqual);
288
288
  (0,react.useEffect)(function () {
289
289
  var rehydratedState = options.state;
290
- service.start(rehydratedState ? es/* State */.ZM.create(rehydratedState) : undefined);
290
+ service.start(rehydratedState ? es/* State */.Uw.create(rehydratedState) : undefined);
291
291
  return function () {
292
292
  service.stop();
293
- service.status = es/* InterpreterStatus */.TM.NotStarted;
293
+ service.status = es/* InterpreterStatus */.vy.NotStarted;
294
294
  };
295
295
  }, []);
296
296
  return [storeSnapshot, service.send, service];
@@ -477,7 +477,7 @@ function createActorContext(machine, interpreterOptions, observerOrListener) {
477
477
 
478
478
  /***/ }),
479
479
 
480
- /***/ 17145:
480
+ /***/ 2465:
481
481
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
482
482
 
483
483
  /**
@@ -489,13 +489,13 @@ function createActorContext(machine, interpreterOptions, observerOrListener) {
489
489
  * This source code is licensed under the MIT license found in the
490
490
  * LICENSE file in the root directory of this source tree.
491
491
  */
492
- var e=__webpack_require__(43001);function h(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var k="function"===typeof Object.is?Object.is:h,l=e.useState,m=e.useEffect,n=e.useLayoutEffect,p=e.useDebugValue;function q(a,b){var d=b(),f=l({inst:{value:d,getSnapshot:b}}),c=f[0].inst,g=f[1];n(function(){c.value=d;c.getSnapshot=b;r(c)&&g({inst:c})},[a,d,b]);m(function(){r(c)&&g({inst:c});return a(function(){r(c)&&g({inst:c})})},[a]);p(d);return d}
492
+ var e=__webpack_require__(41766);function h(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var k="function"===typeof Object.is?Object.is:h,l=e.useState,m=e.useEffect,n=e.useLayoutEffect,p=e.useDebugValue;function q(a,b){var d=b(),f=l({inst:{value:d,getSnapshot:b}}),c=f[0].inst,g=f[1];n(function(){c.value=d;c.getSnapshot=b;r(c)&&g({inst:c})},[a,d,b]);m(function(){r(c)&&g({inst:c});return a(function(){r(c)&&g({inst:c})})},[a]);p(d);return d}
493
493
  function r(a){var b=a.getSnapshot;a=a.value;try{var d=b();return!k(a,d)}catch(f){return!0}}function t(a,b){return b()}var u="undefined"===typeof window||"undefined"===typeof window.document||"undefined"===typeof window.document.createElement?t:q;exports.useSyncExternalStore=void 0!==e.useSyncExternalStore?e.useSyncExternalStore:u;
494
494
 
495
495
 
496
496
  /***/ }),
497
497
 
498
- /***/ 1594:
498
+ /***/ 2878:
499
499
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
500
500
 
501
501
  /**
@@ -507,51 +507,51 @@ function r(a){var b=a.getSnapshot;a=a.value;try{var d=b();return!k(a,d)}catch(f)
507
507
  * This source code is licensed under the MIT license found in the
508
508
  * LICENSE file in the root directory of this source tree.
509
509
  */
510
- var h=__webpack_require__(43001),n=__webpack_require__(75011);function p(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var q="function"===typeof Object.is?Object.is:p,r=n.useSyncExternalStore,t=h.useRef,u=h.useEffect,v=h.useMemo,w=h.useDebugValue;
510
+ var h=__webpack_require__(41766),n=__webpack_require__(28178);function p(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var q="function"===typeof Object.is?Object.is:p,r=n.useSyncExternalStore,t=h.useRef,u=h.useEffect,v=h.useMemo,w=h.useDebugValue;
511
511
  exports.useSyncExternalStoreWithSelector=function(a,b,e,l,g){var c=t(null);if(null===c.current){var f={hasValue:!1,value:null};c.current=f}else f=c.current;c=v(function(){function a(a){if(!c){c=!0;d=a;a=l(a);if(void 0!==g&&f.hasValue){var b=f.value;if(g(b,a))return k=b}return k=a}b=k;if(q(d,a))return b;var e=l(a);if(void 0!==g&&g(b,e))return b;d=a;return k=e}var c=!1,d,k,m=void 0===e?null:e;return[function(){return a(b())},null===m?void 0:function(){return a(m())}]},[b,e,l,g]);var d=r(a,c[0],c[1]);
512
512
  u(function(){f.hasValue=!0;f.value=d},[d]);w(d);return d};
513
513
 
514
514
 
515
515
  /***/ }),
516
516
 
517
- /***/ 75011:
517
+ /***/ 28178:
518
518
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
519
519
 
520
520
 
521
521
 
522
522
  if (true) {
523
- module.exports = __webpack_require__(17145);
523
+ module.exports = __webpack_require__(2465);
524
524
  } else {}
525
525
 
526
526
 
527
527
  /***/ }),
528
528
 
529
- /***/ 56901:
529
+ /***/ 33724:
530
530
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
531
531
 
532
532
 
533
533
 
534
534
  if (true) {
535
- module.exports = __webpack_require__(1594);
535
+ module.exports = __webpack_require__(2878);
536
536
  } else {}
537
537
 
538
538
 
539
539
  /***/ }),
540
540
 
541
- /***/ 261:
541
+ /***/ 57593:
542
542
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
543
543
 
544
544
 
545
545
  // EXPORTS
546
546
  __webpack_require__.d(__webpack_exports__, {
547
- TM: () => (/* reexport */ InterpreterStatus),
548
- J: () => (/* reexport */ Machine),
549
- ZM: () => (/* reexport */ State_State),
550
- f0: () => (/* binding */ es_assign),
551
- kJ: () => (/* reexport */ interpret)
547
+ vy: () => (/* reexport */ InterpreterStatus),
548
+ u5: () => (/* reexport */ Machine),
549
+ Uw: () => (/* reexport */ State_State),
550
+ kp: () => (/* binding */ es_assign),
551
+ U4: () => (/* reexport */ interpret)
552
552
  });
553
553
 
554
- // UNUSED EXPORTS: ActionTypes, Interpreter, SpecialTargets, StateNode, actions, choose, createMachine, createSchema, doneInvoke, forwardTo, log, mapState, matchState, matchesState, pure, raise, send, sendParent, sendTo, sendUpdate, spawn, spawnBehavior, stop, t, toActorRef, toEventObject, toObserver, toSCXMLEvent
554
+ // UNUSED EXPORTS: ActionTypes, Interpreter, SpecialTargets, StateNode, actions, cancel, choose, createMachine, createSchema, doneInvoke, forwardTo, log, mapState, matchState, matchesState, pure, raise, send, sendParent, sendTo, sendUpdate, spawn, spawnBehavior, stop, t, toActorRef, toEventObject, toObserver, toSCXMLEvent
555
555
 
556
556
  ;// CONCATENATED MODULE: ../../../node_modules/xstate/es/_virtual/_tslib.js
557
557
  /*! *****************************************************************************
@@ -3744,7 +3744,13 @@ function () {
3744
3744
 
3745
3745
 
3746
3746
  scheduler.schedule(function () {
3747
- // it feels weird to handle this here but we need to handle this even slightly "out of band"
3747
+ var _a;
3748
+
3749
+ if ((_a = _this._state) === null || _a === void 0 ? void 0 : _a.done) {
3750
+ return;
3751
+ } // it feels weird to handle this here but we need to handle this even slightly "out of band"
3752
+
3753
+
3748
3754
  var _event = toSCXMLEvent({
3749
3755
  type: 'xstate.stop'
3750
3756
  });
@@ -6194,6 +6200,7 @@ var t = (/* unused pure expression or super */ null && (createSchema));
6194
6200
 
6195
6201
 
6196
6202
  var es_assign = actions_assign,
6203
+ es_cancel = (/* unused pure expression or super */ null && (cancel$1)),
6197
6204
  es_send = (/* unused pure expression or super */ null && (send$1)),
6198
6205
  es_sendTo = (/* unused pure expression or super */ null && (sendTo$1)),
6199
6206
  es_sendParent = (/* unused pure expression or super */ null && (sendParent$1)),
@@ -1,22 +1,21 @@
1
1
  "use strict";
2
- (self["webpackChunk"] = self["webpackChunk"] || []).push([[822],{
2
+ (globalThis["webpackChunk"] = globalThis["webpackChunk"] || []).push([[862],{
3
3
 
4
- /***/ 86822:
4
+ /***/ 49862:
5
5
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
6
6
 
7
7
  __webpack_require__.r(__webpack_exports__);
8
8
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
9
9
  /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
10
10
  /* harmony export */ });
11
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(43001);
12
- /* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(3827);
11
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(41766);
12
+ /* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(11374);
13
13
  /* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);
14
- /* harmony import */ var _ohif_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(71771);
15
- /* harmony import */ var _ohif_ui__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(22582);
16
- /* harmony import */ var react_i18next__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(69190);
17
- /* harmony import */ var _cornerstonejs_tools__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(14957);
18
- /* harmony import */ var _getContextModule__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(41832);
19
- /* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(3743);
14
+ /* harmony import */ var _ohif_ui__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(5085);
15
+ /* harmony import */ var _cornerstonejs_tools__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(24542);
16
+ /* harmony import */ var _getContextModule__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(219);
17
+ /* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(44656);
18
+ /* harmony import */ var react_i18next__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(80619);
20
19
  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); }
21
20
 
22
21
 
@@ -25,30 +24,30 @@ function _extends() { _extends = Object.assign ? Object.assign.bind() : function
25
24
 
26
25
 
27
26
 
28
-
29
- const {
30
- formatDate
31
- } = _ohif_core__WEBPACK_IMPORTED_MODULE_2__.utils;
32
27
  function TrackedCornerstoneViewport(props) {
33
28
  const {
34
29
  displaySets,
35
30
  viewportId,
36
- viewportLabel,
37
31
  servicesManager,
38
32
  extensionManager
39
33
  } = props;
40
- const {
41
- t
42
- } = (0,react_i18next__WEBPACK_IMPORTED_MODULE_4__/* .useTranslation */ .$G)('Common');
43
34
  const {
44
35
  measurementService,
45
36
  cornerstoneViewportService,
46
- viewportGridService
37
+ viewportGridService,
38
+ viewportActionCornersService
47
39
  } = servicesManager.services;
48
40
 
49
41
  // Todo: handling more than one displaySet on the same viewport
50
42
  const displaySet = displaySets[0];
51
- const [trackedMeasurements, sendTrackedMeasurementsEvent] = (0,_getContextModule__WEBPACK_IMPORTED_MODULE_6__/* .useTrackedMeasurements */ .I)();
43
+ const {
44
+ t
45
+ } = (0,react_i18next__WEBPACK_IMPORTED_MODULE_6__/* .useTranslation */ .Bd)('Common');
46
+ const [viewportGrid] = (0,_ohif_ui__WEBPACK_IMPORTED_MODULE_2__/* .useViewportGrid */ .ih)();
47
+ const {
48
+ activeViewportId
49
+ } = viewportGrid;
50
+ const [trackedMeasurements, sendTrackedMeasurementsEvent] = (0,_getContextModule__WEBPACK_IMPORTED_MODULE_4__/* .useTrackedMeasurements */ .B)();
52
51
  const [isTracked, setIsTracked] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false);
53
52
  const [trackedMeasurementUID, setTrackedMeasurementUID] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(null);
54
53
  const [viewportElem, setViewportElem] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(null);
@@ -56,24 +55,11 @@ function TrackedCornerstoneViewport(props) {
56
55
  trackedSeries
57
56
  } = trackedMeasurements.context;
58
57
  const {
59
- SeriesDate,
60
- SeriesDescription,
61
- SeriesInstanceUID,
62
- SeriesNumber
58
+ SeriesInstanceUID
63
59
  } = displaySet;
64
- const {
65
- PatientID,
66
- PatientName,
67
- PatientSex,
68
- PatientAge,
69
- SliceThickness,
70
- SpacingBetweenSlices,
71
- StudyDate,
72
- ManufacturerModelName
73
- } = displaySet.images[0];
74
60
  const updateIsTracked = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(() => {
75
61
  const viewport = cornerstoneViewportService.getCornerstoneViewport(viewportId);
76
- if (viewport instanceof _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_7__.BaseVolumeViewport) {
62
+ if (viewport instanceof _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_5__.BaseVolumeViewport) {
77
63
  // A current image id will only exist for volume viewports that can have measurements tracked.
78
64
  // Typically these are those volume viewports for the series of acquisition.
79
65
  const currentImageId = viewport?.getCurrentImageId();
@@ -91,12 +77,12 @@ function TrackedCornerstoneViewport(props) {
91
77
  const onElementEnabled = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(evt => {
92
78
  if (evt.detail.element !== viewportElem) {
93
79
  // The VOLUME_VIEWPORT_NEW_VOLUME event allows updateIsTracked to reliably fetch the image id for a volume viewport.
94
- evt.detail.element?.addEventListener(_cornerstonejs_core__WEBPACK_IMPORTED_MODULE_7__.Enums.Events.VOLUME_VIEWPORT_NEW_VOLUME, updateIsTracked);
80
+ evt.detail.element?.addEventListener(_cornerstonejs_core__WEBPACK_IMPORTED_MODULE_5__.Enums.Events.VOLUME_VIEWPORT_NEW_VOLUME, updateIsTracked);
95
81
  setViewportElem(evt.detail.element);
96
82
  }
97
83
  }, [updateIsTracked, viewportElem]);
98
84
  const onElementDisabled = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(() => {
99
- viewportElem?.removeEventListener(_cornerstonejs_core__WEBPACK_IMPORTED_MODULE_7__.Enums.Events.VOLUME_VIEWPORT_NEW_VOLUME, updateIsTracked);
85
+ viewportElem?.removeEventListener(_cornerstonejs_core__WEBPACK_IMPORTED_MODULE_5__.Enums.Events.VOLUME_VIEWPORT_NEW_VOLUME, updateIsTracked);
100
86
  }, [updateIsTracked, viewportElem]);
101
87
  (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(updateIsTracked, [updateIsTracked]);
102
88
  (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
@@ -114,7 +100,7 @@ function TrackedCornerstoneViewport(props) {
114
100
  }, [updateIsTracked, viewportId]);
115
101
  (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
116
102
  if (isTracked) {
117
- _cornerstonejs_tools__WEBPACK_IMPORTED_MODULE_5__.annotation.config.style.setViewportToolStyles(viewportId, {
103
+ _cornerstonejs_tools__WEBPACK_IMPORTED_MODULE_3__.annotation.config.style.setViewportToolStyles(viewportId, {
118
104
  global: {
119
105
  lineDash: ''
120
106
  }
@@ -122,14 +108,14 @@ function TrackedCornerstoneViewport(props) {
122
108
  cornerstoneViewportService.getRenderingEngine().renderViewport(viewportId);
123
109
  return;
124
110
  }
125
- _cornerstonejs_tools__WEBPACK_IMPORTED_MODULE_5__.annotation.config.style.setViewportToolStyles(viewportId, {
111
+ _cornerstonejs_tools__WEBPACK_IMPORTED_MODULE_3__.annotation.config.style.setViewportToolStyles(viewportId, {
126
112
  global: {
127
113
  lineDash: '4,4'
128
114
  }
129
115
  });
130
116
  cornerstoneViewportService.getRenderingEngine().renderViewport(viewportId);
131
117
  return () => {
132
- _cornerstonejs_tools__WEBPACK_IMPORTED_MODULE_5__.annotation.config.style.setViewportToolStyles(viewportId, {});
118
+ _cornerstonejs_tools__WEBPACK_IMPORTED_MODULE_3__.annotation.config.style.setViewportToolStyles(viewportId, {});
133
119
  };
134
120
  }, [isTracked]);
135
121
 
@@ -145,11 +131,10 @@ function TrackedCornerstoneViewport(props) {
145
131
  const addedRaw = measurementService.EVENTS.RAW_MEASUREMENT_ADDED;
146
132
  const subscriptions = [];
147
133
  [added, addedRaw].forEach(evt => {
148
- subscriptions.push(measurementService.subscribe(evt, _ref => {
149
- let {
150
- source,
151
- measurement
152
- } = _ref;
134
+ subscriptions.push(measurementService.subscribe(evt, ({
135
+ source,
136
+ measurement
137
+ }) => {
153
138
  const {
154
139
  activeViewportId
155
140
  } = viewportGridService.getState();
@@ -160,7 +145,8 @@ function TrackedCornerstoneViewport(props) {
160
145
  if (viewportId === activeViewportId) {
161
146
  const {
162
147
  referenceStudyUID: StudyInstanceUID,
163
- referenceSeriesUID: SeriesInstanceUID
148
+ referenceSeriesUID: SeriesInstanceUID,
149
+ uid: measurementId
164
150
  } = measurement;
165
151
  sendTrackedMeasurementsEvent('SET_DIRTY', {
166
152
  SeriesInstanceUID
@@ -168,7 +154,8 @@ function TrackedCornerstoneViewport(props) {
168
154
  sendTrackedMeasurementsEvent('TRACK_SERIES', {
169
155
  viewportId,
170
156
  StudyInstanceUID,
171
- SeriesInstanceUID
157
+ SeriesInstanceUID,
158
+ measurementId
172
159
  });
173
160
  }
174
161
  }).unsubscribe);
@@ -179,14 +166,31 @@ function TrackedCornerstoneViewport(props) {
179
166
  });
180
167
  };
181
168
  }, [measurementService, sendTrackedMeasurementsEvent, viewportId, viewportGridService]);
182
- function switchMeasurement(direction) {
169
+ const switchMeasurement = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(direction => {
183
170
  const newTrackedMeasurementUID = _getNextMeasurementUID(direction, servicesManager, trackedMeasurementUID, trackedMeasurements);
184
171
  if (!newTrackedMeasurementUID) {
185
172
  return;
186
173
  }
187
174
  setTrackedMeasurementUID(newTrackedMeasurementUID);
188
175
  measurementService.jumpToMeasurement(viewportId, newTrackedMeasurementUID);
189
- }
176
+ }, [measurementService, servicesManager, trackedMeasurementUID, trackedMeasurements, viewportId]);
177
+ (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
178
+ const statusComponent = _getStatusComponent(isTracked, t);
179
+ const arrowsComponent = _getArrowsComponent(isTracked, switchMeasurement, viewportId === activeViewportId);
180
+ viewportActionCornersService.setComponents([{
181
+ viewportId,
182
+ id: 'viewportStatusComponent',
183
+ component: statusComponent,
184
+ indexPriority: -100,
185
+ location: viewportActionCornersService.LOCATIONS.topLeft
186
+ }, {
187
+ viewportId,
188
+ id: 'viewportActionArrowsComponent',
189
+ component: arrowsComponent,
190
+ indexPriority: 0,
191
+ location: viewportActionCornersService.LOCATIONS.topRight
192
+ }]);
193
+ }, [activeViewportId, isTracked, switchMeasurement, viewportActionCornersService, viewportId]);
190
194
  const getCornerstoneViewport = () => {
191
195
  const {
192
196
  component: Component
@@ -196,32 +200,7 @@ function TrackedCornerstoneViewport(props) {
196
200
  onElementDisabled: onElementDisabled
197
201
  }));
198
202
  };
199
- return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ohif_ui__WEBPACK_IMPORTED_MODULE_3__/* .ViewportActionBar */ .uY, {
200
- onDoubleClick: evt => {
201
- evt.stopPropagation();
202
- evt.preventDefault();
203
- },
204
- useAltStyling: isTracked,
205
- onArrowsClick: direction => switchMeasurement(direction),
206
- getStatusComponent: () => _getStatusComponent(isTracked),
207
- studyData: {
208
- label: viewportLabel,
209
- studyDate: formatDate(SeriesDate) || formatDate(StudyDate) || t('NoStudyDate'),
210
- currentSeries: SeriesNumber,
211
- // TODO - switch entire currentSeries to be UID based or actual position based
212
- seriesDescription: SeriesDescription,
213
- patientInformation: {
214
- patientName: PatientName ? _ohif_core__WEBPACK_IMPORTED_MODULE_2__["default"].utils.formatPN(PatientName) : '',
215
- patientSex: PatientSex || '',
216
- patientAge: PatientAge || '',
217
- MRN: PatientID || '',
218
- thickness: SliceThickness ? `${parseFloat(SliceThickness).toFixed(2)}` : '',
219
- thicknessUnits: 'mm',
220
- spacing: SpacingBetweenSlices !== undefined ? `${parseFloat(SpacingBetweenSlices).toFixed(2)}mm` : '',
221
- scanner: ManufacturerModelName || ''
222
- }
223
- }
224
- }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", {
203
+ return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", {
225
204
  className: "relative flex h-full w-full flex-row overflow-hidden"
226
205
  }, getCornerstoneViewport()));
227
206
  }
@@ -269,45 +248,47 @@ function _getNextMeasurementUID(direction, servicesManager, trackedMeasurementId
269
248
  // Not tracking a measurement, or previous measurement now deleted, revert to 0.
270
249
  measurementIndex = 0;
271
250
  } else {
272
- if (direction === 'left') {
273
- measurementIndex--;
274
- if (measurementIndex < 0) {
275
- measurementIndex = measurementCount - 1;
276
- }
277
- } else if (direction === 'right') {
278
- measurementIndex++;
279
- if (measurementIndex === measurementCount) {
280
- measurementIndex = 0;
281
- }
251
+ measurementIndex += direction;
252
+ if (measurementIndex < 0) {
253
+ measurementIndex = measurementCount - 1;
254
+ } else if (measurementIndex === measurementCount) {
255
+ measurementIndex = 0;
282
256
  }
283
257
  }
284
258
  const newTrackedMeasurementId = uids[measurementIndex];
285
259
  return newTrackedMeasurementId;
286
260
  }
287
- function _getStatusComponent(isTracked) {
288
- const trackedIcon = isTracked ? 'status-tracked' : 'status-untracked';
261
+ const _getArrowsComponent = (isTracked, switchMeasurement, isActiveViewport) => {
262
+ if (!isTracked) {
263
+ return null;
264
+ }
265
+ return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ohif_ui__WEBPACK_IMPORTED_MODULE_2__/* .ViewportActionArrows */ .$I, {
266
+ onArrowsClick: direction => switchMeasurement(direction),
267
+ className: isActiveViewport ? 'visible' : 'invisible group-hover:visible'
268
+ });
269
+ };
270
+ function _getStatusComponent(isTracked, t) {
271
+ if (!isTracked) {
272
+ return null;
273
+ }
289
274
  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", {
290
275
  className: "relative"
291
- }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ohif_ui__WEBPACK_IMPORTED_MODULE_3__/* .Tooltip */ .u, {
276
+ }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ohif_ui__WEBPACK_IMPORTED_MODULE_2__/* .Tooltip */ .m_, {
292
277
  position: "bottom-left",
293
278
  content: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", {
294
279
  className: "flex py-2"
295
280
  }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", {
296
281
  className: "flex pt-1"
297
- }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ohif_ui__WEBPACK_IMPORTED_MODULE_3__/* .Icon */ .JO, {
282
+ }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ohif_ui__WEBPACK_IMPORTED_MODULE_2__/* .Icon */ .In, {
298
283
  name: "info-link",
299
284
  className: "text-primary-main w-4"
300
285
  })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", {
301
286
  className: "ml-4 flex"
302
287
  }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("span", {
303
288
  className: "text-common-light text-base"
304
- }, isTracked ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, "Series is", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("span", {
305
- className: "font-bold text-white"
306
- }, " tracked"), " and can be viewed ", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("br", null), ' ', "in the measurement panel") : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, "Measurements for", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("span", {
307
- className: "font-bold text-white"
308
- }, " untracked "), "series ", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("br", null), " will not be shown in the ", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("br", null), " measurements panel"))))
309
- }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ohif_ui__WEBPACK_IMPORTED_MODULE_3__/* .Icon */ .JO, {
310
- name: trackedIcon,
289
+ }, isTracked ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, t('Series is tracked and can be viewed in the measurement panel')) : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, t('Measurements for untracked series will not be shown in the measurements panel')))))
290
+ }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ohif_ui__WEBPACK_IMPORTED_MODULE_2__/* .Icon */ .In, {
291
+ name: 'viewport-status-tracked',
311
292
  className: "text-aqua-pale"
312
293
  })));
313
294
  }