hellfire 0.29.1 → 0.29.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +8 -0
- package/dist/index.js +155 -66
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
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.3](http://10.16.100.57/diffusion/115/paladin/compare/v0.29.2...v0.29.3) (2025-03-24)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
## [0.29.2](http://10.16.100.57/diffusion/115/paladin/compare/v0.29.1...v0.29.2) (2025-03-18)
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
5
13
|
## [0.29.1](http://10.16.100.57/diffusion/115/paladin/compare/v0.29.0...v0.29.1) (2025-03-13)
|
|
6
14
|
|
|
7
15
|
|
package/dist/index.js
CHANGED
|
@@ -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() {
|
|
@@ -44596,10 +44596,10 @@ var DicomToolFlattenMode = /*#__PURE__*/function (_Component) {
|
|
|
44596
44596
|
var isThree = MPR || VR || Surgery || MIP || CPR || Fusion; // 非同屏互通模式下
|
|
44597
44597
|
|
|
44598
44598
|
var IODisconnect = !IO;
|
|
44599
|
-
var commonTools = ['Layout', 'StackScroll', 'Wwwc', 'Zoom', 'Pan', 'Rotate', 'ReverseColor', 'Sharpen', 'Cine', 'FalseColor', 'Link', 'ReferencePosition', '
|
|
44599
|
+
var commonTools = ['Layout', 'StackScroll', 'Wwwc', 'Zoom', 'Pan', 'Rotate', 'ReverseColor', 'Sharpen', 'Cine', 'FalseColor', 'Link', 'ReferencePosition', 'Fusion', 'Reset']; // 只有传入了关键图像操作的方法 才显示这个按钮
|
|
44600
44600
|
|
|
44601
44601
|
if (operateKeyImages) {
|
|
44602
|
-
commonTools = ['Layout', 'StackScroll', 'Wwwc', 'Zoom', 'Pan', 'Rotate', 'ReverseColor', 'Sharpen', 'Cine', 'FalseColor', 'Link', 'ReferencePosition', 'KeyImages', '
|
|
44602
|
+
commonTools = ['Layout', 'StackScroll', 'Wwwc', 'Zoom', 'Pan', 'Rotate', 'ReverseColor', 'Sharpen', 'Cine', 'FalseColor', 'Link', 'ReferencePosition', 'KeyImages', 'Fusion', 'Reset'];
|
|
44603
44603
|
}
|
|
44604
44604
|
|
|
44605
44605
|
if (mode !== 'seriesMode') {
|
|
@@ -44866,7 +44866,9 @@ var DicomToolFlattenMode = /*#__PURE__*/function (_Component) {
|
|
|
44866
44866
|
e.stopPropagation();
|
|
44867
44867
|
handleFilmPrint && handleFilmPrint();
|
|
44868
44868
|
}
|
|
44869
|
-
}, "\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"));
|
|
44870
44872
|
}
|
|
44871
44873
|
}]);
|
|
44872
44874
|
|
|
@@ -44965,10 +44967,10 @@ var DicomToolFlattenMode$1 = /*#__PURE__*/function (_Component) {
|
|
|
44965
44967
|
fusionPetSUV = _this$props4.fusionPetSUV;
|
|
44966
44968
|
var isThree = MPR || VR || Surgery || MIP || Fusion;
|
|
44967
44969
|
var IODisconnect = !IO;
|
|
44968
|
-
var commonTools = ['Layout', 'StackScroll', 'Wwwc', 'Zoom', 'Pan', 'Rotate', 'ReverseColor', 'Sharpen', 'Cine', 'FalseColor', 'Link', 'ReferencePosition', '
|
|
44970
|
+
var commonTools = ['Layout', 'StackScroll', 'Wwwc', 'Zoom', 'Pan', 'Rotate', 'ReverseColor', 'Sharpen', 'Cine', 'FalseColor', 'Link', 'ReferencePosition', 'Fusion', 'Reset']; // 只有传入了关键图像操作的方法 才显示这个按钮
|
|
44969
44971
|
|
|
44970
44972
|
if (operateKeyImages) {
|
|
44971
|
-
commonTools = ['Layout', 'StackScroll', 'Wwwc', 'Zoom', 'Pan', 'Rotate', 'ReverseColor', 'Sharpen', 'Cine', 'FalseColor', 'Link', 'ReferencePosition', 'KeyImages', '
|
|
44973
|
+
commonTools = ['Layout', 'StackScroll', 'Wwwc', 'Zoom', 'Pan', 'Rotate', 'ReverseColor', 'Sharpen', 'Cine', 'FalseColor', 'Link', 'ReferencePosition', 'KeyImages', 'Fusion', 'Reset'];
|
|
44972
44974
|
}
|
|
44973
44975
|
|
|
44974
44976
|
if (mode !== 'seriesMode') {
|
|
@@ -45251,7 +45253,9 @@ var DicomToolFlattenMode$1 = /*#__PURE__*/function (_Component) {
|
|
|
45251
45253
|
e.stopPropagation();
|
|
45252
45254
|
handleFilmPrint && handleFilmPrint();
|
|
45253
45255
|
}
|
|
45254
|
-
}, "\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")));
|
|
45255
45259
|
}
|
|
45256
45260
|
}]);
|
|
45257
45261
|
|
|
@@ -48057,6 +48061,129 @@ function calcSUVToPixelData(suv, image) {
|
|
|
48057
48061
|
return suv * correctedDose / (1000 * patientWeight);
|
|
48058
48062
|
}
|
|
48059
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
|
+
|
|
48060
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; } } }; }
|
|
48061
48188
|
|
|
48062
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); }
|
|
@@ -49286,59 +49413,11 @@ var mergeProps$m = function mergeProps(propsFromState, propsFromDispatch, ownPro
|
|
|
49286
49413
|
propsFromDispatch.activeDicomFunction('Film');
|
|
49287
49414
|
},
|
|
49288
49415
|
petFusion: function petFusion() {
|
|
49289
|
-
var
|
|
49290
|
-
|
|
49291
|
-
|
|
49292
|
-
|
|
49293
|
-
|
|
49294
|
-
|
|
49295
|
-
if (isThree || mode !== 'seriesMode') {
|
|
49296
|
-
errorMessage = '请在二维的序列模式下进行融合操作';
|
|
49297
|
-
}
|
|
49298
|
-
|
|
49299
|
-
if (!currentSeries) {
|
|
49300
|
-
errorMessage = '请选中要融合的序列';
|
|
49301
|
-
}
|
|
49302
|
-
|
|
49303
|
-
var allowModality = ['CT', 'MR', 'PT'];
|
|
49304
|
-
|
|
49305
|
-
if (!currentSeries.modality || !allowModality.includes(currentSeries.modality)) {
|
|
49306
|
-
errorMessage = '该序列类型不支持融合';
|
|
49307
|
-
}
|
|
49308
|
-
|
|
49309
|
-
var currentStudy = ownProps.study[0];
|
|
49310
|
-
|
|
49311
|
-
if (currentSeries.modality === 'CT' || currentSeries.modality === 'MR') {
|
|
49312
|
-
var matchSeries = [];
|
|
49313
|
-
currentStudy.series.forEach(function (item) {
|
|
49314
|
-
if (item.numberOfSeriesRelatedInstances === currentSeries.numberOfSeriesRelatedInstances && item.modality === 'PT') {
|
|
49315
|
-
matchSeries.push(item);
|
|
49316
|
-
}
|
|
49317
|
-
});
|
|
49318
|
-
|
|
49319
|
-
if (matchSeries.length === 0) {
|
|
49320
|
-
errorMessage = '未发现可以和所选序列融合的序列';
|
|
49321
|
-
}
|
|
49322
|
-
|
|
49323
|
-
_fusionCTSeries = currentSeries;
|
|
49324
|
-
_fusionPETSeries = matchSeries[0];
|
|
49325
|
-
}
|
|
49326
|
-
|
|
49327
|
-
if (currentSeries.modality === 'PT') {
|
|
49328
|
-
var _matchSeries = [];
|
|
49329
|
-
currentStudy.series.forEach(function (item) {
|
|
49330
|
-
if (item.numberOfSeriesRelatedInstances === currentSeries.numberOfSeriesRelatedInstances && (item.modality === 'CT' || item.modality === 'MR')) {
|
|
49331
|
-
_matchSeries.push(item);
|
|
49332
|
-
}
|
|
49333
|
-
});
|
|
49334
|
-
|
|
49335
|
-
if (_matchSeries.length === 0) {
|
|
49336
|
-
errorMessage = '未发现可以和所选序列融合的序列';
|
|
49337
|
-
}
|
|
49338
|
-
|
|
49339
|
-
_fusionCTSeries = _matchSeries[0];
|
|
49340
|
-
_fusionPETSeries = currentSeries;
|
|
49341
|
-
}
|
|
49416
|
+
var _petFusionCheck = petFusionCheck(ownProps, propsFromState),
|
|
49417
|
+
errorMessage = _petFusionCheck.errorMessage,
|
|
49418
|
+
ctSeries = _petFusionCheck.ctSeries,
|
|
49419
|
+
petSeries = _petFusionCheck.petSeries,
|
|
49420
|
+
enterAfterOk = _petFusionCheck.enterAfterOk;
|
|
49342
49421
|
|
|
49343
49422
|
if (errorMessage) {
|
|
49344
49423
|
Modal.create( /*#__PURE__*/React__default.createElement("div", {
|
|
@@ -49355,13 +49434,26 @@ var mergeProps$m = function mergeProps(propsFromState, propsFromDispatch, ownPro
|
|
|
49355
49434
|
},
|
|
49356
49435
|
maskClosable: false,
|
|
49357
49436
|
title: '提示',
|
|
49358
|
-
|
|
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
|
+
}
|
|
49359
49451
|
});
|
|
49360
49452
|
return;
|
|
49361
49453
|
}
|
|
49362
49454
|
|
|
49363
|
-
propsFromDispatch.setFusionReduxValue('fusionCTSeries',
|
|
49364
|
-
propsFromDispatch.setFusionReduxValue('fusionPETSeries',
|
|
49455
|
+
propsFromDispatch.setFusionReduxValue('fusionCTSeries', ctSeries);
|
|
49456
|
+
propsFromDispatch.setFusionReduxValue('fusionPETSeries', petSeries);
|
|
49365
49457
|
propsFromDispatch.activeDicomFunction('Fusion', true);
|
|
49366
49458
|
},
|
|
49367
49459
|
changePetOpacity: function changePetOpacity(e) {
|
|
@@ -49406,11 +49498,8 @@ var mergeProps$m = function mergeProps(propsFromState, propsFromDispatch, ownPro
|
|
|
49406
49498
|
var suvToWindowWidth = calcSUVToPixelData(nextValue, enabledOriginPET.image);
|
|
49407
49499
|
var originPETViewport = cornerstone.getViewport(originPETElement);
|
|
49408
49500
|
var fusionPETViewport = cornerstone.getViewport(fusionPETElement);
|
|
49409
|
-
|
|
49410
49501
|
var windowWidth = lodash$1.round(suvToWindowWidth);
|
|
49411
|
-
|
|
49412
49502
|
var windowCenter = lodash$1.round(suvToWindowWidth / 2);
|
|
49413
|
-
|
|
49414
49503
|
originPETViewport.voi.windowWidth = windowWidth;
|
|
49415
49504
|
originPETViewport.voi.windowCenter = windowCenter;
|
|
49416
49505
|
fusionPETViewport.voi.windowWidth = windowWidth;
|