hellfire 0.23.1 → 0.23.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/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
  };
@@ -29976,23 +29985,23 @@ var __signature__$1K = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoa
29976
29985
  return a;
29977
29986
  };
29978
29987
 
29979
- function getActiveElement(mode, activeIndex, imageActiveIndex, MPR, mprActiveIndex, Surgery, surgeryActiveIndex) {
29988
+ function getActiveElement(mode, activeIndex, imageActiveIndex, MPR, mprActiveIndex, Surgery, surgeryActiveIndex, CPR) {
29980
29989
  // 1.序列模式
29981
29990
  // 2.图像模式
29982
29991
  // 3.mpr
29983
29992
  // 4.手术路径规划
29984
- var index = Surgery ? surgeryActiveIndex : MPR ? mprActiveIndex : mode === 'seriesMode' ? activeIndex : imageActiveIndex;
29993
+ var index = Surgery || CPR ? surgeryActiveIndex : MPR ? mprActiveIndex : mode === 'seriesMode' ? activeIndex : imageActiveIndex;
29985
29994
  return getElement(index);
29986
29995
  }
29987
29996
  function getElement(index) {
29988
29997
  return document.getElementById("paladin-viewport-".concat(index));
29989
29998
  }
29990
- function getRealActiveIndex(mode, activeIndex, imageActiveIndex, MPR, mprActiveIndex, Surgery, surgeryActiveIndex) {
29999
+ function getRealActiveIndex(mode, activeIndex, imageActiveIndex, MPR, mprActiveIndex, Surgery, surgeryActiveIndex, CPR) {
29991
30000
  // 1.序列模式
29992
30001
  // 2.图像模式
29993
30002
  // 3.mpr
29994
30003
  // 4.手术路径规划
29995
- return Surgery ? surgeryActiveIndex : MPR ? mprActiveIndex : mode === 'seriesMode' ? activeIndex : imageActiveIndex;
30004
+ return Surgery || CPR ? surgeryActiveIndex : MPR ? mprActiveIndex : mode === 'seriesMode' ? activeIndex : imageActiveIndex;
29996
30005
  }
29997
30006
 
29998
30007
  (function () {
@@ -30533,7 +30542,6 @@ var _default$x = function _default(element) {
30533
30542
  var __signature__$1N = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {
30534
30543
  return a;
30535
30544
  };
30536
- var scrollToIndex$1 = cornerstoneTools.importInternal('util/scrollToIndex');
30537
30545
  var getToolState$f = cornerstoneTools.getToolState;
30538
30546
  var globalCineTimer;
30539
30547
 
@@ -30567,7 +30575,7 @@ function startAutoCine(activeElement, options) {
30567
30575
  newImageIndex = max;
30568
30576
  }
30569
30577
 
30570
- scrollToIndex$1(activeElement, newImageIndex);
30578
+ cornerstoneTools.scrollToIndex(activeElement, newImageIndex);
30571
30579
  }, timeStap);
30572
30580
  }
30573
30581
 
@@ -30590,7 +30598,6 @@ var _default$y = {
30590
30598
  return;
30591
30599
  }
30592
30600
 
30593
- reactHotLoader.register(scrollToIndex$1, "scrollToIndex", "/Users/huyeqing/workspace/chainz/paladin/src/cornerstone-plus/cornerstone-tools-plus/custom/autoCine.js");
30594
30601
  reactHotLoader.register(getToolState$f, "getToolState", "/Users/huyeqing/workspace/chainz/paladin/src/cornerstone-plus/cornerstone-tools-plus/custom/autoCine.js");
30595
30602
  reactHotLoader.register(globalCineTimer, "globalCineTimer", "/Users/huyeqing/workspace/chainz/paladin/src/cornerstone-plus/cornerstone-tools-plus/custom/autoCine.js");
30596
30603
  reactHotLoader.register(startAutoCine, "startAutoCine", "/Users/huyeqing/workspace/chainz/paladin/src/cornerstone-plus/cornerstone-tools-plus/custom/autoCine.js");
@@ -34102,21 +34109,21 @@ var SvgViewMode = function SvgViewMode(props) {
34102
34109
 
34103
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); }
34104
34111
 
34105
- var _ref$9 = /*#__PURE__*/React__default.createElement("path", {
34106
- 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"
34107
- });
34108
-
34109
- var _ref2$4 = /*#__PURE__*/React__default.createElement("path", {
34110
- 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"
34111
- });
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
+ }));
34112
34119
 
34113
- var SvgBrowse = function SvgBrowse(props) {
34120
+ var Svg2D = function Svg2D(props) {
34114
34121
  return /*#__PURE__*/React__default.createElement("svg", _extends$9({
34115
- width: 60,
34116
- height: 56,
34117
- viewBox: "1210 0 60 56",
34122
+ width: 66,
34123
+ height: 66,
34124
+ viewBox: "0 0 66 66",
34118
34125
  fill: "currentColor"
34119
- }, props), _ref$9, _ref2$4);
34126
+ }, props), _ref$9);
34120
34127
  };
34121
34128
 
34122
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); }
@@ -34373,7 +34380,7 @@ var _ref$p = /*#__PURE__*/React__default.createElement("linearGradient", {
34373
34380
  stopColor: "#efefef"
34374
34381
  }));
34375
34382
 
34376
- var _ref2$5 = /*#__PURE__*/React__default.createElement("path", {
34383
+ var _ref2$4 = /*#__PURE__*/React__default.createElement("path", {
34377
34384
  fill: "url(#vr-color_svg__a)",
34378
34385
  stroke: "#FFF",
34379
34386
  strokeMiterlimit: 10,
@@ -34386,7 +34393,7 @@ var SvgVrColor = function SvgVrColor(props) {
34386
34393
  height: 283.46,
34387
34394
  viewBox: "0 0 283.46 283.46",
34388
34395
  fill: "currentColor"
34389
- }, props), _ref$p, _ref2$5);
34396
+ }, props), _ref$p, _ref2$4);
34390
34397
  };
34391
34398
 
34392
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); }
@@ -34395,7 +34402,7 @@ var _ref$q = /*#__PURE__*/React__default.createElement("path", {
34395
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"
34396
34403
  });
34397
34404
 
34398
- var _ref2$6 = /*#__PURE__*/React__default.createElement("circle", {
34405
+ var _ref2$5 = /*#__PURE__*/React__default.createElement("circle", {
34399
34406
  cx: 141.425,
34400
34407
  cy: 141.428,
34401
34408
  r: 20.674
@@ -34407,7 +34414,7 @@ var SvgVrCenter = function SvgVrCenter(props) {
34407
34414
  height: 283.46,
34408
34415
  viewBox: "0 0 283.46 283.46",
34409
34416
  fill: "currentColor"
34410
- }, props), _ref$q, _ref2$6);
34417
+ }, props), _ref$q, _ref2$5);
34411
34418
  };
