hellfire 0.30.3 → 0.30.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,10 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
4
4
 
5
+ ## [0.30.4](http://10.16.100.57/diffusion/115/paladin/compare/v0.30.3...v0.30.4) (2025-07-28)
6
+
7
+
8
+
5
9
  ## [0.30.3](http://10.16.100.57/diffusion/115/paladin/compare/v0.30.2...v0.30.3) (2025-07-18)
6
10
 
7
11
 
package/dist/index.js CHANGED
@@ -999,6 +999,7 @@ var initActiveTool = isMobile ? 'StackScroll' : 'Wwwc';
999
999
  var initialState$1 = {
1000
1000
  activeTool: initActiveTool,
1001
1001
  originActiveTool: initActiveTool,
1002
+ originNo3DActiveTool: initActiveTool,
1002
1003
  mipActiveTool: 'MipWWWc',
1003
1004
  // seriesMode序列模式 imageMode图像模式 allImageMode全部模式
1004
1005
  mode: 'seriesMode',
@@ -10609,13 +10610,13 @@ function addTaskPool(series) {
10609
10610
  });
10610
10611
  }
10611
10612
 
10612
- function changePriorityBySeries(seriesInstanceUID) {
10613
+ function changePriorityBySeries(seriesInstanceUID, series) {
10613
10614
  if (lastScrollSeriesUid && lastScrollSeriesUid === seriesInstanceUID) {
10614
10615
  return;
10615
10616
  }
10616
10617
 
10617
10618
  lastScrollSeriesUid = seriesInstanceUID;
10618
- var index = 0;
10619
+ var index = 0; // taskPool中有内容 优先级改变
10619
10620
 
10620
10621
  if (taskPool && taskPool.length > 1) {
10621
10622
  lodash$1.forEachRight(taskPool, function (task) {
@@ -10627,6 +10628,20 @@ function changePriorityBySeries(seriesInstanceUID) {
10627
10628
  });
10628
10629
  changeCurrentTopPriority(index);
10629
10630
  executeSpecificTask();
10631
+ } else {
10632
+ // taskPool中无内容 + cache达到max + 序列第一张不在cache中 重新加载整个序列
10633
+ var cacheInfo = cornerstone.imageCache.getCacheInfo();
10634
+ var maximumSizeInBytes = cacheInfo.maximumSizeInBytes,
10635
+ cacheSizeInBytes = cacheInfo.cacheSizeInBytes;
10636
+
10637
+ if (series && cacheSizeInBytes > maximumSizeInBytes * 0.99) {
10638
+ var firstImageId = series.imageIds[0];
10639
+ var imageLoadObject = cornerstone.imageCache.getImageLoadObject(firstImageId);
10640
+
10641
+ if (!imageLoadObject) {
10642
+ addTaskPool([series]);
10643
+ }
10644
+ }
10630
10645
  }
10631
10646
  }
10632
10647
 
@@ -13326,8 +13341,10 @@ var ImageProcessorWorkerBase = /*#__PURE__*/function () {
13326
13341
  }, {
13327
13342
  key: "getProperSpaceBetweenSlice",
13328
13343
  value: function getProperSpaceBetweenSlice(models) {
13329
- var first = models[0];
13330
- var next = models[1];
13344
+ // 取中间的两张来计算
13345
+ var center_index = Math.floor(models.length / 2);
13346
+ var first = models[center_index];
13347
+ var next = models[center_index + 1];
13331
13348
  var sliceCount = Math.max(1, Math.abs(next.instanceNum - first.instanceNum));
13332
13349
  return computeDistance(first.position, next.position) / sliceCount;
13333
13350
  }
@@ -44901,13 +44918,17 @@ var mapStateToProps$c = function mapStateToProps(state) {
44901
44918
  CPR = _state$paladin$tools$.CPR,
44902
44919
  MPR = _state$paladin$tools$.MPR,
44903
44920
  MIP = _state$paladin$tools$.MIP,
44904
- VR = _state$paladin$tools$.VR;
44921
+ VR = _state$paladin$tools$.VR,
44922
+ activeTool = _state$paladin$tools$.activeTool,
44923
+ originNo3DActiveTool = _state$paladin$tools$.originNo3DActiveTool;
44905
44924
  return {
44906
44925
  currentSeries: currentSeries,
44907
44926
  CPR: CPR,
44908
44927
  MPR: MPR,
44909
44928
  MIP: MIP,
44910
- VR: VR
44929
+ VR: VR,
44930
+ activeTool: activeTool,
44931
+ originNo3DActiveTool: originNo3DActiveTool
44911
44932
  };
44912
44933
  };
44913
44934
 
@@ -44919,6 +44940,16 @@ var mergeProps$c = function mergeProps(propsFromState, propsFromDispatch, ownPro
44919
44940
  VR = propsFromState.VR;
44920
44941
  return _objectSpread$B(_objectSpread$B(_objectSpread$B({}, ownProps), propsFromState), {}, {
44921
44942
  start3D: function start3D(key) {
44943
+ var isThree = MPR || VR || MIP || CPR;
44944
+
44945
+ if (!isThree) {
44946
+ // 从二维进入三维要存一下当前激活工具
44947
+ propsFromDispatch.setActionStateByKey({
44948
+ key: 'originNo3DActiveTool',
44949
+ value: propsFromState.activeTool
44950
+ });
44951
+ }
44952
+
44922
44953
  reset();
44923
44954
  Modal.create( /*#__PURE__*/React__default.createElement(ThreeDLoadingModal, {
44924
44955
  currentSeries: currentSeries,
@@ -44968,7 +44999,7 @@ var mergeProps$c = function mergeProps(propsFromState, propsFromDispatch, ownPro
44968
44999
  },
44969
45000
  exit3D: function exit3D(key) {
44970
45001
  // 退出mpr 激活调窗
44971
- propsFromDispatch.setActiveTool('Wwwc');
45002
+ propsFromDispatch.setActiveTool(propsFromState.originNo3DActiveTool || 'Wwwc');
44972
45003
 
44973
45004
  if (key === 'Surgery') {
44974
45005
  propsFromDispatch.activeDicomFunction('Surgery');
@@ -45002,7 +45033,8 @@ var mergeProps$c = function mergeProps(propsFromState, propsFromDispatch, ownPro
45002
45033
  var ConnectedImageProcessTabTool = reactRedux.connect(mapStateToProps$c, {
45003
45034
  setActiveTool: setActiveTool,
45004
45035
  activeDicomFunction: activeDicomFunction,
45005
- switchMprPerspective: switchMprPerspective
45036
+ switchMprPerspective: switchMprPerspective,
45037
+ setActionStateByKey: setActionStateByKey
45006
45038
  }, mergeProps$c)(ImageProcessTabTool);
45007
45039
 
45008
45040
  var css_248z$k = ".paladin-reference-tool {\n display: flex;\n flex-direction: column;\n box-sizing: border-box;\n flex: 1;\n color: #b0b0b0;\n font-size: 12px;\n text-align: center;\n cursor: pointer;\n padding-left: 20px;\n border: 1px solid #5b5b5b;\n border-right: none;\n}\n.paladin-reference-tool:hover {\n color: #fff;\n}\n.paladin-reference-tool-active {\n color: #fff;\n background: #0d5075;\n}\n.paladin-reference-tool-more {\n padding: 0 7px;\n height: 100%;\n}\n.paladin-reference-tool-more svg {\n width: 7px !important;\n color: #c0c0c0;\n}\n.paladin-reference-tool-more:hover {\n background: #53585f;\n}\n.paladin-reference-tool-menu {\n background: #fff;\n}\n.paladin-reference-tool-menu div {\n padding: 3px 25px;\n font-size: 14px;\n color: #53585f;\n cursor: pointer;\n white-space: nowrap;\n}\n.paladin-reference-tool-menu div:hover {\n color: #fff;\n background: #777777;\n}\n.paladin-reference-tool-menu .paladin-reference-tool-menu-match {\n color: #fff;\n background: #7f8592;\n}\n";
@@ -50066,7 +50098,8 @@ var mapStateToProps$p = function mapStateToProps(state) {
50066
50098
  keyImages = _state$paladin$tools$3.keyImages,
50067
50099
  displayShutter = _state$paladin$tools$3.displayShutter,
50068
50100
  Fusion = _state$paladin$tools$3.Fusion,
50069
- showFilmPrinterEntrance = _state$paladin$tools$3.showFilmPrinterEntrance;
50101
+ showFilmPrinterEntrance = _state$paladin$tools$3.showFilmPrinterEntrance,
50102
+ originNo3DActiveTool = _state$paladin$tools$3.originNo3DActiveTool;
50070
50103
  var isMobile = ua.isDeviceTypeMobile();
50071
50104
  var _state$paladin$viewpo = state.paladin.viewport,
50072
50105
  activeIndex = _state$paladin$viewpo.activeIndex,
@@ -50191,7 +50224,8 @@ var mapStateToProps$p = function mapStateToProps(state) {
50191
50224
  fusionPetColorMap: fusionPetColorMap,
50192
50225
  fusionPetSUV: fusionPetSUV,
50193
50226
  showFilmPrinterEntrance: showFilmPrinterEntrance,
50194
- language: language
50227
+ language: language,
50228
+ originNo3DActiveTool: originNo3DActiveTool
50195
50229
  };
50196
50230
  };
50197
50231
 
@@ -50518,6 +50552,16 @@ var mergeProps$p = function mergeProps(propsFromState, propsFromDispatch, ownPro
50518
50552
  // scroll重置、激活十字定位线、重置mpr视角
50519
50553
  // 先校验mpr是否可以加载 通过后再进入mpr、vr界面、手术路径规划
50520
50554
  start3D: function start3D(key) {
50555
+ var isThree = MPR || VR || MIP || CPR;
50556
+
50557
+ if (!isThree) {
50558
+ // 从二维进入三维要存一下当前激活工具
50559
+ propsFromDispatch.setActionStateByKey({
50560
+ key: 'originNo3DActiveTool',
50561
+ value: propsFromState.activeTool
50562
+ });
50563
+ }
50564
+
50521
50565
  reset();
50522
50566
  Modal.create( /*#__PURE__*/React__default.createElement(ThreeDLoadingModal, {
50523
50567
  currentSeries: currentSeries,
@@ -50566,8 +50610,8 @@ var mergeProps$p = function mergeProps(propsFromState, propsFromDispatch, ownPro
50566
50610
  });
50567
50611
  },
50568
50612
  exit3D: function exit3D(key) {
50569
- // 退出mpr 激活调窗
50570
- propsFromDispatch.setActiveTool('Wwwc');
50613
+ // 退出mpr
50614
+ propsFromDispatch.setActiveTool(propsFromState.originNo3DActiveTool || 'Wwwc');
50571
50615
 
50572
50616
  if (key === 'Surgery') {
50573
50617
  propsFromDispatch.activeDicomFunction('Surgery');
@@ -51405,7 +51449,8 @@ var ConnectedDicomTool = reactRedux.connect(mapStateToProps$p, {
51405
51449
  closeGlobalLoading: closeGlobalLoading,
51406
51450
  toggleDisplayShutter: toggleDisplayShutter,
51407
51451
  setFusionReduxValue: setFusionReduxValue,
51408
- toggleFilmPrinterEntrance: toggleFilmPrinterEntrance
51452
+ toggleFilmPrinterEntrance: toggleFilmPrinterEntrance,
51453
+ setActionStateByKey: setActionStateByKey
51409
51454
  }, mergeProps$p)(DicomTool);
51410
51455
 
51411
51456
  function _extends$1u() { _extends$1u = Object.assign || 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$1u.apply(this, arguments); }
@@ -53982,6 +54027,7 @@ var DicomViewport = /*#__PURE__*/function (_Component) {
53982
54027
  });
53983
54028
 
53984
54029
  defineProperty(assertThisInitialized(_this), "onContextMenu", function (event) {
54030
+ _this.props.onContextMenu && _this.props.onContextMenu(event);
53985
54031
  event.preventDefault();
53986
54032
  });
53987
54033
 
@@ -55787,6 +55833,52 @@ var DicomLayout = /*#__PURE__*/function (_Component) {
55787
55833
  _this.props.changeTaskPoolPriority && _this.props.changeTaskPoolPriority(seriesInstanceUID);
55788
55834
  });
55789
55835
 
55836
+ defineProperty(assertThisInitialized(_this), "handleContextMenu", function (e, index) {
55837
+ e.persist();
55838
+
55839
+ if (isMobile$4) {
55840
+ return;
55841
+ }
55842
+
55843
+ var currentTime = new Date().getTime();
55844
+ var timeSinceLastClick = currentTime - _this.lastRightClickTime;
55845
+
55846
+ if (timeSinceLastClick < 500) {
55847
+ var series = _this.props.series;
55848
+ var selectEle = getElement(index);
55849
+ var toolData = cornerstoneTools.getToolState(selectEle, 'ArrowAnnotate');
55850
+ var active = false;
55851
+
55852
+ if (toolData && toolData.data && toolData.data.length > 0) {
55853
+ var _iterator = _createForOfIteratorHelper$c(toolData.data),
55854
+ _step;
55855
+
55856
+ try {
55857
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
55858
+ var handler = _step.value;
55859
+
55860
+ if (handler && handler.active) {
55861
+ active = true;
55862
+ return;
55863
+ }
55864
+ }
55865
+ } catch (err) {
55866
+ _iterator.e(err);
55867
+ } finally {
55868
+ _iterator.f();
55869
+ }
55870
+ }
55871
+
55872
+ if (!active) {
55873
+ _this.props.onViewPortDoubleClick && _this.props.onViewPortDoubleClick(index, series[index]);
55874
+ }
55875
+
55876
+ _this.lastRightClickTime = 0;
55877
+ } else {
55878
+ _this.lastRightClickTime = currentTime;
55879
+ }
55880
+ });
55881
+
55790
55882
  defineProperty(assertThisInitialized(_this), "handleViewPortClick", function (e, index) {
55791
55883
  e.persist();
55792
55884
  var _this$props3 = _this.props,
@@ -55835,12 +55927,12 @@ var DicomLayout = /*#__PURE__*/function (_Component) {
55835
55927
  var active = false;
55836
55928
 
55837
55929
  if (toolData && toolData.data && toolData.data.length > 0) {
55838
- var _iterator = _createForOfIteratorHelper$c(toolData.data),
55839
- _step;
55930
+ var _iterator2 = _createForOfIteratorHelper$c(toolData.data),
55931
+ _step2;
55840
55932
 
55841
55933
  try {
55842
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
55843
- var handler = _step.value;
55934
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
55935
+ var handler = _step2.value;
55844
55936
 
55845
55937
  if (handler && handler.active) {
55846
55938
  active = true;
@@ -55848,9 +55940,9 @@ var DicomLayout = /*#__PURE__*/function (_Component) {
55848
55940
  }
55849
55941
  }
55850
55942
  } catch (err) {
55851
- _iterator.e(err);
55943
+ _iterator2.e(err);
55852
55944
  } finally {
55853
- _iterator.f();
55945
+ _iterator2.f();
55854
55946
  }
55855
55947
  }
55856
55948
 
@@ -55867,6 +55959,8 @@ var DicomLayout = /*#__PURE__*/function (_Component) {
55867
55959
 
55868
55960
  _this.clickCount = 0; // 点击次数 判断单双击
55869
55961
 
55962
+ _this.lastRightClickTime = 0; // 右键
55963
+
55870
55964
  _this.clientX = 0; // 上一次点击的记录
55871
55965
 
55872
55966
  _this.clientY = 0; // 上一次点击的记录
@@ -55976,6 +56070,9 @@ var DicomLayout = /*#__PURE__*/function (_Component) {
55976
56070
  onClick: function onClick(e) {
55977
56071
  _this2.handleViewPortClick(e, index);
55978
56072
  },
56073
+ onContextMenu: function onContextMenu(e) {
56074
+ _this2.handleContextMenu(e, index);
56075
+ },
55979
56076
  onMouseWheel: _this2.onMouseWheel,
55980
56077
  handleCtrlSelect: handleCtrlSelect,
55981
56078
  setViewportState: handleViewportState,
@@ -56201,7 +56298,11 @@ var mergeProps$r = function mergeProps(propsFromState, propsFromDispatch, ownPro
56201
56298
  },
56202
56299
  // 滚动的捕获 触发task-pool的排序
56203
56300
  changeTaskPoolPriority: function changeTaskPoolPriority(uid) {
56204
- changePriorityBySeries(uid);
56301
+ var series = ownProps.series;
56302
+ var selectSeries = lodash$1.find(series, {
56303
+ seriesInstanceUID: uid
56304
+ });
56305
+ changePriorityBySeries(uid, selectSeries);
56205
56306
  },
56206
56307
  // 主界面垂直滚动 修改scrollLine 和 current
56207
56308
  customScrollPan: function customScrollPan(value) {