hellfire 0.23.0 → 0.23.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -107,7 +107,7 @@ var tools = ['Layout', 'PrevNext', 'ImageMode', 'StackScroll', 'Wwwc', 'Zoom', '
107
107
  var phoneTools = ["Prev", "Next", "StackScroll", "Wwwc", "Zoom", "Pan", "Reset", "Rotate", "Tool", "Length", "Cine", "MPR", "Settings"]; // MPR 允许使用的工具, 及其排序
108
108
 
109
109
  var mprTools = ["MprExit", "PrevNext", "MprSwitchPerspective", "CrosshairsMPR", "StackScroll", "Wwwc", "Zoom", "Pan", "Reset", "Rotate", "Tool", "Length", "Fullscreen", "MprRefresh"];
110
- var mprPhoneTools = ["MprExit", "Prev", "Next", "MprSwitchPerspective", "CrosshairsMPR", "StackScroll", "Wwwc", "Zoom", "Pan", "Reset", "Rotate", "Tool", "Length", "MprRefresh"]; // VR 允许使用的工具, 及其排序
110
+ var mprPhoneTools = ["MprExit", "StackScroll", "MprSwitchPerspective", "CrosshairsMPR", "Wwwc", "Zoom", "Pan", "Reset", "Rotate", "Tool", "Length", "MprRefresh"]; // VR 允许使用的工具, 及其排序
111
111
 
112
112
  var vrTools = ["MprExit", "PrevNext", "VRMode", "VRPresentColor", "VRCenterPointShow", "VRDirection", "VRClip", "VRRefresh", "VRInfo", "MprSwitchPerspective", "CrosshairsMPR", "StackScroll", "Wwwc", "Zoom", "Pan", "Reset", "Rotate", "Tool", "Length", "Fullscreen", "MprRefresh"];
113
113
  var vrPhoneTools = ["MprExit", "VRMode", "VRPresentColor", "VRCenterPointShow", "VRDirection", "VRClip", "VRInfo", "Prev", "Next", "MprSwitchPerspective", "CrosshairsMPR", "StackScroll", "Wwwc", "Zoom", "Pan", "Reset", "Rotate", "Tool", "Length", "MprRefresh"];
@@ -11291,10 +11291,12 @@ var errorCache = {}; // 出错的task集合
11291
11291
 
11292
11292
  var currentTopPriority = 1; // 当前最高的优先级(除了及时触发的)
11293
11293
 
11294
+ var clearCacheEveryLoad = false; // multi-frame的图像需要每次都清cache 不然一直会报错:frame exceeds size of pixelData
11295
+
11294
11296
  function initConfig(config) {
11295
- console.log('Init Config');
11296
11297
  maxRequest = config.maxRequest || maxRequest;
11297
- retry = config.retry || retry;
11298
+ retry = config.retry || (config.retry === 0 ? 0 : retry);
11299
+ clearCacheEveryLoad = config.clearCacheEveryLoad;
11298
11300
  executeCallback = config.executeCallback || null;
11299
11301
  }
11300
11302
 
@@ -11354,6 +11356,11 @@ function addTaskIntoPool(task) {
11354
11356
  function executeTask() {
11355
11357
  if (taskPool.length > 0) {
11356
11358
  sortTaskPool();
11359
+
11360
+ if (clearCacheEveryLoad) {
11361
+ cornerstoneWADOImageLoader.wadouri.dataSetCacheManager.purge();
11362
+ }
11363
+
11357
11364
  var executeRequest = maxRequest - numRequest;
11358
11365
 
11359
11366
  if (executeRequest > 0) {
@@ -11471,6 +11478,7 @@ function changeCurrentTopPriority(value) {
11471
11478
  reactHotLoader.register(cachedTask, "cachedTask", "/Users/huyeqing/workspace/chainz/paladin/src/cornerstone-plus/cornerstone-request-image/task-helper/index.js");
11472
11479
  reactHotLoader.register(errorCache, "errorCache", "/Users/huyeqing/workspace/chainz/paladin/src/cornerstone-plus/cornerstone-request-image/task-helper/index.js");
11473
11480
  reactHotLoader.register(currentTopPriority, "currentTopPriority", "/Users/huyeqing/workspace/chainz/paladin/src/cornerstone-plus/cornerstone-request-image/task-helper/index.js");
11481
+ reactHotLoader.register(clearCacheEveryLoad, "clearCacheEveryLoad", "/Users/huyeqing/workspace/chainz/paladin/src/cornerstone-plus/cornerstone-request-image/task-helper/index.js");
11474
11482
  reactHotLoader.register(initConfig, "initConfig", "/Users/huyeqing/workspace/chainz/paladin/src/cornerstone-plus/cornerstone-request-image/task-helper/index.js");
11475
11483
  reactHotLoader.register(clear, "clear", "/Users/huyeqing/workspace/chainz/paladin/src/cornerstone-plus/cornerstone-request-image/task-helper/index.js");
11476
11484
  reactHotLoader.register(addTaskIntoPool, "addTaskIntoPool", "/Users/huyeqing/workspace/chainz/paladin/src/cornerstone-plus/cornerstone-request-image/task-helper/index.js");
@@ -24680,7 +24688,7 @@ var CprImageProcessorWorkerImpl = /*#__PURE__*/function (_ImageProcessorWorker)
24680
24688
 
24681
24689
  var v = lodash$1.flattenDeep(_resultValues);
24682
24690
 
24683
- var __resultValues = new Uint16Array(v);
24691
+ var __resultValues = new Int16Array(v);
24684
24692
 
24685
24693
  var cprData = this.imageResultDatasMap[ImagePlanDirection.CPR];
24686
24694
  var _curvePoints = [];
@@ -24713,8 +24721,9 @@ var CprImageProcessorWorkerImpl = /*#__PURE__*/function (_ImageProcessorWorker)
24713
24721
  windowWidth: coronalData.windowLevel,
24714
24722
  sizeInBytes: coronalData.imageHeight * width,
24715
24723
  color: false,
24724
+ invert: false,
24716
24725
  intercept: coronalData.intercept,
24717
- minPixelValue: minPixelValue < 0 || !minPixelValue ? 0 : minPixelValue,
24726
+ minPixelValue: minPixelValue || 0,
24718
24727
  maxPixelValue: maxPixelValue || 0,
24719
24728
  curvePoints: _curvePoints
24720
24729
  };
@@ -27661,9 +27670,16 @@ var projectPatientPointToImagePlane = cornerstoneTools.importInternal('util/proj
27661
27670
 
27662
27671
  var _default$v = function _default(targetImagePlane, referenceImagePlane) {
27663
27672
  var points = planePlaneIntersection(targetImagePlane, referenceImagePlane);
27673
+ /**
27674
+ * 暂时hack
27675
+ */
27664
27676
 
27665
27677
  if (!points) {
27666
- return;
27678
+ points = planePlaneIntersection(referenceImagePlane, targetImagePlane);
27679
+
27680
+ if (!points) {
27681
+ return;
27682
+ }
27667
27683
  }
27668
27684
 
27669
27685
  return {
@@ -29969,23 +29985,23 @@ var __signature__$1K = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoa
29969
29985
  return a;
29970
29986
  };
29971
29987
 
29972
- function getActiveElement(mode, activeIndex, imageActiveIndex, MPR, mprActiveIndex, Surgery, surgeryActiveIndex) {
29988
+ function getActiveElement(mode, activeIndex, imageActiveIndex, MPR, mprActiveIndex, Surgery, surgeryActiveIndex, CPR) {
29973
29989
  // 1.序列模式
29974
29990
  // 2.图像模式
29975
29991
  // 3.mpr
29976
29992
  // 4.手术路径规划
29977
- var index = Surgery ? surgeryActiveIndex : MPR ? mprActiveIndex : mode === 'seriesMode' ? activeIndex : imageActiveIndex;
29993
+ var index = Surgery || CPR ? surgeryActiveIndex : MPR ? mprActiveIndex : mode === 'seriesMode' ? activeIndex : imageActiveIndex;
29978
29994
  return getElement(index);
29979
29995
  }
29980
29996
  function getElement(index) {
29981
29997
  return document.getElementById("paladin-viewport-".concat(index));
29982
29998
  }
29983
- function getRealActiveIndex(mode, activeIndex, imageActiveIndex, MPR, mprActiveIndex, Surgery, surgeryActiveIndex) {
29999
+ function getRealActiveIndex(mode, activeIndex, imageActiveIndex, MPR, mprActiveIndex, Surgery, surgeryActiveIndex, CPR) {
29984
30000
  // 1.序列模式
29985
30001
  // 2.图像模式
29986
30002
  // 3.mpr
29987
30003
  // 4.手术路径规划
29988
- return Surgery ? surgeryActiveIndex : MPR ? mprActiveIndex : mode === 'seriesMode' ? activeIndex : imageActiveIndex;
30004
+ return Surgery || CPR ? surgeryActiveIndex : MPR ? mprActiveIndex : mode === 'seriesMode' ? activeIndex : imageActiveIndex;
29989
30005
  }
29990
30006
 
29991
30007
  (function () {
@@ -30022,7 +30038,6 @@ var __signature__$1L = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoa
30022
30038
  return a;
30023
30039
  };
30024
30040
  var getNewContext$e = cornerstoneTools.importInternal('drawing/getNewContext');
30025
- var drawCircle$2 = cornerstoneTools.importInternal('drawing/drawCircle');
30026
30041
  var drawLines$3 = cornerstoneTools.importInternal('drawing/drawLines');
30027
30042
  var draw$c = cornerstoneTools.importInternal('drawing/draw');
30028
30043
  var throttle$8 = cornerstoneTools.importInternal('util/throttle');
@@ -30071,8 +30086,7 @@ var CPRTool = /*#__PURE__*/function (_BaseAnnotationPlusTo) {
30071
30086
  var image = eventData.image;
30072
30087
  var imagePlane = external$l.cornerstone.metaData.get('imagePlaneModule', image.imageId);
30073
30088
 
30074
- var v3 = this._imagePointToPatientPoint(eventData.currentPoints.image, imagePlane); // TODO 通知mpr路径改变 在这边通知还是在render通知?
30075
-
30089
+ var v3 = this._imagePointToPatientPoint(eventData.currentPoints.image, imagePlane);
30076
30090
 
30077
30091
  var toolData = getToolState$d(eventData.element, this.name);
30078
30092
  var data = toolData && toolData.data;
@@ -30252,7 +30266,6 @@ var CPRTool = /*#__PURE__*/function (_BaseAnnotationPlusTo) {
30252
30266
 
30253
30267
  draw$c(context, function (context) {
30254
30268
  var color = toolColors$c.getColorIfActive(data);
30255
- var handleRadius = 1.5 * devicePixelRatio$4;
30256
30269
 
30257
30270
  if (data.invalidated === true) {
30258
30271
  if (data.length) {
@@ -30262,10 +30275,15 @@ var CPRTool = /*#__PURE__*/function (_BaseAnnotationPlusTo) {
30262
30275
  }
30263
30276
  }
30264
30277
 
30265
- drawCircle$2(context, eventData.element, data.handles.end, handleRadius, {
30278
+ var drawHandlesOnHover = _this2.configuration.drawHandlesOnHover;
30279
+ var handleOptions = {
30266
30280
  color: color,
30267
- fillStyle: color
30268
- }); // 按直线绘制
30281
+ handleRadius: 1.5,
30282
+ activeRadius: 2,
30283
+ drawHandlesIfActive: drawHandlesOnHover,
30284
+ hideHandle: false
30285
+ };
30286
+ _default$d(context, eventData, data.handles, handleOptions); // 按直线绘制
30269
30287
 
30270
30288
  if (pointCount > 1 && i < pointCount - 1) {
30271
30289
  var nextPoint = toolData.data[i + 1];
@@ -30458,7 +30476,6 @@ var rollbackLastCprPoint = /*#__PURE__*/function () {
30458
30476
  }
30459
30477
 
30460
30478
  reactHotLoader.register(getNewContext$e, "getNewContext", "/Users/huyeqing/workspace/chainz/paladin/src/cornerstone-plus/cornerstone-tools-plus/CPRTool.js");
30461
- reactHotLoader.register(drawCircle$2, "drawCircle", "/Users/huyeqing/workspace/chainz/paladin/src/cornerstone-plus/cornerstone-tools-plus/CPRTool.js");
30462
30479
  reactHotLoader.register(drawLines$3, "drawLines", "/Users/huyeqing/workspace/chainz/paladin/src/cornerstone-plus/cornerstone-tools-plus/CPRTool.js");
30463
30480
  reactHotLoader.register(draw$c, "draw", "/Users/huyeqing/workspace/chainz/paladin/src/cornerstone-plus/cornerstone-tools-plus/CPRTool.js");
30464
30481
  reactHotLoader.register(throttle$8, "throttle", "/Users/huyeqing/workspace/chainz/paladin/src/cornerstone-plus/cornerstone-tools-plus/CPRTool.js");
@@ -30525,7 +30542,6 @@ var _default$x = function _default(element) {
30525
30542
  var __signature__$1N = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {
30526
30543
  return a;
30527
30544
  };
30528
- var scrollToIndex$1 = cornerstoneTools.importInternal('util/scrollToIndex');
30529
30545
  var getToolState$f = cornerstoneTools.getToolState;
30530
30546
  var globalCineTimer;
30531
30547
 
@@ -30559,7 +30575,7 @@ function startAutoCine(activeElement, options) {
30559
30575
  newImageIndex = max;
30560
30576
  }
30561
30577
 
30562
- scrollToIndex$1(activeElement, newImageIndex);
30578
+ cornerstoneTools.scrollToIndex(activeElement, newImageIndex);
30563
30579
  }, timeStap);
30564
30580
  }
30565
30581
 
@@ -30582,7 +30598,6 @@ var _default$y = {
30582
30598
  return;
30583
30599
  }
30584
30600
 
30585
- reactHotLoader.register(scrollToIndex$1, "scrollToIndex", "/Users/huyeqing/workspace/chainz/paladin/src/cornerstone-plus/cornerstone-tools-plus/custom/autoCine.js");
30586
30601
  reactHotLoader.register(getToolState$f, "getToolState", "/Users/huyeqing/workspace/chainz/paladin/src/cornerstone-plus/cornerstone-tools-plus/custom/autoCine.js");
30587
30602
  reactHotLoader.register(globalCineTimer, "globalCineTimer", "/Users/huyeqing/workspace/chainz/paladin/src/cornerstone-plus/cornerstone-tools-plus/custom/autoCine.js");
30588
30603
  reactHotLoader.register(startAutoCine, "startAutoCine", "/Users/huyeqing/workspace/chainz/paladin/src/cornerstone-plus/cornerstone-tools-plus/custom/autoCine.js");
@@ -34094,21 +34109,21 @@ var SvgViewMode = function SvgViewMode(props) {
34094
34109
 
34095
34110
  function _extends$9() { _extends$9 = 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$9.apply(this, arguments); }
34096
34111
 
34097
- var _ref$9 = /*#__PURE__*/React__default.createElement("path", {
34098
- d: "M1268.316 15.548c-.158-1.192-.454-2.755-1.319-4.251-.654-1.135-1.477-1.967-2.131-2.569-4.393-4.055-10.6-6.201-17.942-6.201-.975 0-1.95.036-2.925.105-7.508.538-13.932 2.817-19.093 6.775-4.827 3.702-8.632 9.073-11.007 15.545-2.036 5.539-2.796 11.126-2.265 16.603.153 1.587.459 3.439 1.582 5.138 1.104 1.666 2.643 2.648 3.862 3.317 4.153 2.287 9.047 3.448 14.558 3.448 1.4 0 2.868-.077 4.358-.225 7.571-.75 14.013-3.138 19.146-7.09 5.114-3.94 9.076-9.628 11.451-16.448 1.744-5.002 2.323-9.762 1.725-14.147zM1251.12 38.78a15.199 15.199 0 01-21.612.096c-5.993-5.984-6.041-15.736-.1-21.777a15.2 15.2 0 0121.612-.098c5.993 5.985 6.041 15.738.1 21.779z"
34099
- });
34100
-
34101
- var _ref2$4 = /*#__PURE__*/React__default.createElement("path", {
34102
- d: "M1246.838 33.752a8.56 8.56 0 00-.053-12.163c-.019-.021-.048-.036-.072-.057a4.5 4.5 0 01-1.023 1.618 4.519 4.519 0 01-6.428.029c-.985-.985-1.41-2.311-1.314-3.604-1.247.413-2.423 1.08-3.413 2.069a8.56 8.56 0 00.053 12.166c3.399 3.342 8.885 3.316 12.25-.058z"
34103
- });
34112
+ var _ref$9 = /*#__PURE__*/React__default.createElement("g", {
34113
+ "data-name": "\\u7EC4 3591"
34114
+ }, /*#__PURE__*/React__default.createElement("path", {
34115
+ "data-name": "\\u51CF\\u53BB 7",
34116
+ d: "M59 66H7a7.008 7.008 0 01-7-7V7a7.008 7.008 0 017-7h52a7.007 7.007 0 017 7v52a7.008 7.008 0 01-7 7zM33.216 16.889v32.9h11.039a18.177 18.177 0 005.628-.807 11.267 11.267 0 006.881-5.784 16.609 16.609 0 001.554-4.52 28.558 28.558 0 00.47-5.374 25.476 25.476 0 00-.795-6.651 15 15 0 00-2.483-5.148 10.8 10.8 0 00-4.53-3.422 17.39 17.39 0 00-6.725-1.193zm-15.472 3.735a5.907 5.907 0 014.05 1.41 4.757 4.757 0 011.59 3.719 6.74 6.74 0 01-.3 1.988 7.624 7.624 0 01-.915 1.916c-.412.629-.793 1.16-1.133 1.579s-.814.96-1.386 1.579L7.356 46.437v3.326h21.62V45.28H14.322v-.289l8.411-9.255c.894-1 1.465-1.636 1.8-2.013.346-.393.836-1.009 1.458-1.832a12.551 12.551 0 001.338-2.084 13.327 13.327 0 00.73-2.054A9.107 9.107 0 0028.4 25.3a8.339 8.339 0 00-2.916-6.52 11.155 11.155 0 00-7.62-2.567 12.381 12.381 0 00-4.627.832 9.124 9.124 0 00-3.362 2.229A10.039 10.039 0 007.9 22.42a9.932 9.932 0 00-.687 3.651v.241h4.772v-.265a5.272 5.272 0 011.565-3.844 5.665 5.665 0 014.194-1.579zM43.8 45.253h-5.618V21.396H43.8c3.279 0 5.772 1.008 7.411 2.995s2.471 5.01 2.471 8.984c0 4.046-.815 7.07-2.422 8.99s-4.121 2.888-7.46 2.888z",
34117
+ fill: "#fff"
34118
+ }));
34104
34119
 
34105
- var SvgBrowse = function SvgBrowse(props) {
34120
+ var Svg2D = function Svg2D(props) {
34106
34121
  return /*#__PURE__*/React__default.createElement("svg", _extends$9({
34107
- width: 60,
34108
- height: 56,
34109
- viewBox: "1210 0 60 56",
34122
+ width: 66,
34123
+ height: 66,
34124
+ viewBox: "0 0 66 66",
34110
34125
  fill: "currentColor"
34111
- }, props), _ref$9, _ref2$4);
34126
+ }, props), _ref$9);
34112
34127
  };
34113
34128
 
34114
34129
  function _extends$a() { _extends$a = 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$a.apply(this, arguments); }
@@ -34365,7 +34380,7 @@ var _ref$p = /*#__PURE__*/React__default.createElement("linearGradient", {
34365
34380
  stopColor: "#efefef"
34366
34381
  }));
34367
34382
 
34368
- var _ref2$5 = /*#__PURE__*/React__default.createElement("path", {
34383
+ var _ref2$4 = /*#__PURE__*/React__default.createElement("path", {
34369
34384
  fill: "url(#vr-color_svg__a)",
34370
34385
  stroke: "#FFF",
34371
34386
  strokeMiterlimit: 10,
@@ -34378,7 +34393,7 @@ var SvgVrColor = function SvgVrColor(props) {
34378
34393
  height: 283.46,
34379
34394
  viewBox: "0 0 283.46 283.46",
34380
34395
  fill: "currentColor"
34381
- }, props), _ref$p, _ref2$5);
34396
+ }, props), _ref$p, _ref2$4);
34382
34397
  };
34383
34398
 
34384
34399
  function _extends$q() { _extends$q = 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$q.apply(this, arguments); }
@@ -34387,7 +34402,7 @@ var _ref$q = /*#__PURE__*/React__default.createElement("path", {
34387
34402
  d: "M133.502 0h16.453v92.611h-16.453zM133.197 190.251h16.453v92.595h-16.453zM190.251 133.197h92.595v16.453h-92.595zM0 133.197h92.611v16.453H0z"
34388
34403
  });
34389
34404
 
34390
- var _ref2$6 = /*#__PURE__*/React__default.createElement("circle", {
34405
+ var _ref2$5 = /*#__PURE__*/React__default.createElement("circle", {
34391
34406
  cx: 141.425,
34392
34407
  cy: 141.428,
34393
34408
  r: 20.674
@@ -34399,7 +34414,7 @@ var SvgVrCenter = function SvgVrCenter(props) {
34399
34414
  height: 283.46,
34400
34415
  viewBox: "0 0 283.46 283.46",
34401
34416
  fill: "currentColor"
34402
- }, props), _ref$q, _ref2$6);
34417
+ }, props), _ref$q, _ref2$5);
34403
34418
  };
34404
34419
 
34405
34420
  function _extends$r() { _extends$r = 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$r.apply(this, arguments); }
@@ -34590,7 +34605,7 @@ var _ref$D = /*#__PURE__*/React__default.createElement("g", {
34590
34605
  d: "M99.399 127.359a3.315 3.315 0 01-.299-6.617c7.633-.705 12.489-1.345 12.521-1.35a3.304 3.304 0 013.723 2.851 3.32 3.32 0 01-2.851 3.723s-4.966.657-12.785 1.38a3.99 3.99 0 01-.309.013zM62.074 129.212c-4.903 0-9.61-.12-13.99-.354a3.313 3.313 0 01-3.133-3.486c.097-1.83 1.649-3.3 3.486-3.133 7.78.413 16.897.423 25.296.137 1.783-.127 3.367 1.367 3.427 3.198a3.312 3.312 0 01-3.198 3.427c-3.871.134-7.866.211-11.888.211zm-39.129-3.827c-.279 0-.563-.037-.844-.11-12.9-3.384-20.288-9.082-21.964-16.931a3.315 3.315 0 116.485-1.385c1.111 5.202 6.883 9.207 17.163 11.901a3.319 3.319 0 012.366 4.049 3.322 3.322 0 01-3.206 2.476zm-7.855-34.81a3.315 3.315 0 01-1.459-6.295c6.129-3.001 14.374-4.943 25.944-6.111 1.815-.217 3.447 1.141 3.631 2.963s-1.143 3.449-2.963 3.631c-10.766 1.088-18.294 2.829-23.698 5.474a3.313 3.313 0 01-1.455.338zm50.406-7.436a3.315 3.315 0 01-.179-6.624c10.036-.548 18.129-1.2 25.003-2.602a3.291 3.291 0 013.91 2.585 3.315 3.315 0 01-2.585 3.91c-7.269 1.484-15.637 2.164-25.964 2.727-.063.004-.125.004-.185.004zm45.714-15.945a3.28 3.28 0 01-.969-.147 3.314 3.314 0 01-2.201-4.139c.361-1.178.543-2.49.543-3.902l-.017-.752c-.244-5.713-2.886-10.208-8.074-13.731a3.315 3.315 0 113.726-5.484c6.945 4.717 10.636 11.089 10.972 18.936l.022 1.031c0 2.069-.279 4.034-.832 5.84a3.315 3.315 0 01-3.17 2.348zM78.246 37.193c-.152 0-.306-.01-.458-.03-5.967-.827-12.765-1.245-20.206-1.245-1.574.002-3.217.02-4.809.055-1.895-.085-3.347-1.414-3.387-3.242a3.316 3.316 0 013.242-3.387c1.636-.035 3.344-.017 4.953-.055 7.742 0 14.847.438 21.113 1.305a3.314 3.314 0 01-.448 6.599zM14.062 39.614a3.317 3.317 0 01-3.262-2.739 3.313 3.313 0 012.687-3.84c.207-.037 5.132-.901 12.815-1.798 1.795-.222 3.462 1.088 3.676 2.906a3.312 3.312 0 01-2.909 3.678c-7.471.874-12.379 1.733-12.429 1.743-.195.035-.389.05-.578.05z"
34591
34606
  }));
34592
34607
 
34593
- var _ref2$7 = /*#__PURE__*/React__default.createElement("path", {
34608
+ var _ref2$6 = /*#__PURE__*/React__default.createElement("path", {
34594
34609
  d: "M113.532 52.018c-14.885 0-27.065 11.908-27.065 26.794 0 5.142 1.624 10.014 4.06 14.073 0 .271.27.271.27.541 2.977 4.872 9.473 10.555 13.803 15.968 5.413 7.037 8.39 12.991 8.39 12.991s.271.271.541.271c.271 0 .541 0 .541-.271 0 0 2.436-5.684 7.578-11.909 4.601-5.683 11.909-11.908 14.615-16.78 0-.271.271-.271.271-.271 2.706-4.059 4.059-8.931 4.059-14.073.002-15.425-12.177-27.334-27.063-27.334zm-2.997 43.214v-6.43l3.562 1.837-3.562 4.593zm11.573-5.511l-11.573-3.674 11.573-13.777-15.133 13.777-8.903-3.674 28.486-15.614-4.45 22.962z"
34595
34610
  });
34596
34611
 
@@ -34605,7 +34620,7 @@ var SvgCentesisStart = function SvgCentesisStart(props) {
34605
34620
  height: 141.73,
34606
34621
  viewBox: "0 0 141.73 141.73",
34607
34622
  fill: "currentColor"
34608
- }, props), _ref$D, _ref2$7, _ref3);
34623
+ }, props), _ref$D, _ref2$6, _ref3);
34609
34624
  };
34610
34625
 
34611
34626
  function _extends$E() { _extends$E = 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$E.apply(this, arguments); }
@@ -34616,7 +34631,7 @@ var _ref$E = /*#__PURE__*/React__default.createElement("g", {
34616
34631
  d: "M92.757 138.338a2.696 2.696 0 01-.243-5.38c6.205-.573 10.151-1.093 10.177-1.097a2.686 2.686 0 013.027 2.318 2.7 2.7 0 01-2.318 3.027s-4.035.534-10.392 1.122a3.51 3.51 0 01-.251.01zM62.413 139.844c-3.986 0-7.813-.097-11.374-.287a2.693 2.693 0 01-2.547-2.834c.079-1.488 1.371-2.683 2.834-2.547 6.325.336 13.737.344 20.565.111 1.522-.103 2.735 1.111 2.786 2.6a2.692 2.692 0 01-2.6 2.786c-3.147.108-6.394.171-9.664.171zm-31.812-3.112c-.227 0-.458-.03-.686-.089-10.487-2.751-16.494-7.384-17.856-13.765a2.696 2.696 0 012.073-3.199 2.7 2.7 0 013.199 2.073c.903 4.229 5.596 7.485 13.953 9.675a2.698 2.698 0 01-.683 5.305zm-6.385-28.299a2.696 2.696 0 01-1.186-5.118c4.982-2.44 11.686-4.019 21.092-4.968 1.482-.176 2.804.927 2.952 2.409a2.692 2.692 0 01-2.409 2.952c-8.752.885-14.872 2.3-19.266 4.45a2.695 2.695 0 01-1.183.275zm40.981-6.043a2.695 2.695 0 01-.146-5.385c8.161-.445 14.739-.978 20.324-2.118a2.695 2.695 0 111.078 5.28c-5.906 1.207-12.708 1.761-21.106 2.219-.051.004-.102.004-.15.004zm37.16-12.965a2.696 2.696 0 01-2.578-3.484c.294-.958.441-2.025.441-3.172l-.012-.634c-.198-4.622-2.346-8.274-6.566-11.141a2.695 2.695 0 013.028-4.458c5.648 3.837 8.649 9.015 8.922 15.395l.016.838c0 1.682-.227 3.28-.676 4.748a2.692 2.692 0 01-2.575 1.908zm-26.799-24.39c-.123 0-.249-.008-.373-.024-4.851-.672-10.378-1.012-16.427-1.012-1.324.002-2.614.016-3.909.045-1.486-.069-2.721-1.15-2.753-2.636a2.695 2.695 0 012.636-2.753c1.33-.028 2.638-.014 4.027-.045 6.294 0 12.07.356 17.164 1.061a2.697 2.697 0 012.302 3.039 2.698 2.698 0 01-2.667 2.325zM23.38 67.003a2.696 2.696 0 01-.468-5.349c.168-.03 4.173-.733 10.418-1.462 1.45-.18 2.816.885 2.988 2.363a2.693 2.693 0 01-2.365 2.99c-6.074.711-10.064 1.409-10.105 1.417a2.575 2.575 0 01-.468.041z"
34617
34632
  }));
34618
34633
 
34619
- var _ref2$8 = /*#__PURE__*/React__default.createElement("path", {
34634
+ var _ref2$7 = /*#__PURE__*/React__default.createElement("path", {
34620
34635
  opacity: 0.7,
34621
34636
  d: "M103.737 102.514c-6.322 0-11.495 5.058-11.495 11.38 0 2.184.69 4.253 1.724 5.977 0 .115.115.115.115.23 1.264 2.069 4.023 4.483 5.862 6.782 2.299 2.989 3.563 5.518 3.563 5.518s.115.115.23.115.23 0 .23-.115c0 0 1.034-2.414 3.218-5.058 1.954-2.414 5.058-5.058 6.207-7.127 0-.115.115-.115.115-.115 1.149-1.724 1.724-3.793 1.724-5.977.002-6.552-5.17-11.61-11.493-11.61zm-1.273 18.354v-2.731l1.513.78-1.513 1.951zm4.916-2.341l-4.915-1.56 4.915-5.851-6.427 5.851-3.781-1.56 12.098-6.631-1.89 9.751z"
34622
34637
  });
@@ -34631,14 +34646,14 @@ var SvgCentesisEnd = function SvgCentesisEnd(props) {
34631
34646
  height: 141.73,
34632
34647
  viewBox: "0 0 141.73 141.73",
34633
34648
  fill: "currentColor"
34634
- }, props), _ref$E, _ref2$8, _ref3$1);
34649
+ }, props), _ref$E, _ref2$7, _ref3$1);
34635
34650
  };
