hellfire 0.29.2 → 0.29.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,14 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
4
4
 
5
+ ## [0.29.4](http://10.16.100.57/diffusion/115/paladin/compare/v0.29.3...v0.29.4) (2025-03-25)
6
+
7
+
8
+
9
+ ## [0.29.3](http://10.16.100.57/diffusion/115/paladin/compare/v0.29.2...v0.29.3) (2025-03-24)
10
+
11
+
12
+
5
13
  ## [0.29.2](http://10.16.100.57/diffusion/115/paladin/compare/v0.29.1...v0.29.2) (2025-03-18)
6
14
 
7
15
 
package/dist/index.js CHANGED
@@ -32575,7 +32575,7 @@ defineProperty(Col, "propTypes", {
32575
32575
  sm: PropTypes$1.number
32576
32576
  });
32577
32577
 
32578
- var css_248z$5 = ".paladin-modal {\n position: fixed;\n left: 0;\n top: 0;\n right: 0;\n bottom: 0;\n width: 100vw;\n height: 100vh;\n overflow: visible;\n z-index: 99;\n}\n.paladin-modal svg {\n width: 100%;\n height: 100%;\n}\n.paladin-modal-backdrop {\n position: absolute;\n z-index: 1000;\n width: 100%;\n height: 100%;\n background: rgba(0, 0, 0, 0.7);\n}\n.paladin-modal-wrapper {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n overflow-x: visible;\n overflow-y: scroll;\n z-index: 1001;\n}\n.paladin-modal-container {\n position: absolute;\n width: auto;\n background: #ffffff;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n border-radius: 6px;\n box-sizing: border-box;\n z-index: 1001;\n max-height: 100%;\n overflow: hidden;\n overflow-y: scroll;\n}\n@media (min-width: 768px) {\n .paladin-modal-container {\n width: 600px;\n }\n}\n@media screen and (min-width: 992px) {\n .paladin-modal-container {\n width: 83.3333333%;\n }\n}\n@media (max-width: 768px) {\n .paladin-modal-container {\n width: 95%;\n }\n}\n.paladin-modal-header {\n padding: 15px;\n border-bottom: 1px solid #e5e5e5;\n font-size: 18px;\n font-weight: 500;\n line-height: 1.42857;\n margin: 0;\n color: #727882;\n position: relative;\n}\n.paladin-modal-close {\n position: absolute;\n right: 20px;\n display: inline-block;\n width: 15px;\n height: 15px;\n cursor: pointer;\n}\n.paladin-modal-body {\n padding: 15px;\n box-sizing: border-box;\n}\n.paladin-modal-footer {\n padding: 15px;\n text-align: right;\n border-top: 1px solid #e5e5e5;\n}\n.paladin-modal-footer button {\n margin-left: 4px;\n}\n";
32578
+ var css_248z$5 = ".paladin-modal {\n position: fixed;\n left: 0;\n top: 0;\n right: 0;\n bottom: 0;\n width: 100vw;\n height: 100vh;\n overflow: visible;\n z-index: 99;\n}\n.paladin-modal svg {\n width: 100%;\n height: 100%;\n}\n.paladin-modal-backdrop {\n position: absolute;\n z-index: 1000;\n width: 100%;\n height: 100%;\n background: rgba(0, 0, 0, 0.7);\n}\n.paladin-modal-wrapper {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n overflow-x: visible;\n overflow-y: scroll;\n z-index: 1001;\n}\n.paladin-modal-container {\n position: absolute;\n width: auto;\n background: #ffffff;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n border-radius: 6px;\n box-sizing: border-box;\n z-index: 1001;\n max-height: 100%;\n overflow: hidden;\n overflow-y: scroll;\n scrollbar-width: none;\n -ms-overflow-style: none;\n}\n@media (min-width: 768px) {\n .paladin-modal-container {\n width: 600px;\n }\n}\n@media screen and (min-width: 992px) {\n .paladin-modal-container {\n width: 83.3333333%;\n }\n}\n@media (max-width: 768px) {\n .paladin-modal-container {\n width: 95%;\n }\n}\n.paladin-modal-container::-webkit-scrollbar {\n display: none;\n}\n.paladin-modal-header {\n padding: 15px;\n border-bottom: 1px solid #e5e5e5;\n font-size: 18px;\n font-weight: 500;\n line-height: 1.42857;\n margin: 0;\n color: #727882;\n position: relative;\n}\n.paladin-modal-close {\n position: absolute;\n right: 20px;\n display: inline-block;\n width: 15px;\n height: 15px;\n cursor: pointer;\n}\n.paladin-modal-body {\n padding: 15px;\n box-sizing: border-box;\n}\n.paladin-modal-footer {\n padding: 15px;\n text-align: right;\n border-top: 1px solid #e5e5e5;\n}\n.paladin-modal-footer button {\n margin-left: 4px;\n}\n";
32579
32579
  styleInject$1(css_248z$5);
32580
32580
 
