From 489eb4cf810a775b7db3aa77f952492838ad06cc Mon Sep 17 00:00:00 2001 From: xiaoguangbin Date: Wed, 9 Oct 2024 15:21:05 +0800 Subject: [PATCH] =?UTF-8?q?fix=EF=BC=9A=E4=BF=AE=E6=94=B9=E6=96=B0beta=20s?= =?UTF-8?q?avetodb=E6=8E=A5=E5=8F=A3,=E5=AE=8C=E6=88=90beta=E5=88=BB?= =?UTF-8?q?=E5=BA=A6=E5=92=8C=E7=BB=93=E6=9E=9C=E4=BF=9D=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../GardsCalibrationPairsServiceImpl.java | 1 - .../entity/GardsXeResultsSpectrum.java | 0 .../modules/service/AnalysisManService.java | 16 ++-- .../modules/entity/vo/SelfStationData.java | 6 +- .../service/AnalysisManServiceImpl.java | 83 +++++++++++++++++-- .../IGardsCalibrationSpectrumService.java | 2 + .../GardsCalibrationSpectrumServiceImpl.java | 5 ++ .../service/impl/SelfStationServiceImpl.java | 36 +++++++- 8 files changed, 131 insertions(+), 18 deletions(-) rename {jeecg-module-spectrum-analysis => jeecg-module-beta-gamma-analyser}/src/main/java/org/jeecg/modules/entity/GardsXeResultsSpectrum.java (100%) diff --git a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/service/impl/GardsCalibrationPairsServiceImpl.java b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/service/impl/GardsCalibrationPairsServiceImpl.java index 5f867db4..886c0b94 100644 --- a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/service/impl/GardsCalibrationPairsServiceImpl.java +++ b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/service/impl/GardsCalibrationPairsServiceImpl.java @@ -3,7 +3,6 @@ package org.jeecg.modules.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.google.common.collect.Lists; import org.apache.commons.collections4.CollectionUtils; -import org.jeecg.modules.base.entity.original.GardsCalibrationPairsOrig; import org.jeecg.modules.base.entity.rnauto.GardsCalibrationPairs; import org.jeecg.modules.mapper.GardsCalibrationPairsMapper; import org.jeecg.modules.native_jni.struct.EnergySpectrumStruct; diff --git a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/entity/GardsXeResultsSpectrum.java b/jeecg-module-beta-gamma-analyser/src/main/java/org/jeecg/modules/entity/GardsXeResultsSpectrum.java similarity index 100% rename from jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/entity/GardsXeResultsSpectrum.java rename to jeecg-module-beta-gamma-analyser/src/main/java/org/jeecg/modules/entity/GardsXeResultsSpectrum.java diff --git a/jeecg-module-beta-gamma-analyser/src/main/java/org/jeecg/modules/service/AnalysisManService.java b/jeecg-module-beta-gamma-analyser/src/main/java/org/jeecg/modules/service/AnalysisManService.java index 56db402b..ea2d4fd1 100644 --- a/jeecg-module-beta-gamma-analyser/src/main/java/org/jeecg/modules/service/AnalysisManService.java +++ b/jeecg-module-beta-gamma-analyser/src/main/java/org/jeecg/modules/service/AnalysisManService.java @@ -1,10 +1,8 @@ package org.jeecg.modules.service; -import org.jeecg.modules.base.entity.rnman.GardsXeResults; -import org.jeecg.modules.entity.vo.CalMDCInfo; -import org.jeecg.modules.entity.vo.GStoreMiddleProcessData; -import org.jeecg.modules.entity.vo.PHDFile; -import org.jeecg.modules.entity.vo.QcCheckItem; +import org.jeecg.modules.entity.GardsXeResultsSpectrum; +import org.jeecg.modules.entity.vo.*; +import org.jeecg.modules.native_jni.struct.SelfBgAnalyseResult; import java.util.List; import java.util.Map; @@ -55,5 +53,11 @@ public interface AnalysisManService { void saveAnalySettingROI(Integer sampleId, Integer idAnalysis, List phdFiles); - void saveGardsXeResults(Integer sampleId, Integer idAnalysis, List xeResultsList); + void saveBetaCalibration(SelfBgAnalyseResult analyseResult, Integer sampleId, Integer idAnalysis); + + void saveSampleB_EnergyRecord(List list, Integer sampleId, Integer anayId); + + void saveSampleG_EnergyRecord(List list, Integer sampleId, Integer anayId); + + void saveGardsXeResults(Integer sampleId, Integer idAnalysis, List xeResultsList); } diff --git a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/entity/vo/SelfStationData.java b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/entity/vo/SelfStationData.java index f43780f4..ecab9838 100644 --- a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/entity/vo/SelfStationData.java +++ b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/entity/vo/SelfStationData.java @@ -2,9 +2,9 @@ package org.jeecg.modules.entity.vo; import lombok.Data; import org.jeecg.modules.native_jni.struct.EnergySpectrumStruct; +import org.jeecg.modules.native_jni.struct.SelfBgAnalyseResult; import java.io.Serializable; -import java.util.LinkedList; import java.util.List; @Data @@ -132,6 +132,8 @@ public class SelfStationData implements Serializable { * */ private boolean bAnalyed; + private SelfBgAnalyseResult analyseResult; + public SelfStationData() { sampleVueData = new SelfStationVueData(); @@ -147,6 +149,8 @@ public class SelfStationData implements Serializable { betaDataFile = new BetaDataFile(); + analyseResult = new SelfBgAnalyseResult(); + } } diff --git a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/AnalysisManServiceImpl.java b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/AnalysisManServiceImpl.java index c9ed80d0..6e651bb1 100644 --- a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/AnalysisManServiceImpl.java +++ b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/AnalysisManServiceImpl.java @@ -11,7 +11,12 @@ import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.google.common.collect.Lists; import org.jeecg.modules.base.dto.*; import org.jeecg.modules.base.entity.rnman.*; +import org.jeecg.modules.base.enums.CalType; +import org.jeecg.modules.base.enums.FittingType; +import org.jeecg.modules.base.enums.SystemType; +import org.jeecg.modules.entity.GardsXeResultsSpectrum; import org.jeecg.modules.entity.vo.*; +import org.jeecg.modules.native_jni.struct.SelfBgAnalyseResult; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -53,6 +58,10 @@ public class AnalysisManServiceImpl implements AnalysisManService { private final Map fieldMap = fieldMap(); + private final static int START_RANGE = 0; + + private final static int END_RANGE = 1; + @Override public void middleDataTable(Integer idAnalysis, List middleDatas) { List analysisRois = analysisRoiManService.analysisRoi(idAnalysis); @@ -742,15 +751,77 @@ public class AnalysisManServiceImpl implements AnalysisManService { analySettingRoiService.saveBatch(analySettingRois); } + @Override + public void saveBetaCalibration(SelfBgAnalyseResult analyseResult, Integer sampleId, Integer anayId) { +// this.saveSampleB_EnergyRecord(analyseResult,sampleId,anayId); +// this.saveSampleG_EnergyRecord(analyseResult,sampleId,anayId); + } + + /** + * 保存 B_Energy 块信息 + * @param sampleId + * @param anayId + */ + @Override + public void saveSampleB_EnergyRecord(List list, Integer sampleId, Integer anayId) { + GardsCalibration calibration = new GardsCalibration(); + calibration.setSampleId(sampleId); + calibration.setIdAnalysis(anayId); + calibration.setSampleType(SystemType.BETA.getType()); + calibration.setCalType(CalType.ENERGY_CAL.getType()); + calibration.setFunction(FittingType.POLY2.getCode()); + calibration.setFunctionDef(FittingType.POLY2.getDescription()); + calibration.setStartOfRange(START_RANGE); + calibration.setEndOfRange(END_RANGE); + calibration.setCoeff1(list.get(0)); + calibration.setCoeff2(list.get(1)); + calibration.setCoeff3(list.get(2)); + calibration.setModdate(new Date()); + + calibrationSpectrumService.insertCalibrationBeta(calibration); + + } + + /** + * 存储数据分析过程中能量、分辨率和效率刻度的拟合结果。 + * 不提交事务,由调用方手动统一提交事务 + * G_Energy能道存储 + * @param sampleId + * @param anayId + */ + @Override + public void saveSampleG_EnergyRecord(List list, Integer sampleId, Integer anayId) { + GardsCalibration calibration = new GardsCalibration(); + calibration.setSampleId(sampleId); + calibration.setIdAnalysis(anayId); + calibration.setSampleType(SystemType.GAMMA.getType()); + calibration.setCalType(CalType.ENERGY_CAL.getType()); + calibration.setFunction(FittingType.POLY2.getCode()); + calibration.setFunctionDef(FittingType.POLY2.getDescription()); + calibration.setStartOfRange(START_RANGE); + calibration.setEndOfRange(END_RANGE); + calibration.setCoeff1(list.get(0)); + calibration.setCoeff2(list.get(1)); + calibration.setCoeff3(list.get(2)); + calibration.setModdate(new Date()); + + calibrationSpectrumService.insertCalibrationBeta(calibration); + } + + @Override @Transactional - public void saveGardsXeResults(Integer sampleId, Integer idAnalysis, List xeResultsList) { - for (GardsXeResults xeResults:xeResultsList) { - xeResults.setIdAnalysis(idAnalysis); - xeResults.setSampleId(sampleId); + public void saveGardsXeResults(Integer sampleId, Integer idAnalysis, List xeResultsList) { + List results = Lists.newArrayList(); + for (GardsXeResultsSpectrum result : xeResultsList) { + GardsXeResults gardsXeResults = new GardsXeResults(); + BeanUtil.copyProperties(result, gardsXeResults); + gardsXeResults.setSampleId(sampleId); + gardsXeResults.setIdAnalysis(idAnalysis); + results.add(gardsXeResults); } - if (CollectionUtils.isNotEmpty(xeResultsList)) { - xeResultsSpectrumService.saveBatch(xeResultsList); + if (CollectionUtils.isNotEmpty(results)) { + xeResultsSpectrumService.saveBatch(results); } } diff --git a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/IGardsCalibrationSpectrumService.java b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/IGardsCalibrationSpectrumService.java index 52ca07a5..f47b574c 100644 --- a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/IGardsCalibrationSpectrumService.java +++ b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/IGardsCalibrationSpectrumService.java @@ -9,6 +9,8 @@ public interface IGardsCalibrationSpectrumService extends IService xeResultsSpectrumList = new LinkedList<>(); List gammaCalibrationSpectrumList= new LinkedList<>(); List betaCalibrationSpectrumList = new LinkedList<>(); - List roiChannelsSpectrumList = new LinkedList<>(); - List roiResultsSpectrumList = new LinkedList<>(); List gammaCalibrationPairsList = new LinkedList<>(); List betaCalibrationPairsList = new LinkedList<>(); @@ -329,7 +327,6 @@ public class SelfStationServiceImpl extends AbstractLogOrReport implements ISelf // 从数据库加载 Gamma ROI信息 this.getROIResultFromDB(dbName, sampleId, sampleVueData, analysisID); - map.put("ROI1", loadROI(phd1, analyst, colorMap)); map.put("ROI2", loadROI(phd2, analyst, colorMap)); map.put("ROI3", loadROI(phd3, analyst, colorMap)); @@ -675,6 +672,7 @@ public class SelfStationServiceImpl extends AbstractLogOrReport implements ISelf String T_nuc_act = ""; String T_qc = ""; String T_mdc = ""; + String T_xe_result = ""; if (dbName.equals("RNAUTO")) { T_analy = "RNAUTO.GARDS_ANALYSIS_ROI"; T_calib = "RNAUTO.GARDS_CALIBRATION_PAIRS"; @@ -684,6 +682,7 @@ public class SelfStationServiceImpl extends AbstractLogOrReport implements ISelf T_nuc_act = "RNAUTO.GARDS_NUCL_IDED_ROI"; T_qc = "RNAUTO.GARDS_QC_CHECK_ROI"; T_mdc = "RNAUTO.GARDS_MDC_ROI"; + T_xe_result = "RNAUTO.GARDS_XE_RESULTS"; } else if (dbName.equals("RNMAN")) { T_analy = "RNMAN.GARDS_ANALYSIS_ROI"; T_calib = "RNMAN.GARDS_CALIBRATION_PAIRS"; @@ -693,6 +692,7 @@ public class SelfStationServiceImpl extends AbstractLogOrReport implements ISelf T_nuc_act = "RNMAN.GARDS_NUCL_IDED_ROI"; T_qc = "RNMAN.GARDS_QC_CHECK_ROI"; T_mdc = "RNMAN.GARDS_MDC_ROI"; + T_xe_result = "RNMAN.GARDS_XE_RESULTS"; } else { return false; } @@ -5612,8 +5612,36 @@ public class SelfStationServiceImpl extends AbstractLogOrReport implements ISelf // 向 RNMAN.GARDS_MDC 表写入 MDC计算结果 analysisManService.saveMDCROI(sampleId, mdcInfoMaps, idAnalysis); + // todo 逻辑不对 需要重写,用户修改QC刻度更新数据之后需要变更 20241009 +// analysisManService.saveBetaCalibration(selfStationData.getBetaDataFile(), sampleId, idAnalysis); + long numBChannel = sampleStruct.num_b_channel; + List bChannel = sampleStruct.b_channel; + List bElectronEnergy = sampleStruct.b_electron_energy; + //计算得到C to E公式数据 + List fittingPara = EnergySpectrumHandler.GetFileFittingPara(bChannel, bElectronEnergy); + List s_b_fitting_e_c = new LinkedList<>(); + for (Double para : fittingPara) { + s_b_fitting_e_c.add(para); + } + + List channel = new LinkedList<>(); + for (int i = 0; i < numBChannel - 1 ; ++i) { + channel.add(Double.valueOf(i)); + } + List energy = EnergySpectrumHandler.GetFileFittingData(channel, fittingPara); + //E to C + List fittingParaToUi = EnergySpectrumHandler.GetFileFittingPara(energy, channel); + List s_g_fitting_e_c = new LinkedList<>(); + for (Double para:fittingParaToUi) { + s_g_fitting_e_c.add(para); + } + + List g_e_c = betaDataFile.getGammaFittingParaToUi().stream().map(Double::valueOf).collect(Collectors.toList()); + analysisManService.saveSampleB_EnergyRecord(s_b_fitting_e_c, sampleId, idAnalysis); + analysisManService.saveSampleG_EnergyRecord(s_g_fitting_e_c, sampleId, idAnalysis); + //新增gards_Xe_results数据表数据 - analysisManService.saveGardsXeResults(sampleId, idAnalysis, betaDataFile.getXeDataList()); + analysisManService.saveGardsXeResults(sampleId, idAnalysis, selfStationData.getBetaDataFile().getXeResultsSpectrumList()); try { // 存储PHD文件 if (StringUtils.isNotBlank(sampleFilePathName)){