feat:Sample_G_Analysis

This commit is contained in:
nieziyan 2023-09-05 22:37:09 +08:00
parent fb4b563aee
commit a210b75205
6 changed files with 327 additions and 237 deletions

View File

@ -0,0 +1,39 @@
package org.jeecg.modules.base.dto;
import lombok.Data;
import java.util.List;
@Data
public class GardsPeaksDto {
private List<String> peaks_idPeak; //峰序号
private List<String> peaks_peakCentroid; //峰中心道道址
private List<String> peaks_uncpeakCentroid; //峰中心道不确定度道址
private List<String> peaks_Energy; //峰中心道能量keV
private List<String> peaks_uncEnergy; //峰中心道能量不确定度keV
private List<String> peaks_Area; //峰面积计数已扣除基线面积但未扣除空白样品计数和探测器本底计数
private List<String> peaks_areaErr; //峰面积不确定度以计数为单位
private List<String> peaks_netCountRate; //峰的净计数率1/s=峰面积/活时间 未知
private List<String> peaks_uncNetCountRate; //峰的净计数率的不确定度1/s 未知
private List<String> peaks_Efficiency; //测量系统在峰能量处的绝对效率
private List<String> peaks_Uncefficiency; //测量系统在峰能量处的绝对效率的不确定度
private List<String> peaks_Fwhm; //峰的半高宽keV
private List<String> peaks_Fwhmc; //峰的半高宽Channel
private List<String> peaks_Significance; //峰的灵敏度
private List<String> peaks_Sensitivity; //重峰序号
private List<String> peaks_multiIndex; //峰的感兴趣区的起始道left
private List<String> peaks_ROIstart; //峰的感兴趣区的结束道right
private List<String> peaks_ROIend; //峰序号
private List<String> peaks_tail; //
private List<String> peaks_tailAlpha; //
private List<String> peaks_upperTail; //
private List<String> peaks_upperTailAlpha; //
private List<String> peaks_BWWidthChan; //
private List<String> peaks_recoilDeltaChan; //
private List<String> peaks_stepRatio; //
private List<String> peaks_backgroundArea; //在峰区域下的基线面积计数
private List<String> peaks_meanBackCount; //基线面积/道数计数
private List<String> peaks_Lc; //峰的可探测线Lc
private List<String> peaks_Ld; //峰的可探测线Ld
}

View File

@ -0,0 +1,13 @@
package org.jeecg.modules.base.dto;
import lombok.Data;
import java.util.List;
@Data
public class PairsEDto {
private List<String> calibration_pairs_E_idCalPoint;
private List<String> calibration_pairs_E_xValue;
private List<String> calibration_pairs_E_yValue;
private List<String> calibration_pairs_E_uncYValue;
}

View File

@ -0,0 +1,13 @@
package org.jeecg.modules.base.dto;
import lombok.Data;
import java.util.List;
@Data
public class PairsEFDto {
private List<String> calibration_pairs_EF_idCalPoint;
private List<String> calibration_pairs_EF_xValue;
private List<String> calibration_pairs_EF_yValue;
private List<String> calibration_pairs_EF_uncYValue;
}

View File

@ -0,0 +1,13 @@
package org.jeecg.modules.base.dto;
import lombok.Data;
import java.util.List;
@Data
public class PairsRDto {
private List<String> calibration_pairs_R_idCalPoint;
private List<String> calibration_pairs_R_xValue;
private List<String> calibration_pairs_R_yValue;
private List<String> calibration_pairs_R_uncYValue;
}

View File

@ -0,0 +1,13 @@
package org.jeecg.modules.base.dto;
import lombok.Data;
import java.util.List;
@Data
public class PairsTDto {
private List<String> calibration_pairs_T_idCalPoint;
private List<String> calibration_pairs_T_xValue;
private List<String> calibration_pairs_T_yValue;
private List<String> calibration_pairs_T_uncYValue;
}

View File

