Kaynağa Gözat

病例质控分页

chengyao 4 yıl önce
ebeveyn
işleme
1799e3a73d

+ 37 - 0
src/main/java/com/diagbot/dto/QualityControlDTO.java

@@ -175,5 +175,42 @@ public class QualityControlDTO {
     private String chName;
 
 
+    /**
+     * 病案首页模块总分
+     */
+    private BigDecimal medHomePageTolScore;
+
+
+    /**
+     * 入院记录模块总分
+     */
+    private BigDecimal admissionNoteTolScore;
+
+    /**
+     * 首次病程录模块总分
+     */
+    private BigDecimal firstCourseNoteTolScore;
+
+    /**
+     * 病程记录模块总分
+     */
+    private BigDecimal courseRecordTolScore;
+
+    /**
+     * 手术信息模块总分
+     */
+    private BigDecimal operationInfoTolScore;
+
+    /**
+     * 出院记录模块总分
+     */
+    private BigDecimal dischargeNoteTolScore;
+
+
+    /**
+     * 医嘱单模块总分
+     */
+    private BigDecimal docAdviceNoteTolScore;
+
 
 }

+ 20 - 3
src/main/java/com/diagbot/facade/ConsoleFacade.java

@@ -1251,11 +1251,28 @@ public class ConsoleFacade {
      * @param behospitalPageVO
      * @return
      */
-    public List<QualityControlDTO> getQualityControl(BehospitalPageVO behospitalPageVO) {
+    public IPage<QualityControlDTO> getQualityControl(BehospitalPageVO behospitalPageVO) {
         behospitalPageSet(behospitalPageVO);
-      //  QualityCaseScoreDTO qualityCaseScoreDTO =  behospitalInfoFacade.getQualityCaseSorce(behospitalPageVO);
-        List<QualityControlDTO> records = behospitalInfoFacade.getQualityControl(behospitalPageVO);
+        long startTime = System.currentTimeMillis();
+        IPage<QualityControlDTO> records = behospitalInfoFacade.getQualityControl(behospitalPageVO);
+        long endTime1 = System.currentTimeMillis();
+        System.out.println("endTime1 = " + (endTime1-startTime));
+      /*  //模块总扣分
+        List<QualityControlDTO>caseData= behospitalInfoFacade.getQualityCase(behospitalPageVO);
+        long endTime2 = System.currentTimeMillis();
+        System.out.println("endTime2 = " + (endTime2-endTime1));
+        //
+        List<QualityControlDTO>sorceData= behospitalInfoFacade.getQualitySorce(behospitalPageVO);
+        long endTime3 = System.currentTimeMillis();
+        System.out.println("endTime3 = " + (endTime3-endTime2));*/
+
+      /*  List<QualityControlDTO>records= behospitalInfoFacade.getQualityCaseSorce(behospitalPageVO);
+        long endTime3 = System.currentTimeMillis();*/
+    //    System.out.println("endTime3 = " + (endTime3-startTime));
+
+      //  System.out.println("总耗时 = " + (endTime3-startTime));
         return records;
+
     }
 
     private void behospitalPageSet(BehospitalPageVO behospitalPageVO) {

+ 27 - 1
src/main/java/com/diagbot/mapper/BehospitalInfoMapper.java

@@ -147,13 +147,39 @@ public interface BehospitalInfoMapper extends BaseMapper<BehospitalInfo> {
      */
     public List<HomePageNumDTO> homePageLevelStatistics(FilterOrderVO filterOrderVO);
 
+    /**
+     * 病历质控报表--扣分项
+     *
+     * @param behospitalPageVO
+     * @return
+     */
+    public List<QualityControlDTO> getQualityCase(BehospitalPageVO behospitalPageVO);
+
+    /**
+     * 病历质控报表-扣分
+     *
+     * @param behospitalPageVO
+     * @return
+     */
+    public List<QualityControlDTO> getQualitySorce(BehospitalPageVO behospitalPageVO);
+
+    /**
+     * 病历质控报表-扣分数据
+     *
+     * @param behospitalPageVO
+     * @return
+     */
+    public List<QualityControlDTO> getQualityCaseSorce(BehospitalPageVO behospitalPageVO);
+
+
+
     /**
      * 病历质控报表
      *
      * @param behospitalPageVO
      * @return
      */
-    public List<QualityControlDTO> getQualityControl(BehospitalPageVO behospitalPageVO);
+    public IPage<QualityControlDTO> getQualityControl(BehospitalPageVO behospitalPageVO);
 
 
     /**

+ 28 - 1
src/main/java/com/diagbot/service/BehospitalInfoService.java

@@ -147,13 +147,40 @@ public interface BehospitalInfoService extends IService<BehospitalInfo> {
      */
     public List<HomePageNumDTO> homePageLevelStatistics(FilterOrderVO filterOrderVO);
 
+
+
+    /**
+     * 病历质控报表-扣分项
+     *
+     * @param behospitalPageVO
+     * @return
+     */
+    public List<QualityControlDTO> getQualityCase(BehospitalPageVO behospitalPageVO);
+
+    /**
+     * 病历质控报表-扣分
+     *
+     * @param behospitalPageVO
+     * @return
+     */
+    public List<QualityControlDTO> getQualitySorce(BehospitalPageVO behospitalPageVO);
+
+    /**
+     * 病历质控报表
+     *
+     * @param behospitalPageVO
+     * @return
+     */
+    public List<QualityControlDTO> getQualityCaseSorce(BehospitalPageVO behospitalPageVO);
+
+
     /**
      * 病历质控报表
      *
      * @param behospitalPageVO
      * @return
      */
-    public List<QualityControlDTO> getQualityControl(BehospitalPageVO behospitalPageVO);
+    public IPage<QualityControlDTO> getQualityControl(BehospitalPageVO behospitalPageVO);
 
 
     /**

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

@@ -213,6 +213,37 @@ public class BehospitalInfoServiceImpl extends ServiceImpl<BehospitalInfoMapper,
         return baseMapper.homePageLevelStatistics(filterOrderVO);
     }
 
+    /**
+     * 病历质控报表-扣分项
+     *
+     * @param behospitalPageVO
+     * @return
+     */
+    @Override
+    public List<QualityControlDTO> getQualityCase(BehospitalPageVO behospitalPageVO) {
+        return baseMapper.getQualityCase(behospitalPageVO);
+    }
+
+    /**
+     * 病历质控报表-扣分
+     *
+     * @param behospitalPageVO
+     * @return
+     */
+    @Override
+    public List<QualityControlDTO> getQualitySorce(BehospitalPageVO behospitalPageVO) {
+        return baseMapper.getQualitySorce(behospitalPageVO);
+    }
+    /**
+     * 病历质控报表-扣分数据
+     *
+     * @param behospitalPageVO
+     * @return
+     */
+    @Override
+    public List<QualityControlDTO> getQualityCaseSorce(BehospitalPageVO behospitalPageVO) {
+        return baseMapper.getQualityCaseSorce(behospitalPageVO);
+    }
     /**
      * 病历质控报表
      *
@@ -220,7 +251,7 @@ public class BehospitalInfoServiceImpl extends ServiceImpl<BehospitalInfoMapper,
      * @return
      */
     @Override
-    public List<QualityControlDTO> getQualityControl(BehospitalPageVO behospitalPageVO) {
+    public IPage<QualityControlDTO> getQualityControl(BehospitalPageVO behospitalPageVO) {
         return baseMapper.getQualityControl(behospitalPageVO);
     }
 

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

@@ -457,7 +457,7 @@ public class ConsoleController {
                     "isPlacefile: 是否归档(0:未归档,1:已归档) <br>")
     @PostMapping("/qualityControl")
     @SysLogger("qualityControl")
-    public RespDTO<List<QualityControlDTO>> getQualityControl(@RequestBody BehospitalPageVO behospitalPageVO) {
+    public RespDTO<IPage<QualityControlDTO>> getQualityControl(@RequestBody BehospitalPageVO behospitalPageVO) {
         return RespDTO.onSuc(consoleFacade.getQualityControl(behospitalPageVO));
     }
 

+ 406 - 1
src/main/resources/mapper/BehospitalInfoMapper.xml

@@ -143,6 +143,411 @@
         </if>
     </select>
 
+    <select id="getQualityCase" resultType="com.diagbot.dto.QualityControlDTO">
+        SELECT
+        m1.* ,
+        m2.score_res
+        from(
+        SELECT
+        m1.hospital_id,
+        m1.behospital_code,
+        SUM(CASE WHEN  m1.mode_id =1 THEN m1.cases_score ELSE 0 END) AS admissionNoteTolScore,
+        SUM(CASE WHEN  m1.mode_id =2 THEN m1.cases_score ELSE 0 END) AS firstCourseNoteTolScore,
+        SUM(CASE WHEN  m1.mode_id =6 THEN m1.cases_score ELSE 0 END) AS medHomePageTolScore,
+        SUM(CASE WHEN  m1.mode_id =8 THEN m1.cases_score ELSE 0 END) AS docAdviceNoteTolScore,
+        SUM(CASE WHEN  m1.mode_id =56 THEN m1.cases_score ELSE 0 END) AS courseRecordTolScore,
+        SUM(CASE WHEN  m1.mode_id =17 THEN m1.cases_score ELSE 0 END) AS operationInfoTolScore,
+        SUM(CASE WHEN  m1.mode_id =5 THEN m1.cases_score ELSE 0 END) AS dischargeNoteTolScore
+        FROM (
+        SELECT
+        c.behospital_code,
+        a.mode_id,
+        c.cases_score,
+        c.cases_id,
+        c.hospital_id
+        FROM
+        `qc_cases_entry` a,
+        qc_mode b,
+        med_qcresult_detail c,
+        qc_cases_hospital d,
+        med_behospital_info e
+        WHERE a.is_deleted = 'N' AND b.is_deleted = 'N' AND c.is_deleted = 'N' AND d.is_deleted = 'N'AND e.is_deleted = 'N'
+        AND a.id = c.cases_entry_id
+        AND a.mode_id = b.id
+        AND c.cases_id = d.cases_id
+        AND c.hospital_id = d.hospital_id
+        AND c.behospital_code = e.behospital_code
+        AND c.hospital_id = e.hospital_id
+        <if test="hospitalId != null">
+            and c.hospital_id = #{hospitalId}
+        </if>
+        <if test="deptName != null and deptName != ''">
+            and e.beh_dept_name= #{deptName}
+        </if>
+        <if test="behospitalCode != null and behospitalCode != ''">
+            and e.behospital_code like CONCAT('%',#{behospitalCode},'%')
+        </if>
+        <if test="isPlacefile != null and isPlacefile != ''">
+            and e.is_placefile = #{isPlacefile}
+        </if>
+        <if test="behosDateStart != null">
+            <![CDATA[ and e.behospital_date >= #{behosDateStart}]]>
+        </if>
+        <if test="behosDateEnd != null">
+            <![CDATA[ and e.behospital_date < #{behosDateEnd}]]>
+        </if>
+        <if test="leaveHosDateStart != null">
+            <![CDATA[ and e.leave_hospital_date >= #{leaveHosDateStart}]]>
+        </if>
+        <if test="leaveHosDateEnd != null">
+            <![CDATA[ and e.leave_hospital_date < #{leaveHosDateEnd}]]>
+        </if>
+        <if test="level != null and level != ''">
+            and e.level = #{level}
+        </if>
+        <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'
+        AND m1.hospital_id = m2.hospital_id
+        AND m1.behospital_code = m2.behospital_code
+    </select>
+    <select id="getQualityCaseSorce" resultType="com.diagbot.dto.QualityControlDTO">
+        select
+        t1.*,
+        t2.admissionNoteTolScore,
+        t2.firstCourseNoteTolScore,
+        t2.medHomePageTolScore,
+        t2.docAdviceNoteTolScore,
+        t2.courseRecordTolScore,
+        t2.operationInfoTolScore,
+        t2.dischargeNoteTolScore,
+        t2.score_res FROM (
+        SELECT
+        t1.behospital_code,
+        t1.hospital_id,
+        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 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,
+        c.hospital_id,
+        a.mode_id,
+        c.cases_score,
+        c.score,
+        c.msg,
+        c.is_reject,
+        c.cases_id
+        FROM
+        `qc_cases_entry` a,
+        qc_mode b,
+        med_qcresult_detail c,
+        qc_cases_hospital d,
+        med_behospital_info e
+        WHERE a.is_deleted = 'N' AND b.is_deleted = 'N' AND c.is_deleted = 'N' AND d.is_deleted = 'N'AND e.is_deleted = 'N'
+        AND a.id = c.cases_entry_id
+        AND a.mode_id = b.id
+        AND c.cases_id = d.cases_id
+        AND c.hospital_id = d.hospital_id
+        AND c.behospital_code = e.behospital_code
+        AND c.hospital_id = e.hospital_id
+        <if test="hospitalId != null">
+            and c.hospital_id = #{hospitalId}
+        </if>
+        <if test="deptName != null and deptName != ''">
+            and e.beh_dept_name= #{deptName}
+        </if>
+        <if test="behospitalCode != null and behospitalCode != ''">
+            and e.behospital_code like CONCAT('%',#{behospitalCode},'%')
+        </if>
+        <if test="isPlacefile != null and isPlacefile != ''">
+            and e.is_placefile = #{isPlacefile}
+        </if>
+        <if test="behosDateStart != null">
+            <![CDATA[ and e.behospital_date >= #{behosDateStart}]]>
+        </if>
+        <if test="behosDateEnd != null">
+            <![CDATA[ and e.behospital_date < #{behosDateEnd}]]>
+        </if>
+        <if test="leaveHosDateStart != null">
+            <![CDATA[ and e.leave_hospital_date >= #{leaveHosDateStart}]]>
+        </if>
+        <if test="leaveHosDateEnd != null">
+            <![CDATA[ and e.leave_hospital_date < #{leaveHosDateEnd}]]>
+        </if>
+        <if test="level != null and level != ''">
+            and e.level = #{level}
+        </if>
+        <if test="level != null and level != ''">
+            and e.level = #{level}
+        </if>
+        ORDER BY b.order_no, c.grade_type DESC, a.order_no
+        )t1 GROUP BY behospital_code)t1
+        LEFT JOIN (
+        SELECT m1.*, m2.score_res FROM(
+        SELECT
+        m1.hospital_id,
+        m1.behospital_code,
+        SUM(CASE WHEN  m1.mode_id =1 THEN m1.cases_score ELSE 0 END) AS admissionNoteTolScore,
+        SUM(CASE WHEN  m1.mode_id =2 THEN m1.cases_score ELSE 0 END) AS firstCourseNoteTolScore,
+        SUM(CASE WHEN  m1.mode_id =6 THEN m1.cases_score ELSE 0 END) AS medHomePageTolScore,
+        SUM(CASE WHEN  m1.mode_id =8 THEN m1.cases_score ELSE 0 END) AS docAdviceNoteTolScore,
+        SUM(CASE WHEN  m1.mode_id =56 THEN m1.cases_score ELSE 0 END) AS courseRecordTolScore,
+        SUM(CASE WHEN  m1.mode_id =17 THEN m1.cases_score ELSE 0 END) AS operationInfoTolScore,
+        SUM(CASE WHEN  m1.mode_id =5 THEN m1.cases_score ELSE 0 END) AS dischargeNoteTolScore
+        FROM (
+        SELECT
+        c.behospital_code,
+        a.mode_id,
+        c.cases_score,
+        c.cases_id,
+        c.hospital_id
+        FROM
+        `qc_cases_entry` a,
+        qc_mode b,
+        med_qcresult_detail c,
+        qc_cases_hospital d,
+        med_behospital_info e
+        WHERE a.is_deleted = 'N' AND b.is_deleted = 'N' AND c.is_deleted = 'N' AND d.is_deleted = 'N'AND e.is_deleted = 'N'
+        AND a.id = c.cases_entry_id
+        AND a.mode_id = b.id
+        AND c.cases_id = d.cases_id
+        AND c.hospital_id = d.hospital_id
+        AND c.behospital_code = e.behospital_code
+        AND c.hospital_id = e.hospital_id
+        <if test="hospitalId != null">
+            and c.hospital_id = #{hospitalId}
+        </if>
+        <if test="deptName != null and deptName != ''">
+            and e.beh_dept_name= #{deptName}
+        </if>
+        <if test="behospitalCode != null and behospitalCode != ''">
+            and e.behospital_code like CONCAT('%',#{behospitalCode},'%')
+        </if>
+        <if test="isPlacefile != null and isPlacefile != ''">
+            and e.is_placefile = #{isPlacefile}
+        </if>
+        <if test="behosDateStart != null">
+            <![CDATA[ and e.behospital_date >= #{behosDateStart}]]>
+        </if>
+        <if test="behosDateEnd != null">
+            <![CDATA[ and e.behospital_date < #{behosDateEnd}]]>
+        </if>
+        <if test="leaveHosDateStart != null">
+            <![CDATA[ and e.leave_hospital_date >= #{leaveHosDateStart}]]>
+        </if>
+        <if test="leaveHosDateEnd != null">
+            <![CDATA[ and e.leave_hospital_date < #{leaveHosDateEnd}]]>
+        </if>
+        <if test="level != null and level != ''">
+            and e.level = #{level}
+        </if>
+        <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'
+        AND m1.hospital_id = m2.hospital_id
+        AND m1.behospital_code = m2.behospital_code
+        )t2
+        ON t1.hospital_id = t2.hospital_id
+        AND t1.behospital_code = t2.behospital_code
+    </select>
+    <select id="getQualitySorce" resultType="com.diagbot.dto.QualityControlDTO">
+        SELECT
+        t1.behospital_code,
+        t1.hospital_id,
+        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
+        FROM (
+        SELECT
+        c.behospital_code,
+        c.hospital_id,
+        a.mode_id,
+        c.cases_score,
+        c.score,
+        c.msg,
+        c.is_reject,
+        c.cases_id
+        FROM
+        `qc_cases_entry` a,
+        qc_mode b,
+        med_qcresult_detail c,
+        qc_cases_hospital d,
+        med_behospital_info e
+        WHERE a.is_deleted = 'N' AND b.is_deleted = 'N' AND c.is_deleted = 'N' AND d.is_deleted = 'N'AND e.is_deleted = 'N'
+        AND a.id = c.cases_entry_id
+        AND a.mode_id = b.id
+        AND c.cases_id = d.cases_id
+        AND c.hospital_id = d.hospital_id
+        AND c.behospital_code = e.behospital_code
+        AND c.hospital_id = e.hospital_id
+        <if test="hospitalId != null">
+            and c.hospital_id = #{hospitalId}
+        </if>
+        <if test="deptName != null and deptName != ''">
+            and e.beh_dept_name= #{deptName}
+        </if>
+        <if test="behospitalCode != null and behospitalCode != ''">
+            and e.behospital_code like CONCAT('%',#{behospitalCode},'%')
+        </if>
+        <if test="isPlacefile != null and isPlacefile != ''">
+            and e.is_placefile = #{isPlacefile}
+        </if>
+        <if test="behosDateStart != null">
+            <![CDATA[ and e.behospital_date >= #{behosDateStart}]]>
+        </if>
+        <if test="behosDateEnd != null">
+            <![CDATA[ and e.behospital_date < #{behosDateEnd}]]>
+        </if>
+        <if test="leaveHosDateStart != null">
+            <![CDATA[ and e.leave_hospital_date >= #{leaveHosDateStart}]]>
+        </if>
+        <if test="leaveHosDateEnd != null">
+            <![CDATA[ and e.leave_hospital_date < #{leaveHosDateEnd}]]>
+        </if>
+        <if test="level != null and level != ''">
+            and e.level = #{level}
+        </if>
+        <if test="level != null and level != ''">
+            and e.level = #{level}
+        </if>
+        ORDER BY b.order_no, c.grade_type DESC, a.order_no
+        )t1 GROUP BY behospital_code
+    </select>
+
+   <!-- <select id="getQualityControl" resultType="com.diagbot.dto.QualityControlDTO">
+        SELECT * FROM (
+        select   t.*,
+        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
+        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'
+        ) 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'
+        <if test="diagnose != null and diagnose != ''">
+            AND t.diagnose LIKE CONCAT( '%', #{diagnose}, '%' )
+        </if>
+        <if test="deptName != null and deptName != ''">
+            and t.beh_dept_name= #{deptName}
+        </if>
+        <if test="doctorName != null and doctorName != ''">
+            and CONCAT(
+            IFNULL(t.doctor_name,''),IFNULL(t.beh_doctor_name,''),IFNULL(t.director_doctor_name,''))
+            like CONCAT('%',#{doctorName},'%')
+        </if>
+        <if test="name != null and name != ''">
+            and t.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})
+        </if>
+        <if test="fileCode != null and fileCode != ''">
+            and t.file_code like CONCAT('%',#{fileCode},'%')
+        </if>
+        <if test="hospitalId != null">
+            and t.hospital_id = #{hospitalId}
+        </if>
+        <if test="behospitalCode != null and behospitalCode != ''">
+            and t.behospital_code like CONCAT('%',#{behospitalCode},'%')
+        </if>
+        <if test="behosDateStart != null">
+            <![CDATA[ and t.behospital_date >= #{behosDateStart}]]>
+        </if>
+        <if test="behosDateEnd != null">
+            <![CDATA[ and t.behospital_date < #{behosDateEnd}]]>
+        </if>
+        <if test="leaveHosDateStart != null">
+            <![CDATA[ and t.leave_hospital_date >= #{leaveHosDateStart}]]>
+        </if>
+        <if test="leaveHosDateEnd != null">
+            <![CDATA[ and t.leave_hospital_date < #{leaveHosDateEnd}]]>
+        </if>
+        <if test="level != null and level != ''">
+            and t.level = #{level}
+        </if>
+        <if test="isPlacefile != null and isPlacefile != ''">
+            and t.is_placefile = #{isPlacefile}
+        </if>
+        and t.qc_type_id != 0) p
+        where p.is_deleted="N"
+        <if test="chName != null and chName !=''">
+            AND p.ch_name like CONCAT('%',#{chName},'%')
+        </if>
+        <if test="mrName != null and mrName !=''">
+            AND p.mr_name like CONCAT('%',#{mrName},'%')
+        </if>
+    </select>-->
     <select id="getQualityControl" resultType="com.diagbot.dto.QualityControlDTO">
         SELECT m.* FROM(
         SELECT
@@ -238,7 +643,7 @@
         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,