Sfoglia il codice sorgente

31日再入院查询-科室

chengyao 4 anni fa
parent
commit
7d733fc494

+ 1 - 0
src/main/java/com/diagbot/config/ResourceServerConfigurer.java

@@ -198,6 +198,7 @@ public class ResourceServerConfigurer extends ResourceServerConfigurerAdapter {
                 .antMatchers("/print/export/qcCheckMRPageExportByDept").permitAll()
                 .antMatchers("/consoleByDept/hmImproveMRPageByDept").permitAll()
                 .antMatchers("/print/export/improveMRExportByDept").permitAll()
+                .antMatchers("/consoleByDept/reHos31DaysPageByDept").permitAll()
                 .antMatchers("/**").authenticated();
         //                .antMatchers("/**").permitAll();
     }

+ 1 - 0
src/main/java/com/diagbot/config/security/UrlAccessDecisionManager.java

@@ -242,6 +242,7 @@ public class UrlAccessDecisionManager implements AccessDecisionManager {
                 || matchers("/print/export/qcCheckMRPageExportByDept", request)
                 || matchers("/consoleByDept/hmImproveMRPageByDept", request)
                 || matchers("/print/export/improveMRExportByDept", request)
+                || matchers("/consoleByDept/reHos31DaysPageByDept", request)
                 || matchers("/", request)) {
             return true;
         }

+ 43 - 0
src/main/java/com/diagbot/dto/ReBeHosByDeptDTO.java

@@ -0,0 +1,43 @@
+package com.diagbot.dto;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import cn.afterturn.easypoi.excel.annotation.ExcelCollection;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.List;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2020/7/16 13:43
+ */
+@Getter
+@Setter
+public class ReBeHosByDeptDTO {
+    /**
+     * 病案号
+     */
+    @Excel(name = "病案号", width = 20, needMerge = true, orderNum = "1")
+    private String fileCode;
+    /**
+     * 性别
+     */
+    @Excel(name = "性别", width = 10, needMerge = true, orderNum = "2")
+    private String sex;
+    /**
+     * 主诊断
+     */
+    @Excel(name = "主诊断", width = 50, needMerge = true, orderNum = "3")
+    private String diagnose;
+    /**
+     * 间隔天数
+     */
+    @Excel(name = "间隔天数", width = 10, needMerge = true, orderNum = "4")
+    private Integer diffDays;
+    /**
+     * 比较病历组
+     */
+    @ExcelCollection(name = "", orderNum = "5")
+    private List<ReBeHosDetailByDeptDTO> details;
+}

+ 69 - 0
src/main/java/com/diagbot/dto/ReBeHosDetailByDeptDTO.java

@@ -0,0 +1,69 @@
+package com.diagbot.dto;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.Date;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2020/7/16 15:17
+ */
+@Getter
+@Setter
+public class ReBeHosDetailByDeptDTO {
+    /**
+     * 病人住院号
+     */
+    @Excel(name = "病人住院号", width = 20, orderNum = "1")
+    private String behospitalCode;
+    /**
+     * 病人姓名
+     */
+    @Excel(name = "病人姓名", width = 20, orderNum = "2")
+    private String name;
+    /**
+     * 病历等级
+     */
+    @Excel(name = "病历等级", width = 10, orderNum = "3")
+    private String level;
+    /**
+     * 病历得分
+     */
+    @Excel(name = "病历得分", width = 10, orderNum = "4")
+    private Double scoreRes;
+    /**
+     * 科室编码
+     */
+    private String behDeptId;
+    /**
+     * 主管医生
+     */
+    @Excel(name = "主管医生", width = 50, orderNum = "5")
+    private String doctorName;
+    /**
+     * 出院日期
+     */
+    @Excel(name = "出院日期", format = "yyyy-MM-dd", width = 30, orderNum = "6")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date leaveHospitalDate;
+    /**
+     * 入院日期
+     */
+    @Excel(name = "入院日期", format = "yyyy-MM-dd", width = 30, orderNum = "7")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date behospitalDate;
+    /**
+     * 住院天数
+     */
+    @Excel(name = "住院天数", width = 15, orderNum = "8")
+    private String behospitalDayNum;
+    /**
+     * 住院费用
+     */
+    @Excel(name = "住院费用", width = 15, orderNum = "9")
+    private String totleFee;
+}