32581
32581
  var css_248z$6 = ".paladin-btn {\n margin: 0;\n display: inline-block;\n font-weight: 400;\n text-align: center;\n vertical-align: middle;\n touch-action: manipulation;\n cursor: pointer;\n background-image: none;\n border: 1px solid transparent;\n white-space: nowrap;\n font-size: 14px;\n line-height: 1.42857;\n border-radius: 4px;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.paladin-btn-size-md {\n padding: 6px 12px;\n}\n.paladin-btn-size-xs {\n padding: 3px 6px;\n}\n.paladin-btn-active {\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n}\n.paladin-primary {\n color: #fff;\n background-color: #337ab7;\n border-color: #2e6da4;\n}\n.paladin-success {\n color: #fff;\n background-color: #008b8b;\n border-color: #007272;\n}\n.paladin-default {\n color: #333;\n background-color: #fff;\n border-color: #ccc;\n}\n.paladin-default.paladin-btn-active {\n color: #333;\n background-color: #e6e6e6;\n border-color: #adadad;\n}\n.paladin-info {\n color: #fff;\n background-color: #659bd2;\n border-color: #518ecc;\n}\n.paladin-warning {\n color: #fff;\n background-color: #f0ad4e;\n border-color: #eea236;\n}\n.paladin-danger {\n color: #fff;\n background-color: #d9534f;\n border-color: #d43f3a;\n}\n";
@@ -40290,7 +40290,7 @@ var ConnectedVRMode = reactRedux.connect(mapStateToProps$a, {
40290
40290
  setVRMode: setVRMode
40291
40291
  }, mergeProps$a)(VRMode);
40292
40292
 
