beta初始化数据加载内容新增及修改

This commit is contained in:
qiaoqinzheng 2023-10-10 10:13:22 +08:00
parent 67c2a6b355
commit 557cbe19f3

View File

@ -300,7 +300,15 @@ public class SpectrumAnalysisServiceImpl implements ISpectrumAnalysisService {
public Result getDBSpectrumChart(String dbName, Integer sampleId, HttpServletRequest request) {
Result result = new Result();
String userName = JwtUtil.getUserNameByToken(request);
Cache<String, Map<String, Object>> cache = betaCache.getBetaCache();
Map<String, Object> cacheMap = new HashMap<>();
Map<String, Object> resultMap = new HashMap<>();
List<GardsCalibrationSpectrum> gammaCalibrationSpectrumList= new LinkedList<>();
List<GardsCalibrationSpectrum> betaCalibrationSpectrumList = new LinkedList<>();
List<GardsROIChannelsSpectrum> roiChannelsSpectrumList = new LinkedList<>();
List<GardsROIResultsSpectrum> roiResultsSpectrumList = new LinkedList<>();
List<GardsCalibrationPairsSpectrum> gammaCalibrationPairsList = new LinkedList<>();
List<GardsCalibrationPairsSpectrum> betaCalibrationPairsList = new LinkedList<>();
List<GardsXeResultsSpectrum> xeResultsSpectrumList = new LinkedList<>();
if (Objects.isNull(sampleId)){
result.error500("请选择一条数据");
@ -310,15 +318,50 @@ public class SpectrumAnalysisServiceImpl implements ISpectrumAnalysisService {
if (dbName.equalsIgnoreCase("auto")){
dbName = "RNAUTO";
analysisID = spectrumAnalysisMapper.getAnalysisID("RNAUTO", sampleId, "RNAUTO");
gammaCalibrationSpectrumList = spectrumAnalysisMapper.ReadGammaCalibrationParam("RNAUTO", analysisID, sampleId);
betaCalibrationSpectrumList = spectrumAnalysisMapper.ReadBetaCalibrationParam("RNAUTO", analysisID, sampleId);
roiChannelsSpectrumList = spectrumAnalysisMapper.ReadROIChannels("RNAUTO", analysisID, sampleId);
roiResultsSpectrumList = spectrumAnalysisMapper.ReadROIResults("RNAUTO", analysisID, sampleId);
xeResultsSpectrumList = spectrumAnalysisMapper.ReadXeResults("RNAUTO", analysisID, sampleId);
}else if (dbName.equalsIgnoreCase("man")){
} else if (dbName.equalsIgnoreCase("man")){
dbName = "RNMAN";
analysisID = spectrumAnalysisMapper.getAnalysisID("RNMAN", sampleId, userName);
gammaCalibrationPairsList = spectrumAnalysisMapper.ReadGammaFitChannelEnergy(analysisID, sampleId);
gammaCalibrationSpectrumList = spectrumAnalysisMapper.ReadGammaCalibrationParam("RNMAN", analysisID, sampleId);
betaCalibrationPairsList = spectrumAnalysisMapper.ReadBetaFitChannelEnergy(analysisID, sampleId);
betaCalibrationSpectrumList = spectrumAnalysisMapper.ReadBetaCalibrationParam("RNMAN", analysisID, sampleId);
roiChannelsSpectrumList = spectrumAnalysisMapper.ReadROIChannels("RNMAN", analysisID, sampleId);
roiResultsSpectrumList = spectrumAnalysisMapper.ReadROIResults("RNMAN", analysisID, sampleId);
xeResultsSpectrumList = spectrumAnalysisMapper.ReadXeResults("RNMAN", analysisID, sampleId);
cacheMap.put("gammaCalibrationPairsList", gammaCalibrationPairsList);
cacheMap.put("betaCalibrationPairsList", betaCalibrationPairsList);
}else {
result.error500("数据库类型不存在");
return result;
}
cacheMap.put("gammaCalibrationSpectrumList", gammaCalibrationSpectrumList);
cacheMap.put("betaCalibrationSpectrumList", betaCalibrationSpectrumList);
cacheMap.put("roiChannelsSpectrumList", roiChannelsSpectrumList);
cacheMap.put("roiResultsSpectrumList", roiResultsSpectrumList);
cacheMap.put("xeResultsSpectrumList", xeResultsSpectrumList);
//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);
}
}
resultMap.put("XeData", xeResultsSpectrumList);
}
//查询数据库文件信息
SpectrumFileRecord dbSpectrumFilePath = spectrumAnalysisMapper.getDBSpectrumFilePath(dbName, sampleId, analysisID);
List<String> filePath = new LinkedList<>();
@ -333,8 +376,10 @@ public class SpectrumAnalysisServiceImpl implements ISpectrumAnalysisService {
GardsSampleData sample = spectrumAnalysisMapper.findSampleByFilePath(sampleFilePath);
String pathName = StringPool.SLASH + spectrumPathProperties.getRootPath() + StringPool.SLASH + sampleFilePath.substring(0, sampleFilePath.lastIndexOf(StringPool.SLASH));
String fileName = sampleFilePath.substring(sampleFilePath.lastIndexOf(StringPool.SLASH)+1);
sampleMap = this.fenxi(pathName, fileName, xeResultsSpectrumList, sample.getSampleId(), sample.getStatus());
sampleMap = this.fenxi(pathName, fileName, sample.getSampleId(), sample.getStatus());
resultMap.put("sample",sampleMap);
cache.put(fileName+"-"+userName, cacheMap);
betaCache.setBetaCache(cache);
}
if(StringUtils.isNotBlank(dbSpectrumFilePath.getGasBgFilePath())){
String gasBgFilePath = dbSpectrumFilePath.getGasBgFilePath();
@ -343,7 +388,7 @@ public class SpectrumAnalysisServiceImpl implements ISpectrumAnalysisService {
String pathName = StringPool.SLASH + spectrumPathProperties.getRootPath() + StringPool.SLASH + gasBgFilePath.substring(0, gasBgFilePath.lastIndexOf(StringPool.SLASH));
String fileName = gasBgFilePath.substring(gasBgFilePath.lastIndexOf(StringPool.SLASH)+1);
if (Objects.nonNull(gasBg)) {
gasBgMap = this.fenxi(pathName, fileName, xeResultsSpectrumList, gasBg.getSampleId(), gasBg.getStatus());
gasBgMap = this.fenxi(pathName, fileName, gasBg.getSampleId(), gasBg.getStatus());
resultMap.put("gasBg",gasBgMap);
}
}
@ -354,7 +399,7 @@ public class SpectrumAnalysisServiceImpl implements ISpectrumAnalysisService {
String pathName = StringPool.SLASH + spectrumPathProperties.getRootPath() + StringPool.SLASH + detBgFilePath.substring(0, detBgFilePath.lastIndexOf(StringPool.SLASH));
String fileName = detBgFilePath.substring(detBgFilePath.lastIndexOf(StringPool.SLASH)+1);
if (Objects.nonNull(detBg)) {
detBgMap = this.fenxi(pathName, fileName, xeResultsSpectrumList, detBg.getSampleId(), detBg.getStatus());
detBgMap = this.fenxi(pathName, fileName, detBg.getSampleId(), detBg.getStatus());
resultMap.put("detBg",detBgMap);
}
}
@ -367,7 +412,7 @@ public class SpectrumAnalysisServiceImpl implements ISpectrumAnalysisService {
String pathName = StringPool.SLASH + spectrumPathProperties.getRootPath() + StringPool.SLASH + dbQcFilePath.substring(0, dbQcFilePath.lastIndexOf(StringPool.SLASH));
String fileName = dbQcFilePath.substring(dbQcFilePath.lastIndexOf(StringPool.SLASH)+1);
if (Objects.nonNull(qc)) {
qcMap = this.fenxi(pathName, fileName, xeResultsSpectrumList, qc.getSampleId(), qc.getStatus());
qcMap = this.fenxi(pathName, fileName, qc.getSampleId(), qc.getStatus());
resultMap.put("qc",qcMap);
}
}
@ -376,6 +421,7 @@ public class SpectrumAnalysisServiceImpl implements ISpectrumAnalysisService {
resultMap.put("savedAnalysisResult", true);
} else {
resultMap.clear();
cacheMap.clear();
}
result.setSuccess(true);
result.setResult(resultMap);
@ -396,28 +442,29 @@ public class SpectrumAnalysisServiceImpl implements ISpectrumAnalysisService {
if(StringUtils.isNotBlank(sampleFileName)){
String sampleFilePath = path + sampleFileName;
filePath.add(sampleFilePath);
sampleMap = this.fenxi(path, sampleFileName, null, null, null);
resultMap.put("sample",sampleMap);
sampleMap = this.fenxi(path, sampleFileName, null, null);
resultMap.put("sample", sampleMap);
}
if(StringUtils.isNotBlank(gasFileName)){
String gasBgFilePath = path + gasFileName;
filePath.add(gasBgFilePath);
gasBgMap = this.fenxi(path, gasFileName, null, null, null);
resultMap.put("gasBg",gasBgMap);
gasBgMap = this.fenxi(path, gasFileName, null, null);
resultMap.put("gasBg", gasBgMap);
}
if(StringUtils.isNotBlank(detFileName)){
String detBgFilePath = path + detFileName;
filePath.add(detBgFilePath);
detBgMap = this.fenxi(path, detFileName, null, null, null);
resultMap.put("detBg",detBgMap);
detBgMap = this.fenxi(path, detFileName, null, null);
resultMap.put("detBg", detBgMap);
}
if(StringUtils.isNotBlank(qcFileName)){
String dbQcFilePath = path + qcFileName;
filePath.add(dbQcFilePath);
qcMap = this.fenxi(path, qcFileName, null, null, null);
resultMap.put("qc",qcMap);
qcMap = this.fenxi(path, qcFileName, null, null);
resultMap.put("qc", qcMap);
}
phdFileUtil.getLightColor(sampleMap,gasBgMap,detBgMap,qcMap);
resultMap.put("XeData", new LinkedList<>());
resultMap.put("bProcessed", false);
resultMap.put("savedAnalysisResult", false);
result.setSuccess(true);
@ -425,7 +472,7 @@ public class SpectrumAnalysisServiceImpl implements ISpectrumAnalysisService {
return result;
}
private Map<String, Object> fenxi(String pathName, String fileName, List<GardsXeResultsSpectrum> xeDataList, Integer sampleId, String status) {
private Map<String, Object> fenxi(String pathName, String fileName, Integer sampleId, String status) {
Map<String, Object> map = new HashMap<>();
FTPClient ftpClient = ftpUtil.LoginFTP();
if (Objects.isNull(ftpClient)){
@ -444,10 +491,10 @@ public class SpectrumAnalysisServiceImpl implements ISpectrumAnalysisService {
inputStream = ftpClient.retrieveFileStream(fileName);
if (Objects.nonNull(inputStream)){
//声明一个临时文件
file = File.createTempFile("tmp", null);
file = File.createTempFile("betaGamma", null);
//将ftp文件的输入流复制给临时文件
FileUtils.copyInputStreamToFile(inputStream, file);
map = phdFileUtil.getSourceData(file.getAbsolutePath(), xeDataList, sampleId, status);
map = phdFileUtil.getSourceData(file.getAbsolutePath(), sampleId, status);
map.put("fileName", fileName);
map.put("filePath", pathName);
}
@ -526,11 +573,11 @@ public class SpectrumAnalysisServiceImpl implements ISpectrumAnalysisService {
inputStream = ftpClient.retrieveFileStream(sampleFileName);
if (Objects.nonNull(inputStream)){
//声明一个临时文件
file = File.createTempFile("tmp", null);
file = File.createTempFile("betaGamma", null);
//将ftp文件的输入流复制给临时文件
FileUtils.copyInputStreamToFile(inputStream, file);
//加载dll工具库
System.loadLibrary("ReadPHDFile");
//System.loadLibrary("ReadPHDFile");
EnergySpectrumStruct struct = EnergySpectrumHandler.getSourceData(file.getAbsolutePath());
commentInfo.setSpectrumCommentInfo(struct.comment);
}
@ -925,11 +972,11 @@ public class SpectrumAnalysisServiceImpl implements ISpectrumAnalysisService {
inputStream = ftpClient.retrieveFileStream(sampleFileName);
if (Objects.nonNull(inputStream)){
//声明一个临时文件
file = File.createTempFile("tmp", null);
file = File.createTempFile("betaGamma", null);
//将ftp文件的输入流复制给临时文件
FileUtils.copyInputStreamToFile(inputStream, file);
//加载dll工具库
System.loadLibrary("ReadPHDFile");
//System.loadLibrary("ReadPHDFile");
EnergySpectrumStruct struct = EnergySpectrumHandler.getSourceData(file.getAbsolutePath());
String measurementID = struct.measurement_id;
String bkgdMeasurementID = struct.detector_bk_measurement_id;
@ -1226,11 +1273,11 @@ public class SpectrumAnalysisServiceImpl implements ISpectrumAnalysisService {
inputStream = ftpClient.retrieveFileStream(sampleFileName);
if (Objects.nonNull(inputStream)){
//声明一个临时文件
file = File.createTempFile("tmp", null);
file = File.createTempFile("betaGamma", null);
//将ftp文件的输入流复制给临时文件
FileUtils.copyInputStreamToFile(inputStream, file);
//加载dll工具库
System.loadLibrary("ReadPHDFile");
//System.loadLibrary("ReadPHDFile");
EnergySpectrumStruct struct = EnergySpectrumHandler.getSourceData(file.getAbsolutePath());
rlrDataValues.setSrid(struct.sample_ref_id);
rlrDataValues.setColloct_start_date(struct.collection_start_date);
@ -1349,11 +1396,11 @@ public class SpectrumAnalysisServiceImpl implements ISpectrumAnalysisService {
inputStream = ftpClient.retrieveFileStream(qcFileName);
if (Objects.nonNull(inputStream)){
//声明一个临时文件
file = File.createTempFile("tmp", null);
file = File.createTempFile("betaGamma", null);
//将ftp文件的输入流复制给临时文件
FileUtils.copyInputStreamToFile(inputStream, file);
//加载dll工具库
System.loadLibrary("ReadPHDFile");
//System.loadLibrary("ReadPHDFile");
EnergySpectrumStruct struct = EnergySpectrumHandler.getSourceData(file.getAbsolutePath());
//读取Gamma Detector Calibration所需要的参数
long numGChannel = struct.num_g_channel;
@ -1497,11 +1544,11 @@ public class SpectrumAnalysisServiceImpl implements ISpectrumAnalysisService {
inputStream = ftpClient.retrieveFileStream(qcFileName);
if (Objects.nonNull(inputStream)){
//声明一个临时文件
file = File.createTempFile("tmp", null);
file = File.createTempFile("betaGamma", null);
//将ftp文件的输入流复制给临时文件
FileUtils.copyInputStreamToFile(inputStream, file);
//加载dll工具库
System.loadLibrary("ReadPHDFile");
//System.loadLibrary("ReadPHDFile");
EnergySpectrumStruct struct = EnergySpectrumHandler.getSourceData(file.getAbsolutePath());
//Figure of Beta Detector Calibration
long numBChannel = struct.num_b_channel;
@ -1624,7 +1671,7 @@ public class SpectrumAnalysisServiceImpl implements ISpectrumAnalysisService {
samplePathName = StringPool.SLASH + spectrumPathProperties.getRootPath() + StringPool.SLASH + sampleFilePath.substring(0, sampleFilePath.lastIndexOf(StringPool.SLASH));
}
//加载dll工具库
System.loadLibrary("ReadPHDFile");
//System.loadLibrary("ReadPHDFile");
FTPClient ftpClient = ftpUtil.LoginFTP();
if (Objects.isNull(ftpClient)){
result.error500("ftp连接失败");
@ -1645,7 +1692,7 @@ public class SpectrumAnalysisServiceImpl implements ISpectrumAnalysisService {
inputStream = ftpClient.retrieveFileStream(sampleFileName);
if (Objects.nonNull(inputStream)){
//声明一个临时文件
file = File.createTempFile("tmp", null);
file = File.createTempFile("betaGamma", null);
//ftp文件输入流复制给临时文件
FileUtils.copyInputStreamToFile(inputStream, file);
//读取文件信息
@ -1775,7 +1822,7 @@ public class SpectrumAnalysisServiceImpl implements ISpectrumAnalysisService {
filePath = StringPool.SLASH + spectrumPathProperties.getRootPath() + StringPool.SLASH + sampleFilePath.substring(0, sampleFilePath.lastIndexOf(StringPool.SLASH));
}
//加载dll工具库
System.loadLibrary("ReadPHDFile");
//System.loadLibrary("ReadPHDFile");
FTPClient ftpClient = ftpUtil.LoginFTP();
if (Objects.isNull(ftpClient)){
result.error500("ftp连接失败");
@ -1796,7 +1843,7 @@ public class SpectrumAnalysisServiceImpl implements ISpectrumAnalysisService {
inputStream = ftpClient.retrieveFileStream(sampleFileName);
if (Objects.nonNull(inputStream)){
//声明一个临时文件
file = File.createTempFile("tmp", null);
file = File.createTempFile("betaGamma", null);
//ftp文件输入流复制给临时文件
FileUtils.copyInputStreamToFile(inputStream, file);
//读取文件信息
@ -2165,7 +2212,7 @@ public class SpectrumAnalysisServiceImpl implements ISpectrumAnalysisService {
Map<String, Object> cacheMap = new HashMap<>();
Map<String, Object> map = new HashMap<>();
//加载dll工具库
System.loadLibrary("ReadPHDFile");
//System.loadLibrary("ReadPHDFile");
if ((CollectionUtils.isNotEmpty(tempPoints) && Objects.nonNull(count) && tempPoints.size() != count) || (Objects.isNull(paramA) || StringUtils.isBlank(String.valueOf(paramA)))
|| (Objects.isNull(paramB) || StringUtils.isBlank(String.valueOf(paramB))) || (Objects.isNull(paramC) || StringUtils.isBlank(String.valueOf(paramC))) ){
List<Double> xs = new LinkedList<>();
@ -2315,11 +2362,11 @@ public class SpectrumAnalysisServiceImpl implements ISpectrumAnalysisService {
inputStream = ftpClient.retrieveFileStream(qcFileName);
if (Objects.nonNull(inputStream)){
//声明一个临时文件
file = File.createTempFile("tmp", null);
file = File.createTempFile("betaGamma", null);
//将ftp文件的输入流复制给临时文件
FileUtils.copyInputStreamToFile(inputStream, file);
//加载dll工具库
System.loadLibrary("ReadPHDFile");
//System.loadLibrary("ReadPHDFile");
EnergySpectrumStruct struct = EnergySpectrumHandler.getSourceData(file.getAbsolutePath());
//Beta-Gamma Spectrum: QC
long bChannels = struct.b_channels;
@ -2366,10 +2413,9 @@ public class SpectrumAnalysisServiceImpl implements ISpectrumAnalysisService {
Result result = new Result();
String userName = JwtUtil.getUserNameByToken(request);
if ("CurrentSpectrum".equals(analyseData.getApplyType())) {
List<Integer> sampleIds = analyseData.getSampleIds();
if (CollectionUtils.isNotEmpty(sampleIds)){
String dbName = analyseData.getDbNames().get(0);
Integer sampleId = sampleIds.get(0);
String dbName = analyseData.getDbNames().get(0);
Integer sampleId = analyseData.getSampleIds().get(0);
if (Objects.nonNull(sampleId)){
Integer analysisID = null;
if (dbName.equalsIgnoreCase("auto")){
dbName = "RNAUTO";
@ -2380,32 +2426,63 @@ public class SpectrumAnalysisServiceImpl implements ISpectrumAnalysisService {
}
SpectrumFileRecord dbSpectrumFilePath = spectrumAnalysisMapper.getDBSpectrumFilePath(dbName, sampleId,analysisID);
if (Objects.nonNull(dbSpectrumFilePath)) {
BgAnalyseResult analyseResult = BetaGammaAnalyzeCurrentProcess(analyseData, dbSpectrumFilePath, userName);
String sampleFilePath = dbSpectrumFilePath.getSampleFilePath().substring(0, dbSpectrumFilePath.getSampleFilePath().lastIndexOf(StringPool.SLASH));
String gasFilePath = dbSpectrumFilePath.getGasBgFilePath().substring(0, dbSpectrumFilePath.getGasBgFilePath().lastIndexOf(StringPool.SLASH));
String detFilePath = dbSpectrumFilePath.getDetBgFilePath().substring(0, dbSpectrumFilePath.getDetBgFilePath().lastIndexOf(StringPool.SLASH));
BgAnalyseResult analyseResult = BetaGammaAnalyzeCurrentProcess(analyseData, sampleFilePath, gasFilePath, detFilePath, userName);
result.setSuccess(true);
result.setResult(analyseResult);
}
} else {
String path = StringPool.SLASH + spectrumPathProperties.getUploadPath() + StringPool.SLASH + userName;
SpectrumFileRecord dbSpectrumFilePath = new SpectrumFileRecord();
dbSpectrumFilePath.setSampleFilePath(path);
dbSpectrumFilePath.setGasBgFilePath(path);
dbSpectrumFilePath.setDetBgFilePath(path);
BgAnalyseResult analyseResult = BetaGammaAnalyzeCurrentProcess(analyseData, dbSpectrumFilePath, userName);
BgAnalyseResult analyseResult = BetaGammaAnalyzeCurrentProcess(analyseData, path, path, path, userName);
result.setSuccess(true);
result.setResult(analyseResult);
}
} else if ("AllSpectrum".equals(analyseData.getApplyType())) {
List<Map<String, String>> loadDataList = new LinkedList<>();
for (int i=0; i<analyseData.getSampleIds().size(); i++) {
Map<String, String> m_loadData = new HashMap<>();
Integer sampleId = analyseData.getSampleIds().get(i);
String dbName = analyseData.getDbNames().get(i);
String sampleFileName = analyseData.getSampleFileNames().get(i);
String gasFileName = analyseData.getGasFileNames().get(i);
String detFileName = analyseData.getDetFileNames().get(i);
String qcFileName = analyseData.getQcFileNames().get(i);
if (Objects.nonNull(sampleId)){
Integer analysisID = null;
if (dbName.equalsIgnoreCase("auto")){
dbName = "RNAUTO";
analysisID = spectrumAnalysisMapper.getAnalysisID(dbName, sampleId, "RNAUTO");
}else if (dbName.equalsIgnoreCase("man")){
dbName = "RNMAN";
analysisID = spectrumAnalysisMapper.getAnalysisID(dbName, sampleId, userName);
}
SpectrumFileRecord dbSpectrumFilePath = spectrumAnalysisMapper.getDBSpectrumFilePath(dbName, sampleId,analysisID);
if (Objects.nonNull(dbSpectrumFilePath)) {
String sampleFilePath = dbSpectrumFilePath.getSampleFilePath().substring(0, dbSpectrumFilePath.getSampleFilePath().lastIndexOf(StringPool.SLASH));
String gasFilePath = dbSpectrumFilePath.getGasBgFilePath().substring(0, dbSpectrumFilePath.getGasBgFilePath().lastIndexOf(StringPool.SLASH));
String detFilePath = dbSpectrumFilePath.getDetBgFilePath().substring(0, dbSpectrumFilePath.getDetBgFilePath().lastIndexOf(StringPool.SLASH));
m_loadData.put("sampleFilePath", sampleFilePath);
m_loadData.put("gasFilePath", gasFilePath);
m_loadData.put("detFilePath", detFilePath);
}
} else {
String sampleFilePath = StringPool.SLASH + spectrumPathProperties.getUploadPath() + StringPool.SLASH + userName;
String gasFilePath = StringPool.SLASH + spectrumPathProperties.getUploadPath() + StringPool.SLASH + userName;
String detFilePath = StringPool.SLASH + spectrumPathProperties.getUploadPath() + StringPool.SLASH + userName;
m_loadData.put("sampleFilePath", sampleFilePath);
m_loadData.put("gasFilePath", gasFilePath);
m_loadData.put("detFilePath", detFilePath);
}
m_loadData.put("sampleFileName", sampleFileName);
m_loadData.put("gasFileName", gasFileName);
m_loadData.put("detFileName", detFileName);
m_loadData.put("qcFileName", qcFileName);
loadDataList.add(m_loadData);
}
BetaGammaAnalyzeAllProcess(loadDataList, analyseData, userName);
}
// else if ("AllSpectrum".equals(analyseData.getApplyType())) {
// Map<String, SpectrumFileRecord> m_loadData = new HashMap<>();
// for (int i=0; i<analyseData.getSampleIds().size(); i++) {
// Integer sampleId = analyseData.getSampleIds().get(i);
// String dbName = analyseData.getDbNames().get(i);
// Integer analysisID = spectrumAnalysisMapper.getAnalysisID(dbName, sampleId, userName);
// SpectrumFileRecord dbSpectrumFilePath = spectrumAnalysisMapper.getDBSpectrumFilePath(dbName, sampleId,analysisID);
// m_loadData.put(String.valueOf(sampleId), dbSpectrumFilePath);
// }
// BetaGammaAnalyzeAllProcess(m_loadData, analyseData);
// }
// if (analyseData.isBBetaEnergyValid()) {
// ui->BetaOriginalChartView->SetFittingParam(fit_analy_param.b_calibration_param.param_a_c2e_new,
// fit_analy_param.b_calibration_param.param_b_c2e_new,
@ -2425,123 +2502,181 @@ public class SpectrumAnalysisServiceImpl implements ISpectrumAnalysisService {
return result;
}
private BgAnalyseResult BetaGammaAnalyzeCurrentProcess(AnalyseData analyseData, SpectrumFileRecord dbSpectrumFilePath, String userName){
SpectrumGroup spectrum_group = new SpectrumGroup();
String sampleFilePath = dbSpectrumFilePath.getSampleFilePath().substring(0, dbSpectrumFilePath.getSampleFilePath().lastIndexOf(StringPool.SLASH));
String sampleFileName = dbSpectrumFilePath.getSampleFilePath().substring(dbSpectrumFilePath.getSampleFilePath().lastIndexOf(StringPool.SLASH)+1);
String gasFilePath = dbSpectrumFilePath.getGasBgFilePath().substring(0, dbSpectrumFilePath.getGasBgFilePath().lastIndexOf(StringPool.SLASH));
String gasFileName = dbSpectrumFilePath.getGasBgFilePath().substring(dbSpectrumFilePath.getGasBgFilePath().lastIndexOf(StringPool.SLASH)+1);
String detFilePath = dbSpectrumFilePath.getDetBgFilePath().substring(0, dbSpectrumFilePath.getDetBgFilePath().lastIndexOf(StringPool.SLASH));
String detFileName = dbSpectrumFilePath.getDetBgFilePath().substring(dbSpectrumFilePath.getDetBgFilePath().lastIndexOf(StringPool.SLASH)+1);
List<String> qcFileNames = analyseData.getQcFileNames();
String qcFileName = qcFileNames.get(0);
//从本地缓存获取beta gamma的数组
Cache<String, Map<String, Object>> cache = betaCache.getBetaCache();
//根据qc文件名称-用户名-beta的方式获取beta的内容
Map<String, Object> betaMap = cache.getIfPresent(qcFileName + "-" + userName + "-beta");
List<SeriseData> betaList = new LinkedList<>();
List<String> betaFittingPara = new LinkedList<>();
List<String> betaFittingParaToUi = new LinkedList<>();
if (CollectionUtils.isNotEmpty(betaMap)) {
betaList = (List<SeriseData>)betaMap.get("Series");
betaFittingPara = (List<String>) betaMap.get("fittingPara");
betaFittingParaToUi = (List<String>) betaMap.get("fittingParaToUi");
}
//根据qc文件名称-用户名-gamma的方式获取gamma的内容
Map<String, Object> gammaMap = cache.getIfPresent(qcFileName + "-" + userName + "-gamma");
List<SeriseData> gammaList = new LinkedList<>();
List<String> gammaFittingPara = new LinkedList<>();
List<String> gammaFittingParaToUi = new LinkedList<>();
if (CollectionUtils.isNotEmpty(gammaMap)) {
gammaList = (List<SeriseData>)gammaMap.get("Series");
gammaFittingPara = (List<String>) gammaMap.get("fittingPara");
gammaFittingParaToUi = (List<String>) gammaMap.get("fittingParaToUi");
}
if (analyseData.isBBetaEnergyValid()) {
List<Double> beCal = new LinkedList<>();
beCal.add(Double.valueOf(betaFittingParaToUi.get(0)));
beCal.add(Double.valueOf(betaFittingParaToUi.get(1)));
beCal.add(Double.valueOf(betaFittingParaToUi.get(2)));
spectrum_group.BgCalPara.b_e_cal = beCal;
List<Double> bc2e = new LinkedList<>();
bc2e.add(Double.valueOf(betaFittingPara.get(0)));
bc2e.add(Double.valueOf(betaFittingPara.get(1)));
bc2e.add(Double.valueOf(betaFittingPara.get(2)));
spectrum_group.b_c2e = bc2e;
}
if (analyseData.isBGammaEnergyValid()) {
List<Double> geCal = new LinkedList<>();
geCal.add(Double.valueOf(gammaFittingParaToUi.get(0)));
geCal.add(Double.valueOf(gammaFittingParaToUi.get(1)));
geCal.add(Double.valueOf(gammaFittingParaToUi.get(2)));
spectrum_group.BgCalPara.g_e_cal = geCal;
List<Double> gc2e = new LinkedList<>();
gc2e.add(Double.valueOf(gammaFittingPara.get(0)));
gc2e.add(Double.valueOf(gammaFittingPara.get(1)));
gc2e.add(Double.valueOf(gammaFittingPara.get(2)));
spectrum_group.g_c2e = gc2e;
}
spectrum_group.BgCalPara.bApplyNewCalicSample = analyseData.isSampleData();
spectrum_group.BgCalPara.bApplyNewCalicGasBg = analyseData.isGasBgData();
spectrum_group.BgCalPara.bApplyNewCalicDetBg = analyseData.isDetBgData();
spectrum_group.BgCalPara.bApplyNewCalicQc = analyseData.isQcData();
System.loadLibrary("ReadPHDFile");
private BgAnalyseResult BetaGammaAnalyzeCurrentProcess(AnalyseData analyseData, String sampleFilePath, String gasFilePath, String detFilePath, String userName) {
//System.loadLibrary("ReadPHDFile");
//根据文件路径 文件名称获取对应的临时文件
File sampleTmp = phdFileUtil.analyzeFile(sampleFilePath, sampleFileName);
File gasTmp = phdFileUtil.analyzeFile(gasFilePath, gasFileName);
File detTmp = phdFileUtil.analyzeFile(detFilePath, detFileName);
BgAnalyseResult analyseResult = EnergySpectrumHandler.bgReAnalyse(sampleTmp.getAbsolutePath(), gasTmp.getAbsolutePath(), detTmp.getAbsolutePath(), spectrum_group.BgCalPara);
File sampleTmp = null;
File gasTmp = null;
File detTmp = null;
BgAnalyseResult analyseResult = null;
try {
List<String> sampleFileNames = analyseData.getSampleFileNames();
String sampleFileName = sampleFileNames.get(0);
List<String> gasFileNames = analyseData.getGasFileNames();
String gasFileName = gasFileNames.get(0);
List<String> detFileNames = analyseData.getDetFileNames();
String detFileName = detFileNames.get(0);
List<String> qcFileNames = analyseData.getQcFileNames();
String qcFileName = qcFileNames.get(0);
SpectrumGroup spectrum_group = new SpectrumGroup();
//从本地缓存获取beta gamma的数组
Cache<String, Map<String, Object>> cache = betaCache.getBetaCache();
//根据qc文件名称-用户名-beta的方式获取beta的内容
Map<String, Object> betaMap = cache.getIfPresent(qcFileName + "-" + userName + "-beta");
List<SeriseData> betaList = new LinkedList<>();
List<String> betaFittingPara = new LinkedList<>();
List<String> betaFittingParaToUi = new LinkedList<>();
if (CollectionUtils.isNotEmpty(betaMap)) {
betaList = (List<SeriseData>)betaMap.get("Series");
betaFittingPara = (List<String>) betaMap.get("fittingPara");
betaFittingParaToUi = (List<String>) betaMap.get("fittingParaToUi");
}
//根据qc文件名称-用户名-gamma的方式获取gamma的内容
Map<String, Object> gammaMap = cache.getIfPresent(qcFileName + "-" + userName + "-gamma");
List<SeriseData> gammaList = new LinkedList<>();
List<String> gammaFittingPara = new LinkedList<>();
List<String> gammaFittingParaToUi = new LinkedList<>();
if (CollectionUtils.isNotEmpty(gammaMap)) {
gammaList = (List<SeriseData>)gammaMap.get("Series");
gammaFittingPara = (List<String>) gammaMap.get("fittingPara");
gammaFittingParaToUi = (List<String>) gammaMap.get("fittingParaToUi");
}
if (analyseData.isBetaEnergyValid()) {
List<Double> beCal = new LinkedList<>();
beCal.add(Double.valueOf(betaFittingParaToUi.get(0)));
beCal.add(Double.valueOf(betaFittingParaToUi.get(1)));
beCal.add(Double.valueOf(betaFittingParaToUi.get(2)));
spectrum_group.BgCalPara.b_e_cal = beCal;
List<Double> bc2e = new LinkedList<>();
bc2e.add(Double.valueOf(betaFittingPara.get(0)));
bc2e.add(Double.valueOf(betaFittingPara.get(1)));
bc2e.add(Double.valueOf(betaFittingPara.get(2)));
spectrum_group.b_c2e = bc2e;
}
if (analyseData.isGammaEnergyValid()) {
List<Double> geCal = new LinkedList<>();
geCal.add(Double.valueOf(gammaFittingParaToUi.get(0)));
geCal.add(Double.valueOf(gammaFittingParaToUi.get(1)));
geCal.add(Double.valueOf(gammaFittingParaToUi.get(2)));
spectrum_group.BgCalPara.g_e_cal = geCal;
List<Double> gc2e = new LinkedList<>();
gc2e.add(Double.valueOf(gammaFittingPara.get(0)));
gc2e.add(Double.valueOf(gammaFittingPara.get(1)));
gc2e.add(Double.valueOf(gammaFittingPara.get(2)));
spectrum_group.g_c2e = gc2e;
}
spectrum_group.BgCalPara.bApplyNewCalicSample = analyseData.isSampleData();
spectrum_group.BgCalPara.bApplyNewCalicGasBg = analyseData.isGasBgData();
spectrum_group.BgCalPara.bApplyNewCalicDetBg = analyseData.isDetBgData();
spectrum_group.BgCalPara.bApplyNewCalicQc = analyseData.isQcData();
sampleTmp = phdFileUtil.analyzeFile(sampleFilePath, sampleFileName);
gasTmp = phdFileUtil.analyzeFile(gasFilePath, gasFileName);
detTmp = phdFileUtil.analyzeFile(detFilePath, detFileName);
analyseResult = EnergySpectrumHandler.bgReAnalyse(sampleTmp.getAbsolutePath(), gasTmp.getAbsolutePath(), detTmp.getAbsolutePath(), spectrum_group.BgCalPara);
} catch (Exception e) {
e.printStackTrace();
} finally {
if (Objects.nonNull(sampleTmp)) {
sampleTmp.delete();
}
if (Objects.nonNull(gasTmp)) {
gasTmp.delete();
}
if (Objects.nonNull(detTmp)) {
detTmp.delete();
}
}
return analyseResult;
}
// private void BetaGammaAnalyzeAllProcess(Map<String, SpectrumFileRecord> m_loadData, AnalyseData analyseData){
// List<SpectrumGroup> spectrum_group_list = new LinkedList<>();
// for (Map.Entry<String, SpectrumFileRecord> entry: m_loadData.entrySet()){
// SpectrumGroup spectrum_group = new SpectrumGroup();
// SpectrumFileRecord spectrumFileRecord = entry.getValue();
// spectrum_group.SampleSpectrumFile = spectrumFileRecord.getSampleFilePath();
// spectrum_group.GasBgSpectrumFile = spectrumFileRecord.getGasBgFilePath();
// spectrum_group.DetBgSpectrumFile = spectrumFileRecord.getDetBgFilePath();
//
// if (analyseData.isBBetaEnergyValid()) {
// List<Double> beCal = new LinkedList<>();
// beCal.add(analyseData.getB_calibration_param().param_c_e2c_new);
// beCal.add(analyseData.getB_calibration_param().param_b_e2c_new);
// beCal.add(analyseData.getB_calibration_param().param_a_e2c_new);
// spectrum_group.BgCalPara.b_e_cal = beCal;
// List<Double> bc2e = new LinkedList<>();
// bc2e.add(analyseData.getB_calibration_param().param_c_c2e_new);
// bc2e.add(analyseData.getB_calibration_param().param_b_c2e_new);
// bc2e.add(analyseData.getB_calibration_param().param_a_c2e_new);
// spectrum_group.b_c2e = bc2e;
// }
// if (analyseData.isBGammaEnergyValid()) {
// List<Double> geCal = new LinkedList<>();
// geCal.add(analyseData.getG_calibration_param().param_c_e2c_new);
// geCal.add(analyseData.getG_calibration_param().param_b_e2c_new);
// geCal.add(analyseData.getG_calibration_param().param_a_e2c_new);
// spectrum_group.BgCalPara.g_e_cal = geCal;
// List<Double> gc2e = new LinkedList<>();
// gc2e.add(analyseData.getG_calibration_param().param_c_c2e_new);
// gc2e.add(analyseData.getG_calibration_param().param_b_c2e_new);
// gc2e.add(analyseData.getG_calibration_param().param_a_c2e_new);
// spectrum_group.g_c2e = gc2e;
// }
// spectrum_group.BgCalPara.bApplyNewCalicSample = analyseData.isSampleData();
// spectrum_group.BgCalPara.bApplyNewCalicGasBg = analyseData.isGasBgData();
// spectrum_group.BgCalPara.bApplyNewCalicDetBg = analyseData.isDetBgData();
// spectrum_group.BgCalPara.bApplyNewCalicQc = analyseData.isQcData();
//
// spectrum_group_list.add(spectrum_group);
// }
//
// if (CollectionUtils.isNotEmpty(spectrum_group_list)) {
//// beta_gamma_analy.SetSpectrumGroupList(spectrum_group_list);
//// AnalyProcessDlg analy_dlg(beta_gamma_analy);
//// analy_dlg.SetProgressRange(0, spectrum_group_list.count());
//// analy_dlg.exec();
// }
// }
private void BetaGammaAnalyzeAllProcess(List<Map<String, String>> loadDataList, AnalyseData analyseData, String userName){
List<BgAnalyseResult> analyseResultList = new LinkedList<>();
File sampleTmp = null;
File gasTmp = null;
File detTmp = null;
try {
for (Map<String, String> m_loadData: loadDataList){
String sampleFileName = m_loadData.get("sampleFileName");
String gasFileName = m_loadData.get("gasFileName");
String detFileName = m_loadData.get("detFileName");
String qcFileName = m_loadData.get("qcFileName");
String sampleFilePath = m_loadData.get("sampleFilePath");
String gasFilePath = m_loadData.get("gasFilePath");
String detFilePath = m_loadData.get("detFilePath");
SpectrumGroup spectrum_group = new SpectrumGroup();
//从本地缓存获取beta gamma的数组
Cache<String, Map<String, Object>> cache = betaCache.getBetaCache();
//根据qc文件名称-用户名-beta的方式获取beta的内容
Map<String, Object> betaMap = cache.getIfPresent(qcFileName + "-" + userName + "-beta");
List<SeriseData> betaList = new LinkedList<>();
List<String> betaFittingPara = new LinkedList<>();
List<String> betaFittingParaToUi = new LinkedList<>();
if (CollectionUtils.isNotEmpty(betaMap)) {
betaList = (List<SeriseData>)betaMap.get("Series");
betaFittingPara = (List<String>) betaMap.get("fittingPara");
betaFittingParaToUi = (List<String>) betaMap.get("fittingParaToUi");
}
//根据qc文件名称-用户名-gamma的方式获取gamma的内容
Map<String, Object> gammaMap = cache.getIfPresent(qcFileName + "-" + userName + "-gamma");
List<SeriseData> gammaList = new LinkedList<>();
List<String> gammaFittingPara = new LinkedList<>();
List<String> gammaFittingParaToUi = new LinkedList<>();
if (CollectionUtils.isNotEmpty(gammaMap)) {
gammaList = (List<SeriseData>)gammaMap.get("Series");
gammaFittingPara = (List<String>) gammaMap.get("fittingPara");
gammaFittingParaToUi = (List<String>) gammaMap.get("fittingParaToUi");
}
if (analyseData.isBetaEnergyValid()) {
List<Double> beCal = new LinkedList<>();
beCal.add(Double.valueOf(betaFittingParaToUi.get(0)));
beCal.add(Double.valueOf(betaFittingParaToUi.get(1)));
beCal.add(Double.valueOf(betaFittingParaToUi.get(2)));
spectrum_group.BgCalPara.b_e_cal = beCal;
List<Double> bc2e = new LinkedList<>();
bc2e.add(Double.valueOf(betaFittingPara.get(0)));
bc2e.add(Double.valueOf(betaFittingPara.get(1)));
bc2e.add(Double.valueOf(betaFittingPara.get(2)));
spectrum_group.b_c2e = bc2e;
}
if (analyseData.isGammaEnergyValid()) {
List<Double> geCal = new LinkedList<>();
geCal.add(Double.valueOf(gammaFittingParaToUi.get(0)));
geCal.add(Double.valueOf(gammaFittingParaToUi.get(1)));
geCal.add(Double.valueOf(gammaFittingParaToUi.get(2)));
spectrum_group.BgCalPara.g_e_cal = geCal;
List<Double> gc2e = new LinkedList<>();
gc2e.add(Double.valueOf(gammaFittingPara.get(0)));
gc2e.add(Double.valueOf(gammaFittingPara.get(1)));
gc2e.add(Double.valueOf(gammaFittingPara.get(2)));
spectrum_group.g_c2e = gc2e;
}
spectrum_group.BgCalPara.bApplyNewCalicSample = analyseData.isSampleData();
spectrum_group.BgCalPara.bApplyNewCalicGasBg = analyseData.isGasBgData();
spectrum_group.BgCalPara.bApplyNewCalicDetBg = analyseData.isDetBgData();
spectrum_group.BgCalPara.bApplyNewCalicQc = analyseData.isQcData();
sampleTmp = phdFileUtil.analyzeFile(sampleFilePath, sampleFileName);
gasTmp = phdFileUtil.analyzeFile(gasFilePath, gasFileName);
detTmp = phdFileUtil.analyzeFile(detFilePath, detFileName);
BgAnalyseResult analyseResult = EnergySpectrumHandler.bgReAnalyse(sampleTmp.getAbsolutePath(), gasTmp.getAbsolutePath(), detTmp.getAbsolutePath(), spectrum_group.BgCalPara);
analyseResultList.add(analyseResult);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (Objects.nonNull(sampleTmp)) {
sampleTmp.delete();
}
if (Objects.nonNull(gasTmp)) {
gasTmp.delete();
}
if (Objects.nonNull(detTmp)) {
detTmp.delete();
}
}
}
@Override
public Result analyseCurrentSpectrum(String dbName, Integer sampleId, String sampleFileName, String gasFileName, String detFileName, HttpServletRequest request) {
@ -3357,7 +3492,7 @@ public class SpectrumAnalysisServiceImpl implements ISpectrumAnalysisService {
sampleTmp = phdFileUtil.analyzeFile(anlyseResultIn.getSampleFilePath(), anlyseResultIn.getSampleFileName());
gasTmp = phdFileUtil.analyzeFile(anlyseResultIn.getGasFilePath(), anlyseResultIn.getGasFileName());
detTmp = phdFileUtil.analyzeFile(anlyseResultIn.getDetFilePath(), anlyseResultIn.getDetFileName());
System.loadLibrary("ReadPHDFile");
//System.loadLibrary("ReadPHDFile");
//如果勾选了Energy Calibration页面下sample Data
if (Objects.nonNull(sampleTmp)) {
if(anlyseResultIn.isCheckSample()) {
@ -3473,7 +3608,7 @@ public class SpectrumAnalysisServiceImpl implements ISpectrumAnalysisService {
gasTmp = phdFileUtil.analyzeFile(anlyseResultIn.getGasFilePath(), anlyseResultIn.getGasFileName());
detTmp = phdFileUtil.analyzeFile(anlyseResultIn.getDetFilePath(), anlyseResultIn.getDetFileName());
//加载dll工具库
System.loadLibrary("ReadPHDFile");
//System.loadLibrary("ReadPHDFile");
//调用动态库解析文件
//Gamma Energy Calibration页面 如果点击过fitting使BGammaEnergyValid并且有勾选
//如果三个sampleData,GasData,DetData数据都是被勾选状态 则需要传递新的参数重新分析 否则不需要改变数据分析当前文件内容
@ -3736,8 +3871,6 @@ public class SpectrumAnalysisServiceImpl implements ISpectrumAnalysisService {
sampleTmp = phdFileUtil.analyzeFile(anlyseResultIn.getSampleFilePath(), anlyseResultIn.getSampleFileName());
gasTmp = phdFileUtil.analyzeFile(anlyseResultIn.getGasFilePath(), anlyseResultIn.getGasFileName());
detTmp = phdFileUtil.analyzeFile(anlyseResultIn.getDetFilePath(), anlyseResultIn.getDetFileName());
//加载dll工具库
System.loadLibrary("ReadPHDFile");
//调用动态库解析文件
//Gamma Energy Calibration页面 如果点击过fitting使BGammaEnergyValid并且有勾选
//如果三个sampleData,GasData,DetData数据都是被勾选状态 则需要传递新的参数重新分析 否则不需要改变数据分析当前文件内容
@ -4034,7 +4167,7 @@ public class SpectrumAnalysisServiceImpl implements ISpectrumAnalysisService {
try {
//获取ftp文件路径下临时文件
sampleTmp = phdFileUtil.analyzeFile(anlyseResultIn.getSampleFilePath(), anlyseResultIn.getSampleFileName());
System.loadLibrary("ReadPHDFile");
//System.loadLibrary("ReadPHDFile");
if (Objects.nonNull(sampleTmp)){
EnergySpectrumStruct sourceData = EnergySpectrumHandler.getSourceData(sampleTmp.getAbsolutePath());
List<Double> poiBX1 = sourceData.POI_B_x1;
@ -4304,12 +4437,12 @@ public class SpectrumAnalysisServiceImpl implements ISpectrumAnalysisService {
ftpClient.changeWorkingDirectory(filePath);
inputStream = ftpClient.retrieveFileStream(fileName);
if (Objects.nonNull(inputStream)){
file = File.createTempFile("tmp", null);
file = File.createTempFile("betaGamma", null);
//将ftp文件的输入流复制给临时文件
FileUtils.copyInputStreamToFile(inputStream, file);
}
//加载动态库
System.loadLibrary("ReadPHDFile");
//System.loadLibrary("ReadPHDFile");
//读取文件内容
EnergySpectrumStruct sourceData = EnergySpectrumHandler.getSourceData(file.getAbsolutePath());
//获取文件中块名信息