20250328 更新
1.处理生物样本丰度比和丰度比偏差在前台的显示
This commit is contained in:
@@ -9,7 +9,6 @@ import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
|
||||
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
@@ -20,13 +19,13 @@ import digital.laboratory.platform.common.core.util.R;
|
||||
import digital.laboratory.platform.common.mybatis.security.service.DLPUser;
|
||||
import digital.laboratory.platform.comservice.entity.DlpDictData;
|
||||
import digital.laboratory.platform.comservice.feign.RemoteDictDataService;
|
||||
import digital.laboratory.platform.inspection.constant.TestRecordSampleDataConstant;
|
||||
import digital.laboratory.platform.inspection.convert.TestRecordSampleDataConverter;
|
||||
import digital.laboratory.platform.inspection.dto.*;
|
||||
import digital.laboratory.platform.inspection.entity.*;
|
||||
import digital.laboratory.platform.inspection.enums.BusinessType;
|
||||
import digital.laboratory.platform.inspection.enums.StdSolutionNum;
|
||||
import digital.laboratory.platform.inspection.enums.TaskTestDataStatus;
|
||||
import digital.laboratory.platform.inspection.constant.TestRecordSampleDataConstant;
|
||||
import digital.laboratory.platform.inspection.dto.*;
|
||||
import digital.laboratory.platform.inspection.entity.*;
|
||||
import digital.laboratory.platform.inspection.event.AuditDataExecutionEvent;
|
||||
import digital.laboratory.platform.inspection.event.FinishTestExecutionEvent;
|
||||
import digital.laboratory.platform.inspection.mapper.SampleInjectorMapper;
|
||||
@@ -43,7 +42,6 @@ import digital.laboratory.platform.inspetion.api.entity.SampleInfo;
|
||||
import digital.laboratory.platform.inspetion.api.entity.TestRecord;
|
||||
import digital.laboratory.platform.sys.entity.Drug;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.context.ApplicationContext;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
@@ -56,7 +54,6 @@ import java.text.DecimalFormat;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
import java.util.concurrent.atomic.AtomicBoolean;
|
||||
import java.util.concurrent.atomic.AtomicReference;
|
||||
import java.util.function.Function;
|
||||
|
||||
@@ -5,14 +5,14 @@ import cn.hutool.core.util.StrUtil;
|
||||
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import digital.laboratory.platform.inspection.convert.TestSampleDataExpandConverter;
|
||||
import digital.laboratory.platform.inspection.dto.TestSampleDataExpandDTO;
|
||||
import digital.laboratory.platform.inspection.entity.TestRecordSampleData;
|
||||
import digital.laboratory.platform.inspection.enums.BusinessType;
|
||||
import digital.laboratory.platform.inspection.constant.TestRecordSampleDataConstant;
|
||||
import digital.laboratory.platform.inspection.convert.TestSampleDataExpandConverter;
|
||||
import digital.laboratory.platform.inspection.dto.HairSewageDataDto;
|
||||
import digital.laboratory.platform.inspection.dto.NPSCaseTestDataDto;
|
||||
import digital.laboratory.platform.inspection.dto.TestSampleDataExpandDTO;
|
||||
import digital.laboratory.platform.inspection.entity.TestRecordSampleData;
|
||||
import digital.laboratory.platform.inspection.entity.TestRecordSampleDataExpand;
|
||||
import digital.laboratory.platform.inspection.enums.BusinessType;
|
||||
import digital.laboratory.platform.inspection.mapper.TestRecordSampleDataExpandMapper;
|
||||
import digital.laboratory.platform.inspection.service.ProcessInspectDataService;
|
||||
import digital.laboratory.platform.inspection.service.TestRecordSampleDataService;
|
||||
@@ -27,7 +27,6 @@ import org.springframework.stereotype.Service;
|
||||
import javax.annotation.Resource;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
@@ -259,13 +258,20 @@ public class TestRecordSampledataExpandServiceImpl extends ServiceImpl<TestRecor
|
||||
sampleDataExpand.setIonAbundanceRatio(sampleDataExpand.getPeakArea().divide(basePeakData.getPeakArea(), 5, BigDecimal.ROUND_HALF_UP).multiply(BigDecimal.valueOf(100)));
|
||||
if (CollUtil.isNotEmpty(finalStdDataExpandList)) {
|
||||
finalStdDataExpandList.forEach(stdDataExpand -> {
|
||||
if (stdDataExpand.getMassToChargeRatio().equals(sampleDataExpand.getMassToChargeRatio())) {
|
||||
boolean matched = false; // 匹配对应的标准物质数据
|
||||
boolean isNPSCase = testRecord.getBusinessType().equals(BusinessType.NPS_CASE.getBusinessType()); // 是否是常规毒品案件
|
||||
if (isNPSCase) {
|
||||
matched = stdDataExpand.getMassToChargeRatio().equals(sampleDataExpand.getMassToChargeRatio());
|
||||
} else {
|
||||
matched = stdDataExpand.getQualitativeIonPair().equals(sampleDataExpand.getQualitativeIonPair());
|
||||
}
|
||||
if (matched) {
|
||||
BigDecimal ionAbundanceRatioError = sampleDataExpand.getIonAbundanceRatio()
|
||||
.subtract(stdDataExpand.getIonAbundanceRatio())
|
||||
.divide(stdDataExpand.getIonAbundanceRatio(), 5, BigDecimal.ROUND_HALF_UP)
|
||||
.multiply(BigDecimal.valueOf(100));
|
||||
sampleDataExpand.setIonAbundanceRatioError(ionAbundanceRatioError);
|
||||
if (testRecord.getBusinessType().equals(BusinessType.NPS_CASE.getBusinessType())) {
|
||||
if (isNPSCase) {
|
||||
sampleDataExpand.setIonAbundanceRatioWithinError(processInspectDataService.getWithinErrorText(ionAbundanceRatioError, processInspectDataService.getErrorRange(sampleDataExpand.getIonAbundanceRatio())));
|
||||
} else {
|
||||
sampleDataExpand.setIonAbundanceRatioWithinError(processInspectDataService.calculateHairCaseIonAbundanceRatioWithinError(ionAbundanceRatioError.doubleValue(), stdDataExpand.getIonAbundanceRatio().doubleValue()));
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
package digital.laboratory.platform.inspection.vo;
|
||||
|
||||
import digital.laboratory.platform.inspection.constant.TestRecordSampleDataConstant;
|
||||
import digital.laboratory.platform.inspection.entity.TestRecordSampleDataExpand;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
@@ -93,4 +92,29 @@ public class TestRecordSampleDataVO {
|
||||
public BigDecimal getRtTimeError() {
|
||||
return rtTimeError != null ? rtTimeError.setScale(3, RoundingMode.HALF_UP) : null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 该getter方法因为生物样本的丰度比只有一个,为前端显示而添加
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public BigDecimal getIonAbundanceRatioError() {
|
||||
return expandList.get(1).getIonAbundanceRatioError();
|
||||
}
|
||||
|
||||
/**
|
||||
* 该getter方法因为生物样本的丰度比只有一个,为前端显示而添加
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public BigDecimal getIonAbundanceRatio() {
|
||||
return expandList.get(1).getIonAbundanceRatio();
|
||||
}
|
||||
|
||||
/**
|
||||
* 离子丰度比偏差是否在误差范围内
|
||||
*/
|
||||
public String getIonAbundanceRatioWithinError() {
|
||||
return expandList.get(1).getIonAbundanceRatioWithinError();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user