40293
- var css_248z$d = ".paladin-tool-go-flatten {\n cursor: pointer;\n font-size: 12px;\n height: 32px;\n text-align: center;\n border-bottom: 1px solid #fff;\n background: #353535;\n position: relative;\n z-index: 999;\n color: #fff;\n}\n.paladin-tool-go-flatten svg {\n width: 7px !important;\n color: #fff;\n}\n.paladin-tool-go-flatten:hover {\n background: #d4d4d4;\n}\n.paladin-tool-go-flatten:hover svg {\n color: #333;\n}\n.paladin-tool-go-line {\n cursor: pointer;\n position: absolute;\n display: flex;\n align-items: center;\n justify-content: center;\n right: 0;\n margin-top: 6px;\n height: 34px;\n}\n.paladin-tool-go-line .paladin-full-content {\n width: 24px;\n}\n.paladin-tool-go-line svg {\n width: 8px !important;\n color: #fff;\n}\n.paladin-tool-go-line:hover {\n background: #d4d4d4;\n}\n.paladin-tool-go-line:hover svg {\n color: #333;\n}\n.paladin-tool-item {\n background: #fff;\n padding: 5px 0;\n min-width: 160px;\n max-width: 280px;\n}\n.paladin-tool-lg-content {\n border-bottom: 1px solid #5b5b5b;\n}\n.paladin-tool-lg-content .paladin-tool-lg-item {\n display: flex;\n flex-direction: column;\n box-sizing: border-box;\n flex: 1;\n border-top: 1px solid #5b5b5b;\n color: #b0b0b0;\n font-size: 12px;\n text-align: center;\n padding: 8px 10px;\n cursor: pointer;\n border-left: 1px solid #5b5b5b;\n}\n.paladin-tool-lg-content .paladin-tool-lg-item:hover {\n color: #fff;\n}\n.paladin-tool-lg-content .paladin-tool-lg-item-active {\n background: #0d5075;\n color: #fff;\n}\n.paladin-tool-flatten-vertical-wrapper {\n width: 228px;\n height: 100%;\n display: flex;\n flex-direction: column;\n}\n.paladin-tool-flatten-vertical-wrapper .paladin-tool-nav-wrapper {\n margin: 6px 2px;\n}\n.paladin-tool-flatten-vertical-wrapper .paladin-tool-nav {\n cursor: pointer;\n font-size: 13px;\n color: #e2e2e2;\n padding: 8px 10px;\n border-top: 1px solid #5b5b5b;\n border-bottom: 1px solid #5b5b5b;\n border-left: 1px solid #5b5b5b;\n}\n.paladin-tool-flatten-vertical-wrapper .paladin-tool-nav-pet {\n cursor: pointer;\n font-size: 13px;\n color: #e2e2e2;\n padding: 8px 10px;\n border: 1px solid #5b5b5b;\n}\n.paladin-tool-flatten-vertical-wrapper .paladin-tool-qa {\n cursor: pointer;\n margin-left: 15px;\n color: #e2e2e2;\n}\n.paladin-tool-flatten-vertical-wrapper .paladin-tool-qa svg {\n width: 22px;\n}\n.paladin-tool-flatten-vertical-wrapper .paladin-tool-nav-active {\n color: #c8c8c8;\n background-color: #5b5b5b;\n}\n.paladin-tool-flatten-vertical-wrapper .paladin-tool-space-line {\n border-top: 1px solid gray;\n margin-top: 6px;\n padding-top: 6px;\n}\n.paladin-tool-flatten-hor-wrapper {\n position: relative;\n z-index: 100;\n width: 100%;\n display: flex;\n flex-direction: row;\n}\n.paladin-tool-flatten-hor-wrapper .paladin-flatten-hor-go-line {\n display: flex;\n flex-direction: column;\n}\n.paladin-tool-flatten-hor-wrapper .paladin-flatten-hor-go-line .paladin-flatten-hor-go-line-content {\n width: 24px;\n height: 100%;\n text-align: center;\n line-height: 100%;\n}\n.paladin-tool-flatten-hor-wrapper .paladin-flatten-hor-go-line .paladin-flatten-hor-go-line-content svg {\n width: 10px !important;\n color: #fff;\n}\n.paladin-tool-flatten-hor-wrapper .paladin-flatten-hor-go-line .paladin-flatten-hor-go-line-content:hover {\n background: #d4d4d4;\n}\n.paladin-tool-flatten-hor-wrapper .paladin-flatten-hor-go-line .paladin-flatten-hor-go-line-content:hover svg {\n color: #333;\n}\n.paladin-tool-flatten-hor-wrapper .paladin-tool-nav-wrapper {\n padding: 5px;\n}\n.paladin-tool-flatten-hor-wrapper .paladin-tool-nav {\n cursor: pointer;\n font-size: 13px;\n color: #e2e2e2;\n padding: 8px 10px;\n border: 1px solid #5b5b5b;\n margin-bottom: 5px;\n text-align: center;\n}\n.paladin-tool-flatten-hor-wrapper .paladin-tool-nav-pet {\n cursor: pointer;\n font-size: 13px;\n color: #e2e2e2;\n padding: 8px 10px;\n border: 1px solid #5b5b5b;\n height: 20px;\n line-height: 20px;\n}\n.paladin-tool-flatten-hor-wrapper .paladin-tool-qa {\n cursor: pointer;\n margin: 5px auto;\n color: #e2e2e2;\n}\n.paladin-tool-flatten-hor-wrapper .paladin-tool-qa svg {\n width: 20px;\n}\n.paladin-tool-flatten-hor-wrapper .paladin-tool-nav-active {\n color: #c8c8c8;\n background-color: #5b5b5b;\n}\n.paladin-tool-flatten-hor-wrapper .paladin-tool-lg-item {\n border: 1px solid #5b5b5b;\n}\n.paladin-tool-space-line-3d {\n border-top: 1px solid gray;\n margin-top: 6px;\n}\n.paladin-tool-space-line-mip {\n margin-top: 6px;\n padding-top: 6px;\n}\n.paladin-tool-subtitle {\n font-size: 12px;\n color: gray;\n padding: 4px 2px 3px 2px;\n}\n.paladin-hor-border {\n border-right: 1px solid #666;\n margin-right: 6px;\n}\n.paladin-hor-three-content {\n position: relative;\n padding-left: 13px;\n}\n.paladin-hor-three-content .paladin-hor-three-title {\n position: absolute;\n left: 0;\n top: 2px;\n width: 12px;\n font-size: 12px;\n word-break: break-all;\n color: gray;\n}\n.paladin-hor-three-content .paladin-hor-three-title-bottom {\n position: absolute;\n top: 2px;\n width: 12px;\n font-size: 12px;\n word-break: break-all;\n color: gray;\n left: 0;\n top: 80px;\n}\n.paladin-dicom-tool-tab-more {\n display: inline-block;\n padding-left: 5px;\n}\n.paladin-dicom-tool-tab-more svg {\n width: 7px !important;\n color: #c0c0c0 !important;\n}\n.paladin-tool-fusion-box {\n color: #fff;\n font-size: 13px;\n margin-bottom: 20px;\n}\n.paladin-tool-fusion-box .paladin-flex-row {\n margin-top: 15px;\n flex-wrap: nowrap;\n}\n.paladin-tool-fusion-box .paladin-flex-col {\n flex: 1;\n}\n.paladin-tool-fusion-box .paladin-tool-fusion-label {\n width: 55px;\n flex: none;\n justify-content: center;\n}\n.paladin-tool-fusion-box .paladin-tool-fusion-end {\n margin-left: 6px;\n width: 30px;\n flex: none;\n}\n";
40293
+ var css_248z$d = ".paladin-tool-go-flatten {\n cursor: pointer;\n font-size: 12px;\n height: 32px;\n text-align: center;\n border-bottom: 1px solid #fff;\n background: #353535;\n position: relative;\n z-index: 999;\n color: #fff;\n}\n.paladin-tool-go-flatten svg {\n width: 7px !important;\n color: #fff;\n}\n.paladin-tool-go-flatten:hover {\n background: #d4d4d4;\n}\n.paladin-tool-go-flatten:hover svg {\n color: #333;\n}\n.paladin-tool-go-line {\n cursor: pointer;\n position: absolute;\n display: flex;\n align-items: center;\n justify-content: center;\n right: 0;\n margin-top: 6px;\n height: 34px;\n}\n.paladin-tool-go-line .paladin-full-content {\n width: 24px;\n}\n.paladin-tool-go-line svg {\n width: 8px !important;\n color: #fff;\n}\n.paladin-tool-go-line:hover {\n background: #d4d4d4;\n}\n.paladin-tool-go-line:hover svg {\n color: #333;\n}\n.paladin-tool-item {\n background: #fff;\n padding: 5px 0;\n min-width: 160px;\n max-width: 280px;\n}\n.paladin-tool-lg-content {\n border-bottom: 1px solid #5b5b5b;\n}\n.paladin-tool-lg-content .paladin-tool-lg-item {\n display: flex;\n flex-direction: column;\n box-sizing: border-box;\n flex: 1;\n border-top: 1px solid #5b5b5b;\n color: #b0b0b0;\n font-size: 12px;\n text-align: center;\n padding: 8px 10px;\n cursor: pointer;\n border-left: 1px solid #5b5b5b;\n}\n.paladin-tool-lg-content .paladin-tool-lg-item:hover {\n color: #fff;\n}\n.paladin-tool-lg-content .paladin-tool-lg-item-active {\n background: #0d5075;\n color: #fff;\n}\n.paladin-tool-flatten-vertical-wrapper {\n width: 228px;\n height: 100%;\n display: flex;\n flex-direction: column;\n}\n.paladin-tool-flatten-vertical-wrapper .paladin-tool-nav-wrapper {\n margin: 6px 2px;\n}\n.paladin-tool-flatten-vertical-wrapper .paladin-tool-nav {\n cursor: pointer;\n font-size: 13px;\n color: #e2e2e2;\n padding: 8px 10px;\n border-top: 1px solid #5b5b5b;\n border-bottom: 1px solid #5b5b5b;\n border-left: 1px solid #5b5b5b;\n}\n.paladin-tool-flatten-vertical-wrapper .paladin-tool-nav-pet {\n cursor: pointer;\n font-size: 13px;\n color: #e2e2e2;\n padding: 8px 10px;\n border: 1px solid #5b5b5b;\n}\n.paladin-tool-flatten-vertical-wrapper .paladin-tool-qa {\n cursor: pointer;\n margin-left: 15px;\n color: #e2e2e2;\n}\n.paladin-tool-flatten-vertical-wrapper .paladin-tool-qa svg {\n width: 22px;\n}\n.paladin-tool-flatten-vertical-wrapper .paladin-tool-nav-active {\n color: #c8c8c8;\n background-color: #5b5b5b;\n}\n.paladin-tool-flatten-vertical-wrapper .paladin-tool-space-line {\n border-top: 1px solid gray;\n margin-top: 6px;\n padding-top: 6px;\n}\n.paladin-tool-flatten-hor-wrapper {\n position: relative;\n z-index: 100;\n width: 100%;\n display: flex;\n flex-direction: row;\n}\n.paladin-tool-flatten-hor-wrapper .paladin-flatten-hor-go-line {\n display: flex;\n flex-direction: column;\n}\n.paladin-tool-flatten-hor-wrapper .paladin-flatten-hor-go-line .paladin-flatten-hor-go-line-content {\n width: 24px;\n height: 100%;\n text-align: center;\n line-height: 100%;\n}\n.paladin-tool-flatten-hor-wrapper .paladin-flatten-hor-go-line .paladin-flatten-hor-go-line-content svg {\n width: 10px !important;\n color: #fff;\n}\n.paladin-tool-flatten-hor-wrapper .paladin-flatten-hor-go-line .paladin-flatten-hor-go-line-content:hover {\n background: #d4d4d4;\n}\n.paladin-tool-flatten-hor-wrapper .paladin-flatten-hor-go-line .paladin-flatten-hor-go-line-content:hover svg {\n color: #333;\n}\n.paladin-tool-flatten-hor-wrapper .paladin-tool-nav-wrapper {\n padding: 5px;\n}\n.paladin-tool-flatten-hor-wrapper .paladin-tool-nav {\n cursor: pointer;\n font-size: 13px;\n color: #e2e2e2;\n padding: 8px 10px;\n border: 1px solid #5b5b5b;\n margin-bottom: 5px;\n text-align: center;\n}\n.paladin-tool-flatten-hor-wrapper .paladin-tool-nav-pet {\n cursor: pointer;\n font-size: 13px;\n color: #e2e2e2;\n padding: 8px 10px;\n border: 1px solid #5b5b5b;\n height: 20px;\n line-height: 20px;\n}\n.paladin-tool-flatten-hor-wrapper .paladin-tool-qa {\n cursor: pointer;\n margin: 5px auto;\n color: #e2e2e2;\n}\n.paladin-tool-flatten-hor-wrapper .paladin-tool-qa svg {\n width: 20px;\n}\n.paladin-tool-flatten-hor-wrapper .paladin-tool-nav-active {\n color: #c8c8c8;\n background-color: #5b5b5b;\n}\n.paladin-tool-flatten-hor-wrapper .paladin-tool-lg-item {\n border: 1px solid #5b5b5b;\n}\n.paladin-tool-space-line-3d {\n border-top: 1px solid gray;\n margin-top: 6px;\n}\n.paladin-tool-space-line-mip {\n margin-top: 6px;\n padding-top: 6px;\n}\n.paladin-tool-subtitle {\n font-size: 12px;\n color: gray;\n padding: 4px 2px 3px 2px;\n}\n.paladin-hor-border {\n border-right: 1px solid #666;\n margin-right: 6px;\n}\n.paladin-hor-three-content {\n position: relative;\n padding-left: 13px;\n}\n.paladin-hor-three-content .paladin-hor-three-title {\n position: absolute;\n left: 0;\n top: 2px;\n width: 12px;\n font-size: 12px;\n word-break: break-all;\n color: gray;\n}\n.paladin-hor-three-content .paladin-hor-three-title-bottom {\n position: absolute;\n top: 2px;\n width: 12px;\n font-size: 12px;\n word-break: break-all;\n color: gray;\n left: 0;\n top: 80px;\n}\n.paladin-dicom-tool-tab-more {\n display: inline-block;\n padding-left: 5px;\n}\n.paladin-dicom-tool-tab-more svg {\n width: 7px !important;\n color: #c0c0c0 !important;\n}\n.paladin-tool-fusion-box {\n color: #fff;\n font-size: 13px;\n margin-bottom: 20px;\n}\n.paladin-tool-fusion-box .paladin-flex-row {\n margin-top: 15px;\n flex-wrap: nowrap;\n}\n.paladin-tool-fusion-box .paladin-flex-col {\n flex: 1;\n}\n.paladin-tool-fusion-box .paladin-tool-fusion-label {\n width: 55px;\n flex: none;\n justify-content: center;\n}\n.paladin-tool-fusion-box .paladin-tool-fusion-end {\n margin-left: 6px;\n width: 30px;\n flex: none;\n}\n.paladin-tool-fusion-message {\n margin-top: 15px;\n color: #ccc;\n font-size: 14px;\n line-height: 22px;\n padding: 0 6px;\n}\n";
40294
40294
  styleInject$1(css_248z$d);
