fix:1.新加分析id判断

This commit is contained in:
panbaolin 2024-01-26 15:29:18 +08:00
parent 34c087b103
commit 6596ef789e

View File

@ -406,178 +406,180 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements
File detTmp = null;
File qcTmp = null;
try {
//查询数据库文件信息
SpectrumFileRecord dbSpectrumFilePath = spectrumAnalysisMapper.getDBSpectrumFilePath(dbName, sampleId, analysisID);
if (Objects.nonNull(dbSpectrumFilePath)) {
Map<String, Object> sampleMap = new HashMap<>();
Map<String, Object> gasBgMap = new HashMap<>();
Map<String, Object> detBgMap = new HashMap<>();
Map<String, Object> qcMap = new HashMap<>();
//获取sample相关信息
GardsSampleData sample = null;
String sampleFileName = "";
if (StringUtils.isNotBlank(dbSpectrumFilePath.getSampleFilePath())) {
sample = spectrumAnalysisMapper.findSampleByFilePath(dbSpectrumFilePath.getSampleFilePath());
sampleFileName = dbSpectrumFilePath.getSampleFilePath().substring(dbSpectrumFilePath.getSampleFilePath().lastIndexOf(StringPool.SLASH) + 1);
}
//获取gas相关信息
GardsSampleData gasBg = null;
String gasFileName = "";
if (StringUtils.isNotBlank(dbSpectrumFilePath.getGasBgFilePath())) {
gasBg = spectrumAnalysisMapper.findSampleByFilePath(dbSpectrumFilePath.getGasBgFilePath());
gasFileName = dbSpectrumFilePath.getGasBgFilePath().substring(dbSpectrumFilePath.getGasBgFilePath().lastIndexOf(StringPool.SLASH)+1);
}
//获取det相关信息
GardsSampleData detBg = null;
String detFileName = "";
if (StringUtils.isNotBlank(dbSpectrumFilePath.getDetBgFilePath())) {
detBg = spectrumAnalysisMapper.findSampleByFilePath(dbSpectrumFilePath.getDetBgFilePath());
detFileName = dbSpectrumFilePath.getDetBgFilePath().substring(dbSpectrumFilePath.getDetBgFilePath().lastIndexOf(StringPool.SLASH)+1);
}
//获取qc相关信息
String dbQcFilePath = "";
GardsSampleData qc = null;
String qcFileName = "";
if (Objects.nonNull(dbSpectrumFilePath.getCollectStart()) && StringUtils.isNotBlank(dbSpectrumFilePath.getSiteDetCode())) {
String collectStartStr = DateUtils.formatDate(dbSpectrumFilePath.getCollectStart(), "yyyy/MM/dd HH:mm:ss");
dbQcFilePath = spectrumAnalysisMapper.getQCFilePath(dbSpectrumFilePath.getSiteDetCode(), collectStartStr);
if (StringUtils.isNotBlank(dbQcFilePath)) {
qc = spectrumAnalysisMapper.findSampleByFilePath(dbQcFilePath);
qcFileName = dbQcFilePath.substring(dbQcFilePath.lastIndexOf(StringPool.SLASH)+1);
if (Objects.nonNull(analysisID)) {
//查询数据库文件信息
SpectrumFileRecord dbSpectrumFilePath = spectrumAnalysisMapper.getDBSpectrumFilePath(dbName, sampleId, analysisID);
if (Objects.nonNull(dbSpectrumFilePath)) {
Map<String, Object> sampleMap = new HashMap<>();
Map<String, Object> gasBgMap = new HashMap<>();
Map<String, Object> detBgMap = new HashMap<>();
Map<String, Object> qcMap = new HashMap<>();
//获取sample相关信息
GardsSampleData sample = null;
String sampleFileName = "";
if (StringUtils.isNotBlank(dbSpectrumFilePath.getSampleFilePath())) {
sample = spectrumAnalysisMapper.findSampleByFilePath(dbSpectrumFilePath.getSampleFilePath());
sampleFileName = dbSpectrumFilePath.getSampleFilePath().substring(dbSpectrumFilePath.getSampleFilePath().lastIndexOf(StringPool.SLASH) + 1);
}
}
//从缓存中获取公用变量的数据
BetaDataFile betaDataFile = cache.getIfPresent(sampleFileName + "-" + userName);
//如果缓存中没有公用变量的数据
if (Objects.isNull(betaDataFile)) {
betaDataFile = new BetaDataFile();
if (dbName.equalsIgnoreCase("RNAUTO")) {
xeResultsSpectrumList = spectrumAnalysisMapper.ReadXeResults(dbName, analysisID, sampleId);
gammaCalibrationSpectrumList = spectrumAnalysisMapper.ReadGammaCalibrationParam("RNAUTO", analysisID);
betaCalibrationSpectrumList = spectrumAnalysisMapper.ReadBetaCalibrationParam("RNAUTO", analysisID);
roiChannelsSpectrumList = spectrumAnalysisMapper.ReadROIChannels("RNAUTO", analysisID, sampleId);
roiResultsSpectrumList = spectrumAnalysisMapper.ReadROIResults("RNAUTO", analysisID, sampleId);
//获取gas相关信息
GardsSampleData gasBg = null;
String gasFileName = "";
if (StringUtils.isNotBlank(dbSpectrumFilePath.getGasBgFilePath())) {
gasBg = spectrumAnalysisMapper.findSampleByFilePath(dbSpectrumFilePath.getGasBgFilePath());
gasFileName = dbSpectrumFilePath.getGasBgFilePath().substring(dbSpectrumFilePath.getGasBgFilePath().lastIndexOf(StringPool.SLASH)+1);
}
//获取det相关信息
GardsSampleData detBg = null;
String detFileName = "";
if (StringUtils.isNotBlank(dbSpectrumFilePath.getDetBgFilePath())) {
detBg = spectrumAnalysisMapper.findSampleByFilePath(dbSpectrumFilePath.getDetBgFilePath());
detFileName = dbSpectrumFilePath.getDetBgFilePath().substring(dbSpectrumFilePath.getDetBgFilePath().lastIndexOf(StringPool.SLASH)+1);
}
//获取qc相关信息
String dbQcFilePath = "";
GardsSampleData qc = null;
String qcFileName = "";
if (Objects.nonNull(dbSpectrumFilePath.getCollectStart()) && StringUtils.isNotBlank(dbSpectrumFilePath.getSiteDetCode())) {
String collectStartStr = DateUtils.formatDate(dbSpectrumFilePath.getCollectStart(), "yyyy/MM/dd HH:mm:ss");
dbQcFilePath = spectrumAnalysisMapper.getQCFilePath(dbSpectrumFilePath.getSiteDetCode(), collectStartStr);
if (StringUtils.isNotBlank(dbQcFilePath)) {
qc = spectrumAnalysisMapper.findSampleByFilePath(dbQcFilePath);
qcFileName = dbQcFilePath.substring(dbQcFilePath.lastIndexOf(StringPool.SLASH)+1);
}
}
//从缓存中获取公用变量的数据
BetaDataFile betaDataFile = cache.getIfPresent(sampleFileName + "-" + userName);
//如果缓存中没有公用变量的数据
if (Objects.isNull(betaDataFile)) {
betaDataFile = new BetaDataFile();
if (dbName.equalsIgnoreCase("RNAUTO")) {
xeResultsSpectrumList = spectrumAnalysisMapper.ReadXeResults(dbName, analysisID, sampleId);
gammaCalibrationSpectrumList = spectrumAnalysisMapper.ReadGammaCalibrationParam("RNAUTO", analysisID);
betaCalibrationSpectrumList = spectrumAnalysisMapper.ReadBetaCalibrationParam("RNAUTO", analysisID);
roiChannelsSpectrumList = spectrumAnalysisMapper.ReadROIChannels("RNAUTO", analysisID, sampleId);
roiResultsSpectrumList = spectrumAnalysisMapper.ReadROIResults("RNAUTO", analysisID, sampleId);
} else {
gammaCalibrationPairsList = spectrumAnalysisMapper.ReadGammaFitChannelEnergy(analysisID, sampleId);
betaCalibrationPairsList = spectrumAnalysisMapper.ReadBetaFitChannelEnergy(analysisID, sampleId);
xeResultsSpectrumList = spectrumAnalysisMapper.ReadXeResults(dbName, analysisID, sampleId);
gammaCalibrationSpectrumList = spectrumAnalysisMapper.ReadGammaCalibrationParam("RNMAN", analysisID);
betaCalibrationSpectrumList = spectrumAnalysisMapper.ReadBetaCalibrationParam("RNMAN", analysisID);
roiChannelsSpectrumList = spectrumAnalysisMapper.ReadROIChannels("RNMAN", analysisID, sampleId);
roiResultsSpectrumList = spectrumAnalysisMapper.ReadROIResults("RNMAN", analysisID, sampleId);
}
//给公用变量赋值sampleId
betaDataFile.setSampleId(String.valueOf(sampleId));
//用于记录文件路径信息
List<String> filePaths = new LinkedList<>();
//判断sample信息是否存在
if (Objects.nonNull(sample)) {
betaDataFile.setSampleFilePathName(ftpUtil.getFtpRootPath() + spectrumPathProperties.getSaveFilePath() + StringPool.SLASH +dbSpectrumFilePath.getSampleFilePath());
betaDataFile.setSampleFileName(sampleFileName);
sampleTmp = ftpUtil.downloadFile(betaDataFile.getSampleFilePathName(), "betaGamma");
if (Objects.nonNull(sampleTmp)) {
betaDataFile.setSampleTmpPath(sampleTmp.getAbsolutePath());
EnergySpectrumStruct struct = EnergySpectrumHandler.getSourceData(sampleTmp.getAbsolutePath());
betaDataFile.setSampleStruct(struct);
sampleMap = phdFileUtil.getSourceData(struct, sample.getSampleId(), sample.getStatus(), "sample", betaDataFile);
sampleMap.put("fileName", betaDataFile.getSampleFileName());
resultMap.put("sample",sampleMap);
}
}
//判断gas信息是否存在
if (Objects.nonNull(gasBg)) {
betaDataFile.setGasFilePathName(ftpUtil.getFtpRootPath() + spectrumPathProperties.getSaveFilePath() + StringPool.SLASH +dbSpectrumFilePath.getGasBgFilePath());
betaDataFile.setGasFileName(gasFileName);
gasTmp = ftpUtil.downloadFile(betaDataFile.getGasFilePathName(), "betaGamma");
if (Objects.nonNull(gasTmp)) {
betaDataFile.setGasTmpPath(gasTmp.getAbsolutePath());
EnergySpectrumStruct struct = EnergySpectrumHandler.getSourceData(gasTmp.getAbsolutePath());
betaDataFile.setGasStruct(struct);
gasBgMap = phdFileUtil.getSourceData(struct, gasBg.getSampleId(), gasBg.getStatus(), "gas", betaDataFile);
gasBgMap.put("fileName", betaDataFile.getGasFileName());
resultMap.put("gasBg",gasBgMap);
}
}
//判断det信息是否存在
if (Objects.nonNull(detBg)) {
betaDataFile.setDetFilePathName(StringPool.SLASH + ftpUtil.getFtpRootPath() + spectrumPathProperties.getSaveFilePath() + StringPool.SLASH +dbSpectrumFilePath.getDetBgFilePath());
betaDataFile.setDetFileName(detFileName);
detTmp = ftpUtil.downloadFile(betaDataFile.getDetFilePathName(), "betaGamma");
if (Objects.nonNull(detTmp)) {
betaDataFile.setDetTmpPath(detTmp.getAbsolutePath());
EnergySpectrumStruct struct = EnergySpectrumHandler.getSourceData(detTmp.getAbsolutePath());
betaDataFile.setDetStruct(struct);
detBgMap = phdFileUtil.getSourceData(struct, detBg.getSampleId(), detBg.getStatus(), "det", betaDataFile);
detBgMap.put("fileName", betaDataFile.getDetFileName());
resultMap.put("detBg",detBgMap);
}
}
//判断qc信息是否存在
if (Objects.nonNull(qc)) {
betaDataFile.setQcFilePathName(StringPool.SLASH + ftpUtil.getFtpRootPath() + spectrumPathProperties.getSaveFilePath() + StringPool.SLASH +dbQcFilePath);
betaDataFile.setQcFileName(qcFileName);
qcTmp = ftpUtil.downloadFile(betaDataFile.getQcFilePathName(), "betaGamma");
if (Objects.nonNull(qcTmp)) {
betaDataFile.setQcTmpPath(qcTmp.getAbsolutePath());
EnergySpectrumStruct struct = EnergySpectrumHandler.getSourceData(qcTmp.getAbsolutePath());
betaDataFile.setQcStruct(struct);
qcMap = phdFileUtil.getSourceData(struct, qc.getSampleId(), qc.getStatus(), "qc", betaDataFile);
qcMap.put("fileName", betaDataFile.getQcFileName());
resultMap.put("qc",qcMap);
}
}
} else {
gammaCalibrationPairsList = spectrumAnalysisMapper.ReadGammaFitChannelEnergy(analysisID, sampleId);
betaCalibrationPairsList = spectrumAnalysisMapper.ReadBetaFitChannelEnergy(analysisID, sampleId);
xeResultsSpectrumList = spectrumAnalysisMapper.ReadXeResults(dbName, analysisID, sampleId);
gammaCalibrationSpectrumList = spectrumAnalysisMapper.ReadGammaCalibrationParam("RNMAN", analysisID);
betaCalibrationSpectrumList = spectrumAnalysisMapper.ReadBetaCalibrationParam("RNMAN", analysisID);
roiChannelsSpectrumList = spectrumAnalysisMapper.ReadROIChannels("RNMAN", analysisID, sampleId);
roiResultsSpectrumList = spectrumAnalysisMapper.ReadROIResults("RNMAN", analysisID, sampleId);
xeResultsSpectrumList = betaDataFile.getXeResultsSpectrumList();
sampleMap = loadData("sample", betaDataFile);
sampleMap.put("fileName", betaDataFile.getSampleFileName());
resultMap.put("sample",sampleMap);
gasBgMap = loadData("gas", betaDataFile);
gasBgMap.put("fileName", betaDataFile.getGasFileName());
resultMap.put("gasBg",gasBgMap);
detBgMap = loadData("det", betaDataFile);
detBgMap.put("fileName", betaDataFile.getDetFileName());
resultMap.put("detBg",detBgMap);
qcMap = loadData("qc", betaDataFile);
qcMap.put("fileName", betaDataFile.getQcFileName());
resultMap.put("qc",qcMap);
}
//给公用变量赋值sampleId
betaDataFile.setSampleId(String.valueOf(sampleId));
//用于记录文件路径信息
List<String> filePaths = new LinkedList<>();
//判断sample信息是否存在
if (Objects.nonNull(sample)) {
betaDataFile.setSampleFilePathName(StringPool.SLASH + ftpUtil.getFtpRootPath() + spectrumPathProperties.getSaveFilePath() + StringPool.SLASH +dbSpectrumFilePath.getSampleFilePath());
betaDataFile.setSampleFileName(sampleFileName);
sampleTmp = ftpUtil.downloadFile(betaDataFile.getSampleFilePathName(), "betaGamma");
if (Objects.nonNull(sampleTmp)) {
betaDataFile.setSampleTmpPath(sampleTmp.getAbsolutePath());
EnergySpectrumStruct struct = EnergySpectrumHandler.getSourceData(sampleTmp.getAbsolutePath());
betaDataFile.setSampleStruct(struct);
sampleMap = phdFileUtil.getSourceData(struct, sample.getSampleId(), sample.getStatus(), "sample", betaDataFile);
sampleMap.put("fileName", betaDataFile.getSampleFileName());
resultMap.put("sample",sampleMap);
}
}
//判断gas信息是否存在
if (Objects.nonNull(gasBg)) {
betaDataFile.setGasFilePathName(StringPool.SLASH + ftpUtil.getFtpRootPath() + spectrumPathProperties.getSaveFilePath() + StringPool.SLASH +dbSpectrumFilePath.getGasBgFilePath());
betaDataFile.setGasFileName(gasFileName);
gasTmp = ftpUtil.downloadFile(betaDataFile.getGasFilePathName(), "betaGamma");
if (Objects.nonNull(gasTmp)) {
betaDataFile.setGasTmpPath(gasTmp.getAbsolutePath());
EnergySpectrumStruct struct = EnergySpectrumHandler.getSourceData(gasTmp.getAbsolutePath());
betaDataFile.setGasStruct(struct);
gasBgMap = phdFileUtil.getSourceData(struct, gasBg.getSampleId(), gasBg.getStatus(), "gas", betaDataFile);
gasBgMap.put("fileName", betaDataFile.getGasFileName());
resultMap.put("gasBg",gasBgMap);
}
}
//判断det信息是否存在
if (Objects.nonNull(detBg)) {
betaDataFile.setDetFilePathName(StringPool.SLASH + ftpUtil.getFtpRootPath() + spectrumPathProperties.getSaveFilePath() + StringPool.SLASH +dbSpectrumFilePath.getDetBgFilePath());
betaDataFile.setDetFileName(detFileName);
detTmp = ftpUtil.downloadFile(betaDataFile.getDetFilePathName(), "betaGamma");
if (Objects.nonNull(detTmp)) {
betaDataFile.setDetTmpPath(detTmp.getAbsolutePath());
EnergySpectrumStruct struct = EnergySpectrumHandler.getSourceData(detTmp.getAbsolutePath());
betaDataFile.setDetStruct(struct);
detBgMap = phdFileUtil.getSourceData(struct, detBg.getSampleId(), detBg.getStatus(), "det", betaDataFile);
detBgMap.put("fileName", betaDataFile.getDetFileName());
resultMap.put("detBg",detBgMap);
}
}
//判断qc信息是否存在
if (Objects.nonNull(qc)) {
betaDataFile.setQcFilePathName(StringPool.SLASH + ftpUtil.getFtpRootPath() + spectrumPathProperties.getSaveFilePath() + StringPool.SLASH +dbQcFilePath);
betaDataFile.setQcFileName(qcFileName);
qcTmp = ftpUtil.downloadFile(betaDataFile.getQcFilePathName(), "betaGamma");
if (Objects.nonNull(qcTmp)) {
betaDataFile.setQcTmpPath(qcTmp.getAbsolutePath());
EnergySpectrumStruct struct = EnergySpectrumHandler.getSourceData(qcTmp.getAbsolutePath());
betaDataFile.setQcStruct(struct);
qcMap = phdFileUtil.getSourceData(struct, qc.getSampleId(), qc.getStatus(), "qc", betaDataFile);
qcMap.put("fileName", betaDataFile.getQcFileName());
resultMap.put("qc",qcMap);
//分析状态颜色
phdFileUtil.getLightColor(sampleMap,gasBgMap,detBgMap,qcMap);
//Xe
if (CollectionUtils.isNotEmpty(xeResultsSpectrumList)){
for (GardsXeResultsSpectrum xeData:xeResultsSpectrumList) {
Double conc = xeData.getConc();
Double mdc = xeData.getMdc();
if (conc < 0){
xeData.setColor("red");
xeData.setNidFlag(0);
} else if (0<conc && conc < mdc) {
xeData.setColor("#ffcc30");
xeData.setNidFlag(0);
} else if (conc > mdc) {
xeData.setColor("green");
xeData.setNidFlag(1);
}
xeData.setMdc(Double.valueOf(NumberFormatUtil.numberSixLen(String.valueOf(xeData.getMdc()))));
xeData.setConc(Double.valueOf(NumberFormatUtil.numberSixLen(String.valueOf(xeData.getConc()))));
xeData.setConcErr(Double.valueOf(NumberFormatUtil.numberSixLen(String.valueOf(xeData.getConcErr()))));
}
}
betaDataFile.setGammaCalibrationSpectrumList(gammaCalibrationSpectrumList);
betaDataFile.setBetaCalibrationSpectrumList(betaCalibrationSpectrumList);
betaDataFile.setRoiChannelsSpectrumList(roiChannelsSpectrumList);
betaDataFile.setRoiResultsSpectrumList(roiResultsSpectrumList);
betaDataFile.setGammaCalibrationPairsList(gammaCalibrationPairsList);
betaDataFile.setBetaCalibrationPairsList(betaCalibrationPairsList);
betaDataFile.setXeResultsSpectrumList(xeResultsSpectrumList);
betaDataFile.setSaveAnalysisResult(true);
resultMap.put("XeData", phdFileUtil.viewXeData(xeResultsSpectrumList));
resultMap.put("bProcessed", betaDataFile.isBProcessed());
resultMap.put("savedAnalysisResult", betaDataFile.isSaveAnalysisResult());
cache.put(betaDataFile.getSampleFileName()+"-"+userName, betaDataFile);
betaCache.setBetaCache(cache);
} else {
xeResultsSpectrumList = betaDataFile.getXeResultsSpectrumList();
sampleMap = loadData("sample", betaDataFile);
sampleMap.put("fileName", betaDataFile.getSampleFileName());
resultMap.put("sample",sampleMap);
gasBgMap = loadData("gas", betaDataFile);
gasBgMap.put("fileName", betaDataFile.getGasFileName());
resultMap.put("gasBg",gasBgMap);
detBgMap = loadData("det", betaDataFile);
detBgMap.put("fileName", betaDataFile.getDetFileName());
resultMap.put("detBg",detBgMap);
qcMap = loadData("qc", betaDataFile);
qcMap.put("fileName", betaDataFile.getQcFileName());
resultMap.put("qc",qcMap);
resultMap.clear();
}
//分析状态颜色
phdFileUtil.getLightColor(sampleMap,gasBgMap,detBgMap,qcMap);
//Xe
if (CollectionUtils.isNotEmpty(xeResultsSpectrumList)){
for (GardsXeResultsSpectrum xeData:xeResultsSpectrumList) {
Double conc = xeData.getConc();
Double mdc = xeData.getMdc();
if (conc < 0){
xeData.setColor("red");
xeData.setNidFlag(0);
} else if (0<conc && conc < mdc) {
xeData.setColor("#ffcc30");
xeData.setNidFlag(0);
} else if (conc > mdc) {
xeData.setColor("green");
xeData.setNidFlag(1);
}
xeData.setMdc(Double.valueOf(NumberFormatUtil.numberSixLen(String.valueOf(xeData.getMdc()))));
xeData.setConc(Double.valueOf(NumberFormatUtil.numberSixLen(String.valueOf(xeData.getConc()))));
xeData.setConcErr(Double.valueOf(NumberFormatUtil.numberSixLen(String.valueOf(xeData.getConcErr()))));
}
}
betaDataFile.setGammaCalibrationSpectrumList(gammaCalibrationSpectrumList);
betaDataFile.setBetaCalibrationSpectrumList(betaCalibrationSpectrumList);
betaDataFile.setRoiChannelsSpectrumList(roiChannelsSpectrumList);
betaDataFile.setRoiResultsSpectrumList(roiResultsSpectrumList);
betaDataFile.setGammaCalibrationPairsList(gammaCalibrationPairsList);
betaDataFile.setBetaCalibrationPairsList(betaCalibrationPairsList);
betaDataFile.setXeResultsSpectrumList(xeResultsSpectrumList);
betaDataFile.setSaveAnalysisResult(true);
resultMap.put("XeData", phdFileUtil.viewXeData(xeResultsSpectrumList));
resultMap.put("bProcessed", betaDataFile.isBProcessed());
resultMap.put("savedAnalysisResult", betaDataFile.isSaveAnalysisResult());
cache.put(betaDataFile.getSampleFileName()+"-"+userName, betaDataFile);
betaCache.setBetaCache(cache);
} else {
resultMap.clear();
}
} catch (Exception e) {
e.printStackTrace();