Browse Source

改善率统计

zhaops 4 years ago
parent
commit
ad5ebe4378

+ 27 - 0
src/main/java/com/diagbot/dto/HomePageImproveDTO.java

@@ -0,0 +1,27 @@
+package com.diagbot.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2020/7/6 20:03
+ */
+@Getter
+@Setter
+public class HomePageImproveDTO {
+    private String deptId;
+    private String deptName;
+    private Integer mrNum;
+    private Integer checkedNum;
+    private Integer improveNum;
+    private Double improvePercent;
+    private String improvePercentStr;
+    private Integer improveToPassNum;
+    private Double improveToPassPercent;
+    private String improveToPassPercentStr;
+    private Integer improveToFullNum;
+    private Double improveToFullPercent;
+    private String improveToFullPercentStr;
+}

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

@@ -10,6 +10,7 @@ import com.diagbot.dto.DeptNumDTO;
 import com.diagbot.dto.EntryNumDTO;
 import com.diagbot.dto.EntryNumGroupDTO;
 import com.diagbot.dto.EntryStatisticsDTO;
+import com.diagbot.dto.HomePageImproveDTO;
 import com.diagbot.dto.HomePageNumDTO;
 import com.diagbot.dto.LevelStatisticsDTO;
 import com.diagbot.dto.LevelStatisticsTZDTO;
@@ -793,6 +794,7 @@ public class ConsoleFacade {
         filterFacade.filterVOSet(filterVO);
         HomePageNumDTO qcNumDTO = behospitalInfoFacade.homePageQcPercent(filterVO);
         HomePageNumDTO emptyNumDTO = behospitalInfoFacade.hmEmptyEntryPercent(filterVO);
+        HomePageImproveDTO improveDTO = behospitalInfoFacade.homePageImproveCount(filterVO);
 
         /*qcNumDTO.setEntryTotleNum(emptyNumDTO.getEntryTotleNum());
         qcNumDTO.setEmptyNum(emptyNumDTO.getEmptyNum());
@@ -801,7 +803,7 @@ public class ConsoleFacade {
 
         retMap.put("合格率", qcNumDTO);
         retMap.put("完整率", emptyNumDTO);
-        retMap.put("改善率", null);
+        retMap.put("改善率", improveDTO);
         return retMap;
     }
 

+ 9 - 0
src/main/java/com/diagbot/mapper/BehospitalInfoMapper.java

@@ -6,6 +6,7 @@ import com.diagbot.dto.BehospitalInfoDTO;
 import com.diagbot.dto.DeptNumDTO;
 import com.diagbot.dto.EntryStatisticsDTO;
 import com.diagbot.dto.ExportExcelDTO;
+import com.diagbot.dto.HomePageImproveDTO;
 import com.diagbot.dto.HomePageNumDTO;
 import com.diagbot.dto.LevelStatisticsDTO;
 import com.diagbot.dto.LevelStatisticsTZDTO;
@@ -294,4 +295,12 @@ public interface BehospitalInfoMapper extends BaseMapper<BehospitalInfo> {
      * @return
      */
     public IPage<QcResultShortDTO> leaveHosMRPage(@Param("qcResultShortPageVO") QcResultShortPageVO qcResultShortPageVO);
+
+    /**
+     * 改善率统计-全院(首页)
+     *
+     * @param filterVO
+     * @return
+     */
+    public HomePageImproveDTO homePageImproveCount(FilterVO filterVO);
 }

+ 9 - 0
src/main/java/com/diagbot/service/BehospitalInfoService.java

@@ -6,6 +6,7 @@ import com.diagbot.dto.BehospitalInfoDTO;
 import com.diagbot.dto.DeptNumDTO;
 import com.diagbot.dto.EntryStatisticsDTO;
 import com.diagbot.dto.ExportExcelDTO;
+import com.diagbot.dto.HomePageImproveDTO;
 import com.diagbot.dto.HomePageNumDTO;
 import com.diagbot.dto.LevelStatisticsDTO;
 import com.diagbot.dto.LevelStatisticsTZDTO;
@@ -287,4 +288,12 @@ public interface BehospitalInfoService extends IService<BehospitalInfo> {
      * @return
      */
     public IPage<QcResultShortDTO> leaveHosMRPage(@Param("qcResultShortPageVO") QcResultShortPageVO qcResultShortPageVO);
+
+    /**
+     * 改善率统计-全院(首页)
+     *
+     * @param filterVO
+     * @return
+     */
+    public HomePageImproveDTO homePageImproveCount(FilterVO filterVO);
 }

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

@@ -6,6 +6,7 @@ import com.diagbot.dto.BehospitalInfoDTO;
 import com.diagbot.dto.DeptNumDTO;
 import com.diagbot.dto.EntryStatisticsDTO;
 import com.diagbot.dto.ExportExcelDTO;
+import com.diagbot.dto.HomePageImproveDTO;
 import com.diagbot.dto.HomePageNumDTO;
 import com.diagbot.dto.LevelStatisticsDTO;
 import com.diagbot.dto.LevelStatisticsTZDTO;
@@ -391,4 +392,15 @@ public class BehospitalInfoServiceImpl extends ServiceImpl<BehospitalInfoMapper,
     public IPage<QcResultShortDTO> leaveHosMRPage(@Param("qcResultShortPageVO") QcResultShortPageVO qcResultShortPageVO) {
         return baseMapper.leaveHosMRPage(qcResultShortPageVO);
     }