40295
40295
 
40296
40296
  function startFullscreen() {
@@ -44595,13 +44595,11 @@ var DicomToolFlattenMode = /*#__PURE__*/function (_Component) {
44595
44595
 
44596
44596
  var isThree = MPR || VR || Surgery || MIP || CPR || Fusion; // 非同屏互通模式下
44597
44597
 
44598
- var IODisconnect = !IO; // let commonTools = ['Layout', 'StackScroll', 'Wwwc', 'Zoom', 'Pan', 'Rotate', 'ReverseColor', 'Sharpen', 'Cine', 'FalseColor', 'Link', 'ReferencePosition', 'Reset', 'Fusion'];
44599
-
44600
- var commonTools = ['Layout', 'StackScroll', 'Wwwc', 'Zoom', 'Pan', 'Rotate', 'ReverseColor', 'Sharpen', 'Cine', 'FalseColor', 'Link', 'ReferencePosition', 'Reset']; // 只有传入了关键图像操作的方法 才显示这个按钮
44598
+ var IODisconnect = !IO;
44599
+ var commonTools = ['Layout', 'StackScroll', 'Wwwc', 'Zoom', 'Pan', 'Rotate', 'ReverseColor', 'Sharpen', 'Cine', 'FalseColor', 'Link', 'ReferencePosition', 'Fusion', 'Reset']; // 只有传入了关键图像操作的方法 才显示这个按钮
44601
44600
 
44602
44601
  if (operateKeyImages) {
44603
- // commonTools = ['Layout', 'StackScroll', 'Wwwc', 'Zoom', 'Pan', 'Rotate', 'ReverseColor', 'Sharpen', 'Cine', 'FalseColor', 'Link', 'ReferencePosition', 'KeyImages', 'Reset', 'Fusion'];
44604
- commonTools = ['Layout', 'StackScroll', 'Wwwc', 'Zoom', 'Pan', 'Rotate', 'ReverseColor', 'Sharpen', 'Cine', 'FalseColor', 'Link', 'ReferencePosition', 'KeyImages', 'Reset'];
44602
+ commonTools = ['Layout', 'StackScroll', 'Wwwc', 'Zoom', 'Pan', 'Rotate', 'ReverseColor', 'Sharpen', 'Cine', 'FalseColor', 'Link', 'ReferencePosition', 'KeyImages', 'Fusion', 'Reset'];
44605
44603
  }
44606
44604
 
44607
44605
  if (mode !== 'seriesMode') {
@@ -44868,7 +44866,9 @@ var DicomToolFlattenMode = /*#__PURE__*/function (_Component) {
44868
44866
  e.stopPropagation();
44869
44867
  handleFilmPrint && handleFilmPrint();
44870
44868
  }
44871
- }, "\u80F6\u7247\u6253\u5370\u533A", films && films.length > 0 ? "(".concat(films.length, ")") : ''))));
44869
+ }, "\u80F6\u7247\u6253\u5370\u533A", films && films.length > 0 ? "(".concat(films.length, ")") : ''))), Fusion && /*#__PURE__*/React__default.createElement("div", {
44870
+ className: "paladin-tool-fusion-message"
44871
+ }, "\u6CE8\u610F: \u5982\u672A\u7ECF\u6388\u6743\u4E0A\u4F20PET\u56FE\u50CF\uFF0C\u5E73\u53F0\u5373\u4F1A\u6536\u53D6\u76F8\u5173\u8D39\u7528\u3002"));
44872
44872
  }
