hellfire 0.31.2 → 0.31.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.31.4](http://10.16.100.57/diffusion/115/paladin/compare/v0.31.3...v0.31.4) (2025-11-09)
6
+
7
+
8
+
9
+ ## [0.31.3](http://10.16.100.57/diffusion/115/paladin/compare/v0.31.2...v0.31.3) (2025-11-04)
10
+
11
+
12
+
5
13
  ## [0.31.2](http://10.16.100.57/diffusion/115/paladin/compare/v0.31.1...v0.31.2) (2025-10-29)
6
14
 
7
15
 
package/dist/index.js CHANGED
@@ -52385,16 +52385,66 @@ var formatInPlanePhaseEncodingDirection = function formatInPlanePhaseEncodingDir
52385
52385
  }
52386
52386
  };
52387
52387
 
52388
+ var checkFloatFixed = function checkFloatFixed(num) {
52389
+ var decimalPart = num.toString().split('.')[1];
52390
+
52391
+ if (decimalPart && decimalPart.length > 2) {
52392
+ return num.toFixed(2);
52393
+ } else {
52394
+ return num.toFixed(1);
52395
+ }
52396
+ };
52397
+
52398
+ var checkFloatFixed3 = function checkFloatFixed3(num) {
52399
+ var decimalPart = num.toString().split('.')[1] || '';
52400
+ var decimalLength = decimalPart.length;
52401
+
52402
+ if (decimalLength >= 3) {
52403
+ return num.toFixed(3);
52404
+ } else if (decimalLength === 2) {
52405
+ return num.toFixed(2);
52406
+ } else {
52407
+ return num.toFixed(1);
52408
+ }
52409
+ };
52410
+
52388
52411
  var getActualSpacingBetweenSlices = function getActualSpacingBetweenSlices(spacingBetweenSlices, sliceThickness) {
52389
52412
  if (spacingBetweenSlices && sliceThickness) {
52390
52413
  // 获取实际的层间距 减去上下层各 1/2的层厚
52391
52414
  var actualSpacingBetweenSlices = parseFloat(spacingBetweenSlices) - parseFloat(sliceThickness);
52392
- return actualSpacingBetweenSlices && actualSpacingBetweenSlices.toFixed(1);
52415
+ return actualSpacingBetweenSlices && checkFloatFixed(actualSpacingBetweenSlices);
52393
52416
  } else {
52394
52417
  return '';
52395
52418
  }
52396
52419
  };
52397
52420
 
