Browse Source

质控评分病历展示导出字段调整

chengyao 3 years atrás
parent
commit
2b16911c1c

+ 139 - 0
src/main/java/com/diagbot/dto/BehospitalInfoDeptDTO.java

@@ -0,0 +1,139 @@
+package com.diagbot.dto;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 住院病历信息
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2020-04-13
+ */
+@Data
+public class BehospitalInfoDeptDTO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 病人住院ID
+     */
+    private String behospitalCode;
+
+    /**
+     * 姓名
+     */
+    private String name;
+
+    /**
+     * 性别
+     */
+    private String sex;
+
+    /**
+     * 出生日期
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date birthday;
+
+    /**
+     * 档案号
+     */
+    private String fileCode;
+
+    /**
+     * 病区名称
+     */
+    private String wardName;
+
+    /**
+     * 住院科室名称
+     */
+    private String behDeptName;
+
+    /**
+     * 医疗组
+     */
+    private String medoupName;
+
+    /**
+     * 床位号
+     */
+    private String bedCode;
+
+    /**
+     * 入院时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date behospitalDate;
+
+    /**
+     * 出院时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date leaveHospitalDate;
+
+    /**
+     * 疾病名称
+     */
+    private String diagnose;
+
+    /**
+     * 医生姓名
+     */
+    private String doctorName;
+
+    /**
+     * 年龄
+     */
+    private String age;
+
+    /**
+     * 病历等级
+     */
+    private String level;
+
+    /**
+     * 最后得分
+     */
+    private Double scoreRes;
+
+    /**
+     * 病案首页得分
+     */
+    private Double scoreBn;
+
+    /**
+     * 评分类型(1:机器,2:人工)
+     */
+    private String gradeType;
+
+    /**
+     * 评分时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date gradeTime;
+
+    private String directorDoctorName ;
+
+    private String behDoctorName;
+
+    /**
+     * 归档时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date placefileDate;
+
+    private Integer checkStatus;
+    private Integer mrStatus;
+    private String chName;
+    private String mrName;
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date chTime;
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date mrTime;
+}

+ 15 - 8
src/main/java/com/diagbot/facade/BehospitalInfoFacade.java

@@ -1914,10 +1914,10 @@ public class BehospitalInfoFacade extends BehospitalInfoServiceImpl {
         return res;
     }
 
-    public IPage<BehospitalInfoDTO> pageDept(BehospitalPageVO behospitalPageVO) {
+    public IPage<BehospitalInfoDeptDTO> pageDept(BehospitalPageVO behospitalPageVO) {
         behospitalPageSet(behospitalPageVO);
         behospitalPageVO.setUserId(Long.parseLong(SysUserUtils.getCurrentPrincipleID()));
-        IPage<BehospitalInfoDTO> res = getPageByDept(behospitalPageVO);
+        IPage<BehospitalInfoDeptDTO> res = getPageByDept(behospitalPageVO);
         return res;
     }
 
@@ -2125,18 +2125,25 @@ public class BehospitalInfoFacade extends BehospitalInfoServiceImpl {
         exportQcresultVO.setUserId(Long.valueOf(userId));
         //时间设置
         exportQcresultVOSet(exportQcresultVO);
-        List<ExportExcelDTO> res = this.exportQcresultByDept(exportQcresultVO);
-        List<ExportWideExcelDTO> resWide = new ArrayList<ExportWideExcelDTO>();
-        if ("2".equals(exportQcresultVO.getRadioCheck())) {
-            resWide = transList(res, resWide);
+        List<ExportExcelByDeptDTO> records = this.exportQcresultByDept(exportQcresultVO);
+        List<ExportSevenByDeptDTO> resDTO = new ArrayList<ExportSevenByDeptDTO>();
+        if(ListUtil.isNotEmpty(records)){
+            ExportSevenByDeptDTO exportByDeptDTO = new ExportSevenByDeptDTO();
+            exportByDeptDTO.setBehDeptName(records.get(0).getBehDeptName());
+            exportByDeptDTO.setExportExcelByDeptDTOS(records);
+            resDTO.add(exportByDeptDTO);
+        }
+        List<ExportNinetyByDeptDTO> resWide = new ArrayList<ExportNinetyByDeptDTO>();
+        if("2".equals(exportQcresultVO.getRadioCheck())){
+            resWide = ConsoleByDeptExportFacade.transList(records, resWide);
         }
         String fileName = "抽查住院病历质量情况.xls";
         response.setContentType("text/html;charset=UTF-8");
         if ("1".equals(exportQcresultVO.getRadioCheck())) {
-            ExcelUtils.exportExcelUser(res, null, "sheet1", ExportExcelDTO.class, fileName, response);
+            ExcelUtils.exportExcelUser(resDTO, null, "sheet1", ExportSevenByDeptDTO.class, fileName, response);
         }
         if ("2".equals(exportQcresultVO.getRadioCheck())) {
-            ExcelUtils.exportExcelUser(resWide, null, "sheet1", ExportWideExcelDTO.class, fileName, response);
+            ExcelUtils.exportExcelUser(resWide, null, "sheet1", ExportNinetyByDeptDTO.class, fileName, response);
         }
     }
 

+ 1 - 1
src/main/java/com/diagbot/facade/ConsoleByDeptExportFacade.java

@@ -511,7 +511,7 @@ public class ConsoleByDeptExportFacade {
        }
    }
 
-    public List<ExportNinetyByDeptDTO> transList(List<ExportExcelByDeptDTO>res, List<ExportNinetyByDeptDTO>resWide){
+    public static List<ExportNinetyByDeptDTO> transList(List<ExportExcelByDeptDTO>res, List<ExportNinetyByDeptDTO>resWide){
         if(ListUtil.isNotEmpty(res)){
             ExportNinetyByDeptDTO exportNinetyByDeptDTO = new ExportNinetyByDeptDTO();
             List<ExportWideExcelByDeptDTO>exportWideExcelByDeptDTOs  =  new ArrayList<ExportWideExcelByDeptDTO>();

+ 3 - 3
src/main/java/com/diagbot/facade/ConsoleByDeptFacade.java

@@ -676,7 +676,7 @@ public class ConsoleByDeptFacade {
      * @param qcResultPageVO
      * @return
      */