44873
44873
  }]);
44874
44874
 
@@ -44966,13 +44966,11 @@ var DicomToolFlattenMode$1 = /*#__PURE__*/function (_Component) {
44966
44966
  fusionPetColorMap = _this$props4.fusionPetColorMap,
44967
44967
  fusionPetSUV = _this$props4.fusionPetSUV;
44968
44968
  var isThree = MPR || VR || Surgery || MIP || Fusion;
44969
- var IODisconnect = !IO; // let commonTools = ['Layout', 'StackScroll', 'Wwwc', 'Zoom', 'Pan', 'Rotate', 'ReverseColor', 'Sharpen', 'Cine', 'FalseColor', 'Link', 'ReferencePosition', 'Reset', 'Fusion'];
44970
-
44971
- var commonTools = ['Layout', 'StackScroll', 'Wwwc', 'Zoom', 'Pan', 'Rotate', 'ReverseColor', 'Sharpen', 'Cine', 'FalseColor', 'Link', 'ReferencePosition', 'Reset']; // 只有传入了关键图像操作的方法 才显示这个按钮
44969
+ var IODisconnect = !IO;
44970
+ var commonTools = ['Layout', 'StackScroll', 'Wwwc', 'Zoom', 'Pan', 'Rotate', 'ReverseColor', 'Sharpen', 'Cine', 'FalseColor', 'Link', 'ReferencePosition', 'Fusion', 'Reset']; // 只有传入了关键图像操作的方法 才显示这个按钮
44972
44971
 
44973
44972
  if (operateKeyImages) {
44974
- // commonTools = ['Layout', 'StackScroll', 'Wwwc', 'Zoom', 'Pan', 'Rotate', 'ReverseColor', 'Sharpen', 'Cine', 'FalseColor', 'Link', 'ReferencePosition', 'KeyImages', 'Reset', 'Fusion'];
44975
- commonTools = ['Layout', 'StackScroll', 'Wwwc', 'Zoom', 'Pan', 'Rotate', 'ReverseColor', 'Sharpen', 'Cine', 'FalseColor', 'Link', 'ReferencePosition', 'KeyImages', 'Reset'];
44973
+ commonTools = ['Layout', 'StackScroll', 'Wwwc', 'Zoom', 'Pan', 'Rotate', 'ReverseColor', 'Sharpen', 'Cine', 'FalseColor', 'Link', 'ReferencePosition', 'KeyImages', 'Fusion', 'Reset'];
44976
44974
  }
44977
44975
 
44978
44976
  if (mode !== 'seriesMode') {
@@ -45255,7 +45253,9 @@ var DicomToolFlattenMode$1 = /*#__PURE__*/function (_Component) {
45255
45253
  e.stopPropagation();
45256
45254
  handleFilmPrint && handleFilmPrint();
45257
45255
  }
45258
- }, "\u80F6\u7247\u6253\u5370\u533A", films && films.length > 0 ? "(".concat(films.length, ")") : ''))));
45256
+ }, "\u80F6\u7247\u6253\u5370\u533A", films && films.length > 0 ? "(".concat(films.length, ")") : '')), Fusion && /*#__PURE__*/React__default.createElement("div", {
45257
+ className: "paladin-tool-fusion-message"
45258
+ }, "\u6CE8\u610F: \u5982\u672A\u7ECF\u6388\u6743\u4E0A\u4F20PET\u56FE\u50CF\uFF0C\u5E73\u53F0\u5373\u4F1A\u6536\u53D6\u76F8\u5173\u8D39\u7528\u3002")));
45259
45259
  }
