@ohif/app 3.7.0-beta.11 → 3.7.0-beta.110

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 (66) hide show
  1. package/dist/{917.bundle.b9983325adf849bff6fd.js → 12.bundle.5ea15cb6633d8028e47d.js} +6 -6
  2. package/dist/{295.bundle.957b1159fec14b9199a1.js → 125.bundle.253395f320b72180da63.js} +6 -6
  3. package/dist/{351.bundle.0742237651aef9694a65.js → 181.bundle.ceb057236403bcb630ac.js} +226 -204
  4. package/dist/{351.css → 181.css} +1 -1
  5. package/dist/{744.bundle.4c4b884f90eb70482821.js → 19.bundle.03f809886c36c388d05c.js} +240 -381
  6. package/dist/{606.bundle.5d876f5f3dd8287f0a28.js → 202.bundle.d3490836f71e001dd30f.js} +2089 -692
  7. package/dist/{926.bundle.dbc9d0e591cb9217fda2.js → 220.bundle.f7e1c96c94245e70f2be.js} +990 -400
  8. package/dist/221.bundle.dc6dac346d724d6baeae.js +1779 -0
  9. package/dist/221.css +2 -0
  10. package/dist/{664.bundle.09abae984223969d1bde.js → 23.bundle.e008ad788170f2ed5569.js} +5 -6
  11. package/dist/{976.bundle.9cc2382162214ea0af2b.js → 236.bundle.7b906cd27864d65f32c0.js} +89 -105
  12. package/dist/{55.bundle.550a823e75eb608e8d5e.js → 250.bundle.8084960e3318cda37317.js} +52 -36
  13. package/dist/{973.bundle.4584df05b320b94cace5.js → 281.bundle.c9854cc25c839e49c2c8.js} +18 -14
  14. package/dist/{82.bundle.9a0e7f08d4bce18d302f.js → 342.bundle.7d6c1e6bda1c67d729a7.js} +1802 -489
  15. package/dist/{404.bundle.3d65ff813eead20462d3.js → 359.bundle.72d017719489ff11057b.js} +47 -134
  16. package/dist/{192.bundle.950e5380ea63c6d635d5.js → 370.bundle.e55d75ff1bdccee16cde.js} +117 -103
  17. package/dist/{790.bundle.7327fec7833ceea2784b.js → 410.bundle.5b41c68cb0f210a83f13.js} +11 -9
  18. package/dist/{151.bundle.31ea35044218837bf73f.js → 417.bundle.af0a207c29b109f84159.js} +49 -17
  19. package/dist/{569.bundle.c8e771a8d28e237b32be.js → 451.bundle.9fd36f52ff69594f0669.js} +86 -106
  20. package/dist/{581.bundle.dc6197189f7c88c27d4c.js → 471.bundle.b3d77b83b1593c09a504.js} +78 -99
  21. package/dist/{199.bundle.f50ffd85a4334de2f5c1.js → 506.bundle.468dc6db2a9bfa96bb44.js} +11 -9
  22. package/dist/{531.bundle.2a82fb1d69e5b57cc72b.js → 530.bundle.a03b6f942ace3e1baa1e.js} +726 -447
  23. package/dist/579.css +1 -0
  24. package/dist/{935.bundle.deeffff0e4f7b528e3c3.js → 604.bundle.a51f83e64004bca5f497.js} +2 -3
  25. package/dist/613.bundle.74d59dec1983ef3efcdc.js +532 -0
  26. package/dist/{984.bundle.119557c018e6371b4628.js → 663.bundle.a6196baf5853e7d3f7c7.js} +68 -38
  27. package/dist/{205.bundle.b5a473c200dcf2bbcdb4.js → 686.bundle.dccef1f36e4bc79bcc48.js} +6 -6
  28. package/dist/{50.bundle.65ff60818862eda39d12.js → 687.bundle.e2c9c42ad3989a14d513.js} +218 -9
  29. package/dist/{331.bundle.bd0c13931a21d53086c9.js → 743.bundle.489f7df3a089d4d374e1.js} +26294 -21326
  30. package/dist/757.bundle.ec8301d8e70d2b990f65.js +17067 -0
  31. package/dist/{728.bundle.d13856835357400fef82.js → 774.bundle.4b2dc46a35012b898e1a.js} +95 -64
  32. package/dist/{381.bundle.0905e683605fcbc0895f.js → 775.bundle.2285e7e0e67878948c0d.js} +16 -16
  33. package/dist/{283.bundle.1015e87c3a47b1f1379c.js → 788.bundle.f4493409508bdffa7af8.js} +120 -370
  34. package/dist/{642.bundle.8905e515ce593e57ceb1.js → 814.bundle.10a2cbf02b044387e68b.js} +6 -6
  35. package/dist/{707.bundle.f774f3e4a687ddd60a32.js → 82.bundle.9c6461625afd2e38b997.js} +1203 -804
  36. package/dist/{799.bundle.758558e64147e5aad612.js → 822.bundle.891f2e57b1b7bc2f4cb4.js} +81 -34
  37. package/dist/{953.bundle.3b0189ebc11cf0946f18.js → 886.bundle.4b3a7f2079d085fdbcb3.js} +34 -29
  38. package/dist/945.min.worker.js +1 -1
  39. package/dist/945.min.worker.js.map +1 -1
  40. package/dist/{270.bundle.4564621556b0f963a004.js → 957.bundle.9ea4506963ef8b2d84ba.js} +7095 -979
  41. package/dist/{208.bundle.7f610a302dc54c4924da.js → 99.bundle.334c4bd4e4e81aaf45ad.js} +86 -105
  42. package/dist/_redirects +1 -1
  43. package/dist/app-config.js +35 -17
  44. package/dist/app.bundle.css +13 -12
  45. package/dist/{app.bundle.3d598a4738bdc22950d3.js → app.bundle.fd6ac18b8874825722a0.js} +72771 -67313
  46. package/dist/assets/yandex-browser-manifest.json +1 -1
  47. package/dist/cornerstoneDICOMImageLoader.min.js +1 -1
  48. package/dist/cornerstoneDICOMImageLoader.min.js.map +1 -1
  49. package/dist/{dicom-microscopy-viewer.bundle.aa60bdf008c32c39cfd7.js → dicom-microscopy-viewer.bundle.2c146384eb9466d02ff8.js} +5 -4
  50. package/dist/es6-shim.min.js +3569 -2
  51. package/dist/google.js +8 -7
  52. package/dist/index.html +2 -1
  53. package/dist/{index.worker.1c69152d710fa7b84bce.worker.js → index.worker.e62ecca63f1a2e124230.worker.js} +2 -2
  54. package/dist/index.worker.e62ecca63f1a2e124230.worker.js.map +1 -0
  55. package/dist/init-service-worker.js +3 -5
  56. package/dist/oidc-client.min.js +10857 -39
  57. package/dist/polyfill.min.js +184 -1
  58. package/dist/silent-refresh.html +18 -9
  59. package/dist/sw.js +1 -1
  60. package/package.json +21 -22
  61. package/dist/616.bundle.de530ae226dfa5573f6e.js +0 -685
  62. package/dist/780.bundle.fd0f13dc92e9caa0581e.js +0 -4769
  63. package/dist/index.worker.1c69152d710fa7b84bce.worker.js.map +0 -1
  64. /package/dist/{806.css → 19.css} +0 -0
  65. /package/dist/{55.css → 250.css} +0 -0
  66. /package/dist/{707.css → 82.css} +0 -0