34636
34651
 
34637
34652
  function _extends$F() { _extends$F = 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$F.apply(this, arguments); }
34638
34653
 
34639
34654
  var _ref$F = /*#__PURE__*/React__default.createElement("defs", null, /*#__PURE__*/React__default.createElement("style", null));
34640
34655
 
34641
- var _ref2$9 = /*#__PURE__*/React__default.createElement("path", {
34656
+ var _ref2$8 = /*#__PURE__*/React__default.createElement("path", {
34642
34657
  d: "M512 365.714c-80.786 0-146.286 65.5-146.286 146.286S431.214 658.286 512 658.286 658.286 592.786 658.286 512 592.786 365.714 512 365.714zm0 219.429c-40.322 0-73.143-32.821-73.143-73.143s32.821-73.143 73.143-73.143 73.143 32.821 73.143 73.143-32.821 73.143-73.143 73.143z"
34643
34658
  });
34644
34659
 
@@ -34653,14 +34668,14 @@ var SvgReferencePosition = function SvgReferencePosition(props) {
34653
34668
  width: 200,
34654
34669
  height: 200,
34655
34670
  fill: "currentColor"
34656
- }, props), _ref$F, _ref2$9, _ref3$2);
34671
+ }, props), _ref$F, _ref2$8, _ref3$2);
34657
34672
  };