-    public IPage<QcResultShortDTO> homePageOrGoodLevelByDept(QcResultPageVO qcResultPageVO) {
+    public IPage<QcResultShortDeptDTO> homePageOrGoodLevelByDept(QcResultPageVO qcResultPageVO) {
         filterFacade.OrGoodLevelPageVOSet(qcResultPageVO);
         return behospitalInfoFacade.getOrGoodLevelByDept(qcResultPageVO);
     }
@@ -826,9 +826,9 @@ public class ConsoleByDeptFacade {
      * @param qcResultShortPageVO
      * @return
      */
-    public IPage<QcResultShortDTO> qcResultShortByDeptPage(QcResultShortPageVO qcResultShortPageVO) {
+    public IPage<QcResultShortDeptDTO> qcResultShortByDeptPage(QcResultShortPageVO qcResultShortPageVO) {
         filterFacade.qcResultShortPageVOSet(qcResultShortPageVO);
-        IPage<QcResultShortDTO> page = behospitalInfoFacade.qcResultShortByDeptPage(qcResultShortPageVO);
+        IPage<QcResultShortDeptDTO> page = behospitalInfoFacade.qcResultShortByDeptPage(qcResultShortPageVO);
         return page;
     }
 

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

@@ -62,7 +62,7 @@ public interface BehospitalInfoMapper extends BaseMapper<BehospitalInfo> {
 
     public List<BehospitalInfo> getNoGrade(TaskVO taskVO);
 
-    IPage<BehospitalInfoDTO> getPageByDept(BehospitalPageVO behospitalPageVO);
+    IPage<BehospitalInfoDeptDTO> getPageByDept(BehospitalPageVO behospitalPageVO);
 
     IPage<BehospitalInfoDTO> getPageByPerson(BehospitalPageVO behospitalPageVO);
 
@@ -253,7 +253,7 @@ public interface BehospitalInfoMapper extends BaseMapper<BehospitalInfo> {
      * @param qcResultPageVO
      * @return
      */
-    public IPage<QcResultShortDTO> getIsGoodLevelByDept(QcResultPageVO qcResultPageVO);
+    public IPage<QcResultShortDeptDTO> getIsGoodLevelByDept(QcResultPageVO qcResultPageVO);
 
     /**
      * 各科室缺陷占比(组合)-全院-根据内外科系统统计-关联上级科室
@@ -295,7 +295,7 @@ public interface BehospitalInfoMapper extends BaseMapper<BehospitalInfo> {
      * @param exportQcresultVO
      * @return
      */
-    public List<ExportExcelDTO> exportQcresultByDept(ExportQcresultVO exportQcresultVO);
+    public List<ExportExcelByDeptDTO> exportQcresultByDept(ExportQcresultVO exportQcresultVO);
 
     /**
      * 医疗组质控评分导出到excel
@@ -319,7 +319,7 @@ public interface BehospitalInfoMapper extends BaseMapper<BehospitalInfo> {
      * @param qcResultShortPageVO
      * @return
      */
-    public IPage<QcResultShortDTO> qcResultShortByDeptPage(@Param("qcResultShortPageVO") QcResultShortPageVO qcResultShortPageVO);
+    public IPage<QcResultShortDeptDTO> qcResultShortByDeptPage(@Param("qcResultShortPageVO") QcResultShortPageVO qcResultShortPageVO);
 
     /**
      * 根据两个主键-批量修改

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

@@ -47,7 +47,7 @@ public interface BehospitalInfoService extends IService<BehospitalInfo> {
 
     public List<BehospitalInfo> getNoGrade(TaskVO taskVO);
 
-    IPage<BehospitalInfoDTO> getPageByDept(BehospitalPageVO behospitalPageVO);
+    IPage<BehospitalInfoDeptDTO> getPageByDept(BehospitalPageVO behospitalPageVO);
 
     IPage<BehospitalInfoDTO> getPageByPerson(BehospitalPageVO behospitalPageVO);
 
@@ -310,7 +310,7 @@ public interface BehospitalInfoService extends IService<BehospitalInfo> {
      * @param exportQcresultVO
      * @return
      */
-    public List<ExportExcelDTO> exportQcresultByDept(ExportQcresultVO exportQcresultVO);
+    public List<ExportExcelByDeptDTO> exportQcresultByDept(ExportQcresultVO exportQcresultVO);
 
     /**
      * 科室质控评分导出到excel
@@ -334,7 +334,7 @@ public interface BehospitalInfoService extends IService<BehospitalInfo> {
      * @param qcResultShortPageVO
      * @return
      */
-    public IPage<QcResultShortDTO> qcResultShortByDeptPage(@Param("qcResultShortPageVO") QcResultShortPageVO qcResultShortPageVO);
+    public IPage<QcResultShortDeptDTO> qcResultShortByDeptPage(@Param("qcResultShortPageVO") QcResultShortPageVO qcResultShortPageVO);
 
     /**
      * 关键条目缺陷占比统计

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

@@ -70,7 +70,7 @@ public class BehospitalInfoServiceImpl extends ServiceImpl<BehospitalInfoMapper,
     }
 
     @Override
-    public IPage<BehospitalInfoDTO> getPageByDept(BehospitalPageVO behospitalPageVO) {
+    public IPage<BehospitalInfoDeptDTO> getPageByDept(BehospitalPageVO behospitalPageVO) {
         return baseMapper.getPageByDept(behospitalPageVO);
     }
 
@@ -180,7 +180,7 @@ public class BehospitalInfoServiceImpl extends ServiceImpl<BehospitalInfoMapper,
      * @param qcResultPageVO
      * @return
      */
-    public IPage<QcResultShortDTO> getOrGoodLevelByDept(QcResultPageVO qcResultPageVO) {
+    public IPage<QcResultShortDeptDTO> getOrGoodLevelByDept(QcResultPageVO qcResultPageVO) {
         return  baseMapper.getIsGoodLevelByDept(qcResultPageVO);
     }
 
@@ -381,7 +381,7 @@ public class BehospitalInfoServiceImpl extends ServiceImpl<BehospitalInfoMapper,
      * @param exportQcresultVO
      * @return
      */
-    public List<ExportExcelDTO> exportQcresultByDept(ExportQcresultVO exportQcresultVO) {
+    public List<ExportExcelByDeptDTO> exportQcresultByDept(ExportQcresultVO exportQcresultVO) {
         return baseMapper.exportQcresultByDept(exportQcresultVO);
     }
 
@@ -406,7 +406,7 @@ public class BehospitalInfoServiceImpl extends ServiceImpl<BehospitalInfoMapper,
      * @param qcResultShortPageVO
      * @return
      */
-    public IPage<QcResultShortDTO> qcResultShortByDeptPage(@Param("qcResultShortPageVO") QcResultShortPageVO qcResultShortPageVO) {
+    public IPage<QcResultShortDeptDTO> qcResultShortByDeptPage(@Param("qcResultShortPageVO") QcResultShortPageVO qcResultShortPageVO) {
         return baseMapper.qcResultShortByDeptPage(qcResultShortPageVO);
     }
 

+ 11 - 0
src/main/java/com/diagbot/vo/BehospitalPageVO.java

@@ -36,6 +36,17 @@ public class BehospitalPageVO extends Page implements Serializable {
      */
     private String name;
 
+    /**
+     * 病区name
+     */
+    private String wardName;
+
+
+    /**
+     * 医疗组name
+     */
+    private String medoupName;
+
     /**
      * 档案号
      */

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

@@ -32,6 +32,16 @@ public class ExportQcresultVO {
     @ApiModelProperty(hidden = true)
     private Long userId;
     private Long deptId;
+    /**
+     * 病区name
+     */
+    private String wardName;
+
+
+    /**
+     * 医疗组name
+     */
+    private String medoupName;
     /**
      * 主诊断
      */

+ 2 - 2
src/main/java/com/diagbot/web/BehospitalInfoController.java

@@ -196,8 +196,8 @@ public class BehospitalInfoController {
                     "leaveHosDateEnd:出院时间结束时间<br>")
     @PostMapping("/page_dept")
     @SysLogger("page_dept")
-    public RespDTO<IPage<BehospitalInfoDTO>> pageDept(@RequestBody BehospitalPageVO behospitalPageVO) {
-        IPage<BehospitalInfoDTO> data = behospitalInfoFacade.pageDept(behospitalPageVO);
+    public RespDTO<IPage<BehospitalInfoDeptDTO>> pageDept(@RequestBody BehospitalPageVO behospitalPageVO) {
+        IPage<BehospitalInfoDeptDTO> data = behospitalInfoFacade.pageDept(behospitalPageVO);
         return RespDTO.onSuc(data);
     }
 

+ 2 - 2
src/main/java/com/diagbot/web/ConsoleByDeptController.java

@@ -251,7 +251,7 @@ public class ConsoleByDeptController {
                     "isPlacefile: 是否归档(0:未归档,1:已归档) <br>")
     @PostMapping("/homePageOrGoodLevelByDept")
     @SysLogger("homePageOrGoodLevelByDept")
-    public RespDTO<IPage<QcResultShortDTO>> homePageOrGoodLevelByDept(@RequestBody @Valid QcResultPageVO qcResultPageVO) {
+    public RespDTO<IPage<QcResultShortDeptDTO>> homePageOrGoodLevelByDept(@RequestBody @Valid QcResultPageVO qcResultPageVO) {
         return RespDTO.onSuc(consoleByDeptFacade.homePageOrGoodLevelByDept(qcResultPageVO));
     }
 
@@ -278,7 +278,7 @@ public class ConsoleByDeptController {
                     "isPlacefile: 是否归档(0:未归档,1:已归档) <br>")
     @PostMapping("/qcResultShortByDeptPage")
     @SysLogger("qcResultShortByDeptPage")
-    public RespDTO<IPage<QcResultShortDTO>> qcResultShortByDeptPage(@RequestBody @Valid QcResultShortPageVO qcResultShortPageVO) {
+    public RespDTO<IPage<QcResultShortDeptDTO>> qcResultShortByDeptPage(@RequestBody @Valid QcResultShortPageVO qcResultShortPageVO) {
         return RespDTO.onSuc(consoleByDeptFacade.qcResultShortByDeptPage(qcResultShortPageVO));
     }
 

+ 43 - 7
src/main/resources/mapper/BehospitalInfoMapper.xml

@@ -999,10 +999,11 @@
     </select>
 
     <!--质控评分(科室)分页-->
-    <select id="getPageByDept" resultType="com.diagbot.dto.BehospitalInfoDTO">
+    <select id="getPageByDept" resultType="com.diagbot.dto.BehospitalInfoDeptDTO">
         SELECT * from (
         SELECT
         t.*,
+        t3.name as medoupName,
         CASE WHEN ISNULL(g.status) THEN 0 ELSE g.status END check_status,
         CASE WHEN ISNULL(h.status) THEN 0 ELSE h.status END mr_status,
         g.check_type as ch_type,
@@ -1044,7 +1045,18 @@
         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
+        LEFT JOIN bas_doctor_info t2 ON t.doctor_id = t2.doctor_id
+        AND t.hospital_id = t2.hospital_id
+        AND t2.is_deleted = 'N'
+        LEFT JOIN sys_medoup t3 ON t2.group_id = t3.`code`
+        AND t3.is_deleted = 'N'
         where t.is_deleted = 'N'
+        <if test="medoupName != null and medoupName != ''">
+            AND t3.name = #{medoupName}
+        </if>
+        <if test="wardName != null and wardName != ''">
+            AND t.ward_name = #{wardName}
+        </if>
         <if test="diagnose != null and diagnose != ''">
             AND t.diagnose LIKE CONCAT( '%', #{diagnose}, '%' )
         </if>
@@ -4416,9 +4428,9 @@
     </select>
 
     <!-- 科室质控评分导出到excel-->
-    <select  id="exportQcresultByDept" resultMap="ExportExcelMap" parameterType="com.diagbot.vo.ExportQcresultVO">
+    <select  id="exportQcresultByDept" resultMap="ExportExcelMapByDept" parameterType="com.diagbot.vo.ExportQcresultVO">
         SELECT * FROM (
-        SELECT tp.*,CASE WHEN ISNULL(g.status) THEN 0 ELSE g.status END check_status,
+        SELECT tp.*,t3.name as medoupName,CASE WHEN ISNULL(g.status) THEN 0 ELSE g.status END check_status,
         CASE WHEN ISNULL(h.status) THEN 0 ELSE h.status END mr_status,
         g.check_type AS ch_type,
         h.check_type AS mr_type,
@@ -4431,7 +4443,9 @@
         t1.behDeptId,
         t1.behDeptName,
         t1.doctorName,
+        t1.doctor_id as doctorId,
         t1.patName,
+        t1.wardName,
         t1.behospitalCode,
         t1.hospitalId,
         t1.behospitalDate,
@@ -4447,7 +4461,9 @@
         (
         SELECT
         a.doctor_name AS doctorName,
+        a.doctor_id,
         a.`name` AS patName,
+        a.ward_name as wardName,
         a.behospital_code AS behospitalCode,
         a.hospital_id AS hospital_id,
         a.behospital_date AS behospitalDate,
@@ -4485,6 +4501,9 @@
         <if test="isPlacefile != null and isPlacefile != ''">
             and a.is_placefile = #{isPlacefile}
         </if>
+        <if test="wardName != null and wardName != ''">
+            AND a.ward_name = #{wardName}
+        </if>
         <![CDATA[AND a.qc_type_id <>0 ]]>
         <if test="hospitalId != null and hospitalId != ''">
             AND a.hospital_id = #{hospitalId}
@@ -4536,7 +4555,9 @@
         SELECT
         ROUND( AVG( b.score_res ), 2 ) AS avgScore,
         a.beh_dept_id AS behDeptId,
-        a.beh_dept_name AS behDeptName
+        a.beh_dept_name AS behDeptName,
+        a.doctor_id AS doctorId,
+        a.doctor_name AS doctorName
         FROM
         med_behospital_info a,
         med_qcresult_info b,
@@ -4552,6 +4573,9 @@
         <if test="diagnose != null and diagnose != ''">
             AND a.diagnose LIKE CONCAT( '%', #{diagnose}, '%' )
         </if>
+        <if test="wardName != null and wardName != ''">
+            AND a.ward_name = #{wardName}
+        </if>
         <if test="isPlacefile != null and isPlacefile != ''">
             and a.is_placefile = #{isPlacefile}
         </if>
@@ -4598,11 +4622,14 @@
         </if>
         GROUP BY
         a.beh_dept_id,
-        a.beh_dept_name
+        a.beh_dept_name,
+        a.doctor_id,
+        a.doctor_name
         ) t2
         WHERE
         t1.behDeptId = t2.behDeptId
         AND t1.behDeptName = t2.behDeptName
+        AND t1.doctor_id = t2.doctorId
         ORDER BY
         t1.behDeptName,
         t1.doctorName,
@@ -4618,6 +4645,15 @@
         LEFT JOIN (SELECT * FROM med_check_info WHERE is_deleted = 'N'AND check_type = 1 ) h
         ON tp.behospitalCode = h.behospital_code
         AND tp.hospitalId = h.hospital_id
+        LEFT JOIN bas_doctor_info t2 ON tp.doctorId = t2.doctor_id
+        AND tp.hospitalId = t2.hospital_id
+        AND t2.is_deleted = 'N'
+        LEFT JOIN sys_medoup t3 ON t2.group_id = t3.`code`
+        AND t3.is_deleted = 'N'
+        where 1=1
+        <if test="medoupName != null and medoupName != ''">
+            AND t3.name = #{medoupName}
+        </if>
         ) tu
         WHERE tu.behospitalCode IS NOT NULL
         <if test="checkStatus != null ">
@@ -5367,7 +5403,7 @@
     </select>
 
     <!-- 条目缺陷质控评分页-科室(内页)-->
-    <select id="qcResultShortByDeptPage" resultType="com.diagbot.dto.QcResultShortDTO">
+    <select id="qcResultShortByDeptPage" resultType="com.diagbot.dto.QcResultShortDeptDTO">
         SELECT t.*,t3.name as medoupName
         FROM
         (SELECT DISTINCT
@@ -11162,7 +11198,7 @@
 
 
     <!-- 不合格/合格数病历号(内页)科室-->
-    <select id="getIsGoodLevelByDept" resultType="com.diagbot.dto.QcResultShortDTO">
+    <select id="getIsGoodLevelByDept" resultType="com.diagbot.dto.QcResultShortDeptDTO">
         select m.*,t3.name as medoupName from(
         SELECT t.*
         FROM