Browse Source

首次质控缺陷条目和评分功能新增

wanghn 5 months ago
parent
commit
a83c15bb6d

+ 3 - 3
src/main/java/com/diagbot/config/ResourceServerConfigurer.java

@@ -1,7 +1,6 @@
 package com.diagbot.config;
 
-import java.io.IOException;
-
+import com.diagbot.util.RedisUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -18,7 +17,7 @@ import org.springframework.security.oauth2.config.annotation.web.configurers.Res
 import org.springframework.security.oauth2.provider.token.store.JwtAccessTokenConverter;
 import org.springframework.util.FileCopyUtils;
 
-import com.diagbot.util.RedisUtils;
+import java.io.IOException;
 
 /**
  * @Description: 权限资源配置类
@@ -81,6 +80,7 @@ public class ResourceServerConfigurer extends ResourceServerConfigurerAdapter {
                 .antMatchers("/qc/behospitalInfo/page_person").permitAll()
                 .antMatchers("/qc/behospitalInfo/page_group").permitAll()
                 .antMatchers("/qc/casesEntryHospital/findQcCasesEntry").permitAll()
+                .antMatchers("/qc/casesEntryHospital/getQcFirstAnalyze").permitAll()
                 .antMatchers("/qc/dataimport/import").permitAll()
                 .antMatchers("/qc/dataimport/test").permitAll()
                 .antMatchers("/qc/behospitalInfo/exportExcel").permitAll()

+ 1 - 0
src/main/java/com/diagbot/config/security/UrlAccessDecisionManager.java

@@ -156,6 +156,7 @@ public class UrlAccessDecisionManager implements AccessDecisionManager {
                 || matchers("/qc/behospitalInfo/page_person", request)
                 || matchers("/qc/behospitalInfo/page_group", request)
                 || matchers("/qc/casesEntryHospital/findQcCasesEntry", request)
+                || matchers("/qc/casesEntryHospital/getQcFirstAnalyze", request)
                 || matchers("/qc/behospitalInfo/exportExcel", request)
                 || matchers("/qc/dataimport/import", request)
                 || matchers("/qc/dataimport/test", request)

+ 29 - 0
src/main/java/com/diagbot/dto/QcFirstAnalyzeDTO.java

@@ -0,0 +1,29 @@
+package com.diagbot.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+/**
+ * @author wangfeng
+ * @Description:
+ * @date 2020-04-13 19:32
+ */
+@Setter
+@Getter
+public class QcFirstAnalyzeDTO {
+    /**
+     * 第一次质控评分等级
+     */
+    private String level;
+    /**
+     * 第一次质控分数
+     */
+    private BigDecimal scoreRes;
+    /**
+     * 第一次质控缺陷条目
+     */
+    private List<String> msg;
+}

+ 42 - 2
src/main/java/com/diagbot/facade/QcresultInfoFacade.java

@@ -14,13 +14,14 @@ import com.diagbot.service.impl.QcresultDetailServiceImpl;
 import com.diagbot.service.impl.QcresultInfoServiceImpl;
 import com.diagbot.util.*;
 import com.diagbot.vo.*;
-import net.sf.jsqlparser.expression.LongValue;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.stereotype.Component;
 
 import java.math.BigDecimal;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
 
 /**
  * @Description:
@@ -46,6 +47,8 @@ public class QcresultInfoFacade extends QcresultInfoServiceImpl {
     @Autowired
     private MedCheckInfoFacade medCheckInfoFacade;
     @Autowired
+    private QcresultDetailFacade qcresultDetailFacade;
+    @Autowired
     @Qualifier("medQcresultCasesServiceImpl")
     private MedQcresultCasesServiceImpl medQcresultCasesService;
 
@@ -617,6 +620,43 @@ public class QcresultInfoFacade extends QcresultInfoServiceImpl {
         }
         return res;
     }
+
+    /**
+     * 获取病历第一次评分和质控缺陷
+     * @param qcFirstAnalyzeVO
+     * @return
+     */
+    public QcFirstAnalyzeDTO getQcFirstAnalyze(QcFirstAnalyzeVO qcFirstAnalyzeVO) {
+
+        //1.根据医院id和病历号查询qcresultInfo表
+        QcresultInfo qcresultInfo = this.lambdaQuery()
+                .eq(QcresultInfo::getHospitalId, qcFirstAnalyzeVO.getHospitalId())
+                .like(QcresultInfo::getBehospitalCode, qcFirstAnalyzeVO.getBehospitalCode())
+                .orderByAsc(QcresultInfo::getGmtCreate)
+                .last("LIMIT 1")
+                .one();
+        //2.判断病历等级是否为甲级
+        if(qcresultInfo == null || qcresultInfo.getLevel().equals("甲")){
+            return new QcFirstAnalyzeDTO();
+        }
+        QcFirstAnalyzeDTO dto = new QcFirstAnalyzeDTO();
+        dto.setLevel(qcresultInfo.getLevel());
+        dto.setScoreRes(qcresultInfo.getScoreRes());
+        //3.查询第一次质控缺陷条目
+        List<QcresultDetail> list = qcresultDetailFacade.lambdaQuery()
+                .eq(QcresultDetail::getBehospitalCode, qcresultInfo.getBehospitalCode())
+                .eq(QcresultDetail::getGmtCreate, qcresultInfo.getGmtCreate())
+                .list();
+        List<String> msgs = new ArrayList<>();
+        for (QcresultDetail qcresultDetail : list) {
+            String msg = qcresultDetail.getMsg();
+            msgs.add(msg);
+        }
+        dto.setMsg(msgs);
+
+        return dto;
+
+    }
 }
 
 