+ 2 - 0
src/main/java/com/diagbot/dto/ReBeHosMergeDTO.java

@@ -18,6 +18,8 @@ public class ReBeHosMergeDTO {
     private String diagnose;
     private String name;
     private String sex;
+    private String doctorName;
+    private String doctorId;
     private String behDeptId;
     private String behDeptName;
     private String behospitalCode;

+ 42 - 0
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.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.diagbot.dto.*;
 import com.diagbot.util.BeanUtil;
 import com.diagbot.util.EntityUtil;
@@ -774,5 +775,46 @@ public class ConsoleByDeptFacade {
         return behospitalInfoFacade.hmImproveMRPageByDept(qcResultShortPageVO);
     }
 
+    /**
+     * 31天再入院详情页-科室
+     *
+     * @param reBeHosPageVO
+     * @return
+     */
+    public IPage<ReBeHosByDeptDTO> reHos31DaysPageByDept(ReBeHosPageVO reBeHosPageVO) {
+        filterFacade.reBeHosPageVOSet(reBeHosPageVO);
+        IPage<ReBeHosMergeDTO> page = behospitalInfoFacade.reHos31DaysPageByDept(reBeHosPageVO);
+        List<ReBeHosMergeDTO> records = page.getRecords();
+        IPage<ReBeHosByDeptDTO> retPage = new Page<>();
+        BeanUtil.copyProperties(page, retPage);
+        List<ReBeHosByDeptDTO> retRecords = Lists.newLinkedList();
+        if (ListUtil.isNotEmpty(records)) {
+            for (ReBeHosMergeDTO record : records) {
+                ReBeHosByDeptDTO retRecord = new ReBeHosByDeptDTO();
+                BeanUtil.copyProperties(record, retRecord);
+                List<ReBeHosDetailByDeptDTO> details = Lists.newLinkedList();
+                ReBeHosDetailByDeptDTO detailRecord = new ReBeHosDetailByDeptDTO();
+                BeanUtil.copyProperties(record, detailRecord);
+                details.add(detailRecord);
+                ReBeHosDetailByDeptDTO lastDetailRecord = new ReBeHosDetailByDeptDTO();
+                lastDetailRecord.setName(record.getName());
+                lastDetailRecord.setBehDeptId(record.getLastBehDeptId());
+                lastDetailRecord.setDoctorName(record.getDoctorName());
+                lastDetailRecord.setBehospitalCode(record.getLastBehospitalCode());
+                lastDetailRecord.setBehospitalDate(record.getLastBehospitalDate());
+                lastDetailRecord.setLeaveHospitalDate(record.getLastLeaveHospitalDate());
+                lastDetailRecord.setLevel(record.getLastLevel());
+                lastDetailRecord.setScoreRes(record.getLastScoreRes());
+                lastDetailRecord.setBehospitalDayNum(record.getLastBehospitalDayNum());
+                lastDetailRecord.setTotleFee(record.getLastTotleFee());
+                details.add(lastDetailRecord);
+                retRecord.setDetails(details);
+                retRecords.add(retRecord);
+            }
+        }
+        retPage.setRecords(retRecords);
+        return retPage;
+    }
+
 
 }

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

