@ohif/app 3.10.0-beta.91 → 3.10.0-beta.92

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/dist/{1919.bundle.f2354707a16dbadd6c36.js → 1919.bundle.51215a737c42fc41be2e.js} +50 -63
  2. package/dist/{9113.bundle.dd644aa37c1f8d642e61.js → 2045.bundle.aaa10dff6d93bec47a45.js} +135 -68
  3. package/dist/{9196.bundle.06e751e6da707cb0a645.js → 4533.bundle.f66373fbe5a0c349b0a9.js} +340 -10
  4. package/dist/{5038.bundle.d674ce2b1fc4c4a2cbfd.js → 5038.bundle.63e0dcf0360ed9ab6525.js} +53 -1893
  5. package/dist/{5770.bundle.faa5a7918ebb0e720fed.js → 5770.bundle.7b3f458a71ede7628f4e.js} +2 -2
  6. package/dist/{2712.bundle.d4fc8a3969caa7717a68.js → 5915.bundle.4ab1911d28bfd2abffab.js} +116 -5
  7. package/dist/{5247.bundle.b40c15d9bfddf4e82978.js → 6341.bundle.d397825d1134dbb7fb6e.js} +20 -3
  8. package/dist/{6896.bundle.cd44d8d0f50212a6e3bf.js → 6896.bundle.ca9b905abe733f279387.js} +2 -2
  9. package/dist/{7197.bundle.1d6bcc23da961c677f93.js → 7197.bundle.25e9d299e8c26e7d8880.js} +2 -2
  10. package/dist/{7490.bundle.5f8113da126ba3354834.js → 7490.bundle.76ac5a625bc346186f9b.js} +143 -254
  11. package/dist/7758.bundle.c8d106364298e7d288f0.js +67 -0
  12. package/dist/{810.bundle.3d85b5a8221c08da8521.js → 810.bundle.456dc7247f9b2be1c075.js} +2 -2
  13. package/dist/{8549.bundle.c7a0d72f996a18ffe6fe.js → 8549.bundle.93160186ae7d63c4b032.js} +4 -4
  14. package/dist/{8558.bundle.31041241f7cb37455177.js → 8558.bundle.2795cf3e1071590ec5a9.js} +1 -1
  15. package/dist/{9677.bundle.3f0630d50368500cb184.js → 8888.bundle.7f49f53d289b49a00977.js} +352 -20
  16. package/dist/{9026.bundle.e9a5deaa35a4c56da377.js → 9026.bundle.ac576fa6a4d22df6b84d.js} +40 -28
  17. package/dist/{9862.bundle.b5ba30d3e75fecac5e13.js → 9862.bundle.a4ccc41bcff91a46d37e.js} +1 -1
  18. package/dist/{app.bundle.6be2642b9bb1c822ce57.js → app.bundle.954624feb131f1cad14c.js} +215 -72
  19. package/dist/index.html +1 -1
  20. package/dist/{polySeg.bundle.f85c2393a03d323db35b.js → polySeg.bundle.3f5527cde0d61e88a0fd.js} +3 -3
  21. package/dist/{suv-peak-worker.bundle.c5b7f9f39d56d0283b0e.js → suv-peak-worker.bundle.37f95e5799f2410313bc.js} +4 -4
  22. package/dist/sw.js +1 -1
  23. package/package.json +19 -19
  24. package/dist/1429.bundle.0458a6327b8d6f48e7f6.js +0 -2079
  25. package/dist/5502.bundle.6426efd96b9b596dc43a.js +0 -1357
  26. package/dist/642.bundle.93776d787135fbeb83da.js +0 -2725
  27. /package/dist/{213.bundle.54c6594c88130815bca2.js → 213.bundle.1bdf5de31e3626e2f0e9.js} +0 -0
  28. /package/dist/{2424.bundle.e10b7083fea5315827d0.js → 2424.bundle.25fea8de9a0736d82963.js} +0 -0
  29. /package/dist/{2701.bundle.8cb930195b6eda37d073.js → 2701.bundle.641b8e4299d8370e861b.js} +0 -0
  30. /package/dist/{2825.bundle.288a5a2c9dc5d9028bd9.js → 2825.bundle.03054504f63ee767c25d.js} +0 -0
  31. /package/dist/{4202.bundle.a0ff96a631db09a9e7b4.js → 4202.bundle.add83801fbc8227d551b.js} +0 -0
  32. /package/dist/{4526.bundle.1953161406363fc341d6.js → 4526.bundle.11b8a5b32121744ae056.js} +0 -0
  33. /package/dist/{4834.bundle.fb65e42bf4376ca0a265.js → 4834.bundle.7a55de9ac085ec03ea6a.js} +0 -0
  34. /package/dist/{6027.bundle.f0c7180021641335a360.js → 6027.bundle.76f16e253641d127333c.js} +0 -0
  35. /package/dist/{6201.bundle.417316b62180ae959b88.js → 6201.bundle.a4555f8142fb1bbd805e.js} +0 -0
  36. /package/dist/{5247.css → 6341.css} +0 -0
  37. /package/dist/{6734.bundle.bd240d6ffe46679a696b.js → 6734.bundle.0b2759bd496b3494a29e.js} +0 -0
  38. /package/dist/{7955.bundle.211992de9e62074c6241.js → 7955.bundle.40601486cdfe881a1944.js} +0 -0
  39. /package/dist/{8008.bundle.f502b153f85eb33a7757.js → 8008.bundle.42111a8c574bc7a4c860.js} +0 -0
  40. /package/dist/{8228.bundle.2286be1fba1467e77e44.js → 8228.bundle.defa94df3888aae6baf5.js} +0 -0
  41. /package/dist/{8259.bundle.6c4025437779e2992d95.js → 8259.bundle.e434fd61e4a1882ed4e9.js} +0 -0
  42. /package/dist/{870.bundle.5f9d3e46621f2b4e0cbf.js → 870.bundle.68bf67c8d8015a1242df.js} +0 -0
  43. /package/dist/{9551.bundle.98001b569fc264df8baa.js → 9551.bundle.3846cf9b3b86e80a27a3.js} +0 -0
  44. /package/dist/{9890.bundle.cddd50ff44435f900be2.js → 9890.bundle.10620379d01f950951bc.js} +0 -0