@ -9,8 +9,7 @@ import cn.hutool.core.util.StrUtil;
import lombok.Data;
import org.jeecg.common.constant.DateConstant;
import org.jeecg.common.constant.Setting;
import org.jeecg.modules.base.dto.GardsNuclIdedDto;
import org.jeecg.modules.base.dto.QcCheckDto;
import org.jeecg.modules.base.dto.*;
import org.jeecg.modules.base.entity.original.GardsSampleData;
import org.jeecg.modules.base.entity.rnauto.*;
import org.jeecg.modules.entity.vo.*;
@ -21,6 +20,8 @@ import java.util.*;
@Data
public class Sample_G_Analysis {
private final Map<String,String> fieldMap = fieldMap();
// Sample谱原始数据
private GardsSampleData sampleData;
@ -38,111 +39,143 @@ public class Sample_G_Analysis {
}
public void analysis(){
/* 准备Gamma分析需要的数据 */
PHDFile phdFile = getSettingFromDB();
try {
/* 准备Gamma分析需要的数据 */
GStoreMiddleProcessData middleData = new GStoreMiddleProcessData();
Integer sampleId = sampleData.getSampleId();
Map<String,String> fieldMap = fieldMap();
// 保存分析结果 ==> INSERT INTO RNAUTO.GARDS_ANALYSES
saveAnalysis(middleData,sampleId);
// 获取分析结果ID ==> SELECT IDANALYSIS
Integer IdAnalysis = getIdAnalysis(sampleId);
// 修改保存结果状态 ==> UPDATE ORIGINAL.GARDS_SAMPLE_DATA
serviceQuotes.getSampleDataService().updateStatus(null,null);
/* GARDS_CALIBRATION_PAIRS 数据表保存 */
saveCalibrationPairs(middleData,sampleId,IdAnalysis);
/* GARDS_CALIBRATION 数据表保存 */
saveCalibration(middleData,sampleId,IdAnalysis);
/* Gards_Peaks 数据表保存 */
savePeaks(middleData);
/* Gards_Nucl_Lines_Ided 数据表保存 */
saveNuclLinesIded(middleData,sampleId,IdAnalysis);
/* Gards_Nucl_Ided 数据表保存 */
saveNuclIded(middleData,sampleId,IdAnalysis);
/* Gards_Qc_Check 数据表保存 */
saveQcCheck(middleData,sampleId,IdAnalysis);
// 收尾处理 ==> 写日志文件和报告文件
}catch (Exception e){
e.printStackTrace();
/** 从MiddleData获取需要的数据 **/
GStoreMiddleProcessData middleData = new GStoreMiddleProcessData();
String pairsSampleType = middleData.getCalibration_pairs_sample_type();
String calibrationSampleType = middleData.getCalibration_sample_type();
// Energy
String pairsECaltype = middleData.getCalibration_pairs_E_Caltype();
String pairsEInput = middleData.getCalibration_pairs_E_Input();
List<String> pairsEIdCalPoint = middleData.getCalibration_pairs_E_idCalPoint();
List<String> pairsEXValue = middleData.getCalibration_pairs_E_xValue();
List<String> pairsEYValue = middleData.getCalibration_pairs_E_yValue();
List<String> pairsEUncYValue = middleData.getCalibration_pairs_E_uncYValue();
// Efficiency
String pairsEfCaltype = middleData.getCalibration_pairs_EF_Caltype();
String pairsEfInput = middleData.getCalibration_pairs_EF_Input();
List<String> pairsEfIdCalPoint = middleData.getCalibration_pairs_EF_idCalPoint();
List<String> pairsEfXValue = middleData.getCalibration_pairs_EF_xValue();
List<String> pairsEfYValue = middleData.getCalibration_pairs_EF_yValue();
List<String> pairsEfUncYValue = middleData.getCalibration_pairs_EF_uncYValue();
// Resolution
String pairsRCaltype = middleData.getCalibration_pairs_R_Caltype();
String pairsRInput = middleData.getCalibration_pairs_R_Input();
List<String> pairsRIdCalPoint = middleData.getCalibration_pairs_R_idCalPoint();
List<String> pairsRXValue = middleData.getCalibration_pairs_R_xValue();
List<String> pairsRYValue = middleData.getCalibration_pairs_R_yValue();
List<String> pairsRUncYValue = middleData.getCalibration_pairs_R_uncYValue();
// TotalEfficiency
String pairsTCaltype = middleData.getCalibration_pairs_T_Caltype();
String pairsTInput = middleData.getCalibration_pairs_T_Input();
List<String> pairsTIdCalPoint = middleData.getCalibration_pairs_T_idCalPoint();
List<String> pairsTXValue = middleData.getCalibration_pairs_T_xValue();
List<String> pairsTYValue = middleData.getCalibration_pairs_T_yValue();
List<String> pairsTUncYValue = middleData.getCalibration_pairs_T_uncYValue();
}finally {
// 保存分析结果 ==> INSERT INTO RNAUTO.GARDS_ANALYSES
}
}
public void saveAnalysis(GStoreMiddleProcessData middleData,Integer sampleId){
GardsAnalyses analysis = toAnalysis(middleData);
Integer sampleId = sampleData.getSampleId();
analysis.setSampleId(sampleId);
serviceQuotes.getAnalysesService().save(analysis);
// 获取分析结果ID ==> SELECT IDANALYSIS
Integer IdAnalysis = serviceQuotes.getAnalysesService().getIdAnalysis(sampleId);
// ==> UPDATE ORIGINAL.GARDS_SAMPLE_DATA
serviceQuotes.getSampleDataService().updateStatus(null,null);
// Energy ==> INSERT INTO RNAUTO.GARDS_CALIBRATION_PAIRS
GardsCalibrationPairs calibrationPairs = new GardsCalibrationPairs();
calibrationPairs.setSampleId(sampleId);
calibrationPairs.setIdAnalysis(IdAnalysis);
calibrationPairs.setSampleType(pairsSampleType);
calibrationPairs.setCaltype(pairsECaltype);
calibrationPairs.setInput(pairsEInput);
calibrationPairs.setIdCalPoint(null);
calibrationPairs.setXValue(null);
calibrationPairs.setYValue(null);
calibrationPairs.setUncYValue(null);
serviceQuotes.getGardsCalibrationPairsService().save(calibrationPairs);
// Efficiency ==> INSERT INTO RNAUTO.GARDS_CALIBRATION_PAIRS
calibrationPairs.setCaltype(pairsEfCaltype);
calibrationPairs.setInput(pairsEfInput);
calibrationPairs.setIdCalPoint(null);
calibrationPairs.setXValue(null);
calibrationPairs.setYValue(null);
calibrationPairs.setUncYValue(null);
serviceQuotes.getGardsCalibrationPairsService().save(calibrationPairs);
// Resolution ==> INSERT INTO RNAUTO.GARDS_CALIBRATION_PAIRS
calibrationPairs.setCaltype(pairsRCaltype);
calibrationPairs.setInput(pairsRInput);
calibrationPairs.setIdCalPoint(null);
calibrationPairs.setXValue(null);
calibrationPairs.setYValue(null);
calibrationPairs.setUncYValue(null);
serviceQuotes.getGardsCalibrationPairsService().save(calibrationPairs);
// TotalEfficiency ==> INSERT INTO RNAUTO.GARDS_CALIBRATION_PAIRS
calibrationPairs.setCaltype(pairsTCaltype);
calibrationPairs.setInput(pairsTInput);
calibrationPairs.setIdCalPoint(null);
calibrationPairs.setXValue(null);
calibrationPairs.setYValue(null);
calibrationPairs.setUncYValue(null);
serviceQuotes.getGardsCalibrationPairsService().save(calibrationPairs);
// E ==> INSERT INTO RNAUTO.GARDS_CALIBRATION
GardsCalibration calibration = new GardsCalibration();
calibration.setSampleId(sampleId);
calibration.setIdAnalysis(IdAnalysis);
calibration.setSampleType(calibrationSampleType);
if (CollUtil.isNotEmpty(pairsEIdCalPoint)){
String eCaltype = middleData.getCalibration_E_Caltype();
double eFunction = middleData.getCalibration_E_function();
String eFunctionDef = middleData.getCalibration_E_functionDef();
double eStartOfRange = middleData.getCalibration_E_startOfRange();
double eEndOfRange = middleData.getCalibration_E_endOfRange();
String eCoeffString = middleData.getCalibration_E_coeff_string();
calibration.setCalType(eCaltype);
calibration.setFunction((int)eFunction);
calibration.setFunctionDef(eFunctionDef);
calibration.setStartOfRange((int)eStartOfRange);
calibration.setEndOfRange((int)eEndOfRange);
calibration.setCoeffString(eCoeffString);
serviceQuotes.getGardsCalibrationService().save(calibration);
}
public Integer getIdAnalysis(Integer sampleId){
return serviceQuotes.getAnalysesService().getIdAnalysis(sampleId);
}
public void saveCalibrationPairs(GStoreMiddleProcessData middleData,
Integer sampleId, Integer IdAnalysis){
String pairsSampleType = middleData.getCalibration_pairs_sample_type();
GardsCalibrationPairs pairs = new GardsCalibrationPairs();
// GARDS_CALIBRATION_PAIRS (Energy) ==> INSERT INTO RNAUTO.GARDS_CALIBRATION_PAIRS
String base_E_Paris = "calibration_pairs_E_idCalPoint";
PairsEDto pairsEDto = new PairsEDto();
BeanUtil.copyProperties(middleData,pairsEDto);
List<GardsCalibrationPairs> pairsE = mapFields(pairsEDto, pairs, base_E_Paris, fieldMap);
String pairsECaltype = middleData.getCalibration_pairs_E_Caltype();
String pairsEInput = middleData.getCalibration_pairs_E_Input();
for (GardsCalibrationPairs onePairs : pairsE) {
onePairs.setSampleId(sampleId);
onePairs.setIdAnalysis(IdAnalysis);
onePairs.setSampleType(pairsSampleType);
onePairs.setCaltype(pairsECaltype);
onePairs.setInput(pairsEInput);
}
// EF ==> INSERT INTO RNAUTO.GARDS_CALIBRATION
if (CollUtil.isNotEmpty(pairsEfIdCalPoint)){
// GARDS_CALIBRATION_PAIRS (Efficiency) ==> INSERT INTO RNAUTO.GARDS_CALIBRATION_PAIRS
String base_EF_Paris = "calibration_pairs_EF_idCalPoint";
PairsEFDto pairsEFDto = new PairsEFDto();
BeanUtil.copyProperties(middleData,pairsEFDto);
List<GardsCalibrationPairs> pairsEF = mapFields(pairsEFDto, pairs, base_EF_Paris, fieldMap);
String pairsEFCaltype = middleData.getCalibration_pairs_EF_Caltype();
String pairsEFInput = middleData.getCalibration_pairs_EF_Input();
for (GardsCalibrationPairs onePairs : pairsEF) {
onePairs.setSampleId(sampleId);
onePairs.setIdAnalysis(IdAnalysis);
onePairs.setSampleType(pairsSampleType);
onePairs.setCaltype(pairsEFCaltype);
onePairs.setInput(pairsEFInput);
}
// GARDS_CALIBRATION_PAIRS (Resolution) ==> INSERT INTO RNAUTO.GARDS_CALIBRATION_PAIRS
String base_R_Paris = "calibration_pairs_R_idCalPoint";
PairsRDto pairsRDto = new PairsRDto();
BeanUtil.copyProperties(middleData,pairsRDto);
List<GardsCalibrationPairs> pairsR = mapFields(pairsRDto, pairs, base_R_Paris, fieldMap);
String pairsRCaltype = middleData.getCalibration_pairs_R_Caltype();
String pairsRInput = middleData.getCalibration_pairs_R_Input();
for (GardsCalibrationPairs onePairs : pairsR) {
onePairs.setSampleId(sampleId);
onePairs.setIdAnalysis(IdAnalysis);
onePairs.setSampleType(pairsSampleType);
onePairs.setCaltype(pairsRCaltype);
onePairs.setInput(pairsRInput);
}
// GARDS_CALIBRATION_PAIRS (TotalEfficiency) ==> INSERT INTO RNAUTO.GARDS_CALIBRATION_PAIRS
String base_T_Paris = "calibration_pairs_T_idCalPoint";
PairsTDto pairsTDto = new PairsTDto();
BeanUtil.copyProperties(middleData,pairsTDto);
List<GardsCalibrationPairs> pairsT = mapFields(pairsTDto, pairs, base_T_Paris, fieldMap);
String pairsTCaltype = middleData.getCalibration_pairs_T_Caltype();
String pairsTInput = middleData.getCalibration_pairs_T_Input();
for (GardsCalibrationPairs onePairs : pairsT) {
onePairs.setSampleId(sampleId);
onePairs.setIdAnalysis(IdAnalysis);
onePairs.setSampleType(pairsSampleType);
onePairs.setCaltype(pairsTCaltype);
onePairs.setInput(pairsTInput);
}
// GARDS_CALIBRATION_PAIRS 汇总保存
List<GardsCalibrationPairs> allPairs = new ArrayList<>();
allPairs.addAll(pairsE);allPairs.addAll(pairsEF);
allPairs.addAll(pairsR);allPairs.addAll(pairsT);
serviceQuotes.getGardsCalibrationPairsService().saveBatch(allPairs);
}
public void saveCalibration(GStoreMiddleProcessData middleData,
Integer sampleId, Integer IdAnalysis){
String calibrationSampleType = middleData.getCalibration_sample_type();
List<String> pairsEIdCalPoint = middleData.getCalibration_pairs_E_idCalPoint();
List<String> pairsEFIdCalPoint = middleData.getCalibration_pairs_EF_idCalPoint();
List<String> pairsRIdCalPoint = middleData.getCalibration_pairs_R_idCalPoint();
List<String> pairsTIdCalPoint = middleData.getCalibration_pairs_T_idCalPoint();
List<GardsCalibration> calibrations = new ArrayList<>();
// GARDS_CALIBRATION (E) ==> INSERT INTO RNAUTO.GARDS_CALIBRATION
if (CollUtil.isNotEmpty(pairsEIdCalPoint)){
GardsCalibration calibration = new GardsCalibration();
calibration.setSampleId(sampleId);
calibration.setIdAnalysis(IdAnalysis);
calibration.setSampleType(calibrationSampleType);
calibration.setCalType(middleData.getCalibration_E_Caltype());
calibration.setFunction((int)middleData.getCalibration_E_function());
calibration.setFunctionDef(middleData.getCalibration_E_functionDef());
calibration.setStartOfRange((int)middleData.getCalibration_E_startOfRange());
calibration.setEndOfRange((int)middleData.getCalibration_E_endOfRange());
calibration.setCoeffString(middleData.getCalibration_E_coeff_string());
calibrations.add(calibration);
}
// GARDS_CALIBRATION (EF) ==> INSERT INTO RNAUTO.GARDS_CALIBRATION
if (CollUtil.isNotEmpty(pairsEFIdCalPoint)){
GardsCalibration calibration = new GardsCalibration();
calibration.setSampleId(sampleId);
calibration.setIdAnalysis(IdAnalysis);
calibration.setSampleType(calibrationSampleType);
String efCaltype = middleData.getCalibration_EF_Caltype();
double efFunction = middleData.getCalibration_EF_function();
String efFunctionDef = middleData.getCalibration_EF_functionDef();
@ -155,10 +188,14 @@ public class Sample_G_Analysis {
calibration.setStartOfRange((int)efStartOfRange);
calibration.setEndOfRange((int)efEndOfRange);
calibration.setCoeffString(efCoeffString);
serviceQuotes.getGardsCalibrationService().save(calibration);
calibrations.add(calibration);
}
// R ==> INSERT INTO RNAUTO.GARDS_CALIBRATION
// GARDS_CALIBRATION (R) ==> INSERT INTO RNAUTO.GARDS_CALIBRATION
if (CollUtil.isNotEmpty(pairsRIdCalPoint)){
GardsCalibration calibration = new GardsCalibration();
calibration.setSampleId(sampleId);
calibration.setIdAnalysis(IdAnalysis);
calibration.setSampleType(calibrationSampleType);
String rCaltype = middleData.getCalibration_R_Caltype();
double rFunction = middleData.getCalibration_R_function();
String rFunctionDef = middleData.getCalibration_R_functionDef();
@ -171,10 +208,14 @@ public class Sample_G_Analysis {
calibration.setStartOfRange((int)rStartOfRange);
calibration.setEndOfRange((int)rEndOfRange);
calibration.setCoeffString(rCoeffString);
serviceQuotes.getGardsCalibrationService().save(calibration);
calibrations.add(calibration);
}
// T ==> INSERT INTO RNAUTO.GARDS_CALIBRATION
// GARDS_CALIBRATION (T) ==> INSERT INTO RNAUTO.GARDS_CALIBRATION
if (CollUtil.isNotEmpty(pairsTIdCalPoint)){
GardsCalibration calibration = new GardsCalibration();
calibration.setSampleId(sampleId);
calibration.setIdAnalysis(IdAnalysis);
calibration.setSampleType(calibrationSampleType);
String tCaltype = middleData.getCalibration_T_Caltype();
double tFunction = middleData.getCalibration_T_function();
String tFunctionDef = middleData.getCalibration_T_functionDef();
@ -182,121 +223,38 @@ public class Sample_G_Analysis {
double tEndOfRange = middleData.getCalibration_T_endOfRange();
String tCoeffString = middleData.getCalibration_T_coeff_string();
calibration.setCalType(tCaltype);
calibration.setFunction((int)tFunction);
calibration.setFunction((int)middleData.getCalibration_T_function());
calibration.setFunctionDef(tFunctionDef);
calibration.setStartOfRange((int)tStartOfRange);
calibration.setEndOfRange((int)tEndOfRange);
calibration.setCoeffString(tCoeffString);
serviceQuotes.getGardsCalibrationService().save(calibration);
calibrations.add(calibration);
}
serviceQuotes.getGardsCalibrationService().saveBatch(calibrations);
}
public void savePeaks(GStoreMiddleProcessData middleData){
// Gards_Peaks数据表 ==> INSERT INTO RNAUTO.GARDS_PEAKS
List<String> idPeak = middleData.getPeaks_idPeak();
if (CollUtil.isNotEmpty(idPeak)){
List<String> peakCentroid = middleData.getPeaks_peakCentroid();
List<String> uncpeakCentroid = middleData.getPeaks_uncpeakCentroid();
List<String> energy = middleData.getPeaks_Energy();
List<String> uncEnergy = middleData.getPeaks_uncEnergy();
List<String> area = middleData.getPeaks_Area();
List<String> areaErr = middleData.getPeaks_areaErr();
List<String> efficiency = middleData.getPeaks_Efficiency();
List<String> uncefficiency = middleData.getPeaks_Uncefficiency();
List<String> fwhm = middleData.getPeaks_Fwhm();
List<String> fwhmc = middleData.getPeaks_Fwhmc();
List<String> significance = middleData.getPeaks_Significance();
List<String> sensitivity = middleData.getPeaks_Sensitivity();
List<String> multiIndex = middleData.getPeaks_multiIndex();
List<String> roIstart = middleData.getPeaks_ROIstart();
List<String> roIend = middleData.getPeaks_ROIend();
List<String> tail = middleData.getPeaks_tail();
List<String> tailAlpha = middleData.getPeaks_tailAlpha();
List<String> upperTail = middleData.getPeaks_upperTail();
List<String> upperTailAlpha = middleData.getPeaks_upperTailAlpha();
List<String> bwWidthChan = middleData.getPeaks_BWWidthChan();
List<String> recoilDeltaChan = middleData.getPeaks_recoilDeltaChan();
List<String> stepRatio = middleData.getPeaks_stepRatio();
List<String> backgroundArea = middleData.getPeaks_backgroundArea();
List<String> meanBackCount = middleData.getPeaks_meanBackCount();
List<String> lc = middleData.getPeaks_Lc();
List<String> ld = middleData.getPeaks_Ld();
List<String> netCountRate = middleData.getPeaks_netCountRate();
List<String> uncNetCountRate = middleData.getPeaks_uncNetCountRate();
List<GardsPeaks> peaks = new ArrayList<>();
for (int i = 0; i < idPeak.size(); i++) {
GardsPeaks peak = new GardsPeaks();
peak.setSampleId(sampleId);
peak.setIdAnalysis(IdAnalysis);
if (StrUtil.isNotBlank(idPeak.get(i)))
peak.setIdPeak(Integer.valueOf(idPeak.get(i)));
if (StrUtil.isNotBlank(peakCentroid.get(i)))
peak.setCentroidChannel(Double.valueOf(peakCentroid.get(i)));
if (StrUtil.isNotBlank(uncpeakCentroid.get(i)))
peak.setUncCentroidChannel(Double.valueOf(uncpeakCentroid.get(i)));
if (StrUtil.isNotBlank(energy.get(i)))
peak.setEnergy(Double.valueOf(energy.get(i)));
if (StrUtil.isNotBlank(uncEnergy.get(i)))
peak.setUncEnergy(Double.valueOf(uncEnergy.get(i)));
if (StrUtil.isNotBlank(area.get(i)))
peak.setArea(Double.valueOf(area.get(i)));
if (StrUtil.isNotBlank(areaErr.get(i)))
peak.setUncArea(Double.valueOf(areaErr.get(i)));
if (StrUtil.isNotBlank(efficiency.get(i)))
peak.setEfficiency(Double.valueOf(efficiency.get(i)));
if (StrUtil.isNotBlank(uncefficiency.get(i)))
peak.setUncefficiency(Double.valueOf(uncefficiency.get(i)));
if (StrUtil.isNotBlank(fwhm.get(i)))
peak.setFwhm(Double.valueOf(fwhm.get(i)));
if (StrUtil.isNotBlank(fwhmc.get(i)))
peak.setFwtm(Double.valueOf(fwhmc.get(i)));
if (StrUtil.isNotBlank(significance.get(i)))
peak.setSignificance(Double.valueOf(significance.get(i)));
if (StrUtil.isNotBlank(sensitivity.get(i)))
peak.setSensitivity(Double.valueOf(sensitivity.get(i)));
if (StrUtil.isNotBlank(multiIndex.get(i)))
peak.setMulitiIndex(Double.valueOf(multiIndex.get(i)));
if (StrUtil.isNotBlank(roIstart.get(i)))
peak.setRoiStart(Double.valueOf(roIstart.get(i)));
if (StrUtil.isNotBlank(roIend.get(i)))
peak.setRoiEnd(Double.valueOf(roIend.get(i)));
if (StrUtil.isNotBlank(tail.get(i)))
peak.setTail(Double.valueOf(tail.get(i)));
if (StrUtil.isNotBlank(tailAlpha.get(i)))
peak.setTailAlpha(Double.valueOf(tailAlpha.get(i)));
if (StrUtil.isNotBlank(upperTail.get(i)))
peak.setUpperTail(Double.valueOf(upperTail.get(i)));
if (StrUtil.isNotBlank(upperTailAlpha.get(i)))
peak.setUpperTailAlpha(Double.valueOf(upperTailAlpha.get(i)));
if (StrUtil.isNotBlank(bwWidthChan.get(i)))
peak.setBwwidthchan(Double.valueOf(bwWidthChan.get(i)));
if (StrUtil.isNotBlank(recoilDeltaChan.get(i)))
peak.setRecoildeltachan(Double.valueOf(recoilDeltaChan.get(i)));
if (StrUtil.isNotBlank(stepRatio.get(i)))
peak.setStepraio(Double.valueOf(stepRatio.get(i)));
if (StrUtil.isNotBlank(backgroundArea.get(i)))
peak.setBackgroundarea(Double.valueOf(backgroundArea.get(i)));
if (StrUtil.isNotBlank(meanBackCount.get(i)))
peak.setMeanbackcount(Double.valueOf(meanBackCount.get(i)));
if (StrUtil.isNotBlank(lc.get(i)))
peak.setLc(Double.valueOf(lc.get(i)));
if (StrUtil.isNotBlank(ld.get(i)))
peak.setLd(Double.valueOf(ld.get(i)));
if (StrUtil.isNotBlank(netCountRate.get(i)))
peak.setNetCountRate(Double.valueOf(netCountRate.get(i)));
if (StrUtil.isNotBlank(uncNetCountRate.get(i)))
peak.setUncNetCountRate(Double.valueOf(uncNetCountRate.get(i)));
peaks.add(peak);
}
serviceQuotes.getGardsPeaksAutoService().saveBatch(peaks);
}
String base_P_IdPeak = "peaks_idPeak";
GardsPeaksDto gardsPeaksDto = new GardsPeaksDto();
BeanUtil.copyProperties(middleData,gardsPeaksDto);
GardsPeaks gardsPeaks = new GardsPeaks();
List<GardsPeaks> peaks = mapFields(gardsPeaksDto, gardsPeaks, base_P_IdPeak, fieldMap);
serviceQuotes.getGardsPeaksAutoService().saveBatch(peaks);
}
public void saveNuclLinesIded(GStoreMiddleProcessData middleData,
Integer sampleId, Integer IdAnalysis){
// Gards_Nucl_Lines_Ided数据表 ==> INSERT INTO RNAUTO.GARDS_NUCL_LINES_IDED
Map<String, GStoreMiddleProcessDataNuclLinesIded> nuclLinesIdedData = middleData.getNucl_lines_ided_data();
String base_idPeak = "idPeak";
String base_IdPeak = "idPeak";
List<GardsNuclLinesIded> allNuclLinesIdeds = new ArrayList<>();
for (Map.Entry<String, GStoreMiddleProcessDataNuclLinesIded> entry : nuclLinesIdedData.entrySet()) {
String nuclideName = entry.getKey();
GStoreMiddleProcessDataNuclLinesIded nuclLinesIded = entry.getValue();
GardsNuclLinesIded gardsNuclLinesIded = new GardsNuclLinesIded();
List<GardsNuclLinesIded> gardsNuclLinesIdeds =
mapFields(nuclLinesIded, gardsNuclLinesIded, base_idPeak, fieldMap);
mapFields(nuclLinesIded, gardsNuclLinesIded, base_IdPeak, fieldMap);
if (CollUtil.isNotEmpty(gardsNuclLinesIdeds)){
for (GardsNuclLinesIded ided : gardsNuclLinesIdeds) {
ided.setSampleId(sampleId);
@ -307,19 +265,28 @@ public class Sample_G_Analysis {
}
}
serviceQuotes.getGardsNuclLinesIdedAutoService().saveBatch(allNuclLinesIdeds);
}
public void saveNuclIded(GStoreMiddleProcessData middleData,
Integer sampleId, Integer IdAnalysis){
// Gards_Nucl_Ided数据表 ==> INSERT INTO RNAUTO.GARDS_NUCL_IDED
GardsNuclIdedDto gardsNuclIdedDto = new GardsNuclIdedDto();
GardsNuclIded gardsNuclIded = new GardsNuclIded();
BeanUtil.copyProperties(middleData,gardsNuclIdedDto);
String base_nuclideName = "nucl_ided_Nuclidename";
String base_NuclideName = "nucl_ided_Nuclidename";
List<GardsNuclIded> gardsNuclIdeds =
mapFields(gardsNuclIdedDto, gardsNuclIded, base_nuclideName, fieldMap);
mapFields(gardsNuclIdedDto, gardsNuclIded, base_NuclideName, fieldMap);
for (GardsNuclIded ided : gardsNuclIdeds) {
ided.setSampleId(sampleId);
ided.setIdAnalysis(IdAnalysis);
}
// serviceQuotes.get
}
public void saveQcCheck(GStoreMiddleProcessData middleData,
Integer sampleId, Integer IdAnalysis){
// Gards_Qc_Check数据表 ==> INSERT INTO RNAUTO.GARDS_QC_CHECK
PHDFile phdFile = getSettingFromDB();
Map<String, QcCheckItem> qcItems = phdFile.getQcItems();
if (MapUtil.isNotEmpty(qcItems)){
String base_QC = String.valueOf(qcItems.size());
@ -333,7 +300,6 @@ public class Sample_G_Analysis {
}
serviceQuotes.getGardsQcCheckAutoService().saveBatch(gardsQcChecks);
}
}
public void getNuclideLinesG(){
@ -347,42 +313,75 @@ public class Sample_G_Analysis {
public Map<String,String> fieldMap(){
Map<String,String> fieldMap = new HashMap<>();
// Gards_Nucl_Lines_Ided
fieldMap.put("nuclideFullname","nuclidefullname");
fieldMap.put("Energy","energy");
fieldMap.put("Abundance","abundance");
fieldMap.put("Activity","activity");
fieldMap.put("Effic","effic");
fieldMap.put("uncEffic","unEffic");
fieldMap.put("Mda","mda");
fieldMap.put("key_flag","keyFlag");
fieldMap.put("csc_ratio","cscRatio");
fieldMap.put("csc_ratio_err","cscRatioErr");
fieldMap.put("csc_mod_flag","cscModFlag");
fieldMap.put("MDC","mdc");
fieldMap.put("nuclideFullname","nuclidefullname");fieldMap.put("Energy","energy");
fieldMap.put("Abundance","abundance");fieldMap.put("Activity","activity");
fieldMap.put("Effic","effic");fieldMap.put("uncEffic","unEffic");
fieldMap.put("Mda","mda");fieldMap.put("key_flag","keyFlag");
fieldMap.put("csc_ratio","cscRatio");fieldMap.put("csc_ratio_err","cscRatioErr");
fieldMap.put("csc_mod_flag","cscModFlag");fieldMap.put("MDC","mdc");
fieldMap.put("Concentration","concentration");
// Gards_Nucl_Ided
fieldMap.put("nucl_ided_Nucidename","nuclideName");
fieldMap.put("nucl_ided_Type","type");
fieldMap.put("nucl_ided_Halflife","halflife");
fieldMap.put("nucl_ided_ave_activ","aveActiv");
fieldMap.put("nucl_ided_ave_activ_err","aveActivErr");
fieldMap.put("nucl_ided_activ_key","activKey");
fieldMap.put("nucl_ided_activ_key_err","activKeyErr");
fieldMap.put("nucl_ided_mda","mda");
fieldMap.put("nucl_ided_mda_err","mdaErr");
fieldMap.put("nucl_ided_nid_flag","nidFlag");
fieldMap.put("nucl_ided_csc_ratio","cscRatio");
fieldMap.put("nucl_ided_csc_ratio_err","cscRatioErr");
fieldMap.put("nucl_ided_csc_mod_flag","cscModFlag");
fieldMap.put("nucl_ided_MDC","mdc");
fieldMap.put("nucl_ided_Concentration","concentration");
fieldMap.put("nucl_ided_Key_Energy","keyEnergy");
fieldMap.put("nucl_ided_Nucidename","nuclideName");fieldMap.put("nucl_ided_Type","type");
fieldMap.put("nucl_ided_Halflife","halflife");fieldMap.put("nucl_ided_ave_activ","aveActiv");
fieldMap.put("nucl_ided_ave_activ_err","aveActivErr");fieldMap.put("nucl_ided_activ_key","activKey");
fieldMap.put("nucl_ided_activ_key_err","activKeyErr");fieldMap.put("nucl_ided_mda","mda");
fieldMap.put("nucl_ided_mda_err","mdaErr");fieldMap.put("nucl_ided_nid_flag","nidFlag");
fieldMap.put("nucl_ided_csc_ratio","cscRatio");fieldMap.put("nucl_ided_csc_ratio_err","cscRatioErr");
fieldMap.put("nucl_ided_csc_mod_flag","cscModFlag");fieldMap.put("nucl_ided_MDC","mdc");
fieldMap.put("nucl_ided_Concentration","concentration");fieldMap.put("nucl_ided_Key_Energy","keyEnergy");
fieldMap.put("nucl_ided_Key_Yield","keyYield");
// Gards_Qc_Check
fieldMap.put("QC_CHECK_QC_NAME","qcName");
fieldMap.put("QC_CHECK_QC_VALUE","qcValue");
fieldMap.put("QC_CHECK_QC_STANDARD","qcStandard");
fieldMap.put("QC_CHECK_QC_RESULT","qcResult");
// Gards_Peaks
fieldMap.put("peaks_idPeak", "idPeak");
fieldMap.put("peaks_peakCentroid", "centroidChannel");
fieldMap.put("peaks_uncpeakCentroid", "uncCentroidChannel");
fieldMap.put("peaks_Energy", "energy");
fieldMap.put("peaks_uncEnergy", "uncEnergy");
fieldMap.put("peaks_Area", "area");
fieldMap.put("peaks_areaErr", "uncArea");
fieldMap.put("peaks_netCountRate", "netCountRate");
fieldMap.put("peaks_uncNetCountRate", "uncNetCountRate");
fieldMap.put("peaks_Efficiency", "efficiency");
fieldMap.put("peaks_Uncefficiency", "uncefficiency");
fieldMap.put("peaks_Fwhm", "fwhm");
fieldMap.put("peaks_Fwhmc", "fwtm");
fieldMap.put("peaks_Significance", "significance");
fieldMap.put("peaks_Sensitivity", "sensitivity");
fieldMap.put("peaks_multiIndex", "mulitiIndex");
fieldMap.put("peaks_ROIstart", "roiStart");
fieldMap.put("peaks_ROIend", "roiEnd");
fieldMap.put("peaks_tail", "tail");
fieldMap.put("peaks_tailAlpha", "tailAlpha");
fieldMap.put("peaks_upperTail", "upperTail");
fieldMap.put("peaks_upperTailAlpha", "upperTailAlpha");
fieldMap.put("peaks_BWWidthChan", "bwwidthchan");
fieldMap.put("peaks_recoilDeltaChan", "recoildeltachan");
fieldMap.put("peaks_stepRatio", "stepraio");
fieldMap.put("peaks_backgroundArea", "backgroundarea");
fieldMap.put("peaks_meanBackCount", "meanbackcount");
fieldMap.put("peaks_Lc", "lc");
fieldMap.put("peaks_Ld", "ld");
// GARDS_CALIBRATION_PAIRS
fieldMap.put("calibration_pairs_E_idCalPoint","idCalPoint");
fieldMap.put("calibration_pairs_E_xValue","xValue");
fieldMap.put("calibration_pairs_E_yValue","yValue");
fieldMap.put("calibration_pairs_E_uncYValue","uncYValue");
fieldMap.put("calibration_pairs_EF_idCalPoint","idCalPoint");
fieldMap.put("calibration_pairs_EF_xValue","xValue");
fieldMap.put("calibration_pairs_EF_yValue","yValue");
fieldMap.put("calibration_pairs_EF_uncYValue","uncYValue");
fieldMap.put("calibration_pairs_R_idCalPoint","idCalPoint");
fieldMap.put("calibration_pairs_R_xValue","xValue");
fieldMap.put("calibration_pairs_R_yValue","yValue");
fieldMap.put("calibration_pairs_R_uncYValue","uncYValue");
fieldMap.put("calibration_pairs_T_idCalPoint","idCalPoint");
fieldMap.put("calibration_pairs_T_xValue","xValue");
fieldMap.put("calibration_pairs_T_yValue","yValue");
fieldMap.put("calibration_pairs_T_uncYValue","uncYValue");
return fieldMap;
}
@ -472,7 +471,7 @@ public class Sample_G_Analysis {
return gardsAnalyses;
}
public static <T1,T2> List<T2> mapFields(T1 source, T2 tartget, String baseLine, Map<String,String> fieldMap) {
public <T1,T2> List<T2> mapFields(T1 source, T2 tartget, String baseLine, Map<String,String> fieldMap) {
try {
List<T2> result = new ArrayList<>();
Class<?> sourceClass = source.getClass();