45260
45260
  }]);
45261
45261
 
@@ -48061,6 +48061,129 @@ function calcSUVToPixelData(suv, image) {
48061
48061
  return suv * correctedDose / (1000 * patientWeight);
48062
48062
  }
48063
48063
 
48064
+ function petFusionCheck (ownProps, propsFromState) {
48065
+ var isThree = propsFromState.isThree,
48066
+ mode = propsFromState.mode,
48067
+ currentSeries = propsFromState.currentSeries;
48068
+ var errorMessage;
48069
+
48070
+ var _fusionCTSeries;
48071
+
48072
+ var _fusionPETSeries;
48073
+
48074
+ var enterAfterOk = false;
48075
+
48076
+ if (isThree || mode !== 'seriesMode') {
48077
+ errorMessage = '请在二维的序列模式下进行融合操作';
48078
+ }
48079
+
48080
+ if (!currentSeries) {
48081
+ errorMessage = '请选中要融合的序列';
48082
+ }
48083
+
48084
+ var allowModality = ['CT', 'MR', 'PT'];
48085
+
48086
+ if (!currentSeries.modality || !allowModality.includes(currentSeries.modality)) {
48087
+ errorMessage = '该序列类型不支持融合';
48088
+ }
48089
+
48090
+ var currentStudy = ownProps.study[0];
48091
+ var currentImagePlane = cornerstone.metaData.get('imagePlaneModule', currentSeries.imageIds[0]);
48092
+ var currentFrameOfReferenceUID = currentImagePlane.frameOfReferenceUID;
48093
+
48094
+ if (currentSeries.modality === 'CT' || currentSeries.modality === 'MR') {
48095
+ var matchSeries = [];
48096
+ currentStudy.series.forEach(function (item) {
48097
+ var targetImagePlane = cornerstone.metaData.get('imagePlaneModule', item.imageIds[0]);
48098
+
48099
+ if (item.numberOfSeriesRelatedInstances === currentSeries.numberOfSeriesRelatedInstances && currentFrameOfReferenceUID === targetImagePlane.frameOfReferenceUID && item.modality === 'PT') {
48100
+ matchSeries.push(item);
48101
+ }
48102
+ });
48103
+
48104
+ if (matchSeries.length === 0) {
48105
+ errorMessage = '未发现可以和所选序列融合的序列';
48106
+ }
48107
+
48108
+ _fusionCTSeries = currentSeries;
48109
+
48110
+ if (matchSeries.length > 1) {
48111
+ // 如果检测到有1个以上,从多选中找,找到0个提示重新选择,找到1个以上提示重新选择,找到1个,提示检测有多个,是否确认融合当前选择的这个序列
48112
+ var matchLinkedSeries = [];
48113
+ var linkSeriesIndex = propsFromState.linkSeriesIndex,
48114
+ series = propsFromState.series;
48115
+ lodash$1.forEach(linkSeriesIndex, function (i) {
48116
+ var item = lodash$1.find(matchSeries, {
48117
+ seriesInstanceUID: series[i].seriesInstanceUID
48118
+ });
48119
+
48120
+ if (item) {
48121
+ matchLinkedSeries.push(item);
48122
+ }
48123
+ });
48124
+
48125
+ if (matchLinkedSeries.length === 1) {
48126
+ errorMessage = "当前有多个符合融合条件的序列!如当前选择的融合序列不正确,请使用键盘ctrl + 鼠标左键,重新选择融合序列";
48127
+ enterAfterOk = true;
48128
+ _fusionPETSeries = matchLinkedSeries[0];
48129
+ } else {
48130
+ errorMessage = "请使用键盘ctrl + 鼠标左键,挑选需要融合的PET和CT序列";
48131
+ }
48132
+ } else {
48133
+ _fusionPETSeries = matchSeries[0];
48134
+ }
48135
+ }
48136
+
48137
+ if (currentSeries.modality === 'PT') {
48138
+ var _matchSeries = [];
48139
+ currentStudy.series.forEach(function (item) {
48140
+ var targetImagePlane = cornerstone.metaData.get('imagePlaneModule', item.imageIds[0]);
48141
+
48142
+ if (item.numberOfSeriesRelatedInstances === currentSeries.numberOfSeriesRelatedInstances && currentFrameOfReferenceUID === targetImagePlane.frameOfReferenceUID && (item.modality === 'CT' || item.modality === 'MR')) {
48143
+ _matchSeries.push(item);
48144
+ }
48145
+ });
48146
+
48147
+ if (_matchSeries.length === 0) {
48148
+ errorMessage = '未发现可以和所选序列融合的序列';
48149
+ }
48150
+
48151
+ _fusionPETSeries = currentSeries;
48152
+
48153
+ if (_matchSeries.length > 1) {
48154
+ var _matchLinkedSeries = [];
48155
+ var _linkSeriesIndex = propsFromState.linkSeriesIndex,
48156
+ _series = propsFromState.series;
48157
+ lodash$1.forEach(_linkSeriesIndex, function (i) {
48158
+ var item = lodash$1.find(_matchSeries, {
48159
+ seriesInstanceUID: _series[i].seriesInstanceUID
48160
+ });
48161
+
48162
+ if (item) {
48163
+ _matchLinkedSeries.push(item);
48164
+ }
48165
+ });
48166
+
48167
+ if (_matchLinkedSeries.length === 1) {
48168
+ errorMessage = "当前有多个符合融合条件的序列!如当前选择的融合序列不正确,请使用键盘ctrl + 鼠标左键,重新选择融合序列";
48169
+ enterAfterOk = true;
48170
+ _fusionCTSeries = _matchLinkedSeries[0];
48171
+ } else {
48172
+ errorMessage = "请使用键盘ctrl + 鼠标左键,挑选需要融合的PET和CT序列";
48173
+ }
48174
+ } else {
48175
+ _fusionCTSeries = _matchSeries[0];
48176
+ }
48177
+ }
48178
+
48179
+ return {
48180
+ enterAfterOk: enterAfterOk,
48181
+ errorMessage: errorMessage,
48182
+ ctSeries: _fusionCTSeries,
48183
+ petSeries: _fusionPETSeries
48184
+ };
48185
+ }
48186
+
48064
48187
  function _createForOfIteratorHelper$9(o, allowArrayLike) { var it; if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray$b(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; } } }; }
