20250328 更新

1.处理生物样本丰度比和丰度比偏差在前台的显示
master
陈江保 4 days ago
parent 88012c5dfc
commit 2178ab4486
  1. 9
      dlp-drugtesting-biz/src/main/java/digital/laboratory/platform/inspection/service/impl/TestRecordSampleDataServiceImpl.java
  2. 20
      dlp-drugtesting-biz/src/main/java/digital/laboratory/platform/inspection/service/impl/TestRecordSampledataExpandServiceImpl.java
  3. 26
      dlp-drugtesting-biz/src/main/java/digital/laboratory/platform/inspection/vo/TestRecordSampleDataVO.java

@ -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();
}
}

Loading…
Cancel
Save