Переглянути джерело

1、手术病人统计
2、缺陷详情页统计增加模块名称和模块检索

zhaops 5 роки тому
батько
коміт
a75e98b13c

+ 18 - 0
src/main/java/com/diagbot/dto/CaseAndDeptNumDTO.java

@@ -0,0 +1,18 @@
+package com.diagbot.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2020/5/28 14:49
+ */
+@Getter
+@Setter
+public class CaseAndDeptNumDTO extends NumDTO {
+    private String deptId;
+    private String deptName;
+    private Long casesId;
+    private String casesName;
+}

+ 16 - 0
src/main/java/com/diagbot/dto/CaseNumDTO.java

@@ -0,0 +1,16 @@
+package com.diagbot.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2020/5/28 14:45
+ */
+@Getter
+@Setter
+public class CaseNumDTO extends NumDTO {
+    private Long casesId;
+    private String casesName;
+}

+ 5 - 4
src/main/java/com/diagbot/facade/ConsoleByDeptFacade.java

@@ -1,6 +1,7 @@
 package com.diagbot.facade;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.diagbot.dto.CaseAndDeptNumDTO;
 import com.diagbot.dto.DeptBaseDTO;
 import com.diagbot.dto.DeptNumDTO;
 import com.diagbot.dto.LevelStatisticsDTO;
@@ -527,12 +528,12 @@ public class ConsoleByDeptFacade {
     }
 
     /**
-     * 条目缺陷占比-科室(分页)
+     * 缺陷详情-科室(分页)
      *
      * @param filterPageByDeptVO
      * @return
      */