34412
34419
 
34413
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); }
@@ -34598,7 +34605,7 @@ var _ref$D = /*#__PURE__*/React__default.createElement("g", {
34598
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"
34599
34606
  }));
34600
34607
 
34601
- var _ref2$7 = /*#__PURE__*/React__default.createElement("path", {
34608
+ var _ref2$6 = /*#__PURE__*/React__default.createElement("path", {
34602
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"
34603
34610
  });
34604
34611
 
@@ -34613,7 +34620,7 @@ var SvgCentesisStart = function SvgCentesisStart(props) {
34613
34620
  height: 141.73,
34614
34621
  viewBox: "0 0 141.73 141.73",
34615
34622
  fill: "currentColor"
34616
- }, props), _ref$D, _ref2$7, _ref3);
34623
+ }, props), _ref$D, _ref2$6, _ref3);
34617
34624
  };
34618
34625
 
34619
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); }
@@ -34624,7 +34631,7 @@ var _ref$E = /*#__PURE__*/React__default.createElement("g", {
34624
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"
34625
34632
  }));
34626
34633
 
34627
- var _ref2$8 = /*#__PURE__*/React__default.createElement("path", {
34634
+ var _ref2$7 = /*#__PURE__*/React__default.createElement("path", {
34628
34635
  opacity: 0.7,
34629
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"
34630
34637
  });
@@ -34639,14 +34646,14 @@ var SvgCentesisEnd = function SvgCentesisEnd(props) {
34639
34646
  height: 141.73,
34640
34647
  viewBox: "0 0 141.73 141.73",
34641
34648
  fill: "currentColor"
34642
- }, props), _ref$E, _ref2$8, _ref3$1);
34649
+ }, props), _ref$E, _ref2$7, _ref3$1);
34643
34650
  };
34644
34651
 
34645
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); }
34646
34653
 
34647
34654
  var _ref$F = /*#__PURE__*/React__default.createElement("defs", null, /*#__PURE__*/React__default.createElement("style", null));
34648
34655
 
34649
- var _ref2$9 = /*#__PURE__*/React__default.createElement("path", {
34656
+ var _ref2$8 = /*#__PURE__*/React__default.createElement("path", {
34650
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"
34651
34658
  });
34652
34659
 
@@ -34661,14 +34668,14 @@ var SvgReferencePosition = function SvgReferencePosition(props) {
34661
34668
  width: 200,
34662
34669
  height: 200,
34663
34670
  fill: "currentColor"
34664
- }, props), _ref$F, _ref2$9, _ref3$2);
34671
+ }, props), _ref$F, _ref2$8, _ref3$2);
34665
34672
  };
34666
34673
 
34667
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); }
34668
34675
 
34669
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;)}"));
34670
34677
 
34671
- var _ref2$a = /*#__PURE__*/React__default.createElement("path", {
34678
+ var _ref2$9 = /*#__PURE__*/React__default.createElement("path", {
34672
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"
34673
34680
  });
34674
34681
 
@@ -34679,7 +34686,7 @@ var SvgPolygon = function SvgPolygon(props) {
34679
34686
  width: 200,
34680
34687
  height: 200,
34681
34688
  fill: "currentColor"
34682
- }, props), _ref$G, _ref2$a);
34689
+ }, props), _ref$G, _ref2$9);
34683
34690
  };
34684
34691
 
34685
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); }
@@ -37008,8 +37015,9 @@ var mapStateToProps$1 = function mapStateToProps(state) {
37008
37015
  var _state$paladin$tools$ = state.paladin.tools.action,
37009
37016
  mode = _state$paladin$tools$.mode,
37010
37017
  MPR = _state$paladin$tools$.MPR,
37011
- Surgery = _state$paladin$tools$.Surgery;
37012
- 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);
37013
37021
  return {
37014
37022
  activeElement: activeElement
37015
37023
  };
@@ -37280,8 +37288,9 @@ var mapStateToProps$2 = function mapStateToProps(state) {
37280
37288
  var _state$paladin$tools$ = state.paladin.tools.action,
37281
37289
  mode = _state$paladin$tools$.mode,
37282
37290
  MPR = _state$paladin$tools$.MPR,
37283
- Surgery = _state$paladin$tools$.Surgery;
37284
- 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);
37285
37294
  return {
37286
37295
  activeElement: activeElement,
37287
37296
  MPR: MPR,
@@ -37385,7 +37394,7 @@ var _ref$R = /*#__PURE__*/React__default.createElement("path", {
37385
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"
37386
37395
  });
37387
37396
 
37388
- var _ref2$b = /*#__PURE__*/React__default.createElement("g", {
37397
+ var _ref2$a = /*#__PURE__*/React__default.createElement("g", {
37389
37398
  fill: "#040000"
37390
37399
  }, /*#__PURE__*/React__default.createElement("path", {
37391
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"
@@ -37397,7 +37406,7 @@ var SvgFlipHorizontal = function SvgFlipHorizontal(props) {
37397
37406
  height: 283.46,
37398
37407
  viewBox: "0 0 283.46 283.46",
37399
37408
  fill: "currentColor"
37400
- }, props), _ref$R, _ref2$b);
37409
+ }, props), _ref$R, _ref2$a);
37401
37410
  };
37402
37411
 
37403
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); }
@@ -37407,7 +37416,7 @@ var _ref$S = /*#__PURE__*/React__default.createElement("path", {
37407
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"
37408
37417
  });
37409
37418
 
37410
- var _ref2$c = /*#__PURE__*/React__default.createElement("g", {
37419
+ var _ref2$b = /*#__PURE__*/React__default.createElement("g", {
37411
37420
  fill: "#040000"
37412
37421
  }, /*#__PURE__*/React__default.createElement("path", {
37413
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"
@@ -37419,7 +37428,7 @@ var SvgFlipVertical = function SvgFlipVertical(props) {
37419
37428
  height: 283.46,
37420
37429
  viewBox: "0 0 283.46 283.46",
37421
37430
  fill: "currentColor"
37422
- }, props), _ref$S, _ref2$c);
37431
+ }, props), _ref$S, _ref2$b);
37423
37432
  };
37424
37433
 
