zhaops 5 anni fa
parent
commit
45b5616400

+ 58 - 0
src/main/java/com/diagbot/dto/ExportQcresultDTO.java

@@ -0,0 +1,58 @@
+package com.diagbot.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2020/6/2 19:57
+ */
+@Getter
+@Setter
+public class ExportQcresultDTO {
+    /**
+     * 科室编码/科室id
+     */
+    private String deptId;
+    /**
+     * 科室名称
+     */
+    private String deptName;
+    /**
+     * 主管医生名称(主任医生+主治医生)
+     */
+    private String doctorName;
+    /**
+     * 患者姓名
+     */
+    private String patientName;
+    /**
+     * 病历号
+     */
+    private String behospitalCode;
+    /**
+     * 入院日期
+     */
+    private String behospitalDate;
+    /**
+     * 出院日期
+     */
+    private String leaveHospitalDate;
+    /**
+     * 质控评分
+     */
+    private Double scoreRes;
+    /**
+     * 科室质控平均分
+     */
+    private Double averageScore;
+    /**
+     * 存在问题
+     */
+    private String msg;
+    /**
+     * 错误所属区块
+     */
+    private String casesName;
+}

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

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.diagbot.dto.BehospitalInfoDTO;
 import com.diagbot.dto.DeptNumDTO;
+import com.diagbot.dto.ExportQcresultDTO;
 import com.diagbot.dto.LevelStatisticsDTO;
 import com.diagbot.dto.MsgDTO;
 import com.diagbot.dto.NumDTO;
@@ -11,6 +12,7 @@ import com.diagbot.entity.BehospitalInfo;
 import com.diagbot.vo.AnalyzeCodeVO;
 import com.diagbot.vo.AnalyzeVO;
 import com.diagbot.vo.BehospitalPageVO;
+import com.diagbot.vo.ExportQcresultVO;
 import com.diagbot.vo.FilterOrderByDeptVO;
 import com.diagbot.vo.FilterOrderVO;
 import com.diagbot.vo.FilterPageByDeptVO;
@@ -178,4 +180,12 @@ public interface BehospitalInfoMapper extends BaseMapper<BehospitalInfo> {
      * @return
      */
     public List<LevelStatisticsDTO> levelStatisticsByDeptClass(FilterOrderVO filterOrderVO);
+
+    /**
+     * 质控评分导出到excel
+     *
+     * @param exportQcresultVO
+     * @return
+     */
+    public List<ExportQcresultDTO> exportQcresult(ExportQcresultVO exportQcresultVO);
 }

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

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.diagbot.dto.BehospitalInfoDTO;
 import com.diagbot.dto.DeptNumDTO;
+import com.diagbot.dto.ExportQcresultDTO;
 import com.diagbot.dto.LevelStatisticsDTO;
 import com.diagbot.dto.MsgDTO;
 import com.diagbot.dto.NumDTO;
@@ -11,6 +12,7 @@ import com.diagbot.entity.BehospitalInfo;
 import com.diagbot.vo.AnalyzeCodeVO;
 import com.diagbot.vo.AnalyzeVO;
 import com.diagbot.vo.BehospitalPageVO;
+import com.diagbot.vo.ExportQcresultVO;
 import com.diagbot.vo.FilterOrderByDeptVO;
 import com.diagbot.vo.FilterOrderVO;
 import com.diagbot.vo.FilterPageByDeptVO;
@@ -179,4 +181,12 @@ public interface BehospitalInfoService extends IService<BehospitalInfo> {
      * @return
      */
     public List<LevelStatisticsDTO> levelStatisticsByDeptClass(FilterOrderVO filterOrderVO);
+
+    /**
+     * 质控评分导出到excel
+     *
+     * @param exportQcresultVO
+     * @return
+     */
+    public List<ExportQcresultDTO> exportQcresult(ExportQcresultVO exportQcresultVO);
 }

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

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.diagbot.dto.BehospitalInfoDTO;
 import com.diagbot.dto.DeptNumDTO;
+import com.diagbot.dto.ExportQcresultDTO;
 import com.diagbot.dto.LevelStatisticsDTO;
 import com.diagbot.dto.MsgDTO;
 import com.diagbot.dto.NumDTO;
@@ -13,6 +14,7 @@ import com.diagbot.service.BehospitalInfoService;
 import com.diagbot.vo.AnalyzeCodeVO;
 import com.diagbot.vo.AnalyzeVO;
 import com.diagbot.vo.BehospitalPageVO;
+import com.diagbot.vo.ExportQcresultVO;
 import com.diagbot.vo.FilterOrderByDeptVO;
 import com.diagbot.vo.FilterOrderVO;
 import com.diagbot.vo.FilterPageByDeptVO;