@@ -474,6 +474,15 @@ public interface BehospitalInfoMapper extends BaseMapper<BehospitalInfo> {
      */
     public IPage<ReBeHosMergeDTO> reHos31DaysPage(@Param("reBeHosPageVO") ReBeHosPageVO reBeHosPageVO);
 
+    /**
+     * 31天再入院详情页-科室
+     *
+     * @param reBeHosPageVO
+     * @return
+     */
+    public IPage<ReBeHosMergeDTO> reHos31DaysPageByDept(@Param("reBeHosPageVO") ReBeHosPageVO reBeHosPageVO);
+
+
     /**
      * 入院人数统计-首页
      *

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

@@ -439,6 +439,14 @@ public interface BehospitalInfoService extends IService<BehospitalInfo> {
      */
     public IPage<ReBeHosMergeDTO> reHos31DaysPage(@Param("reBeHosPageVO") ReBeHosPageVO reBeHosPageVO);
 
+    /**
+     * 31天再入院详情页
+     *
+     * @param reBeHosPageVO
+     * @return
+     */
+    public IPage<ReBeHosMergeDTO> reHos31DaysPageByDept(@Param("reBeHosPageVO") ReBeHosPageVO reBeHosPageVO);
+
     /**
      * 入院人数统计-首页
      *

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

@@ -710,6 +710,17 @@ public class BehospitalInfoServiceImpl extends ServiceImpl<BehospitalInfoMapper,
     public IPage<ReBeHosMergeDTO> reHos31DaysPage(@Param("reBeHosPageVO") ReBeHosPageVO reBeHosPageVO) {
         return baseMapper.reHos31DaysPage(reBeHosPageVO);
     }
+    /**
+     * 31天再入院详情页-科室
+     *
+     * @param reBeHosPageVO
+     * @return
+     */
+    @Override
+    public IPage<ReBeHosMergeDTO> reHos31DaysPageByDept(@Param("reBeHosPageVO") ReBeHosPageVO reBeHosPageVO) {
+        return baseMapper.reHos31DaysPageByDept(reBeHosPageVO);
+    }
+
 
     /**
      * 入院人数统计-首页

+ 1 - 0
src/main/java/com/diagbot/vo/ReBeHosPageVO.java

@@ -20,6 +20,7 @@ public class ReBeHosPageVO extends Page {
     private Long userId;
     @ApiModelProperty(hidden = true)
     private String hospitalId;
+    private String deptName;
     @NotNull(message = "请输入起始时间")
     private Date startDate;
     @NotNull(message = "请输入截止时间")

+ 18 - 0
src/main/java/com/diagbot/web/ConsoleByDeptController.java

@@ -411,5 +411,23 @@ public class ConsoleByDeptController {
     public RespDTO<IPage<QcResultShortDTO>> hmImproveMRPageByDept(@RequestBody @Valid QcResultShortPageVO qcResultShortPageVO) {
         return RespDTO.onSuc(consoleByDeptFacade.hmImproveMRPageByDept(qcResultShortPageVO));
     }
+
+    /**
+     * 31天再入院人数-科室(内页)
+     *
+     * @param reBeHosPageVO
+     * @return
+     */
+    @ApiOperation(value = "31天再入院人数-科室(内页)[by:cy]",
+            notes = "name: 病人名称 <br>" +
+                    "fileCode: 病案号 <br>" +
+                    "startDate: 起始时间 <br>" +
+                    "endDate: 截止时间 <br>" +
+                    "isPlacefile: 是否归档(0:未归档,1:已归档) <br>")
+    @PostMapping("/reHos31DaysPageByDept")
+    @SysLogger("reHos31DaysPageByDept")
+    public RespDTO<IPage<ReBeHosDTO>> reHos31DaysPageByDept(@RequestBody @Valid ReBeHosPageVO reBeHosPageVO) {
+        return RespDTO.onSuc(consoleByDeptFacade.reHos31DaysPageByDept(reBeHosPageVO));
+    }
     //endregion -----------------------内页接口结束------------------------------
 }

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

@@ -12474,6 +12474,363 @@
         AND t.lastBehospitalCode = mhp_last.behospital_code
     </select>
 
