Sfoglia il codice sorgente

Merge remote-tracking branch 'origin/20210512_yw_check' into 20210512_yw_check

zhanghang 4 anni fa
parent
commit
5972bd031b

+ 29 - 1
src/main/java/com/diagbot/facade/BehospitalInfoFacade.java

@@ -273,6 +273,7 @@ public class BehospitalInfoFacade extends BehospitalInfoServiceImpl {
             medCheckInfoQuerys.eq("behospital_code", getDetailVO.getBehospitalCode());
             medCheckInfoQuerys.eq("hospital_id", hospitalId);
             medCheckInfoQuerys.in("check_type", 0, 2);
+            medCheckInfoQuerys.eq("status", 1);
             int count = medCheckInfoFacade.count(medCheckInfoQuerys);
             if (count > 0) {
                 res.put("checkStatus", 1);
@@ -293,6 +294,23 @@ public class BehospitalInfoFacade extends BehospitalInfoServiceImpl {
             } else {
                 res.put("mrStatus", 0);
             }
+            //新增如果当前用户不是核查人员返回标志位用户核查按钮隐藏显示
+            //获取病历核查人员id,该操作只能是核查员操作
+            Long checkId = medCheckInfoFacade.getOne(new QueryWrapper<MedCheckInfo>()
+                    .eq("is_deleted", IsDeleteEnum.N.getKey())
+                    .eq("hospital_id", hospitalId)
+                    .eq("behospital_code", getDetailVO.getBehospitalCode())).getCheckId();
+            if(checkId==null)
+            {
+                throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "病历没有分配核查人员");
+            }
+            if(checkId.equals(Long.valueOf(SysUserUtils.getCurrentPrincipleID())))
+            {
+                res.put("checkShow", 1);
+            }
+            else {
+                res.put("checkShow", 0);
+            }
         }
 
         // 获取提示信息