@@ -242,4 +244,14 @@ public class BehospitalInfoServiceImpl extends ServiceImpl<BehospitalInfoMapper,
     public List<LevelStatisticsDTO> levelStatisticsByDeptClass(FilterOrderVO filterOrderVO) {
         return baseMapper.levelStatisticsByDeptClass(filterOrderVO);
     }
+
+    /**
+     * 质控评分导出到excel
+     *
+     * @param exportQcresultVO
+     * @return
+     */
+    public List<ExportQcresultDTO> exportQcresult(ExportQcresultVO exportQcresultVO) {
+        return baseMapper.exportQcresult(exportQcresultVO);
+    }
 }

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

@@ -0,0 +1,16 @@
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2020/6/2 20:09
+ */
+@Getter
+@Setter
+public class ExportQcresultVO {
+    private String leaveHosDateStart;
+    private String leaveHosDateEnd;
+}

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

@@ -1665,4 +1665,98 @@
             </choose>
         </if>
     </select>
+
+
+    <!-- 质控评分导出到excel-->
+    <select id="exportQcresult" resultType="com.diagbot.dto.ExportQcresultDTO" parameterType="com.diagbot.vo.ExportQcresultVO">
+        SELECT
+        t1.deptId,
+        t1.deptName,
+        t1.doctorName,
+        t1.patientName,
+        t1.behospitalCode,
+        t1.behospitalDate,
+        t1.leaveHospitalDate,
+        t1.scoreRes,
+        t2.averageScore,
+        t1.msg,
+        t1.casesName
+        FROM
+        (
+        SELECT
+        CONCAT( a.director_doctor_name, '\n', a.doctor_name ) AS doctorName,
+        a.`name` AS patientName,
+        a.behospital_code AS behospitalCode,
+        DATE_FORMAT( a.behospital_date, '%Y/%m/%d' ) AS behospitalDate,
+        DATE_FORMAT( a.leave_hospital_date, '%Y/%m/%d' ) AS leaveHospitalDate,
+        b.score_res AS scoreRes,
+        c.msg AS msg,
+        d.NAME AS casesName,
+        a.beh_dept_id AS deptId,
+        a.beh_dept_name AS deptName
+        FROM
+        med_behospital_info a,
+        med_qcresult_info b,
+        med_qcresult_detail c,
+        qc_cases 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 a.behospital_code = c.behospital_code
+        AND c.cases_id = d.id
+        AND a.is_placefile = '1'
+        <![CDATA[AND a.qc_type_id <>0 ]]>
+        <if test="hospitalId != null and hospitalId != ''">
+            AND a.hospital_id = #{hospitalId}
+        </if>
+        <if test="leaveHosDateStart != null and leaveHosDateStart != ''">
+            <![CDATA[ and a.leave_hospital_date >= DATE(#{leaveHosDateStart})]]>
+        </if>
+        <if test="leaveHosDateEnd != null and leaveHosDateEnd != ''">
+            <![CDATA[AND a.leave_hospital_date < DATE(#{leaveHosDateEnd})]]>
+        </if>
+        ) t1,
+        (
+        SELECT
+        ROUND( AVG( b.score_res ), 2 ) AS averageScore,
+        a.beh_dept_id AS deptId,
+        a.beh_dept_name AS deptName
+        FROM
+        med_behospital_info a,
+        med_qcresult_info b
+        WHERE
+        a.is_deleted = 'N'
+        AND b.is_deleted = 'N'
+        AND a.hospital_id = b.hospital_id
+        AND a.behospital_code = b.behospital_code
+        AND a.is_placefile = '1'
+        <![CDATA[AND a.qc_type_id <>0 ]]>
+        <if test="hospitalId != null and hospitalId != ''">
+            AND a.hospital_id = #{hospitalId}
+        </if>
+        <if test="startDate != null and startDate != ''">
+            <![CDATA[ and a.leave_hospital_date >= DATE(#{startDate})]]>
+        </if>
+        <if test="endDate != null and endDate != ''">
+            <![CDATA[AND a.leave_hospital_date < DATE(#{endDate})]]>
+        </if>
+        GROUP BY
+        a.beh_dept_id,
+        a.beh_dept_name
+        ) t2
+        WHERE
+        t1.deptId = t2.deptId
+        AND t1.deptName = t2.deptName
+        ORDER BY
+        t1.deptId,
+        t1.deptName,
+        t1.NAME,
+        t1.behospitalCode,
+        t1.casesName
+    </select>
 </mapper>