hellfire 0.28.6 → 0.28.8

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
@@ -29348,16 +29348,22 @@ var viewport = (function () {
29348
29348
  // 重置
29349
29349
  nextPerspective = ImagePlanDirection.Transverse;
29350
29350
  } else {
29351
- if (currentPerspective === ImagePlanDirection.Transverse) {
29352
- nextPerspective = ImagePlanDirection.Coronal;
29353
- }
29351
+ if (action.nextValue) {
29352
+ // 设置某个视角
29353
+ nextPerspective = action.nextValue;
29354
+ } else {
29355
+ // 自动切换
29356
+ if (currentPerspective === ImagePlanDirection.Transverse) {
29357
+ nextPerspective = ImagePlanDirection.Coronal;
29358
+ }
29354
29359
 
29355
- if (currentPerspective === ImagePlanDirection.Coronal) {
29356
- nextPerspective = ImagePlanDirection.Sagittal;
29357
- }
29360
+ if (currentPerspective === ImagePlanDirection.Coronal) {
29361
+ nextPerspective = ImagePlanDirection.Sagittal;
29362
+ }
29358
29363
 
29359
- if (currentPerspective === ImagePlanDirection.Sagittal) {
29360
- nextPerspective = ImagePlanDirection.Transverse;
29364
+ if (currentPerspective === ImagePlanDirection.Sagittal) {
29365
+ nextPerspective = ImagePlanDirection.Transverse;
29366
+ }
29361
29367
  }
29362
29368
  }
29363
29369
 
@@ -29473,10 +29479,11 @@ function resetViewPort() {
29473
29479
  type: RESER_VIEWPORT
29474
29480
  };
29475
29481
  }
29476
- function switchMprPerspective(reset) {
29482
+ function switchMprPerspective(reset, nextValue) {
29477
29483
  return {
29478
29484
  type: SWITCH_MPR_PERSPECTIVE,
29479
- reset: reset
29485
+ reset: reset,
29486
+ nextValue: nextValue
29480
29487
  };
29481
29488
  }
29482
29489
  function setOriginStudyData(data) {
@@ -46516,6 +46523,7 @@ var dicomBasicInfoFrom = window.localStorage.getItem('hellfire-dicom-basic-info-
46516
46523
  var customDicomSetting = {
46517
46524
  leftMouseTool: 'Wwwc',
46518
46525
  rightMouseTool: 'Zoom',
46526
+ middleMouseTool: 'Pan',
46519
46527
  hotKeyIsOpen: hotKeyIsOpen,
46520
46528
  dicomBasicInfoFrom: dicomBasicInfoFrom
46521
46529
  };
@@ -46571,12 +46579,14 @@ var UserSettingModal = /*#__PURE__*/function (_Component) {
46571
46579
  if (dicomSettingChange) {
46572
46580
  dicomSettingChange && dicomSettingChange({
46573
46581
  leftMouseTool: _this.state.leftMouseTool,
46574
- rightMouseTool: _this.state.rightMouseTool
46582
+ rightMouseTool: _this.state.rightMouseTool,
46583
+ middleMouseTool: _this.state.middleMouseTool
46575
46584
  });
46576
46585
  } else {
46577
46586
  // 没有接口层面的记忆,就直接本地存储
46578
46587
  window.localStorage.setItem('hellfire-left-mouse-tool', _this.state.leftMouseTool);
46579
46588
  window.localStorage.setItem('hellfire-right-mouse-tool', _this.state.rightMouseTool);
46589
+ window.localStorage.setItem('hellfire-middle-mouse-tool', _this.state.middleMouseTool);
46580
46590
  window.location.reload();
46581
46591
  }
46582
46592
  });
@@ -46593,6 +46603,7 @@ var UserSettingModal = /*#__PURE__*/function (_Component) {
46593
46603
  var _this$state = this.state,
46594
46604
  leftMouseTool = _this$state.leftMouseTool,
46595
46605
  rightMouseTool = _this$state.rightMouseTool,
46606
+ middleMouseTool = _this$state.middleMouseTool,
46596
46607
  hotKeyIsOpen = _this$state.hotKeyIsOpen,
46597
46608
  dicomBasicInfoFrom = _this$state.dicomBasicInfoFrom;
46598
46609
  var close = this.props.close;
@@ -46635,6 +46646,26 @@ var UserSettingModal = /*#__PURE__*/function (_Component) {
46635
46646
  });
46636
46647
  }
46637
46648
  }), /*#__PURE__*/React__default.createElement("span", null, item.label));