+    <!-- 31天再入院详情页-科室-->
+    <select id="reHos31DaysPageByDept" resultType="com.diagbot.dto.ReBeHosMergeDTO">
+        SELECT
+        t.fileCode,
+        t.diagnose,
+        t.NAME,
+        t.sex,
+        t.hospitalId,
+        t.behDeptId,
+        t.behDeptName,
+        t.doctorId,
+        t.doctorName,
+        t.behospitalCode,
+        t.behospitalDate,
+        t.leaveHospitalDate,
+        t.lastBehDeptId,
+        t.lastBehDeptName,
+        t.lastBehospitalCode,
+        t.lastBehospitalDate,
+        t.lastLeaveHospitalDate,
+        t.diffDays,
+        mqi.score_res AS scoreRes,
+        mqi.LEVEL AS LEVEL,
+        mqi_last.score_res AS lastScoreRes,
+        mqi_last.LEVEL AS lastLevel,
+        mhp.total_fee AS totleFee,
+        mhp.behospital_day_num AS behospitalDayNum,
+        mhp_last.total_fee AS lastTotleFee,
+        mhp_last.behospital_day_num AS lastBehospitalDayNum
+        FROM
+        (
+        SELECT
+        be.fileCode,
+        be.diagnose,
+        be.NAME,
+        be.sex,
+        be.hospitalId,
+        be.behDeptId,
+        be.behDeptName,
+        be.doctorId,
+        be.doctorName,
+        be.behospitalCode,
+        be.behospitalDate,
+        be.leaveHospitalDate,
+        be.lastBehDeptId,
+        be.lastBehDeptName,
+        be.lastBoctorId,
+        be.lastBoctorName,
+        be.lastBehospitalCode,
+        be.lastBehospitalDate,
+        be.lastLeaveHospitalDate,
+        be.diffDays
+        FROM
+        (
+        SELECT
+        r1.file_code AS fileCode,
+        r1.diagnose,
+        r1.NAME,
+        r1.sex,
+        r1.hospital_id AS hospitalId,
+        r1.beh_dept_id AS behDeptId,
+        r1.beh_dept_name AS behDeptName,
+        r1.doctor_id as doctorId,
+        r1.doctor_name as doctorName,
+        r1.behospital_code AS behospitalCode,
+        r1.behospital_date AS behospitalDate,
+        r1.leave_hospital_date AS leaveHospitalDate,
+        r2.beh_dept_id AS lastBehDeptId,
+        r2.beh_dept_name AS lastBehDeptName,
+        r2.behospital_code AS lastBehospitalCode,
+        r2.behospital_date AS lastBehospitalDate,
+        r2.doctor_id as lastBoctorId,
+        r2.doctor_name as lastBoctorName,
+        r2.leave_hospital_date AS lastLeaveHospitalDate,
+        TIMESTAMPDIFF( DAY, DATE( r2.leave_hospital_date ), DATE( r1.behospital_date ) ) AS diffDays
+        FROM
+        (
+        SELECT
+        ( @rownum := @rownum + 1 ) AS rownum,
+        t1.file_code,
+        t1.diagnose,
+        t1.NAME,
+        t1.sex,
+        t1.doctor_id,
+        t1.doctor_name,
+        t1.hospital_id,
+        t1.beh_dept_id,
+        t1.beh_dept_name,
+        t1.behospital_code,
+        t1.behospital_date,
+        t1.leave_hospital_date
+        FROM
+        (
+        SELECT
+        tt1.file_code,
+        tt1.diagnose,
+        tt1.doctor_id,
+        tt1.doctor_name,
+        tt2.NAME,
+        tt2.sex,
+        tt2.hospital_id,
+        tt2.beh_dept_id,
+        tt2.beh_dept_name,
+        tt2.behospital_code,
+        tt2.behospital_date,
+        tt2.leave_hospital_date
+        FROM
+        (
+        SELECT
+        a.file_code,
+        a.diagnose,
+        a.doctor_id,
+        a.doctor_name
+        FROM
+        med_behospital_info a,
+        sys_user_dept c
+        WHERE
+        a.is_deleted = 'N'
+        AND c.is_deleted = 'N'
+        AND a.hospital_id = c.hospital_id
+        AND a.beh_dept_id = c.dept_id
+        <if test="reBeHosPageVO.deptName != null and reBeHosPageVO.deptName != ''">
+            and a.beh_dept_name = #{reBeHosPageVO.deptName}
+        </if>
+        <if test="reBeHosPageVO.isPlacefile != null and reBeHosPageVO.isPlacefile != ''">
+            and a.is_placefile = #{reBeHosPageVO.isPlacefile}
+        </if>
+        <if test="reBeHosPageVO.userId!=null">
+            AND c.user_id = #{reBeHosPageVO.userId}
+        </if>
+        AND a.qc_type_id != 0
+        AND IFNULL( a.diagnose, '' )!= ''
+        AND IFNULL( a.file_code, '' )!= ''
+        <if test="reBeHosPageVO.hospitalId != null and reBeHosPageVO.hospitalId != ''">
+            AND a.hospital_id = #{reBeHosPageVO.hospitalId}
+        </if>
+        <if test="reBeHosPageVO.isPlacefile != null and reBeHosPageVO.isPlacefile == 0">
+            <if test="reBeHosPageVO.startDate != null ">
+                <![CDATA[ AND a.behospital_date >= #{reBeHosPageVO.startDate}]]>
+            </if>
+            <if test="reBeHosPageVO.endDate != null ">
+                <![CDATA[ AND a.behospital_date <= #{reBeHosPageVO.endDate}]]>
+            </if>
+        </if>
+        <if test="reBeHosPageVO.isPlacefile != null and reBeHosPageVO.isPlacefile == 1">
+            <if test="reBeHosPageVO.startDate != null ">
+                <![CDATA[ AND a.leave_hospital_date >= #{reBeHosPageVO.startDate}]]>
+            </if>
+            <if test="reBeHosPageVO.endDate != null">
+                <![CDATA[ AND a.leave_hospital_date <= #{reBeHosPageVO.endDate}]]>
+            </if>
+        </if>
+        <if test="reBeHosPageVO.fileCode != null and reBeHosPageVO.fileCode != ''">
+            AND a.file_code like concat('%', #{reBeHosPageVO.fileCode},'%')
+        </if>
+        <if test="reBeHosPageVO.name != null and reBeHosPageVO.name != ''">
+            AND a.name like concat('%', #{reBeHosPageVO.name},'%')
+        </if>
+        GROUP BY
+        a.file_code,
+        a.diagnose
+        HAVING
+        count(*)> 1
+        ) tt1,
+        med_behospital_info tt2
+        WHERE
+        tt2.is_deleted = 'N'
+        <if test="reBeHosPageVO.isPlacefile != null and reBeHosPageVO.isPlacefile != ''">
+            and tt2.is_placefile = #{reBeHosPageVO.isPlacefile}
+        </if>
+        AND tt2.qc_type_id != 0
+        AND tt1.file_code = tt2.file_code
+        AND tt1.diagnose = tt2.diagnose
+        <if test="reBeHosPageVO.hospitalId != null and reBeHosPageVO.hospitalId != ''">
+            AND tt2.hospital_id = #{reBeHosPageVO.hospitalId}
+        </if>
+        <if test="reBeHosPageVO.isPlacefile != null and reBeHosPageVO.isPlacefile == 0">
+            <if test="reBeHosPageVO.startDate != null ">
+                <![CDATA[ AND tt2.behospital_date >= #{reBeHosPageVO.startDate}]]>
+            </if>
+            <if test="reBeHosPageVO.endDate != null ">
+                <![CDATA[ AND tt2.behospital_date <= #{reBeHosPageVO.endDate}]]>
+            </if>
+        </if>
+        <if test="reBeHosPageVO.isPlacefile != null and reBeHosPageVO.isPlacefile == 1">
+            <if test="reBeHosPageVO.startDate != null ">
+                <![CDATA[ AND tt2.leave_hospital_date >= #{reBeHosPageVO.startDate}]]>
+            </if>
+            <if test="reBeHosPageVO.endDate != null">
+                <![CDATA[ AND tt2.leave_hospital_date <= #{reBeHosPageVO.endDate}]]>
+            </if>
+        </if>
+        <if test="reBeHosPageVO.fileCode != null and reBeHosPageVO.fileCode != ''">
+            AND tt2.file_code like concat('%', #{reBeHosPageVO.fileCode},'%')
+        </if>
+        <if test="reBeHosPageVO.name != null and reBeHosPageVO.name != ''">
+            AND tt2.name like concat('%', #{reBeHosPageVO.name},'%')
+        </if>
+        ORDER BY
+        tt1.file_code,
+        tt1.diagnose,
+        tt2.behospital_date DESC
+        ) t1,
+        ( SELECT @rownum := 0 ) r
+        ) r1
+        LEFT JOIN (
+        SELECT
+        ( @INDEX := @INDEX + 1 ) AS rownum,
+        t1.file_code,
+        t1.diagnose,
+        t1.NAME,
+        t1.sex,
+        t1.hospital_id,
+        t1.beh_dept_id,
+        t1.beh_dept_name,
+        t1.doctor_id,
+        t1.doctor_name,
+        t1.behospital_code,
+        t1.behospital_date,
+        t1.leave_hospital_date
+        FROM
+        (
+        SELECT
+        tt1.file_code,
+        tt1.diagnose,
+        tt1.doctor_id,
+        tt1.doctor_name,
+        tt2.NAME,
+        tt2.sex,
+        tt2.hospital_id,
+        tt2.beh_dept_id,
+        tt2.beh_dept_name,
+        tt2.behospital_code,
+        tt2.behospital_date,
+        tt2.leave_hospital_date
+        FROM
+        (
+        SELECT
+        a.file_code,
+        a.diagnose,
+        a.doctor_id ,
+        a.doctor_name
+        FROM
+        med_behospital_info a,
+        sys_user_dept c
+        WHERE
+        a.is_deleted = 'N'
+        AND c.is_deleted = 'N'
+        AND a.hospital_id = c.hospital_id
+        AND a.beh_dept_id = c.dept_id
+        <if test="reBeHosPageVO.deptName != null and reBeHosPageVO.deptName != ''">
+              and a.beh_dept_name = #{reBeHosPageVO.deptName}
+        </if>
+        <if test="reBeHosPageVO.userId!=null">
+            AND c.user_id = #{reBeHosPageVO.userId}
+        </if>
+        <if test="reBeHosPageVO.isPlacefile != null and reBeHosPageVO.isPlacefile != ''">
+            and a.is_placefile = #{reBeHosPageVO.isPlacefile}
+        </if>
+        AND a.qc_type_id != 0
+        AND IFNULL( a.diagnose, '' )!= ''
+        AND IFNULL( a.file_code, '' )!= ''
+        <if test="reBeHosPageVO.hospitalId != null and reBeHosPageVO.hospitalId != ''">
+            AND a.hospital_id = #{reBeHosPageVO.hospitalId}
+        </if>
+        <if test="reBeHosPageVO.isPlacefile != null and reBeHosPageVO.isPlacefile == 0">
+            <if test="reBeHosPageVO.startDate != null ">
+                <![CDATA[ AND a.behospital_date >= #{reBeHosPageVO.startDate}]]>
+            </if>
+            <if test="reBeHosPageVO.endDate != null ">
+                <![CDATA[ AND a.behospital_date <= #{reBeHosPageVO.endDate}]]>
+            </if>
+        </if>
+        <if test="reBeHosPageVO.isPlacefile != null and reBeHosPageVO.isPlacefile == 1">
+            <if test="reBeHosPageVO.startDate != null ">
+                <![CDATA[ AND a.leave_hospital_date >= #{reBeHosPageVO.startDate}]]>
+            </if>
+            <if test="reBeHosPageVO.endDate != null">
+                <![CDATA[ AND a.leave_hospital_date <= #{reBeHosPageVO.endDate}]]>
+            </if>
+        </if>
+        <if test="reBeHosPageVO.fileCode != null and reBeHosPageVO.fileCode != ''">
+            AND a.file_code like concat('%', #{reBeHosPageVO.fileCode},'%')
+        </if>
+        <if test="reBeHosPageVO.name != null and reBeHosPageVO.name != ''">
+            AND a.name like concat('%', #{reBeHosPageVO.name},'%')
+        </if>
+        GROUP BY
+        a.file_code,
+        a.diagnose
+        HAVING
+        count(*)> 1
+        ) tt1,
+        med_behospital_info tt2
+        WHERE
+        tt2.is_deleted = 'N'
+        <if test="reBeHosPageVO.isPlacefile != null and reBeHosPageVO.isPlacefile != ''">
+            and tt2.is_placefile = #{reBeHosPageVO.isPlacefile}
+        </if>
+        AND tt2.qc_type_id != 0
+        AND tt1.file_code = tt2.file_code
+        AND tt1.diagnose = tt2.diagnose
+        <if test="reBeHosPageVO.hospitalId != null and reBeHosPageVO.hospitalId != ''">
+            AND tt2.hospital_id = #{reBeHosPageVO.hospitalId}
+        </if>
+        <if test="reBeHosPageVO.isPlacefile != null and reBeHosPageVO.isPlacefile == 0">
+            <if test="reBeHosPageVO.startDate != null ">
+                <![CDATA[ AND tt2.behospital_date >= #{reBeHosPageVO.startDate}]]>
+            </if>
+            <if test="reBeHosPageVO.endDate != null ">
+                <![CDATA[ AND tt2.behospital_date <= #{reBeHosPageVO.endDate}]]>
+            </if>
+        </if>
+        <if test="reBeHosPageVO.isPlacefile != null and reBeHosPageVO.isPlacefile == 1">
+            <if test="reBeHosPageVO.startDate != null ">
+                <![CDATA[ AND tt2.leave_hospital_date >= #{reBeHosPageVO.startDate}]]>
+            </if>
+            <if test="reBeHosPageVO.endDate != null">
+                <![CDATA[ AND tt2.leave_hospital_date <= #{reBeHosPageVO.endDate}]]>
+            </if>
+        </if>
+        <if test="reBeHosPageVO.fileCode != null and reBeHosPageVO.fileCode != ''">
+            AND tt2.file_code like concat('%', #{reBeHosPageVO.fileCode},'%')
+        </if>
+        <if test="reBeHosPageVO.name != null and reBeHosPageVO.name != ''">
+            AND tt2.name like concat('%', #{reBeHosPageVO.name},'%')
+        </if>
+        ORDER BY
+        tt1.file_code,
+        tt1.diagnose,
+        tt2.behospital_date DESC
+        ) t1,(
+        SELECT
+        @INDEX := 0
+        ) r
+        ) r2 ON r1.file_code = r2.file_code
+        AND r1.rownum = r2.rownum - 1
+        ) be
+        WHERE
+        be.diffDays IS NOT NULL
+        AND be.diffDays BETWEEN 0
+        AND 31
+        ) t
+        LEFT JOIN med_qcresult_info mqi ON mqi.is_deleted = 'N'
+        AND t.hospitalId = mqi.hospital_id
+        AND t.behospitalCode = mqi.behospital_code
+        LEFT JOIN med_qcresult_info mqi_last ON mqi_last.is_deleted = 'N'
+        AND t.hospitalId = mqi_last.hospital_id
+        AND t.lastBehospitalCode = mqi_last.behospital_code
+        LEFT JOIN med_home_page mhp ON mhp.is_deleted = 'N'
+        AND t.hospitalId = mhp.hospital_id
+        AND t.behospitalCode = mhp.behospital_code
+        LEFT JOIN med_home_page mhp_last ON mhp_last.is_deleted = 'N'
+        AND t.hospitalId = mhp_last.hospital_id
+        AND t.lastBehospitalCode = mhp_last.behospital_code
+    </select>
+
     <!-- 单条条目缺陷统计-->
     <select id="casesEntryStatisticsById" parameterType="com.diagbot.vo.FilterVO" resultType="com.diagbot.dto.NumDTO">
         SELECT