From 4c6012bfec309b1e9b816209d9df051b61dd5280 Mon Sep 17 00:00:00 2001 From: tangw Date: Mon, 20 Oct 2025 15:49:07 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=BB=E7=A8=8B=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/domain/entity/lis/LabResult.java | 1 + .../interfaceCommon/mapper/LabPatMapper.java | 3 +- .../pojo/entity/LastLabPatParam.java | 20 +++ .../interfaceCommon/utils/CommonUtil.java | 5 +- .../interfaceCommon/utils/LisWorkUtils.java | 10 +- .../main/resources/mapper/LabPatMapper.xml | 17 +++ .../service/impl/LisWorkServiceImpl.java | 115 ++++++++++++++++-- 7 files changed, 155 insertions(+), 16 deletions(-) create mode 100644 lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/pojo/entity/LastLabPatParam.java diff --git a/lis-common/src/main/java/com/czlis/common/core/domain/entity/lis/LabResult.java b/lis-common/src/main/java/com/czlis/common/core/domain/entity/lis/LabResult.java index 59a12a3..c864ef9 100644 --- a/lis-common/src/main/java/com/czlis/common/core/domain/entity/lis/LabResult.java +++ b/lis-common/src/main/java/com/czlis/common/core/domain/entity/lis/LabResult.java @@ -47,4 +47,5 @@ public class LabResult extends BaseEntity { private Integer cp_modify; private String cp_compa; private String cp_lastflag; + private Date cp_lastjyrq; } diff --git a/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/mapper/LabPatMapper.java b/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/mapper/LabPatMapper.java index 8a5b608..8abff02 100644 --- a/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/mapper/LabPatMapper.java +++ b/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/mapper/LabPatMapper.java @@ -1,6 +1,7 @@ package com.czlis.interfaceCommon.mapper; import com.czlis.common.core.domain.entity.lis.LabPat; +import com.czlis.interfaceCommon.pojo.entity.LastLabPatParam; import org.apache.ibatis.annotations.Param; import java.util.Date; @@ -22,5 +23,5 @@ public interface LabPatMapper { int getCountByKey(@Param("jyrq") Date jyrq, @Param("yq") String yq,@Param("ybh") String ybh) ; //根据编号查sqh String getSqhByKey(@Param("jyrq")Date jyrq,@Param("yq") String yq,@Param("ybh") String ybh); - + List getlastLabPat(LastLabPatParam lastLabPatParam); } diff --git a/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/pojo/entity/LastLabPatParam.java b/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/pojo/entity/LastLabPatParam.java new file mode 100644 index 0000000..e2be8ad --- /dev/null +++ b/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/pojo/entity/LastLabPatParam.java @@ -0,0 +1,20 @@ +package com.czlis.interfaceCommon.pojo.entity; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; +@Data +@AllArgsConstructor +@NoArgsConstructor +public class LastLabPatParam { + private Date startda; + private Date endda; + private String brdh; + private String brxm; + private String mzh; + private String sfzh; + private String instrlist; + private String yq; +} diff --git a/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/utils/CommonUtil.java b/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/utils/CommonUtil.java index 377d718..dd66fca 100644 --- a/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/utils/CommonUtil.java +++ b/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/utils/CommonUtil.java @@ -5,6 +5,7 @@ import com.czlis.common.core.domain.entity.lis.*; import com.czlis.common.utils.ComDictUtils; import com.czlis.common.utils.ComOptionUtils; import com.czlis.interfaceCommon.mapper.*; +import com.czlis.interfaceCommon.pojo.entity.LastLabPatParam; import com.sun.org.apache.bcel.internal.generic.RETURN; import org.apache.commons.lang3.time.DateFormatUtils; import org.apache.ibatis.annotations.Param; @@ -175,7 +176,9 @@ public class CommonUtil { public String getLabPatJgbz(Date jyrq, String yq, String ybh){ return labPatMapper.getLabPatJgbz(jyrq, yq, ybh); } - + public List getlastLabPat(LastLabPatParam lastLabPatParam){ + return labPatMapper.getlastLabPat(lastLabPatParam); + } public String getSqhByKey(Date jyrq, String yq, String ybh) { return labPatMapper.getSqhByKey(jyrq, yq, ybh); } diff --git a/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/utils/LisWorkUtils.java b/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/utils/LisWorkUtils.java index 9150371..7b8f6af 100644 --- a/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/utils/LisWorkUtils.java +++ b/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/utils/LisWorkUtils.java @@ -678,21 +678,21 @@ public class LisWorkUtils { } private boolean checknowjz(LabPat labPat) { - boolean nowjz = false; //危急值标识去除原则 nowjz = true 不能算做危急值 String brxm = labPat.getBrxm(); if (brxm != null) { if (brxm.contains("质控") || brxm.contains("复查") || brxm.contains("QC") || brxm.contains("qc") || brxm.contains("软化水") || brxm.contains("锅炉水")) { - nowjz = true; + return true; } } String brly = labPat.getBrly(); if (brly != null) brly = commonUtil.getComDictNameById("PT", brly); - if (brly != null) if (brly.contains("质控")) nowjz = true; + if (brly != null) if (brly.contains("质控")) return true; + if (brly != null) if (brly.contains("复查")) return true; String ksdh = labPat.getKsdh(); if (ksdh != null) ksdh = commonUtil.getComDictNameById("DP", ksdh); - if (ksdh != null) if (ksdh.contains("检验科")) nowjz = true; - return nowjz; + if (ksdh != null) if (ksdh.contains("检验科")) return true; + return false; } /** diff --git a/lis-interfaceCommon/src/main/resources/mapper/LabPatMapper.xml b/lis-interfaceCommon/src/main/resources/mapper/LabPatMapper.xml index ff1a99e..6b33d4c 100644 --- a/lis-interfaceCommon/src/main/resources/mapper/LabPatMapper.xml +++ b/lis-interfaceCommon/src/main/resources/mapper/LabPatMapper.xml @@ -37,6 +37,23 @@ + + + insert into lab_pat (jyrq, yq, ybh, wyh, yblx, fb, ksdh, diff --git a/liswork/src/main/java/com/czlis/liswork/service/impl/LisWorkServiceImpl.java b/liswork/src/main/java/com/czlis/liswork/service/impl/LisWorkServiceImpl.java index 115a767..3e46a26 100644 --- a/liswork/src/main/java/com/czlis/liswork/service/impl/LisWorkServiceImpl.java +++ b/liswork/src/main/java/com/czlis/liswork/service/impl/LisWorkServiceImpl.java @@ -10,10 +10,8 @@ import com.czlis.common.utils.SecurityUtils; import com.czlis.common.utils.StringUtils; import com.czlis.interfaceCommon.constants.ComLogConstants; import com.czlis.interfaceCommon.constants.LabReqmainConstants; -import com.czlis.interfaceCommon.utils.CommonUtil; -import com.czlis.interfaceCommon.utils.LisWorkUtils; -import com.czlis.interfaceCommon.utils.LoginConfigParamUtil; -import com.czlis.interfaceCommon.utils.ReportUtil; +import com.czlis.interfaceCommon.pojo.entity.LastLabPatParam; +import com.czlis.interfaceCommon.utils.*; import com.czlis.liswork.mapper.LisWorkMapper; @@ -330,18 +328,117 @@ public class LisWorkServiceImpl implements LisWorkService { } } } + LabPat labPat =commonUtil.getLabPatOne(jyrq,yq,ybh); + List labResultList0=getlastresult(labPat,labResultList); + if(labResultList0.size()>0) { + for (LabResult labResult : labResultList) { + labResult.setCp_lastjyrq(labResultList0.get(0).getJyrq()); + String xmdh=labResult.getXmdh(); + String csjg=labResult.getCsjg(); + if(csjg==null)csjg=""; + if(xmdh!=null&&!"".equals(xmdh)) { + List labResult0 = labResultList0.stream().filter(rlog -> xmdh.equals(rlog.getXmdh())).collect(Collectors.toList()); + if(labResult0.size()>0) { + String csjg0 =labResult0.get(0).getCsjg(); + String result_flag=labResult0.get(0).getResult_flag(); + if("未做".equals(csjg0)||csjg0==null){ + csjg0=""; + result_flag=""; + } + labResult.setCp_compa(csjg0); + labResult.setCp_lastflag(result_flag); + } + } + } + } return new Result("0","成功!",labResultList); } /** * 获取当前结果的上一次结果 - * @param jyrq - * @param yq - * @param ybh * @return */ - private List getlastresult(Date jyrq, String yq, String ybh){ - List labResultList=commonUtil.getresultinfo(jyrq,yq,ybh); + + private List getlastresult(LabPat labPat,List labResultall){ + Date jyrq=labPat.getJyrq(); + String yq=labPat.getYq(); + String ybh=labPat.getYbh(); + LastLabPatParam lastLabPatParam=new LastLabPatParam(); + String comparecol = commonUtil.getComOptValue(yq,"COMPARECOL"); + String brdh=labPat.getBrdh(); + String mzh=labPat.getMzh(); + String sfzh=labPat.getSfzh(); + String brxm=labPat.getBrxm(); + List labResultList=new ArrayList<>(); + switch (comparecol){ + case "住院号": + if("".equals(brdh)||brdh==null){ + return labResultList; + } + lastLabPatParam.setBrdh(brdh); + break; + case "卡号": + if("".equals(mzh)||mzh==null){ + return labResultList; + } + lastLabPatParam.setMzh(mzh); + break; + case "身份证": + if("".equals(sfzh)||sfzh==null){ + return labResultList; + } + lastLabPatParam.setSfzh(sfzh); + break; + case "姓名": + if("".equals(brxm)||brxm==null){ + return labResultList; + } + lastLabPatParam.setBrxm(brxm); + break; + default: + if("".equals(brdh)||brdh==null){ + return labResultList; + } + if("".equals(brxm)||brxm==null){ + return labResultList; + } + lastLabPatParam.setBrdh(brdh); + lastLabPatParam.setBrxm(brxm); + } + String interval = commonUtil.getComOptValue(yq,"COMPAREDA"); + if(interval==null||"".equals(interval))interval="60"; + int getday=-Integer.parseInt(interval); + lastLabPatParam.setEndda(jyrq); + lastLabPatParam.setStartda(LisUtil.relativeDate(jyrq,getday)); + String compother= commonUtil.getComOptValue(yq,"COMPOTHERINSTR"); + if(compother!=null&&!"".equals(compother)) { + String instrlist = commonUtil.getComOptValue(yq, "COMPOTHERINSTRLIST"); + //'CAL800','XS500I','33','40' + if("".equals(instrlist)||instrlist==null){lastLabPatParam.setYq(yq);} + else { + instrlist="("+instrlist+",'"+yq+"')"; + lastLabPatParam.setInstrlist(instrlist); + } + } + List labPatList =commonUtil.getlastLabPat(lastLabPatParam); + if(labPatList.size()>0) { + for(LabPat labPat0:labPatList) { + Date jyrq0 = labPat0.getJyrq(); + String yq0 = labPat0.getYq(); + String ybh0 = labPat0.getYbh(); + if (jyrq0 == jyrq && yq0.equals(yq) && ybh0.equals(ybh)) { + }else { + List labResultList0 = commonUtil.getLabResultList(jyrq0, yq0, ybh0); + for(LabResult labResult:labResultList0) { + String xmdh=labResult.getXmdh(); + List labResult0 = labResultall.stream().filter(rlog -> xmdh.equals(rlog.getXmdh())).collect(Collectors.toList()); + if(labResult0.size()>0){ + return labResultList0; + } + } + } + } + } return labResultList; }