chengyao пре 4 година
родитељ
комит
865dd27474

+ 38 - 23
src/main/java/com/diagbot/dto/QualityControlDTO.java

@@ -72,53 +72,62 @@ public class QualityControlDTO {
      * 病案首页扣分
      */
     @Excel(name = "扣分", orderNum = "7")
-    private BigDecimal medHomePageScore;
-
+    private Double medHomePageScore;
+    private Double medHomePageScoreOn= 0d;
+    private Double medHomePageScoreTw= 0d;
     /**
      * 入院记录--
      */
     @Excel(name = "入院记录", orderNum = "8")
     private String admissionNote;
+
     /**
      * 入院记录扣分
      */
     @Excel(name = "扣分", orderNum = "9")
-    private BigDecimal admissionNoteScore;
-
+    private Double admissionNoteScore;
+    private Double admissionNoteScoreOn= 0d;
+    private Double admissionNoteScoreTw= 0d;
 
     /**
      * 首次病程录--
      */
     @Excel(name = "首次病程录", orderNum = "10")
     private String firstCourseNote;
+
     /**
      * 首次病程录扣分
      */
     @Excel(name = "扣分", orderNum = "11")
-    private BigDecimal firstCourseNoteScore;
-
+    private Double firstCourseNoteScore;
+    private Double firstCourseNoteScoreOn= 0d;
+    private Double firstCourseNoteScoreTw= 0d;
     /**
      * 病程记录--
      */
     @Excel(name = "病程记录", orderNum = "12")
     private String courseRecord;
+
     /**
      * 病程记录扣分
      */
     @Excel(name = "扣分", orderNum = "13")
-    private BigDecimal courseRecordScore;
-
+    private Double courseRecordScore;
+    private Double courseRecordScoreOn= 0d;
+    private Double courseRecordScoreTw= 0d;
     /**
      * 手术信息--
      */
     @Excel(name = "手术信息", orderNum = "14")
     private String  operationInfo;
+
     /**
      * 手术信息扣分
      */
     @Excel(name = "扣分", orderNum = "15")
-    private BigDecimal operationInfoScore;
-
+    private Double operationInfoScore;
+    private Double  operationInfoScoreOn= 0d;
+    private Double  operationInfoScoreTw= 0d;
     /**
      * 出院记录--
      */
@@ -128,8 +137,9 @@ public class QualityControlDTO {
      * 出院记录扣分
      */
     @Excel(name = "扣分", orderNum = "17")
-    private BigDecimal dischargeNoteScore;
-
+    private Double  dischargeNoteScore;
+    private Double  dischargeNoteScoreOn= 0d;
+    private Double  dischargeNoteScoreTw= 0d;
     /**
      * 医嘱单--
      */
@@ -139,8 +149,9 @@ public class QualityControlDTO {
      * 医嘱单扣分
      */
     @Excel(name = "扣分", orderNum = "19")
-    private BigDecimal docAdviceNoteScore;
-
+    private Double docAdviceNoteScore;
+    private Double  docAdviceNoteScoreOn= 0d;
+    private Double  docAdviceNoteScoreTw= 0d;
     /**
      * 其他
      */
@@ -150,13 +161,13 @@ public class QualityControlDTO {
      * 其他扣分
      */
     @Excel(name = "扣分", orderNum = "21")
-    private BigDecimal otherCaseScore;
+    private Double otherCaseScore;
 
     /**
      * 总分
      */
     @Excel(name = "总分", orderNum = "22")
-    private String  totalScore;
+    private Double  totalScore;
     /**
      * 病历等级
      */
@@ -178,39 +189,43 @@ public class QualityControlDTO {
     /**
      * 病案首页模块总分
      */
-    private BigDecimal medHomePageTolScore;
+    private Double medHomePageTolScore =0d;
 
 
     /**
      * 入院记录模块总分
      */
-    private BigDecimal admissionNoteTolScore;
+    private Double admissionNoteTolScore=0d;
 
     /**
      * 首次病程录模块总分
      */
-    private BigDecimal firstCourseNoteTolScore;
+    private Double firstCourseNoteTolScore=0d;
 
     /**
      * 病程记录模块总分
      */
-    private BigDecimal courseRecordTolScore;
+    private Double courseRecordTolScore=0d;
+
 
     /**
      * 手术信息模块总分
      */
-    private BigDecimal operationInfoTolScore;
+    private Double operationInfoTolScore=0d;
+
 
     /**
      * 出院记录模块总分
      */
-    private BigDecimal dischargeNoteTolScore;
+    private Double dischargeNoteTolScore=0d;
+
 
 
     /**
      * 医嘱单模块总分
      */
-    private BigDecimal docAdviceNoteTolScore;
+    private Double docAdviceNoteTolScore=0d;
+
 
 
 }

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

@@ -1603,6 +1603,7 @@ public class BehospitalInfoFacade extends BehospitalInfoServiceImpl {
                 = sysHospitalSetFacade.getOne(new QueryWrapper<SysHospitalSet>()
                         .eq("is_deleted", IsDeleteEnum.N.getKey())
                         .eq("hospital_id", analyzeRunVO.getHospitalId())
+                        .eq("code", "score_type")
                 , false);
         if (null != sysHospitalSet && sysHospitalSet.getValue().equals("1")) {
             //百分制

+ 128 - 7
src/main/java/com/diagbot/facade/ConsoleFacade.java

@@ -9,12 +9,14 @@ import com.diagbot.aggregate.ResultStatisticsAggregate;
 import com.diagbot.dto.*;
 import com.diagbot.entity.QcCasesEntry;
 import com.diagbot.entity.SysHospitalSet;
+import com.diagbot.enums.IsDeleteEnum;
 import com.diagbot.exception.CommonErrorCode;
 import com.diagbot.exception.CommonException;
 import com.diagbot.util.*;
 import com.diagbot.vo.*;
 import com.google.common.collect.Lists;
 import io.github.lvyahui8.spring.aggregate.facade.DataBeanAggregateQueryFacade;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.ibatis.annotations.Param;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
@@ -1255,22 +1257,141 @@ public class ConsoleFacade {
         behospitalPageSet(behospitalPageVO);
         long startTime = System.currentTimeMillis();
         IPage<QualityControlDTO> records = behospitalInfoFacade.getQualityControl(behospitalPageVO);
+        List<QualityControlDTO> qualityControlDTO = records.getRecords();
         long endTime1 = System.currentTimeMillis();
         System.out.println("endTime1 = " + (endTime1-startTime));
-      /*  //模块总扣分
-        List<QualityControlDTO>caseData= behospitalInfoFacade.getQualityCase(behospitalPageVO);
+        //模块总扣分
+        CaseScoreVO caseScoreVO = new CaseScoreVO();
+        BeanUtil.copyProperties(behospitalPageVO,caseScoreVO);
+        List<QualityControlDTO>caseData= behospitalInfoFacade.getQualityCase(caseScoreVO);
         long endTime2 = System.currentTimeMillis();
         System.out.println("endTime2 = " + (endTime2-endTime1));
-        //
-        List<QualityControlDTO>sorceData= behospitalInfoFacade.getQualitySorce(behospitalPageVO);
+        List<QualityControlDTO>sorceData= behospitalInfoFacade.getQualitySorce(caseScoreVO);
         long endTime3 = System.currentTimeMillis();
-        System.out.println("endTime3 = " + (endTime3-endTime2));*/
+        System.out.println("endTime3 = " + (endTime3-endTime2));
+        if( ListUtil.isNotEmpty(qualityControlDTO)){
+            for (QualityControlDTO totalData : qualityControlDTO)  {
+                if( ListUtil.isNotEmpty(caseData)){
+                for (QualityControlDTO qualityControlDTO2 : caseData) {
+                 if(totalData.getBehospitalCode().equals(qualityControlDTO2.getBehospitalCode())){
+                        totalData.setAdmissionNoteTolScore(qualityControlDTO2.getAdmissionNoteTolScore() == null ? 0d: qualityControlDTO2.getAdmissionNoteTolScore());
+                        totalData.setFirstCourseNoteTolScore(qualityControlDTO2.getFirstCourseNoteTolScore() == null ? 0d: qualityControlDTO2.getFirstCourseNoteTolScore());
+                        totalData.setMedHomePageTolScore(qualityControlDTO2.getMedHomePageTolScore() == null ? 0d: qualityControlDTO2.getMedHomePageTolScore());
+                        totalData.setDocAdviceNoteTolScore(qualityControlDTO2.getDocAdviceNoteTolScore() == null ? 0d: qualityControlDTO2.getDocAdviceNoteTolScore());
+                        totalData.setCourseRecordTolScore(qualityControlDTO2.getCourseRecordTolScore() == null ? 0d: qualityControlDTO2.getCourseRecordTolScore());
+                        totalData.setOperationInfoTolScore(qualityControlDTO2.getOperationInfoTolScore() == null ? 0d: qualityControlDTO2.getOperationInfoTolScore());
+                        totalData.setDischargeNoteTolScore(qualityControlDTO2.getDischargeNoteTolScore() == null ? 0d: qualityControlDTO2.getDischargeNoteTolScore());
+                        totalData.setTotalScore(qualityControlDTO2.getTotalScore()== null ? 0d : qualityControlDTO2.getTotalScore());
+                    }else{
+                     continue;
+                 }
+                };}
+                if( ListUtil.isNotEmpty(sorceData)){
+                for (QualityControlDTO qualityControlDTO2 : sorceData) {
+                    if(totalData.getBehospitalCode().equals(qualityControlDTO2.getBehospitalCode())) {
+                        totalData.setAdmissionNote(qualityControlDTO2.getAdmissionNote()== null? "无缺陷":qualityControlDTO2.getAdmissionNote());
+                        totalData.setFirstCourseNote(qualityControlDTO2.getFirstCourseNote()== null? "无缺陷":qualityControlDTO2.getAdmissionNote());
+                        totalData.setMedHomePage(qualityControlDTO2.getMedHomePage()== null? "无缺陷":qualityControlDTO2.getAdmissionNote());
+                        totalData.setDocAdviceNote(qualityControlDTO2.getDocAdviceNote()== null? "无缺陷":qualityControlDTO2.getAdmissionNote());
+                        totalData.setCourseRecord(qualityControlDTO2.getCourseRecord()== null? "无缺陷":qualityControlDTO2.getAdmissionNote());
+                        totalData.setOperationInfo(qualityControlDTO2.getOperationInfo()== null? "无缺陷":qualityControlDTO2.getAdmissionNote());
+                        totalData.setDischargeNote(qualityControlDTO2.getDischargeNote()== null? "无缺陷":qualityControlDTO2.getAdmissionNote());
+                        //存在单项否决
+                        Double medHomePageScorTh = qualityControlDTO2.getAdmissionNoteScoreTw()-qualityControlDTO2.getAdmissionNoteScoreOn();
+                        Double admissionNoteScoreTh =  qualityControlDTO2.getAdmissionNoteScoreTw()-qualityControlDTO2.getAdmissionNoteScoreOn();
+                        Double firstCourseNoteScoreTh =  qualityControlDTO2.getAdmissionNoteScoreTw()-qualityControlDTO2.getAdmissionNoteScoreOn();
+                        Double courseRecordScoreTh =  qualityControlDTO2.getAdmissionNoteScoreTw()-qualityControlDTO2.getAdmissionNoteScoreOn();
+                        Double operationInfoScoreTh =  qualityControlDTO2.getAdmissionNoteScoreTw()-qualityControlDTO2.getAdmissionNoteScoreOn();
+                        Double dischargeNoteScoreTh =  qualityControlDTO2.getAdmissionNoteScoreTw()-qualityControlDTO2.getAdmissionNoteScoreOn();
+                        Double docAdviceNoteScoreTh =  qualityControlDTO2.getAdmissionNoteScoreTw()-qualityControlDTO2.getAdmissionNoteScoreOn();
+
+                        //存在单项否决
+                        Double medHomePageScore =  totalData.getMedHomePageTolScore()+medHomePageScorTh;
+                        Double medHomePageScoreTw = qualityControlDTO2.getMedHomePageScoreOn()+medHomePageScorTh;
+                        if(qualityControlDTO2.getMedHomePageScoreOn()>=totalData.getMedHomePageTolScore()){
+                            totalData.setMedHomePageScore( medHomePageScore == null ? 0d : medHomePageScore);
+                        }else{
+                            totalData.setMedHomePageScore(medHomePageScoreTw == null ? 0d : medHomePageScoreTw);
+                        }
+
+                        Double admissionNoteTolScore =  totalData.getAdmissionNoteTolScore()+admissionNoteScoreTh;
+                        Double admissionNoteTolScoreTw= qualityControlDTO2.getAdmissionNoteScoreOn()+admissionNoteScoreTh;
+                        if(qualityControlDTO2.getAdmissionNoteScoreOn()>=totalData.getAdmissionNoteTolScore()){
+                            totalData.setAdmissionNoteScore( admissionNoteTolScore == null ? 0d : admissionNoteTolScore);
+                        }else{
+                            totalData.setAdmissionNoteScore( admissionNoteTolScoreTw == null ? 0d : admissionNoteTolScoreTw);
+                        }
+
+                        Double firstCourseNoteScore =  totalData.getFirstCourseNoteTolScore()+firstCourseNoteScoreTh;
+                        Double firstCourseNoteScoreTw =  qualityControlDTO2.getFirstCourseNoteScoreOn()+firstCourseNoteScoreTh;
+                        if(qualityControlDTO2.getFirstCourseNoteScoreOn()>=totalData.getFirstCourseNoteTolScore()){
+                            totalData.setFirstCourseNoteScore(firstCourseNoteScore == null ? 0d : firstCourseNoteScore);
+                        }else{
+                            totalData.setFirstCourseNoteScore(firstCourseNoteScoreTw == null ? 0d : firstCourseNoteScoreTw);
+                        }
+                        Double courseRecordScore =  totalData.getCourseRecordTolScore()+courseRecordScoreTh;
+                        Double courseRecordScoreTw =  qualityControlDTO2.getCourseRecordScoreOn()+courseRecordScoreTh;
+                        if(qualityControlDTO2.getCourseRecordScoreOn()>=totalData.getCourseRecordTolScore()){
+                            totalData.setCourseRecordScore(courseRecordScore == null ? 0d : courseRecordScore);
+                        }else{
+                            totalData.setCourseRecordScore(courseRecordScoreTw == null ? 0d : courseRecordScoreTw);
+                        }
+                        Double operationInfoScore = totalData.getOperationInfoTolScore()+operationInfoScoreTh;
+                        Double operationInfoScoreTw =  qualityControlDTO2.getOperationInfoScoreOn()+operationInfoScoreTh;
+                        if(qualityControlDTO2.getOperationInfoScoreOn()>=totalData.getOperationInfoTolScore()){
+                            totalData.setOperationInfoScore(operationInfoScore == null ? 0d : operationInfoScore);
+                        }else{
+                            totalData.setOperationInfoScore(operationInfoScoreTw == null ? 0d : operationInfoScoreTw);
+                        }
+                        Double dischargeNoteScore = totalData.getDischargeNoteTolScore()+dischargeNoteScoreTh;
+                        Double dischargeNoteScoreTw = qualityControlDTO2.getDischargeNoteScoreOn()+dischargeNoteScoreTh;
+                        if(qualityControlDTO2.getDischargeNoteScoreOn()>=totalData.getDischargeNoteTolScore()){
+                            totalData.setDischargeNoteScore(dischargeNoteScore == null ? 0d : dischargeNoteScore);
+                        }else{
+                            totalData.setDischargeNoteScore(dischargeNoteScoreTw == null ? 0d : dischargeNoteScoreTw);
+                        }
+                        Double docAdviceNoteScore =totalData.getDocAdviceNoteTolScore()+docAdviceNoteScoreTh;
+                        Double docAdviceNoteScoreTw =qualityControlDTO2.getDocAdviceNoteScoreOn()+docAdviceNoteScoreTh;
+                        if(qualityControlDTO2.getDocAdviceNoteScoreOn()>=totalData.getDocAdviceNoteTolScore()){
+                            totalData.setDocAdviceNoteScore(docAdviceNoteScore == null ? 0d : docAdviceNoteScore);
+                        }else{
+                            totalData.setDocAdviceNoteScore(docAdviceNoteScoreTw == null ? 0d : docAdviceNoteScoreTw);
+                        }
+
+                    }else{
+                        continue;
+                    }
+                };}
+            Double mainScore =  totalData.getMedHomePageScore()+totalData.getAdmissionNoteScore()+totalData.getFirstCourseNoteScore()+
+            totalData.getCourseRecordScore()+totalData.getOperationInfoScore()+totalData.getDischargeNoteScore()+totalData. getDocAdviceNoteScore();
+                Double otherScore = new Double(0d);
+                Double otherCaseScore = null;
+                Double res = new Double(120d);
+                Double resPr = new Double(100d);
+                String scoreType = "0";
+                 scoreType = sysHospitalSetFacade.getScoreType(caseScoreVO.getHospitalId());
+                    if ("1".equals(scoreType)) {
+                        otherScore = (resPr-totalData.getTotalScore()-mainScore);
+                    } else if ("0".equals(scoreType)) {
+                        otherScore = res-(totalData.getTotalScore()*res/resPr)-mainScore;
+                    }
+                 otherCaseScore = (double) Math.round(otherScore * 10) / 10;
+                totalData.setOtherCaseScore(otherCaseScore == null ? 0d : otherCaseScore  );
+
+
+            };
+        }
+
+
+        //
+        long endTime4= System.currentTimeMillis();
+        System.out.println("endTime4 = " + (endTime4-endTime3));
+
 
       /*  List<QualityControlDTO>records= behospitalInfoFacade.getQualityCaseSorce(behospitalPageVO);
         long endTime3 = System.currentTimeMillis();*/
     //    System.out.println("endTime3 = " + (endTime3-startTime));
-
-      //  System.out.println("总耗时 = " + (endTime3-startTime));
+        System.out.println("总耗时 = " + (endTime3-startTime));
         return records;
 
     }

+ 4 - 4
src/main/java/com/diagbot/mapper/BehospitalInfoMapper.java

@@ -150,18 +150,18 @@ public interface BehospitalInfoMapper extends BaseMapper<BehospitalInfo> {
     /**
      * 病历质控报表--扣分项
      *
-     * @param behospitalPageVO
+     * @param caseScoreVO
      * @return
      */
-    public List<QualityControlDTO> getQualityCase(BehospitalPageVO behospitalPageVO);
+    public List<QualityControlDTO> getQualityCase(CaseScoreVO caseScoreVO);
 
     /**
      * 病历质控报表-扣分
      *
-     * @param behospitalPageVO
+     * @param caseScoreVO
      * @return
      */
-    public List<QualityControlDTO> getQualitySorce(BehospitalPageVO behospitalPageVO);
+    public List<QualityControlDTO> getQualitySorce(CaseScoreVO caseScoreVO);
 
     /**
      * 病历质控报表-扣分数据

+ 4 - 4
src/main/java/com/diagbot/service/BehospitalInfoService.java

@@ -152,18 +152,18 @@ public interface BehospitalInfoService extends IService<BehospitalInfo> {
     /**
      * 病历质控报表-扣分项
      *
-     * @param behospitalPageVO
+     * @param caseScoreVO
      * @return
      */
-    public List<QualityControlDTO> getQualityCase(BehospitalPageVO behospitalPageVO);
+    public List<QualityControlDTO> getQualityCase(CaseScoreVO caseScoreVO);
 
     /**
      * 病历质控报表-扣分
      *
-     * @param behospitalPageVO
+     * @param caseScoreVO
      * @return
      */
-    public List<QualityControlDTO> getQualitySorce(BehospitalPageVO behospitalPageVO);
+    public List<QualityControlDTO> getQualitySorce(CaseScoreVO caseScoreVO);
 
     /**
      * 病历质控报表

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

@@ -216,23 +216,23 @@ public class BehospitalInfoServiceImpl extends ServiceImpl<BehospitalInfoMapper,
     /**
      * 病历质控报表-扣分项
      *
-     * @param behospitalPageVO
+     * @param caseScoreVO
      * @return
      */
     @Override
-    public List<QualityControlDTO> getQualityCase(BehospitalPageVO behospitalPageVO) {
-        return baseMapper.getQualityCase(behospitalPageVO);
+    public List<QualityControlDTO> getQualityCase(CaseScoreVO caseScoreVO) {
+        return baseMapper.getQualityCase(caseScoreVO);
     }
 
     /**
      * 病历质控报表-扣分
      *
-     * @param behospitalPageVO
+     * @param caseScoreVO
      * @return
      */
     @Override
-    public List<QualityControlDTO> getQualitySorce(BehospitalPageVO behospitalPageVO) {
-        return baseMapper.getQualitySorce(behospitalPageVO);
+    public List<QualityControlDTO> getQualitySorce(CaseScoreVO caseScoreVO) {
+        return baseMapper.getQualitySorce(caseScoreVO);
     }
     /**
      * 病历质控报表-扣分数据

+ 112 - 0
src/main/java/com/diagbot/vo/CaseScoreVO.java

@@ -0,0 +1,112 @@
+package com.diagbot.vo;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 病历质控
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2020-04-13
+ */
+@Data
+public class CaseScoreVO  implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 医院ID
+     */
+    @ApiModelProperty(hidden = true)
+    private Long hospitalId;
+
+    /**
+     * 病人住院ID
+     */
+    private String behospitalCode;
+
+    /**
+     * 姓名
+     */
+    private String name;
+
+    /**
+     * 档案号
+     */
+    private String fileCode;
+
+    /**
+     * 入院时间开始时间
+     */
+    private Date behosDateStart;
+
+    /**
+     * 入院时间结束时间
+     */
+    private Date behosDateEnd;
+
+    /**
+     * 出院时间开始时间
+     */
+    private Date leaveHosDateStart;
+
+    /**
+     * 出院时间结束时间
+     */
+    private Date leaveHosDateEnd;
+
+    /**
+     * 等级
+     */
+    private String level;
+
+    /**
+     * 住院科室名称
+     */
+    private String deptName;
+
+    /**
+     * 主诊断
+     */
+    private String diagnose;
+
+    /**
+     * 医生姓名
+     */
+    private String doctorName;
+
+    @ApiModelProperty(hidden = true)
+    private Long userId;
+
+    /**
+     * 医生工号
+     */
+    private String doctorCode;
+
+    /**
+     * 统计维度 1-本月,2-本年
+     */
+    private Integer statisticsType;
+
+    /**
+     * 是否归档(0:未归档,1:已归档)
+     */
+//    @ApiModelProperty(hidden = true)
+    private String isPlacefile = "1";
+
+    private Integer checkStatus;
+    private Integer mrStatus;
+    private String chName;
+    private String mrName;
+    private Date chTimeStart;
+    private Date chTimeEnd;
+    private Date mrTimeStart;
+    private Date mrTimeEnd;
+
+}

+ 17 - 17
src/main/resources/mapper/BehospitalInfoMapper.xml

@@ -146,9 +146,9 @@
     <select id="getQualityCase" resultType="com.diagbot.dto.QualityControlDTO">
         SELECT
         m1.* ,
-        m2.score_res
+        m2.score_res as totalScore
         from(
-        SELECT
+        SELECT DISTINCT
         m1.hospital_id,
         m1.behospital_code,
         SUM(CASE WHEN  m1.mode_id =1 THEN m1.cases_score ELSE 0 END) AS admissionNoteTolScore,
@@ -208,7 +208,6 @@
         <if test="level != null and level != ''">
             and e.level = #{level}
         </if>
-        GROUP BY mode_id
         ORDER BY b.order_no, c.grade_type DESC, a.order_no
         )m1  GROUP BY  behospital_code)m1 LEFT JOIN  med_qcresult_info m2
         ON m2.is_deleted = 'N'
@@ -392,32 +391,25 @@
         GROUP_CONCAT(DISTINCT CASE WHEN t1.mode_id = 1 THEN t1.msg ELSE NULL END SEPARATOR ';' ) AS admissionNote,
         SUM(CASE WHEN  t1.mode_id =1  AND t1.is_reject = 0 THEN t1.score ELSE 0 END) AS admissionNoteScoreOn,
         SUM(CASE WHEN  t1.mode_id =1 THEN t1.score ELSE 0 END) AS admissionNoteScoreTw,
-        (SUM(CASE WHEN  t1.mode_id =1 THEN t1.score ELSE 0 END)-SUM(CASE WHEN  t1.mode_id =1  AND t1.is_reject = 0 THEN t1.score ELSE 0 END)) AS admissionNoteScoreTh,
         GROUP_CONCAT(DISTINCT CASE WHEN t1.mode_id = 2 THEN t1.msg ELSE NULL END SEPARATOR ';' ) AS firstCourseNote,
         SUM(CASE WHEN  t1.mode_id =2 AND t1.is_reject = 0 THEN t1.score ELSE 0 END)  AS firstCourseNoteScoreOn,
         SUM(CASE WHEN  t1.mode_id =2 THEN t1.score ELSE 0 END)  AS firstCourseNoteScoreTw,
-        (SUM(CASE WHEN  t1.mode_id =2 THEN t1.score ELSE 0 END) -SUM(CASE WHEN  t1.mode_id =2 AND t1.is_reject = 0 THEN t1.score ELSE 0 END)) AS firstCourseNoteScoreTh,
         GROUP_CONCAT(DISTINCT CASE WHEN t1.mode_id = 6 THEN t1.msg ELSE NULL END SEPARATOR ';' ) AS medHomePage,
         SUM(CASE WHEN  t1.mode_id =6 AND t1.is_reject = 0 THEN t1.score ELSE 0 END) AS medHomePageScoreOn,
         SUM(CASE WHEN  t1.mode_id =6 THEN t1.score ELSE 0 END) AS medHomePageScoreTw,
-        (SUM(CASE WHEN  t1.mode_id =6 THEN t1.score ELSE 0 END)-SUM(CASE WHEN  t1.mode_id =6 AND t1.is_reject = 0 THEN t1.score ELSE 0 END)) AS medHomePageScoreTh,
         GROUP_CONCAT(DISTINCT CASE WHEN t1.mode_id = 8 THEN t1.msg ELSE NULL END SEPARATOR ';' ) AS docAdviceNote,
         SUM(CASE WHEN  t1.mode_id =8 AND t1.is_reject = 0 THEN t1.score ELSE 0 END) AS docAdviceNoteScoreOn,
         SUM(CASE WHEN  t1.mode_id =8 THEN t1.score ELSE 0 END) AS docAdviceNoteScoreTw,
-        (SUM(CASE WHEN  t1.mode_id =8 THEN t1.score ELSE 0 END)-SUM(CASE WHEN  t1.mode_id =8 AND t1.is_reject = 0 THEN t1.score ELSE 0 END)) AS docAdviceNoteScoreTh,
         GROUP_CONCAT(DISTINCT CASE WHEN t1.mode_id = 56 THEN t1.msg ELSE NULL END SEPARATOR ';' ) AS courseRecord,
         SUM(CASE WHEN  t1.mode_id =56 AND t1.is_reject = 0 THEN t1.score ELSE 0 END)  AS courseRecordScoreOn,
         SUM(CASE WHEN  t1.mode_id =56 THEN t1.score ELSE 0 END)  AS courseRecordScoreTw,
-        (SUM(CASE WHEN  t1.mode_id =56 THEN t1.score ELSE 0 END)-SUM(CASE WHEN  t1.mode_id =56 AND t1.is_reject = 0 THEN t1.score ELSE 0 END)) AS courseRecordScoreTh,
         GROUP_CONCAT(DISTINCT CASE WHEN t1.mode_id = 17 THEN t1.msg ELSE NULL END SEPARATOR ';' ) AS operationInfo,
         SUM(CASE WHEN  t1.mode_id =17 AND t1.is_reject = 0 THEN t1.score ELSE 0 END) AS operationInfoScoreOn,
         SUM(CASE WHEN  t1.mode_id =17  THEN t1.score ELSE 0 END) AS operationInfoScoreTw,
-        (SUM(CASE WHEN  t1.mode_id =17  THEN t1.score ELSE 0 END)-SUM(CASE WHEN  t1.mode_id =17 AND t1.is_reject = 0 THEN t1.score ELSE 0 END)) AS operationInfoScoreTh,
         GROUP_CONCAT(DISTINCT CASE WHEN t1.mode_id = 5 THEN t1.msg ELSE NULL END SEPARATOR ';' ) AS dischargeNote,
         SUM(CASE WHEN  t1.mode_id =5 AND t1.is_reject = 0 THEN t1.score ELSE 0 END)  AS dischargeNoteScoreOn,
         SUM(CASE WHEN  t1.mode_id =5 THEN t1.score ELSE 0 END)  AS dischargeNoteScoreTw,
-        (SUM(CASE WHEN  t1.mode_id =5 THEN t1.score ELSE 0 END)-GROUP_CONCAT(DISTINCT CASE WHEN t1.mode_id = 5 THEN t1.msg ELSE NULL END SEPARATOR ';' )) AS dischargeNoteScoreTh,
-        GROUP_CONCAT(DISTINCT CASE WHEN 1=1 THEN t1.msg ELSE NULL END SEPARATOR ';' ) AS otherCase
+        GROUP_CONCAT(DISTINCT CASE WHEN t1.mode_id != 1 AND t1.mode_id !=  2 AND t1.mode_id !=  6 AND t1.mode_id != 8 AND t1.mode_id != 156 AND t1.mode_id != 17 AND t1.mode_id != 5 THEN t1.msg ELSE NULL END SEPARATOR ';' ) AS otherCase
         FROM (
         SELECT
         c.behospital_code,
@@ -475,13 +467,21 @@
         )t1 GROUP BY behospital_code
     </select>
 
-   <!-- <select id="getQualityControl" resultType="com.diagbot.dto.QualityControlDTO">
+    <select id="getQualityControl" resultType="com.diagbot.dto.QualityControlDTO">
         SELECT * FROM (
-        select   t.*,
+        select
+        t.name AS NAME,
+        t.behospital_code AS behospitalCode,
+        t.doctor_name AS doctorName,
+        t.beh_dept_name AS deptName,
+        t.beh_dept_id AS deptId,
+        t.leave_hospital_date AS leaveHospitalDate,
+        t.level,
+        t.is_deleted,
         g.check_name AS ch_name,
         h.check_name AS mr_name
         from (
-        select a.*, ifnull(b.level,'未评分') as `level`, b.grade_type, b.score_res, b.gmt_create as
+        select a.*, ifnull(b.level,'未评分') as level, b.grade_type, b.score_res, b.gmt_create as
         grade_time from med_behospital_info a
         LEFT JOIN med_qcresult_info b
         on a.behospital_code = b.behospital_code and b.is_deleted = 'N'
@@ -547,8 +547,8 @@
         <if test="mrName != null and mrName !=''">
             AND p.mr_name like CONCAT('%',#{mrName},'%')
         </if>
-    </select>-->
-    <select id="getQualityControl" resultType="com.diagbot.dto.QualityControlDTO">
+    </select>
+   <!-- <select id="getQualityControl" resultType="com.diagbot.dto.QualityControlDTO">
         SELECT m.* FROM(
         SELECT
         a.name AS NAME,
@@ -831,7 +831,7 @@
             AND h.mr_name like CONCAT('%',#{mrName},'%')
         </if>)m
 
-    </select>
+    </select>-->
 
     <select id="getMsg" resultType="com.diagbot.dto.MsgDTO">
         SELECT b.`name` model_name,c.score,c.msg,c.cases_entry_id,c.is_reject,c.id id,c.info,