34658
34673
 
34659
34674
  function _extends$G() { _extends$G = 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$G.apply(this, arguments); }
34660
34675
 
34661
34676
  var _ref$G = /*#__PURE__*/React__default.createElement("defs", null, /*#__PURE__*/React__default.createElement("style", null, "@font-face{font-family:feedback-iconfont;src:url(//at.alicdn.com/t/font_1031158_u69w8yhxdu.woff2?t=1630033759944) format(&quot;woff2&quot;),url(//at.alicdn.com/t/font_1031158_u69w8yhxdu.woff?t=1630033759944) format(&quot;woff&quot;),url(//at.alicdn.com/t/font_1031158_u69w8yhxdu.ttf?t=1630033759944) format(&quot;truetype&quot;)}"));
34662
34677
 
34663
- var _ref2$a = /*#__PURE__*/React__default.createElement("path", {
34678
+ var _ref2$9 = /*#__PURE__*/React__default.createElement("path", {
34664
34679
  d: "M904.704 651.776l-2.048-229.888c52.224-10.752 91.648-56.832 91.648-112.128 0-62.976-51.2-114.688-114.688-114.688-46.08 0-86.016 27.648-103.936 66.56L230.4 129.024v-5.12c0-62.976-51.2-114.176-114.688-114.176S1.536 60.928 1.536 123.904s51.2 114.688 114.688 114.688h.512l101.888 513.024c-40.448 17.408-69.12 57.856-69.12 104.96 0 62.976 51.2 114.688 114.688 114.688 58.368 0 106.496-44.032 113.664-100.352l399.872-66.56c16.384 43.52 58.368 74.24 107.008 74.24 62.976 0 114.688-51.2 114.688-114.688-1.024-55.808-41.472-102.4-94.72-112.128zm-24.576-413.184c38.912 0 70.656 31.744 70.656 70.656 0 31.232-20.48 57.856-48.64 67.072-7.168 2.56-14.336 3.584-22.528 3.584-7.168 0-14.336-1.024-20.992-3.072-27.136-8.704-47.104-32.768-49.664-62.464 0-1.536-.512-3.584-.512-5.12 0-13.824 4.096-26.112 10.752-36.864 12.8-20.48 35.328-33.792 60.928-33.792zm-764.416-43.52c-2.56 0-5.632 0-8.192-.512-35.328-4.096-62.464-34.304-62.464-70.144 0-38.912 31.744-70.656 70.656-70.656 37.376 0 68.096 29.184 70.656 65.536 0 1.536.512 3.584.512 5.12 0 13.824-4.096 26.112-10.752 36.864-6.144 10.24-15.36 18.944-25.6 25.088-10.24 5.12-22.016 8.704-34.816 8.704zm43.52 34.816c27.136-11.264 48.64-31.744 60.928-58.368l545.792 132.608v5.12c0 55.808 40.448 102.912 93.696 112.64l2.048 229.888c-51.2 10.24-90.112 55.296-91.648 109.056L374.784 826.88c-13.824-48.64-58.368-84.48-111.104-84.48h-2.56L159.232 229.888zM263.68 927.744c-38.912 0-70.656-31.744-70.656-70.656 0-25.6 13.824-48.128 34.304-60.928 10.752-6.656 23.04-10.24 36.352-10.24 2.048 0 4.096 0 6.144.512 28.672 2.56 52.736 22.016 61.44 48.128 2.56 7.168 3.584 14.336 3.584 22.528 0 7.68-1.024 14.848-3.584 22.016-9.216 27.648-36.352 48.64-67.584 48.64zm620.544-92.672c-27.136 0-51.2-15.36-62.976-38.4-5.12-9.728-8.192-20.992-8.192-32.768 0-3.584.512-7.168 1.024-10.24 4.096-26.624 22.528-48.64 47.616-56.832 7.168-2.56 14.336-3.584 22.528-3.584 7.168 0 14.336 1.024 20.992 3.072 28.672 9.216 49.664 35.84 49.664 67.584 0 39.424-31.744 71.168-70.656 71.168z"
34665
34680
  });
34666
34681
 
@@ -34671,7 +34686,7 @@ var SvgPolygon = function SvgPolygon(props) {
34671
34686
  width: 200,
34672
34687
  height: 200,
34673
34688
  fill: "currentColor"
34674
- }, props), _ref$G, _ref2$a);
34689
+ }, props), _ref$G, _ref2$9);
34675
34690
  };