+ 23 - 0
src/main/java/com/diagbot/vo/QcFirstAnalyzeVO.java

@@ -0,0 +1,23 @@
+package com.diagbot.vo;
+
+import com.diagbot.util.SysUserUtils;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @author wangfeng
+ * @Description:
+ * @date 2020-04-14 16:08
+ */
+@Setter
+@Getter
+public class QcFirstAnalyzeVO {
+    @ApiModelProperty(hidden = true)
+    private Long hospitalId = Long.valueOf(SysUserUtils.getCurrentHospitalID());
+    @NotNull(message = "请输入病人住院ID")
+    private String behospitalCode;//病人住院ID
+    private String isPlacefile = "1";
+}

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

@@ -3,7 +3,6 @@ package com.diagbot.web;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.diagbot.annotation.SysLogger;
 import com.diagbot.dto.*;
-import com.diagbot.entity.QcCasesRelevanceEntry;
 import com.diagbot.facade.BehospitalInfoFacade;
 import com.diagbot.facade.QcresultInfoFacade;
 import com.diagbot.vo.*;
@@ -61,7 +60,7 @@ public class BehospitalInfoController {
     }
 
     @ApiOperation(value = "根据病历id获取详情[by:zhoutg]",
-            notes = "")
+                notes = "")
     @PostMapping("/getByBehospitalCode")
     @SysLogger("getByBehospitalCode")
     public RespDTO<Map<String, Object>> getByBehospitalCode(@RequestBody GetDetailVO getDetailVO) {

+ 13 - 8
src/main/java/com/diagbot/web/QcCasesEntryHospitalController.java

@@ -3,15 +3,10 @@ package com.diagbot.web;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.diagbot.annotation.SysLogger;
-import com.diagbot.dto.QcCasesAllDTO;
-import com.diagbot.dto.QcCasesEntryFindDTO;
-import com.diagbot.dto.QcCasesEntryHospitalDTO;
-import com.diagbot.dto.RespDTO;
+import com.diagbot.dto.*;
 import com.diagbot.facade.QcCasesEntryHospitalFacade;
-import com.diagbot.vo.QcCasesEntryFindVO;
-import com.diagbot.vo.QcCasesEntryHospitalVO;
-import com.diagbot.vo.QcCasesEntryUpdataVO;
-import com.diagbot.vo.QcCasesEntryVO;
+import com.diagbot.facade.QcresultInfoFacade;
+import com.diagbot.vo.*;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -40,6 +35,8 @@ import java.util.List;
 public class QcCasesEntryHospitalController {
     @Autowired
     private QcCasesEntryHospitalFacade qcCasesEntryHospitalFacade;
+    @Autowired
+    private QcresultInfoFacade qcresultInfoFacade;
 
     @ApiOperation(value = "分页获取医院条目数据信息[by:wangfeng]",
             notes = "hospitalId:医院id 必传</br>casesName:类别名称</br>name:条目名" +
@@ -75,4 +72,12 @@ public class QcCasesEntryHospitalController {
         return RespDTO.onSuc(qcCasesEntryHospitalFacade.findQcCasesEntryAlls(qcCasesEntryFindVO));
     }
 
+    @ApiOperation(value = "获取病历首次评分和质控缺陷",
+            notes = "")
+    @PostMapping("/getQcFirstAnalyze")
+    @SysLogger("getQcFirstAnalyze")
+    public RespDTO<QcFirstAnalyzeDTO> getQcFirstAnalyze(@RequestBody @Valid QcFirstAnalyzeVO qcFirstAnalyzeVO) {
+        return RespDTO.onSuc(qcresultInfoFacade.getQcFirstAnalyze(qcFirstAnalyzeVO));
+    }
+
 }