@@ -1004,6 +1022,7 @@ public class BehospitalInfoFacade extends BehospitalInfoServiceImpl {
      * @return
      */
     public AnalyzeDTO analyze(AnalyzeVO analyzeVO) {
+
         Long hospitalId = analyzeVO.getHospitalId();
         if (!analyzeVO.getIsTask()) {
             hospitalId = Long.parseLong(SysUserUtils.getCurrentHospitalID());
@@ -1012,8 +1031,17 @@ public class BehospitalInfoFacade extends BehospitalInfoServiceImpl {
         analyzeVO.setHospitalId(hospitalId);
 
         // 处理公共数据
-            QueryVo  queryVo = dealCommonData(hospitalId, analyzeVO);
+        QueryVo  queryVo = dealCommonData(hospitalId, analyzeVO);
         queryVo.setUseCrfCache(analyzeVO.isUseCrfCache());
+        //已核查抛出以评分
+        int status = medCheckInfoFacade.getOne(new QueryWrapper<MedCheckInfo>()
+                .eq("is_deleted", IsDeleteEnum.N.getKey())
+                .eq("hospital_id", analyzeVO.getHospitalId())
+                .eq("behospital_code", analyzeVO.getBehospitalCode())).getStatus();
+        if(1==status&&analyzeVO.getCheckFlag())
+        {
+            throw new CommonException(CommonErrorCode.SERVER_IS_ERROR,"该病例已经核查无需评分!");
+        }
         //  调用质控接口
         Response<OutputInfo> response = qcServiceClient.extract(queryVo);
         if (response == null || response.getData() == null) {

+ 5 - 2
src/main/java/com/diagbot/facade/MedCheckInfoFacade.java

@@ -233,6 +233,10 @@ public class MedCheckInfoFacade extends MedCheckInfoServiceImpl {
                         checkJobVO.setDeptList(deptIds);
                         return getCheckList(checkJobVO);
                     }
+                    else
+                    {
+                        return  new CheckJobPageVO();
+                    }
                 }
                 //院区获取
                 if(CheckJobTypeEnum.HOSP_SUPERVISOR.getKey()==Integer.parseInt(checkJobVO.getJobType())){
@@ -258,13 +262,12 @@ public class MedCheckInfoFacade extends MedCheckInfoServiceImpl {
                     return getCheckList(checkJobVO);
                 }
             }
-
+            return getCheckList(checkJobVO);
         }
         else
         {
             throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "该用户的角色和任务类型不对应!");
         }
-        return  new CheckJobPageVO();
     }
     /**
      * @Author songxl

+ 85 - 9
src/main/java/com/diagbot/facade/QcresultInfoFacade.java

@@ -6,6 +6,7 @@ import com.diagbot.dto.AlgorithmDTO;
 import com.diagbot.dto.AnalyzeDTO;
 import com.diagbot.dto.QcResultDTO;
 import com.diagbot.entity.BehospitalInfo;
+import com.diagbot.entity.MedCheckInfo;
 import com.diagbot.entity.MedQcresultCases;
 import com.diagbot.entity.QcresultDetail;
 import com.diagbot.entity.QcresultInfo;
@@ -49,6 +50,8 @@ public class QcresultInfoFacade extends QcresultInfoServiceImpl {
     @Autowired
     private BehospitalInfoFacade behospitalInfoFacade;
     @Autowired
+    private MedCheckInfoFacade medCheckInfoFacade;
+    @Autowired
     @Qualifier("medQcresultCasesServiceImpl")
     private MedQcresultCasesServiceImpl medQcresultCasesService;
 
@@ -112,6 +115,7 @@ public class QcresultInfoFacade extends QcresultInfoServiceImpl {
         AnalyzeVO analyzeVO = new AnalyzeVO();
         analyzeVO.setHospitalId(hospitalId);
         analyzeVO.setBehospitalCode(qcresultVO.getBehospitalCode());
+        analyzeVO.setDelStatus(qcresultVO.getDelStatus());
         Date date = this.saveQcResult(algorithmDTO, algorithmVO, analyzeVO, null, null, false, qcresultInfo);
         //返回参数组装
         AnalyzeDTO analyzeDTO = new AnalyzeDTO();
@@ -254,17 +258,89 @@ public class QcresultInfoFacade extends QcresultInfoServiceImpl {
                 );
                 break;
             case 4:
-                //逻辑删除质控明细
-                qcresultDetailServiceImpl.update(new UpdateWrapper<QcresultDetail>()
-                        .eq("id", algorithmVO.getOptResultAlgVO().getId())
+                //获取病历核查人员id,该操作只能是核查员操作
+                Long checkId = medCheckInfoFacade.getOne(new QueryWrapper<MedCheckInfo>()
                         .eq("is_deleted", IsDeleteEnum.N.getKey())
                         .eq("hospital_id", analyzeVO.getHospitalId())
-                        .eq("behospital_code", analyzeVO.getBehospitalCode())
-                        .set("is_deleted", IsDeleteEnum.Y.getKey())
-                        .set("opt_type", 2)
-                        .set("modifier", useId)
-                        .set("gmt_modified", now)
-                );
+                        .eq("behospital_code", analyzeVO.getBehospitalCode())).getCheckId();
+                if(checkId==null)
+                {
+                    throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "病历没有分配核查人员");
+                }
+                if(!checkId.equals(useId))
+                {
+                    throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "当前用户不是分配的核查人员");
+                }
+                //逻辑删除质控明细 0删除
+                if(analyzeVO.getDelStatus()==0)
+                {
+                    //在remark字段插入机器评分 ,手动评分用来恢复用
+                    //该条目是机器插入条目
+                    qcresultDetailServiceImpl.update(new UpdateWrapper<QcresultDetail>()
+                            .eq("id", algorithmVO.getOptResultAlgVO().getId())
+                            .eq("is_deleted", IsDeleteEnum.N.getKey())
+                            .eq("hospital_id", analyzeVO.getHospitalId())
+                            .eq("behospital_code", analyzeVO.getBehospitalCode())
+                            .eq("grade_type",1)
+                            .set("is_deleted", IsDeleteEnum.Y.getKey())
+                            .set("grade_type",2)
+                            .set("opt_type", 2)
+                            .set("modifier", useId)
+                            .set("remark","机器评分")
+                            .set("gmt_modified", now)
+                    );
+                    //该条目是手动插入条目时
+                    qcresultDetailServiceImpl.update(new UpdateWrapper<QcresultDetail>()
+                            .eq("id", algorithmVO.getOptResultAlgVO().getId())
+                            .eq("is_deleted", IsDeleteEnum.N.getKey())
+                            .eq("hospital_id", analyzeVO.getHospitalId())
+                            .eq("behospital_code", analyzeVO.getBehospitalCode())
+                            .eq("grade_type",2)
+                            .set("is_deleted", IsDeleteEnum.Y.getKey())
+                            .set("opt_type", 2)
+                            .set("modifier", useId)
+                            .set("remark","手动评分")
+                            .set("gmt_modified", now)
+                    );
+                }
+                //1恢复
+                else if(analyzeVO.getDelStatus()==1)
+                {
+                    String creater = qcresultDetailServiceImpl.getOne(new QueryWrapper<QcresultDetail>()
+                            .eq("id", algorithmVO.getOptResultAlgVO().getId())).getCreator();
+                    //该条目是机器插入条目
+                    qcresultDetailServiceImpl.update(new UpdateWrapper<QcresultDetail>()
+                            .eq("id", algorithmVO.getOptResultAlgVO().getId())
+                            .eq("is_deleted", IsDeleteEnum.Y.getKey())
+                            .eq("hospital_id", analyzeVO.getHospitalId())
+                            .eq("behospital_code", analyzeVO.getBehospitalCode())
+                            .eq("remark","机器评分")
+                            .set("is_deleted", IsDeleteEnum.N.getKey())
+                            .set("grade_type",1)
+                            .set("opt_type", 1)
+                            .set("modifier", creater)
+                            .set("remark", null)
+                            .set("gmt_modified", now)
+                    );
+                    //该条目是手动插入条目时
+                    qcresultDetailServiceImpl.update(new UpdateWrapper<QcresultDetail>()
+                            .eq("id", algorithmVO.getOptResultAlgVO().getId())
+                            .eq("is_deleted", IsDeleteEnum.Y.getKey())
+                            .eq("hospital_id", analyzeVO.getHospitalId())
+                            .eq("behospital_code", analyzeVO.getBehospitalCode())
+                            .eq("remark","手动评分")
+                            .set("is_deleted", IsDeleteEnum.N.getKey())
+                            .set("opt_type", 1)
+                            .set("modifier", useId)
+                            .set("remark", null)
+                            .set("gmt_modified", now)
+                    );
+                }
+                else {
+                    throw new CommonException(CommonErrorCode.PARAM_IS_ERROR, "delStatus参数错误");
+                }
+
+
                 break;
             default:
                 /* DO NOTHING */

+ 6 - 0
src/main/java/com/diagbot/vo/AnalyzeVO.java

@@ -24,4 +24,10 @@ public class AnalyzeVO {
     //是否有病案首页(0:无,1:有)
     @ApiModelProperty(hidden = true)
     private Integer haveHomePage;
+    //逻辑删除接口(1-恢复和0-删除)标志
+    @ApiModelProperty(hidden = true)
+    private Integer delStatus;
+    //已核查不能再次评分校验
+    @ApiModelProperty(hidden = true)
+    private Boolean checkFlag = false;
 }

+ 2 - 0
src/main/java/com/diagbot/vo/QcresultVO.java

@@ -20,6 +20,8 @@ public class QcresultVO {
     //操作类型(0:基础评分,1:新增条目评分,2:删除条目,3:修改条目)
     @ApiModelProperty(hidden = true)
     private Integer type;
+    @ApiModelProperty("逻辑删除接口(1-恢复和0-删除)标志")
+    private Integer delStatus;
     //操作条目
     private QcResultAlgVO optResultAlgVO;
 }

+ 1 - 0
src/main/java/com/diagbot/web/BehospitalInfoController.java

@@ -86,6 +86,7 @@ public class BehospitalInfoController {
     @Transactional
     public RespDTO<AnalyzeDTO> analyze(@RequestBody AnalyzeVO analyzeVO) {
         analyzeVO.setUseCrfCache(true);
+        analyzeVO.setCheckFlag(true);
         return RespDTO.onSuc(behospitalInfoFacade.analyze(analyzeVO));
     }
 

+ 1 - 1
src/main/resources/mapper/MedCheckInfoMapper.xml

@@ -357,7 +357,7 @@
         from med_check_info a join med_behospital_info b on a.hospital_id=b.hospital_id and
         a.behospital_code=b.behospital_code
         join med_qcresult_info c on b.hospital_id=c.hospital_id and b.behospital_code=c.behospital_code and
-        b.is_deleted='N'
+        b.is_deleted='N' and c.is_deleted = 'N'
         where a.hospital_id=#{hospitalId} and a.is_deleted='N'
         and b.hospital_id=#{hospitalId} and b.is_deleted='N'
         and c.hospital_id=#{hospitalId}