diff --git a/lis-common/src/main/java/com/czlis/common/core/domain/entity/lis/LabPatwarning.java b/lis-common/src/main/java/com/czlis/common/core/domain/entity/lis/LabPatwarning.java new file mode 100644 index 0000000..d655023 --- /dev/null +++ b/lis-common/src/main/java/com/czlis/common/core/domain/entity/lis/LabPatwarning.java @@ -0,0 +1,41 @@ +package com.czlis.common.core.domain.entity.lis; + + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; +@Data +@AllArgsConstructor +@NoArgsConstructor +public class LabPatwarning { + + private Date jyrq; + private String yq; + private String ybh; + private String lb; + private String bgr; + private String btzr; + private String tzfs; + private Date tzsj; + private String bz; + private String qrr; + private Date qrsj; + private String qrr1; + private Date qrsj1; + private String zt; + private String tbr; + private Date tbsj; + private String fhzt; + private String fhyy; + private String fhr; + private Date fhsj; + private String jtr; + private String lrr; + private Date lrsj; + private String phone; + + + +} diff --git a/lis-common/src/main/java/com/czlis/common/core/domain/entity/lis/LabResultwarning.java b/lis-common/src/main/java/com/czlis/common/core/domain/entity/lis/LabResultwarning.java new file mode 100644 index 0000000..e805bd8 --- /dev/null +++ b/lis-common/src/main/java/com/czlis/common/core/domain/entity/lis/LabResultwarning.java @@ -0,0 +1,24 @@ +package com.czlis.common.core.domain.entity.lis; + + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; +@Data +@AllArgsConstructor +@NoArgsConstructor +public class LabResultwarning { + + private Date jyrq; + private String yq; + private String ybh; + private String xmdh; + private String csjg; + private String jgbz; + private String bz; + + + +} diff --git a/lis-common/src/main/java/com/czlis/common/core/domain/entity/lis/LisPatlog.java b/lis-common/src/main/java/com/czlis/common/core/domain/entity/lis/LisPatlog.java new file mode 100644 index 0000000..9ee7c24 --- /dev/null +++ b/lis-common/src/main/java/com/czlis/common/core/domain/entity/lis/LisPatlog.java @@ -0,0 +1,48 @@ +package com.czlis.common.core.domain.entity.lis; + + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; +@Data +@AllArgsConstructor +@NoArgsConstructor +public class LisPatlog { + + private String wyh; + private Date jyrq; + private String yq; + private String ybh; + private Date xgrq; + private String xgyhdh; + private String yblx; + private String fb; + private String ksdh; + private String sjys; + private String hdys; + private String yhdh; + private String brdh; + private String brxm; + private String brxb; + private String brly; + private String ch; + private Integer nl; + private String nldw; + private String sqh; + private Date sqsj; + private Date dysj; + private String dybz; + private String jgbz; + private String bbbz; + private String zd; + private String bz; + private String bz1; + private String zjf; + private Date cyrq; + private String bq; + private String czybh; + + +} diff --git a/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/mapper/LabPatwarningMapper.java b/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/mapper/LabPatwarningMapper.java new file mode 100644 index 0000000..0737a51 --- /dev/null +++ b/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/mapper/LabPatwarningMapper.java @@ -0,0 +1,13 @@ +package com.czlis.interfaceCommon.mapper; + +import com.czlis.common.core.domain.entity.lis.LabPatwarning; +import org.apache.ibatis.annotations.Param; + +import java.util.Date; +import java.util.List; + +public interface LabPatwarningMapper { + LabPatwarning getLabPatwarning(@Param("jyrq") Date jyrq, @Param("yq")String yq, @Param("ybh") String ybh); + int insertLabPatwarning(LabPatwarning labPatwarning); + int deleteLabPatwarning(@Param("jyrq") Date jyrq, @Param("yq")String yq, @Param("ybh") String ybh); +} diff --git a/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/mapper/LabReqreportPdffileMapper.java b/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/mapper/LabReqreportPdffileMapper.java index 6978446..04b03d8 100644 --- a/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/mapper/LabReqreportPdffileMapper.java +++ b/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/mapper/LabReqreportPdffileMapper.java @@ -9,4 +9,5 @@ import java.util.List; public interface LabReqreportPdffileMapper { List getLabReqreportPdffileList(String sqh); LabReqreportPdffile getLabReqreportPdffileOne(@Param("jyrq") Date jyrq,@Param("yq") String yq,@Param("ybh") String ybh); + int deleteLabReqreportPdffile(@Param("jyrq") Date jyrq,@Param("yq") String yq,@Param("ybh") String ybh); } diff --git a/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/mapper/LabResultwarningMapper.java b/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/mapper/LabResultwarningMapper.java new file mode 100644 index 0000000..cf1867e --- /dev/null +++ b/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/mapper/LabResultwarningMapper.java @@ -0,0 +1,13 @@ +package com.czlis.interfaceCommon.mapper; + +import com.czlis.common.core.domain.entity.lis.LabResultwarning; +import org.apache.ibatis.annotations.Param; + +import java.util.Date; +import java.util.List; + +public interface LabResultwarningMapper { + List getLabResultwarning(@Param("jyrq") Date jyrq, @Param("yq")String yq, @Param("ybh") String ybh); + int insertLabResultwarning(LabResultwarning labResultwarning); + int deleteLabResultwarning(@Param("jyrq") Date jyrq, @Param("yq")String yq, @Param("ybh") String ybh); +} \ No newline at end of file diff --git a/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/mapper/LisPatlogMapper.java b/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/mapper/LisPatlogMapper.java new file mode 100644 index 0000000..0a82a19 --- /dev/null +++ b/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/mapper/LisPatlogMapper.java @@ -0,0 +1,13 @@ +package com.czlis.interfaceCommon.mapper; + +import com.czlis.common.core.domain.entity.lis.LisPatlog; +import org.apache.ibatis.annotations.Param; + +import java.util.Date; +import java.util.List; + +public interface LisPatlogMapper { + List getLisPatlogList(@Param("jyrq") Date jyrq, @Param("yq")String yq, @Param("ybh") String ybh); + List getLisPatlog(@Param("jyrq") Date jyrq, @Param("yq")String yq, @Param("ybh") String ybh,@Param("xgrq") Date xgrq); + int insertLisPatlog(LisPatlog lisPatlog); +} 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 5fd338e..55804e8 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 @@ -32,6 +32,10 @@ public class CommonUtil { @Autowired LabResultMapper labResultMapper; @Autowired + LabResultwarningMapper labResultwarningMapper; + @Autowired + LabPatwarningMapper labPatwarningMapper; + @Autowired LabReqdetailMapper labReqdetailMapper; @Autowired ComUsrMapper comUsrMapper; @@ -57,6 +61,8 @@ public class CommonUtil { LabRefusedMapper labRefusedMapper; @Autowired XmCalcMapper xmCalcMapper; + @Autowired + LisPatlogMapper lisPatlogMapper; //====检验主表操作方法集合=== public LabPat getLabPatOne(Date jyrq, String yq, String ybh) { @@ -161,6 +167,30 @@ public class CommonUtil { public int updateLabResult(LabResult labResult) { return labResultMapper.updateLabResult(labResult); } + //======危急值操作集合======= + public List getLabResultwarning(Date jyrq, String yq, String ybh) { + return labResultwarningMapper.getLabResultwarning(jyrq, yq, ybh); + } + public LabPatwarning getLabPatwarning(Date jyrq, String yq, String ybh) { + return labPatwarningMapper.getLabPatwarning(jyrq, yq, ybh); + } + @Transactional(rollbackFor = Exception.class) + public void insertLabResultwarning(LabResultwarning labResultwarning) { + labResultwarningMapper.insertLabResultwarning(labResultwarning); + } + @Transactional(rollbackFor = Exception.class) + public void insertLabPatwarning(LabPatwarning labPatwarning) { + labPatwarningMapper.insertLabPatwarning(labPatwarning); + } + @Transactional(rollbackFor = Exception.class) + public void deleteLabPatwarning(Date jyrq, String yq, String ybh) { + labPatwarningMapper.deleteLabPatwarning(jyrq, yq, ybh); + } + @Transactional(rollbackFor = Exception.class) + public void deleteLabResultwarning(Date jyrq, String yq, String ybh) { + labResultwarningMapper.deleteLabResultwarning(jyrq, yq, ybh); + } + //=====项目字典查询========= public List getXmInfoList(String yq) { @@ -203,10 +233,16 @@ public class CommonUtil { public List getXmCalcList(String yq) { return xmCalcMapper.getXmCalcList(yq); } + + @Transactional(rollbackFor = Exception.class) public Integer insertComLog(ComLog comLog) { return comLogMapper.insertComLog(comLog); } + @Transactional(rollbackFor = Exception.class) + public Integer insertLisPatlog(LisPatlog lisPatlog) { + return lisPatlogMapper.insertLisPatlog(lisPatlog); + } public String getYqmc(String yq) { return labInstrMapper.getYqmc(yq); @@ -383,4 +419,8 @@ public class CommonUtil { public LabReqreportPdffile getLabReqreportPdffileOne(Date jyrq, String yq, String ybh) { return labReqreportPdffileMapper.getLabReqreportPdffileOne(jyrq, yq, ybh); } + @Transactional(rollbackFor = Exception.class) + public int deleteLabReqreportPdffile(Date jyrq, String yq, String ybh) { + return labReqreportPdffileMapper.deleteLabReqreportPdffile(jyrq, yq, ybh); + } } diff --git a/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/utils/LisUtil.java b/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/utils/LisUtil.java index 3a8e2f9..3f4467b 100644 --- a/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/utils/LisUtil.java +++ b/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/utils/LisUtil.java @@ -1,8 +1,13 @@ package com.czlis.interfaceCommon.utils; +import com.czlis.common.utils.DateUtils; + import java.io.UnsupportedEncodingException; import java.math.BigDecimal; import java.math.RoundingMode; +import java.time.Duration; +import java.time.LocalDateTime; +import java.time.ZoneId; import java.util.Calendar; import java.util.Date; import java.util.Map; @@ -240,4 +245,30 @@ public class LisUtil { // 3. 返回推算的时间 return calendar.getTime(); } + + /** + * 判断前一个时间与后面时间间隔几分钟 + * @param pastDate + * @param datenow + * @return + */ + public static long relativeMinute(Date pastDate,Date datenow) { + LocalDateTime pastTime = pastDate.toInstant() + .atZone(ZoneId.systemDefault()) + .toLocalDateTime(); + LocalDateTime now = datenow.toInstant() + .atZone(ZoneId.systemDefault()) + .toLocalDateTime(); + long minutesDiff = Duration.between(pastTime, now).toMinutes(); + return minutesDiff; + } + + /** + * 判断一个时间与当前时间间隔几分钟 + * @param pastDate + * @return + */ + public static long relativeMinute(Date pastDate) { + return relativeMinute(pastDate,new Date()); + } } diff --git a/lis-interfaceCommon/src/main/resources/mapper/LabPatwarningMapper.xml b/lis-interfaceCommon/src/main/resources/mapper/LabPatwarningMapper.xml new file mode 100644 index 0000000..0a9b3e8 --- /dev/null +++ b/lis-interfaceCommon/src/main/resources/mapper/LabPatwarningMapper.xml @@ -0,0 +1,35 @@ + + + + + + + delete from lab_patwarning + where jyrq = #{jyrq} + and yq = #{yq} + and ybh = #{ybh} + + + insert into lab_patwarning (jyrq, yq, ybh, + lb, bgr, btzr, tzfs, + tzsj, bz, qrr, qrsj, + qrr1, qrsj1, zt, tbr, + tbsj, fhzt, fhyy, fhr, + fhsj, jtr, lrr, lrsj, + phone) + values (#{jyrq,jdbcType=TIMESTAMP}, #{yq,jdbcType=CHAR}, #{ybh,jdbcType=VARCHAR}, + #{lb,jdbcType=CHAR}, #{bgr,jdbcType=VARCHAR}, #{btzr,jdbcType=VARCHAR}, #{tzfs,jdbcType=VARCHAR}, + #{tzsj,jdbcType=TIMESTAMP}, #{bz,jdbcType=VARCHAR}, #{qrr,jdbcType=VARCHAR}, #{qrsj,jdbcType=TIMESTAMP}, + #{qrr1,jdbcType=CHAR}, #{qrsj1,jdbcType=TIMESTAMP}, #{zt,jdbcType=CHAR}, #{tbr,jdbcType=VARCHAR}, + #{tbsj,jdbcType=TIMESTAMP}, #{fhzt,jdbcType=CHAR}, #{fhyy,jdbcType=VARCHAR}, #{fhr,jdbcType=VARCHAR}, + #{fhsj,jdbcType=TIMESTAMP}, #{jtr,jdbcType=VARCHAR}, #{lrr,jdbcType=VARCHAR}, #{lrsj,jdbcType=TIMESTAMP}, + #{phone,jdbcType=VARCHAR}) + + \ No newline at end of file diff --git a/lis-interfaceCommon/src/main/resources/mapper/LabReqreportPdffileMapper.xml b/lis-interfaceCommon/src/main/resources/mapper/LabReqreportPdffileMapper.xml index 13115e9..9d96c3d 100644 --- a/lis-interfaceCommon/src/main/resources/mapper/LabReqreportPdffileMapper.xml +++ b/lis-interfaceCommon/src/main/resources/mapper/LabReqreportPdffileMapper.xml @@ -10,5 +10,10 @@ - + + delete from lab_reqreport_pdffile + where jyrq = #{jyrq} + and yq = #{yq} + and ybh = #{ybh} + diff --git a/lis-interfaceCommon/src/main/resources/mapper/LabResultwarningMapper.xml b/lis-interfaceCommon/src/main/resources/mapper/LabResultwarningMapper.xml new file mode 100644 index 0000000..c442c58 --- /dev/null +++ b/lis-interfaceCommon/src/main/resources/mapper/LabResultwarningMapper.xml @@ -0,0 +1,26 @@ + + + + + + delete from lab_resultwarning + where jyrq = #{jyrq} + and yq = #{yq} + and ybh = #{ybh} + + + insert into lab_resultwarning (jyrq, yq, ybh, + xmdh, csjg, jgbz, bz + ) + values (#{jyrq,jdbcType=TIMESTAMP}, #{yq,jdbcType=CHAR}, #{ybh,jdbcType=VARCHAR}, + #{xmdh,jdbcType=VARCHAR}, #{csjg,jdbcType=VARCHAR}, #{jgbz,jdbcType=CHAR}, #{bz,jdbcType=VARCHAR} + ) + + \ No newline at end of file diff --git a/lis-interfaceCommon/src/main/resources/mapper/LisPatlogMapper.xml b/lis-interfaceCommon/src/main/resources/mapper/LisPatlogMapper.xml new file mode 100644 index 0000000..357529a --- /dev/null +++ b/lis-interfaceCommon/src/main/resources/mapper/LisPatlogMapper.xml @@ -0,0 +1,18 @@ + + + + + + + + insert into lis_patlog (jyrq, yq, ybh, xgrq, xgyhdh, bz1) + values (#{jyrq}, #{yq}, #{ybh},#{xgrq}, #{xgyhdh},#{bz1}) + + + + diff --git a/liswork/src/main/java/com/czlis/liswork/controller/work/LisWorkOperController.java b/liswork/src/main/java/com/czlis/liswork/controller/work/LisWorkOperController.java index c14822a..eabbc72 100644 --- a/liswork/src/main/java/com/czlis/liswork/controller/work/LisWorkOperController.java +++ b/liswork/src/main/java/com/czlis/liswork/controller/work/LisWorkOperController.java @@ -56,4 +56,17 @@ public class LisWorkOperController extends BaseController { return lisWorkOperService.confirm(jyrq, yq, ybh, hdys); } + @ApiOperation("取消审核") + @GetMapping("/uncheck2") + public Result uncheck2( Date jyrq, String yq, String ybh, String hdys){ + log.info("yq:{}", yq); + hdys="lis"; + + return lisWorkOperService.unconfirm(jyrq, yq, ybh, hdys); + } + @GetMapping("/unconfirmlog") + public Result unconfirmlog( Date jyrq, String yq, String ybh, String hdys,String reason){ + return lisWorkOperService.unconfirmlog(jyrq, yq, ybh, hdys,reason); + } + } diff --git a/liswork/src/main/java/com/czlis/liswork/service/LisWorkOperService.java b/liswork/src/main/java/com/czlis/liswork/service/LisWorkOperService.java index aa6bd57..fc93dcb 100644 --- a/liswork/src/main/java/com/czlis/liswork/service/LisWorkOperService.java +++ b/liswork/src/main/java/com/czlis/liswork/service/LisWorkOperService.java @@ -34,6 +34,17 @@ public interface LisWorkOperService { * @return */ Result confirm(Date jyrq, String yq, String ybh, String hdys); + + /** + * 解除审核 + * @param jyrq + * @param yq + * @param ybh + * @param hdys + * @return + */ + Result unconfirm(Date jyrq, String yq, String ybh, String hdys); + Result unconfirmlog(Date jyrq, String yq, String ybh, String hdys,String reason); /** * 计算项目参考值结果异常标志 * diff --git a/liswork/src/main/java/com/czlis/liswork/service/impl/LisWorkOperServiceImpl.java b/liswork/src/main/java/com/czlis/liswork/service/impl/LisWorkOperServiceImpl.java index 140ddc8..5bd0954 100644 --- a/liswork/src/main/java/com/czlis/liswork/service/impl/LisWorkOperServiceImpl.java +++ b/liswork/src/main/java/com/czlis/liswork/service/impl/LisWorkOperServiceImpl.java @@ -213,23 +213,24 @@ public class LisWorkOperServiceImpl implements LisWorkOperService { * @param hdys * @return */ + @Override public Result confirm(Date jyrq, String yq, String ybh, String hdys) { if (hdys == null || "".equals(hdys)) new Result("-1", "审核者为空,无法审核!"); //入参通过GET推送时使用ServletUtils.getParameterToInt获取 //入参通过POSTJSON时使用JsonParamUtils.getParameterToInt获取 int problemId = ServletUtils.getParameterToInt("problemId", 0); - LabPat labPat = commonUtil.getLabPatOne(jyrq, yq, ybh); + LabPat labPat = commonUtil.getLabPatOne(jyrq, yq, ybh); labPat.setHdys(hdys); List labResultList = commonUtil.getLabResultList(jyrq, yq, ybh); - if(problemId<3) { + if (problemId < 3) { //1,审核权限校验 if (!commonUtil.getUserPower(yq, hdys, 20)) return new Result("-1", "当前核对者无权对本仪器报告审核!"); //2:数据合法性校验 Result result0 = beforeconfirm(labPat, labResultList, 2, problemId); if (!"0".equals(result0.getCode())) return result0; } - if(problemId<3) problemId = 3; - if(problemId<4) { + if (problemId < 3) problemId = 3; + if (problemId < 4) { //3:数据完整保存 labResultList = saveallresult(labPat, labResultList); boolean wjz = getAlarmFlag(labResultList); @@ -243,14 +244,14 @@ public class LisWorkOperServiceImpl implements LisWorkOperService { commonUtil.updateLabPat(labPat); } } - if(problemId<4) problemId = 4; - if(problemId<5) { + if (problemId < 4) problemId = 4; + if (problemId < 5) { //医学审核条件判断 Result result = chksample(labPat, labResultList, problemId); if (!"0".equals(result.getCode())) return result; } - if(problemId<5) problemId = 5; - if(problemId<99) { + if (problemId < 5) problemId = 5; + if (problemId < 99) { //高级医学审核条件判断 Result result = chksamplenew(labPat, labResultList, problemId); if ("99".equals(result.getCode())) { @@ -272,20 +273,13 @@ public class LisWorkOperServiceImpl implements LisWorkOperService { /** * 审核前校验数据完整性,审核业务和初审业务都可使用 * - * @param jyrq - * @param yq - * @param ybh + * @param labPat + * @param labResultList + * @param checktype + * @param problemId * @return */ - public Result beforeconfirm(Date jyrq, String yq, String ybh) { - int problemId = ServletUtils.getParameterToInt("problemId", 0); - LabPat labPat = commonUtil.getLabPatOne(jyrq, yq, ybh); - List labResultList = commonUtil.getLabResultList(jyrq, yq, ybh); - return beforeconfirm(labPat, labResultList,2, problemId); - } - - //内部使用 - private Result beforeconfirm(LabPat labPat,List labResultList, Integer checktype, Integer problemId) { + private Result beforeconfirm(LabPat labPat, List labResultList, Integer checktype, Integer problemId) { Date jyrq = labPat.getJyrq(); String yq = labPat.getYq(); String ybh = labPat.getYbh(); @@ -429,11 +423,12 @@ public class LisWorkOperServiceImpl implements LisWorkOperService { /** * 医学审核条件判断 + * * @param labPat * @param problemId * @return */ - private Result chksample(LabPat labPat, List labResultList,Integer problemId) { + private Result chksample(LabPat labPat, List labResultList, Integer problemId) { //医学审核条件判断 if (problemId < 5) { String checkvalue = checkResultUtils.chksample(labPat, labResultList); @@ -443,13 +438,15 @@ public class LisWorkOperServiceImpl implements LisWorkOperService { } return new Result("0", "保存成功!"); } + /** * 高级医学审核条件判断 + * * @param labPat * @param problemId * @return */ - private Result chksamplenew(LabPat labPat, List labResultList,Integer problemId) { + private Result chksamplenew(LabPat labPat, List labResultList, Integer problemId) { //医学审核条件判断 Boolean setbz = false; String bz = labPat.getBz(); @@ -479,21 +476,14 @@ public class LisWorkOperServiceImpl implements LisWorkOperService { } return new Result("0", "保存成功!"); } + /** * 审核后步骤,在审核过程中,必须完成审核前校验通过,结果计算值填充,参考值结果标志危急值标志填写完成,最后使用此方法修改状态 * - * @param jyrq - * @param yq - * @param ybh + * @param labPat + * @param problemId * @return */ - public Result afterconfirm(Date jyrq, String yq, String ybh) { - int problemId = ServletUtils.getParameterToInt("problemId", 0); - LabPat labPat = commonUtil.getLabPatOne(jyrq, yq, ybh); - return afterconfirm(labPat, problemId); - } - - //内部使用 private Result afterconfirm(LabPat labPat, Integer problemId) { Date jyrq = labPat.getJyrq(); String yq = labPat.getYq(); @@ -501,12 +491,12 @@ public class LisWorkOperServiceImpl implements LisWorkOperService { String hdys = labPat.getHdys(); String yqdl = commonUtil.getYqdl(yq); String itemvs = commonUtil.getHISOPT("itemvs"); - Result ret=new Result("0", "保存成功!"); + Result ret = new Result("0", "保存成功!"); if ("1".equals(itemvs)) { if (!"细菌仪".equals(yqdl)) { String nullcount = lisWorkOperMapper.checkresultnosqxmdh(jyrq, yq, ybh); if (!"".equals(nullcount) && nullcount != null) - ret=new Result("3", "警告!"+LisUtil.LINE_SEPARATOR +" 报告项目未对应申请项目,请进(收费项目报告项目对照)菜单维护对照:"+LisUtil.LINE_SEPARATOR + nullcount); + ret = new Result("3", "警告!" + LisUtil.LINE_SEPARATOR + " 报告项目未对应申请项目,请进(收费项目报告项目对照)菜单维护对照:" + LisUtil.LINE_SEPARATOR + nullcount); } } @@ -683,11 +673,11 @@ public class LisWorkOperServiceImpl implements LisWorkOperService { LabPat labPat = commonUtil.getLabPatOne(jyrq, yq, ybh); String finish = labPat.getFinish(); if (!"细菌仪".equals(yqdl) && finish != null && finsh == 1) labPat.setFinish("1"); - labResultList = saveallresult(labPat,labResultList); - boolean wjz=getAlarmFlag(labResultList); + labResultList = saveallresult(labPat, labResultList); + boolean wjz = getAlarmFlag(labResultList); //同步主表危急值标识 String alarmflag = labPat.getAlarmflag(); - if (("1".equals(alarmflag) && !wjz )) { + if (("1".equals(alarmflag) && !wjz)) { labPat.setAlarmflag("1"); commonUtil.updateLabPat(labPat); } else if (("".equals(alarmflag) || alarmflag == null) && wjz) { @@ -698,7 +688,7 @@ public class LisWorkOperServiceImpl implements LisWorkOperService { } //内部使用 - private List saveallresult(LabPat labPat,List labResultList) { + private List saveallresult(LabPat labPat, List labResultList) { Date jyrq = labPat.getJyrq(); String yq = labPat.getYq(); String ybh = labPat.getYbh(); @@ -708,7 +698,7 @@ public class LisWorkOperServiceImpl implements LisWorkOperService { commonUtil.delNullLabResult(jyrq, yq, ybh); } //计算项目更新 - labResultList=calcsample(labPat,labResultList); + labResultList = calcsample(labPat, labResultList); //补写结果表申请单项目编号 String sqh = labPat.getSqh(); if (sqh != null && !"".equals(sqh)) setItemSqxmdh(jyrq, yq, ybh, sqh); @@ -757,23 +747,24 @@ public class LisWorkOperServiceImpl implements LisWorkOperService { public Result calcsample(Date jyrq, String yq, String ybh) { LabPat labPat = commonUtil.getLabPatOne(jyrq, yq, ybh); List labResultList = commonUtil.getLabResultList(jyrq, yq, ybh); - calcsample(labPat,labResultList); + calcsample(labPat, labResultList); return new Result("0", "保存成功!"); } - private List calcsample(LabPat labPat,List labResultList) { + + private List calcsample(LabPat labPat, List labResultList) { Date jyrq = labPat.getJyrq(); String yq = labPat.getYq(); String ybh = labPat.getYbh(); String jsxmold = ""; - List xmCalcList =commonUtil.getXmCalcList(yq); + List xmCalcList = commonUtil.getXmCalcList(yq); for (XmCalc xmCalc : xmCalcList) { String jsxm = xmCalc.getJsxm(); if (!jsxmold.equals(jsxm)) { jsxmold = jsxm; String jsgs = xmCalc.getJsgs(); - String xmdh= xmCalc.getXmdh(); + String xmdh = xmCalc.getXmdh(); boolean setjgsg = true; - boolean lb_jsx= false; + boolean lb_jsx = false; Map variables = new HashMap<>(); String[] parameters = CalcUtils.getParameters(jsgs); for (int i = 0; i < parameters.length; i++) { @@ -783,11 +774,11 @@ public class LisWorkOperServiceImpl implements LisWorkOperService { if ("男".equals(sex)) sex = "1"; if ("女".equals(sex)) sex = "2"; variables.put("SEX", sex); - lb_jsx=true; + lb_jsx = true; } else if ("AGE".equals(itemcode)) { double age = AgeUtils.getDecimalAge(AgeUtils.getBirthDateByAge(labPat.getNl(), labPat.getNldw())); variables.put("AGE", String.valueOf(age)); - lb_jsx=true; + lb_jsx = true; } else { List collect = labResultList.stream().filter(result -> result.getXmdh().equals(itemcode)).collect(Collectors.toList()); if (collect.size() > 0) { @@ -800,27 +791,27 @@ public class LisWorkOperServiceImpl implements LisWorkOperService { } if (setjgsg) { String result = CalcUtils.getValueFromCalc(jsgs, variables); - if("0".equals(result) && lb_jsx)result=null; + if ("0".equals(result) && lb_jsx) result = null; if (result != null && !result.trim().isEmpty()) { //插入结果值 - Optional collect0 = labResultList.stream().filter(labR -> labR.getXmdh().equals(jsxm)).findFirst(); + Optional collect0 = labResultList.stream().filter(labR -> labR.getXmdh().equals(jsxm)).findFirst(); if (collect0.isPresent()) { - LabResult labResult =collect0.get(); - if(LisUtil.isNumber(result)) { - Integer xsws =labResult.getXsws(); + LabResult labResult = collect0.get(); + if (LisUtil.isNumber(result)) { + Integer xsws = labResult.getXsws(); if (xsws >= 0) result = LisUtil.round(result, xsws); } - // log.info("result:{},getCsjg:{}",result,labResult.getCsjg()); - if(!result.equals(labResult.getCsjg())) { + // log.info("result:{},getCsjg:{}",result,labResult.getCsjg()); + if (!result.equals(labResult.getCsjg())) { labResult.setCsjg(result); String finalResult = result; collect0.ifPresent(labR -> labR.setCsjg(finalResult)); commonUtil.updateLabResult(labResult); } - }else{ - XmInfo xmInfo=commonUtil.getXmInfo(yq,xmdh); - if(LisUtil.isNumber(result)) { - Integer xsws =xmInfo.getXsws(); + } else { + XmInfo xmInfo = commonUtil.getXmInfo(yq, xmdh); + if (LisUtil.isNumber(result)) { + Integer xsws = xmInfo.getXsws(); if (xsws >= 0) result = LisUtil.round(result, xsws); } LabResult labResult = new LabResult(); @@ -843,6 +834,7 @@ public class LisWorkOperServiceImpl implements LisWorkOperService { } return labResultList; } + /** * 计算项目参考值结果异常标志 * @@ -854,10 +846,10 @@ public class LisWorkOperServiceImpl implements LisWorkOperService { public Result saverefs(Date jyrq, String yq, String ybh) { LabPat labPat = commonUtil.getLabPatOne(jyrq, yq, ybh); List labResultList = saverefs(labPat); - boolean wjz=getAlarmFlag(labResultList); + boolean wjz = getAlarmFlag(labResultList); //同步主表危急值标识 String alarmflag = labPat.getAlarmflag(); - if (("1".equals(alarmflag) && !wjz )) { + if (("1".equals(alarmflag) && !wjz)) { labPat.setAlarmflag("1"); commonUtil.updateLabPat(labPat); } else if (("".equals(alarmflag) || alarmflag == null) && wjz) { @@ -879,7 +871,7 @@ public class LisWorkOperServiceImpl implements LisWorkOperService { String yq = labPat.getYq(); String ybh = labPat.getYbh(); String yqdl = commonUtil.getYqdl(yq); - boolean lb_setbj = true, lb_wjz = false,nowjz=false; + boolean lb_setbj = true, lb_wjz = false, nowjz = false; //危急值标识去除原则 nowjz = true 不能算做危急值 String brxm = labPat.getBrxm(); if (brxm != null) { @@ -908,10 +900,12 @@ public class LisWorkOperServiceImpl implements LisWorkOperService { log.info("调用存储过程{}返回值:{},{}", "sp_setrefs", retCode, retMsg); if (retCode == null || "".equals(retCode) || "-1".equals(retCode)) lb_setbj = false; labResultList = commonUtil.getLabResultList(jyrq, yq, ybh); - log.info("labResultList.size:{}",labResultList.size()); - List xmInfoList= commonUtil.getXmInfoList(yq); - List xmAlarmdetailList=null; - if(!nowjz){xmAlarmdetailList =commonUtil.getXmAlarmdetailList(yq);} + log.info("labResultList.size:{}", labResultList.size()); + List xmInfoList = commonUtil.getXmInfoList(yq); + List xmAlarmdetailList = null; + if (!nowjz) { + xmAlarmdetailList = commonUtil.getXmAlarmdetailList(yq); + } for (LabResult labResult : labResultList) { String csjg = labResult.getCsjg(); boolean lb_nummode = LisUtil.isTureNumber(csjg); @@ -919,15 +913,15 @@ public class LisWorkOperServiceImpl implements LisWorkOperService { String ygzd = labResult.getYgzd(); //当结果为数值并且与周期诊断无关,计算存储过程保存成功后,只进行危急值判断 if (lb_nummode && lb_setbj && !"Y".equals(ygzd) && !"Y".equals(ygzq)) { - if(nowjz){ + if (nowjz) { String resultalarmflag1 = labResult.getAlarmFlag(); - if (!"".equals(resultalarmflag1) && resultalarmflag1 != null){ + if (!"".equals(resultalarmflag1) && resultalarmflag1 != null) { labResult.setAlarmFlag(""); commonUtil.updateLabResult(labResult); } - }else { - String xmdh=labResult.getXmdh(); - List getXmAlarmdetail = xmAlarmdetailList.stream().filter(detail-> detail.getXmdh().equals(xmdh)).collect(Collectors.toList()); + } else { + String xmdh = labResult.getXmdh(); + List getXmAlarmdetail = xmAlarmdetailList.stream().filter(detail -> detail.getXmdh().equals(xmdh)).collect(Collectors.toList()); int wjz = alarmcondition(labPat, labResult, getXmAlarmdetail); if (wjz != -1) {//危急值标识特殊判断存在时优先使用特殊结果 String resultalarmflag = labResult.getAlarmFlag(); @@ -945,12 +939,12 @@ public class LisWorkOperServiceImpl implements LisWorkOperService { if (!"".equals(resultalarmflag1) && resultalarmflag1 != null) lb_wjz = true; } } else { - String xmdh=labResult.getXmdh(); - List xmInfo0=xmInfoList.stream().filter(xm->xm.getXmdh().equals(xmdh)).collect(Collectors.toList()); - if(xmInfo0.size()>0){ - XmInfo xmInfo=xmInfo0.get(0); - List getXmAlarmdetail = xmAlarmdetailList.stream().filter(detail-> detail.getXmdh().equals(xmdh)).collect(Collectors.toList()); - LabResult labResult0 = setxmdhrefs(labPat, labResult,xmInfo,getXmAlarmdetail,nowjz); + String xmdh = labResult.getXmdh(); + List xmInfo0 = xmInfoList.stream().filter(xm -> xm.getXmdh().equals(xmdh)).collect(Collectors.toList()); + if (xmInfo0.size() > 0) { + XmInfo xmInfo = xmInfo0.get(0); + List getXmAlarmdetail = xmAlarmdetailList.stream().filter(detail -> detail.getXmdh().equals(xmdh)).collect(Collectors.toList()); + LabResult labResult0 = setxmdhrefs(labPat, labResult, xmInfo, getXmAlarmdetail, nowjz); labResult.setCsjg(csjg); labResult.setDw(labResult0.getDw()); labResult.setRefs(labResult0.getRefs()); @@ -972,7 +966,7 @@ public class LisWorkOperServiceImpl implements LisWorkOperService { * @param labResult * @return */ - private LabResult setxmdhrefs(LabPat labPat, LabResult labResult,XmInfo xmInfo,List getXmAlarmdetail,boolean nowjz) { + private LabResult setxmdhrefs(LabPat labPat, LabResult labResult, XmInfo xmInfo, List getXmAlarmdetail, boolean nowjz) { String yq = labPat.getYq(); String resultflag = "M", wjzflag = ""; String xmdh = labResult.getXmdh(); @@ -1045,7 +1039,7 @@ public class LisWorkOperServiceImpl implements LisWorkOperService { Double csjgnum = Double.valueOf(csjgnew); if (ckxx != null) if (csjgnum < ckxx) resultflag = "L"; if (cksx != null) if (csjgnum > cksx) resultflag = "H"; - if(!nowjz) { + if (!nowjz) { int wjzf = alarmcondition(labPat, labResult, getXmAlarmdetail); if (wjzf == -1) { if (llimit != null) if (csjgnum < llimit) wjzflag = "L"; @@ -1061,7 +1055,7 @@ public class LisWorkOperServiceImpl implements LisWorkOperService { if ("P".equals(jgbzold) && (csjg.indexOf("阳") >= 0 || csjg.indexOf("+") >= 0 || csjg.indexOf(":") >= 0) && (lmtflag == null || lmtflag.trim().isEmpty())) lmtflag = "P"; resultflag = lmtflag; - if(!nowjz) { + if (!nowjz) { if ("J".equals(lmtflag)) wjzflag = "H"; int wjzf = alarmcondition(labPat, labResult, getXmAlarmdetail); if (wjzf == 1) wjzflag = "H";//满足特定危机值条件 @@ -1090,7 +1084,7 @@ public class LisWorkOperServiceImpl implements LisWorkOperService { * @param labResult * @return */ - private int alarmcondition(LabPat labPat, LabResult labResult,List getXmAlarmdetail) { + private int alarmcondition(LabPat labPat, LabResult labResult, List getXmAlarmdetail) { if (getXmAlarmdetail == null) return -1; boolean lb_fcb = false, lb_hasval = false; String csjg = labResult.getCsjg(); @@ -1268,15 +1262,146 @@ public class LisWorkOperServiceImpl implements LisWorkOperService { /** * 查询明细是否有危急值标识 + * * @param labResultList * @return */ - private boolean getAlarmFlag(List labResultList){ - boolean wjz=false; - List labResultList0=labResultList.stream().filter(xm->!"".equals(xm.getAlarmFlag())&&xm.getAlarmFlag()!=null).collect(Collectors.toList()); - if(labResultList0.size()>0){ - wjz=true; + private boolean getAlarmFlag(List labResultList) { + boolean wjz = false; + List labResultList0 = labResultList.stream().filter(xm -> !"".equals(xm.getAlarmFlag()) && xm.getAlarmFlag() != null).collect(Collectors.toList()); + if (labResultList0.size() > 0) { + wjz = true; } return wjz; } + + /** + * 解除审核原因登记 + * + * @param jyrq + * @param yq + * @param ybh + * @param hdys + * @return + */ + @Override + public Result unconfirmlog(Date jyrq, String yq, String ybh, String hdys, String reason) { + if ("".equals(reason)) { + return new Result("-1", "没写原因,解除失败!"); + } + LisPatlog lisPatlog = new LisPatlog(); + lisPatlog.setYq(yq); + lisPatlog.setYbh(ybh); + lisPatlog.setXgyhdh(hdys); + lisPatlog.setJyrq(jyrq); + lisPatlog.setXgrq(new Date()); + lisPatlog.setBz1(reason); + commonUtil.insertLisPatlog(lisPatlog); + return new Result("0", "写召回原因成功!"); + } + + /** + * 撤销审核报告单全流程 + * + * @param jyrq + * @param yq + * @param ybh + * @param yhdh + * @return + */ + @Override + public Result unconfirm(Date jyrq, String yq, String ybh, String yhdh) { + if (yhdh == null || "".equals(yhdh)) new Result("-1", "操作者为空,无法解除审核!"); + //入参通过GET推送时使用ServletUtils.getParameterToInt获取 + //入参通过POSTJSON时使用JsonParamUtils.getParameterToInt获取 + int problemId = ServletUtils.getParameterToInt("problemId", 0); + LabPat labPat = commonUtil.getLabPatOne(jyrq, yq, ybh); + List labResultList = commonUtil.getLabResultList(jyrq, yq, ybh); + if (problemId < 3) { + //1,解除审核权限校验 + if (!commonUtil.getUserPower(yq, yhdh, 10)) return new Result("-1", "当前操作者无权对本仪器报告解除审核!"); + //2:数据合法性校验 + String jgbz = labPat.getJgbz(); + if (!"2".equals(jgbz)) return new Result("1", "报告未审核,不需解除!"); + } + if (problemId < 3) problemId = 3; + if (problemId < 4) { + String unconfirmlog = commonUtil.getComOptValue(yq, "unconfirmlog"); + if ("1".equals(unconfirmlog)) { + return new Result("4", "请填写解除审核原因!", 4); + } + } + if (problemId < 4) problemId = 4; + //调用his报告接口,完成报告同时调用外部接口任务 + if (problemId < 5) { + SetReport setReport = new SetReport(); + setReport.setIp(IpUtils.getIpAddr()); + setReport.setJyrq(DateFormatUtils.format(jyrq, "yyyy-MM-dd")); + setReport.setYq(yq.trim()); + setReport.setYbh(ybh); + setReport.setUserid(yhdh); + setReport.setStatus(LisinterfaceNameConstants.REPORTCANCAL); + Result result = lisInterfaceUtil.invokeLisInterface(LisinterfaceNameConstants.SETREPORT, setReport); + if (result.getCode().equals("5")) { + if (problemId < 5) { + return new Result(result.getCode(), result.getMsg(), 5); + } + } + if (!result.getCode().equals("0")) return result; + } + if (problemId < 5) problemId = 5; + String sqh = labPat.getSqh(); + LabReqmain labReqmain = commonUtil.getLabReqmainOne(sqh); + if (labReqmain != null) { + String zt = labReqmain.getZt(); + if (!SampleStatusConstants.CANCAL.equals(zt)) { + labReqmain.setConfirmer(""); + labReqmain.setConfirmtime(null); + if (SampleStatusConstants.CONFIRM.equals(zt)) { + labReqmain.setZt(SampleStatusConstants.SIGNFOR); + labReqmain.setConfirmer(""); + labReqmain.setConfirmtime(null); + commonUtil.updateLabReqmain(labReqmain); + } + } + } + String msg = "取消成功!"; + String sp_rebackreport = commonUtil.getHISOPT("sp_rebackreport"); + if ("1".equals(sp_rebackreport)) { + if ("1".equals(labPat.getDybz())) { + msg = msg + LisUtil.LINE_SEPARATOR + "此报告为已打印报告,注意考虑是否追回"; + } + LabPatwarning labPatwarning = commonUtil.getLabPatwarning(jyrq, yq, ybh); + if (labPatwarning != null) { + if (problemId < 6) { + Date tzsj = labPatwarning.getTzsj(); + long sjc = LisUtil.relativeMinute(tzsj); + if (sjc > 10) { + return new Result("4", "此报告已发布危急值结果,并且时间超过10分钟了!", 6); + } + } + //权限不足,撤回报告失败组长权限单独接口校验,略................. + + commonUtil.deleteLabPatwarning(jyrq, yq, ybh); + commonUtil.deleteLabResultwarning(jyrq, yq, ybh); + } + } + commonUtil.deleteLabReqreportPdffile(jyrq, yq, ybh); + labPat.setFslx(""); + labPat.setJgbz(ReportStatusConstants.DEFAULT); + commonUtil.updateLabPat(labPat); + setComLog(jyrq, yq, ybh,yhdh,"UCK",""); + return new Result("3", msg); + } + public void setComLog(Date jyrq, String yq, String ybh, String yhdh,String logtype,String logdata){ + ComLog comLog = new ComLog(); + comLog.setJyrq(jyrq); + comLog.setYq(yq); + comLog.setYbh(ybh); + comLog.setYhdh(yhdh); + comLog.setDnmc(IpUtils.getIpAddr()); + comLog.setRzbz(logtype); + comLog.setRznr(logdata); + commonUtil.insertComLog(comLog); + } }