소스 검색

Merge branch 'dev/20201210_1.4.9'

chengyao 4 년 전
부모
커밋
5576c7da56
26개의 변경된 파일974개의 추가작업 그리고 197개의 파일을 삭제
  1. 25 0
      doc/028.20201210v1.4.9/qc_initv1.4.9.sql
  2. 1 0
      src/main/java/com/diagbot/config/ResourceServerConfigurer.java
  3. 1 0
      src/main/java/com/diagbot/config/security/UrlAccessDecisionManager.java
  4. 9 4
      src/main/java/com/diagbot/dto/AnalyzeRunDTO.java
  5. 29 0
      src/main/java/com/diagbot/dto/ExportExcelWideBehospitalDTO.java
  6. 26 0
      src/main/java/com/diagbot/dto/ExportWideExcelDTO.java
  7. 1 1
      src/main/java/com/diagbot/entity/HomePage.java
  8. 86 0
      src/main/java/com/diagbot/entity/MedNurse.java
  9. 250 41
      src/main/java/com/diagbot/facade/BehospitalInfoFacade.java
  10. 147 32
      src/main/java/com/diagbot/facade/ConsoleExportFacade.java
  11. 56 0
      src/main/java/com/diagbot/facade/MedNurseFacade.java
  12. 6 1
      src/main/java/com/diagbot/facade/QcresultInfoFacade.java
  13. 16 0
      src/main/java/com/diagbot/mapper/MedNurseMapper.java
  14. 16 0
      src/main/java/com/diagbot/service/MedNurseService.java
  15. 0 25
      src/main/java/com/diagbot/service/impl/BehospitalInfoServiceImpl.java
  16. 20 0
      src/main/java/com/diagbot/service/impl/MedNurseServiceImpl.java
  17. 1 2
      src/main/java/com/diagbot/vo/AnalyzeRunVO.java
  18. 3 0
      src/main/java/com/diagbot/vo/ExportQcresultVO.java
  19. 62 0
      src/main/java/com/diagbot/vo/MedNurseInfoVO.java
  20. 4 0
      src/main/java/com/diagbot/vo/QcResultShortPageVO.java
  21. 2 2
      src/main/java/com/diagbot/web/BehospitalInfoController.java
  22. 1 1
      src/main/java/com/diagbot/web/MedLisInfoController.java
  23. 47 0
      src/main/java/com/diagbot/web/MedNurseController.java
  24. 1 1
      src/main/java/com/diagbot/web/MedPacsInfoController.java
  25. 142 87
      src/main/resources/mapper/BehospitalInfoMapper.xml
  26. 22 0
      src/main/resources/mapper/MedNurseMapper.xml

+ 25 - 0
doc/028.20201210v1.4.9/qc_initv1.4.9.sql