@@ -1,6 +1,6 @@
1
- (globalThis["webpackChunk"] = globalThis["webpackChunk"] || []).push([[283],{
1
+ (self["webpackChunk"] = self["webpackChunk"] || []).push([[788],{
2
2
 
3
- /***/ 66135:
3
+ /***/ 4483:
4
4
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
5
5
 
6
6
  "use strict";
@@ -116,7 +116,10 @@ const ptAXIAL = {
116
116
  type: 'voi',
117
117
  id: 'ptFusionWLSync',
118
118
  source: true,
119
- target: false
119
+ target: false,
120
+ options: {
121
+ syncInvertState: false
122
+ }
120
123
  }]
121
124
  },
122
125
  displaySets: [{
@@ -150,7 +153,10 @@ const ptSAGITTAL = {
150
153
  type: 'voi',
151
154
  id: 'ptFusionWLSync',
152
155
  source: true,
153
- target: false
156
+ target: false,
157
+ options: {
158
+ syncInvertState: false
159
+ }
154
160
  }]
155
161
  },
156
162
  displaySets: [{
@@ -184,7 +190,10 @@ const ptCORONAL = {
184
190
  type: 'voi',
185
191
  id: 'ptFusionWLSync',
186
192
  source: true,
187
- target: false
193
+ target: false,
194
+ options: {
195
+ syncInvertState: false
196
+ }
188
197
  }]
189
198
  },
190
199
  displaySets: [{
@@ -227,25 +236,34 @@ const fusionAXIAL = {
227
236
  type: 'voi',
228
237
  id: 'ptFusionWLSync',
229
238
  source: false,
230
- target: true
239
+ target: true,
240
+ options: {
241
+ syncInvertState: false
242
+ }
231
243
  }]
232
244
  },
233
245
  displaySets: [{
234
246
  id: 'ctDisplaySet'
235
247
  }, {
248
+ id: 'ptDisplaySet',
236
249
  options: {
237
250
  colormap: {
238
251
  name: 'hsv',
239
- opacityMapping: [{
252
+ opacity: [{
253
+ value: 0,
254
+ opacity: 0
255
+ }, {
240
256
  value: 0.1,
241
257
  opacity: 0.9
258
+ }, {
259
+ value: 1,
260
+ opacity: 0.95
242
261
  }]
243
262
  },
244
263
  voi: {
245
264
  custom: 'getPTVOIRange'
246
265
  }
247
- },
248
- id: 'ptDisplaySet'
266
+ }
249
267
  }]
250
268
  };
251
269
  const fusionSAGITTAL = {
@@ -277,25 +295,34 @@ const fusionSAGITTAL = {
277
295
  type: 'voi',
278
296
  id: 'ptFusionWLSync',
279
297
  source: false,
280
- target: true
298
+ target: true,
299
+ options: {
300
+ syncInvertState: false
301
+ }
281
302
  }]
282
303
  },
283
304
  displaySets: [{
284
305
  id: 'ctDisplaySet'
285
306
  }, {
307
+ id: 'ptDisplaySet',
286
308
  options: {
287
309
  colormap: {
288
310
  name: 'hsv',
289
- opacityMapping: [{
311
+ opacity: [{
312
+ value: 0,
313
+ opacity: 0
314
+ }, {
290
315
  value: 0.1,
291
316
  opacity: 0.9
317
+ }, {
318
+ value: 1,
319
+ opacity: 0.95
292
320
  }]
293
321
  },
294
322
  voi: {
295
323
  custom: 'getPTVOIRange'
296
324
  }
297
- },
298
- id: 'ptDisplaySet'
325
+ }
299
326
  }]
300
327
  };
301
328
  const fusionCORONAL = {
@@ -327,25 +354,34 @@ const fusionCORONAL = {
327
354
  type: 'voi',
328
355
  id: 'ptFusionWLSync',
329
356
  source: false,
330
- target: true
357
+ target: true,
358
+ options: {
359
+ syncInvertState: false
360
+ }
331
361
  }]
332
362
  },
333
363
  displaySets: [{
334
364
  id: 'ctDisplaySet'
335
365
  }, {
366
+ id: 'ptDisplaySet',
336
367
  options: {
337
368
  colormap: {
338
369
  name: 'hsv',
339
- opacityMapping: [{
370
+ opacity: [{
371
+ value: 0,
372
+ opacity: 0
373
+ }, {
340
374
  value: 0.1,
341
375
  opacity: 0.9
376
+ }, {
377
+ value: 1,
378
+ opacity: 0.95
342
379
  }]
343
380
  },
344
381
  voi: {
345
382
  custom: 'getPTVOIRange'
346
383
  }
347
- },
348
- id: 'ptDisplaySet'
384
+ }
349
385
  }]
350
386
  };
351
387
  const mipSAGITTAL = {
@@ -364,7 +400,10 @@ const mipSAGITTAL = {
364
400
  type: 'voi',
365
401
  id: 'ptFusionWLSync',
366
402
  source: true,
367
- target: false
403
+ target: false,
404
+ options: {
405
+ syncInvertState: false
406
+ }
368
407
  }],
369
408
  // Custom props can be used to set custom properties which extensions
370
409
  // can react on.
@@ -558,7 +597,6 @@ const stage4 = {
558
597
  const ptCT = {
559
598
  id: '@ohif/extension-tmtv.hangingProtocolModule.ptCT',
560
599
  locked: true,
561
- hasUpdatedPriorsInformation: false,
562
600
  name: 'Default',
563
601
  createdDate: '2021-02-23T19:22:08.894Z',
564
602
  modifiedDate: '2022-10-04T19:22:08.894Z',
@@ -654,16 +692,16 @@ function getHangingProtocolModule() {
654
692
  }
655
693
  /* harmony default export */ const src_getHangingProtocolModule = (getHangingProtocolModule);
656
694
  // EXTERNAL MODULE: ../../../node_modules/react/index.js
657
- var react = __webpack_require__(32735);
695
+ var react = __webpack_require__(43001);
658
696
  // EXTERNAL MODULE: ../../../node_modules/prop-types/index.js
659
- var prop_types = __webpack_require__(60216);
697
+ var prop_types = __webpack_require__(3827);
660
698
  var prop_types_default = /*#__PURE__*/__webpack_require__.n(prop_types);
661
- // EXTERNAL MODULE: ../../ui/src/index.js + 452 modules
662
- var src = __webpack_require__(28619);
663
- // EXTERNAL MODULE: ../../core/src/index.ts + 101 modules
664
- var core_src = __webpack_require__(48501);
699
+ // EXTERNAL MODULE: ../../ui/src/index.js + 485 modules
700
+ var src = __webpack_require__(71783);
701
+ // EXTERNAL MODULE: ../../core/src/index.ts + 65 modules
702
+ var core_src = __webpack_require__(71771);
665
703
  // EXTERNAL MODULE: ../../../node_modules/react-i18next/dist/es/index.js + 15 modules
666
- var es = __webpack_require__(21572);
704
+ var es = __webpack_require__(69190);
667
705
  ;// CONCATENATED MODULE: ../../../extensions/tmtv/src/Panels/PanelPetSUV.tsx
668
706
 
669
707
 
@@ -807,11 +845,11 @@ function PanelPetSUV(_ref) {
807
845
  displaySetService.setDisplaySetMetadataInvalidated(ptDisplaySet.displaySetInstanceUID);
808
846
  }
809
847
  return /*#__PURE__*/react.createElement("div", {
810
- className: "overflow-x-hidden overflow-y-auto invisible-scrollbar"
848
+ className: "invisible-scrollbar overflow-y-auto overflow-x-hidden"
811
849
  }, /*#__PURE__*/react.createElement("div", {
812
850
  className: "flex flex-col"
813
851
  }, /*#__PURE__*/react.createElement("div", {
814
- className: "flex flex-col p-4 space-y-4 bg-primary-dark"
852
+ className: "bg-primary-dark flex flex-col space-y-4 p-4"
815
853
  }, /*#__PURE__*/react.createElement(src/* Input */.II, {
816
854
  label: t('Patient Sex'),
817
855
  labelClassName: "text-white mb-2",
@@ -961,7 +999,7 @@ function segmentationItemEditHandler(_ref) {
961
999
  };
962
1000
  return /*#__PURE__*/react.createElement(src/* Input */.II, {
963
1001
  autoFocus: true,
964
- className: "bg-black border-primary-main",
1002
+ className: "border-primary-main bg-black",
965
1003
  type: "text",
966
1004
  containerClassName: "mr-2",
967
1005
  value: value.label,
@@ -972,11 +1010,11 @@ function segmentationItemEditHandler(_ref) {
972
1010
  actions: [{
973
1011
  id: 'cancel',
974
1012
  text: 'Cancel',
975
- type: src/* ButtonEnums.type */.LZ.U.secondary
1013
+ type: src/* ButtonEnums.type */.LZ.dt.secondary
976
1014
  }, {
977
1015
  id: 'save',
978
1016
  text: 'Save',
979
- type: src/* ButtonEnums.type */.LZ.U.primary
1017
+ type: src/* ButtonEnums.type */.LZ.dt.primary
980
1018
  }],
981
1019
  onSubmit: onSubmitHandler
982
1020
  }
@@ -998,8 +1036,8 @@ function ExportReports(_ref) {
998
1036
  t
999
1037
  } = (0,es/* useTranslation */.$G)('PanelSUVExport');
1000
1038
  return /*#__PURE__*/react.createElement(react.Fragment, null, segmentations?.length ? /*#__PURE__*/react.createElement("div", {
1001
- className: "flex justify-center mt-4 space-x-2"
1002
- }, /*#__PURE__*/react.createElement(src/* ButtonGroup */.hE, {
1039
+ className: "mt-4 flex justify-center space-x-2"
1040
+ }, /*#__PURE__*/react.createElement(src/* LegacyButtonGroup */.HO, {
1003
1041
  color: "black",
1004
1042
  size: "inherit"
1005
1043
  }, /*#__PURE__*/react.createElement(src/* LegacyButton */.mN, {
@@ -1012,7 +1050,7 @@ function ExportReports(_ref) {
1012
1050
  config
1013
1051
  });
1014
1052
  }
1015
- }, t('Export CSV'))), /*#__PURE__*/react.createElement(src/* ButtonGroup */.hE, {
1053
+ }, t('Export CSV'))), /*#__PURE__*/react.createElement(src/* LegacyButtonGroup */.HO, {
1016
1054
  color: "black",
1017
1055
  size: "inherit"
1018
1056
  }, /*#__PURE__*/react.createElement(src/* LegacyButton */.mN, {
@@ -1049,15 +1087,15 @@ function ROIThresholdConfiguration(_ref) {
1049
1087
  t
1050
1088
  } = (0,es/* useTranslation */.$G)('ROIThresholdConfiguration');
1051
1089
  return /*#__PURE__*/react.createElement("div", {
1052
- className: "flex flex-col px-4 space-y-4 bg-primary-dark py-2"
1090
+ className: "bg-primary-dark flex flex-col space-y-4 px-4 py-2"
1053
1091
  }, /*#__PURE__*/react.createElement("div", {
1054
1092
  className: "flex items-end space-x-2"
1055
1093
  }, /*#__PURE__*/react.createElement("div", {
1056
- className: "flex flex-col w-1/2"
1094
+ className: "flex w-1/2 flex-col"
1057
1095
  }, /*#__PURE__*/react.createElement(src/* Select */.Ph, {
1058
1096
  label: t('Strategy'),
1059
1097
  closeMenuOnSelect: true,
1060
- className: "mr-2 bg-black border-primary-main text-white ",
1098
+ className: "border-primary-main mr-2 bg-black text-white ",
1061
1099
  options: options,
1062
1100
  placeholder: options.find(option => option.value === config.strategy).placeHolder,
1063
1101
  value: config.strategy,
@@ -1074,7 +1112,7 @@ function ROIThresholdConfiguration(_ref) {
1074
1112
  }
1075
1113
  })), /*#__PURE__*/react.createElement("div", {
1076
1114
  className: "w-1/2"
1077
- }, /*#__PURE__*/react.createElement(src/* ButtonGroup */.hE, null, /*#__PURE__*/react.createElement(src/* LegacyButton */.mN, {
1115
+ }, /*#__PURE__*/react.createElement(src/* LegacyButtonGroup */.HO, null, /*#__PURE__*/react.createElement(src/* LegacyButton */.mN, {
1078
1116
  size: "initial",
1079
1117
  className: "px-2 py-2 text-base text-white",
1080
1118
  color: "primaryLight",
@@ -1089,7 +1127,7 @@ function ROIThresholdConfiguration(_ref) {
1089
1127
  }, t('End'))))), config.strategy === ROI_STAT && /*#__PURE__*/react.createElement(src/* Input */.II, {
1090
1128
  label: t('Percentage of Max SUV'),
1091
1129
  labelClassName: "text-white",
1092
- className: "mt-2 bg-black border-primary-main",
1130
+ className: "border-primary-main mt-2 bg-black",
1093
1131
  type: "text",
1094
1132
  containerClassName: "mr-2",
1095
1133
  value: config.weight,
@@ -1102,7 +1140,7 @@ function ROIThresholdConfiguration(_ref) {
1102
1140
  });
1103
1141
  }
1104
1142
  }), config.strategy !== ROI_STAT && /*#__PURE__*/react.createElement("div", {
1105
- className: "text-sm mr-2"
1143
+ className: "mr-2 text-sm"
1106
1144
  }, /*#__PURE__*/react.createElement("table", null, /*#__PURE__*/react.createElement("tbody", null, /*#__PURE__*/react.createElement("tr", {
1107
1145
  className: "mt-2"
1108
1146
  }, /*#__PURE__*/react.createElement("td", {
@@ -1114,7 +1152,7 @@ function ROIThresholdConfiguration(_ref) {
1114
1152
  }))), /*#__PURE__*/react.createElement("tr", {
1115
1153
  className: "mt-2"
1116
1154
  }, /*#__PURE__*/react.createElement("td", {
1117
- className: "text-center pr-4 pt-2"
1155
+ className: "pr-4 pt-2 text-center"
1118
1156
  }, /*#__PURE__*/react.createElement(src/* Label */.__, {
1119
1157
  className: "text-white",
1120
1158
  text: "CT"
@@ -1123,7 +1161,7 @@ function ROIThresholdConfiguration(_ref) {
1123
1161
  }, /*#__PURE__*/react.createElement(src/* Input */.II, {
1124
1162
  label: t(''),
1125
1163
  labelClassName: "text-white",
1126
- className: "mt-2 bg-black border-primary-main",
1164
+ className: "border-primary-main mt-2 bg-black",
1127
1165
  type: "text",
1128
1166
  containerClassName: "mr-2",
1129
1167
  value: config.ctLower,
@@ -1138,7 +1176,7 @@ function ROIThresholdConfiguration(_ref) {
1138
1176
  }), /*#__PURE__*/react.createElement(src/* Input */.II, {
1139
1177
  label: t(''),
1140
1178
  labelClassName: "text-white",
1141
- className: "mt-2 bg-black border-primary-main",
1179
+ className: "border-primary-main mt-2 bg-black",
1142
1180
  type: "text",
1143
1181
  containerClassName: "mr-2",
1144
1182
  value: config.ctUpper,
@@ -1151,7 +1189,7 @@ function ROIThresholdConfiguration(_ref) {
1151
1189
  });
1152
1190
  }
1153
1191
  })))), /*#__PURE__*/react.createElement("tr", null, /*#__PURE__*/react.createElement("td", {
1154
- className: "text-center pr-4 pt-2"
1192
+ className: "pr-4 pt-2 text-center"
1155
1193
  }, /*#__PURE__*/react.createElement(src/* Label */.__, {
1156
1194
  className: "text-white",
1157
1195
  text: "PT"
@@ -1160,7 +1198,7 @@ function ROIThresholdConfiguration(_ref) {
1160
1198
  }, /*#__PURE__*/react.createElement(src/* Input */.II, {
1161
1199
  label: t(''),
1162
1200
  labelClassName: "text-white",
1163
- className: "mt-2 bg-black border-primary-main",
1201
+ className: "border-primary-main mt-2 bg-black",
1164
1202
  type: "text",
1165
1203
  containerClassName: "mr-2",
1166
1204
  value: config.ptLower,
@@ -1175,7 +1213,7 @@ function ROIThresholdConfiguration(_ref) {
1175
1213
  }), /*#__PURE__*/react.createElement(src/* Input */.II, {
1176
1214
  label: t(''),
1177
1215
  labelClassName: "text-white",
1178
- className: "mt-2 bg-black border-primary-main",
1216
+ className: "border-primary-main mt-2 bg-black",
1179
1217
  type: "text",
1180
1218
  containerClassName: "mr-2",
1181
1219
  value: config.ptUpper,
@@ -1358,9 +1396,9 @@ function PanelRoiThresholdSegmentation(_ref) {
1358
1396
  return /*#__PURE__*/react.createElement(react.Fragment, null, /*#__PURE__*/react.createElement("div", {
1359
1397
  className: "flex flex-col"
1360
1398
  }, /*#__PURE__*/react.createElement("div", {
1361
- className: "overflow-x-hidden overflow-y-auto invisible-scrollbar"
1399
+ className: "invisible-scrollbar overflow-y-auto overflow-x-hidden"
1362
1400
  }, /*#__PURE__*/react.createElement("div", {
1363
- className: "flex mx-4 my-4 mb-4 space-x-4"
1401
+ className: "mx-4 my-4 mb-4 flex space-x-4"
1364
1402
  }, /*#__PURE__*/react.createElement(src/* Button */.zx, {
1365
1403
  onClick: () => {
1366
1404
  setLabelmapLoading(true);
@@ -1374,7 +1412,7 @@ function PanelRoiThresholdSegmentation(_ref) {
1374
1412
  }, labelmapLoading ? 'loading ...' : 'New Label'), /*#__PURE__*/react.createElement(src/* Button */.zx, {
1375
1413
  onClick: handleROIThresholding
1376
1414
  }, "Run")), /*#__PURE__*/react.createElement("div", {
1377
- className: "flex items-center justify-around h-8 mb-2 border-t outline-none cursor-pointer select-none bg-secondary-dark first:border-0 border-secondary-light",
1415
+ className: "bg-secondary-dark border-secondary-light mb-2 flex h-8 cursor-pointer select-none items-center justify-around border-t outline-none first:border-0",
1378
1416
  onClick: () => {
1379
1417
  setShowConfig(!showConfig);
1380
1418
  }
@@ -1414,9 +1452,9 @@ function PanelRoiThresholdSegmentation(_ref) {
1414
1452
  });
1415
1453
  }
1416
1454
  }) : null), tmtvValue !== null ? /*#__PURE__*/react.createElement("div", {
1417
- className: "flex items-baseline justify-between px-2 py-1 mt-4 bg-secondary-dark"
1455
+ className: "bg-secondary-dark mt-4 flex items-baseline justify-between px-2 py-1"
1418
1456
  }, /*#__PURE__*/react.createElement("span", {
1419
- className: "text-base font-bold tracking-widest text-white uppercase"
1457
+ className: "text-base font-bold uppercase tracking-widest text-white"
1420
1458
  }, 'TMTV:'), /*#__PURE__*/react.createElement("div", {
1421
1459
  className: "text-white"
1422
1460
  }, `${tmtvValue} mL`)) : null, /*#__PURE__*/react.createElement(PanelROIThresholdSegmentation_ExportReports, {
@@ -1425,7 +1463,7 @@ function PanelRoiThresholdSegmentation(_ref) {
1425
1463
  config: config,
1426
1464
  commandsManager: commandsManager
1427
1465
  }))), /*#__PURE__*/react.createElement("div", {
1428
- className: "opacity-50 hover:opacity-80 flex items-center justify-center text-blue-400 mt-auto cursor-pointer mb-4",
1466
+ className: "mt-auto mb-4 flex cursor-pointer items-center justify-center text-blue-400 opacity-50 hover:opacity-80",
1429
1467
  onClick: () => {
1430
1468
  // navigate to a url in a new tab
1431
1469
  window.open('https://github.com/OHIF/Viewers/blob/master/modes/tmtv/README.md', '_blank');
@@ -1504,10 +1542,10 @@ function getPanelModule(_ref) {
1504
1542
  }];
1505
1543
  }
1506
1544
  /* harmony default export */ const src_getPanelModule = (getPanelModule);
1507
- // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/index.js + 321 modules
1508
- var esm = __webpack_require__(57270);
1509
- // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/index.js + 335 modules
1510
- var dist_esm = __webpack_require__(77331);
1545
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/index.js + 348 modules
1546
+ var esm = __webpack_require__(14957);
1547
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/index.js + 331 modules
1548
+ var dist_esm = __webpack_require__(3743);
1511
1549
  ;// CONCATENATED MODULE: ../../../extensions/tmtv/src/utils/measurementServiceMappings/constants/supportedTools.js
1512
1550
  /* harmony default export */ const supportedTools = (['RectangleROIStartEndThreshold']);
1513
1551
  ;// CONCATENATED MODULE: ../../../extensions/tmtv/src/utils/measurementServiceMappings/utils/getSOPInstanceAttributes.js
@@ -1681,7 +1719,7 @@ function init(_ref) {
1681
1719
  colormaps.forEach(registerColormap);
1682
1720
  }
1683
1721
  // EXTERNAL MODULE: ../../../node_modules/gl-matrix/esm/index.js + 10 modules
1684
- var gl_matrix_esm = __webpack_require__(88256);
1722
+ var gl_matrix_esm = __webpack_require__(45451);
1685
1723
  ;// CONCATENATED MODULE: ../../../extensions/tmtv/src/utils/getThresholdValue.ts
1686
1724
 
1687
1725
  function getRoiStats(referencedVolume, annotations) {
@@ -1926,310 +1964,10 @@ function createAndDownloadTMTVReport(segReport, additionalReportRows) {
1926
1964
  a.download = `${firstReport.PatientID}_tmtv.csv`;
1927
1965
  a.click();
1928
1966
  }
1929
- ;// CONCATENATED MODULE: ../../../extensions/tmtv/src/utils/dicomRTAnnotationExport/RTStructureSet/measurements/RectangleROIStartEndThreshold.js
1930
- // comment
1931
- class RectangleROIStartEndThreshold_RectangleROIStartEndThreshold {
1932
- constructor() {}
1933
- static getContourSequence(toolData, metadataProvider) {
1934
- const {
1935
- data
1936
- } = toolData;
1937
- const {
1938
- projectionPoints,
1939
- projectionPointsImageIds
1940
- } = data.cachedStats;
1941
- return projectionPoints.map((point, index) => {
1942
- const ContourData = getPointData(point);
1943
- const ContourImageSequence = getContourImageSequence(projectionPointsImageIds[index], metadataProvider);
1944
- return {
1945
- NumberOfContourPoints: ContourData.length / 3,
1946
- ContourImageSequence,
1947
- ContourGeometricType: 'CLOSED_PLANAR',
1948
- ContourData
1949
- };
1950
- });
1951
- }
1952
- }
1953
- RectangleROIStartEndThreshold_RectangleROIStartEndThreshold.toolName = 'RectangleROIStartEndThreshold';
1954
- function getPointData(points) {
1955
- // Since this is a closed contour, the order of the points is important.
1956
- // re-order the points to be in the correct order clockwise
1957
- // Spread to make sure Float32Arrays are converted to arrays
1958
- const orderedPoints = [...points[0], ...points[1], ...points[3], ...points[2]];
1959
- const pointsArray = orderedPoints.flat();
1960
-
1961
- // reduce the precision of the points to 2 decimal places
1962
- const pointsArrayWithPrecision = pointsArray.map(point => {
1963
- return point.toFixed(2);
1964
- });
1965
- return pointsArrayWithPrecision;
1966
- }
1967
- function getContourImageSequence(imageId, metadataProvider) {
1968
- const sopCommon = metadataProvider.get('sopCommonModule', imageId);
1969
- return {
1970
- ReferencedSOPClassUID: sopCommon.sopClassUID,
1971
- ReferencedSOPInstanceUID: sopCommon.sopInstanceUID
1972
- };
1973
- }
1974
- /* harmony default export */ const measurements_RectangleROIStartEndThreshold = (RectangleROIStartEndThreshold_RectangleROIStartEndThreshold);
1975
- ;// CONCATENATED MODULE: ../../../extensions/tmtv/src/utils/dicomRTAnnotationExport/RTStructureSet/measurements/AnnotationToPointData.js
1976
-
1977
- function validateAnnotation(annotation) {
1978
- if (!annotation?.data) {
1979
- throw new Error('Tool data is empty');
1980
- }
1981
- if (!annotation.metadata || annotation.metadata.referenceImageId) {
1982
- throw new Error('Tool data is not associated with any imageId');
1983
- }
1984
- }
1985
- class AnnotationToPointData {
1986
- constructor() {}
1987
- static convert(annotation, index, metadataProvider) {
1988
- validateAnnotation(annotation);
1989
- const {
1990
- toolName
1991
- } = annotation.metadata;
1992
- const toolClass = AnnotationToPointData.TOOL_NAMES[toolName];
1993
- if (!toolClass) {
1994
- throw new Error(`Unknown tool type: ${toolName}, cannot convert to RTSSReport`);
1995
- }
1996
-
1997
- // Each toolData should become a list of contours, ContourSequence
1998
- // contains a list of contours with their pointData, their geometry
1999
- // type and their length.
2000
- const ContourSequence = toolClass.getContourSequence(annotation, metadataProvider);
2001
-
2002
- // Todo: random rgb color for now, options should be passed in
2003
- const color = [Math.floor(Math.random() * 255), Math.floor(Math.random() * 255), Math.floor(Math.random() * 255)];
2004
- return {
2005
- ReferencedROINumber: index + 1,
2006
- ROIDisplayColor: color,
2007
- ContourSequence
2008
- };
2009
- }
2010
- static register(toolClass) {
2011
- AnnotationToPointData.TOOL_NAMES[toolClass.toolName] = toolClass;
2012
- }
2013
- }
2014
- AnnotationToPointData.TOOL_NAMES = {};
2015
- AnnotationToPointData.register(measurements_RectangleROIStartEndThreshold);
2016
- /* harmony default export */ const measurements_AnnotationToPointData = (AnnotationToPointData);
2017
1967
  // EXTERNAL MODULE: ../../../node_modules/dcmjs/build/dcmjs.es.js
2018
- var dcmjs_es = __webpack_require__(22737);
2019
- ;// CONCATENATED MODULE: ../../../extensions/tmtv/src/utils/dicomRTAnnotationExport/RTStructureSet/RTSSReport.js
2020
-
2021
-
2022
-
2023
- const {
2024
- DicomMetaDictionary
2025
- } = dcmjs_es["default"].data;
2026
- class RTSSReport {
2027
- constructor() {}
2028
-
2029
- /**
2030
- * Convert handles to RTSSReport report object containing the dcmjs dicom dataset.
2031
- *
2032
- * Note: The tool data needs to be formatted in a specific way, and currently
2033
- * it is limited to the RectangleROIStartEndTool in the Cornerstone.
2034
- *
2035
- * @param annotations Array of Cornerstone tool annotation data
2036
- * @param metadataProvider Metadata provider
2037
- * @param options report generation options
2038
- * @returns Report object containing the dataset
2039
- */
2040
- static generateReport(annotations, metadataProvider, options) {
2041
- let dataset = initializeDataset(annotations, metadataProvider);
2042
- annotations.forEach((annotation, index) => {
2043
- const ContourSequence = measurements_AnnotationToPointData.convert(annotation, index, metadataProvider, options);
2044
- dataset.StructureSetROISequence.push(getStructureSetModule(annotation, index, metadataProvider));
2045
- dataset.ROIContourSequence.push(ContourSequence);
2046
- dataset.RTROIObservationsSequence.push(getRTROIObservationsSequence(annotation, index, metadataProvider));
2047
-
2048
- // ReferencedSeriesSequence
2049
- // Todo: handle more than one series
2050
- dataset.ReferencedSeriesSequence = getReferencedSeriesSequence(annotation, index, metadataProvider);
2051
-
2052
- // ReferencedFrameOfReferenceSequence
2053
- dataset.ReferencedFrameOfReferenceSequence = getReferencedFrameOfReferenceSequence(annotation, metadataProvider, dataset);
2054
- });
2055
- const fileMetaInformationVersionArray = new Uint8Array(2);
2056
- fileMetaInformationVersionArray[1] = 1;
2057
- const _meta = {
2058
- FileMetaInformationVersion: {
2059
- Value: [fileMetaInformationVersionArray.buffer],
2060
- vr: 'OB'
2061
- },
2062
- TransferSyntaxUID: {
2063
- Value: ['1.2.840.10008.1.2.1'],
2064
- vr: 'UI'
2065
- },
2066
- ImplementationClassUID: {
2067
- Value: [DicomMetaDictionary.uid()],
2068
- // TODO: could be git hash or other valid id
2069
- vr: 'UI'
2070
- },
2071
- ImplementationVersionName: {
2072
- Value: ['dcmjs'],
2073
- vr: 'SH'
2074
- }
2075
- };
2076
- dataset._meta = _meta;
2077
- return dataset;
2078
- }
2079
-
2080
- /**
2081
- * Generate Cornerstone tool state from dataset
2082
- * @param {object} dataset dataset
2083
- * @param {object} hooks
2084
- * @param {function} hooks.getToolClass Function to map dataset to a tool class
2085
- * @returns
2086
- */
2087
- static generateToolState(dataset) {
2088
- let hooks = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
2089
- // Todo
2090
- console.warn('RTSSReport.generateToolState not implemented');
2091
- }
2092
- }
2093
- function initializeDataset(annotations, metadataProvider) {
2094
- const rtSOPInstanceUID = DicomMetaDictionary.uid();
2095
-
2096
- // get the first annotation data
2097
- const {
2098
- referencedImageId: imageId,
2099
- FrameOfReferenceUID
2100
- } = annotations[0].metadata;
2101
- const {
2102
- studyInstanceUID
2103
- } = metadataProvider.get('generalSeriesModule', imageId);
2104
- const patientModule = getPatientModule(imageId, metadataProvider);
2105
- const rtSeriesModule = getRTSeriesModule(imageId, metadataProvider);
2106
- return {
2107
- StructureSetROISequence: [],
2108
- ROIContourSequence: [],
2109
- RTROIObservationsSequence: [],
2110
- ReferencedSeriesSequence: [],
2111
- ReferencedFrameOfReferenceSequence: [],
2112
- ...patientModule,
2113
- ...rtSeriesModule,
2114
- StudyInstanceUID: studyInstanceUID,
2115
- SOPClassUID: '1.2.840.10008.5.1.4.1.1.481.3',
2116
- // RT Structure Set Storage
2117
- SOPInstanceUID: rtSOPInstanceUID,
2118
- Manufacturer: 'dcmjs',
2119
- Modality: 'RTSTRUCT',
2120
- FrameOfReferenceUID,
2121
- PositionReferenceIndicator: '',
2122
- StructureSetLabel: '',
2123
- StructureSetName: '',
2124
- ReferringPhysicianName: '',
2125
- OperatorsName: '',
2126
- StructureSetDate: DicomMetaDictionary.date(),
2127
- StructureSetTime: DicomMetaDictionary.time()
2128
- };
2129
- }
2130
- function getPatientModule(imageId, metadataProvider) {
2131
- const generalSeriesModule = metadataProvider.get('generalSeriesModule', imageId);
2132
- const generalStudyModule = metadataProvider.get('generalStudyModule', imageId);
2133
- const patientStudyModule = metadataProvider.get('patientStudyModule', imageId);
2134
- const patientModule = metadataProvider.get('patientModule', imageId);
2135
- const patientDemographicModule = metadataProvider.get('patientDemographicModule', imageId);
2136
- return {
2137
- Modality: generalSeriesModule.modality,
2138
- PatientID: patientModule.patientId,
2139
- PatientName: patientModule.patientName,
2140
- PatientBirthDate: '',
2141
- PatientAge: patientStudyModule.patientAge,
2142
- PatientSex: patientDemographicModule.patientSex,
2143
- PatientWeight: patientStudyModule.patientWeight,
2144
- StudyDate: generalStudyModule.studyDate,
2145
- StudyTime: generalStudyModule.studyTime,
2146
- StudyID: 'ToDo',
2147
- AccessionNumber: generalStudyModule.accessionNumber
2148
- };
2149
- }
2150
- function getReferencedFrameOfReferenceSequence(toolData, metadataProvider, dataset) {
2151
- const {
2152
- referencedImageId: imageId,
2153
- FrameOfReferenceUID
2154
- } = toolData.metadata;
2155
- const instance = metadataProvider.get('instance', imageId);
2156
- const {
2157
- SeriesInstanceUID
2158
- } = instance;
2159
- const {
2160
- ReferencedSeriesSequence
2161
- } = dataset;
2162
- return [{
2163
- FrameOfReferenceUID,
2164
- RTReferencedStudySequence: [{
2165
- ReferencedSOPClassUID: dataset.SOPClassUID,
2166
- ReferencedSOPInstanceUID: dataset.SOPInstanceUID,
2167
- RTReferencedSeriesSequence: [{
2168
- SeriesInstanceUID,
2169
- ContourImageSequence: [...ReferencedSeriesSequence[0].ReferencedInstanceSequence]
2170
- }]
2171
- }]
2172
- }];
2173
- }
2174
- function getReferencedSeriesSequence(toolData, index, metadataProvider) {
2175
- // grab imageId from toolData
2176
- const {
2177
- referencedImageId: imageId
2178
- } = toolData.metadata;
2179
- const instance = metadataProvider.get('instance', imageId);
2180
- const {
2181
- SeriesInstanceUID,
2182
- StudyInstanceUID
2183
- } = instance;
2184
- const ReferencedSeriesSequence = [];
2185
- if (SeriesInstanceUID) {
2186
- const series = core_src.DicomMetadataStore.getSeries(StudyInstanceUID, SeriesInstanceUID);
2187
- const ReferencedSeries = {
2188
- SeriesInstanceUID,
2189
- ReferencedInstanceSequence: []
2190
- };
2191
- series.instances.forEach(instance => {
2192
- const {
2193
- SOPInstanceUID,
2194
- SOPClassUID
2195
- } = instance;
2196
- ReferencedSeries.ReferencedInstanceSequence.push({
2197
- ReferencedSOPClassUID: SOPClassUID,
2198
- ReferencedSOPInstanceUID: SOPInstanceUID
2199
- });
2200
- });
2201
- ReferencedSeriesSequence.push(ReferencedSeries);
2202
- }
2203
- return ReferencedSeriesSequence;
2204
- }
2205
- function getRTSeriesModule(imageId, metadataProvider) {
2206
- return {
2207
- SeriesInstanceUID: DicomMetaDictionary.uid(),
2208
- // generate a new series instance uid
2209
- SeriesNumber: '99' // Todo:: what should be the series number?
2210
- };
2211
- }
2212
-
2213
- function getStructureSetModule(toolData, index, metadataProvider) {
2214
- const {
2215
- FrameOfReferenceUID
2216
- } = toolData.metadata;
2217
- return {
2218
- ROINumber: index + 1,
2219
- ROIName: `Todo: name ${index + 1}`,
2220
- ROIDescription: `Todo: description ${index + 1}`,
2221
- ROIGenerationAlgorithm: 'Todo: algorithm',
2222
- ReferencedFrameOfReferenceUID: FrameOfReferenceUID
2223
- };
2224
- }
2225
- function getRTROIObservationsSequence(toolData, index, metadataProvider) {
2226
- return {
2227
- ObservationNumber: index + 1,
2228
- ReferencedROINumber: index + 1,
2229
- RTROIInterpretedType: 'Todo: type',
2230
- ROIInterpreter: 'Todo: interpreter'
2231
- };
2232
- }
1968
+ var dcmjs_es = __webpack_require__(67540);
1969
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/adapters/dist/adapters.es.js
1970
+ var adapters_es = __webpack_require__(91202);
2233
1971
  ;// CONCATENATED MODULE: ../../../extensions/tmtv/src/utils/dicomRTAnnotationExport/RTStructureSet/dicomRTAnnotationExport.js
2234
1972
 
2235
1973
 
@@ -2239,7 +1977,7 @@ const {
2239
1977
  } = dcmjs_es["default"].data;
2240
1978
  const metadataProvider = core_src.classes.MetadataProvider;
2241
1979
  function dicomRTAnnotationExport(annotations) {
2242
- const dataset = RTSSReport.generateReport(annotations, metadataProvider);
1980
+ const dataset = adapters_es.adaptersRT.Cornerstone3D.RTSS.generateRTSSFromAnnotations(annotations, metadataProvider, core_src.DicomMetadataStore);
2243
1981
  const reportBlob = datasetToBlob(dataset);
2244
1982
 
2245
1983
  //Create a URL for the binary.
@@ -2284,11 +2022,11 @@ const commandsModule = _ref => {
2284
2022
  } = utilityModule.exports;
2285
2023
  function _getActiveViewportsEnabledElement() {
2286
2024
  const {
2287
- activeViewportIndex
2025
+ activeViewportId
2288
2026
  } = viewportGridService.getState();
2289
2027
  const {
2290
2028
  element
2291
- } = getEnabledElement(activeViewportIndex) || {};
2029
+ } = getEnabledElement(activeViewportId) || {};
2292
2030
  const enabledElement = dist_esm.getEnabledElement(element);
2293
2031
  return enabledElement;
2294
2032
  }
@@ -2297,10 +2035,10 @@ const commandsModule = _ref => {
2297
2035
  viewportMatchDetails
2298
2036
  } = hangingProtocolService.getMatchDetails();
2299
2037
  const toolGroupIds = [];
2300
- viewportMatchDetails.forEach((value, key) => {
2038
+ viewportMatchDetails.forEach(viewport => {
2301
2039
  const {
2302
2040
  viewportOptions
2303
- } = value;
2041
+ } = viewport;
2304
2042
  const {
2305
2043
  toolGroupId
2306
2044
  } = viewportOptions;
@@ -2321,7 +2059,7 @@ const commandsModule = _ref => {
2321
2059
  // corrected PT vs the non-attenuation correct PT)
2322
2060
 
2323
2061
  let ptDisplaySet = null;
2324
- for (const [viewportIndex, viewportDetails] of viewportMatchDetails) {
2062
+ for (const [viewportId, viewportDetails] of viewportMatchDetails) {
2325
2063
  const {
2326
2064
  displaySetsInfo
2327
2065
  } = viewportDetails;
@@ -2771,12 +2509,24 @@ const commandsModule = _ref => {
2771
2509
  const fusionViewportIds = toolGroup.getViewportIds();
2772
2510
  let viewports = [];
2773
2511
  fusionViewportIds.forEach(viewportId => {
2774
- const viewportInfo = cornerstoneViewportService.getViewportInfo(viewportId);
2775
- const viewportIndex = viewportInfo.getViewportIndex();
2776
2512
  commandsManager.runCommand('setViewportColormap', {
2777
- viewportIndex,
2513
+ viewportId,
2778
2514
  displaySetInstanceUID: ptDisplaySet.displaySetInstanceUID,
2779
- colormap
2515
+ colormap: {
2516
+ name: colormap,
2517
+ // TODO: This opacity mapping matches that in hpViewports, but
2518
+ // ideally making this editable in a side panel would be useful
2519
+ opacity: [{
2520
+ value: 0,
2521
+ opacity: 0
2522
+ }, {
2523
+ value: 0.1,
2524
+ opacity: 0.9
2525
+ }, {
2526
+ value: 1,
2527
+ opacity: 0.95
2528
+ }]
2529
+ }
2780
2530
  });
2781
2531
  viewports.push(cornerstoneViewportService.getCornerstoneViewport(viewportId));
2782
2532
  });