-    public IPage<DeptNumDTO> entryCountGroupByEntryAndDeptPage(FilterPageByDeptVO filterPageByDeptVO) {
+    public IPage<CaseAndDeptNumDTO> entryCountGroupByEntryAndDeptPage(FilterPageByDeptVO filterPageByDeptVO) {
         if (StringUtil.isBlank(filterPageByDeptVO.getDeptName())) {
             List<DeptBaseDTO> deptList = this.getDept();
             //默认取第一个科室
@@ -542,8 +543,8 @@ public class ConsoleByDeptFacade {
         }
         DecimalFormat df = new DecimalFormat("#0.00");
         filterPageByDeptVOSet(filterPageByDeptVO);
-        IPage<DeptNumDTO> page = qcresultInfoFacade.entryCountGroupByEntryAndDeptPage(filterPageByDeptVO);
-        List<DeptNumDTO> records = page.getRecords();
+        IPage<CaseAndDeptNumDTO> page = qcresultInfoFacade.entryCountGroupByEntryAndDeptPage(filterPageByDeptVO);
+        List<CaseAndDeptNumDTO> records = page.getRecords();
         if (ListUtil.isNotEmpty(records)) {
             records.forEach(item -> {
                 Double percent = BigDecimal.valueOf(item.getNum())

+ 5 - 4
src/main/java/com/diagbot/facade/ConsoleFacade.java

@@ -5,6 +5,7 @@ import com.diagbot.aggregate.AverageStatisticsAggregate;
 import com.diagbot.aggregate.MrStatisticsAggregate;
 import com.diagbot.aggregate.ResultStatisticsAggregate;
 import com.diagbot.dto.AverageStatisticsDTO;
+import com.diagbot.dto.CaseNumDTO;
 import com.diagbot.dto.LevelStatisticsDTO;
 import com.diagbot.dto.NumDTO;
 import com.diagbot.dto.QcResultPercentDTO;
@@ -391,16 +392,16 @@ public class ConsoleFacade {
     }
 
     /**
-     * 条目缺陷占比(分页)
+     * 缺陷详情(分页)
      *
      * @param filterPageVO
      * @return
      */
-    public IPage<NumDTO> entryCountGroupByEntryPage(FilterPageVO filterPageVO) {
+    public IPage<CaseNumDTO> entryCountGroupByEntryPage(FilterPageVO filterPageVO) {
         DecimalFormat df = new DecimalFormat("#0.00");
         filterPageVOSet(filterPageVO);
-        IPage<NumDTO> page = qcresultInfoFacade.entryCountGroupByEntryPage(filterPageVO);
-        List<NumDTO> records = page.getRecords();
+        IPage<CaseNumDTO> page = qcresultInfoFacade.entryCountGroupByEntryPage(filterPageVO);
+        List<CaseNumDTO> records = page.getRecords();
         if (ListUtil.isNotEmpty(records)) {
             records.forEach(item -> {
                 Double percent = BigDecimal.valueOf(item.getNum())

+ 6 - 4
src/main/java/com/diagbot/mapper/QcresultInfoMapper.java

@@ -3,6 +3,8 @@ package com.diagbot.mapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.diagbot.dto.AverageStatisticsDTO;
+import com.diagbot.dto.CaseAndDeptNumDTO;
+import com.diagbot.dto.CaseNumDTO;
 import com.diagbot.dto.DeptNumDTO;
 import com.diagbot.dto.NumDTO;
 import com.diagbot.dto.QcResultPercentDTO;
@@ -107,12 +109,12 @@ public interface QcresultInfoMapper extends BaseMapper<QcresultInfo> {
     public IPage<NumDTO> entryCountGroupByCasePage(@Param("filterPageVO") FilterPageVO filterPageVO);
 
     /**
-     * 条目缺陷占比(分页)
+     * 缺陷详情(分页)
      *
      * @param filterPageVO
      * @return
      */
-    public IPage<NumDTO> entryCountGroupByEntryPage(@Param("filterPageVO") FilterPageVO filterPageVO);
+    public IPage<CaseNumDTO> entryCountGroupByEntryPage(@Param("filterPageVO") FilterPageVO filterPageVO);
 
     /**
      * 各科室质控平均分(分页)
@@ -138,9 +140,9 @@ public interface QcresultInfoMapper extends BaseMapper<QcresultInfo> {
     public IPage<DeptNumDTO> entryCountGroupByCaseAndDeptPage(@Param("filterPageByDeptVO")FilterPageByDeptVO filterPageByDeptVO);
 
     /**
-     * 条目缺陷占比-科室(分页)
+     * 缺陷详情-科室(分页)
      * @param filterPageByDeptVO
      * @return
      */
-    public IPage<DeptNumDTO> entryCountGroupByEntryAndDeptPage(@Param("filterPageByDeptVO")FilterPageByDeptVO filterPageByDeptVO);
+    public IPage<CaseAndDeptNumDTO> entryCountGroupByEntryAndDeptPage(@Param("filterPageByDeptVO")FilterPageByDeptVO filterPageByDeptVO);
 }

+ 6 - 4
src/main/java/com/diagbot/service/QcresultInfoService.java

@@ -3,6 +3,8 @@ package com.diagbot.service;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.diagbot.dto.AverageStatisticsDTO;
+import com.diagbot.dto.CaseAndDeptNumDTO;
+import com.diagbot.dto.CaseNumDTO;
 import com.diagbot.dto.DeptNumDTO;
 import com.diagbot.dto.NumDTO;
 import com.diagbot.dto.QcResultPercentDTO;
@@ -108,12 +110,12 @@ public interface QcresultInfoService extends IService<QcresultInfo> {
     public IPage<NumDTO> entryCountGroupByCasePage(@Param("filterPageVO") FilterPageVO filterPageVO);
 
     /**
-     * 条目缺陷占比(分页)
+     * 缺陷详情(分页)
      *
      * @param filterPageVO
      * @return
      */
-    public IPage<NumDTO> entryCountGroupByEntryPage(@Param("filterPageVO") FilterPageVO filterPageVO);
+    public IPage<CaseNumDTO> entryCountGroupByEntryPage(@Param("filterPageVO") FilterPageVO filterPageVO);
 
     /**
      * 各科室质控平均分(分页)
@@ -139,9 +141,9 @@ public interface QcresultInfoService extends IService<QcresultInfo> {
     public IPage<DeptNumDTO> entryCountGroupByCaseAndDeptPage(@Param("filterPageByDeptVO") FilterPageByDeptVO filterPageByDeptVO);
 
     /**
-     * 条目缺陷占比-科室(分页)
+     * 缺陷详情-科室(分页)
      * @param filterPageByDeptVO
      * @return
      */
-    public IPage<DeptNumDTO> entryCountGroupByEntryAndDeptPage(@Param("filterPageByDeptVO")FilterPageByDeptVO filterPageByDeptVO);
+    public IPage<CaseAndDeptNumDTO> entryCountGroupByEntryAndDeptPage(@Param("filterPageByDeptVO")FilterPageByDeptVO filterPageByDeptVO);
 }

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

@@ -3,6 +3,8 @@ package com.diagbot.service.impl;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.diagbot.dto.AverageStatisticsDTO;
+import com.diagbot.dto.CaseAndDeptNumDTO;
+import com.diagbot.dto.CaseNumDTO;
 import com.diagbot.dto.DeptNumDTO;
 import com.diagbot.dto.NumDTO;
 import com.diagbot.dto.QcResultPercentDTO;
@@ -142,13 +144,13 @@ public class QcresultInfoServiceImpl extends ServiceImpl<QcresultInfoMapper, Qcr
     }
 
     /**
-     * 条目缺陷占比(分页)
+     * 缺陷详情(分页)
      *
      * @param filterPageVO
      * @return
      */
     @Override
-    public IPage<NumDTO> entryCountGroupByEntryPage(@Param("filterPageVO") FilterPageVO filterPageVO) {
+    public IPage<CaseNumDTO> entryCountGroupByEntryPage(@Param("filterPageVO") FilterPageVO filterPageVO) {
         return baseMapper.entryCountGroupByEntryPage(filterPageVO);
     }
 
@@ -186,13 +188,13 @@ public class QcresultInfoServiceImpl extends ServiceImpl<QcresultInfoMapper, Qcr
     }
 
     /**
-     * 条目缺陷占比-科室(分页)
+     * 缺陷详情-科室(分页)
      *
      * @param filterPageByDeptVO
      * @return
      */
     @Override
-    public IPage<DeptNumDTO> entryCountGroupByEntryAndDeptPage(@Param("filterPageByDeptVO") FilterPageByDeptVO filterPageByDeptVO) {
+    public IPage<CaseAndDeptNumDTO> entryCountGroupByEntryAndDeptPage(@Param("filterPageByDeptVO") FilterPageByDeptVO filterPageByDeptVO) {
         return baseMapper.entryCountGroupByEntryAndDeptPage(filterPageByDeptVO);
     }
 }

+ 5 - 0
src/main/java/com/diagbot/vo/FilterPageVO.java

@@ -55,4 +55,9 @@ public class FilterPageVO extends Page {
      * 模块id:243=病案首页
      */
     private Long casesId;
+
+    /**
+     * 模块名称
+     */
+    private String casesName;
 }

+ 6 - 4
src/main/java/com/diagbot/web/ConsoleByDeptController.java

@@ -2,6 +2,7 @@ package com.diagbot.web;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.diagbot.annotation.SysLogger;
+import com.diagbot.dto.CaseAndDeptNumDTO;
 import com.diagbot.dto.DeptBaseDTO;
 import com.diagbot.dto.DeptNumDTO;
 import com.diagbot.dto.LevelStatisticsDTO;
@@ -114,15 +115,16 @@ public class ConsoleByDeptController {
         return RespDTO.onSuc(data);
     }
 
-    @ApiOperation(value = "条目缺陷占比-科室(分页)-内页[by:zhaops]",
+    @ApiOperation(value = "缺陷详情-科室(分页)-内页[by:zhaops]",
             notes = "type: 统计维度 1-本月,2-本年(必填)<br>" +
                     "name: 缺陷名称<br>" +
                     "deptName: 科室名称(必填)<br>" +
-                    "casesId: 模块id:243=病案首页 <br>")
+                    "casesId: 模块id:243=病案首页 <br>"+
+                    "casesName: 模块名称<br>")
     @PostMapping("/entryCountGroupByEntryAndDeptPage")
     @SysLogger("entryCountGroupByEntryAndDeptPage")
-    public RespDTO<IPage<DeptNumDTO>> entryCountGroupByEntryAndDeptPage(@RequestBody @Valid FilterPageByDeptVO filterPageByDeptVO) {
-        IPage<DeptNumDTO> data = consoleByDeptFacade.entryCountGroupByEntryAndDeptPage(filterPageByDeptVO);
+    public RespDTO<IPage<CaseAndDeptNumDTO>> entryCountGroupByEntryAndDeptPage(@RequestBody @Valid FilterPageByDeptVO filterPageByDeptVO) {
+        IPage<CaseAndDeptNumDTO> data = consoleByDeptFacade.entryCountGroupByEntryAndDeptPage(filterPageByDeptVO);
         return RespDTO.onSuc(data);
     }
 

+ 5 - 3
src/main/java/com/diagbot/web/ConsoleController.java

@@ -3,6 +3,7 @@ package com.diagbot.web;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.diagbot.annotation.SysLogger;
 import com.diagbot.dto.AverageStatisticsDTO;
+import com.diagbot.dto.CaseNumDTO;
 import com.diagbot.dto.LevelStatisticsDTO;
 import com.diagbot.dto.NumDTO;
 import com.diagbot.dto.RespDTO;
@@ -221,13 +222,14 @@ public class ConsoleController {
      * @param filterPageVO
      * @return
      */
-    @ApiOperation(value = "条目缺陷占比(分页)[by:zhaops]",
+    @ApiOperation(value = "缺陷详情(分页)[by:zhaops]",
             notes = "type: 统计维度 1-本月,2-本年(必填)<br>" +
                     "deptName: 科室名称 <br>" +
-                    "casesId: 模块id:243=病案首页 <br>")
+                    "casesId: 模块id:243=病案首页 <br>"+
+                    "casesName: 模块名称 <br>")
     @PostMapping("/entryCountGroupByEntryPage")
     @SysLogger("entryCountGroupByEntryPage")
-    public RespDTO<IPage<NumDTO>> entryCountGroupByEntryPage(@RequestBody @Valid FilterPageVO filterPageVO) {
+    public RespDTO<IPage<CaseNumDTO>> entryCountGroupByEntryPage(@RequestBody @Valid FilterPageVO filterPageVO) {
         return RespDTO.onSuc(consoleFacade.entryCountGroupByEntryPage(filterPageVO));
     }
 

+ 14 - 6
src/main/resources/mapper/BehospitalInfoMapper.xml

@@ -579,19 +579,23 @@
     <!-- 病案首页手术病历数统计 -->
     <select id="homePageCountForOperation" parameterType="com.diagbot.vo.FilterVO" resultType="int">
         SELECT
-        COUNT(DISTINCT a.behospital_code)
+        COUNT( DISTINCT a.behospital_code )
         FROM
         med_behospital_info a,
         med_home_page b,
-        med_home_operation_info c
+        med_medical_record c,
+        qc_mode d
         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.behospital_code = b.behospital_code
-        AND b.home_page_id = c.home_page_id
+        AND a.behospital_code = c.behospital_code
+        AND c.mode_id = d.id
+        AND d.`name` = '手术记录'
         <![CDATA[AND a.qc_type_id <>0 ]]>
         <if test="hospitalId != null and hospitalId != ''">
             AND a.hospital_id = #{hospitalId}
@@ -648,23 +652,27 @@
         SELECT
         a.beh_dept_id AS id,
         a.beh_dept_name AS NAME,
-        COUNT(DISTINCT a.behospital_code) AS num
+        COUNT( DISTINCT a.behospital_code ) AS num
         FROM
         med_behospital_info a,
         med_home_page b,
         sys_user_dept c,
-        med_home_operation_info d
+        med_medical_record d,
+        qc_mode 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.hospital_id = b.hospital_id
         AND a.hospital_id = c.hospital_id
         AND a.hospital_id = d.hospital_id
         AND a.behospital_code = b.behospital_code
-        AND b.home_page_id = d.home_page_id
+        AND b.behospital_code = d.behospital_code
         AND a.beh_dept_id = c.dept_id
+        AND d.mode_id = e.id
+        AND e.`name` = '手术记录'
         <![CDATA[AND a.qc_type_id <>0 ]]>
         <if test="userId!=null">
             AND c.user_id = #{userId}

+ 36 - 13
src/main/resources/mapper/QcresultInfoMapper.xml

@@ -523,20 +523,24 @@
         ) t
     </select>
 
-    <!-- 条目缺陷占比(分页) -->
-    <select id="entryCountGroupByEntryPage"  resultType="com.diagbot.dto.NumDTO">
+    <!-- 缺陷详情(分页) -->
+    <select id="entryCountGroupByEntryPage"  resultType="com.diagbot.dto.CaseNumDTO">
         SELECT t.*
         FROM
         (SELECT
         t1.id,
         t1.NAME,
+        t1.casesId,
+        t1.casesName,
         count(*) AS num,
         t2.totleNum
         FROM
         (
         SELECT
         e.id AS id,
-        e.NAME AS NAME
+        e.NAME AS NAME,
+        e.cases_id as casesId,
+        e.cases_name as casesName
         FROM
         med_behospital_info a,
         med_home_page b,
@@ -569,6 +573,9 @@
         <if test="filterPageVO.casesId != null and filterPageVO.casesId != 0">
             AND d.cases_id = #{filterPageVO.casesId}
         </if>
+        <if test="filterPageVO.casesName != null and filterPageVO.casesName != ''">
+            AND e.cases_name like CONCAT('%', #{filterPageVO.casesName},'%')
+        </if>
         <if test="filterPageVO.hospitalId != null and filterPageVO.hospitalId != ''">
             AND a.hospital_id = #{filterPageVO.hospitalId}
         </if>
@@ -616,9 +623,12 @@
         AND d.cases_id = e.cases_id
         AND d.cases_entry_id = e.id
         <![CDATA[AND a.qc_type_id <>0 ]]>
-        <if test="filterPageVO.casesId != null and filterPageVO.casesId != ''">
+        <if test="filterPageVO.casesId != null and filterPageVO.casesId != 0">
             AND d.cases_id = #{filterPageVO.casesId}
         </if>
+        <if test="filterPageVO.casesName != null and filterPageVO.casesName != ''">
+            AND e.cases_name like CONCAT('%', #{filterPageVO.casesName},'%')
+        </if>
         <if test="filterPageVO.hospitalId != null and filterPageVO.hospitalId != ''">
             AND a.hospital_id = #{filterPageVO.hospitalId}
         </if>
@@ -637,9 +647,10 @@
         ) t2
         GROUP BY
         t1.id,
-        t1.NAME
-        ORDER BY
-        count(*) DESC)t
+        t1.NAME,
+        t1.casesId,
+        t1.casesName
+        )t
     </select>
 
     <!-- 质控平均分按科室统计(分页) -->
@@ -877,8 +888,8 @@
         ) t
     </select>
 
-    <!-- 条目缺陷占比-科室(分页) -->
-    <select id="entryCountGroupByEntryAndDeptPage"  resultType="com.diagbot.dto.DeptNumDTO">
+    <!-- 缺陷详情-科室(分页) -->
+    <select id="entryCountGroupByEntryAndDeptPage"  resultType="com.diagbot.dto.CaseAndDeptNumDTO">
         SELECT
         t.*
         FROM
@@ -886,6 +897,10 @@
         SELECT
         t1.id,
         t1.NAME,
+        t1.casesId,
+        t1.casesName,
+        t1.deptId,
+        t1.deptName,
         count(*) AS num,
         t2.totleNum
         FROM
@@ -893,6 +908,8 @@
         SELECT
         e.id,
         e.NAME,
+        e.cases_id as casesId,
+        e.cases_name as casesName,
         a.beh_dept_id AS deptId,
         a.beh_dept_name AS deptName
         FROM
@@ -928,9 +945,12 @@
         AND d.cases_entry_id = e.id
         AND a.beh_dept_id = f.dept_id
         <![CDATA[AND a.qc_type_id <>0 ]]>
-        <if test="filterPageByDeptVO.casesId != null and filterPageByDeptVO.casesId != ''">
+        <if test="filterPageByDeptVO.casesId != null and filterPageByDeptVO.casesId != 0">
             AND d.cases_id = #{filterPageByDeptVO.casesId}
         </if>
+        <if test="filterPageByDeptVO.casesName != null and filterPageByDeptVO.casesName != ''">
+            AND e.cases_name like CONCAT('%', #{filterPageByDeptVO.casesName},'%')
+        </if>
         <if test="filterPageByDeptVO.userId!=null">
             AND f.user_id = #{filterPageByDeptVO.userId}
         </if>
@@ -988,9 +1008,12 @@
         AND d.cases_entry_id = e.id
         AND a.beh_dept_id = f.dept_id
         <![CDATA[AND a.qc_type_id <>0 ]]>
-        <if test="filterPageByDeptVO.casesId != null and filterPageByDeptVO.casesId != ''">
+        <if test="filterPageByDeptVO.casesId != null and filterPageByDeptVO.casesId != 0">
             AND d.cases_id = #{filterPageByDeptVO.casesId}
         </if>
+        <if test="filterPageByDeptVO.casesName != null and filterPageByDeptVO.casesName != ''">
+            AND e.cases_name like CONCAT('%', #{filterPageByDeptVO.casesName},'%')
+        </if>
         <if test="filterPageByDeptVO.userId!=null">
             AND f.user_id = #{filterPageByDeptVO.userId}
         </if>
@@ -1016,10 +1039,10 @@
         GROUP BY
         t1.id,
         t1.NAME,
+        t1.casesId,
+        t1.casesName,
         t1.deptId,
         t1.deptName
-        ORDER BY
-        count(*) DESC
         )t
     </select>
 </mapper>