@@ -296,8 +296,8 @@ const SOPClassHandlerName = 'dynamic-volume';
296
296
  var src = __webpack_require__(97444);
297
297
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/index.js
298
298
  var esm = __webpack_require__(81985);
299
- // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/index.js + 94 modules
300
- var dist_esm = __webpack_require__(75851);
299
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/index.js + 95 modules
300
+ var dist_esm = __webpack_require__(31856);
301
301
  ;// CONCATENATED MODULE: ../../../extensions/cornerstone-dynamic-volume/src/actions/updateSegmentationsChartDisplaySet.ts
302
302
 
303
303
 
@@ -970,7 +970,7 @@ const Header = ({
970
970
  className: "text-primary-active h-[14px] w-[14px]"
971
971
  }))), /*#__PURE__*/react.createElement(ui_next_src/* TooltipContent */.ZI, {
972
972
  sideOffset: 4,
973
- className: "max-w-xs p-2 bg-primary-dark text-white"
973
+ className: "bg-primary-dark max-w-xs p-2 text-white"
974
974
  }, /*#__PURE__*/react.createElement("div", null, tooltip))), /*#__PURE__*/react.createElement("span", {
975
975
  className: "text-aqua-pale text-[11px] uppercase"
976
976
  }, title));
@@ -983,21 +983,16 @@ const DynamicVolumeControls = ({
983
983
  minFps,
984
984
  maxFps,
985
985
  // Frames
986
- currentFrameIndex,
987
- onFrameChange,
988
- framesLength,
986
+ currentDimensionGroupNumber,
987
+ onDimensionGroupChange,
988
+ numDimensionGroups,
989
989
  onGenerate,
990
990
  onDoubleRangeChange,
991
+ rangeValues,
991
992
  onDynamicClick
992
993
  }) => {
993
994
  const [computedView, setComputedView] = (0,react.useState)(false);
994
995
  const [computeViewMode, setComputeViewMode] = (0,react.useState)(esm.Enums.DynamicOperatorType.SUM);
995
- const [sliderRangeValues, setSliderRangeValues] = (0,react.useState)([0, framesLength - 1]);
996
- const handleSliderChange = newValues => {
997
- onDoubleRangeChange(newValues);
998
- setSliderRangeValues(newValues);
999
- };
1000
- const formatLabel = value => Math.round(value);
1001
996
  return /*#__PURE__*/react.createElement("div", {
1002
997
  className: "flex select-none flex-col"
1003
998
  }, /*#__PURE__*/react.createElement(ui_src/* PanelSection */.aU, {
@@ -1021,7 +1016,7 @@ const DynamicVolumeControls = ({
1021
1016
  onClick: () => {
1022
1017
  setComputedView(true);
1023
1018
  }
1024
- }, "Computed"))), /*#__PURE__*/react.createElement("div", null, /*#__PURE__*/react.createElement(FrameControls, {
1019
+ }, "Computed"))), /*#__PURE__*/react.createElement("div", null, /*#__PURE__*/react.createElement(DimensionGroupControls, {
1025
1020
  onPlayPauseChange: onPlayPauseChange,
1026
1021
  isPlaying: isPlaying,
1027
1022
  computedView: computedView
@@ -1033,14 +1028,14 @@ const DynamicVolumeControls = ({
1033
1028
  maxFps: maxFps
1034
1029
  //
1035
1030
  ,
1036
- framesLength: framesLength,
1037
- onFrameChange: onFrameChange,
1038
- currentFrameIndex: currentFrameIndex
1031
+ numDimensionGroups: numDimensionGroups,
1032
+ onDimensionGroupChange: onDimensionGroupChange,
1033
+ currentDimensionGroupNumber: currentDimensionGroupNumber
1039
1034
  })), /*#__PURE__*/react.createElement("div", {
1040
1035
  className: `mt-6 flex flex-col ${computedView ? '' : 'ohif-disabled'}`
1041
1036
  }, /*#__PURE__*/react.createElement(Header, {
1042
1037
  title: "Computed Operation",
1043
- tooltip: /*#__PURE__*/react.createElement("div", null, "Operation Buttons (SUM, AVERAGE, SUBTRACT): Select the mathematical operation to be applied to the data set.", /*#__PURE__*/react.createElement("br", null), " Range Slider: Choose the numeric range within which the operation will be performed.", /*#__PURE__*/react.createElement("br", null), "Generate Button: Execute the chosen operation on the specified range of data.")
1038
+ tooltip: /*#__PURE__*/react.createElement("div", null, "Operation Buttons (SUM, AVERAGE, SUBTRACT): Select the mathematical operation to be applied to the data set.", /*#__PURE__*/react.createElement("br", null), " Range Slider: Choose the numeric range of dimension groups within which the operation will be performed.", /*#__PURE__*/react.createElement("br", null), "Generate Button: Execute the chosen operation on the specified range of data.")
1044
1039
  }), /*#__PURE__*/react.createElement(ui_src/* ButtonGroup */.e2, {
1045
1040
  className: "mt-2 w-full",
1046
1041
  separated: true
@@ -1055,15 +1050,15 @@ const DynamicVolumeControls = ({
1055
1050
  onClick: () => setComputeViewMode(esm.Enums.DynamicOperatorType.SUBTRACT)
1056
1051
  }, esm.Enums.DynamicOperatorType.SUBTRACT.toString().toUpperCase())), /*#__PURE__*/react.createElement("div", {
1057
1052
  className: "mt-2 w-full"
1058
- }, /*#__PURE__*/react.createElement(ui_next_src/* DoubleSlider */.Jg, {
1059
- min: 0,
1060
- max: framesLength - 1,
1061
- step: 1,
1062
- defaultValue: sliderRangeValues,
1063
- onValueChange: handleSliderChange,
1064
- formatLabel: formatLabel,
1065
- className: "w-full"
1066
- })), /*#__PURE__*/react.createElement(ui_src/* Button */.$n, {
1053
+ }, /*#__PURE__*/react.createElement(ui_next_src/* Numeric */.ew.Container, {
1054
+ mode: "doubleRange",
1055
+ min: 1,
1056
+ max: numDimensionGroups,
1057
+ values: rangeValues,
1058
+ onChange: onDoubleRangeChange
1059
+ }, /*#__PURE__*/react.createElement(ui_next_src/* Numeric */.ew.DoubleRange, {
1060
+ showNumberInputs: true
1061
+ }))), /*#__PURE__*/react.createElement(ui_src/* Button */.$n, {
1067
1062
  className: "mt-2 !h-[26px] !w-[115px] self-start !p-0",
1068
1063
  onClick: () => {
1069
1064
  onGenerate(computeViewMode);
@@ -1071,16 +1066,16 @@ const DynamicVolumeControls = ({
1071
1066
  }, "Generate"))));
1072
1067
  };
1073
1068
  /* harmony default export */ const panels_DynamicVolumeControls = (DynamicVolumeControls);
1074
- function FrameControls({
1069
+ function DimensionGroupControls({
1075
1070
  isPlaying,
1076
1071
  onPlayPauseChange,
1077
1072
  fps,
1078
1073
  minFps,
1079
1074
  maxFps,
1080
1075
  onFpsChange,
1081
- framesLength,
1082
- onFrameChange,
1083
- currentFrameIndex,
1076
+ numDimensionGroups,
1077
+ onDimensionGroupChange,
1078
+ currentDimensionGroupNumber,
1084
1079
  computedView
1085
1080
  }) {
1086
1081
  const getPlayPauseIconName = () => isPlaying ? 'icon-pause' : 'icon-play';
@@ -1088,21 +1083,22 @@ function FrameControls({
1088
1083
  className: computedView && 'ohif-disabled'
1089
1084
  }, /*#__PURE__*/react.createElement(Header, {
1090
1085
  title: "4D Controls",
1091
- tooltip: /*#__PURE__*/react.createElement("div", null, "Play/Pause Button: Begin or pause the animation of the 4D visualization. ", /*#__PURE__*/react.createElement("br", null), " Frame Selector: Navigate through individual frames of the 4D data. ", /*#__PURE__*/react.createElement("br", null), " FPS (Frames Per Second) Selector: Adjust the playback speed of the animation.")
1086
+ tooltip: /*#__PURE__*/react.createElement("div", null, "Play/Pause Button: Begin or pause the animation of the 4D visualization. ", /*#__PURE__*/react.createElement("br", null), "Dimension Group Selector: Navigate through individual dimension groups of the 4D data.", ' ', /*#__PURE__*/react.createElement("br", null), "FPS (Frames Per Second) Selector: Adjust the playback speed of the animation.")
1092
1087
  }), /*#__PURE__*/react.createElement("div", {
1093
1088
  className: "mt-3 flex justify-between"
1094
1089
  }, /*#__PURE__*/react.createElement(ui_src/* IconButton */.K0, {
1090
+ id: "play-pause-button",
1095
1091
  className: "bg-customblue-30 h-[26px] w-[58px] rounded-[4px]",
1096
1092
  onClick: () => onPlayPauseChange(!isPlaying)
1097
1093
  }, /*#__PURE__*/react.createElement(ui_next_src/* Icons */.FI.ByName, {
1098
1094
  name: getPlayPauseIconName(),
1099
1095
  className: "active:text-primary-light hover:bg-customblue-300 h-[24px] w-[24px] cursor-pointer text-white"
1100
1096
  })), /*#__PURE__*/react.createElement(ui_src/* InputNumber */.YI, _extends({
1101
- value: currentFrameIndex,
1102
- onChange: onFrameChange,
1103
- minValue: 0,
1104
- maxValue: framesLength - 1,
1105
- label: "Frame"
1097
+ value: currentDimensionGroupNumber,
1098
+ onChange: onDimensionGroupChange,
1099
+ minValue: 1,
1100
+ maxValue: numDimensionGroups,
1101
+ label: "Group"
1106
1102
  }, controlClassNames)), /*#__PURE__*/react.createElement(ui_src/* InputNumber */.YI, _extends({
1107
1103
  value: fps,
1108
1104
  onChange: onFpsChange,
@@ -1137,13 +1133,12 @@ function PanelGenerateImage({
1137
1133
  }] = (0,ui_next_src/* useViewportGrid */.ih)();
1138
1134
 
1139
1135
  //
1140
- const [timePointsRange, setTimePointsRange] = (0,react.useState)([0, 0]);
1141
- const [timePointsRangeToUseForGenerate, setTimePointsRangeToUseForGenerate] = (0,react.useState)([0, 0]);
1136
+ const [dimensionGroupRange, setDimensionGroupRange] = (0,react.useState)([1, 1]);
1142
1137
  const [computedDisplaySet, setComputedDisplaySet] = (0,react.useState)(null);
1143
1138
  const [dynamicVolume, setDynamicVolume] = (0,react.useState)(null);
1144
1139
  const [frameRate, setFrameRate] = (0,react.useState)(20);
1145
1140
  const [isPlaying, setIsPlaying] = (0,react.useState)(isCineEnabled);
1146
- const [timePointRendered, setTimePointRendered] = (0,react.useState)(null);
1141
+ const [dimensionGroupNumberRendered, setDimensionGroupNumberRendered] = (0,react.useState)(null);
1147
1142
  const [displayingComputed, setDisplayingComputed] = (0,react.useState)(false);
1148
1143
 
1149
1144
  //
@@ -1158,9 +1153,8 @@ function PanelGenerateImage({
1158
1153
  if (volumeData.volume?.isDynamicVolume()) {
1159
1154
  setDynamicVolume(volumeData.volume);
1160
1155
  uuidDynamicVolume.current = volumeData.displaySetInstanceUID;
1161
- const newRange = [1, volumeData.volume.numTimePoints];
1162
- setTimePointsRange(newRange);
1163
- setTimePointsRangeToUseForGenerate(newRange);
1156
+ const newRange = [1, volumeData.volume.numDimensionGroups];
1157
+ setDimensionGroupRange(newRange);
1164
1158
  }
1165
1159
  });
1166
1160
  };
@@ -1179,15 +1173,15 @@ function PanelGenerateImage({
1179
1173
  };
1180
1174
  }, [cornerstoneViewportService, cineService, servicesManager.services.cineService]);
1181
1175
  (0,react.useEffect)(() => {
1182
- const evt = esm.Enums.Events.DYNAMIC_VOLUME_TIME_POINT_INDEX_CHANGED;
1176
+ const evt = esm.Enums.Events.DYNAMIC_VOLUME_DIMENSION_GROUP_CHANGED;
1183
1177
  const callback = evt => {
1184
- setTimePointRendered(evt.detail.timePointIndex);
1178
+ setDimensionGroupNumberRendered(evt.detail.dimensionGroupNumber);
1185
1179
  };
1186
1180
  esm.eventTarget.addEventListener(evt, callback);
1187
1181
  return () => {
1188
1182
  esm.eventTarget.removeEventListener(evt, callback);
1189
1183
  };
1190
- }, [cornerstoneViewportService]);
1184
+ }, []);
1191
1185
  (0,react.useEffect)(() => {
1192
1186
  const displaySetUIDs = viewportGridService.getDisplaySetsUIDsForViewport(activeViewportId);
1193
1187
  if (!displaySetUIDs?.length) {
@@ -1204,9 +1198,7 @@ function PanelGenerateImage({
1204
1198
  }
1205
1199
  setDynamicVolume(dynamicVolume);
1206
1200
  uuidDynamicVolume.current = dynamicVolumeDisplaySet.displaySetInstanceUID;
1207
- const newRange = [1, dynamicVolume.numTimePoints];
1208
- setTimePointsRange(newRange);
1209
- setTimePointsRangeToUseForGenerate(newRange);
1201
+ setDimensionGroupRange([1, dynamicVolume.numDimensionGroups]);
1210
1202
  }, [activeViewportId, viewportGridService, displaySetService, cornerstoneViewportService, cineService]);
1211
1203
  function renderGeneratedImage(displaySet) {
1212
1204
  commandsManager.runCommand('swapDynamicWithComputedDisplaySet', {
@@ -1231,12 +1223,13 @@ function PanelGenerateImage({
1231
1223
  volumeId: computedVolumeId
1232
1224
  });
1233
1225
  }
1234
- const [start, end] = timePointsRangeToUseForGenerate;
1226
+ const [start, end] = dimensionGroupRange;
1227
+ // from start to end, with steps of 1
1235
1228
  const frameNumbers = Array.from({
1236
1229
  length: end - start + 1
1237
- }, (_, i) => i + start - 1);
1230
+ }, (_, i) => start + i);
1238
1231
  const options = {
1239
- frameNumbers: operationName === 'SUBTRACT' ? [start, end - 1] : frameNumbers,
1232
+ dimensionGroupNumbers: operationName === 'SUBTRACT' ? [start, end] : frameNumbers,
1240
1233
  targetVolume: computedVolume
1241
1234
  };
1242
1235
  dist_esm.utilities.dynamicVolume.updateVolumeFromTimeData(dynamicVolume, operationName, options);
@@ -1297,28 +1290,22 @@ function PanelGenerateImage({
1297
1290
  handleStop();
1298
1291
  handlePlay();
1299
1292
  };
1300
- function handleSliderChange(newValues) {
1301
- if (newValues[0] === timePointsRangeToUseForGenerate[0] && newValues[1] === timePointsRangeToUseForGenerate[1]) {
1302
- return;
1303
- }
1304
- setTimePointsRangeToUseForGenerate(newValues);
1305
- }
1306
1293
  return /*#__PURE__*/react.createElement(panels_DynamicVolumeControls, {
1307
1294
  fps: frameRate,
1308
1295
  isPlaying: isPlaying,
1309
1296
  onPlayPauseChange: onPlayPauseChange,
1310
1297
  minFps: 1,
1311
1298
  maxFps: 50,
1312
- currentFrameIndex: timePointRendered,
1313
1299
  onFpsChange: handleSetFrameRate,
1314
- framesLength: timePointsRange[1],
1315
- onFrameChange: timePointIndex => {
1316
- dynamicVolume.timePointIndex = timePointIndex;
1300
+ currentDimensionGroupNumber: dimensionGroupNumberRendered,
1301
+ numDimensionGroups: dynamicVolume?.numDimensionGroups || 1,
1302
+ onDimensionGroupChange: dimensionGroupNumber => {
1303
+ dynamicVolume.dimensionGroupNumber = dimensionGroupNumber;
1317
1304
  },
1318
1305
  onGenerate: onGenerateImage,
1319
1306
  onDynamicClick: displayingComputed ? () => renderDynamicImage(computedDisplaySet) : null,
1320
- onDoubleRangeChange: handleSliderChange,
1321
- initialRangeValues: timePointsRangeToUseForGenerate
1307
+ onDoubleRangeChange: setDimensionGroupRange,
1308
+ rangeValues: dimensionGroupRange
1322
1309
  });
1323
1310
  }
1324
1311
  ;// CONCATENATED MODULE: ../../../extensions/cornerstone-dynamic-volume/src/panels/DynamicDataPanel.tsx