+
+    /**
+     * 改善率统计-全院(首页)
+     *
+     * @param filterVO
+     * @return
+     */
+    @Override
+    public HomePageImproveDTO homePageImproveCount(FilterVO filterVO) {
+        return baseMapper.homePageImproveCount(filterVO);
+    }
 }

+ 118 - 0
src/main/resources/mapper/BehospitalInfoMapper.xml

@@ -4337,4 +4337,122 @@
             AND t1.behospital_code = t2.behospital_code
         </if>
     </select>
+
+    <!-- 病案首页改善率统计(首页)-->
+    <select id="homePageImproveCount" parameterType="com.diagbot.vo.FilterVO" resultType="com.diagbot.dto.HomePageImproveDTO">
+        SELECT
+        t2.mrNum,
+        t1.improveNum,
+        round( t1.improveNum / t2.mrNum, 4 ) AS improvePercent,
+        Concat( round( t1.improveNum / t2.mrNum * 100, 2 ), '%' ) AS improvePercentStr,
+        t1.improveToPassNum,
+        round( t1.improveToPassNum / t2.mrNum, 4 ) AS improveToPassPercent,
+        Concat( round( t1.improveToPassNum / t2.mrNum * 100, 2 ), '%' ) AS improveToPassPercentStr,
+        t1.improveToFullNum,
+        round( t1.improveToFullNum / t2.mrNum, 4 ) AS improveToFullPercent,
+        Concat( round( t1.improveToFullNum / t2.mrNum * 100, 2 ), '%' ) AS improveToFullPercentStr
+        FROM
+        (
+        SELECT
+        <![CDATA[sum( e.`level` = '不合格' AND d.`level` = '合格' AND d.score_res < 20 ) AS improveToPassNum,]]>
+        sum( d.score_res = 20 ) AS improveToFullNum,
+        count(*) AS improveNum
+        FROM
+        med_behospital_info a,
+        med_home_page b,
+        med_qcresult_info c,
+        med_qcresult_cases d,
+        (
+        SELECT
+        m4.*
+        FROM
+        med_behospital_info m1,
+        med_home_page m2,
+        med_qcresult_info m3,
+        med_qcresult_cases m4
+        WHERE
+        m1.is_deleted = 'N'
+        AND m2.is_deleted = 'N'
+        AND m3.is_deleted = 'Y'
+        AND m4.is_deleted = 'Y'
+        AND m1.hospital_id = m2.hospital_id
+        AND m1.hospital_id = m3.hospital_id
+        AND m1.hospital_id = m4.hospital_id
+        AND m1.behospital_code = m2.behospital_code
+        AND m1.behospital_code = m3.behospital_code
+        AND m1.behospital_code = m4.behospital_code
+        AND m3.have_home_page = 1
+        AND m4.cases_id = 243
+        AND m1.is_placefile = '1'
+        AND m1.qc_type_id != 0
+        <if test="hospitalId != null and hospitalId != ''">
+            AND m1.hospital_id = #{hospitalId}
+        </if>
+        <if test="startDate != null">
+            <![CDATA[ AND m1.leave_hospital_date >= DATE(#{startDate})]]>
+        </if>
+        <if test="endDate != null">
+            <![CDATA[AND m1.leave_hospital_date < DATE(#{endDate})]]>
+        </if>
+        GROUP BY
+        m1.behospital_code
+        ORDER BY
+        m1.behospital_code,
+        m4.gmt_create
+        ) e
+        WHERE
+        a.is_deleted = 'N'
+        AND b.is_deleted = 'N'
+        AND c.is_deleted = 'N'
+        AND d.is_deleted = 'N'
+        AND a.hospital_id = b.hospital_id
+        AND a.hospital_id = c.hospital_id
+        AND a.hospital_id = d.hospital_id
+        AND a.hospital_id = e.hospital_id
+        AND a.behospital_code = b.behospital_code
+        AND a.behospital_code = c.behospital_code
+        AND a.behospital_code = d.behospital_code
+        AND a.behospital_code = e.behospital_code
+        AND d.cases_id = 243
+        AND d.score_res > e.score_res
+        AND a.is_placefile = '1'
+        AND a.qc_type_id != 0
+        <if test="hospitalId != null and hospitalId != ''">
+            AND a.hospital_id = #{hospitalId}
+        </if>
+        <if test="startDate != null">
+            <![CDATA[ AND a.leave_hospital_date >= DATE(#{startDate})]]>
+        </if>
+        <if test="endDate != null">
+            <![CDATA[AND a.leave_hospital_date < DATE(#{endDate})]]>
+        </if>
+        ) t1,
+        (
+        SELECT
+        count(*) AS mrNum
+        FROM
+        med_behospital_info a,
+        med_home_page b,
+        med_qcresult_info c
+        WHERE
+        a.is_deleted = 'N'
+        AND b.is_deleted = 'N'
+        AND c.is_deleted = 'N'
+        AND a.hospital_id = b.hospital_id
+        AND a.hospital_id = c.hospital_id
+        AND a.behospital_code = b.behospital_code
+        AND a.behospital_code = c.behospital_code
+        AND a.is_placefile = '1'
+        AND a.qc_type_id != 0
+        <if test="hospitalId != null and hospitalId != ''">
+            AND a.hospital_id = #{hospitalId}
+        </if>
+        <if test="startDate != null">
+            <![CDATA[ AND a.leave_hospital_date >= DATE(#{startDate})]]>
+        </if>
+        <if test="endDate != null">
+            <![CDATA[AND a.leave_hospital_date < DATE(#{endDate})]]>
+        </if>
+        ) t2
+    </select>
 </mapper>