46649
+ })), /*#__PURE__*/React__default.createElement("div", {
46650
+ className: 'paladin-setting-radio',
46651
+ style: {
46652
+ marginTop: '10px'
46653
+ }
46654
+ }, /*#__PURE__*/React__default.createElement("div", {
46655
+ className: 'paladin-setting-radio-label'
46656
+ }, "\u4E2D\u952E\uFF1A"), dicomSettingRightMouseToolsDic && dicomSettingRightMouseToolsDic.map(function (item, index) {
46657
+ return /*#__PURE__*/React__default.createElement("div", {
46658
+ className: 'paladin-setting-radio-item',
46659
+ key: "setting-middle-mouse-".concat(index)
46660
+ }, /*#__PURE__*/React__default.createElement(Input$1, {
46661
+ type: "radio",
46662
+ checked: middleMouseTool === item.value,
46663
+ onChange: function onChange(e) {
46664
+ _this2.setState({
46665
+ middleMouseTool: item.value
46666
+ });
46667
+ }
46668
+ }), /*#__PURE__*/React__default.createElement("span", null, item.label));
46638
46669
  })), /*#__PURE__*/React__default.createElement("p", {
46639
46670
  style: {
46640
46671
  marginTop: '30px'
@@ -47958,7 +47989,7 @@ var ConnectedDicomTool = reactRedux.connect(mapStateToProps$k, {
47958
47989
  closeGlobalLoading: closeGlobalLoading
47959
47990
  }, mergeProps$k)(DicomTool);
47960
47991
 
47961
- var css_248z$t = ".paladin-thumb-content {\n position: relative;\n height: 66px;\n width: 66px;\n border-width: 1px;\n border-style: solid;\n cursor: pointer;\n}\n.paladin-thumb-content .paladin-thumb-bottom {\n white-space: nowrap;\n position: absolute;\n bottom: 0;\n left: 50%;\n transform: translateX(-50%);\n color: #faa80a;\n text-align: center;\n font-size: 14px;\n z-index: 2;\n}\n.paladin-thumb-content .paladin-thumb-bottom-mobile {\n font-size: 10px;\n}\n.paladin-thumb-content .paladin-thumb-mask {\n position: absolute;\n width: 100%;\n height: 100%;\n z-index: 1;\n}\n.paladin-thumb-content .paladin-thumb-process {\n position: absolute;\n z-index: 1;\n top: 0;\n height: 4px;\n width: 100%;\n background: #ffffff;\n overflow: hidden;\n}\n.paladin-thumb-content .paladin-thumb-process .paladin-thumb-process-inner {\n background: #faa80a;\n height: 100%;\n}\n.mobile-thumb {\n width: 50px;\n height: 50px;\n}\n.paladin-thumb-svg {\n cursor: pointer;\n justify-content: center;\n}\n.paladin-thumb-svg svg {\n fill: #fff;\n}\n.paladin-thumb-svg:hover {\n background-color: #616772;\n}\n.paladin-thumb-button {\n cursor: pointer;\n justify-content: center;\n padding: 0 15px;\n}\n.paladin-thumb-button svg {\n fill: #fff;\n}\n.paladin-thumb-button:hover {\n background-color: #616772;\n}\n.paladin-thumb-button svg {\n width: 11px !important;\n}\n.paladin-fresh-button {\n cursor: pointer;\n justify-content: center;\n padding: 0 25px;\n}\n.paladin-fresh-button svg {\n fill: #fff;\n}\n.paladin-fresh-button:hover {\n background-color: #616772;\n}\n.paladin-fresh-button svg {\n width: 15px !important;\n}\n.paladin-thumb-study {\n cursor: pointer;\n font-size: 14px;\n line-height: 40px;\n padding: 0 12px;\n color: #ffffff;\n}\n.paladin-thumb-viewport {\n width: 100%;\n height: 100%;\n position: relative;\n overflow: hidden;\n}\n.paladin-thumb-viewport h4,\n.paladin-thumb-viewport p {\n font-size: 10px;\n}\n.paladin-thumb-study-wrapper {\n border-bottom: 1px solid #727882;\n}\n.paladin-thumb-context-wrapper {\n padding: 4px 2px;\n}\n";
47992
+ var css_248z$t = ".paladin-thumb-content {\n position: relative;\n height: 66px;\n width: 66px;\n border-width: 1px;\n border-style: solid;\n cursor: pointer;\n}\n.paladin-thumb-content .paladin-thumb-bottom {\n white-space: nowrap;\n position: absolute;\n bottom: 0;\n left: 50%;\n transform: translateX(-50%);\n color: #faa80a;\n text-align: center;\n font-size: 14px;\n z-index: 2;\n}\n.paladin-thumb-content .paladin-thumb-bottom-mobile,\n.paladin-thumb-content .paladin-thumb-top-mobile {\n font-size: 10px;\n}\n.paladin-thumb-content .paladin-thumb-top {\n position: absolute;\n top: 0;\n left: 50%;\n transform: translateX(-50%);\n color: yellow;\n font-size: 14px;\n z-index: 2;\n}\n.paladin-thumb-content .paladin-thumb-mask {\n position: absolute;\n width: 100%;\n height: 100%;\n z-index: 1;\n}\n.paladin-thumb-content .paladin-thumb-process {\n position: absolute;\n z-index: 1;\n top: 0;\n height: 4px;\n width: 100%;\n background: #ffffff;\n overflow: hidden;\n}\n.paladin-thumb-content .paladin-thumb-process .paladin-thumb-process-inner {\n background: #faa80a;\n height: 100%;\n}\n.mobile-thumb {\n width: 50px;\n height: 50px;\n}\n.paladin-thumb-svg {\n cursor: pointer;\n justify-content: center;\n}\n.paladin-thumb-svg svg {\n fill: #fff;\n}\n.paladin-thumb-svg:hover {\n background-color: #616772;\n}\n.paladin-thumb-button {\n cursor: pointer;\n justify-content: center;\n padding: 0 15px;\n}\n.paladin-thumb-button svg {\n fill: #fff;\n}\n.paladin-thumb-button:hover {\n background-color: #616772;\n}\n.paladin-thumb-button svg {\n width: 11px !important;\n}\n.paladin-fresh-button {\n cursor: pointer;\n justify-content: center;\n padding: 0 25px;\n}\n.paladin-fresh-button svg {\n fill: #fff;\n}\n.paladin-fresh-button:hover {\n background-color: #616772;\n}\n.paladin-fresh-button svg {\n width: 15px !important;\n}\n.paladin-thumb-study {\n cursor: pointer;\n font-size: 14px;\n line-height: 40px;\n padding: 0 12px;\n color: #ffffff;\n}\n.paladin-thumb-viewport {\n width: 100%;\n height: 100%;\n position: relative;\n overflow: hidden;\n}\n.paladin-thumb-viewport h4,\n.paladin-thumb-viewport p {\n font-size: 10px;\n}\n.paladin-thumb-study-wrapper {\n border-bottom: 1px solid #727882;\n}\n.paladin-thumb-context-wrapper {\n padding: 4px 2px;\n}\n";
47962
47993
  styleInject$1(css_248z$t);
47963
47994
 
47964
47995
  function _extends$1p() { _extends$1p = 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$1p.apply(this, arguments); }
@@ -48056,26 +48087,6 @@ function _isNativeReflectConstruct$1p() { if (typeof Reflect === "undefined" ||
48056
48087
  var loadIndicatorDelay = 300;
48057
48088
  var isMobile$2 = ua.isDeviceTypeMobile();
48058
48089
 
48059
- function capitalizeFirstLetter(string) {
48060
- return string.charAt(0).toUpperCase() + string.slice(1);
48061
- }
48062
-
48063
- function initializeTools(cornerstoneTools, tools, element) {
48064
- Array.from(tools).forEach(function (tool) {
48065
- var apiTool = cornerstoneTools["".concat(tool.name, "Tool")] || tool.apiTool;
48066
-
48067
- if (apiTool) {
48068
- cornerstoneTools.addToolForElement(element, apiTool, tool.props);
48069
- } else {
48070
- throw new Error("Tool not found: ".concat(tool.name, "Tool"));
48071
- }
48072
-
48073
- if (tool.mode) {
48074
- cornerstoneTools["setTool".concat(capitalizeFirstLetter(tool.mode), "ForElement")](element, tool.name);
48075
- }
48076
- });
48077
- }
48078
-
48079
48090
  var ThumbnailViewport = /*#__PURE__*/function (_Component) {
48080
48091
  inherits(ThumbnailViewport, _Component);
48081
48092
 
@@ -48129,7 +48140,6 @@ var ThumbnailViewport = /*#__PURE__*/function (_Component) {
48129
48140
 
48130
48141
  if (_this.element) {
48131
48142
  cornerstone.displayImage(_this.element, image);
48132
- cornerstoneTools.setToolActiveForElement(_this.element, 'OrientationMarkers');
48133
48143
  }
48134
48144
  }, function (error) {
48135
48145
  _this.clearLoadHandler();
@@ -48160,9 +48170,7 @@ var ThumbnailViewport = /*#__PURE__*/function (_Component) {
48160
48170
  cornerstone.getEnabledElement(this.element).canvas.width = size;
48161
48171
  cornerstone.getEnabledElement(this.element).canvas.height = size;
48162
48172
  this.addEventListener();
48163
- unusedSynchronizer.add(this.element); // 初始化工具
48164
-
48165
- initializeTools(cornerstoneTools, this.props.availableTools, this.element);
48173
+ unusedSynchronizer.add(this.element);
48166
48174
  this.loadImage();
48167
48175
  }
48168
48176
  }, {
@@ -48222,20 +48230,6 @@ var ThumbnailViewport = /*#__PURE__*/function (_Component) {
48222
48230
  return ThumbnailViewport;
48223
48231
  }(React.Component);
48224
48232
 
48225
- defineProperty(ThumbnailViewport, "defaultProps", {
48226
- availableTools: [{
48227
- name: 'OrientationMarkers',
48228
- props: {
48229
- color: "yellow",
48230
- paddingRight: isMobile$2 ? 5 : 3,
48231
- paddingLeft: isMobile$2 ? 2 : 1,
48232
- paddingBottom: isMobile$2 ? 6 : 2,
48233
- paddingTop: 0,
48234
- fontSize: isMobile$2 ? 9 : 11
48235
- }
48236
- }]
48237
- });
48238
-
48239
48233
  function _createSuper$1q(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$1q(); return function _createSuperInternal() { var Super = getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return possibleConstructorReturn(this, result); }; }
48240
48234
 
48241
48235
  function _isNativeReflectConstruct$1q() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }
@@ -48243,7 +48237,8 @@ var isMobile$3 = ua.isDeviceTypeMobile();
48243
48237
 
48244
48238
  var ThumbContent = function ThumbContent(props) {
48245
48239
  var series = props.series,
48246
- loaded = props.loaded;
48240
+ loaded = props.loaded,
48241
+ hasAI = props.hasAI;
48247
48242
  var loadedCount = loaded && loaded[series.seriesInstanceUID];
48248
48243
  var totalCount = series && series.numberOfSeriesRelatedInstances;
48249
48244
  var width = 0;
@@ -48271,7 +48266,9 @@ var ThumbContent = function ThumbContent(props) {
48271
48266
  style: {
48272
48267
  'width': "".concat(width * 100, "%")
48273
48268
  }
48274
- })), /*#__PURE__*/React__default.createElement(ThumbnailViewport, {
48269
+ })), hasAI && /*#__PURE__*/React__default.createElement("div", {
48270
+ className: isMobile$3 ? "paladin-thumb-top paladin-thumb-top-mobile" : "paladin-thumb-top"
48271
+ }, "AI"), /*#__PURE__*/React__default.createElement(ThumbnailViewport, {
48275
48272
  imageId: series.imageIds[0]
48276
48273
  }), /*#__PURE__*/React__default.createElement("div", {
48277
48274
  className: isMobile$3 ? "paladin-thumb-bottom paladin-thumb-bottom-mobile" : "paladin-thumb-bottom"
@@ -48357,7 +48354,8 @@ var DicomThumbnailLayout = /*#__PURE__*/function (_Component) {
48357
48354
  var _this$props = this.props,
48358
48355
  currentSeriesUID = _this$props.currentSeriesUID,
48359
48356
  study = _this$props.study,
48360
- loaded = _this$props.loaded;
48357
+ loaded = _this$props.loaded,
48358
+ aiResult = _this$props.aiResult;
48361
48359
  var _this$state2 = this.state,
48362
48360
  currentStudy = _this$state2.currentStudy,
48363
48361
  thumbnailLoaded = _this$state2.thumbnailLoaded;
@@ -48403,6 +48401,12 @@ var DicomThumbnailLayout = /*#__PURE__*/function (_Component) {
48403
48401
  }, /*#__PURE__*/React__default.createElement("div", {
48404
48402
  className: "paladin-flex"
48405
48403
  }, studyItem.series && studyItem.series.map(function (series, i) {
48404
+ var hasAI = false;
48405
+
48406
+ if (aiResult && aiResult.seriesUID === series.seriesInstanceUID) {
48407
+ hasAI = true;
48408
+ }
48409
+
48406
48410
  return /*#__PURE__*/React__default.createElement("div", {
48407
48411
  className: "paladin-thumb-context-wrapper",
48408
48412
  style: {
@@ -48422,7 +48426,8 @@ var DicomThumbnailLayout = /*#__PURE__*/function (_Component) {
48422
48426
  }, /*#__PURE__*/React__default.createElement(ThumbContent, {
48423
48427
  series: series,
48424
48428
  loaded: loaded,
48425
- currentSeriesUID: currentSeriesUID
48429
+ currentSeriesUID: currentSeriesUID,
48430
+ hasAI: hasAI
48426
48431
  })));
48427
48432
  })))), /*#__PURE__*/React__default.createElement("div", {
48428
48433
  className: "paladin-fresh-button paladin-flex-col",
@@ -49719,7 +49724,7 @@ function processCentesisPath(imageId) {
49719
49724
  }
49720
49725
  }
49721
49726
 
49722
- var css_248z$z = ".paladin-thickness-container {\n cursor: pointer;\n display: flex;\n justify-content: center;\n align-items: center;\n width: 90px;\n height: 16px;\n background-color: #505050;\n color: #888;\n font-size: 13px;\n}\n.paladin-thickness-selecter {\n padding: 5px 0;\n background-color: #333;\n color: #c8c8c8;\n font-size: 12px;\n}\n.paladin-thickness-selecter .paladin-thickness-select-item {\n padding: 3px 20px;\n cursor: pointer;\n}\n.paladin-thickness-selecter .paladin-thickness-select-item:hover {\n background-color: #fff;\n color: #000;\n}\n.paladin-thickness-selecter .paladin-thickness-select-mpr {\n border-bottom: 1px solid #ffffff;\n padding: 3px 20px 8px 20px;\n}\n";
49727
+ var css_248z$z = ".paladin-thickness-container {\n cursor: pointer;\n display: flex;\n justify-content: center;\n align-items: center;\n width: 100px;\n height: 16px;\n background-color: #505050;\n color: #888;\n font-size: 13px;\n}\n.paladin-thickness-selecter {\n padding: 5px 0;\n background-color: #333;\n color: #c8c8c8;\n font-size: 12px;\n}\n.paladin-thickness-selecter .paladin-thickness-select-item {\n padding: 3px 20px;\n cursor: pointer;\n}\n.paladin-thickness-selecter .paladin-thickness-select-item:hover {\n background-color: #fff;\n color: #000;\n}\n.paladin-thickness-selecter .paladin-thickness-select-mpr {\n border-bottom: 1px solid #ffffff;\n padding: 3px 20px 8px 20px;\n}\n";
49723
49728
  styleInject$1(css_248z$z);
49724
49729
 
49725
49730
  function _createSuper$1u(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$1u(); return function _createSuperInternal() { var Super = getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return possibleConstructorReturn(this, result); }; }
@@ -49788,7 +49793,7 @@ var ThicknessSelectMain = /*#__PURE__*/function (_Component) {
49788
49793
  value: 1
49789
49794
  });
49790
49795
  }
49791
- }, "MPR"), _this2.selectOptions && _this2.selectOptions.map(function (item) {
49796
+ }, "MPR\u5C42\u539A\u590D\u539F"), _this2.selectOptions && _this2.selectOptions.map(function (item) {
49792
49797
  return /*#__PURE__*/React__default.createElement("div", {
49793
49798
  className: "paladin-thickness-select-item",
49794
49799
  key: "thickness-".concat(item.value),
@@ -49807,7 +49812,9 @@ var ThicknessSelectMain = /*#__PURE__*/function (_Component) {
49807
49812
  popoverPlacement: 'top'
49808
49813
  }, /*#__PURE__*/React__default.createElement("div", {
49809
49814
  className: "paladin-thickness-container"
49810
- }, value === 1 ? 'MPR' : (spaceBetweenSlice * value).toFixed(1) + 'mm-MIP'));
49815
+ }, value === 1 ? '层厚选择' : (spaceBetweenSlice * value).toFixed(1) + 'mm-MIP', /*#__PURE__*/React__default.createElement("span", {
49816
+ className: "paladin-dicom-tool-tab-more"
49817
+ }, /*#__PURE__*/React__default.createElement(SvgCaretDown, null))));
49811
49818
  }
49812
49819
  }]);