@@ -0,0 +1,25 @@
+use `qc`;
+SET NAMES utf8mb4;
+SET FOREIGN_KEY_CHECKS = 0;
+
+DROP TABLE IF EXISTS `med_nurse`;
+CREATE TABLE `med_nurse` (
+  `rep_no` varchar(255) NOT NULL COMMENT '单号',
+  `hospital_id` int(11) NOT NULL COMMENT '医院ID',
+  `behospital_code` varchar(255) DEFAULT NULL COMMENT '住院病人ID',
+  `measure_time` datetime DEFAULT '1970-01-01 12:00:00' COMMENT '测量时间',
+  `item_name` varchar(255) DEFAULT NULL COMMENT '生命体征名称',
+  `item_value` varchar(255) DEFAULT NULL COMMENT '生命体征数值',
+  `item_unit` varchar(255) DEFAULT NULL COMMENT '生命体征单位',
+  `item_type` varchar(255) DEFAULT NULL COMMENT '生命体征类型',
+  `is_deleted` char(3) DEFAULT 'N' COMMENT '是否删除,N:未删除,Y:删除',
+  `gmt_create` datetime DEFAULT '1970-01-01 12:00:00' COMMENT '记录创建时间',
+  `gmt_modified` datetime DEFAULT '1970-01-01 12:00:00' COMMENT '记录修改时间,如果时间是1970年则表示纪录未修改',
+  `creator` varchar(60) DEFAULT '0' COMMENT '创建人,0表示无创建人值',
+  `modifier` varchar(60) DEFAULT '0' COMMENT '修改人,如果为0则表示纪录未修改',
+  KEY `behospital_code` (`behospital_code`) USING BTREE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+SET FOREIGN_KEY_CHECKS = 1;
+
+INSERT INTO `qc_mode`( `name`, `order_no`, `parent_id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `remark`) VALUES ( '护理信息', 259, 37, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', NULL);

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

@@ -175,6 +175,7 @@ public class ResourceServerConfigurer extends ResourceServerConfigurerAdapter {
                 .antMatchers("/console/export/medicalCheckInnerExport").permitAll()
                 .antMatchers("/console/badLevelPage").permitAll()
                 .antMatchers("/console/export/badLevelPagePageExport").permitAll()
+                .antMatchers("/qc/medNurse/getMedNursePage").permitAll()
                 .antMatchers("/**").authenticated();
         //                .antMatchers("/**").permitAll();
     }

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

@@ -219,6 +219,7 @@ public class UrlAccessDecisionManager implements AccessDecisionManager {
                 || matchers("/console/export/medicalCheckInnerExport", request)
                 || matchers("/console/badLevelPage", request)
                 || matchers("/console/export/badLevelPagePageExport", request)
+                || matchers("/qc/medNurse/getMedNursePage", request)
                 || matchers("/", request)) {
             return true;
         }

+ 9 - 4
src/main/java/com/diagbot/dto/AnalyzeRunDTO.java

@@ -3,6 +3,7 @@ package com.diagbot.dto;
 import lombok.Getter;
 import lombok.Setter;
 
+import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -14,10 +15,14 @@ import java.util.List;
 @Getter
 @Setter
 public class AnalyzeRunDTO {
-    // //得分
-    // private BigDecimal scoreRes;
-    // //等级
-    // private String level;
+    //得分
+    private BigDecimal scoreRes;
+    //等级
+    private String level;
+    //缺陷总数
+    private Long num;
+    //缺陷总扣分
+    private BigDecimal numScore;
     // 缺陷条目
     private List<MsgDTO> msgDTOList = new ArrayList<>();
 }

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

@@ -0,0 +1,29 @@
+package com.diagbot.dto;
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import lombok.Getter;
+import lombok.Setter;
+import java.util.Date;
+
+/**
+ * @Description:
+ * @author: gaodm
+ * @time: 2020/6/2 19:35
+ */
+@Getter
+@Setter
+public class ExportExcelWideBehospitalDTO {
+    @Excel(name = "主管医生", needMerge = true)
+    private String behDoctorName;
+    @Excel(name = "患者姓名", needMerge = true)
+    private String patName;
+    @Excel(name = "住院号", needMerge = true)
+    private String behospitalCode;
+    @Excel(name = "入院时间", needMerge = true, exportFormat = "yyyy/MM/dd")
+    private Date behospitalDate;
+    @Excel(name = "出院时间", needMerge = true, exportFormat = "yyyy/MM/dd")
+    private Date leaveHospitalDate;
+    @Excel(name = "分数", needMerge = true)
+    private Double score;
+    @Excel(name = "病案首页分数", needMerge = true)
+    private Double scoreBn;
+}

+ 26 - 0
src/main/java/com/diagbot/dto/ExportWideExcelDTO.java

@@ -0,0 +1,26 @@
+package com.diagbot.dto;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import cn.afterturn.easypoi.excel.annotation.ExcelCollection;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.List;
+
+/**
+ * @Description:
+ * @author: gaodm
+ * @time: 2020/6/2 19:00
+ */
+@Getter
+@Setter
+public class ExportWideExcelDTO {
+    @Excel(name = "科室", needMerge = true)
+    private String behDeptName;
+    @Excel(name = "平均分数", needMerge = true)
+    private Double avgScore;
+    @ExcelCollection(name = "" )
+    private List<ExportExcelWideBehospitalDTO> excelBehospitalDTOS;
+
+
+}

+ 1 - 1
src/main/java/com/diagbot/entity/HomePage.java

@@ -89,7 +89,7 @@ public class HomePage implements Serializable {
     private Date birthday;
 
     /**
-     * 年龄
+     * 年龄(拼接年龄单位)
      */
     private String age;
 

+ 86 - 0
src/main/java/com/diagbot/entity/MedNurse.java

@@ -0,0 +1,86 @@
+package com.diagbot.entity;
+
+import lombok.Data;
+
+import java.time.LocalDateTime;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author cy
+ * @since 2020-12-11
+ */
+@Data
+public class MedNurse implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 单号
+     */
+    private String repNo;
+
+    /**
+     * 医院ID
+     */
+    private Integer hospitalId;
+
+    /**
+     * 住院病人ID
+     */
+    private String behospitalCode;
+
+    /**
+     * 测量时间
+     */
+    private Date measureTime;
+
+    /**
+     * 生命体征名称
+     */
+    private String itemName;
+
+    /**
+     * 生命体征数值
+     */
+    private String itemValue;
+
+    /**
+     * 生命体征单位
+     */
+    private String itemUnit;
+
+    /**
+     * 生命体征类型
+     */
+    private String itemType;
+
+    /**
+     * 是否删除,N:未删除,Y:删除
+     */
+    private String isDeleted;
+
+    /**
+     * 记录创建时间
+     */
+    private LocalDateTime gmtCreate;
+
+    /**
+     * 记录修改时间,如果时间是1970年则表示纪录未修改
+     */
+    private LocalDateTime gmtModified;
+
+    /**
+     * 创建人,0表示无创建人值
+     */
+    private String creator;
+
+    /**
+     * 修改人,如果为0则表示纪录未修改
+     */
+    private String modifier;
+}

+ 250 - 41
src/main/java/com/diagbot/facade/BehospitalInfoFacade.java

@@ -39,20 +39,16 @@ import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
 
 import org.apache.commons.lang3.StringUtils;
+import org.apache.poi.ss.formula.functions.T;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Component;
 
 import javax.servlet.http.HttpServletResponse;
+import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.time.LocalDateTime;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -159,6 +155,11 @@ public class BehospitalInfoFacade extends BehospitalInfoServiceImpl {
     StrWardRecordFacade strWardRecordFacade;
     @Autowired
     MedTransferRecordFacade medTransferRecordFacade;
+    @Autowired
+    MedNurseFacade medNurseFacade;
+    @Autowired
+    SysHospitalSetFacade sysHospitalSetFacade;
+
 
 
     /**
@@ -273,6 +274,48 @@ public class BehospitalInfoFacade extends BehospitalInfoServiceImpl {
         return res;
     }
 
+    /**
+     *  仅获取缺陷总揽提示信息
+     *
+     * @param analyzeRunVO
+     * @return
+     */
+    public List<MsgDTO> getMsgByBehospitalCode(AnalyzeRunVO analyzeRunVO) {
+        // 获取病历信息
+        BehospitalInfo behospitalInfo = this.getOne(new QueryWrapper<BehospitalInfo>()
+                .eq("is_deleted", IsDeleteEnum.N.getKey())
+                .eq("hospital_id", analyzeRunVO.getHospitalId())
+                .eq("behospital_code", analyzeRunVO.getBehospitalCode()), false
+        );
+        if (null == behospitalInfo) {
+            throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "该病历不存在或已删除!");
+        }
+        // 获取质控条目
+        AnalyzeVO analyzeVO = new AnalyzeVO();
+        BeanUtil.copyProperties(analyzeRunVO, analyzeVO);
+        List<QcCasesEntryDTO> qcCasesEntryDTOList = qcCasesEntryFacade.getQcCasesEntry(analyzeVO);
+        if (ListUtil.isEmpty(qcCasesEntryDTOList)) {
+            throw new CommonException(CommonErrorCode.NOT_EXISTS, "该病历无关联的质控条目!");
+        }
+
+        List<MsgDTO> msgDTOList = getMsg(analyzeVO);
+            if (ListUtil.isNotEmpty(msgDTOList)) {
+                // 从qc_question_info的cases_entry_ids获取
+                Map<String, Object> paramMap = new HashMap<>();
+                paramMap.put("hospitalId",  analyzeRunVO.getHospitalId());
+                paramMap.put("casesEntryIds", msgDTOList.stream().map(r -> r.getCasesEntryId()).collect(Collectors.toList()));
+                Map<Long, List<QuestionEntryDTO>> quesEntryMap = qcQuestionFacade.getByCaseEntryIdsFac(paramMap);
+                for (MsgDTO msgDTO : msgDTOList) {
+                    if (quesEntryMap.get(msgDTO.getCasesEntryId()) != null) {
+                        msgDTO.setPageKeyList(quesEntryMap.get(msgDTO.getCasesEntryId())
+                                .stream().map(r -> r.getId()).collect(Collectors.toList()));
+                    }
+                }
+            }
+        return msgDTOList;
+    }
+
+
     /**
      * 处理数据(公共方法)
      *
@@ -537,6 +580,13 @@ public class BehospitalInfoFacade extends BehospitalInfoServiceImpl {
                 .orderByAsc("rec_date")
         );
 //        -------------------------------------文书数据改造结束----------------------------------
+        // 获取护理
+        List<MedNurse> medNurseList = medNurseFacade.list(new QueryWrapper<MedNurse>()
+                .eq("is_deleted", IsDeleteEnum.N.getKey())
+                .eq("hospital_id", hospitalId)
+                .eq("behospital_code", analyzeVO.getBehospitalCode())
+                .orderByAsc("gmt_create")
+        );
 
         // 获取医嘱
         List<DoctorAdvice> doctorAdviceList = doctorAdviceFacade.list(new QueryWrapper<DoctorAdvice>()
@@ -874,7 +924,11 @@ public class BehospitalInfoFacade extends BehospitalInfoServiceImpl {
         addDataWithInnerKey("谈话告知书", recMap, medrecVoList);
 
         //==============文书====================
-
+        //护理
+        if (ListUtil.isNotEmpty(medNurseList)) {
+            addDataWithKeyConvert("护理", medNurseList, medrecVoList,
+                    dicMap.get("23"), Arrays.asList("measureTime"));
+        }
         // 医嘱
         if (ListUtil.isNotEmpty(doctorAdviceList)) {
             addDataWithKeyConvert("医嘱信息", doctorAdviceList, medrecVoList,
@@ -924,7 +978,6 @@ public class BehospitalInfoFacade extends BehospitalInfoServiceImpl {
         analyzeVO.setHospitalId(hospitalId);
 
         // 处理公共数据
-
             QueryVo  queryVo = dealCommonData(hospitalId, analyzeVO);
         queryVo.setUseCrfCache(analyzeVO.isUseCrfCache());
         //  调用质控接口
@@ -1516,23 +1569,57 @@ public class BehospitalInfoFacade extends BehospitalInfoServiceImpl {
     /**
      * 评分api
      *
-     * @param analyzeApiVO
+     * @param analyzeRunVO
      * @return
      */
-    public Map<String, Object> analyzeApi(AnalyzeApiVO analyzeApiVO) {
-        AnalyzeVO analyzeVO = new AnalyzeVO();
-        BeanUtil.copyProperties(analyzeApiVO, analyzeVO);
-        // 评分
-        analyze(analyzeVO);
-        // 获取结果
-        GetDetailVO getDetailVO = new GetDetailVO();
-        getDetailVO.setHospitalId(analyzeApiVO.getHospitalId());
-        getDetailVO.setBehospitalCode(analyzeApiVO.getBehospitalCode());
-        getDetailVO.setNeedGroup(analyzeApiVO.getNeedGroup());
-        return getByBehospitalCodeApi(getDetailVO);
+    public AnalyzeRunDTO analyzeApi(AnalyzeRunVO analyzeRunVO) {
+        List<MsgDTO> msgDTOList = this.getMsgByBehospitalCode(analyzeRunVO);
+        //返回参数组装
+        AnalyzeRunDTO analyzeRunDTO = new AnalyzeRunDTO();
+
+        QcresultInfo qcresultInfo = qcresultInfoFacade.getOne(new QueryWrapper<QcresultInfo>()
+                .eq("behospital_code", analyzeRunVO.getBehospitalCode())
+                .eq("hospital_id", analyzeRunVO.getHospitalId())
+                .eq("is_deleted", IsDeleteEnum.N.getKey())
+                .select("behospital_code", "level", "score_res"));
+        BigDecimal bigDecimal = new BigDecimal(0);
+        BigDecimal res = new BigDecimal(120);
+        BigDecimal resPr = new BigDecimal(100);
+        String reNum = "0";
+        SysHospitalSet sysHospitalSet
+                = sysHospitalSetFacade.getOne(new QueryWrapper<SysHospitalSet>()
+                        .eq("is_deleted", IsDeleteEnum.N.getKey())
+                        .eq("hospital_id", analyzeRunVO.getHospitalId())
+                , false);
+        if (null != sysHospitalSet
+                && sysHospitalSet.getValue().equals("1")) {
+            //百分制
+            reNum = "1";
+        }
+        if(null != qcresultInfo){
+            analyzeRunDTO.setLevel(qcresultInfo.getLevel()==null?"":qcresultInfo.getLevel());
+            analyzeRunDTO.setScoreRes(qcresultInfo.getScoreRes() ==null ? bigDecimal : qcresultInfo.getScoreRes());
+            if("1".equals(reNum)) {
+                bigDecimal = resPr.subtract(analyzeRunDTO.getScoreRes());
+            }else if("0".equals(reNum)){
+                bigDecimal = res.subtract(analyzeRunDTO.getScoreRes().multiply(new BigDecimal(120))
+                          .divide(new BigDecimal(100), 1, RoundingMode.HALF_UP));
+            }
+            //缺陷总数
+            Long num = msgDTOList
+                    .stream()
+                    .filter(Objects::nonNull)
+                    .count();
+            analyzeRunDTO.setNum(num);
+            analyzeRunDTO.setNumScore(bigDecimal);
+            analyzeRunDTO.setMsgDTOList(msgDTOList);
+        }
+        return analyzeRunDTO;
     }
 
 
+
+
     /**
      * 获取明细api
      *
@@ -1618,6 +1705,8 @@ public class BehospitalInfoFacade extends BehospitalInfoServiceImpl {
      * @return
      */
     public AnalyzeRunDTO analyzeRun(AnalyzeRunVO analyzeRunVO) {
+        Long modeId = analyzeRunVO.getModeId();
+        analyzeRunVO.setModeId(null);
         AnalyzeVO analyzeVO = new AnalyzeVO();
         BeanUtil.copyProperties(analyzeRunVO, analyzeVO);
         Long hospitalId = analyzeVO.getHospitalId();
@@ -1654,8 +1743,7 @@ public class BehospitalInfoFacade extends BehospitalInfoServiceImpl {
             AnalyzeCodeVO analyzeCodeVO = new AnalyzeCodeVO();
             analyzeCodeVO.setCodeList(codeList);
             analyzeCodeVO.setHospitalId(hospitalId);
-            analyzeCodeVO.setModeId(analyzeRunVO.getModeId());
-
+            analyzeCodeVO.setModeId(modeId);
             // 获取缺陷条目信息
             msgDTOList = getMsgByEntryCode(analyzeCodeVO);
             // 设置info信息
@@ -1733,9 +1821,43 @@ public class BehospitalInfoFacade extends BehospitalInfoServiceImpl {
         //时间设置
         exportQcresultVOSet(exportQcresultVO);
         List<ExportExcelDTO> res = this.exportQcresult(exportQcresultVO);
+        List<ExportWideExcelDTO> resWide = new ArrayList<ExportWideExcelDTO>();
+        if("2".equals(exportQcresultVO.getRadioCheck())){
+            resWide = transList(res, resWide);
+        }
         String fileName = "抽查住院病历质量情况.xls";
         response.setContentType("text/html;charset=UTF-8");
-        ExcelUtils.exportExcelUser(res, null, "sheet1", ExportExcelDTO.class, fileName, response);
+        if("1".equals(exportQcresultVO.getRadioCheck())){
+            ExcelUtils.exportExcelUser(res, null, "sheet1", ExportExcelDTO.class, fileName, response);
+        }
+        if("2".equals(exportQcresultVO.getRadioCheck())){
+            ExcelUtils.exportExcelUser(resWide, null, "sheet1", ExportWideExcelDTO.class, fileName, response);
+        }
+    }
+    public List<ExportWideExcelDTO> transList(List<ExportExcelDTO>res, List<ExportWideExcelDTO>resWide){
+        if(ListUtil.isNotEmpty(res)){
+            res.forEach(exportExcelDTO->{
+                ExportWideExcelDTO exportWideExcelDTO = new ExportWideExcelDTO();
+                    exportWideExcelDTO.setAvgScore(exportExcelDTO.getAvgScore());
+                    exportWideExcelDTO.setBehDeptName(exportExcelDTO.getBehDeptName());
+                    List<ExportExcelBehospitalDTO> excelBehospitalDTOS = exportExcelDTO.getExcelBehospitalDTOS();
+                    List<ExportExcelWideBehospitalDTO> exportExcelWideBehospitalDTOs = new ArrayList<>();
+                        excelBehospitalDTOS.forEach(exportExcelBehospitalDTO->{
+                        ExportExcelWideBehospitalDTO exportExcelWideBehospitalDTO = new ExportExcelWideBehospitalDTO();
+                            exportExcelWideBehospitalDTO.setBehDoctorName(exportExcelBehospitalDTO.getBehDoctorName());
+                            exportExcelWideBehospitalDTO.setBehospitalCode(exportExcelBehospitalDTO.getBehospitalCode());
+                            exportExcelWideBehospitalDTO.setBehospitalDate(exportExcelBehospitalDTO.getBehospitalDate());
+                            exportExcelWideBehospitalDTO.setLeaveHospitalDate(exportExcelBehospitalDTO.getLeaveHospitalDate());
+                            exportExcelWideBehospitalDTO.setPatName(exportExcelBehospitalDTO.getPatName());
+                            exportExcelWideBehospitalDTO.setScore(exportExcelBehospitalDTO.getScore());
+                            exportExcelWideBehospitalDTO.setScoreBn(exportExcelBehospitalDTO.getScoreBn());
+                            exportExcelWideBehospitalDTOs.add(exportExcelWideBehospitalDTO);
+                        });
+                           exportWideExcelDTO.setExcelBehospitalDTOS(exportExcelWideBehospitalDTOs);
+                resWide.add(exportWideExcelDTO);
+            });
+        }
+        return resWide;
     }
 
     /**
@@ -1752,9 +1874,18 @@ public class BehospitalInfoFacade extends BehospitalInfoServiceImpl {
         //时间设置
         exportQcresultVOSet(exportQcresultVO);
         List<ExportExcelDTO> res = this.exportQcresultByDept(exportQcresultVO);
+        List<ExportWideExcelDTO> resWide = new ArrayList<ExportWideExcelDTO>();
+        if("2".equals(exportQcresultVO.getRadioCheck())){
+            resWide = transList(res, resWide);
+        }
         String fileName = "抽查住院病历质量情况.xls";
         response.setContentType("text/html;charset=UTF-8");
-        ExcelUtils.exportExcelUser(res, null, "sheet1", ExportExcelDTO.class, fileName, response);
+      if("1".equals(exportQcresultVO.getRadioCheck())){
+            ExcelUtils.exportExcelUser(res, null, "sheet1", ExportExcelDTO.class, fileName, response);
+        }
+        if("2".equals(exportQcresultVO.getRadioCheck())){
+            ExcelUtils.exportExcelUser(resWide, null, "sheet1", ExportWideExcelDTO.class, fileName, response);
+        }
     }
 
     /**
@@ -1771,24 +1902,43 @@ public class BehospitalInfoFacade extends BehospitalInfoServiceImpl {
         //时间设置
         exportQcresultVOSet(exportQcresultVO);
         List<ExportExcelDTO> res = this.exportQcresultByGroup(exportQcresultVO);
+        List<ExportWideExcelDTO> resWide = new ArrayList<ExportWideExcelDTO>();
+        if("2".equals(exportQcresultVO.getRadioCheck())){
+            resWide = transList(res, resWide);
+        }
         String fileName = "抽查住院病历质量情况.xls";
         response.setContentType("text/html;charset=UTF-8");
-        ExcelUtils.exportExcelUser(res, null, "sheet1", ExportExcelDTO.class, fileName, response);
-    }
+        if("1".equals(exportQcresultVO.getRadioCheck())){
+            ExcelUtils.exportExcelUser(res, null, "sheet1", ExportExcelDTO.class, fileName, response);
+        }
+        if("2".equals(exportQcresultVO.getRadioCheck())){
+            ExcelUtils.exportExcelUser(resWide, null, "sheet1", ExportWideExcelDTO.class, fileName, response);
+        } }
 
     private void exportQcresultVOSet(ExportQcresultVO exportQcresultVO) {
         //入参验证
-        long interval = 7 * 24 * 60 * 60 * 1000;
+        long interval_7 = 7 * 24 * 60 * 60 * 1000;
+        long interval_90 = 90l * 24 * 60 * 60 * 1000;
         //入院时间
         if (null != exportQcresultVO && null != exportQcresultVO.getBehosDateStart() && null != exportQcresultVO.getBehosDateEnd()) {
             Date startDate = exportQcresultVO.getBehosDateStart();
             Date endDate = exportQcresultVO.getBehosDateEnd();
-            //时间间隔7天
-            if (endDate.getTime() < startDate.getTime()) {
-                throw new CommonException(CommonErrorCode.PARAM_ERROR, "截止时间不能小于起始时间");
-            }
-            if (endDate.getTime() - startDate.getTime() > interval) {
-                throw new CommonException(CommonErrorCode.PARAM_ERROR, "统计区间不能大于7天");
+            if("1".equals(exportQcresultVO.getRadioCheck())){
+                //时间间隔7天
+                if (endDate.getTime() < startDate.getTime()) {
+                    throw new CommonException(CommonErrorCode.PARAM_ERROR, "截止时间不能小于起始时间");
+                }
+                if (endDate.getTime() - startDate.getTime() > interval_7) {
+                    throw new CommonException(CommonErrorCode.PARAM_ERROR, "统计区间不能大于7天");
+                }
+            }else{
+                //时间间隔90天
+                if (endDate.getTime() < startDate.getTime()) {
+                    throw new CommonException(CommonErrorCode.PARAM_ERROR, "截止时间不能小于起始时间");
+                }
+                if (endDate.getTime() - startDate.getTime() > interval_90) {
+                    throw new CommonException(CommonErrorCode.PARAM_ERROR, "统计区间不能大于90天");
+                }
             }
             exportQcresultVO.setBehosDateStart(DateUtil.getFirstTimeOfDay(exportQcresultVO.getBehosDateStart()));
             exportQcresultVO.setBehosDateEnd(DateUtil.getFirstTimeOfDay(DateUtil.addDay(exportQcresultVO.getBehosDateEnd(), 1)));
@@ -1797,12 +1947,22 @@ public class BehospitalInfoFacade extends BehospitalInfoServiceImpl {
         if (null != exportQcresultVO && null != exportQcresultVO.getLeaveHosDateStart() && null != exportQcresultVO.getLeaveHosDateEnd()) {
             Date startDate = exportQcresultVO.getLeaveHosDateStart();
             Date endDate = exportQcresultVO.getLeaveHosDateEnd();
-            //时间间隔7天
-            if (endDate.getTime() < startDate.getTime()) {
-                throw new CommonException(CommonErrorCode.PARAM_ERROR, "截止时间不能小于起始时间");
-            }
-            if (endDate.getTime() - startDate.getTime() > interval) {
-                throw new CommonException(CommonErrorCode.PARAM_ERROR, "统计区间不能大于7天");
+            if("1".equals(exportQcresultVO.getRadioCheck())){
+                //时间间隔7天
+                if (endDate.getTime() < startDate.getTime()) {
+                    throw new CommonException(CommonErrorCode.PARAM_ERROR, "截止时间不能小于起始时间");
+                }
+                if (endDate.getTime() - startDate.getTime() > interval_7) {
+                    throw new CommonException(CommonErrorCode.PARAM_ERROR, "统计区间不能大于7天");
+                }
+            }else{
+                //时间间隔90天
+                if (endDate.getTime() < startDate.getTime()) {
+                    throw new CommonException(CommonErrorCode.PARAM_ERROR, "截止时间不能小于起始时间");
+                }
+                if (endDate.getTime() - startDate.getTime() > interval_90) {
+                    throw new CommonException(CommonErrorCode.PARAM_ERROR, "统计区间不能大于90天");
+                }
             }
             exportQcresultVO.setLeaveHosDateStart(DateUtil.getFirstTimeOfDay(exportQcresultVO.getLeaveHosDateStart()));
             exportQcresultVO.setLeaveHosDateEnd(DateUtil.getFirstTimeOfDay(DateUtil.addDay(exportQcresultVO.getLeaveHosDateEnd(), 1)));
@@ -1827,6 +1987,53 @@ public class BehospitalInfoFacade extends BehospitalInfoServiceImpl {
         }
     }
 
+    /**
+     * 计算分值
+     *
+     * @param outputInfo    质控出参数据
+     * @param codeList      质控编码列表
+     * @param codeToInfoMap 质控编码对应的info信息
+     * @param analyzeVO     入参
+     * @return
+     */
+    public Map<String, Object> calScore(OutputInfo outputInfo, List<String> codeList,
+                                               Map<String, String> codeToInfoMap, AnalyzeVO analyzeVO,
+                                               String isPlacefile) {
+        Long hospitalId = analyzeVO.getHospitalId();
+        List<QcResultAlgVO> qcResultAlgVOList = new ArrayList<>();
+        if (ListUtil.isNotEmpty(codeList)) {
+            // 根据质控结果获取质控条目
+            QcResultAlgQueryVO qcResultAlgQueryVO = new QcResultAlgQueryVO();
+            qcResultAlgQueryVO.setCodeList(codeList);
+            qcResultAlgQueryVO.setHospitalId(hospitalId);
+            qcResultAlgQueryVO.setIsPlacefile(isPlacefile);
+            qcResultAlgVOList = qcCasesEntryFacade.getQcResultAlgVO(qcResultAlgQueryVO);
+        }
+
+        // 对info赋值
+        for (QcResultAlgVO bean : qcResultAlgVOList) {
+            String info = codeToInfoMap.get(bean.getCode());
+            if (StringUtil.isNotBlank(info)) {
+                bean.setInfo(info);
+            }
+        }
+
+        // 评分
+        AlgorithmVO algorithmVO = new AlgorithmVO();
+        algorithmVO.setType(0);
+        algorithmVO.setQcResultAlgVOList(qcResultAlgVOList);
+        algorithmVO.setHospitalId(hospitalId);
+        algorithmVO.setBehospitalCode(analyzeVO.getBehospitalCode());
+        algorithmVO.setQcResultAlgVOList(qcResultAlgVOList);
+        algorithmVO.setIsPlacefile(isPlacefile);
+        AlgorithmDTO algorithmDTO = algorithmFacade.getAlgorithmRes(algorithmVO);
+
+        // 返回结果信息
+        Map<String, Object> map = new HashMap<>();
+        map.put("algorithmDTO", algorithmDTO);
+        return map;
+    }
+
 
     /**
      * 计算分值并保存结果至数据库
@@ -1894,6 +2101,8 @@ public class BehospitalInfoFacade extends BehospitalInfoServiceImpl {
         pageMap.put("检查信息", null);
         // 医嘱信息
         pageMap.put("检验信息", null);
+        // 护理信息
+        pageMap.put("护理信息", null);
         // 知情同意书 = 【知情同意书】 + 【手术知情同意书】
         pageMap.put("知情同意书", recordDTOList);
         pageMap.put("谈话告知书", recordMap.get(54L));

+ 147 - 32
src/main/java/com/diagbot/facade/ConsoleExportFacade.java

@@ -18,6 +18,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
 import javax.servlet.http.HttpServletResponse;
+import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Date;
 import java.util.List;
@@ -261,20 +262,68 @@ public class ConsoleExportFacade {
         Date startDate = qcResultShortPageVO.getStartDate();
         Date endDate = qcResultShortPageVO.getEndDate();
         //时间间隔7天
-        long interval = 7 * 24 * 60 * 60 * 1000;
-        if (endDate.getTime() < startDate.getTime()) {
-            throw new CommonException(CommonErrorCode.PARAM_ERROR, "截止时间不能小于起始时间");
-        }
-        if (endDate.getTime() - startDate.getTime() > interval) {
-            throw new CommonException(CommonErrorCode.PARAM_ERROR, "统计区间不能大于7天");
+        long interval_7 = 7 * 24 * 60 * 60 * 1000;
+        long interval_90 = 90l * 24 * 60 * 60 * 1000;
+
+        if("1".equals(qcResultShortPageVO.getRadioCheck())){
+            //时间间隔7天
+            if (endDate.getTime() < startDate.getTime()) {
+                throw new CommonException(CommonErrorCode.PARAM_ERROR, "截止时间不能小于起始时间");
+            }
+            if (endDate.getTime() - startDate.getTime() > interval_7) {
+                throw new CommonException(CommonErrorCode.PARAM_ERROR, "统计区间不能大于7天");
+            }
+        }else{
+            //时间间隔90天
+            if (endDate.getTime() < startDate.getTime()) {
+                throw new CommonException(CommonErrorCode.PARAM_ERROR, "截止时间不能小于起始时间");
+            }
+            if (endDate.getTime() - startDate.getTime() > interval_90) {
+                throw new CommonException(CommonErrorCode.PARAM_ERROR, "统计区间不能大于90天");
+            }
         }
 
         qcResultShortPageVO.setCurrent(1L);
         qcResultShortPageVO.setSize(Long.MAX_VALUE);
         qcResultShortPageVO.setSearchCount(false);
         List<ExportExcelDTO> records = behospitalInfoFacade.leaveHosMRPageExport(qcResultShortPageVO);
+        List<ExportWideExcelDTO> resWide = new ArrayList<ExportWideExcelDTO>();
+        if("2".equals(qcResultShortPageVO.getRadioCheck())){
+            resWide = transList(records, resWide);
+        }
         String fileName = "出院人数统计.xls";
-        ExcelUtils.exportExcelUser(records, null, "sheet1", ExportExcelDTO.class, fileName, response);
+          if("1".equals(qcResultShortPageVO.getRadioCheck())){
+            ExcelUtils.exportExcelUser(records, null, "sheet1", ExportExcelDTO.class, fileName, response);
+        }
+        if("2".equals(qcResultShortPageVO.getRadioCheck())){
+            ExcelUtils.exportExcelUser(resWide, null, "sheet1", ExportWideExcelDTO.class, fileName, response);
+        }
+    }
+
+    public List<ExportWideExcelDTO> transList(List<ExportExcelDTO>res, List<ExportWideExcelDTO>resWide){
+        if(ListUtil.isNotEmpty(res)){
+            res.forEach(exportExcelDTO->{
+                ExportWideExcelDTO exportWideExcelDTO = new ExportWideExcelDTO();
+                exportWideExcelDTO.setAvgScore(exportExcelDTO.getAvgScore());
+                exportWideExcelDTO.setBehDeptName(exportExcelDTO.getBehDeptName());
+                List<ExportExcelBehospitalDTO> excelBehospitalDTOS = exportExcelDTO.getExcelBehospitalDTOS();
+                List<ExportExcelWideBehospitalDTO> exportExcelWideBehospitalDTOs = new ArrayList<>();
+                excelBehospitalDTOS.forEach(exportExcelBehospitalDTO->{
+                    ExportExcelWideBehospitalDTO exportExcelWideBehospitalDTO = new ExportExcelWideBehospitalDTO();
+                    exportExcelWideBehospitalDTO.setBehDoctorName(exportExcelBehospitalDTO.getBehDoctorName());
+                    exportExcelWideBehospitalDTO.setBehospitalCode(exportExcelBehospitalDTO.getBehospitalCode());
+                    exportExcelWideBehospitalDTO.setBehospitalDate(exportExcelBehospitalDTO.getBehospitalDate());
+                    exportExcelWideBehospitalDTO.setLeaveHospitalDate(exportExcelBehospitalDTO.getLeaveHospitalDate());
+                    exportExcelWideBehospitalDTO.setPatName(exportExcelBehospitalDTO.getPatName());
+                    exportExcelWideBehospitalDTO.setScore(exportExcelBehospitalDTO.getScore());
+                    exportExcelWideBehospitalDTO.setScoreBn(exportExcelBehospitalDTO.getScoreBn());
+                    exportExcelWideBehospitalDTOs.add(exportExcelWideBehospitalDTO);
+                });
+                exportWideExcelDTO.setExcelBehospitalDTOS(exportExcelWideBehospitalDTOs);
+                resWide.add(exportWideExcelDTO);
+            });
+        }
+        return resWide;
     }
 
     /**
@@ -337,27 +386,48 @@ public class ConsoleExportFacade {
         Date startDate = qcResultShortPageVO.getStartDate();
         Date endDate = qcResultShortPageVO.getEndDate();
         //时间间隔7天
-        long interval = 90l * 24l * 60l * 60l * 1000l;
-        if (endDate.getTime() < startDate.getTime()) {
-            throw new CommonException(CommonErrorCode.PARAM_ERROR, "截止时间不能小于起始时间");
-        }
-        if (endDate.getTime() - startDate.getTime() > interval) {
-            throw new CommonException(CommonErrorCode.PARAM_ERROR, "统计区间不能大于90天");
+        long interval_7 = 7 * 24 * 60 * 60 * 1000;
+        long interval_90 = 90l * 24 * 60 * 60 * 1000;
+
+        if("1".equals(qcResultShortPageVO.getRadioCheck())){
+            //时间间隔7天
+            if (endDate.getTime() < startDate.getTime()) {
+                throw new CommonException(CommonErrorCode.PARAM_ERROR, "截止时间不能小于起始时间");
+            }
+            if (endDate.getTime() - startDate.getTime() > interval_7) {
+                throw new CommonException(CommonErrorCode.PARAM_ERROR, "统计区间不能大于7天");
+            }
+        }else{
+            //时间间隔90天
+            if (endDate.getTime() < startDate.getTime()) {
+                throw new CommonException(CommonErrorCode.PARAM_ERROR, "截止时间不能小于起始时间");
+            }
+            if (endDate.getTime() - startDate.getTime() > interval_90) {
+                throw new CommonException(CommonErrorCode.PARAM_ERROR, "统计区间不能大于90天");
+            }
         }
 
         qcResultShortPageVO.setCurrent(1L);
         qcResultShortPageVO.setSize(Long.MAX_VALUE);
         qcResultShortPageVO.setSearchCount(false);
         List<ExportExcelDTO> records = behospitalInfoFacade.badLevelPagePageExport(qcResultShortPageVO);
+        List<ExportWideExcelDTO> resWide = new ArrayList<ExportWideExcelDTO>();
+        if("2".equals(qcResultShortPageVO.getRadioCheck())){
+            resWide = transList(records, resWide);
+        }
         String fileName = null;
         if("不合格数".equals(qcResultShortPageVO.getTitleName())){
-             fileName = "病案首页不合格数病历详情页.xls";
+            fileName = "病案首页不合格数病历详情页.xls";
         }else{
-             fileName = "病案首页合格数病历详情页.xls";
+            fileName = "病案首页合格数病历详情页.xls";
         }
-
-        ExcelUtils.exportExcelUser(records, null, "sheet1", ExportExcelDTO.class, fileName, response);
-    }
+        if("1".equals(qcResultShortPageVO.getRadioCheck())){
+            ExcelUtils.exportExcelUser(records, null, "sheet1", ExportExcelDTO.class, fileName, response);
+        }
+        if("2".equals(qcResultShortPageVO.getRadioCheck())){
+            ExcelUtils.exportExcelUser(resWide, null, "sheet1", ExportWideExcelDTO.class, fileName, response);
+        }
+   }
 
     /**
      * 未整改病历统计导出
@@ -435,20 +505,42 @@ public class ConsoleExportFacade {
         Date startDate = qcResultShortPageVO.getStartDate();
         Date endDate = qcResultShortPageVO.getEndDate();
         //时间间隔7天
-        long interval = 7 * 24 * 60 * 60 * 1000;
-        if (endDate.getTime() < startDate.getTime()) {
-            throw new CommonException(CommonErrorCode.PARAM_ERROR, "截止时间不能小于起始时间");
-        }
-        if (endDate.getTime() - startDate.getTime() > interval) {
-            throw new CommonException(CommonErrorCode.PARAM_ERROR, "统计区间不能大于7天");
+        long interval_7 = 7 * 24 * 60 * 60 * 1000;
+        long interval_90 = 90l * 24 * 60 * 60 * 1000;
+
+        if("1".equals(qcResultShortPageVO.getRadioCheck())){
+            //时间间隔7天
+            if (endDate.getTime() < startDate.getTime()) {
+                throw new CommonException(CommonErrorCode.PARAM_ERROR, "截止时间不能小于起始时间");
+            }
+            if (endDate.getTime() - startDate.getTime() > interval_7) {
+                throw new CommonException(CommonErrorCode.PARAM_ERROR, "统计区间不能大于7天");
+            }
+        }else{
+            //时间间隔90天
+            if (endDate.getTime() < startDate.getTime()) {
+                throw new CommonException(CommonErrorCode.PARAM_ERROR, "截止时间不能小于起始时间");
+            }
+            if (endDate.getTime() - startDate.getTime() > interval_90) {
+                throw new CommonException(CommonErrorCode.PARAM_ERROR, "统计区间不能大于90天");
+            }
         }
 
         qcResultShortPageVO.setCurrent(1L);
         qcResultShortPageVO.setSize(Long.MAX_VALUE);
         qcResultShortPageVO.setSearchCount(false);
         List<ExportExcelDTO> records = behospitalInfoFacade.hmImproveMRPageExport(qcResultShortPageVO);
+        List<ExportWideExcelDTO> resWide = new ArrayList<ExportWideExcelDTO>();
+        if("2".equals(qcResultShortPageVO.getRadioCheck())){
+            resWide = transList(records, resWide);
+        }
         String fileName = "病案首页改善率评分病历导出.xls";
-        ExcelUtils.exportExcelUser(records, null, "sheet1", ExportExcelDTO.class, fileName, response);
+        if("1".equals(qcResultShortPageVO.getRadioCheck())){
+            ExcelUtils.exportExcelUser(records, null, "sheet1", ExportExcelDTO.class, fileName, response);
+        }
+        if("2".equals(qcResultShortPageVO.getRadioCheck())){
+            ExcelUtils.exportExcelUser(resWide, null, "sheet1", ExportWideExcelDTO.class, fileName, response);
+        }
     }
 
     /**
@@ -466,20 +558,43 @@ public class ConsoleExportFacade {
         }
         Date startDate = qcResultShortPageVO.getStartDate();
         Date endDate = qcResultShortPageVO.getEndDate();
+
         //时间间隔7天
-        long interval = 7 * 24 * 60 * 60 * 1000;
-        if (endDate.getTime() < startDate.getTime()) {
-            throw new CommonException(CommonErrorCode.PARAM_ERROR, "截止时间不能小于起始时间");
-        }
-        if (endDate.getTime() - startDate.getTime() > interval) {
-            throw new CommonException(CommonErrorCode.PARAM_ERROR, "统计区间不能大于7天");
+        long interval_7 = 7 * 24 * 60 * 60 * 1000;
+        long interval_90 = 90l * 24 * 60 * 60 * 1000;
+
+        if("1".equals(qcResultShortPageVO.getRadioCheck())){
+            //时间间隔7天
+            if (endDate.getTime() < startDate.getTime()) {
+                throw new CommonException(CommonErrorCode.PARAM_ERROR, "截止时间不能小于起始时间");
+            }
+            if (endDate.getTime() - startDate.getTime() > interval_7) {
+                throw new CommonException(CommonErrorCode.PARAM_ERROR, "统计区间不能大于7天");
+            }
+        }else{
+            //时间间隔90天
+            if (endDate.getTime() < startDate.getTime()) {
+                throw new CommonException(CommonErrorCode.PARAM_ERROR, "截止时间不能小于起始时间");
+            }
+            if (endDate.getTime() - startDate.getTime() > interval_90) {
+                throw new CommonException(CommonErrorCode.PARAM_ERROR, "统计区间不能大于90天");
+            }
         }
 
         qcResultShortPageVO.setCurrent(1L);
         qcResultShortPageVO.setSize(Long.MAX_VALUE);
         qcResultShortPageVO.setSearchCount(false);
         List<ExportExcelDTO> records = behospitalInfoFacade.qcCheckMRPageExport(qcResultShortPageVO);
+        List<ExportWideExcelDTO> resWide = new ArrayList<ExportWideExcelDTO>();
+        if("2".equals(qcResultShortPageVO.getRadioCheck())){
+            resWide = transList(records, resWide);
+        }
         String fileName = "质控核查病历导出.xls";
-        ExcelUtils.exportExcelUser(records, null, "sheet1", ExportExcelDTO.class, fileName, response);
+        if("1".equals(qcResultShortPageVO.getRadioCheck())){
+            ExcelUtils.exportExcelUser(records, null, "sheet1", ExportExcelDTO.class, fileName, response);
+        }
+        if("2".equals(qcResultShortPageVO.getRadioCheck())){
+            ExcelUtils.exportExcelUser(resWide, null, "sheet1", ExportWideExcelDTO.class, fileName, response);
+        }
     }
 }

+ 56 - 0
src/main/java/com/diagbot/facade/MedNurseFacade.java

@@ -0,0 +1,56 @@
+package com.diagbot.facade;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.diagbot.entity.BehospitalInfo;
+import com.diagbot.entity.MedNurse;
+import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.mapper.MedNurseMapper;
+import com.diagbot.service.impl.MedNurseServiceImpl;
+import com.diagbot.vo.MedNurseInfoVO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+/**
+ * @Description:
+ * @author: cy
+ * @time: 2020/9/23 11:39
+ */
+@Component
+public class MedNurseFacade extends MedNurseServiceImpl {
+    @Autowired
+    BehospitalInfoFacade behospitalInfoFacade;
+    @Autowired
+    MedNurseMapper medNurseMapper;
+
+    public  IPage<MedNurse> getMedNursePage(MedNurseInfoVO medNurseInfoVO){
+        // 添加住院病历信息
+       BehospitalInfo behospitalInfo = behospitalInfoFacade.getOne(new QueryWrapper<BehospitalInfo>()
+                .eq("is_deleted", IsDeleteEnum.N.getKey())
+                .eq("behospital_code", medNurseInfoVO.getBehospitalCode())
+               .select("behospital_code","hospital_id","behospital_date","leave_hospital_date")
+        );
+        QueryWrapper<MedNurse> medNurseQueryWrapper = new QueryWrapper<>();
+        medNurseQueryWrapper.eq("behospital_code",medNurseInfoVO.getBehospitalCode());
+        medNurseQueryWrapper .eq("hospital_id",behospitalInfo.getHospitalId());
+        medNurseQueryWrapper .eq("is_deleted", IsDeleteEnum.N.getKey());
+        medNurseQueryWrapper .like("item_name", medNurseInfoVO.getItemName());
+        medNurseQueryWrapper.orderByDesc( "measure_time");
+        //测量时间
+        medNurseQueryWrapper.ge( "measure_time", medNurseInfoVO.getDateStart());
+        medNurseQueryWrapper.le( "measure_time", medNurseInfoVO.getDateEnd());
+        //出入院时间
+        medNurseQueryWrapper.ge( "measure_time", behospitalInfo.getBehospitalDate());
+        if(behospitalInfo.getLeaveHospitalDate() != null){
+            medNurseQueryWrapper.le( "measure_time",behospitalInfo.getLeaveHospitalDate());
+        }
+        Page<MedNurse> pageCase = new Page<MedNurse>(medNurseInfoVO.getCurrent(),medNurseInfoVO.getSize());
+        IPage<MedNurse> medNurseIPage = medNurseMapper.selectPage(pageCase, medNurseQueryWrapper);
+        medNurseIPage.getRecords().forEach(medNurse -> {
+            medNurse.setItemValue(medNurse.getItemValue()+medNurse.getItemUnit());
+        });
+        return medNurseIPage;
+
+    }
+}

+ 6 - 1
src/main/java/com/diagbot/facade/QcresultInfoFacade.java

@@ -141,7 +141,12 @@ public class QcresultInfoFacade extends QcresultInfoServiceImpl {
         //更新质控评分结果信息
         Long useId = 0L;
         if (!isTask) {
-            useId = Long.valueOf(SysUserUtils.getCurrentPrincipleID());
+            try {
+                useId = Long.valueOf(SysUserUtils.getCurrentPrincipleID());
+            } catch (Exception e) {
+            //analyze_run运行质控没有登录认证   所以会获取不到
+                useId = 952795279527L;
+            }
         }
         Date now = DateUtil.now();
         //逻辑删除记录

+ 16 - 0
src/main/java/com/diagbot/mapper/MedNurseMapper.java

@@ -0,0 +1,16 @@
+package com.diagbot.mapper;
+
+import com.diagbot.entity.MedNurse;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author cy
+ * @since 2020-12-11
+ */
+public interface MedNurseMapper extends BaseMapper<MedNurse> {
+
+}

+ 16 - 0
src/main/java/com/diagbot/service/MedNurseService.java

@@ -0,0 +1,16 @@
+package com.diagbot.service;
+
+import com.diagbot.entity.MedNurse;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author cy
+ * @since 2020-12-11
+ */
+public interface MedNurseService extends IService<MedNurse> {
+
+}

+ 0 - 25
src/main/java/com/diagbot/service/impl/BehospitalInfoServiceImpl.java

@@ -375,31 +375,6 @@ public class BehospitalInfoServiceImpl extends ServiceImpl<BehospitalInfoMapper,
     @Override
     public IPage<QcResultShortDTO> leaveHosMRPage(@Param("qcResultShortPageVO") QcResultShortPageVO qcResultShortPageVO) {
         IPage<QcResultShortDTO> qcResultShortDTOIPage = baseMapper.leaveHosMRPage(qcResultShortPageVO);
-        List<QcResultShortDTO> records = qcResultShortDTOIPage.getRecords();
-        if (CollectionUtils.isEmpty(records)) {
-            return qcResultShortDTOIPage;
-        }
-        String hospitalId = qcResultShortPageVO.getHospitalId();
-        Set<String> behospitalCodes = new HashSet<String>();
-        for (QcResultShortDTO record : records) {
-            if (StringUtils.isEmpty(record.getAge())) {
-                String behospitalCode = record.getBehospitalCode();
-                behospitalCodes.add(behospitalCode);
-            }
-        }
-        //目标数据个数与年龄数据为空个数对比,匹配上说明年龄字段从单独sql查出
-        if (records.size() == behospitalCodes.size()) {
-            List<Map<String, Object>> mapLists = baseMapper.getAge(hospitalId, behospitalCodes);
-            for (Map<String, Object> mapList : mapLists) {
-                for (QcResultShortDTO record : records) {
-                    if (record.getBehospitalCode().equals(mapList.get("behospitalCode"))) {
-                        record.setAge(String.valueOf(mapList.get("age")));
-                    }
-                }
-            }
-        }
-
-
         return qcResultShortDTOIPage;
 
     }

+ 20 - 0
src/main/java/com/diagbot/service/impl/MedNurseServiceImpl.java

@@ -0,0 +1,20 @@
+package com.diagbot.service.impl;
+
+import com.diagbot.entity.MedNurse;
+import com.diagbot.mapper.MedNurseMapper;
+import com.diagbot.service.MedNurseService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author cy
+ * @since 2020-12-11
+ */
+@Service
+public class MedNurseServiceImpl extends ServiceImpl<MedNurseMapper, MedNurse> implements MedNurseService {
+
+}

+ 1 - 2
src/main/java/com/diagbot/vo/AnalyzeRunVO.java

@@ -19,8 +19,7 @@ public class AnalyzeRunVO {
     @NotNull(message = "hospitalId不能为空")
     private Long hospitalId;
     // 模块id
-    @NotNull(message = "modeId不能为空")
     private Long modeId;
     // 归档字段
-    private String isPlacefile = "1";
+    private String isPlacefile = "0";
 }

+ 3 - 0
src/main/java/com/diagbot/vo/ExportQcresultVO.java

@@ -27,8 +27,11 @@ public class ExportQcresultVO {
     private Date leaveHosDateEnd;
     @ApiModelProperty(hidden = true)
     private String hospitalId;
+    //(1-导出7天[含缺陷明细项]  2-导出90天[不含缺陷明细项] )
+    private String radioCheck = "1";
     @ApiModelProperty(hidden = true)
     private Long userId;
+    private Long deptId;
     /**
      * 主诊断
      */

+ 62 - 0
src/main/java/com/diagbot/vo/MedNurseInfoVO.java

@@ -0,0 +1,62 @@
+package com.diagbot.vo;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotBlank;
+import java.util.Date;
+
+/**
+ * @Description:
+ * @author: cy
+ * @time: 2020/9/4 14:59
+ */
+@Getter
+@Setter
+public class MedNurseInfoVO extends Page {
+    /**
+     * 医院id
+     */
+    @ApiModelProperty(hidden = true)
+    private Long hospitalId;
+
+    /**
+     * 病历号
+     */
+    @NotBlank(message = "请输入病历号")
+    private String behospitalCode;
+
+    /**
+     * 体征名称
+     */
+    private String itemName;
+
+    /**
+     * 测量开始时间
+     */
+    private Date dateStart;
+
+    /**
+     * 入院时间
+     */
+    private Date behospitalDate;
+
+    /**
+     * 出院时间
+     */
+    private Date leaveHospitalDate;
+
+    /**
+     * 测量结束时间
+     */
+    private Date dateEnd;
+
+    /**
+     * 是否归档 (0-未归档 1-归档)
+     */
+    private String isPlacefile;
+
+}

+ 4 - 0
src/main/java/com/diagbot/vo/QcResultShortPageVO.java

@@ -32,6 +32,10 @@ public class QcResultShortPageVO extends Page {
      * 条目名称
      */
     private String casesEntryName;
+    /**
+     * (1-导出7天[含缺陷明细项]  2-导出90天[不含缺陷明细项] )
+     */
+    private String radioCheck = "1";
 
     /**
      * 主诊断

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

@@ -122,8 +122,8 @@ public class BehospitalInfoController {
     @SysLogger("analyze_api")
     @Transactional
     //    @ApiIgnore
-    public RespDTO<Map<String, Object>> analyzeApi(@RequestBody AnalyzeApiVO analyzeApiVO) {
-        return RespDTO.onSuc(behospitalInfoFacade.analyzeApi(analyzeApiVO));
+    public RespDTO<AnalyzeRunDTO> analyzeApi(@RequestBody AnalyzeRunVO analyzeRunVO) {
+        return RespDTO.onSuc(behospitalInfoFacade.analyzeApi(analyzeRunVO));
     }
 
 

+ 1 - 1
src/main/java/com/diagbot/web/MedLisInfoController.java

@@ -29,7 +29,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
  */
 
 @RestController
-@RequestMapping("qc/medLisInfo")
+@RequestMapping("/qc/medLisInfo")
 @Api(value = "检验信息API", tags = { "检验信息API" })
 public class MedLisInfoController {
     @Autowired

+ 47 - 0
src/main/java/com/diagbot/web/MedNurseController.java

@@ -0,0 +1,47 @@
+package com.diagbot.web;
+
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.diagbot.annotation.SysLogger;
+
+import com.diagbot.dto.RespDTO;
+import com.diagbot.entity.MedNurse;
+import com.diagbot.facade.MedNurseFacade;
+import com.diagbot.vo.MedNurseInfoVO;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.validation.Valid;
+
+/**
+ * <p>
+ * 前端控制器
+ * </p>
+ *
+ * @author cy
+ * @since 2020-12-11
+ */
+@RestController
+@RequestMapping("/qc/medNurse")
+@Api(value = "护理信息API", tags = {"护理信息API"})
+public class MedNurseController {
+    @Autowired
+    private MedNurseFacade medNurseFacade;
+
+    @ApiOperation(value = "护理信息API[by:cy]",
+            notes = "behospitalCode:病人住院序号<br>" +
+                    "itemName:体征名称(模糊搜索)<br>" +
+                    "DateStart:护理时间开始<br>" +
+                    "DateEnd:护理时间结束<br>;")
+    @PostMapping("/getMedNursePage")
+    @SysLogger("getMedNursePage")
+    public RespDTO<IPage<MedNurse>> getMedNursePage(@RequestBody @Valid MedNurseInfoVO medNurseInfoVO) {
+        return RespDTO.onSuc(medNurseFacade.getMedNursePage(medNurseInfoVO));
+    }
+
+}

+ 1 - 1
src/main/java/com/diagbot/web/MedPacsInfoController.java

@@ -27,7 +27,7 @@ import javax.validation.Valid;
  * @since 2020-09-04
  */
 @RestController
-@RequestMapping("qc/medPacsInfo")
+@RequestMapping("/qc/medPacsInfo")
 @Api(value = "检查信息API", tags = {"检查信息API"})
 public class MedPacsInfoController {
     @Autowired

+ 142 - 87
src/main/resources/mapper/BehospitalInfoMapper.xml

@@ -41,7 +41,13 @@
 
     <select id="getPage" resultType="com.diagbot.dto.BehospitalInfoDTO">
         SELECT * FROM (
-        select   t.*,
+        select distinct  a.*,
+        ifnull(b.level,'未评分') as `level`,
+        b.grade_type,
+        b.score_res,
+        b.gmt_create as grade_time,
+        CONCAT( ifnull(c.age,'') ,ifnull(c.age_unit,'') )as age,
+        e.score_res as score_bn,
         CASE WHEN ISNULL(g.status) THEN 0 ELSE g.status END check_status,
         CASE WHEN ISNULL(h.status) THEN 0 ELSE h.status END mr_status,
         g.check_type AS ch_type,
@@ -50,9 +56,13 @@
         h.check_name AS mr_name,
         g.check_time AS ch_time,
         h.check_time AS mr_time
-        from (
-        select a.*, ifnull(b.level,'未评分') as `level`, b.grade_type, b.score_res, b.gmt_create as
-        grade_time,IF(c.age is null, null,CONCAT( c.age,IF(c.age_unit is null, "",c.age_unit)))as age,e.score_res as score_bn from med_behospital_info a
+        from med_behospital_info a
+        LEFT JOIN (SELECT * FROM med_check_info WHERE is_deleted = 'N' AND check_type = 0 ) g
+        ON a.behospital_code = g.behospital_code
+        AND a.hospital_id = g.hospital_id
+        LEFT JOIN (SELECT * FROM med_check_info WHERE is_deleted = 'N'AND check_type = 1 ) h
+        ON a.behospital_code = h.behospital_code
+        AND a.hospital_id = h.hospital_id
         LEFT JOIN med_qcresult_info b
         on a.behospital_code = b.behospital_code and b.is_deleted = 'N'
         left join med_home_page c
@@ -61,61 +71,55 @@
         on  a.behospital_code = e.behospital_code
         AND e.is_deleted = 'N'
         and e.cases_id = 243
-        ) t
-        LEFT JOIN (SELECT * FROM med_check_info WHERE is_deleted = 'N' AND check_type = 0 ) g
-        ON t.behospital_code = g.behospital_code
-        AND t.hospital_id = g.hospital_id
-        LEFT JOIN (SELECT * FROM med_check_info WHERE is_deleted = 'N'AND check_type = 1 ) h
-        ON t.behospital_code = h.behospital_code
-        AND t.hospital_id = h.hospital_id
-        where t.is_deleted = 'N'
+        where
+        a.is_deleted = 'N'
         <if test="diagnose != null and diagnose != ''">
-            AND t.diagnose LIKE CONCAT( '%', #{diagnose}, '%' )
+            AND a.diagnose LIKE CONCAT( '%', #{diagnose}, '%' )
         </if>
         <if test="deptName != null and deptName != ''">
-            and t.beh_dept_name LIKE CONCAT( '%', #{deptName}, '%' )
+            and a.beh_dept_name LIKE CONCAT( '%', #{deptName}, '%' )
         </if>
         <if test="doctorName != null and doctorName != ''">
             and CONCAT(
-            IFNULL(t.doctor_name,''),IFNULL(t.beh_doctor_name,''),IFNULL(t.director_doctor_name,''))
+            IFNULL(a.doctor_name,''),IFNULL(a.beh_doctor_name,''),IFNULL(a.director_doctor_name,''))
             like CONCAT('%',#{doctorName},'%')
         </if>
         <if test="name != null and name != ''">
-            and t.name like CONCAT('%',#{name},'%')
+            and a.name like CONCAT('%',#{name},'%')
         </if>
         <if test="doctorCode != null and doctorCode != ''">
-            and (t.doctor_id = #{doctorCode}
-            or t.beh_doctor_id = #{doctorCode}
-            or t.director_doctor_id = #{doctorCode})
+            and (a.doctor_id = #{doctorCode}
+            or a.beh_doctor_id = #{doctorCode}
+            or a.director_doctor_id = #{doctorCode})
         </if>
         <if test="fileCode != null and fileCode != ''">
-            and t.file_code like CONCAT('%',#{fileCode},'%')
+            and a.file_code like CONCAT('%',#{fileCode},'%')
         </if>
         <if test="hospitalId != null">
-            and t.hospital_id = #{hospitalId}
+            and a.hospital_id = #{hospitalId}
         </if>
         <if test="behospitalCode != null and behospitalCode != ''">
-            and t.behospital_code like CONCAT('%',#{behospitalCode},'%')
+            and a.behospital_code like CONCAT('%',#{behospitalCode},'%')
         </if>
         <if test="behosDateStart != null">
-            <![CDATA[ and t.behospital_date >= #{behosDateStart}]]>
+            <![CDATA[ and a.behospital_date >= #{behosDateStart}]]>
         </if>
         <if test="behosDateEnd != null">
-            <![CDATA[ and t.behospital_date < #{behosDateEnd}]]>
+            <![CDATA[ and a.behospital_date < #{behosDateEnd}]]>
         </if>
         <if test="leaveHosDateStart != null">
-            <![CDATA[ and t.leave_hospital_date >= #{leaveHosDateStart}]]>
+            <![CDATA[ and a.leave_hospital_date >= #{leaveHosDateStart}]]>
         </if>
         <if test="leaveHosDateEnd != null">
-            <![CDATA[ and t.leave_hospital_date < #{leaveHosDateEnd}]]>
+            <![CDATA[ and a.leave_hospital_date < #{leaveHosDateEnd}]]>
         </if>
         <if test="level != null and level != ''">
-            and t.level = #{level}
+            and b.level = #{level}
         </if>
         <if test="isPlacefile != null and isPlacefile != ''">
-            and t.is_placefile = #{isPlacefile}
+            and a.is_placefile = #{isPlacefile}
         </if>
-        and t.qc_type_id != 0) p
+        and a.qc_type_id != 0) p
         where p.is_deleted="N"
         <if test="checkStatus != null ">
             and p.check_status = #{checkStatus}
@@ -349,7 +353,7 @@
         b.score_res,
         e.score_res as score_bn,
         b.gmt_create AS grade_time,
-        IF(c.age is null, null,CONCAT( c.age,IF(c.age_unit is null, "",c.age_unit)))as age
+        CONCAT( ifnull(c.age,'') ,ifnull(c.age_unit,'') )as age
         FROM
         med_behospital_info a
         JOIN sys_user_dept d
@@ -468,7 +472,7 @@
         b.score_res,
         e.score_res as score_bn,
         b.gmt_create AS grade_time,
-        IF(c.age is null, null,CONCAT( c.age,IF(c.age_unit is null, "",c.age_unit)))as age
+        CONCAT( ifnull(c.age,'') ,ifnull(c.age_unit,'') )as age
         FROM
         med_behospital_info a
         JOIN
@@ -582,7 +586,7 @@
         h.check_time AS mr_time
         from (
         select a.*, ifnull(b.level,'未评分') as `level`, b.grade_type, b.score_res, b.gmt_create as
-        grade_time,IF(c.age is null, null,CONCAT( c.age,IF(c.age_unit is null, "",c.age_unit)))as age, e.score_res as score_bn from med_behospital_info a
+        grade_time,CONCAT( ifnull(c.age,'') ,ifnull(c.age_unit,'') )as age, e.score_res as score_bn from med_behospital_info a
         LEFT JOIN med_qcresult_info b
         on a.behospital_code = b.behospital_code and b.is_deleted = 'N'
         LEFT JOIN med_qcresult_cases e
@@ -3248,10 +3252,12 @@
         t1.behospitalDate,
         t1.leaveHospitalDate,
         t1.score,
-        t1.scoreBn,
-        t2.avgScore,
+        <if test="radioCheck !=null and radioCheck == 1">
         t1.msg,
-        t1.caseName
+        t1.caseName,
+        </if>
+        t1.scoreBn,
+        t2.avgScore
         FROM
         (
         SELECT
@@ -3265,8 +3271,10 @@
         a.leave_hospital_date AS leaveHospitalDate,
         b.score_res AS score,
         e.score_res as scoreBn,
+        <if test="radioCheck !=null and radioCheck == 1">
         c.msg AS msg,
         d.NAME AS caseName,
+        </if>
         a.beh_dept_id AS behDeptId,
         a.beh_dept_name AS behDeptName,
         a.hospital_id AS hospitalId
@@ -3278,15 +3286,17 @@
         AND a.is_deleted = 'N'
         AND b.is_deleted = 'N'
         AND a.behospital_code = b.behospital_code
-        LEFT JOIN
-        med_qcresult_detail c
-        ON c.is_deleted = 'N'
-        AND b.behospital_code = c.behospital_code
-        AND b.hospital_id = c.hospital_id
-        LEFT JOIN
-        qc_cases d
-        on d.is_deleted = 'N'
-        AND c.cases_id = d.id
+        <if test="radioCheck !=null and radioCheck == 1">
+            LEFT JOIN
+            med_qcresult_detail c
+            ON c.is_deleted = 'N'
+            AND b.behospital_code = c.behospital_code
+            AND b.hospital_id = c.hospital_id
+            LEFT JOIN
+            qc_cases d
+            on d.is_deleted = 'N'
+            AND c.cases_id = d.id
+        </if>
         LEFT JOIN med_qcresult_cases e
         on  b.behospital_code = e.behospital_code
         and b.hospital_id = e.hospital_id
@@ -3407,8 +3417,11 @@
         t1.behDeptName,
         t1.behDoctorName,
         t1.patName,
-        t1.behospitalCode,
-        t1.caseName)tp
+        <if test="radioCheck !=null and radioCheck == 1">
+        t1.caseName,
+        </if>
+        t1.behospitalCode
+       )tp
         LEFT JOIN (SELECT * FROM med_check_info WHERE is_deleted = 'N' AND check_type = 0 ) g
         ON tp.behospitalCode = g.behospital_code
         AND tp.hospitalId = g.hospital_id
@@ -3466,9 +3479,11 @@
         t1.leaveHospitalDate,
         t1.score,
         t2.avgScore,
-        e.score_res as scoreBn,
+        <if test="radioCheck !=null and radioCheck == 1">
         t1.msg,
-        t1.caseName
+        t1.caseName,
+        </if>
+        e.score_res as scoreBn
         FROM
         (
         SELECT
@@ -3479,8 +3494,10 @@
         a.behospital_date AS behospitalDate,
         a.leave_hospital_date AS leaveHospitalDate,
         b.score_res AS score,
-        c.msg AS msg,
-        d.NAME AS caseName,
+        <if test="radioCheck !=null and radioCheck == 1">
+            c.msg AS msg,
+            d.NAME AS caseName,
+        </if>
         a.beh_dept_id AS behDeptId,
         a.beh_dept_name AS behDeptName,
         a.hospital_id AS hospitalId
@@ -3631,8 +3648,11 @@
         t1.behDeptName,
         t1.behDoctorName,
         t1.patName,
-        t1.behospitalCode,
-        t1.caseName)tp
+        <if test="radioCheck !=null and radioCheck == 1">
+            t1.caseName,
+        </if>
+        t1.behospitalCode
+        )tp
         LEFT JOIN (SELECT * FROM med_check_info WHERE is_deleted = 'N' AND check_type = 0 ) g
         ON tp.behospitalCode = g.behospital_code
         AND tp.hospitalId = g.hospital_id
@@ -3690,9 +3710,11 @@
         t1.leaveHospitalDate,
         t1.score,
         t2.avgScore,
-        e.score_res as scoreBn,
-        t1.msg,
-        t1.caseName
+        <if test="radioCheck !=null and radioCheck == 1">
+            t1.msg,
+            t1.caseName,
+        </if>
+        e.score_res as scoreBn
         FROM
         (
         SELECT
@@ -3702,8 +3724,10 @@
         a.behospital_date AS behospitalDate,
         a.leave_hospital_date AS leaveHospitalDate,
         b.score_res AS score,
-        c.msg AS msg,
-        d.NAME AS caseName,
+        <if test="radioCheck !=null and radioCheck == 1">
+            c.msg AS msg,
+            d.NAME AS caseName,
+        </if>
         a.beh_dept_id AS behDeptId,
         a.beh_dept_name AS behDeptName,
         a.hospital_id AS hospitalId
@@ -3778,7 +3802,7 @@
         </if>
         ) t1 LEFT JOIN med_qcresult_cases e
         on  t1.behospitalCode = e.behospital_code
-        and t1.hospital_id = e.hospital_id
+        and t1.hospitalId = e.hospital_id
         AND e.is_deleted = 'N'
         and e.cases_id = 243,
         (
@@ -3859,8 +3883,11 @@
         t1.behDeptName,
         t1.behDoctorName,
         t1.patName,
-        t1.behospitalCode,
-        t1.caseName)tp
+        <if test="radioCheck !=null and radioCheck == 1">
+            t1.caseName,
+        </if>
+        t1.behospitalCode
+        )tp
         LEFT JOIN (SELECT * FROM med_check_info WHERE is_deleted = 'N' AND check_type = 0 ) g
         ON tp.behospitalCode = g.behospital_code
         AND tp.hospitalId = g.hospital_id
@@ -3924,7 +3951,7 @@
         t1.gmt_create AS gradeTime,
         t1.diagnose,
         t1.ward_name AS wardName,
-        IF(t2.age is null, null,CONCAT( t2.age,IF(t2.age_unit is null, "",t2.age_unit)))as age,
+        CONCAT( ifnull(t2.age,''),ifnull(t2.age_unit,'') )as age,
         t1.file_code AS fileCode,
         t1.checkStatus,
         t1.mrStatus,
@@ -5190,7 +5217,7 @@
     <select id="getAge" resultType="java.util.Map">
         SELECT
         a.behospital_code as behospitalCode,
-        IF(a.age is null, null,CONCAT( a.age,IF(a.age_unit is null, "",a.age_unit)))as age
+        CONCAT( ifnull(a.age,'') ,ifnull(a.age_unit,'') )as age
         FROM
         med_home_page a
         WHERE
@@ -5237,7 +5264,8 @@
         t1.mrName,
         t1.chTime,
         t1.mrTime,
-         t1.file_code AS fileCode
+        CONCAT( ifnull(t2.age,'') ,ifnull(t2.age_unit,'') )as age,
+        t1.file_code AS fileCode
         FROM
         (
         SELECT be.*,
@@ -5378,13 +5406,17 @@
         </if>
         <if test="qcResultShortPageVO.leaveHosType != null and qcResultShortPageVO.leaveHosType ==1">
             , med_medical_record b,
-            med_medical_record_content c
+            med_medical_record_content c,
+            med_home_page t2
             WHERE
             b.is_deleted = 'N'
             and c.is_deleted = 'N'
+            and t2.is_deleted = 'N'
             and t1.hospital_id = b.hospital_id
             and t1.hospital_id = c.hospital_id
+            and t1.hospital_id = t2.hospital_id
             AND t1.behospital_code = b.behospital_code
+            AND t1.behospital_code = t2.behospital_code
             AND b.rec_id = c.rec_id
             and b.mode_id = '24'
         </if>
@@ -5918,8 +5950,10 @@
         f1.score,
         f2.avgScore,
         f1.scoreBn,
+        <if test="qcResultShortPageVO.radioCheck !=null and qcResultShortPageVO.radioCheck == 1">
         f1.msg,
         f1.caseName,
+        </if>
         f1.checkStatus,
         f1.mrStatus,
         f1.chName,
@@ -5935,8 +5969,10 @@
         t.leaveHospitalDate AS leaveHospitalDate,
         qi.score_res AS score,
         t.scoreBn,
+        <if test="qcResultShortPageVO.radioCheck !=null and qcResultShortPageVO.radioCheck == 1">
         qd.msg AS msg,
         qc.NAME AS caseName,
+        </if>
         t.behDeptId,
         t.behDeptName,
         t.hospitalId,
@@ -6143,11 +6179,13 @@
         LEFT JOIN med_qcresult_info qi ON qi.is_deleted = 'N'
         AND t.hospitalId = qi.hospital_id
         AND t.behospitalCode = qi.behospital_code
+        <if test="qcResultShortPageVO.radioCheck !=null and qcResultShortPageVO.radioCheck == 1">
         LEFT JOIN med_qcresult_detail qd ON qd.is_deleted = 'N'
         AND t.hospitalId = qd.hospital_id
         AND t.behospitalCode = qd.behospital_code
         LEFT JOIN qc_cases qc ON qc.is_deleted = 'N'
         AND qd.cases_id = qc.id
+        </if>
         where 1=1
         <if test="qcResultShortPageVO.checkStatus != null">
             and t.checkStatus = #{qcResultShortPageVO.checkStatus}
@@ -6444,7 +6482,6 @@
         t1.gmt_create AS gradeTime,
         t1.diagnose AS diagnose,
         t1.ward_name AS wardName,
-        IF(t2.age is null, null,CONCAT( t2.age,IF(t2.age_unit is null, "",t2.age_unit)))as age,
         t1.file_code AS fileCode,
         t1.checkStatus AS checkStatus,
         t1.mrStatus AS mrStatus,
@@ -7278,7 +7315,7 @@
         t1.gmt_create AS gradeTime,
         t1.diagnose,
         t1.ward_name AS wardName,
-        IF(t2.age is null, null,CONCAT( t2.age,IF(t2.age_unit is null, "",t2.age_unit)))as age,
+        CONCAT( ifnull(t2.age,'') ,ifnull(t2.age_unit,'') )as age,
         t1.file_code AS fileCode,
         t1.checkStatus,
         t1.mrStatus,
@@ -7433,14 +7470,14 @@
         AND d.cases_entry_id = e.id
         AND d.cases_id = 243
         AND a.qc_type_id != 0
-        <if test="qcResultPageVO.titleName != null ">
-            <if test="qcResultPageVO.titleName == '不合格数'">
-                AND c.`level`='不合格'
-            </if>
-            <if test="qcResultPageVO.titleName == '合格数'">
-                AND c.`level`='合格'
-            </if>
-        </if>
+<!--        <if test="qcResultPageVO.titleName != null ">-->
+<!--            <if test="qcResultPageVO.titleName == '不合格数'">-->
+<!--                AND c.`level`='不合格'-->
+<!--            </if>-->
+<!--            <if test="qcResultPageVO.titleName == '合格数'">-->
+<!--                AND c.`level`='合格'-->
+<!--            </if>-->
+<!--        </if>-->
         <if test="qcResultPageVO.isPlacefile != null and qcResultPageVO.isPlacefile != ''">
             and a.is_placefile = #{qcResultPageVO.isPlacefile}
         </if>
@@ -7546,7 +7583,7 @@
         t1.gmt_create AS gradeTime,
         t1.diagnose,
         t1.ward_name AS wardName,
-        IF(t2.age is null, null,CONCAT( t2.age,IF(t2.age_unit is null, "",t2.age_unit)))as age,
+        CONCAT( ifnull(t2.age,'') ,ifnull(t2.age_unit,'') )as age,
         t1.file_code AS fileCode,
         t1.checkStatus,
         t1.mrStatus,
@@ -7730,8 +7767,10 @@
         f1.score,
         f1.scoreBn,
         f2.avgScore,
+        <if test="qcResultShortPageVO.radioCheck !=null and qcResultShortPageVO.radioCheck == 1">
         f1.msg,
         f1.caseName,
+        </if>
         f1.checkStatus,
         f1.mrStatus,
         f1.chName,
@@ -7746,9 +7785,11 @@
         t.behospitalDate AS behospitalDate,
         t.leaveHospitalDate AS leaveHospitalDate,
         qi.score_res AS score,
-        qd.msg AS msg,
         t.scoreBn,
+        <if test="qcResultShortPageVO.radioCheck !=null and qcResultShortPageVO.radioCheck == 1">
+        qd.msg AS msg,
         qc.NAME AS caseName,
+        </if>
         t.behDeptId,
         t.behDeptName,
         t.hospitalId,
@@ -7930,6 +7971,7 @@
         LEFT JOIN med_qcresult_info qi ON qi.is_deleted = 'N'
         AND t.hospitalId = qi.hospital_id
         AND t.behospitalCode = qi.behospital_code
+        <if test="qcResultShortPageVO.radioCheck !=null and qcResultShortPageVO.radioCheck == 1">
         LEFT JOIN med_qcresult_detail qd ON qd.is_deleted = 'N'
         AND t.hospitalId = qd.hospital_id
         AND t.behospitalCode = qd.behospital_code
@@ -7938,6 +7980,7 @@
         LEFT JOIN qc_cases_entry qce ON qce.is_deleted = 'N'
         AND qd.cases_id = qce.cases_id
         AND qd.cases_entry_id = qce.id
+        </if>
         where 1=1
         <if test="qcResultShortPageVO.checkStatus != null">
             AND t.checkStatus = #{qcResultShortPageVO.checkStatus}
@@ -8060,14 +8103,14 @@
         AND c.cases_id = k.cases_id
         AND k.cases_id = d.cases_id
         AND k.cases_entry_id = d.id
-        <if test="qcResultShortPageVO.titleName != null ">
-            <if test="qcResultShortPageVO.titleName == '不合格数'">
-                AND c.`level`='不合格'
-            </if>
-            <if test="qcResultShortPageVO.titleName == '合格数'">
-                AND c.`level`='合格'
-            </if>
-        </if>
+<!--        <if test="qcResultShortPageVO.titleName != null ">-->
+<!--            <if test="qcResultShortPageVO.titleName == '不合格数'">-->
+<!--                AND c.`level`='不合格'-->
+<!--            </if>-->
+<!--            <if test="qcResultShortPageVO.titleName == '合格数'">-->
+<!--                AND c.`level`='合格'-->
+<!--            </if>-->
+<!--        </if>-->
         AND a.qc_type_id != 0
         <if test="qcResultShortPageVO.isPlacefile != null and qcResultShortPageVO.isPlacefile != ''">
             and a.is_placefile = #{qcResultShortPageVO.isPlacefile}
@@ -9025,7 +9068,7 @@
         t1.gmt_create AS gradeTime,
         t1.diagnose,
         t1.ward_name AS wardName,
-        IF(t2.age is null, null,CONCAT( t2.age,IF(t2.age_unit is null, "",t2.age_unit)))as age,
+        CONCAT( ifnull(t2.age,'') ,ifnull(t2.age_unit,'') )as age,
         t1.file_code AS fileCode,
         t1.checkStatus,
         t1.mrStatus,
@@ -9268,7 +9311,7 @@
         t1.gmt_create AS gradeTime,
         t1.diagnose,
         t1.ward_name AS wardName,
-        IF(t2.age is null, null,CONCAT( t2.age,IF(t2.age_unit is null, "",t2.age_unit)))as age,
+        CONCAT( ifnull(t2.age,'') ,ifnull(t2.age_unit,'') )as age,
         t1.file_code AS fileCode,
         t1.checkStatus,
         t1.mrStatus,
@@ -9352,7 +9395,7 @@
             AND a.beh_dept_name LIKE CONCAT( '%', #{qcResultShortPageVO.deptName}, '%' )
         </if>
         <if test="qcResultShortPageVO.level != null and qcResultShortPageVO.level != ''">
-            AND c.`level` = #{qcResultShortPageVO.level}
+            AND b.`level` = #{qcResultShortPageVO.level}
         </if>
         <if test="qcResultShortPageVO.behospitalCode != null and qcResultShortPageVO.behospitalCode != ''">
             AND a.behospital_code LIKE CONCAT( '%', #{qcResultShortPageVO.behospitalCode}, '%' )
@@ -9430,8 +9473,10 @@
         f1.leaveHospitalDate,
         f1.score,
         f2.avgScore,
+        <if test="qcResultShortPageVO.radioCheck !=null and qcResultShortPageVO.radioCheck == 1">
         f1.msg,
         f1.caseName,
+        </if>
         f1.checkStatus,
         f1.mrStatus,
         f1.chName,
@@ -9446,8 +9491,10 @@
         t.behospitalDate AS behospitalDate,
         t.leaveHospitalDate AS leaveHospitalDate,
         qi.score_res AS score,
+        <if test="qcResultShortPageVO.radioCheck !=null and qcResultShortPageVO.radioCheck == 1">
         qd.msg AS msg,
         qc.NAME AS caseName,
+        </if>
         t.behDeptId,
         t.behDeptName,
         t.hospitalId,
@@ -9670,11 +9717,13 @@
         LEFT JOIN med_qcresult_info qi ON qi.is_deleted = 'N'
         AND t.hospitalId = qi.hospital_id
         AND t.behospitalCode = qi.behospital_code
+        <if test="qcResultShortPageVO.radioCheck !=null and qcResultShortPageVO.radioCheck == 1">
         LEFT JOIN med_qcresult_detail qd ON qd.is_deleted = 'N'
         AND t.hospitalId = qd.hospital_id
         AND t.behospitalCode = qd.behospital_code
         LEFT JOIN qc_cases qc ON qc.is_deleted = 'N'
         AND qd.cases_id = qc.id
+        </if>
         where 1=1
         <if test="qcResultShortPageVO.checkStatus != null">
             AND t.checkStatus = #{qcResultShortPageVO.checkStatus}
@@ -9966,8 +10015,10 @@
         f1.score,
         f1.scoreBn,
         f2.avgScore,
+        <if test="qcResultShortPageVO.radioCheck !=null and qcResultShortPageVO.radioCheck == 1">
         f1.msg,
         f1.caseName,
+        </if>
         f1.checkStatus,
         f1.mrStatus,
         f1.chName,
@@ -9983,8 +10034,10 @@
         t.leaveHospitalDate AS leaveHospitalDate,
         qi.score_res AS score,
         t.scoreBn,
+        <if test="qcResultShortPageVO.radioCheck !=null and qcResultShortPageVO.radioCheck == 1">
         qd.msg AS msg,
         qc.NAME AS caseName,
+        </if>
         t.behDeptId,
         t.behDeptName,
         t.hospitalId,
@@ -10146,11 +10199,13 @@
         LEFT JOIN med_qcresult_info qi ON qi.is_deleted = 'N'
         AND t.hospitalId = qi.hospital_id
         AND t.behospitalCode = qi.behospital_code
+        <if test="qcResultShortPageVO.radioCheck !=null and qcResultShortPageVO.radioCheck == 1">
         LEFT JOIN med_qcresult_detail qd ON qd.is_deleted = 'N'
         AND t.hospitalId = qd.hospital_id
         AND t.behospitalCode = qd.behospital_code
         LEFT JOIN qc_cases qc ON qc.is_deleted = 'N'
         AND qd.cases_id = qc.id
+        </if>
         where 1=1
         <if test="qcResultShortPageVO.checkStatus != null">
             AND t.checkStatus = #{qcResultShortPageVO.checkStatus}

+ 22 - 0
src/main/resources/mapper/MedNurseMapper.xml

@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.diagbot.mapper.MedNurseMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.diagbot.entity.MedNurse">
+        <result column="rep_no" property="repNo" />
+        <result column="hospital_id" property="hospitalId" />
+        <result column="behospital_code" property="behospitalCode" />
+        <result column="measure_time" property="measureTime" />
+        <result column="item_name" property="itemName" />
+        <result column="item_value" property="itemValue" />
+        <result column="item_unit" property="itemUnit" />
+        <result column="item_type" property="itemType" />
+        <result column="is_deleted" property="isDeleted" />
+        <result column="gmt_create" property="gmtCreate" />
+        <result column="gmt_modified" property="gmtModified" />
+        <result column="creator" property="creator" />
+        <result column="modifier" property="modifier" />
+    </resultMap>
+
+</mapper>