37425
37434
  (function () {
@@ -37539,8 +37548,9 @@ var mapStateToProps$3 = function mapStateToProps(state) {
37539
37548
  var _state$paladin$tools$ = state.paladin.tools.action,
37540
37549
  mode = _state$paladin$tools$.mode,
37541
37550
  MPR = _state$paladin$tools$.MPR,
37542
- Surgery = _state$paladin$tools$.Surgery;
37543
- 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);
37544
37554
  return {
37545
37555
  activeElement: activeElement
37546
37556
  };
@@ -38458,9 +38468,10 @@ var mapStateToProps$4 = function mapStateToProps(state) {
38458
38468
  showOverlayText = _state$paladin$tools$.showOverlayText,
38459
38469
  mode = _state$paladin$tools$.mode,
38460
38470
  MPR = _state$paladin$tools$.MPR,
38461
- Surgery = _state$paladin$tools$.Surgery;
38471
+ Surgery = _state$paladin$tools$.Surgery,
38472
+ CPR = _state$paladin$tools$.CPR;
38462
38473
  var toolMode = state.paladin.tools.customization.toolMode;
38463
- var activeElement = getActiveElement(mode, activeIndex, imageActiveIndex, MPR, mprActiveIndex, Surgery, surgeryActiveIndex);
38474
+ var activeElement = getActiveElement(mode, activeIndex, imageActiveIndex, MPR, mprActiveIndex, Surgery, surgeryActiveIndex, CPR);
38464
38475
  return {
38465
38476
  activeElement: activeElement,
38466
38477
  showOverlayText: showOverlayText,
@@ -38939,8 +38950,9 @@ var mapStateToProps$5 = function mapStateToProps(state) {
38939
38950
  MPR = _state$paladin$tools$.MPR,
38940
38951
  continuousMeasure = _state$paladin$tools$.continuousMeasure,
38941
38952
  Surgery = _state$paladin$tools$.Surgery,
38942
- IO = _state$paladin$tools$.IO;
38943
- 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);
38944
38956
  return {
38945
38957
  activeElement: activeElement,
38946
38958
  activeTool: activeTool,
@@ -43595,7 +43607,7 @@ var Cine = /*#__PURE__*/function (_Component) {
43595
43607
  }, /*#__PURE__*/React__default.createElement(Input$1, {
43596
43608
  type: "tel",
43597
43609
  disabled: true,
43598
- value: cineFps,
43610
+ value: lodash$1.round(cineFps),
43599
43611
  style: {
43600
43612
  textAlign: 'center'
43601
43613
  }
@@ -43780,7 +43792,7 @@ var mergeProps$6 = function mergeProps(propsFromState, propsFromDispatch, ownPro
43780
43792
  break;
43781
43793
 
43782
43794
  case 'fpsAdd':
43783
- var fps = cineFps < 10 ? cineFps + 1 : 10;
43795
+ var fps = cineFps < 10 ? lodash$1.round(cineFps) + 1 : 10;
43784
43796
  setCineFps(fps); // 如果正在播放 则重置播放属性
43785
43797
 
43786
43798
  if (Cine) {
@@ -43793,7 +43805,7 @@ var mergeProps$6 = function mergeProps(propsFromState, propsFromDispatch, ownPro
43793
43805
  break;
43794
43806
 
43795
43807
  case 'fpsMinus':
43796
- var _fps = cineFps > 1 ? cineFps - 1 : 1;
43808
+ var _fps = cineFps > 1 ? lodash$1.round(cineFps) - 1 : 1;
43797
43809
 
43798
43810
  setCineFps(_fps);
43799
43811
 
@@ -44356,13 +44368,15 @@ var mapStateToProps$9 = function mapStateToProps(state) {
44356
44368
  var _state$paladin$tools$ = state.paladin.tools.action,
44357
44369
  mode = _state$paladin$tools$.mode,
44358
44370
  MPR = _state$paladin$tools$.MPR,
44359
- Surgery = _state$paladin$tools$.Surgery;
44360
- var activeElement = getActiveElement(mode, activeIndex, imageActiveIndex, MPR, mprActiveIndex, Surgery, surgeryActiveIndex);
44371
+ Surgery = _state$paladin$tools$.Surgery,
44372
+ CPR = _state$paladin$tools$.CPR;
44373
+ var activeElement = getActiveElement(mode, activeIndex, imageActiveIndex, MPR, mprActiveIndex, Surgery, surgeryActiveIndex, CPR);
44361
44374
  return {
44362
44375
  activeElement: activeElement,
44363
44376
  MPR: MPR,
44364
44377
  mode: mode,
44365
- Surgery: Surgery
44378
+ Surgery: Surgery,
44379
+ CPR: CPR
44366
44380
  };
44367
44381
  };
44368
44382
 
@@ -44374,7 +44388,8 @@ var mergeProps$9 = function mergeProps(propsFromState, propsFromDispatch, ownPro
44374
44388
  var activeElement = propsFromState.activeElement,
44375
44389
  MPR = propsFromState.MPR,
44376
44390
  mode = propsFromState.mode,
44377
- Surgery = propsFromState.Surgery;
44391
+ Surgery = propsFromState.Surgery,
44392
+ CPR = propsFromState.CPR;
44378
44393
  return _objectSpread$t(_objectSpread$t({}, ownProps), {}, {
44379
44394
  onRowClick: function onRowClick(key) {
44380
44395
  switch (key) {
@@ -44384,6 +44399,11 @@ var mergeProps$9 = function mergeProps(propsFromState, propsFromDispatch, ownPro
44384
44399
 
44385
44400
  case 'zoom':
44386
44401
  resetZoom(activeElement, MPR);
44402
+
44403
+ if (MPR || Surgery || CPR) {
44404
+ set('scale')(activeElement, 0);
44405
+ }
44406
+
44387
44407
  break;
44388
44408
 
44389
44409
  case 'pan':
@@ -44401,7 +44421,7 @@ var mergeProps$9 = function mergeProps(propsFromState, propsFromDispatch, ownPro
44401
44421
  case 'all':
44402
44422
  reset$1(activeElement, mode);
44403
44423
 
44404
- if (MPR || Surgery) {
44424
+ if (MPR || Surgery || CPR) {
44405
44425
  set('scale')(activeElement, 0);
44406
44426
  }
44407
44427
 
@@ -46804,7 +46824,7 @@ var _ref$15 = /*#__PURE__*/React__default.createElement("path", {
46804
46824
  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"
46805
46825
  });
46806
46826
 
46807
- var _ref2$d = /*#__PURE__*/React__default.createElement("path", {
46827
+ var _ref2$c = /*#__PURE__*/React__default.createElement("path", {
46808
46828
  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"
46809
46829
  });
46810
46830
 
@@ -46818,7 +46838,7 @@ var SvgMpr = function SvgMpr(props) {
46818
46838
  height: 142,
46819
46839
  viewBox: "0 0 142 142",
46820
46840
  fill: "currentColor"
46821
- }, props), _ref$15, _ref2$d, _ref3$3);
46841
+ }, props), _ref$15, _ref2$c, _ref3$3);
46822
46842
  };
46823
46843
 
46824
46844
  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); }
@@ -46843,7 +46863,7 @@ var _ref$17 = /*#__PURE__*/React__default.createElement("path", {
46843
46863
  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"
46844
46864
  });
46845
46865
 
46846
- var _ref2$e = /*#__PURE__*/React__default.createElement("path", {
46866
+ var _ref2$d = /*#__PURE__*/React__default.createElement("path", {
46847
46867
  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"
46848
46868
  });
46849
46869
 
@@ -46857,7 +46877,7 @@ var SvgVr = function SvgVr(props) {
46857
46877
  height: 28.346,
46858
46878
  viewBox: "0 0 28.346 28.346",
46859
46879
  fill: "currentColor"
46860
- }, props), _ref$17, _ref2$e, _ref3$4);
46880
+ }, props), _ref$17, _ref2$d, _ref3$4);
46861
46881
  };
46862
46882
 
46863
46883
  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); }
@@ -47114,7 +47134,7 @@ var _ref$19 = /*#__PURE__*/React__default.createElement("g", {
47114
47134
  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"
47115
47135
  }));
47116
47136
 
47117
- var _ref2$f = /*#__PURE__*/React__default.createElement("path", {
47137
+ var _ref2$e = /*#__PURE__*/React__default.createElement("path", {
47118
47138
  fill: "#FFF",
47119
47139
  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"
47120
47140
  });
@@ -47125,7 +47145,7 @@ var SvgCentesis = function SvgCentesis(props) {
47125
47145
  height: 141.73,
47126
47146
  viewBox: "0 0 141.73 141.73",
47127
47147
  fill: "currentColor"
47128
- }, props), _ref$19, _ref2$f);
47148
+ }, props), _ref$19, _ref2$e);
47129
47149
  };
47130
47150
 
47131
47151
  (function () {
@@ -47277,7 +47297,7 @@ var DicomToolLineMode = /*#__PURE__*/function (_Component) {
47277
47297
  SurgeryExit: {
47278
47298
  name: "SurgeryExit",
47279
47299
  tooltip: "返回二维影像区",
47280
- component: /*#__PURE__*/React__default.createElement(SvgBrowse, null),
47300
+ component: /*#__PURE__*/React__default.createElement(Svg2D, null),
47281
47301
  inActive: true,
47282
47302
  onClick: function onClick() {
47283
47303
  _this2.props.exit3D('Surgery');
@@ -49804,7 +49824,7 @@ var DicomTool = /*#__PURE__*/function (_Component) {
49804
49824
  MprExit: {
49805
49825
  name: "MprExit",
49806
49826
  tooltip: "返回二维影像区",
49807
- component: /*#__PURE__*/React__default.createElement(SvgBrowse, null),
49827
+ component: /*#__PURE__*/React__default.createElement(Svg2D, null),
49808
49828
  inActive: true,
49809
49829
  onClick: function onClick() {
49810
49830
  _this.props.exit3D();
@@ -50247,7 +50267,7 @@ function _objectSpread$B(target) { for (var i = 1; i < arguments.length; i++) {
50247
50267
  var __signature__$2$ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {
50248
50268
  return a;
50249
50269
  };
50250
- var scrollToIndex$2 = _default$E.importInternal('util/scrollToIndex');
50270
+ var scrollToIndex$1 = _default$E.scrollToIndex;
50251
50271
 
50252
50272
  var mapStateToProps$e = function mapStateToProps(state) {
50253
50273
  var _state$paladin$tools$ = state.paladin.tools.customization,
@@ -50356,7 +50376,7 @@ var mapStateToProps$e = function mapStateToProps(state) {
50356
50376
  });
50357
50377
  }
50358
50378
 
50359
- var realActiveIndex = getRealActiveIndex(mode, activeIndex, imageActiveIndex, MPR, mprActiveIndex, Surgery, surgeryActiveIndex);
50379
+ var realActiveIndex = getRealActiveIndex(mode, activeIndex, imageActiveIndex, MPR, mprActiveIndex, Surgery, surgeryActiveIndex, CPR);
50360
50380
  return {
50361
50381
  toolMode: toolMode,
50362
50382
  activeTool: activeTool,
@@ -50433,7 +50453,7 @@ var mergeProps$e = function mergeProps(propsFromState, propsFromDispatch, ownPro
50433
50453
  Surgery = propsFromState.Surgery,
50434
50454
  MIP = propsFromState.MIP,
50435
50455
  CPR = propsFromState.CPR;
50436
- var maxIndex = currentSeries.imageIds.length - 1;
50456
+ var maxIndex = currentSeries && currentSeries.imageIds.length - 1;
50437
50457
  return _objectSpread$B(_objectSpread$B(_objectSpread$B(_objectSpread$B({}, ownProps), propsFromState), propsFromDispatch), {}, {
50438
50458
  reset: function reset() {
50439
50459
  // 重置
@@ -50441,7 +50461,7 @@ var mergeProps$e = function mergeProps(propsFromState, propsFromDispatch, ownPro
50441
50461
 
50442
50462
  reset$1(activeElement, mode);
50443
50463
 
50444
- if (MPR || Surgery) {
50464
+ if (MPR || Surgery || CPR) {
50445
50465
  set('scale')(activeElement, 0);
50446
50466
  }
50447
50467
  },
@@ -50470,7 +50490,7 @@ var mergeProps$e = function mergeProps(propsFromState, propsFromDispatch, ownPro
50470
50490
  prevIndex = maxIndex;
50471
50491
  }
50472
50492
 
50473
- scrollToIndex$2(activeElement, prevIndex);
50493
+ scrollToIndex$1(activeElement, prevIndex);
50474
50494
  },
50475
50495
  nextImage: function nextImage() {
50476
50496
  // 下一张
@@ -50494,7 +50514,7 @@ var mergeProps$e = function mergeProps(propsFromState, propsFromDispatch, ownPro
50494
50514
  nextIndex = 0;
50495
50515
  }
50496
50516
 
50497
- scrollToIndex$2(activeElement, nextIndex);
50517
+ scrollToIndex$1(activeElement, nextIndex);
50498
50518
  },
50499
50519
  // 切换模式
50500
50520
  // key: 1.SeriesMode返回序列模式 2.ImageMode进入图像模式
@@ -50670,7 +50690,7 @@ var mergeProps$e = function mergeProps(propsFromState, propsFromDispatch, ownPro
50670
50690
  case 34:
50671
50691
  if (links && links.length > 0) {
50672
50692
  lodash$1.forEach(links, function (link) {
50673
- scrollToIndex$2(getElement(link), _currentImageIdIndex);
50693
+ scrollToIndex$1(getElement(link), _currentImageIdIndex);
50674
50694
  });
50675
50695
  }
50676
50696
 
@@ -51277,7 +51297,7 @@ var _default$11 = ConnectedDicomTool;
51277
51297
  return;
51278
51298
  }
51279
51299
 
51280
- reactHotLoader.register(scrollToIndex$2, "scrollToIndex", "/Users/huyeqing/workspace/chainz/paladin/src/Viewer/DicomTool/ConnectedDicomTool.js");
51300
+ reactHotLoader.register(scrollToIndex$1, "scrollToIndex", "/Users/huyeqing/workspace/chainz/paladin/src/Viewer/DicomTool/ConnectedDicomTool.js");
51281
51301
  reactHotLoader.register(mapStateToProps$e, "mapStateToProps", "/Users/huyeqing/workspace/chainz/paladin/src/Viewer/DicomTool/ConnectedDicomTool.js");
51282
51302
  reactHotLoader.register(mergeProps$e, "mergeProps", "/Users/huyeqing/workspace/chainz/paladin/src/Viewer/DicomTool/ConnectedDicomTool.js");
51283
51303
  reactHotLoader.register(ConnectedDicomTool, "ConnectedDicomTool", "/Users/huyeqing/workspace/chainz/paladin/src/Viewer/DicomTool/ConnectedDicomTool.js");
@@ -51645,6 +51665,11 @@ var ThumbContent = function ThumbContent(props) {
51645
51665
 
51646
51666
  if (loadedCount && totalCount) {
51647
51667
  width = loadedCount / totalCount;
51668
+ } // 多帧dicom没有预加载进度条
51669
+
51670
+
51671
+ if (series.isMultiFrame) {
51672
+ width = 1;
51648
51673
  }
51649
51674
 
51650
51675
  return /*#__PURE__*/React__default.createElement("div", {
@@ -52364,8 +52389,9 @@ var ViewportOverlay = /*#__PURE__*/function (_PureComponent) {
52364
52389
  var studyDateTime = getStudyDateTime(dicom);
52365
52390
  var seriesNumber = dicom.SeriesNumber.toString();
52366
52391
  var instanceCount = stack.instanceCount || stack.imageIds.length; // 图像模式的数据才有stack.instanceCount
52392
+ // 当前层数 多帧dicom的情况下取currentImageIdIndex
52367
52393
 
52368
- var instanceNumber = dicom.InstanceNumber.toString();
52394
+ var instanceNumber = stack && stack.isMultiFrame ? stack.currentImageIdIndex + 1 : dicom.InstanceNumber.toString();
52369
52395
  var seriesCount = stack.seriesCount ? stack.seriesCount : '';
52370
52396
  var compression = getCompression(dicom);
52371
52397
  var inPlanePhaseEncodingDirection = dicom.InPlanePhaseEncodingDirection.toString(); // 右下
@@ -56016,38 +56042,87 @@ var mergeProps$g = function mergeProps(propsFromState, propsFromDispatch, ownPro
56016
56042
  },
56017
56043
  // 需求:当前选中的序列默认在同步中
56018
56044
  // 当同步未开启,mousedown时把即将激活的元素加入sync中
56019
- onViewPortCellClick: function onViewPortCellClick(e, index, series) {
56020
- var activeIndex = propsFromState.activeIndex,
56021
- Sync = propsFromState.Sync;
56045
+ onViewPortCellClick: function () {
56046
+ var _onViewPortCellClick = asyncToGenerator( /*#__PURE__*/regenerator.mark(function _callee(e, index, series) {
56047
+ var activeIndex, Sync, oldActiveElement, element, dicom, frameTime;
56048
+ return regenerator.wrap(function _callee$(_context) {
56049
+ while (1) {
56050
+ switch (_context.prev = _context.next) {
56051
+ case 0:
56052
+ activeIndex = propsFromState.activeIndex, Sync = propsFromState.Sync;
56022
56053
 
56023
- if (!Sync && !e.ctrlKey && e.button === 0) {
56024
- if (!_.includes(linkSeriesIndex, activeIndex)) {
56025
- var oldActiveElement = getElement(activeIndex);
56054
+ if (!(!Sync && !e.ctrlKey && e.button === 0)) {
56055
+ _context.next = 14;
56056
+ break;
56057
+ }
56026
56058
 
56027
- if (!oldActiveElement) {
56028
- return;
56029
- }
56059
+ if (_.includes(linkSeriesIndex, activeIndex)) {
56060
+ _context.next = 8;
56061
+ break;
56062
+ }
56030
56063
 
56031
- linkSynchronizer.remove(oldActiveElement);
56032
- linkScrollSynchronizer.remove(oldActiveElement);
56033
- }
56064
+ oldActiveElement = getElement(activeIndex);
56034
56065
 
56035
- if (!_.includes(linkSeriesIndex, index)) {
56036
- var element = getElement(index);
56066
+ if (oldActiveElement) {
56067
+ _context.next = 6;
56068
+ break;
56069
+ }
56037
56070
 
56038
- if (!element) {
56039
- return;
56040
- }
56071
+ return _context.abrupt("return");
56041
56072
 
56042
- linkSynchronizer.add(element);
56043
- linkScrollSynchronizer.add(element);
56044
- }
56045
- } // 单击 1.激活当前影像框 2.设置当前series
56073
+ case 6:
56074
+ linkSynchronizer.remove(oldActiveElement);
56075
+ linkScrollSynchronizer.remove(oldActiveElement);
56076
+
56077
+ case 8:
56078
+ if (_.includes(linkSeriesIndex, index)) {
56079
+ _context.next = 14;
56080
+ break;
56081
+ }
56046
56082
 
56083
+ element = getElement(index);
56047
56084
 
56048
- propsFromDispatch.setActiveIndex(index);
56049
- propsFromDispatch.setCurrentSeries(series);
56050
- },
56085
+ if (element) {
56086
+ _context.next = 12;
56087
+ break;
56088
+ }
56089
+
56090
+ return _context.abrupt("return");
56091
+
56092
+ case 12:
56093
+ linkSynchronizer.add(element);
56094
+ linkScrollSynchronizer.add(element);
56095
+
56096
+ case 14:
56097
+ // 单击 1.激活当前影像框 2.设置当前series
56098
+ propsFromDispatch.setActiveIndex(index);
56099
+ propsFromDispatch.setCurrentSeries(series); // 如果有frameTime的话设置fps
56100
+
56101
+ _context.next = 18;
56102
+ return loadAndCacheDicom(series.imageIds[0]);
56103
+
56104
+ case 18:
56105
+ dicom = _context.sent;
56106
+
56107
+ if (dicom && dicom.FrameTime && dicom.FrameTime.value) {
56108
+ frameTime = dicom.FrameTime.value;
56109
+ propsFromDispatch.setCineFps(lodash$1.round(1000 / frameTime, 3) || 3);
56110
+ }
56111
+
56112
+ case 20:
56113
+ case "end":
56114
+ return _context.stop();
56115
+ }
56116
+ }
56117
+ }, _callee);
56118
+ }));
56119
+
56120
+ function onViewPortCellClick(_x, _x2, _x3) {
56121
+ return _onViewPortCellClick.apply(this, arguments);
56122
+ }
56123
+
56124
+ return onViewPortCellClick;
56125
+ }(),
56051
56126
  onDrop: function onDrop(ev, i, stack) {
56052
56127
  // 下方缩略图拖动到布局中的回调
56053
56128
  // 功能注释同ConnectedDicomThumbnail.js中的selectThumb
@@ -56078,7 +56153,8 @@ var ConnectedDicomLayout = reactRedux.connect(mapStateToProps$h, {
56078
56153
  setScrollLine: setScrollLine,
56079
56154
  setLinkSeries: setLinkSeries,
56080
56155
  openOnePickLayout: openOnePickLayout,
56081
- closeOnePickLayout: closeOnePickLayout
56156
+ closeOnePickLayout: closeOnePickLayout,
56157
+ setCineFps: setCineFps
56082
56158
  }, mergeProps$g)(DicomLayout);
56083
56159
  var _default$17 = ConnectedDicomLayout;
56084
56160
 
@@ -59142,16 +59218,25 @@ var DicomView = /*#__PURE__*/function (_Component) {
59142
59218
  createClass(DicomView, [{
59143
59219
  key: "componentWillMount",
59144
59220
  value: function componentWillMount() {
59221
+ var _this2 = this;
59222
+
59145
59223
  window.addEventListener('mousedown', checkAndUnLockToolState); // 初始化序列
59224
+ // callback是为了multi-frame(多帧dicom)的情况修改study
59146
59225
 
59147
- this.props.initSeries(); // 自定义窗值设置
59226
+ this.props.initSeries(null, function (result) {
59227
+ if (result && result.hasChange) {
59228
+ _this2.setState({
59229
+ study: result.study
59230
+ });
59231
+ }
59232
+ }); // 自定义窗值设置
59148
59233
 
59149
59234
  this.props.windowSetting && saveWwwcCustomDic(this.props.windowSetting);
59150
59235
  }
59151
59236
  }, {
59152
59237
  key: "componentWillReceiveProps",
59153
59238
  value: function componentWillReceiveProps(nextProps) {
59154
- var _this2 = this;
59239
+ var _this3 = this;
59155
59240
 
59156
59241
  /**
59157
59242
  * study切换
@@ -59160,7 +59245,7 @@ var DicomView = /*#__PURE__*/function (_Component) {
59160
59245
  this.setState({
59161
59246
  study: nextProps.study
59162
59247
  }, function () {
59163
- _this2.props.initSeries(nextProps.study);
59248
+ _this3.props.initSeries(nextProps.study);
59164
59249
  });
59165
59250
  }
59166
59251
 
@@ -59750,7 +59835,7 @@ var mergeProps$o = function mergeProps(propsFromState, propsFromDispatch, ownPro
59750
59835
  var showDicomThumbnail = !threeDMode;
59751
59836
 
59752
59837
  var getCurrentElement = function getCurrentElement() {
59753
- return getActiveElement(mode, activeIndex, imageActiveIndex, threeDMode, mprActiveIndex, Surgery, surgeryActiveIndex);
59838
+ return getActiveElement(mode, activeIndex, imageActiveIndex, threeDMode, mprActiveIndex, Surgery, surgeryActiveIndex, CPR);
59754
59839
  };
59755
59840
  /**
59756
59841
  *
@@ -60052,113 +60137,229 @@ var mergeProps$o = function mergeProps(propsFromState, propsFromDispatch, ownPro
60052
60137
  }
60053
60138
  });
60054
60139
  },
60055
- initSeries: function initSeries(changeStudy) {
60056
- /**
60057
- * 初始化study
60058
- * - 初始化 cornerstoneWADOImageLoader token
60059
- * - 初始化 global toolState (study中存在serverToolState的情况)
60060
- * - 初始化 手术路径规划的缓存数据 (study中是否存在centesisPath)
60061
- * - 初始化layout(外部传入)
60062
- * - 初始化工具栏(外部传入)
60063
- * - 初始化series
60064
- * - 设置当前series
60065
- * - 初始化viewport缓存池
60066
- * - 初始化图像预加载
60067
- *
60068
- * 检查io是否为true是的话打开同屏开关
60069
- */
60070
- console.log('[paladin] - init series');
60071
- cornerstoneWADOImageLoader.configure({
60072
- beforeSend: function beforeSend(xhr) {
60073
- xhr.setRequestHeader('Authorization', "bearer ".concat(ownProps.token));
60074
- }
60075
- });
60140
+ initSeries: function () {
60141
+ var _initSeries2 = asyncToGenerator( /*#__PURE__*/regenerator.mark(function _callee(changeStudy, callback) {
60142
+ var data, synchronizer, linkSynchronizer, linkImageModeSynchronizer, linkScrollSynchronizer, options, _study, series, needCheckMultiFrame, hasMultiFrame, i, item, wado, url, dataSet, numFrames, imageIds, _i, imageId, seriesCurrentIndex, firstReady, maxRequest, retry, clearCacheEveryLoad, dicom, frameTime;
60076
60143
 
60077
- if (ownProps.study && ownProps.study[0].serverToolState) {
60078
- var data = lodash$1.cloneDeep(ownProps.study[0].serverToolState);
60079
- _default$E.globalImageIdSpecificToolStateManager.restoreToolState(data);
60080
- }
60144
+ return regenerator.wrap(function _callee$(_context) {
60145
+ while (1) {
60146
+ switch (_context.prev = _context.next) {
60147
+ case 0:
60148
+ /**
60149
+ * 初始化study
60150
+ * - 初始化 cornerstoneWADOImageLoader token
60151
+ * - 初始化 global toolState (study中存在serverToolState的情况)
60152
+ * - 初始化 手术路径规划的缓存数据 (study中是否存在centesisPath)
60153
+ * - 初始化layout(外部传入)
60154
+ * - 初始化工具栏(外部传入)
60155
+ * - 初始化series(加入多帧dicom的情况)
60156
+ * - 设置当前series
60157
+ * - 初始化viewport缓存池
60158
+ * - 初始化图像预加载
60159
+ * - 如果有frameTime的话设置fps
60160
+ *
60161
+ * 检查io是否为true是的话打开同屏开关
60162
+ */
60163
+ console.log('[paladin] - init series');
60164
+ cornerstoneWADOImageLoader.configure({
60165
+ beforeSend: function beforeSend(xhr) {
60166
+ xhr.setRequestHeader('Authorization', "bearer ".concat(ownProps.token));
60167
+ }
60168
+ });
60081
60169
 
60082
- if (ownProps.study && ownProps.study[0].centesisPath) {
60083
- initCentesisConfig(lodash$1.cloneDeep(ownProps.study[0].centesisPath));
60084
- } // 先重置所有
60085
- // 1.重置预加载状态
60170
+ if (ownProps.study && ownProps.study[0].serverToolState) {
60171
+ data = lodash$1.cloneDeep(ownProps.study[0].serverToolState);
60172
+ _default$E.globalImageIdSpecificToolStateManager.restoreToolState(data);
60173
+ }
60086
60174
 
60175
+ if (ownProps.study && ownProps.study[0].centesisPath) {
60176
+ initCentesisConfig(lodash$1.cloneDeep(ownProps.study[0].centesisPath));
60177
+ } // 先重置所有
60178
+ // 1.重置预加载状态
60087
60179
 
60088
- resetTaskPool(); // 2.重置滚动条
60089
60180
 
60090
- propsFromDispatch.setScrollLine(0); // 3.重置redux - viewport内容
60181
+ resetTaskPool(); // 2.重置滚动条
60091
60182
 
60092
- propsFromDispatch.resetViewPort(); // 4.重置工具栏状态
60183
+ propsFromDispatch.setScrollLine(0); // 3.重置redux - viewport内容
60093
60184
 
60094
- propsFromDispatch.resetToolsState(); // 5.重置loaded(预加载关联进度条的数据)
60185
+ propsFromDispatch.resetViewPort(); // 4.重置工具栏状态
60095
60186
 
60096
- propsFromDispatch.clearSeriesLoaded(); // 6.重置所有sync element
60187
+ propsFromDispatch.resetToolsState(); // 5.重置loaded(预加载关联进度条的数据)
60097
60188
 
60098
- var synchronizer = propsFromState.synchronizer,
60099
- linkSynchronizer = propsFromState.linkSynchronizer,
60100
- linkImageModeSynchronizer = propsFromState.linkImageModeSynchronizer,
60101
- linkScrollSynchronizer = propsFromState.linkScrollSynchronizer;
60102
- synchronizer.destroy();
60103
- linkSynchronizer.destroy();
60104
- linkImageModeSynchronizer.destroy();
60105
- linkScrollSynchronizer.destroy();
60189
+ propsFromDispatch.clearSeriesLoaded(); // 6.重置所有sync element
60106
60190
 
60191
+ synchronizer = propsFromState.synchronizer, linkSynchronizer = propsFromState.linkSynchronizer, linkImageModeSynchronizer = propsFromState.linkImageModeSynchronizer, linkScrollSynchronizer = propsFromState.linkScrollSynchronizer;
60192
+ synchronizer.destroy();
60193
+ linkSynchronizer.destroy();
60194
+ linkImageModeSynchronizer.destroy();
60195
+ linkScrollSynchronizer.destroy();
60107
60196
 
60108
- var options = ownProps.options;
60109
60197
 
60110
- if (options) {
60111
- if (options.layout && !lodash$1.isEmpty(options.layout)) {
60112
- propsFromDispatch.setLayout(options.layout);
60113
- }
60198
+ options = ownProps.options;
60114
60199
 
60115
- if (options.tools && options.tools.length > 0) {
60116
- propsFromDispatch.setTools(options.tools);
60117
- }
60118
- }
60200
+ if (options) {
60201
+ if (options.layout && !lodash$1.isEmpty(options.layout)) {
60202
+ propsFromDispatch.setLayout(options.layout);
60203
+ }
60119
60204
 
60120
- var _study = lodash$1.cloneDeep(ownProps.study);
60205
+ if (options.tools && options.tools.length > 0) {
60206
+ propsFromDispatch.setTools(options.tools);
60207
+ }
60208
+ }
60121
60209
 
60122
- var series = _study[0].series; // 设置ai结果
60210
+ _study = lodash$1.cloneDeep(ownProps.study);
60211
+ series = _study[0].series; // 设置ai结果
60123
60212
 
60124
- if (ownProps.aiResult && ownProps.aiResult.inspectionDetails && ownProps.aiResult.inspectionDetails.length > 0) {
60125
- set$1('aiResult', ownProps.aiResult.inspectionDetails);
60126
- } // 初始化series
60213
+ if (ownProps.aiResult && ownProps.aiResult.inspectionDetails && ownProps.aiResult.inspectionDetails.length > 0) {
60214
+ set$1('aiResult', ownProps.aiResult.inspectionDetails);
60215
+ } // 初始化之前做一遍multi-frame的检查 将多帧dicom拆分为多image的常规序列
60216
+ // 全部序列都为1的study才需要做多帧dicom check
60127
60217
 
60128
60218
 
60129
- _initSeries(series); // 初始化seriesCurrentIndex
60219
+ needCheckMultiFrame = true;
60220
+ hasMultiFrame = false;
60221
+ lodash$1.forEach(series, function (v) {
60222
+ if (v.numberOfSeriesRelatedInstances && v.numberOfSeriesRelatedInstances > 1) {
60223
+ needCheckMultiFrame = false;
60224
+ }
60225
+ });
60130
60226
 
60227
+ if (!needCheckMultiFrame) {
60228
+ _context.next = 41;
60229
+ break;
60230
+ }
60131
60231
 
60132
- var seriesCurrentIndex = Array.apply(null, Array(series.length)).map(function () {
60133
- return 0;
60134
- });
60135
- propsFromDispatch.initSeriesCurrentIndex(seriesCurrentIndex); // 设置当前series
60232
+ i = 0;
60136
60233
 
60137
- setCurrentSeries(series[0]); // 初始化viewport缓存池
60234
+ case 25:
60235
+ if (!(i < series.length)) {
60236
+ _context.next = 41;
60237
+ break;
60238
+ }
60138
60239
 
60139
- init(series); // 初始化图像预加载
60240
+ item = series[i];
60140
60241
 
60141
- var firstReady = true;
60142
- initTaskPool(series, {
60143
- maxRequest: options && options.maxRequest,
60144
- executeCallback: function executeCallback(task, taskPoolLength) {
60145
- if (taskPoolLength === 0 && firstReady) {
60146
- firstReady = false;
60147
- ownProps.onLoadReady && ownProps.onLoadReady();
60148
- }
60242
+ if (!(item.numberOfSeriesRelatedInstances && item.numberOfSeriesRelatedInstances === 1)) {
60243
+ _context.next = 38;
60244
+ break;
60245
+ }
60246
+
60247
+ wado = lodash$1.cloneDeep(item.imageIds[0].split(':'));
60248
+ wado.shift();
60249
+ url = wado.join(':');
60250
+ _context.next = 33;
60251
+ return cornerstoneWADOImageLoader.wadouri.dataSetCacheManager.load(url, cornerstoneWADOImageLoader.internal.xhrRequest);
60252
+
60253
+ case 33:
60254
+ dataSet = _context.sent;
60255
+ // 这边如果加载了的话 进度条也需要匹配上
60256
+ propsFromDispatch.setSeriesLoaded(item.seriesInstanceUID);
60257
+ numFrames = dataSet.intString('x00280008');
60258
+
60259
+ if (numFrames && numFrames > 1) {
60260
+ hasMultiFrame = true;
60261
+ imageIds = [];
60262
+
60263
+ for (_i = 0; _i < numFrames; _i++) {
60264
+ imageId = "wadouri:" + url + "?frame=" + _i;
60265
+ imageIds.push(imageId);
60266
+ }
60267
+
60268
+ series[i] = _objectSpread$M(_objectSpread$M({}, item), {}, {
60269
+ imageIds: imageIds,
60270
+ numberOfSeriesRelatedInstances: numFrames,
60271
+ isMultiFrame: true
60272
+ });
60273
+ }
60274
+
60275
+ cornerstoneWADOImageLoader.wadouri.dataSetCacheManager.unload(url);
60276
+
60277
+ case 38:
60278
+ i++;
60279
+ _context.next = 25;
60280
+ break;
60149
60281
 
60150
- if (task.extra && task.extra.series) {
60151
- propsFromDispatch.setSeriesLoaded(task.extra.series);
60282
+ case 41:
60283
+ // 初始化seriesCurrentIndex
60284
+ seriesCurrentIndex = Array.apply(null, Array(series.length)).map(function () {
60285
+ return 0;
60286
+ });
60287
+ propsFromDispatch.initSeriesCurrentIndex(seriesCurrentIndex); // 设置当前series
60288
+
60289
+ setCurrentSeries(series[0]); // 初始化viewport缓存池
60290
+
60291
+ init(series); // 初始化图像预加载
60292
+
60293
+ firstReady = true;
60294
+ maxRequest = options && options.maxRequest;
60295
+ retry = options && options.retry;
60296
+ clearCacheEveryLoad = false;
60297
+
60298
+ if (hasMultiFrame) {
60299
+ maxRequest = 1;
60300
+ retry = 0;
60301
+ clearCacheEveryLoad = true;
60302
+ } // 多帧的情况不要预加载 只要初始化设置
60303
+
60304
+
60305
+ initTaskPool(hasMultiFrame ? [] : series, {
60306
+ maxRequest: maxRequest,
60307
+ retry: retry,
60308
+ clearCacheEveryLoad: clearCacheEveryLoad,
60309
+ executeCallback: function executeCallback(task, taskPoolLength) {
60310
+ if (taskPoolLength === 0 && firstReady) {
60311
+ firstReady = false;
60312
+ ownProps.onLoadReady && ownProps.onLoadReady();
60313
+ }
60314
+
60315
+ if (task.extra && task.extra.series) {
60316
+ propsFromDispatch.setSeriesLoaded(task.extra.series);
60317
+ }
60318
+ }
60319
+ }); // 初始化series 放到最后为了预加载的进度条和viewport中的loadimage有时间差
60320
+
60321
+ _initSeries(series); // io
60322
+
60323
+
60324
+ if (ownProps.io) {
60325
+ propsFromDispatch.openIO();
60326
+ } else {
60327
+ propsFromDispatch.closeIO();
60328
+ } // for multi-frame situation
60329
+
60330
+
60331
+ callback && callback({
60332
+ hasChange: hasMultiFrame,
60333
+ study: [_objectSpread$M(_objectSpread$M({}, ownProps.study[0]), {}, {
60334
+ series: series
60335
+ })]
60336
+ }); // 如果有frameTime的话设置fps
60337
+
60338
+ _context.next = 56;
60339
+ return loadAndCacheDicom(series[0].imageIds[0]);
60340
+
60341
+ case 56:
60342
+ dicom = _context.sent;
60343
+
60344
+ if (dicom && dicom.FrameTime && dicom.FrameTime.value) {
60345
+ frameTime = dicom.FrameTime.value;
60346
+ propsFromDispatch.setCineFps(lodash$1.round(1000 / frameTime, 3) || 3);
60347
+ }
60348
+
60349
+ case 58:
60350
+ case "end":
60351
+ return _context.stop();
60352
+ }
60152
60353
  }
60153
- }
60154
- });
60354
+ }, _callee);
60355
+ }));
60155
60356
 
60156
- if (ownProps.io) {
60157
- propsFromDispatch.openIO();
60158
- } else {
60159
- propsFromDispatch.closeIO();
60357
+ function initSeries(_x, _x2) {
60358
+ return _initSeries2.apply(this, arguments);
60160
60359
  }
60161
- },
60360
+
60361
+ return initSeries;
60362
+ }(),
60162
60363
  unmount: function unmount() {
60163
60364
  resetTaskPool();
60164
60365
  propsFromDispatch.initSeries([]); // 如果在op模式的话 退出op mode
@@ -60214,7 +60415,8 @@ var ConnectedDicomView = reactRedux.connect(mapStateToProps$p, {
60214
60415
  activeDicomFunction: activeDicomFunction,
60215
60416
  openIO: openIO,
60216
60417
  closeIO: closeIO,
60217
- setActiveTool: setActiveTool
60418
+ setActiveTool: setActiveTool,
60419
+ setCineFps: setCineFps
60218
60420
  }, mergeProps$o, withRef())(DicomView);
60219
60421
 
60220
60422
  function withRef() {