34676
34691
 
34677
34692
  function _extends$H() { _extends$H = 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$H.apply(this, arguments); }
@@ -37000,8 +37015,9 @@ var mapStateToProps$1 = function mapStateToProps(state) {
37000
37015
  var _state$paladin$tools$ = state.paladin.tools.action,
37001
37016
  mode = _state$paladin$tools$.mode,
37002
37017
  MPR = _state$paladin$tools$.MPR,
37003
- Surgery = _state$paladin$tools$.Surgery;
37004
- var activeElement = getActiveElement(mode, activeIndex, imageActiveIndex, MPR, mprActiveIndex, Surgery, surgeryActiveIndex);
37018
+ Surgery = _state$paladin$tools$.Surgery,
37019
+ CPR = _state$paladin$tools$.CPR;
37020
+ var activeElement = getActiveElement(mode, activeIndex, imageActiveIndex, MPR, mprActiveIndex, Surgery, surgeryActiveIndex, CPR);
37005
37021
  return {
37006
37022
  activeElement: activeElement
37007
37023
  };
@@ -37272,8 +37288,9 @@ var mapStateToProps$2 = function mapStateToProps(state) {
37272
37288
  var _state$paladin$tools$ = state.paladin.tools.action,
37273
37289
  mode = _state$paladin$tools$.mode,
37274
37290
  MPR = _state$paladin$tools$.MPR,
37275
- Surgery = _state$paladin$tools$.Surgery;
37276
- var activeElement = getActiveElement(mode, activeIndex, imageActiveIndex, MPR, mprActiveIndex, Surgery, surgeryActiveIndex);
37291
+ Surgery = _state$paladin$tools$.Surgery,
37292
+ CPR = _state$paladin$tools$.CPR;
37293
+ var activeElement = getActiveElement(mode, activeIndex, imageActiveIndex, MPR, mprActiveIndex, Surgery, surgeryActiveIndex, CPR);
37277
37294
  return {
37278
37295
  activeElement: activeElement,
37279
37296
  MPR: MPR,
@@ -37377,7 +37394,7 @@ var _ref$R = /*#__PURE__*/React__default.createElement("path", {
37377
37394
  d: "M0 162.517l98.977-82.481v164.961L0 162.517zm17.756 0l69.854 58.211V104.306l-69.854 58.211zM182.945 244.998V80.036l98.979 82.481zM190.486 20.714c-26.433-26.432-68.313-27.806-93.373-2.747L80.636 34.444l6.866 6.866 16.477-16.477c21.284-21.284 56.985-19.911 79.642 2.746L169.889 41.31l48.06 13.731-13.732-48.059-13.731 13.732zm0 0"
37378
37395
  });
37379
37396
 
37380
- var _ref2$b = /*#__PURE__*/React__default.createElement("g", {
37397
+ var _ref2$a = /*#__PURE__*/React__default.createElement("g", {
37381
37398
  fill: "#040000"
37382
37399
  }, /*#__PURE__*/React__default.createElement("path", {
37383
37400
  d: "M134.714 224.502h12.496v37.062a6.247 6.247 0 01-12.495 0v-37.062zM134.714 161.948h12.496v48.121h-12.496zM140.962 44.864a6.247 6.247 0 016.249 6.248v32.251h-12.496V51.124a6.25 6.25 0 016.248-6.248v-.012zM134.714 97.796h12.496v48.109h-12.496z"
@@ -37389,7 +37406,7 @@ var SvgFlipHorizontal = function SvgFlipHorizontal(props) {
37389
37406
  height: 283.46,
37390
37407
  viewBox: "0 0 283.46 283.46",
37391
37408
  fill: "currentColor"
37392
- }, props), _ref$R, _ref2$b);
37409
+ }, props), _ref$R, _ref2$a);
37393
37410
  };
37394
37411
 
37395
37412
  function _extends$S() { _extends$S = 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$S.apply(this, arguments); }
@@ -37399,7 +37416,7 @@ var _ref$S = /*#__PURE__*/React__default.createElement("path", {
37399
37416
  d: "M105.294 0l82.481 98.977H22.813L105.294 0zm0 17.756L47.083 87.61h116.422l-58.211-69.854zM22.813 182.945h164.962l-82.481 98.979zM247.097 190.486c26.432-26.433 27.806-68.313 2.747-93.373l-16.477-16.477-6.866 6.866 16.477 16.477c21.284 21.284 19.911 56.985-2.746 79.642L226.5 169.889l-13.731 48.06 48.059-13.732-13.731-13.731zm0 0"
37400
37417
  });
37401
37418
 
37402
- var _ref2$c = /*#__PURE__*/React__default.createElement("g", {
37419
+ var _ref2$b = /*#__PURE__*/React__default.createElement("g", {
37403
37420
  fill: "#040000"
37404
37421
  }, /*#__PURE__*/React__default.createElement("path", {
37405
37422
  d: "M43.309 134.714v12.496H6.247a6.247 6.247 0 010-12.495h37.062zM57.742 134.714h48.121v12.496H57.742zM222.947 140.962a6.247 6.247 0 01-6.248 6.249h-32.251v-12.496h32.239a6.25 6.25 0 016.248 6.248h.012zM121.907 134.714h48.109v12.496h-48.109z"
@@ -37411,7 +37428,7 @@ var SvgFlipVertical = function SvgFlipVertical(props) {
37411
37428
  height: 283.46,
37412
37429
  viewBox: "0 0 283.46 283.46",
37413
37430
  fill: "currentColor"
37414
- }, props), _ref$S, _ref2$c);
37431
+ }, props), _ref$S, _ref2$b);
37415
37432
  };
37416
37433
 
37417
37434
  (function () {
@@ -37531,8 +37548,9 @@ var mapStateToProps$3 = function mapStateToProps(state) {
37531
37548
  var _state$paladin$tools$ = state.paladin.tools.action,
37532
37549
  mode = _state$paladin$tools$.mode,
37533
37550
  MPR = _state$paladin$tools$.MPR,
37534
- Surgery = _state$paladin$tools$.Surgery;
37535
- var activeElement = getActiveElement(mode, activeIndex, imageActiveIndex, MPR, mprActiveIndex, Surgery, surgeryActiveIndex);
37551
+ Surgery = _state$paladin$tools$.Surgery,
37552
+ CPR = _state$paladin$tools$.CPR;
37553
+ var activeElement = getActiveElement(mode, activeIndex, imageActiveIndex, MPR, mprActiveIndex, Surgery, surgeryActiveIndex, CPR);
37536
37554
  return {
37537
37555
  activeElement: activeElement
37538
37556
  };
@@ -38450,9 +38468,10 @@ var mapStateToProps$4 = function mapStateToProps(state) {
38450
38468
  showOverlayText = _state$paladin$tools$.showOverlayText,
38451
38469
  mode = _state$paladin$tools$.mode,
38452
38470
  MPR = _state$paladin$tools$.MPR,
38453
- Surgery = _state$paladin$tools$.Surgery;
38471
+ Surgery = _state$paladin$tools$.Surgery,
38472
+ CPR = _state$paladin$tools$.CPR;
38454
38473
  var toolMode = state.paladin.tools.customization.toolMode;
38455
- var activeElement = getActiveElement(mode, activeIndex, imageActiveIndex, MPR, mprActiveIndex, Surgery, surgeryActiveIndex);
38474
+ var activeElement = getActiveElement(mode, activeIndex, imageActiveIndex, MPR, mprActiveIndex, Surgery, surgeryActiveIndex, CPR);
38456
38475
  return {
38457
38476
  activeElement: activeElement,
38458
38477
  showOverlayText: showOverlayText,
@@ -38931,8 +38950,9 @@ var mapStateToProps$5 = function mapStateToProps(state) {
38931
38950
  MPR = _state$paladin$tools$.MPR,
38932
38951
  continuousMeasure = _state$paladin$tools$.continuousMeasure,
38933
38952
  Surgery = _state$paladin$tools$.Surgery,
38934
- IO = _state$paladin$tools$.IO;
38935
- var activeElement = getActiveElement(mode, activeIndex, imageActiveIndex, MPR, mprActiveIndex, Surgery, surgeryActiveIndex);
38953
+ IO = _state$paladin$tools$.IO,
38954
+ CPR = _state$paladin$tools$.CPR;
38955
+ var activeElement = getActiveElement(mode, activeIndex, imageActiveIndex, MPR, mprActiveIndex, Surgery, surgeryActiveIndex, CPR);
38936
38956
  return {
38937
38957
  activeElement: activeElement,
38938
38958
  activeTool: activeTool,
@@ -43703,7 +43723,9 @@ var __signature__$2z = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoa
43703
43723
  };
43704
43724
 
43705
43725
  var mapStateToProps$6 = function mapStateToProps(state) {
43706
- var activeIndex = state.paladin.viewport.activeIndex;
43726
+ var _state$paladin$viewpo = state.paladin.viewport,
43727
+ activeIndex = _state$paladin$viewpo.activeIndex,
43728
+ currentSeries = _state$paladin$viewpo.currentSeries;
43707
43729
  var _state$paladin$tools$ = state.paladin.tools.action,
43708
43730
  cineFps = _state$paladin$tools$.cineFps,
43709
43731
  Cine = _state$paladin$tools$.Cine,
@@ -43712,7 +43734,8 @@ var mapStateToProps$6 = function mapStateToProps(state) {
43712
43734
  activeElement: getElement(activeIndex),
43713
43735
  cineFps: cineFps,
43714
43736
  Cine: Cine,
43715
- cineDireaction: cineDireaction
43737
+ cineDireaction: cineDireaction,
43738
+ currentSeries: currentSeries
43716
43739
  };
43717
43740
  };
43718
43741
 
@@ -43720,7 +43743,8 @@ var mergeProps$6 = function mergeProps(propsFromState, propsFromDispatch, ownPro
43720
43743
  var activeElement = propsFromState.activeElement,
43721
43744
  cineFps = propsFromState.cineFps,
43722
43745
  Cine = propsFromState.Cine,
43723
- cineDireaction = propsFromState.cineDireaction;
43746
+ cineDireaction = propsFromState.cineDireaction,
43747
+ currentSeries = propsFromState.currentSeries;
43724
43748
  var setCineFps = propsFromDispatch.setCineFps,
43725
43749
  setCineDireaction = propsFromDispatch.setCineDireaction,
43726
43750
  activeDicomFunction = propsFromDispatch.activeDicomFunction;
@@ -43741,9 +43765,16 @@ var mergeProps$6 = function mergeProps(propsFromState, propsFromDispatch, ownPro
43741
43765
  break;
43742
43766
 
43743
43767
  case 'forward':
43768
+ var _cineFps = cineFps;
43769
+
43770
+ if (currentSeries.frameFps) {
43771
+ setCineFps(currentSeries.frameFps);
43772
+ _cineFps = currentSeries.frameFps;
43773
+ }
43774
+
43744
43775
  _default$E.autoCine.startAutoCine(activeElement, {
43745
43776
  direction: -1,
43746
- fps: cineFps
43777
+ fps: _cineFps
43747
43778
  });
43748
43779
  setCineDireaction(-1);
43749
43780
 
@@ -43754,9 +43785,16 @@ var mergeProps$6 = function mergeProps(propsFromState, propsFromDispatch, ownPro
43754
43785
  break;
43755
43786
 
43756
43787
  case 'backward':
43788
+ var __cineFps = cineFps;
43789
+
43790
+ if (currentSeries.frameFps) {
43791
+ setCineFps(currentSeries.frameFps);
43792
+ __cineFps = currentSeries.frameFps;
43793
+ }
43794
+
43757
43795
  _default$E.autoCine.startAutoCine(activeElement, {
43758
43796
  direction: 1,
43759
- fps: cineFps
43797
+ fps: __cineFps
43760
43798
  });
43761
43799
  setCineDireaction(1);
43762
43800
 
@@ -44348,13 +44386,15 @@ var mapStateToProps$9 = function mapStateToProps(state) {
44348
44386
  var _state$paladin$tools$ = state.paladin.tools.action,
44349
44387
  mode = _state$paladin$tools$.mode,
44350
44388
  MPR = _state$paladin$tools$.MPR,
44351
- Surgery = _state$paladin$tools$.Surgery;
44352
- var activeElement = getActiveElement(mode, activeIndex, imageActiveIndex, MPR, mprActiveIndex, Surgery, surgeryActiveIndex);
44389
+ Surgery = _state$paladin$tools$.Surgery,
44390
+ CPR = _state$paladin$tools$.CPR;
44391
+ var activeElement = getActiveElement(mode, activeIndex, imageActiveIndex, MPR, mprActiveIndex, Surgery, surgeryActiveIndex, CPR);
44353
44392
  return {
44354
44393
  activeElement: activeElement,
44355
44394
  MPR: MPR,
44356
44395
  mode: mode,
44357
- Surgery: Surgery
44396
+ Surgery: Surgery,
44397
+ CPR: CPR
44358
44398
  };
44359
44399
  };
44360
44400
 
@@ -44366,7 +44406,8 @@ var mergeProps$9 = function mergeProps(propsFromState, propsFromDispatch, ownPro
44366
44406
  var activeElement = propsFromState.activeElement,
44367
44407
  MPR = propsFromState.MPR,
44368
44408
  mode = propsFromState.mode,
44369
- Surgery = propsFromState.Surgery;
44409
+ Surgery = propsFromState.Surgery,
44410
+ CPR = propsFromState.CPR;
44370
44411
  return _objectSpread$t(_objectSpread$t({}, ownProps), {}, {
44371
44412
  onRowClick: function onRowClick(key) {
44372
44413
  switch (key) {
@@ -44376,6 +44417,11 @@ var mergeProps$9 = function mergeProps(propsFromState, propsFromDispatch, ownPro
44376
44417
 
44377
44418
  case 'zoom':
44378
44419
  resetZoom(activeElement, MPR);
44420
+
44421
+ if (MPR || Surgery || CPR) {
44422
+ set('scale')(activeElement, 0);
44423
+ }
44424
+
44379
44425
  break;
44380
44426
 
44381
44427
  case 'pan':
@@ -44393,7 +44439,7 @@ var mergeProps$9 = function mergeProps(propsFromState, propsFromDispatch, ownPro
44393
44439
  case 'all':
44394
44440
  reset$1(activeElement, mode);
44395
44441
 
44396
- if (MPR || Surgery) {
44442
+ if (MPR || Surgery || CPR) {
44397
44443
  set('scale')(activeElement, 0);
44398
44444
  }
44399
44445
 
@@ -46796,7 +46842,7 @@ var _ref$15 = /*#__PURE__*/React__default.createElement("path", {
46796
46842
  d: "M59.661.336L0 34.781v68.357l59.661-33.913V.336zm-8.165 60.185l-8.928 4.966s.123-30.196.373-33.682l-.186.103c-.497 3.378-.993 5.946-1.488 7.709l-7.624 30.836-7.811 4.345-7.625-23.096a215.946 215.946 0 01-1.488-5.495l-.186.104c0 .744.061 1.764.186 3.058.123 3.651.186 30.396.186 30.396l-8.74 4.863V43.713l13.761-7.656 7.253 22.745c.122.676.308 2.061.557 4.153 0-.371.062-.899.186-1.59 0-1.61.122-2.672.372-3.183l7.253-30.815 13.948-7.76v40.914zm0 0M92.144 37.107l-6.632-3.974v13.466l6.632 3.973c5.225 2.999 7.905 2.325 8.039-2.017-.134-4.367-2.814-8.183-8.039-11.448zm0 0"
46797
46843
  });
46798
46844
 
46799
- var _ref2$d = /*#__PURE__*/React__default.createElement("path", {
46845
+ var _ref2$c = /*#__PURE__*/React__default.createElement("path", {
46800
46846
  d: "M63.219.336v68.892l59.661 34.671V34.781L63.219.336zm29.729 58.356l-7.436-4.455v15.476l-10.05-6.021V19.475l18.491 11.078c10.718 6.691 16.28 14.646 16.682 23.862.132 10.128-5.763 11.556-17.687 4.277zm0 0M66.81 100.098c.111-3.502-2.093-5.199-6.613-5.087h-7.29v10.003h7.29c4.52 0 6.724-1.637 6.613-4.916zm0 0"
46801
46847
  });
46802
46848
 
@@ -46810,7 +46856,7 @@ var SvgMpr = function SvgMpr(props) {
46810
46856
  height: 142,
46811
46857
  viewBox: "0 0 142 142",
46812
46858
  fill: "currentColor"
46813
- }, props), _ref$15, _ref2$d, _ref3$3);
46859
+ }, props), _ref$15, _ref2$c, _ref3$3);
46814
46860
  };
46815
46861
 
46816
46862
  function _extends$18() { _extends$18 = 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$18.apply(this, arguments); }
@@ -46835,7 +46881,7 @@ var _ref$17 = /*#__PURE__*/React__default.createElement("path", {
46835
46881
  d: "M11.217 10.354l1.672 4.76 1.698-4.76h1.366l-2.49 6.326h-1.212l-2.398-6.326zM21.513 15.722a4.73 4.73 0 00-.073-.617 2.253 2.253 0 00-.149-.436 1.319 1.319 0 00-.308-.432 1.8 1.8 0 00-.503-.28c.278-.102.503-.249.674-.446.273-.33.41-.795.41-1.395a1.91 1.91 0 00-.176-.821 1.521 1.521 0 00-.5-.602c-.313-.228-.868-.341-1.665-.341h-2.775v6.328h1.212v-2.4h.972c.42-.007.74.057.963.19.176.114.308.268.396.465.088.197.147.477.176.844.045.455.088.757.128.901h1.357c-.058-.182-.105-.502-.139-.958zm-1.558-2.713c-.119.095-.32.142-.607.142H17.65v-1.67h1.698c.216 0 .372.019.47.057.273.109.41.353.41.74 0 .349-.09.591-.273.731z"
46836
46882
  });
46837
46883
 
46838
- var _ref2$e = /*#__PURE__*/React__default.createElement("path", {
46884
+ var _ref2$d = /*#__PURE__*/React__default.createElement("path", {
46839
46885
  d: "M18.632 20.558a.544.544 0 00-.676.347c-1.013 3.168-2.586 5.059-4.21 5.059-.645 0-1.283-.294-1.893-.872-.641-.609-1.222-1.488-1.722-2.613-1.068-2.384-1.654-5.565-1.654-8.958 0-3.394.587-6.576 1.654-8.96.498-1.122 1.077-2 1.722-2.612.614-.578 1.25-.872 1.893-.872 1.158 0 2.082.932 2.711 1.846l-1.634 1.03 4.315 2.226-.155-4.849-1.622 1.022C16.312.818 15.073 0 13.748 0c-1.775 0-3.408 1.465-4.595 4.124-1.126 2.513-1.746 5.849-1.746 9.396 0 3.543.62 6.88 1.746 9.396 1.19 2.655 2.821 4.117 4.595 4.117 1.099 0 2.17-.576 3.1-1.667.847-.993 1.583-2.422 2.131-4.135a.537.537 0 00-.347-.673z"
46840
46886
  });
46841
46887
 
@@ -46849,7 +46895,7 @@ var SvgVr = function SvgVr(props) {
46849
46895
  height: 28.346,
46850
46896
  viewBox: "0 0 28.346 28.346",
46851
46897
  fill: "currentColor"
46852
- }, props), _ref$17, _ref2$e, _ref3$4);
46898
+ }, props), _ref$17, _ref2$d, _ref3$4);
46853
46899
  };
46854
46900
 
46855
46901
  function _extends$1a() { _extends$1a = 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$1a.apply(this, arguments); }
@@ -47106,7 +47152,7 @@ var _ref$19 = /*#__PURE__*/React__default.createElement("g", {
47106
47152
  d: "M69.932 69.61a2.333 2.333 0 01-.21-4.659c5.374-.496 8.79-.947 8.813-.95a2.326 2.326 0 012.621 2.007 2.337 2.337 0 01-2.007 2.621s-3.494.463-8.999.971a2.67 2.67 0 01-.218.01zM43.655 70.914c-3.452 0-6.767-.084-9.851-.249a2.332 2.332 0 01-2.206-2.454c.068-1.289 1.185-2.323 2.454-2.206 5.473.291 11.89.298 17.809.096 1.276-.089 2.37.962 2.412 2.251a2.33 2.33 0 01-2.251 2.412c-2.725.096-5.534.15-8.367.15zm-27.55-2.694c-.196 0-.396-.026-.594-.077C6.428 65.759 1.228 61.747.051 56.22a2.333 2.333 0 011.797-2.768 2.33 2.33 0 012.768 1.797c.778 3.661 4.842 6.48 12.079 8.378a2.336 2.336 0 01-.59 4.593zm-5.524-24.506a2.336 2.336 0 01-1.028-4.432c4.313-2.111 10.118-3.477 18.265-4.301 1.297-.154 2.426.803 2.556 2.086s-.805 2.426-2.086 2.556c-7.581.768-12.881 1.992-16.683 3.852-.33.161-.68.239-1.024.239zm35.488-5.234a2.333 2.333 0 01-.126-4.664c7.067-.386 12.765-.847 17.6-1.834a2.324 2.324 0 012.754 1.82 2.332 2.332 0 01-1.818 2.752c-5.116 1.045-11.008 1.525-18.28 1.921-.044.005-.088.005-.13.005zm32.18-11.231a2.334 2.334 0 01-2.232-3.017c.254-.829.382-1.753.38-2.742l-.012-.531c-.172-4.024-2.032-7.186-5.687-9.669a2.334 2.334 0 012.623-3.861c4.891 3.321 7.491 7.807 7.728 13.333l.016.724c.002 1.452-.195 2.835-.584 4.109a2.335 2.335 0 01-2.232 1.654zM55.035 6.132c-.107 0-.214-.007-.323-.021-5.108-.708-11.329-.981-17.61-.838-1.346-.06-2.356-.996-2.384-2.283A2.333 2.333 0 0137 .606c6.515-.133 12.995.142 18.351.88a2.335 2.335 0 01-.316 4.646zM9.854 7.836a2.335 2.335 0 01-2.297-1.929 2.332 2.332 0 011.892-2.702c.146-.026 3.613-.635 9.022-1.266 1.248-.156 2.439.766 2.588 2.046a2.33 2.33 0 01-2.048 2.589c-5.26.615-8.715 1.22-8.75 1.227a2.269 2.269 0 01-.407.035z"
47107
47153
  }));
47108
47154
 
47109
- var _ref2$f = /*#__PURE__*/React__default.createElement("path", {
47155
+ var _ref2$e = /*#__PURE__*/React__default.createElement("path", {
47110
47156
  fill: "#FFF",
47111
47157
  d: "M128.104.646l11.434 11.096a2.36 2.36 0 01.732 1.702c0 .638-.264 1.252-.732 1.703a2.536 2.536 0 01-3.508 0l-3.824-3.712-6.22 6.179 13.402 13.026c.468.45.732 1.063.732 1.702 0 .64-.264 1.252-.732 1.703a2.545 2.545 0 01-1.754.674 2.538 2.538 0 01-1.754-.707l-5.182-5.029-25.38 25.303a9.602 9.602 0 01-6.839 2.834 9.604 9.604 0 01-6.84-2.832l-1.047-1.048-8.739 8.742a2.53 2.53 0 01-1.778.739 2.536 2.536 0 01-2.524-2.519c0-.669.269-1.31.744-1.781l8.739-8.743-1.053-1.055a9.717 9.717 0 010-13.709l25.02-25.046-5.846-5.673a2.363 2.363 0 01-.637-2.333A2.452 2.452 0 01106.28.159a2.537 2.537 0 012.4.631l13.907 13.518L128.77 8.1l-4.173-4.049a2.358 2.358 0 01.062-3.345 2.534 2.534 0 013.445-.06zM94.112 33.519a2.144 2.144 0 00-.582 2.823l.101.153 6.922 6.792a2.29 2.29 0 003.061-.453 2.158 2.158 0 00.568-2.838l-.101-.153-6.906-6.776a2.292 2.292 0 00-3.063.452zm7.072-6.888a2.142 2.142 0 00-.599 2.82l.101.155 4.276 4.285a2.293 2.293 0 003.061-.403 2.176 2.176 0 00.598-2.837l-.098-.155-4.276-4.285c-.718-.76-2.081-.518-3.063.42zm0 0"
47112
47158
  });
@@ -47117,7 +47163,7 @@ var SvgCentesis = function SvgCentesis(props) {
47117
47163
  height: 141.73,
47118
47164
  viewBox: "0 0 141.73 141.73",
47119
47165
  fill: "currentColor"
47120
- }, props), _ref$19, _ref2$f);
47166
+ }, props), _ref$19, _ref2$e);
47121
47167
  };
47122
47168
 
47123
47169
  (function () {
@@ -47269,7 +47315,7 @@ var DicomToolLineMode = /*#__PURE__*/function (_Component) {
47269
47315
  SurgeryExit: {
47270
47316
  name: "SurgeryExit",
47271
47317
  tooltip: "返回二维影像区",
47272
- component: /*#__PURE__*/React__default.createElement(SvgBrowse, null),
47318
+ component: /*#__PURE__*/React__default.createElement(Svg2D, null),
47273
47319
  inActive: true,
47274
47320
  onClick: function onClick() {
47275
47321
  _this2.props.exit3D('Surgery');
@@ -48009,7 +48055,7 @@ var _default$Z = ConnectedVRCine;
48009
48055
  leaveModule && leaveModule(module);
48010
48056
  })();
48011
48057
 
48012
- var css_248z$i = ".paladin-ImageProcessTabTool {\n background: #353535;\n border: 1px solid #5b5b5b;\n}\n.paladin-ImageProcessTabTool-item {\n text-align: center;\n padding: 3px 14px;\n border-bottom: 1px solid #5b5b5b;\n color: #e2e2e2;\n font-size: 14px;\n}\n.paladin-ImageProcessTabTool-item:hover {\n background: #5b5b5b;\n}\n.paladin-ImageProcessTabTool-item:last-child {\n border: none;\n}\n.paladin-ImageProcessTabTool-item-active {\n text-align: center;\n padding: 3px 14px;\n border-bottom: 1px solid #5b5b5b;\n color: #e2e2e2;\n font-size: 14px;\n background: #5b5b5b;\n}\n.paladin-ImageProcessTabTool-item-active:hover {\n background: #5b5b5b;\n}\n.paladin-ImageProcessTabTool-item-active:last-child {\n border: none;\n}\n";
48058
+ var css_248z$i = ".paladin-ImageProcessTabTool {\n background: #fff;\n border: 1px solid #5b5b5b;\n color: #53585f;\n}\n.paladin-ImageProcessTabTool-item {\n text-align: center;\n padding: 3px 15px;\n border-bottom: 1px solid #5b5b5b;\n font-size: 14px;\n}\n.paladin-ImageProcessTabTool-item:hover {\n background: #5b5b5b;\n color: #e2e2e2;\n}\n.paladin-ImageProcessTabTool-item:last-child {\n border: none;\n}\n.paladin-ImageProcessTabTool-item-active {\n text-align: center;\n padding: 3px 15px;\n border-bottom: 1px solid #5b5b5b;\n font-size: 14px;\n background: #5b5b5b;\n color: #e2e2e2;\n}\n.paladin-ImageProcessTabTool-item-active:hover {\n background: #5b5b5b;\n color: #e2e2e2;\n}\n.paladin-ImageProcessTabTool-item-active:last-child {\n border: none;\n}\n";
48013
48059
  styleInject$1(css_248z$i);
48014
48060
 
48015
48061
  (function () {
@@ -49796,7 +49842,7 @@ var DicomTool = /*#__PURE__*/function (_Component) {
49796
49842
  MprExit: {
49797
49843
  name: "MprExit",
49798
49844
  tooltip: "返回二维影像区",
49799
- component: /*#__PURE__*/React__default.createElement(SvgBrowse, null),
49845
+ component: /*#__PURE__*/React__default.createElement(Svg2D, null),
49800
49846
  inActive: true,
49801
49847
  onClick: function onClick() {
49802
49848
  _this.props.exit3D();
@@ -50239,7 +50285,7 @@ function _objectSpread$B(target) { for (var i = 1; i < arguments.length; i++) {
50239
50285
  var __signature__$2$ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {
50240
50286
  return a;
50241
50287
  };
50242
- var scrollToIndex$2 = _default$E.importInternal('util/scrollToIndex');
50288
+ var scrollToIndex$1 = _default$E.scrollToIndex;
50243
50289
 
50244
50290
  var mapStateToProps$e = function mapStateToProps(state) {
50245
50291
  var _state$paladin$tools$ = state.paladin.tools.customization,
@@ -50348,7 +50394,7 @@ var mapStateToProps$e = function mapStateToProps(state) {
50348
50394
  });
50349
50395
  }
50350
50396
 
50351
- var realActiveIndex = getRealActiveIndex(mode, activeIndex, imageActiveIndex, MPR, mprActiveIndex, Surgery, surgeryActiveIndex);
50397
+ var realActiveIndex = getRealActiveIndex(mode, activeIndex, imageActiveIndex, MPR, mprActiveIndex, Surgery, surgeryActiveIndex, CPR);
50352
50398
  return {
50353
50399
  toolMode: toolMode,
50354
50400
  activeTool: activeTool,
@@ -50425,7 +50471,7 @@ var mergeProps$e = function mergeProps(propsFromState, propsFromDispatch, ownPro
50425
50471
  Surgery = propsFromState.Surgery,
50426
50472
  MIP = propsFromState.MIP,
50427
50473
  CPR = propsFromState.CPR;
50428
- var maxIndex = currentSeries.imageIds.length - 1;
50474
+ var maxIndex = currentSeries && currentSeries.imageIds.length - 1;
50429
50475
  return _objectSpread$B(_objectSpread$B(_objectSpread$B(_objectSpread$B({}, ownProps), propsFromState), propsFromDispatch), {}, {
50430
50476
  reset: function reset() {
50431
50477
  // 重置
@@ -50433,7 +50479,7 @@ var mergeProps$e = function mergeProps(propsFromState, propsFromDispatch, ownPro
50433
50479
 
50434
50480
  reset$1(activeElement, mode);
50435
50481
 
50436
- if (MPR || Surgery) {
50482
+ if (MPR || Surgery || CPR) {
50437
50483
  set('scale')(activeElement, 0);
50438
50484
  }
50439
50485
  },
@@ -50462,7 +50508,7 @@ var mergeProps$e = function mergeProps(propsFromState, propsFromDispatch, ownPro
50462
50508
  prevIndex = maxIndex;
50463
50509
  }
50464
50510
 
50465
- scrollToIndex$2(activeElement, prevIndex);
50511
+ scrollToIndex$1(activeElement, prevIndex);
50466
50512
  },
50467
50513
  nextImage: function nextImage() {
50468
50514
  // 下一张
@@ -50486,7 +50532,7 @@ var mergeProps$e = function mergeProps(propsFromState, propsFromDispatch, ownPro
50486
50532
  nextIndex = 0;
50487
50533
  }
50488
50534
 
50489
- scrollToIndex$2(activeElement, nextIndex);
50535
+ scrollToIndex$1(activeElement, nextIndex);
50490
50536
  },
50491
50537
  // 切换模式
50492
50538
  // key: 1.SeriesMode返回序列模式 2.ImageMode进入图像模式
@@ -50662,7 +50708,7 @@ var mergeProps$e = function mergeProps(propsFromState, propsFromDispatch, ownPro
50662
50708
  case 34:
50663
50709
  if (links && links.length > 0) {
50664
50710
  lodash$1.forEach(links, function (link) {
50665
- scrollToIndex$2(getElement(link), _currentImageIdIndex);
50711
+ scrollToIndex$1(getElement(link), _currentImageIdIndex);
50666
50712
  });
50667
50713
  }
50668
50714
 
@@ -50708,9 +50754,16 @@ var mergeProps$e = function mergeProps(propsFromState, propsFromDispatch, ownPro
50708
50754
  if (Cine) {
50709
50755
  _default$E.autoCine.stopAutoCine();
50710
50756
  } else {
50757
+ var _cineFps = cineFps;
50758
+
50759
+ if (currentSeries.frameFps) {
50760
+ propsFromDispatch.setCineFps(currentSeries.frameFps);
50761
+ _cineFps = currentSeries.frameFps;
50762
+ }
50763
+
50711
50764
  _default$E.autoCine.startAutoCine(activeElement, {
50712
50765
  direction: 1,
50713
- fps: cineFps
50766
+ fps: _cineFps
50714
50767
  });
50715
50768
  propsFromDispatch.setCineDireaction(1);
50716
50769
  }
@@ -51258,7 +51311,8 @@ var ConnectedDicomTool = reactRedux.connect(mapStateToProps$e, {
51258
51311
  closeOnePickLayout: closeOnePickLayout,
51259
51312
  setActiveIndex: setActiveIndex,
51260
51313
  setLayout: setLayout,
51261
- setLastLayout: setLastLayout
51314
+ setLastLayout: setLastLayout,
51315
+ setCineFps: setCineFps
51262
51316
  }, mergeProps$e)(DicomTool);
51263
51317
  var _default$11 = ConnectedDicomTool;
51264
51318
 
@@ -51269,7 +51323,7 @@ var _default$11 = ConnectedDicomTool;
51269
51323
  return;
51270
51324
  }
51271
51325
 
51272
- reactHotLoader.register(scrollToIndex$2, "scrollToIndex", "/Users/huyeqing/workspace/chainz/paladin/src/Viewer/DicomTool/ConnectedDicomTool.js");
51326
+ reactHotLoader.register(scrollToIndex$1, "scrollToIndex", "/Users/huyeqing/workspace/chainz/paladin/src/Viewer/DicomTool/ConnectedDicomTool.js");
51273
51327
  reactHotLoader.register(mapStateToProps$e, "mapStateToProps", "/Users/huyeqing/workspace/chainz/paladin/src/Viewer/DicomTool/ConnectedDicomTool.js");
51274
51328
  reactHotLoader.register(mergeProps$e, "mergeProps", "/Users/huyeqing/workspace/chainz/paladin/src/Viewer/DicomTool/ConnectedDicomTool.js");
51275
51329
  reactHotLoader.register(ConnectedDicomTool, "ConnectedDicomTool", "/Users/huyeqing/workspace/chainz/paladin/src/Viewer/DicomTool/ConnectedDicomTool.js");
@@ -51637,6 +51691,11 @@ var ThumbContent = function ThumbContent(props) {
51637
51691
 
51638
51692
  if (loadedCount && totalCount) {
51639
51693
  width = loadedCount / totalCount;
51694
+ } // 多帧dicom没有预加载进度条
51695
+
51696
+
51697
+ if (series.isMultiFrame) {
51698
+ width = 1;
51640
51699
  }
51641
51700
 
51642
51701
  return /*#__PURE__*/React__default.createElement("div", {
@@ -52356,8 +52415,9 @@ var ViewportOverlay = /*#__PURE__*/function (_PureComponent) {
52356
52415
  var studyDateTime = getStudyDateTime(dicom);
52357
52416
  var seriesNumber = dicom.SeriesNumber.toString();
52358
52417
  var instanceCount = stack.instanceCount || stack.imageIds.length; // 图像模式的数据才有stack.instanceCount
52418
+ // 当前层数 多帧dicom的情况下取currentImageIdIndex
52359
52419
 
52360
- var instanceNumber = dicom.InstanceNumber.toString();
52420
+ var instanceNumber = stack && stack.isMultiFrame ? stack.currentImageIdIndex + 1 : dicom.InstanceNumber.toString();
52361
52421
  var seriesCount = stack.seriesCount ? stack.seriesCount : '';
52362
52422
  var compression = getCompression(dicom);
52363
52423
  var inPlanePhaseEncodingDirection = dicom.InPlanePhaseEncodingDirection.toString(); // 右下
@@ -59134,16 +59194,25 @@ var DicomView = /*#__PURE__*/function (_Component) {
59134
59194
  createClass(DicomView, [{
59135
59195
  key: "componentWillMount",
59136
59196
  value: function componentWillMount() {
59197
+ var _this2 = this;
59198
+
59137
59199
  window.addEventListener('mousedown', checkAndUnLockToolState); // 初始化序列
59200
+ // callback是为了multi-frame(多帧dicom)的情况修改study
59138
59201
 
59139
- this.props.initSeries(); // 自定义窗值设置
59202
+ this.props.initSeries(null, function (result) {
59203
+ if (result && result.hasChange) {
59204
+ _this2.setState({
59205
+ study: result.study
59206
+ });
59207
+ }
59208
+ }); // 自定义窗值设置
59140
59209
 
59141
59210
  this.props.windowSetting && saveWwwcCustomDic(this.props.windowSetting);
59142
59211
  }
59143
59212
  }, {
59144
59213
  key: "componentWillReceiveProps",
59145
59214
  value: function componentWillReceiveProps(nextProps) {
59146
- var _this2 = this;
59215
+ var _this3 = this;
59147
59216
 
59148
59217
  /**
59149
59218
  * study切换
@@ -59152,7 +59221,7 @@ var DicomView = /*#__PURE__*/function (_Component) {
59152
59221
  this.setState({
59153
59222
  study: nextProps.study
59154
59223
  }, function () {
59155
- _this2.props.initSeries(nextProps.study);
59224
+ _this3.props.initSeries(nextProps.study);
59156
59225
  });
59157
59226
  }
59158
59227
 
@@ -59742,7 +59811,7 @@ var mergeProps$o = function mergeProps(propsFromState, propsFromDispatch, ownPro
59742
59811
  var showDicomThumbnail = !threeDMode;
59743
59812
 
59744
59813
  var getCurrentElement = function getCurrentElement() {
59745
- return getActiveElement(mode, activeIndex, imageActiveIndex, threeDMode, mprActiveIndex, Surgery, surgeryActiveIndex);
59814
+ return getActiveElement(mode, activeIndex, imageActiveIndex, threeDMode, mprActiveIndex, Surgery, surgeryActiveIndex, CPR);
59746
59815
  };
59747
59816
  /**
59748
59817
  *
@@ -60044,113 +60113,220 @@ var mergeProps$o = function mergeProps(propsFromState, propsFromDispatch, ownPro
60044
60113
  }
60045
60114
  });
60046
60115
  },
60047
- initSeries: function initSeries(changeStudy) {
60048
- /**
60049
- * 初始化study
60050
- * - 初始化 cornerstoneWADOImageLoader token
60051
- * - 初始化 global toolState (study中存在serverToolState的情况)
60052
- * - 初始化 手术路径规划的缓存数据 (study中是否存在centesisPath)
60053
- * - 初始化layout(外部传入)
60054
- * - 初始化工具栏(外部传入)
60055
- * - 初始化series
60056
- * - 设置当前series
60057
- * - 初始化viewport缓存池
60058
- * - 初始化图像预加载
60059
- *
60060
- * 检查io是否为true是的话打开同屏开关
60061
- */
60062
- console.log('[paladin] - init series');
60063
- cornerstoneWADOImageLoader.configure({
60064
- beforeSend: function beforeSend(xhr) {
60065
- xhr.setRequestHeader('Authorization', "bearer ".concat(ownProps.token));
60066
- }
60067
- });
60116
+ initSeries: function () {
60117
+ var _initSeries2 = asyncToGenerator( /*#__PURE__*/regenerator.mark(function _callee(changeStudy, callback) {
60118
+ var data, synchronizer, linkSynchronizer, linkImageModeSynchronizer, linkScrollSynchronizer, options, _study, series, needCheckMultiFrame, hasMultiFrame, i, item, wado, url, dataSet, numFrames, imageIds, _i, imageId, frameTime, fps, seriesCurrentIndex, firstReady, maxRequest, retry, clearCacheEveryLoad;
60068
60119
 
60069
- if (ownProps.study && ownProps.study[0].serverToolState) {
60070
- var data = lodash$1.cloneDeep(ownProps.study[0].serverToolState);
60071
- _default$E.globalImageIdSpecificToolStateManager.restoreToolState(data);
60072
- }
60120
+ return regenerator.wrap(function _callee$(_context) {
60121
+ while (1) {
60122
+ switch (_context.prev = _context.next) {
60123
+ case 0:
60124
+ /**
60125
+ * 初始化study
60126
+ * - 初始化 cornerstoneWADOImageLoader token
60127
+ * - 初始化 global toolState (study中存在serverToolState的情况)
60128
+ * - 初始化 手术路径规划的缓存数据 (study中是否存在centesisPath)
60129
+ * - 初始化layout(外部传入)
60130
+ * - 初始化工具栏(外部传入)
60131
+ * - 初始化series(加入多帧dicom的情况)
60132
+ * - 设置当前series
60133
+ * - 初始化viewport缓存池
60134
+ * - 初始化图像预加载
60135
+ *
60136
+ * 检查io是否为true是的话打开同屏开关
60137
+ */
60138
+ console.log('[paladin] - init series');
60139
+ cornerstoneWADOImageLoader.configure({
60140
+ beforeSend: function beforeSend(xhr) {
60141
+ xhr.setRequestHeader('Authorization', "bearer ".concat(ownProps.token));
60142
+ }
60143
+ });
60144
+
60145
+ if (ownProps.study && ownProps.study[0].serverToolState) {
60146
+ data = lodash$1.cloneDeep(ownProps.study[0].serverToolState);
60147
+ _default$E.globalImageIdSpecificToolStateManager.restoreToolState(data);
60148
+ }
60073
60149
 
60074
- if (ownProps.study && ownProps.study[0].centesisPath) {
60075
- initCentesisConfig(lodash$1.cloneDeep(ownProps.study[0].centesisPath));
60076
- } // 先重置所有
60077
- // 1.重置预加载状态
60150
+ if (ownProps.study && ownProps.study[0].centesisPath) {
60151
+ initCentesisConfig(lodash$1.cloneDeep(ownProps.study[0].centesisPath));
60152
+ } // 先重置所有
60153
+ // 1.重置预加载状态
60078
60154
 
60079
60155
 
60080
- resetTaskPool(); // 2.重置滚动条
60156
+ resetTaskPool(); // 2.重置滚动条
60081
60157
 
60082
- propsFromDispatch.setScrollLine(0); // 3.重置redux - viewport内容
60158
+ propsFromDispatch.setScrollLine(0); // 3.重置redux - viewport内容
60083
60159
 
60084
- propsFromDispatch.resetViewPort(); // 4.重置工具栏状态
60160
+ propsFromDispatch.resetViewPort(); // 4.重置工具栏状态
60085
60161
 
60086
- propsFromDispatch.resetToolsState(); // 5.重置loaded(预加载关联进度条的数据)
60162
+ propsFromDispatch.resetToolsState(); // 5.重置loaded(预加载关联进度条的数据)
60087
60163
 
60088
- propsFromDispatch.clearSeriesLoaded(); // 6.重置所有sync element
60164
+ propsFromDispatch.clearSeriesLoaded(); // 6.重置所有sync element
60089
60165
 
60090
- var synchronizer = propsFromState.synchronizer,
60091
- linkSynchronizer = propsFromState.linkSynchronizer,
60092
- linkImageModeSynchronizer = propsFromState.linkImageModeSynchronizer,
60093
- linkScrollSynchronizer = propsFromState.linkScrollSynchronizer;
60094
- synchronizer.destroy();
60095
- linkSynchronizer.destroy();
60096
- linkImageModeSynchronizer.destroy();
60097
- linkScrollSynchronizer.destroy();
60166
+ synchronizer = propsFromState.synchronizer, linkSynchronizer = propsFromState.linkSynchronizer, linkImageModeSynchronizer = propsFromState.linkImageModeSynchronizer, linkScrollSynchronizer = propsFromState.linkScrollSynchronizer;
60167
+ synchronizer.destroy();
60168
+ linkSynchronizer.destroy();
60169
+ linkImageModeSynchronizer.destroy();
60170
+ linkScrollSynchronizer.destroy();
60098
60171
 
60099
60172
 
60100
- var options = ownProps.options;
60173
+ options = ownProps.options;
60101
60174
 
60102
- if (options) {
60103
- if (options.layout && !lodash$1.isEmpty(options.layout)) {
60104
- propsFromDispatch.setLayout(options.layout);
60105
- }
60175
+ if (options) {
60176
+ if (options.layout && !lodash$1.isEmpty(options.layout)) {
60177
+ propsFromDispatch.setLayout(options.layout);
60178
+ }
60106
60179
 
60107
- if (options.tools && options.tools.length > 0) {
60108
- propsFromDispatch.setTools(options.tools);
60109
- }
60110
- }
60180
+ if (options.tools && options.tools.length > 0) {
60181
+ propsFromDispatch.setTools(options.tools);
60182
+ }
60183
+ }
60111
60184
 
60112
- var _study = lodash$1.cloneDeep(ownProps.study);
60185
+ _study = lodash$1.cloneDeep(ownProps.study);
60186
+ series = _study[0].series; // 设置ai结果
60113
60187
 
60114
- var series = _study[0].series; // 设置ai结果
60188
+ if (ownProps.aiResult && ownProps.aiResult.inspectionDetails && ownProps.aiResult.inspectionDetails.length > 0) {
60189
+ set$1('aiResult', ownProps.aiResult.inspectionDetails);
60190
+ } // 初始化之前做一遍multi-frame的检查 将多帧dicom拆分为多image的常规序列
60191
+ // 全部序列都为1的study才需要做多帧dicom check
60115
60192
 
60116
- if (ownProps.aiResult && ownProps.aiResult.inspectionDetails && ownProps.aiResult.inspectionDetails.length > 0) {
60117
- set$1('aiResult', ownProps.aiResult.inspectionDetails);
60118
- } // 初始化series
60119
60193
 
60194
+ needCheckMultiFrame = true;
60195
+ hasMultiFrame = false;
60196
+ lodash$1.forEach(series, function (v) {
60197
+ if (v.numberOfSeriesRelatedInstances && v.numberOfSeriesRelatedInstances > 1) {
60198
+ needCheckMultiFrame = false;
60199
+ }
60200
+ });
60120
60201
 
60121
- _initSeries(series); // 初始化seriesCurrentIndex
60202
+ if (!needCheckMultiFrame) {
60203
+ _context.next = 41;
60204
+ break;
60205
+ }
60122
60206
 
60207
+ i = 0;
60123
60208
 
60124
- var seriesCurrentIndex = Array.apply(null, Array(series.length)).map(function () {
60125
- return 0;
60126
- });
60127
- propsFromDispatch.initSeriesCurrentIndex(seriesCurrentIndex); // 设置当前series
60209
+ case 25:
60210
+ if (!(i < series.length)) {
60211
+ _context.next = 41;
60212
+ break;
60213
+ }
60128
60214
 
60129
- setCurrentSeries(series[0]); // 初始化viewport缓存池
60215
+ item = series[i];
60130
60216
 
60131
- init(series); // 初始化图像预加载
60217
+ if (!(item.numberOfSeriesRelatedInstances && item.numberOfSeriesRelatedInstances === 1)) {
60218
+ _context.next = 38;
60219
+ break;
60220
+ }
60132
60221
 
60133
- var firstReady = true;
60134
- initTaskPool(series, {
60135
- maxRequest: options && options.maxRequest,
60136
- executeCallback: function executeCallback(task, taskPoolLength) {
60137
- if (taskPoolLength === 0 && firstReady) {
60138
- firstReady = false;
60139
- ownProps.onLoadReady && ownProps.onLoadReady();
60140
- }
60222
+ wado = lodash$1.cloneDeep(item.imageIds[0].split(':'));
60223
+ wado.shift();
60224
+ url = wado.join(':');
60225
+ _context.next = 33;
60226
+ return cornerstoneWADOImageLoader.wadouri.dataSetCacheManager.load(url, cornerstoneWADOImageLoader.internal.xhrRequest);
60227
+
60228
+ case 33:
60229
+ dataSet = _context.sent;
60230
+ // 这边如果加载了的话 进度条也需要匹配上
60231
+ propsFromDispatch.setSeriesLoaded(item.seriesInstanceUID);
60232
+ numFrames = dataSet.intString('x00280008');
60233
+
60234
+ if (numFrames && numFrames > 1) {
60235
+ hasMultiFrame = true;
60236
+ imageIds = [];
60237
+
60238
+ for (_i = 0; _i < numFrames; _i++) {
60239
+ imageId = "wadouri:" + url + "?frame=" + _i;
60240
+ imageIds.push(imageId);
60241
+ }
60141
60242
 
60142
- if (task.extra && task.extra.series) {
60143
- propsFromDispatch.setSeriesLoaded(task.extra.series);
60243
+ frameTime = dataSet.intString('x00181063');
60244
+ fps = parseInt(1000 / frameTime, 10) || 3;
60245
+ series[i] = _objectSpread$M(_objectSpread$M({}, item), {}, {
60246
+ imageIds: imageIds,
60247
+ numberOfSeriesRelatedInstances: numFrames,
60248
+ isMultiFrame: true,
60249
+ frameFps: fps
60250
+ });
60251
+ }
60252
+
60253
+ cornerstoneWADOImageLoader.wadouri.dataSetCacheManager.unload(url);
60254
+
60255
+ case 38:
60256
+ i++;
60257
+ _context.next = 25;
60258
+ break;
60259
+
60260
+ case 41:
60261
+ // 初始化seriesCurrentIndex
60262
+ seriesCurrentIndex = Array.apply(null, Array(series.length)).map(function () {
60263
+ return 0;
60264
+ });
60265
+ propsFromDispatch.initSeriesCurrentIndex(seriesCurrentIndex); // 设置当前series
60266
+
60267
+ setCurrentSeries(series[0]); // 初始化viewport缓存池
60268
+
60269
+ init(series); // 初始化图像预加载
60270
+
60271
+ firstReady = true;
60272
+ maxRequest = options && options.maxRequest;
60273
+ retry = options && options.retry;
60274
+ clearCacheEveryLoad = false;
60275
+
60276
+ if (hasMultiFrame) {
60277
+ maxRequest = 1;
60278
+ retry = 0;
60279
+ clearCacheEveryLoad = true;
60280
+ } // 多帧的情况不要预加载 只要初始化设置
60281
+
60282
+
60283
+ initTaskPool(hasMultiFrame ? [] : series, {
60284
+ maxRequest: maxRequest,
60285
+ retry: retry,
60286
+ clearCacheEveryLoad: clearCacheEveryLoad,
60287
+ executeCallback: function executeCallback(task, taskPoolLength) {
60288
+ if (taskPoolLength === 0 && firstReady) {
60289
+ firstReady = false;
60290
+ ownProps.onLoadReady && ownProps.onLoadReady();
60291
+ }
60292
+
60293
+ if (task.extra && task.extra.series) {
60294
+ propsFromDispatch.setSeriesLoaded(task.extra.series);
60295
+ }
60296
+ }
60297
+ }); // 初始化series 放到最后为了预加载的进度条和viewport中的loadimage有时间差
60298
+
60299
+ _initSeries(series); // io
60300
+
60301
+
60302
+ if (ownProps.io) {
60303
+ propsFromDispatch.openIO();
60304
+ } else {
60305
+ propsFromDispatch.closeIO();
60306
+ } // for multi-frame situation
60307
+
60308
+
60309
+ callback && callback({
60310
+ hasChange: hasMultiFrame,
60311
+ study: [_objectSpread$M(_objectSpread$M({}, ownProps.study[0]), {}, {
60312
+ series: series
60313
+ })]
60314
+ });
60315
+
60316
+ case 54:
60317
+ case "end":
60318
+ return _context.stop();
60319
+ }
60144
60320
  }
60145
- }
60146
- });
60321
+ }, _callee);
60322
+ }));
60147
60323
 
60148
- if (ownProps.io) {
60149
- propsFromDispatch.openIO();
60150
- } else {
60151
- propsFromDispatch.closeIO();
60324
+ function initSeries(_x, _x2) {
60325
+ return _initSeries2.apply(this, arguments);
60152
60326
  }
60153
- },
60327
+
60328
+ return initSeries;
60329
+ }(),
60154
60330
  unmount: function unmount() {
60155
60331
  resetTaskPool();
60156
60332
  propsFromDispatch.initSeries([]); // 如果在op模式的话 退出op mode