52421
+ var formatThkText = function formatThkText(sliceThickness, spacingBetweenSlices) {
52422
+ var actualSpacingBetweenSlices = getActualSpacingBetweenSlices(sliceThickness, spacingBetweenSlices);
52423
+ return actualSpacingBetweenSlices || sliceThickness ? "THK: ".concat(sliceThickness && checkFloatFixed(parseFloat(sliceThickness)), "/").concat(actualSpacingBetweenSlices) : '';
52424
+ };
52425
+
52426
+ var formatDetText = function formatDetText(dicom) {
52427
+ var _dicom$TotalCollimati, _dicom$SingleCollimat, _dicom$SpiralPitchFac;
52428
+
52429
+ var totalCollimationWidth = (_dicom$TotalCollimati = dicom.TotalCollimationWidth) === null || _dicom$TotalCollimati === void 0 ? void 0 : _dicom$TotalCollimati.value;
52430
+ var singleCollimationWidth = (_dicom$SingleCollimat = dicom.SingleCollimationWidth) === null || _dicom$SingleCollimat === void 0 ? void 0 : _dicom$SingleCollimat.value;
52431
+ var spiralPitchFactor = (_dicom$SpiralPitchFac = dicom.SpiralPitchFactor) === null || _dicom$SpiralPitchFac === void 0 ? void 0 : _dicom$SpiralPitchFac.value;
52432
+
52433
+ if (!totalCollimationWidth || !totalCollimationWidth[0] || !singleCollimationWidth || !singleCollimationWidth[0] || !spiralPitchFactor || !spiralPitchFactor[0]) {
52434
+ return '';
52435
+ }
52436
+
52437
+ var detectorRows = Math.round(parseFloat(totalCollimationWidth[0]) / parseFloat(singleCollimationWidth[0]));
52438
+
52439
+ if (detectorRows > 10000) {
52440
+ return '';
52441
+ }
52442
+
52443
+ var collimationWidth = checkFloatFixed3(parseFloat(singleCollimationWidth[0]));
52444
+ var pitch = checkFloatFixed(parseFloat(spiralPitchFactor[0]));
52445
+ return "Det: ".concat(detectorRows, "x").concat(collimationWidth, "/p: ").concat(pitch);
52446
+ };
52447
+
52398
52448
  var getFov = function getFov(dicom, imageId) {
52399
52449
  var rows = dicom.Rows.value;
52400
52450
  var columns = dicom.Columns.value;
@@ -52775,13 +52825,14 @@ var ViewportOverlay = /*#__PURE__*/function (_PureComponent) {
52775
52825
 
52776
52826
  var diffusionBValue = dicom.DiffusionBValue.toString();
52777
52827
  var seriesDescription = dicom.SeriesDescription.toString();
52778
- var actualSpacingBetweenSlices = getActualSpacingBetweenSlices(sliceThickness, spacingBetweenSlices);
52779
- var thk = actualSpacingBetweenSlices || sliceThickness ? "THK: ".concat(sliceThickness && parseFloat(sliceThickness).toFixed(1), "/").concat(actualSpacingBetweenSlices) : ''; // 当长度大于20时,不显示
52828
+ var thk = formatThkText(sliceThickness, spacingBetweenSlices);
52829
+ var det = formatDetText(dicom); // 当长度大于20时,不显示
52780
52830
 
52781
52831
  var imageComments = dicom.ImageComments.toString(); // DX DR CR专属属性
52782
52832
 
52783
52833
  var modality = dicom.Modality.toString();
52784
52834
  var showDXDRCR = modality === 'DX' || modality === 'DR' || modality === 'CR';
52835
+ var showCT = modality === 'CT';
52785
52836
  var kvp = dicom.KVP.toString();
52786
52837
  var exposureTime = dicom.ExposureTime.toString();
52787
52838
  var xRayTubeCurrent = dicom.XRayTubeCurrent.toString();
@@ -52821,7 +52872,7 @@ var ViewportOverlay = /*#__PURE__*/function (_PureComponent) {
52821
52872
  fontSize: "".concat(fontSize, "px"),
52822
52873
  display: "".concat(hide ? 'none' : 'block')
52823
52874
  }
52824
- }, showDXDRCR && /*#__PURE__*/React__default.createElement("div", null, /*#__PURE__*/React__default.createElement("div", null, formatDRDXInfo('kV', kvp)), /*#__PURE__*/React__default.createElement("div", null, formatDRDXInfo('mA', xRayTubeCurrent)), /*#__PURE__*/React__default.createElement("div", null, formatDRDXInfo('Time', exposureTime)), /*#__PURE__*/React__default.createElement("div", null, formatDRDXInfo('mAs', exposure))), /*#__PURE__*/React__default.createElement("div", null, patientOrientation), /*#__PURE__*/React__default.createElement("div", null, protocolName), /*#__PURE__*/React__default.createElement("div", null, sequenceName), /*#__PURE__*/React__default.createElement("div", null, getTRAndTE(repetitionTime, echoTime)), /*#__PURE__*/React__default.createElement("div", null, formatDicomInfo('TI', inversionTime)), /*#__PURE__*/React__default.createElement("div", null, formatDicomInfo('FA', flipAngle)), /*#__PURE__*/React__default.createElement("div", null, getADAndNEX(acquisitionDuration, numberOfAverages)), /*#__PURE__*/React__default.createElement("div", null, thk), /*#__PURE__*/React__default.createElement("div", null, formatDicomInfo('B', diffusionBValue, false)), seriesDescription && seriesDescription !== protocolName && /*#__PURE__*/React__default.createElement("div", null, seriesDescription), imageComments && imageComments.length < 20 && /*#__PURE__*/React__default.createElement("div", null, imageComments)), /*#__PURE__*/React__default.createElement("div", {
52875
+ }, showDXDRCR && /*#__PURE__*/React__default.createElement("div", null, /*#__PURE__*/React__default.createElement("div", null, formatDRDXInfo('kV', kvp)), /*#__PURE__*/React__default.createElement("div", null, formatDRDXInfo('mA', xRayTubeCurrent)), /*#__PURE__*/React__default.createElement("div", null, formatDRDXInfo('Time', exposureTime)), /*#__PURE__*/React__default.createElement("div", null, formatDRDXInfo('mAs', exposure))), /*#__PURE__*/React__default.createElement("div", null, patientOrientation), /*#__PURE__*/React__default.createElement("div", null, protocolName), /*#__PURE__*/React__default.createElement("div", null, sequenceName), /*#__PURE__*/React__default.createElement("div", null, getTRAndTE(repetitionTime, echoTime)), /*#__PURE__*/React__default.createElement("div", null, formatDicomInfo('TI', inversionTime)), /*#__PURE__*/React__default.createElement("div", null, formatDicomInfo('FA', flipAngle)), /*#__PURE__*/React__default.createElement("div", null, getADAndNEX(acquisitionDuration, numberOfAverages)), showCT && /*#__PURE__*/React__default.createElement("div", null, thk), /*#__PURE__*/React__default.createElement("div", null, det), /*#__PURE__*/React__default.createElement("div", null, formatDicomInfo('B', diffusionBValue, false)), seriesDescription && seriesDescription !== protocolName && /*#__PURE__*/React__default.createElement("div", null, seriesDescription), imageComments && imageComments.length < 20 && /*#__PURE__*/React__default.createElement("div", null, imageComments)), /*#__PURE__*/React__default.createElement("div", {
52825
52876
  style: {
52826
52877
  position: 'absolute',
52827
52878
  top: 4,
@@ -76332,7 +76383,7 @@ var mergeProps$D = function mergeProps(propsFromState, propsFromDispatch, ownPro
76332
76383
  },
76333
76384
  initSeries: function () {
76334
76385
  var _initSeries2 = asyncToGenerator( /*#__PURE__*/regenerator.mark(function _callee2(changeStudy, callback) {
76335
- var data, resetToolMergeState, synchronizer, linkSynchronizer, linkImageModeSynchronizer, linkScrollSynchronizer, options, _study, series, needCheckMultiFrame, hasMultiFrame, modalitiesInStudy, i, item, wado, url, dataSet, numFrames, imageIds, _i, imageId, seriesCurrentIndex, firstReady, maxRequest, retry, clearCacheEveryLoad, dicom, frameTime, linkToolLocalDefaultState, realActiveIndex, continuousMeasureLocalDefaultState, referenceLineLocalDefaultState, shutterLocalDefaultState, autoLinkSyncWindowLevelDefaultState, autoLinkSyncOtherDefaultState, autoLinkSyncAbsoluteDefaultState, mprCrossModeDefaultState, mprVertLayout, mprHozLayout;
76386
+ var data, resetToolMergeState, synchronizer, linkSynchronizer, linkImageModeSynchronizer, linkScrollSynchronizer, options, _study, series, needCheckMultiFrame, hasMultiFrame, modalitiesInStudy, i, item, wado, url, dataSet, numFrames, imageIds, _i, imageId, seriesCurrentIndex, firstReady, maxRequest, retry, clearCacheEveryLoad, initTaskPoolSeries, size, dicom, frameTime, linkToolLocalDefaultState, realActiveIndex, continuousMeasureLocalDefaultState, referenceLineLocalDefaultState, shutterLocalDefaultState, autoLinkSyncWindowLevelDefaultState, autoLinkSyncOtherDefaultState, autoLinkSyncAbsoluteDefaultState, mprCrossModeDefaultState, mprVertLayout, mprHozLayout;
76336
76387
 
76337
76388
  return regenerator.wrap(function _callee2$(_context2) {
76338
76389
  while (1) {
@@ -76521,10 +76572,22 @@ var mergeProps$D = function mergeProps(propsFromState, propsFromDispatch, ownPro
76521
76572
  maxRequest = 1;
76522
76573
  retry = 0;
76523
76574
  clearCacheEveryLoad = true;
76524
- } // 多帧的情况不要预加载 只要初始化设置
76575
+ }
76576
+ /**
76577
+ * 预加载:
76578
+ * 1.多帧的情况不要预加载 只要初始化设置
76579
+ * 2.如果外部传入initImageLoadManual为true,则只加载初始视窗个数序列
76580
+ */
76525
76581
 
76526
76582
 
76527
- initTaskPool(hasMultiFrame ? [] : series, {
76583
+ initTaskPoolSeries = series;
76584
+
76585
+ if (ownProps.initImageLoadManual) {
76586
+ size = propsFromState.row * propsFromState.col || 1;
76587
+ initTaskPoolSeries = series.slice(0, size);
76588
+ }
76589
+
76590
+ initTaskPool(hasMultiFrame ? [] : initTaskPoolSeries, {
76528
76591
  maxRequest: maxRequest,
76529
76592
  retry: retry,
76530
76593
  clearCacheEveryLoad: clearCacheEveryLoad,
@@ -76557,10 +76620,10 @@ var mergeProps$D = function mergeProps(propsFromState, propsFromDispatch, ownPro
76557
76620
  })]
76558
76621
  }); // 如果有frameTime的话设置fps
76559
76622
 
76560
- _context2.next = 62;
76623
+ _context2.next = 64;
76561
76624
  return loadAndCacheDicom(series[0].imageIds[0]);
76562
76625
 
76563
- case 62:
76626
+ case 64:
76564
76627
  dicom = _context2.sent;
76565
76628
 
76566
76629
  if (dicom && dicom.FrameTime && dicom.FrameTime.value) {
@@ -76651,7 +76714,7 @@ var mergeProps$D = function mergeProps(propsFromState, propsFromDispatch, ownPro
76651
76714
  propsFromDispatch.setMprLayout('horizontal', mprHozLayout);
76652
76715
  }
76653
76716
 
76654
- case 84:
76717
+ case 86:
76655
76718
  case "end":
76656
76719
  return _context2.stop();
76657
76720
  }