49813
49820
 
@@ -50037,25 +50044,44 @@ var dicomToolDefaultProps = {
50037
50044
  mouseButtonMasks: [1]
50038
50045
  }]
50039
50046
  };
50047
+ /**
50048
+ * 1 左键
50049
+ * 2 右键
50050
+ * 4 中键
50051
+ */
50040
50052
 
50041
50053
  function getCustomAvailableTools(data) {
50042
- var panMask = [1, 4];
50054
+ var panMask = [1];
50043
50055
  var zoomMask = [1];
50044
50056
  var wwwcMask = [1];
50045
50057
  var stackScrollMask = [1];
50046
50058
 
50047
50059
  if (data && data.rightMouseTool) {
50048
50060
  if (data.rightMouseTool === 'Pan') {
50049
- panMask = [1, 2, 4];
50061
+ panMask.push(2);
50050
50062
  } else if (data.rightMouseTool === 'Wwwc') {
50051
- wwwcMask = [1, 2];
50063
+ wwwcMask.push(2);
50052
50064
  } else if (data.rightMouseTool === 'StackScroll') {
50053
- stackScrollMask = [1, 2];
50065
+ stackScrollMask.push(2);
50054
50066
  } else {
50055
- zoomMask = [1, 2];
50067
+ zoomMask.push(2);
50056
50068
  }
50057
50069
  } else {
50058
- zoomMask = [1, 2];
50070
+ zoomMask.push(2);
50071
+ }
50072
+
50073
+ if (data && data.middleMouseTool) {
50074
+ if (data.middleMouseTool === 'Zoom') {
50075
+ zoomMask.push(4);
50076
+ } else if (data.middleMouseTool === 'Wwwc') {
50077
+ wwwcMask.push(4);
50078
+ } else if (data.middleMouseTool === 'StackScroll') {
50079
+ stackScrollMask.push(4);
50080
+ } else {
50081
+ panMask.push(4);
50082
+ }
50083
+ } else {
50084
+ panMask.push(4);
50059
50085
  }
50060
50086
 
50061
50087
  return [{
@@ -50162,11 +50188,11 @@ function setToolsPassiveForElement(cornerstoneTools, tools, element) {
50162
50188
  });
50163
50189
  }
50164
50190
 
50165
- function capitalizeFirstLetter$1(string) {
50191
+ function capitalizeFirstLetter(string) {
50166
50192
  return string.charAt(0).toUpperCase() + string.slice(1);
50167
50193
  }
50168
50194
 
50169
- function initializeTools$1(cornerstoneTools, tools, element) {
50195
+ function initializeTools(cornerstoneTools, tools, element) {
50170
50196
  Array.from(tools).forEach(function (tool) {
50171
50197
  var apiTool = cornerstoneTools["".concat(tool.name, "Tool")] || tool.apiTool;
50172
50198
 
@@ -50177,7 +50203,7 @@ function initializeTools$1(cornerstoneTools, tools, element) {
50177
50203
  }
50178
50204
 
50179
50205
  if (tool.mode) {
50180
- cornerstoneTools["setTool".concat(capitalizeFirstLetter$1(tool.mode), "ForElement")](element, tool.name);
50206
+ cornerstoneTools["setTool".concat(capitalizeFirstLetter(tool.mode), "ForElement")](element, tool.name);
50181
50207
  }
50182
50208
  });
50183
50209
  }
@@ -51061,7 +51087,8 @@ var DicomViewport = /*#__PURE__*/function (_Component) {
51061
51087
  direction = _this$props4.direction,
51062
51088
  CPR = _this$props4.CPR,
51063
51089
  onClickDomErrorReRenderButton = _this$props4.onClickDomErrorReRenderButton,
51064
- keyImages = _this$props4.keyImages;
51090
+ keyImages = _this$props4.keyImages,
51091
+ onDoubleClick = _this$props4.onDoubleClick;
51065
51092
  var active = activeIndex === index;
51066
51093
 
51067
51094
  var linked = lodash$1.includes(linkedIndexArr, index);
@@ -51088,6 +51115,7 @@ var DicomViewport = /*#__PURE__*/function (_Component) {
51088
51115
  onDrop: this.onDrop,
51089
51116
  onDragOver: this.onDragOver,
51090
51117
  onClick: onClick,
51118
+ onDoubleClick: onDoubleClick,
51091
51119
  onTouchStart: onClick,
51092
51120
  onContextMenu: this.onContextMenu,
51093
51121
  className: mpr ? "cornerstone-canvas-container cornerstone-mpr-".concat(mpr) : 'cornerstone-canvas-container',
@@ -51152,7 +51180,7 @@ var DicomViewport = /*#__PURE__*/function (_Component) {
51152
51180
  className: "paladin-flex paladin-flex-row paladin-viewport-scroll-mpr-wrappper"
51153
51181
  }, /*#__PURE__*/React__default.createElement("div", {
51154
51182
  style: {
51155
- width: 'calc(100% - 90px)'
51183
+ width: 'calc(100% - 100px)'
51156
51184
  }
51157
51185
  }, /*#__PURE__*/React__default.createElement(CustomScroll, {
51158
51186
  step: imageCount,
@@ -51616,7 +51644,7 @@ var DicomViewport = /*#__PURE__*/function (_Component) {
51616
51644
 
51617
51645
  this.addEventListener(); // 初始化工具
51618
51646
 
51619
- initializeTools$1(cornerstoneTools, this.availableTools, element);
51647
+ initializeTools(cornerstoneTools, this.availableTools, element);
51620
51648
 
51621
51649
  if (this.props.mpr && this.props.mpr === ImagePlanDirection.CPR) {
51622
51650
  return;
@@ -54212,7 +54240,8 @@ var ThreeDLayout = /*#__PURE__*/function (_Component) {
54212
54240
  handleViewportState = _this$props.handleViewportState,
54213
54241
  getCacheViewport = _this$props.getCacheViewport,
54214
54242
  onSyncOpen = _this$props.onSyncOpen,
54215
- VR = _this$props.VR;
54243
+ VR = _this$props.VR,
54244
+ onViewPortCellDoubleClick = _this$props.onViewPortCellDoubleClick;
54216
54245
  var transverseIndex = mprPerspective === ImagePlanDirection.Transverse ? 0 : mprPerspective === ImagePlanDirection.Sagittal ? 2 : 1;
54217
54246
  var sagittalIndex = mprPerspective === ImagePlanDirection.Transverse ? 1 : mprPerspective === ImagePlanDirection.Sagittal ? 0 : 2;
54218
54247
  var coronalIndex = mprPerspective === ImagePlanDirection.Transverse ? 2 : mprPerspective === ImagePlanDirection.Sagittal ? 1 : 0; // 横断面
@@ -54227,6 +54256,9 @@ var ThreeDLayout = /*#__PURE__*/function (_Component) {
54227
54256
  onClick: function onClick() {
54228
54257
  onViewPortCellClick(transverseIndex);
54229
54258
  },
54259
+ onDoubleClick: function onDoubleClick() {
54260
+ onViewPortCellDoubleClick(ImagePlanDirection.Transverse);
54261
+ },
54230
54262
  setViewportState: handleViewportState,
54231
54263
  getCacheViewport: getCacheViewport,
54232
54264
  onSyncOpen: onSyncOpen,
@@ -54243,6 +54275,9 @@ var ThreeDLayout = /*#__PURE__*/function (_Component) {
54243
54275
  onClick: function onClick() {
54244
54276
  onViewPortCellClick(sagittalIndex);
54245
54277
  },
54278
+ onDoubleClick: function onDoubleClick() {
54279
+ onViewPortCellDoubleClick(ImagePlanDirection.Sagittal);
54280
+ },
54246
54281
  setViewportState: handleViewportState,
54247
54282
  getCacheViewport: getCacheViewport,
54248
54283
  onSyncOpen: onSyncOpen,
@@ -54259,6 +54294,9 @@ var ThreeDLayout = /*#__PURE__*/function (_Component) {
54259
54294
  onClick: function onClick() {
54260
54295
  onViewPortCellClick(coronalIndex);
54261
54296
  },
54297
+ onDoubleClick: function onDoubleClick() {
54298
+ onViewPortCellDoubleClick(ImagePlanDirection.Coronal);
54299
+ },
54262
54300
  setViewportState: handleViewportState,
54263
54301
  getCacheViewport: getCacheViewport,
54264
54302
  onSyncOpen: onSyncOpen,
@@ -54363,12 +54401,16 @@ var mergeProps$q = function mergeProps(propsFromState, propsFromDispatch, ownPro
54363
54401
  },
54364
54402
  onSyncOpen: function onSyncOpen(element) {
54365
54403
  propsFromState.mprSynchronizer.add(element);
54404
+ },
54405
+ onViewPortCellDoubleClick: function onViewPortCellDoubleClick(mpr) {
54406
+ propsFromDispatch.switchMprPerspective(false, mpr);
54366
54407
  }
54367
54408
  });
54368
54409
  };
54369
54410
 
54370
54411
  var ConnectedMPRLayout = reactRedux.connect(mapStateToProps$r, {
54371
- setMprActiveIndex: setMprActiveIndex
54412
+ setMprActiveIndex: setMprActiveIndex,
54413
+ switchMprPerspective: switchMprPerspective
54372
54414
  }, mergeProps$q)(ThreeDLayout);
54373
54415
 
54374
54416
  function _createForOfIteratorHelper$d(o, allowArrayLike) { var it; if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray$f(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
@@ -65628,7 +65670,7 @@ var FilmToolVerticalMode = /*#__PURE__*/function (_Component) {
65628
65670
  return FilmToolVerticalMode;
65629
65671
  }(React.Component);
65630
65672
 
65631
- var css_248z$H = ".paladin-film-print-modal table {\n width: 100%;\n border-collapse: collapse;\n border-spacing: 0;\n border: 1px solid #525253;\n border-bottom: none;\n}\n.paladin-film-print-modal table svg {\n width: 20px;\n}\n.paladin-film-print-modal table tr {\n height: 54px;\n margin-left: 30px;\n border-bottom: 1px solid #525253;\n}\n.paladin-film-print-modal table tr .th-1 {\n width: 3%;\n}\n.paladin-film-print-modal table tr .th-2 {\n width: 18%;\n}\n.paladin-film-print-modal table tr .th-3 {\n width: 13%;\n}\n.paladin-film-print-modal table tr .th-4 {\n width: 19%;\n}\n.paladin-film-print-modal table tr .th-5 {\n width: 15%;\n}\n.paladin-film-print-modal table tr .th-6 {\n width: 12%;\n}\n.paladin-film-print-modal table tr .th-7 {\n width: 16%;\n}\n.paladin-film-print-modal table tr th {\n background: #404041;\n}\n.paladin-film-print-modal table tr th,\n.paladin-film-print-modal table tr td {\n text-align: left;\n font-weight: normal;\n font-size: 14px;\n word-wrap: break-word;\n word-break: break-all;\n}\n.paladin-film-print-modal table tr th button,\n.paladin-film-print-modal table tr td button {\n border: none;\n background: transparent;\n color: #3C7EFF;\n}\n.paladin-film-print-modal .print-modal-top {\n margin-bottom: 24px;\n margin-top: 5px;\n}\n.paladin-film-print-modal .print-modal-top button {\n background: #3C7EFF;\n}\n.paladin-film-print-modal .printer-config-add-title {\n color: #3C7EFF;\n margin-left: 30px;\n}\n.paladin-film-print-modal .printer-config-form {\n margin-top: 20px;\n}\n.paladin-film-print-modal .printer-config-form .paladin-ipt {\n color: #ccc;\n border: 1px solid rgba(255, 255, 255, 0.2);\n}\n.paladin-film-print-modal .printer-config-form .paladin-row {\n margin-bottom: 18px;\n}\n.paladin-film-print-modal .printer-config-form .paladin-col {\n padding-right: 20px;\n}\n.paladin-film-print-modal .printer-config-form .paladin-col-xs-2 {\n justify-content: center;\n align-items: end;\n}\n.paladin-film-print-modal .printer-config-form .printer-config-form-radio .paladin-ipt {\n width: 20px;\n}\n.paladin-film-print-modal .film-box {\n display: flex;\n align-items: center;\n}\n.paladin-film-print-modal .film-box span {\n display: flex;\n flex: none;\n width: 100px;\n}\n.paladin-film-print-modal .film-box .film-select {\n cursor: pointer;\n width: 200px;\n height: 40px;\n display: flex;\n position: relative;\n align-items: center;\n justify-content: center;\n background: #1f1f1f;\n border: 1px solid rgba(255, 255, 255, 0.2);\n}\n.paladin-film-print-modal .film-box button {\n border: none;\n box-sizing: border-box;\n width: 100%;\n height: 100%;\n background: #1f1f1f;\n color: #c0c0c0;\n font-size: 15px;\n}\n.paladin-film-print-modal .film-box svg {\n width: 20px;\n position: absolute;\n right: 5px;\n top: 0;\n}\n.paladin-film-print-modal .film-printer-info {\n margin-left: 100px;\n color: #A4A4A4;\n}\n.paladin-film-print-modal .film-printer-info p {\n margin-top: 15px;\n}\n.paladin-film-print-modal .paladin-menu-custom {\n width: 200px;\n background: #000000;\n color: #c0c0c0;\n padding: 0;\n margin: 0;\n}\n.paladin-film-print-modal .paladin-menu-custom li {\n text-align: center;\n list-style: none;\n border-bottom: 1px solid #4D4D4D;\n padding: 6px 0;\n cursor: pointer;\n}\n.paladin-film-print-modal .paladin-menu-custom li:last-child {\n border-bottom: none;\n}\n.paladin-film-print-modal .film-button-select {\n height: 36px;\n}\n.paladin-film-print-modal .film-button-select .paladin-col {\n justify-content: center;\n}\n.paladin-film-print-modal .film-button-select-item {\n cursor: pointer;\n display: flex;\n flex: 1;\n align-items: center;\n justify-content: center;\n height: 36px;\n border: 1px solid #555555;\n border-right: none;\n}\n.paladin-film-print-modal .film-button-select-item:last-child {\n border-right: 1px solid #555555;\n}\n.paladin-film-print-modal .film-button-select-item-active {\n background: #3C7EFF;\n color: #fff;\n}\n.paladin-film-print-modal .print-modal-bottom {\n margin-top: 30px;\n text-align: right;\n}\n.paladin-film-print-modal .print-modal-bottom .paladin-default {\n background: #454545;\n border: 1px solid #707070;\n color: rgba(255, 255, 255, 0.9);\n}\n.paladin-film-print-modal .print-modal-bottom .paladin-primary {\n background: #3C7EFF;\n}\n";
65673
+ var css_248z$H = ".paladin-film-print-modal table {\n width: 100%;\n border-collapse: collapse;\n border-spacing: 0;\n border: 1px solid #525253;\n border-bottom: none;\n}\n.paladin-film-print-modal table svg {\n width: 20px;\n}\n.paladin-film-print-modal table tr {\n height: 54px;\n margin-left: 30px;\n border-bottom: 1px solid #525253;\n}\n.paladin-film-print-modal table tr .th-1 {\n width: 3%;\n}\n.paladin-film-print-modal table tr .th-2 {\n width: 18%;\n}\n.paladin-film-print-modal table tr .th-3 {\n width: 13%;\n}\n.paladin-film-print-modal table tr .th-4 {\n width: 19%;\n}\n.paladin-film-print-modal table tr .th-5 {\n width: 15%;\n}\n.paladin-film-print-modal table tr .th-6 {\n width: 12%;\n}\n.paladin-film-print-modal table tr .th-7 {\n width: 16%;\n}\n.paladin-film-print-modal table tr th {\n background: #404041;\n}\n.paladin-film-print-modal table tr th,\n.paladin-film-print-modal table tr td {\n text-align: left;\n font-weight: normal;\n font-size: 14px;\n word-wrap: break-word;\n word-break: break-all;\n}\n.paladin-film-print-modal table tr th button,\n.paladin-film-print-modal table tr td button {\n border: none;\n background: transparent;\n color: #3C7EFF;\n}\n.paladin-film-print-modal .print-modal-top {\n margin-bottom: 24px;\n margin-top: 5px;\n}\n.paladin-film-print-modal .print-modal-top button {\n background: #3C7EFF;\n}\n.paladin-film-print-modal .printer-config-add-title {\n color: #3C7EFF;\n margin-left: 30px;\n}\n.paladin-film-print-modal .printer-config-form {\n margin-top: 20px;\n}\n.paladin-film-print-modal .printer-config-form .paladin-ipt {\n color: #ccc;\n border: 1px solid rgba(255, 255, 255, 0.2);\n}\n.paladin-film-print-modal .printer-config-form .paladin-row {\n margin-bottom: 18px;\n}\n.paladin-film-print-modal .printer-config-form .paladin-col {\n padding-right: 20px;\n}\n.paladin-film-print-modal .printer-config-form .paladin-col-xs-2 {\n justify-content: center;\n align-items: end;\n}\n.paladin-film-print-modal .printer-config-form .printer-config-form-radio .paladin-ipt {\n width: 20px;\n}\n.paladin-film-print-modal .film-box {\n display: flex;\n align-items: center;\n}\n.paladin-film-print-modal .film-box span {\n display: flex;\n flex: none;\n width: 100px;\n}\n.paladin-film-print-modal .film-box .film-select {\n cursor: pointer;\n width: 200px;\n height: 40px;\n display: flex;\n position: relative;\n align-items: center;\n justify-content: center;\n background: #1f1f1f;\n border: 1px solid rgba(255, 255, 255, 0.2);\n}\n.paladin-film-print-modal .film-box button {\n border: none;\n box-sizing: border-box;\n width: 100%;\n height: 100%;\n background: #1f1f1f;\n color: #c0c0c0;\n font-size: 15px;\n}\n.paladin-film-print-modal .film-box svg {\n width: 20px;\n position: absolute;\n right: 5px;\n top: 0;\n}\n.paladin-film-print-modal .film-printer-info {\n margin-left: 100px;\n color: #A4A4A4;\n}\n.paladin-film-print-modal .film-printer-info p {\n margin-top: 15px;\n}\n.paladin-film-print-modal .paladin-menu-custom {\n width: 200px;\n background: #000000;\n color: #c0c0c0;\n padding: 0;\n margin: 0;\n}\n.paladin-film-print-modal .paladin-menu-custom li {\n text-align: center;\n list-style: none;\n border-bottom: 1px solid #4D4D4D;\n padding: 6px 0;\n cursor: pointer;\n}\n.paladin-film-print-modal .paladin-menu-custom li:last-child {\n border-bottom: none;\n}\n.paladin-film-print-modal .film-button-select {\n height: 36px;\n}\n.paladin-film-print-modal .film-button-select .paladin-col {\n justify-content: center;\n}\n.paladin-film-print-modal .film-button-select .paladin-ipt {\n color: #fff;\n border-color: #4D4D4D;\n}\n.paladin-film-print-modal .film-button-select-item {\n cursor: pointer;\n display: flex;\n flex: 1;\n align-items: center;\n justify-content: center;\n height: 36px;\n border: 1px solid #555555;\n border-right: none;\n}\n.paladin-film-print-modal .film-button-select-item:last-child {\n border-right: 1px solid #555555;\n}\n.paladin-film-print-modal .film-button-select-item-active {\n background: #3C7EFF;\n color: #fff;\n}\n.paladin-film-print-modal .print-modal-bottom {\n margin-top: 30px;\n text-align: right;\n}\n.paladin-film-print-modal .print-modal-bottom .paladin-default {\n background: #454545;\n border: 1px solid #707070;\n color: rgba(255, 255, 255, 0.9);\n}\n.paladin-film-print-modal .print-modal-bottom .paladin-primary {\n background: #3C7EFF;\n}\n";
65632
65674
  styleInject$1(css_248z$H);
65633
65675
 
65634
65676
  function _extends$1z() { _extends$1z = 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$1z.apply(this, arguments); }
@@ -66246,7 +66288,7 @@ function calcImageFontSize(width, height) {
66246
66288
 
66247
66289
  var getFilmPrintImageData = /*#__PURE__*/function () {
66248
66290
  var _ref = asyncToGenerator( /*#__PURE__*/regenerator.mark(function _callee(films, options) {
66249
- var sizeType, row, col, viewFilmItemWidth, filmSize, filmWidth, filmHeight, filmItemWidth, filmItemHeight, filmPrintOriginImageData, id, element, canvas, firstLoad, _iterator, _step, film, bitmap, mockDom, mergedCanvas, mergedCtx, i, item, x, y, imageData, pixelData;
66291
+ var sizeType, row, col, viewFilmItemWidth, filmSize, filmWidth, filmHeight, filmItemWidth, filmItemHeight, filmPrintOriginImageData, id, element, canvas, firstLoad, _iterator, _step, film, bitmap, _imageId, mockDom, mergedCanvas, mergedCtx, i, item, x, y, imageData, pixelData;
66250
66292
 
66251
66293
  return regenerator.wrap(function _callee$(_context) {
66252
66294
  while (1) {
@@ -66344,7 +66386,7 @@ var getFilmPrintImageData = /*#__PURE__*/function () {
66344
66386
 
66345
66387
  case 22:
66346
66388
  if ((_step = _iterator.n()).done) {
66347
- _context.next = 39;
66389
+ _context.next = 40;
66348
66390
  break;
66349
66391
  }
66350
66392
 
@@ -66352,62 +66394,62 @@ var getFilmPrintImageData = /*#__PURE__*/function () {
66352
66394
  bitmap = void 0;
66353
66395
 
66354
66396
  if (!(film && film.imageIds)) {
66355
- _context.next = 33;
66397
+ _context.next = 34;
66356
66398
  break;
66357
66399
  }
66358
66400
 
66401
+ _imageId = film.imageIds[0];
66359
66402
  currentImageLoad = {
66360
- wadouri: film.imageIds[0],
66403
+ wadouri: _imageId,
66361
66404
  resolve: null
66362
- }; // 影像数据
66363
-
66364
- _context.next = 29;
66365
- return getImage(film.imageIds[0], element, canvas, firstLoad);
66405
+ };
66406
+ _context.next = 30;
66407
+ return getImage(_imageId, element, canvas, firstLoad);
66366
66408
 
66367
- case 29:
66409
+ case 30:
66368
66410
  bitmap = _context.sent;
66369
66411
 
66370
66412
  if (firstLoad) {
66371
66413
  firstLoad = false;
66372
66414
  }
66373
66415
 
66374
- _context.next = 36;
66416
+ _context.next = 37;
66375
66417
  break;
66376
66418
 
66377
- case 33:
66378
- _context.next = 35;
66419
+ case 34:
66420
+ _context.next = 36;
66379
66421
  return getEmptyImageBitmap(filmItemWidth, filmItemHeight);
66380
66422
 
66381
- case 35:
66423
+ case 36:
66382
66424
  bitmap = _context.sent;
66383
66425
 
66384
- case 36:
66426
+ case 37:
66385
66427
  filmPrintOriginImageData.push(_objectSpread$Z(_objectSpread$Z({}, film), {}, {
66386
66428
  bitmap: bitmap
66387
66429
  }));
66388
66430
 
66389
- case 37:
66431
+ case 38:
66390
66432
  _context.next = 22;
66391
66433
  break;
66392
66434
 
66393
- case 39:
66394
- _context.next = 44;
66435
+ case 40:
66436
+ _context.next = 45;
66395
66437
  break;
66396
66438
 
66397
- case 41:
66398
- _context.prev = 41;
66439
+ case 42:
66440
+ _context.prev = 42;
66399
66441
  _context.t0 = _context["catch"](20);
66400
66442
 
66401
66443
  _iterator.e(_context.t0);
66402
66444
 
66403
- case 44:
66404
- _context.prev = 44;
66445
+ case 45:
66446
+ _context.prev = 45;
66405
66447
 
66406
66448
  _iterator.f();
66407
66449
 
66408
- return _context.finish(44);
66450
+ return _context.finish(45);
66409
66451
 
66410
- case 47:
66452
+ case 48:
66411
66453
  element.removeEventListener(cornerstone.EVENTS.IMAGE_RENDERED, onImageRendered);
66412
66454
  mockDom = document.getElementById(id);
66413
66455
 
@@ -66451,12 +66493,12 @@ var getFilmPrintImageData = /*#__PURE__*/function () {
66451
66493
  height: filmHeight
66452
66494
  });
66453
66495
 
66454
- case 69:
66496
+ case 70:
66455
66497
  case "end":
66456
66498
  return _context.stop();
66457
66499
  }
66458
66500
  }
66459
- }, _callee, null, [[20, 41, 44, 47]]);
66501
+ }, _callee, null, [[20, 42, 45, 48]]);
66460
66502
  }));
66461
66503
 
66462
66504
  return function getFilmPrintImageData(_x, _x2) {
@@ -66585,25 +66627,26 @@ var addDicomInfoOnCanvas = /*#__PURE__*/function () {
66585
66627
  ctx = canvas.getContext('2d');
66586
66628
  ctx.fillStyle = '#c0c0c0';
66587
66629
  ctx.strokeStyle = '#000';
66588
- ctx.font = dicomInfoFontSize + 'px Arial';
66589
- _context4.next = 7;
66630
+ _context4.next = 6;
66590
66631
  return loadAndCacheDicom(image.imageId);
66591
66632
 
66592
- case 7:
66633
+ case 6:
66593
66634
  dicom = _context4.sent;
66594
66635
 
66595
66636
  if (dicom) {
66596
- _context4.next = 10;
66637
+ _context4.next = 9;
66597
66638
  break;
66598
66639
  }
66599
66640
 
66600
66641
  return _context4.abrupt("return");
66601
66642
 
66602
- case 10:
66643
+ case 9:
66603
66644
  width = canvas.width;
66604
66645
  height = canvas.height;
66605
66646
  stackImageInfo = currentFilms[image.imageId] || {};
66647
+ ctx.setTransform(1, 0, 0, 1, 0, 0);
66606
66648
  ctx.textAlign = 'left';
66649
+ ctx.font = dicomInfoFontSize + 'px Arial';
66607
66650
  drawLeftTop(dicom, ctx);
66608
66651
  drawLeftBottom(dicom, ctx, height);
66609
66652
  ctx.textAlign = 'right';
@@ -66611,7 +66654,7 @@ var addDicomInfoOnCanvas = /*#__PURE__*/function () {
66611
66654
  drawRightBottom(dicom, ctx, width, height, viewport, image);
66612
66655
  ctx.textAlign = 'left';
66613
66656
 
66614
- case 20:
66657
+ case 21:
66615
66658
  case "end":
66616
66659
  return _context4.stop();
66617
66660
  }
@@ -66896,10 +66939,12 @@ var FilmPrintModal$1 = /*#__PURE__*/function (_Component) {
66896
66939
  currentPrinter = _this$state.currentPrinter,
66897
66940
  filmMedium = _this$state.filmMedium,
66898
66941
  filmSize = _this$state.filmSize,
66899
- filmPageType = _this$state.filmPageType;
66942
+ filmPageType = _this$state.filmPageType,
66943
+ maxDensity = _this$state.maxDensity,
66944
+ minDensity = _this$state.minDensity;
66900
66945
  var onFilmPrint = _this.props.onFilmPrint;
66901
66946
 
66902
- if (!onFilmPrint || !currentPrinter || !filmMedium || !filmSize) {
66947
+ if (!onFilmPrint || !currentPrinter || !filmMedium || !filmSize || !filmPageType || !maxDensity && maxDensity !== 0 || !minDensity && minDensity !== 0) {
66903
66948
  message.error('请选择打印配置');
66904
66949
  return;
66905
66950
  }
@@ -66907,7 +66952,9 @@ var FilmPrintModal$1 = /*#__PURE__*/function (_Component) {
66907
66952
  var printOptions = _objectSpread$_(_objectSpread$_({}, currentPrinter), {}, {
66908
66953
  filmMedium: filmMedium,
66909
66954
  filmSize: filmSize,
66910
- filmPageType: filmPageType
66955
+ filmPageType: filmPageType,
66956
+ maxDensity: maxDensity,
66957
+ minDensity: minDensity
66911
66958
  });
66912
66959
 
66913
66960
  if (filmPageType === 'ALL_PAGE') {
@@ -66959,7 +67006,9 @@ var FilmPrintModal$1 = /*#__PURE__*/function (_Component) {
66959
67006
  currentPrinter: _currentPrinter,
66960
67007
  filmSize: _this.props.filmSizeType || '1417',
66961
67008
  filmMedium: 'BLUE FILM',
66962
- filmPageType: 'CURRENT_PAGE'
67009
+ filmPageType: 'CURRENT_PAGE',
67010
+ maxDensity: 300,
67011
+ minDensity: 20
66963
67012
  };
66964
67013
  return _this;
66965
67014
  }
@@ -66976,7 +67025,9 @@ var FilmPrintModal$1 = /*#__PURE__*/function (_Component) {
66976
67025
  currentPrinter = _this$state2.currentPrinter,
66977
67026
  filmMedium = _this$state2.filmMedium,
66978
67027
  filmSize = _this$state2.filmSize,
66979
- filmPageType = _this$state2.filmPageType;
67028
+ filmPageType = _this$state2.filmPageType,
67029
+ maxDensity = _this$state2.maxDensity,
67030
+ minDensity = _this$state2.minDensity;
66980
67031
  var printerConfigList = this.props.printerConfigList;
66981
67032
 
66982
67033
  var MenuElement = function MenuElement(_props) {
@@ -67058,6 +67109,40 @@ var FilmPrintModal$1 = /*#__PURE__*/function (_Component) {
67058
67109
  _this2.handleSelectFilmPage(v);
67059
67110
  }
67060
67111
  }, v.label);
67112
+ })))), /*#__PURE__*/React__default.createElement(Row, {
67113
+ className: 'film-button-select',
67114
+ style: {
67115
+ marginTop: '20px'
67116
+ }
67117
+ }, /*#__PURE__*/React__default.createElement(Col, {
67118
+ sm: 4
67119
+ }, "\u6700\u5927\u611F\u5149\u5EA6"), /*#__PURE__*/React__default.createElement(Col, {
67120
+ sm: 8
67121
+ }, /*#__PURE__*/React__default.createElement(Row, null, /*#__PURE__*/React__default.createElement(Input$1, {
67122
+ type: "number",
67123
+ value: maxDensity,
67124
+ onChange: function onChange(e) {
67125
+ _this2.setState({
67126
+ maxDensity: e.target.value
67127
+ });
67128
+ }
67129
+ })))), /*#__PURE__*/React__default.createElement(Row, {
67130
+ className: 'film-button-select',
67131
+ style: {
67132
+ marginTop: '20px'
67133
+ }
67134
+ }, /*#__PURE__*/React__default.createElement(Col, {
67135
+ sm: 4
67136
+ }, "\u6700\u5C0F\u611F\u5149\u5EA6"), /*#__PURE__*/React__default.createElement(Col, {
67137
+ sm: 8
67138
+ }, /*#__PURE__*/React__default.createElement(Row, null, /*#__PURE__*/React__default.createElement(Input$1, {
67139
+ type: "number",
67140
+ value: minDensity,
67141
+ onChange: function onChange(e) {
67142
+ _this2.setState({
67143
+ minDensity: e.target.value
67144
+ });
67145
+ }
67061
67146
  })))))), /*#__PURE__*/React__default.createElement("div", {
67062
67147
  className: 'print-modal-bottom'
67063
67148
  }, /*#__PURE__*/React__default.createElement(Button, {
@@ -67410,7 +67495,7 @@ function _createSuper$1K(Derived) { var hasNativeReflectConstruct = _isNativeRef
67410
67495
  function _isNativeReflectConstruct$1K() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }
67411
67496
  var loadIndicatorDelay$2 = 300;
67412
67497
 
67413
- function capitalizeFirstLetter$2(string) {
67498
+ function capitalizeFirstLetter$1(string) {
67414
67499
  return string.charAt(0).toUpperCase() + string.slice(1);
67415
67500
  }
67416
67501
 
@@ -67420,7 +67505,7 @@ function setToolsPassiveForElement$1(cornerstoneTools, tools, element) {
67420
67505
  });
67421
67506
  }
67422
67507
 
67423
- function initializeTools$2(cornerstoneTools, tools, element) {
67508
+ function initializeTools$1(cornerstoneTools, tools, element) {
67424
67509
  Array.from(tools).forEach(function (tool) {
67425
67510
  var apiTool = cornerstoneTools["".concat(tool.name, "Tool")] || tool.apiTool;
67426
67511
 
@@ -67431,7 +67516,7 @@ function initializeTools$2(cornerstoneTools, tools, element) {
67431
67516
  }
67432
67517
 
67433
67518
  if (tool.mode) {
67434
- cornerstoneTools["setTool".concat(capitalizeFirstLetter$2(tool.mode), "ForElement")](element, tool.name);
67519
+ cornerstoneTools["setTool".concat(capitalizeFirstLetter$1(tool.mode), "ForElement")](element, tool.name);
67435
67520
  }
67436
67521
  });
67437
67522
  }
@@ -67638,7 +67723,7 @@ var FilmViewport = /*#__PURE__*/function (_Component) {
67638
67723
  var element = this.element;
67639
67724
  cornerstone.enable(element, {});
67640
67725
  this.addEventListener();
67641
- initializeTools$2(cornerstoneTools, this.props.availableTools, element);
67726
+ initializeTools$1(cornerstoneTools, this.props.availableTools, element);
67642
67727
  this.loadImage();
67643
67728
  unusedSynchronizer.add(this.element);
67644
67729
  }
@@ -68325,9 +68410,11 @@ var DicomView = /*#__PURE__*/function (_Component) {
68325
68410
  } else {
68326
68411
  var leftMouseTool = window.localStorage.getItem('hellfire-left-mouse-tool');
68327
68412
  var rightMouseTool = window.localStorage.getItem('hellfire-right-mouse-tool');
68413
+ var middleMouseTool = window.localStorage.getItem('hellfire-middle-mouse-tool');
68328
68414
  saveCustomDicomSetting({
68329
68415
  leftMouseTool: leftMouseTool,
68330
- rightMouseTool: rightMouseTool
68416
+ rightMouseTool: rightMouseTool,
68417
+ middleMouseTool: middleMouseTool
68331
68418
  });
68332
68419
  }
68333
68420
  }
@@ -68762,7 +68849,8 @@ var DicomView = /*#__PURE__*/function (_Component) {
68762
68849
  className: "paladin-dicomView-dicomThumbnailWrapper"
68763
68850
  }, /*#__PURE__*/React__default.createElement(ConnectedDicomThumbnail, {
68764
68851
  study: originStudy,
68765
- onRefresh: onRefresh
68852
+ onRefresh: onRefresh,
68853
+ aiResult: this.props.aiResult
68766
68854
  }));
68767
68855
  var GlobalLoading = /*#__PURE__*/React__default.createElement("div", {
68768
68856
  className: "paladin-global-loading"