48065
48188
 
48066
48189
  function _unsupportedIterableToArray$b(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray$b(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$b(o, minLen); }
@@ -49290,59 +49413,11 @@ var mergeProps$m = function mergeProps(propsFromState, propsFromDispatch, ownPro
49290
49413
  propsFromDispatch.activeDicomFunction('Film');
49291
49414
  },
49292
49415
  petFusion: function petFusion() {
49293
- var errorMessage;
49294
-
49295
- var _fusionCTSeries;
49296
-
49297
- var _fusionPETSeries;
49298
-
49299
- if (isThree || mode !== 'seriesMode') {
49300
- errorMessage = '请在二维的序列模式下进行融合操作';
49301
- }
49302
-
49303
- if (!currentSeries) {
49304
- errorMessage = '请选中要融合的序列';
49305
- }
49306
-
49307
- var allowModality = ['CT', 'MR', 'PT'];
49308
-
49309
- if (!currentSeries.modality || !allowModality.includes(currentSeries.modality)) {
49310
- errorMessage = '该序列类型不支持融合';
49311
- }
49312
-
49313
- var currentStudy = ownProps.study[0];
49314
-
49315
- if (currentSeries.modality === 'CT' || currentSeries.modality === 'MR') {
49316
- var matchSeries = [];
49317
- currentStudy.series.forEach(function (item) {
49318
- if (item.numberOfSeriesRelatedInstances === currentSeries.numberOfSeriesRelatedInstances && item.modality === 'PT') {
49319
- matchSeries.push(item);
49320
- }
49321
- });
49322
-
49323
- if (matchSeries.length === 0) {
49324
- errorMessage = '未发现可以和所选序列融合的序列';
49325
- }
49326
-
49327
- _fusionCTSeries = currentSeries;
49328
- _fusionPETSeries = matchSeries[0];
49329
- }
49330
-
49331
- if (currentSeries.modality === 'PT') {
49332
- var _matchSeries = [];
49333
- currentStudy.series.forEach(function (item) {
49334
- if (item.numberOfSeriesRelatedInstances === currentSeries.numberOfSeriesRelatedInstances && (item.modality === 'CT' || item.modality === 'MR')) {
49335
- _matchSeries.push(item);
49336
- }
49337
- });
49338
-
49339
- if (_matchSeries.length === 0) {
49340
- errorMessage = '未发现可以和所选序列融合的序列';
49341
- }
49342
-
49343
- _fusionCTSeries = _matchSeries[0];
49344
- _fusionPETSeries = currentSeries;
49345
- }
49416
+ var _petFusionCheck = petFusionCheck(ownProps, propsFromState),
49417
+ errorMessage = _petFusionCheck.errorMessage,
49418
+ ctSeries = _petFusionCheck.ctSeries,
49419
+ petSeries = _petFusionCheck.petSeries,
49420
+ enterAfterOk = _petFusionCheck.enterAfterOk;
49346
49421
 
49347
49422
  if (errorMessage) {
49348
49423
  Modal.create( /*#__PURE__*/React__default.createElement("div", {
@@ -49359,13 +49434,26 @@ var mergeProps$m = function mergeProps(propsFromState, propsFromDispatch, ownPro
49359
49434
  },
49360
49435
  maskClosable: false,
49361
49436
  title: '提示',
49362
- footer: null
49437
+ okText: enterAfterOk ? '确认融合' : '关闭',
49438
+ okButtonProps: {
49439
+ type: 'primary'
49440
+ },
49441
+ cancelButtonProps: {
49442
+ show: false
49443
+ },
49444
+ onOk: function onOk() {
49445
+ if (enterAfterOk) {
49446
+ propsFromDispatch.setFusionReduxValue('fusionCTSeries', ctSeries);
49447
+ propsFromDispatch.setFusionReduxValue('fusionPETSeries', petSeries);
49448
+ propsFromDispatch.activeDicomFunction('Fusion', true);
49449
+ }
49450
+ }
49363
49451
  });
49364
49452
  return;
49365
49453
  }
49366
49454
 
49367
- propsFromDispatch.setFusionReduxValue('fusionCTSeries', _fusionCTSeries);
49368
- propsFromDispatch.setFusionReduxValue('fusionPETSeries', _fusionPETSeries);
49455
+ propsFromDispatch.setFusionReduxValue('fusionCTSeries', ctSeries);
49456
+ propsFromDispatch.setFusionReduxValue('fusionPETSeries', petSeries);
49369
49457
  propsFromDispatch.activeDicomFunction('Fusion', true);
49370
49458
  },
49371
49459
  changePetOpacity: function changePetOpacity(e) {
@@ -49410,11 +49498,8 @@ var mergeProps$m = function mergeProps(propsFromState, propsFromDispatch, ownPro
49410
49498
  var suvToWindowWidth = calcSUVToPixelData(nextValue, enabledOriginPET.image);
49411
49499
  var originPETViewport = cornerstone.getViewport(originPETElement);
49412
49500
  var fusionPETViewport = cornerstone.getViewport(fusionPETElement);
49413
-
49414
49501
  var windowWidth = lodash$1.round(suvToWindowWidth);
49415
-
49416
49502
  var windowCenter = lodash$1.round(suvToWindowWidth / 2);
49417
-
49418
49503
  originPETViewport.voi.windowWidth = windowWidth;
49419
49504
  originPETViewport.voi.windowCenter = windowCenter;
49420
49505
  fusionPETViewport.voi.windowWidth = windowWidth;