Sfoglia il codice sorgente

修改时效性指标

zhanghang 4 anni fa
parent
commit
e20ace84fa

+ 9 - 142
src/main/java/com/diagbot/facade/BehospitalInfoFacade.java

@@ -11,30 +11,8 @@ import com.diagbot.enums.IsDeleteEnum;
 import com.diagbot.exception.CommonErrorCode;
 import com.diagbot.exception.CommonException;
 import com.diagbot.service.impl.BehospitalInfoServiceImpl;
-import com.diagbot.util.BeanUtil;
-import com.diagbot.util.DateUtil;
-import com.diagbot.util.EncrypDES;
-import com.diagbot.util.EntityUtil;
-import com.diagbot.util.ExcelUtils;
-import com.diagbot.util.ListUtil;
-import com.diagbot.util.MapUtil;
-import com.diagbot.util.StringUtil;
-import com.diagbot.util.SysUserUtils;
-import com.diagbot.vo.AlgorithmVO;
-import com.diagbot.vo.AnalyzeApiVO;
-import com.diagbot.vo.AnalyzeCdsVO;
-import com.diagbot.vo.AnalyzeCodeVO;
-import com.diagbot.vo.AnalyzeRunVO;
-import com.diagbot.vo.AnalyzeVO;
-import com.diagbot.vo.BehospitalPageVO;
-import com.diagbot.vo.ExportQcresultVO;
-import com.diagbot.vo.GetDetailVO;
-import com.diagbot.vo.MedrecVo;
-import com.diagbot.vo.QcResultAlgQueryVO;
-import com.diagbot.vo.QcResultAlgVO;
-import com.diagbot.vo.QueryVo;
-import com.diagbot.vo.RecordContentVO;
-import com.diagbot.vo.TaskVO;
+import com.diagbot.util.*;
+import com.diagbot.vo.*;
 import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
 
@@ -2245,130 +2223,19 @@ public class BehospitalInfoFacade extends BehospitalInfoServiceImpl {
     }
 
     /**
-     * 入院记录,手术记录,出院记录24小时完成率
-     * @param filterRecordVO
+     * 入院记录,手术记录,出院记录,病案首页24小时完成率
+     * @param filterVO
      * @return
      */
-    public MedQualityControlDTO medicalRecordIndicator(FilterRecordVO filterRecordVO) {
-        String startDate = filterRecordVO.getStartDate();
-        String endDate = filterRecordVO.getEndDate();
-        DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
-        LocalDateTime sta = LocalDateTime.parse(startDate, df);
-        LocalDateTime end = LocalDateTime.parse(endDate, df);
-        MedQualityControlDTO medQualityControlDTO = new MedQualityControlDTO();
-        //时间段手术出院患者数量为
-        Map<String,Integer> number = selectOperationNum(sta,end);
-        Integer operationFeeNum = number.get("operationFee");
-        // type==1  时间为出院
-        filterRecordVO.setType(1);
-        List<Map<String, Object>> medicalRecordIndicatorStaList = baseMapper.medicalRecordIndicator(filterRecordVO, sta, end);
-        //时间段出院人数为
-        Object countNumSta = medicalRecordIndicatorStaList.get(0).get("countNum");
-        int totleCountSta = Integer.parseInt(countNumSta.toString());
-
-        //type=2   时间为住院对比
-        filterRecordVO.setType(2);
-        List<Map<String, Object>> medicalRecordIndicatorOutList = baseMapper.medicalRecordIndicator(filterRecordVO, sta, end);
-        //同期住院人数
-        Object countNumOut = medicalRecordIndicatorOutList.get(0).get("countNum");
-        int totleCountOut = Integer.parseInt(countNumOut.toString());
-        //type=3   住院时间缺陷情况
-        filterRecordVO.setType(3);
-        List<Map<String, Object>> blemishList = baseMapper.medicalRecordIndicator(filterRecordVO, sta, end);
-        if (ListUtil.isNotEmpty(blemishList)) {
-            for (Map<String, Object> blemishMap : blemishList) {
-                //入院记录未在术后24h内完成
-                if (("2658").equals(blemishMap.get("cases_entry_id"))) {
-                    //未完成个数
-                    Object obj = blemishMap.get("2658入院记录未在术后24h内完成");
-                    double i = Double.parseDouble(obj.toString());
-                    //完成率为
-                    if (totleCountOut != 0) {
-                        double admissionDou = (totleCountOut - i) / totleCountOut;
-                        String admissionStr = Double.toString(admissionDou);
-                        medQualityControlDTO.setAdmissionStr(admissionStr);
-                        //完成个数
-                        medQualityControlDTO.setAdmissionNum((totleCountOut - i));
-                    }
-                }
-                //手术记录未在术后24h内完成
-                if (("2170").equals(blemishMap.get("cases_entry_id"))) {
-                    //未完成个数
-                    Object obj = blemishMap.get("2170手术记录未在术后24h内完成");
-                    double i = Double.parseDouble(obj.toString());
-                    //完成率为
-                    if (totleCountOut != 0) {
-                        double admissionDou = (operationFeeNum - i) / operationFeeNum;
-                        String admissionStr = Double.toString(admissionDou);
-                        medQualityControlDTO.setOperationStr(admissionStr);
-                        //完成个数
-                        medQualityControlDTO.setOperationNum((operationFeeNum - i));
-                    }
-                }
-
-
-            }
-        }
-        if (medQualityControlDTO.getAdmissionStr() == null) {
-            medQualityControlDTO.setAdmissionStr("1");
-            //完成个数
-            medQualityControlDTO.setAdmissionNum((Double.valueOf(totleCountOut)));
-        }
-        if (medQualityControlDTO.getOperationStr() == null) {
-            medQualityControlDTO.setOperationStr("1");
-            //完成个数
-            medQualityControlDTO.setOperationNum((Double.valueOf(totleCountOut)));
-        }
-        //type=4   出院时间缺陷情况
-        filterRecordVO.setType(4);
-        List<Map<String, Object>> blemishListF = baseMapper.medicalRecordIndicator(filterRecordVO, sta, end);
-        if (ListUtil.isNotEmpty(blemishListF)) {
-            for (Map<String, Object> blemishMap : blemishListF) {
-                //出院记录未在术后24h内完成
-                if (("2635").equals(blemishMap.get("cases_entry_id"))) {
-                    //未完成个数
-                    Object obj = blemishMap.get("2635出院记录未在术后24h内完成");
-                    double i = Double.parseDouble(obj.toString());
-                    //完成率为
-                    if (totleCountSta != 0) {
-                        double leaveHospitalDou = (totleCountSta - i) / totleCountSta;
-                        String leaveHospitalStr = Double.toString(leaveHospitalDou);
-                        medQualityControlDTO.setLeaveHospitalStr(leaveHospitalStr);
-                        //完成个数
-                        medQualityControlDTO.setLeaveHospitalNum((totleCountOut - i));
-                    }
-                }
-                //病案首页
-                if("3110".equals(blemishMap.get("cases_entry_id"))){
-                    //未完成个数
-                    Object obj = blemishMap.get("3110病案首页未在患者出院24小时内完成");
-                    double i = Double.parseDouble(obj.toString());
-                    //完成率为
-                    if (totleCountSta != 0) {
-                        double medHomePageDou = (totleCountSta - i) / totleCountSta;
-                        String medHomePageStr = Double.toString(medHomePageDou);
-                        medQualityControlDTO.setMedHomePageStr(medHomePageStr);
-                        //完成个数
-                        medQualityControlDTO.setMedHomePageNum((totleCountSta - i));
-                    }
-                }
-            }
-        }
-        if (medQualityControlDTO.getLeaveHospitalStr() == null) {
-            medQualityControlDTO.setLeaveHospitalStr("1");
-            //完成个数
-            medQualityControlDTO.setLeaveHospitalNum((Double.valueOf(totleCountOut)));
-        }
-        return medQualityControlDTO;
+    public Map<String, Long> medicalRecordIndicator(FilterVO filterVO){
+       return baseMapper.medicalRecordIndicator(filterVO);
     }
-
     /**
      * 手术费,抗菌药物,手术和病理费等含有人数
-     * @param start
-     * @param end
+     * @param filterVO
      * @return
      */
-    public Map<String,Integer> selectOperationNum( LocalDateTime start, LocalDateTime end){
-        return   baseMapper.selectOperationNum(  start, end);
+    public Map<String,Long> selectOperationNum( FilterVO filterVO){
+        return   baseMapper.selectOperationNum(filterVO);
     }
 }

+ 45 - 8
src/main/java/com/diagbot/facade/ConsoleFacade.java

@@ -370,16 +370,54 @@ public class ConsoleFacade {
     }
 
 
-
     /**
      * 病案指标
-     * @param filterRecordVO
-     * @return   2170
+     *
+     * @param filterVO
+     * @return 2170
      */
-public MedQualityControlDTO medicalRecordIndicator(FilterRecordVO filterRecordVO){
-    MedQualityControlDTO medQualityControlDTOS = behospitalInfoFacade.medicalRecordIndicator(filterRecordVO);
-    return medQualityControlDTOS;
-}
+    public MedQualityControlDTO medicalRecordIndicator(FilterVO filterVO) {
+        filterFacade.filterVOSet(filterVO);
+        MedQualityControlDTO medQualityControlDTO = new MedQualityControlDTO();
+        Map<String, Long> selectOperationNumMap = behospitalInfoFacade.selectOperationNum(filterVO);
+        Long startCount = selectOperationNumMap.get("出院人数");
+        Long endCount = selectOperationNumMap.get("住院人数");
+        //手术人数
+        Long operationFeeNum = selectOperationNumMap.get("operationFee");
+        //病理人数
+        Long antibiosisFeeNum = selectOperationNumMap.get("antibiosisFee");
+        //手术病理人数
+        Long operationPathologyFeeNum = selectOperationNumMap.get("operationPathologyFee");
+        Map<String, Long> recordIndicatorMap = behospitalInfoFacade.medicalRecordIndicator(filterVO);
+        //各指标未完成人数情况
+        Long operationCount = recordIndicatorMap.get("2170手术记录未在术后24h内完成");
+        Long InHospitalRecords = recordIndicatorMap.get("2658入院记录未在患者入院24小时内完成");
+        Long OutHospitalRecords = recordIndicatorMap.get("2635出院记录未在患者出院24小时内完成");
+        Long recordHomePage = recordIndicatorMap.get("3110病案首页未在患者出院24小时内完成");
+        if(startCount.intValue()!=0){
+            //手术记录完成率
+            //手术完成人数为
+            medQualityControlDTO.setOperationNum(Double.valueOf(startCount-operationCount));
+            //手术完成率
+            medQualityControlDTO.setOperationStr(String.valueOf((startCount-operationCount)/startCount));
+            //入院记录24小时完成率
+            //入院记录完成人数为
+            medQualityControlDTO.setAdmissionNum(Double.valueOf(startCount-InHospitalRecords));
+            //入院记录完成率
+            medQualityControlDTO.setAdmissionStr(String.valueOf((startCount-InHospitalRecords)/startCount));
+            //出院记录24小时完成率
+            //出院记录完成人数为
+            medQualityControlDTO.setLeaveHospitalNum(Double.valueOf(startCount-OutHospitalRecords));
+            //出院记录完成率
+            medQualityControlDTO.setLeaveHospitalStr(String.valueOf((startCount-OutHospitalRecords)/startCount));
+            //病案首页24小时完成率
+            //病案首页完成人数为
+            medQualityControlDTO.setMedHomePageNum(Double.valueOf(startCount-recordHomePage));
+            //病案首页完成率
+            medQualityControlDTO.setMedHomePageStr(String.valueOf((startCount-recordHomePage)/startCount));
+        }
+        return medQualityControlDTO;
+    }
 
 
     /**
@@ -2208,7 +2246,6 @@ public MedQualityControlDTO medicalRecordIndicator(FilterRecordVO filterRecordVO
     }
 
 
-
     /**
      * 质控核查质控评分页(内页)
      *

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

@@ -679,18 +679,15 @@ public interface BehospitalInfoMapper extends BaseMapper<BehospitalInfo> {
     /**
      * 入院,手术,出院 24小时完成情况
      *
-     * @param filterRecordVO
-     * @param start
-     * @param end
+     * @param filterVO
      * @return
      */
-    public List<Map<String, Object>> medicalRecordIndicator(@Param("filterRecordVO") FilterRecordVO filterRecordVO, @Param("start") LocalDateTime start, @Param("end") LocalDateTime end);
+    public Map<String, Long> medicalRecordIndicator(@Param("filterVO") FilterVO filterVO);
     /**
      * 手术费,抗菌药物,手术和病理费等含有人数
      *
-     * @param start
-     * @param end
+     * @param filterVO
      * @return
      */
-    public Map<String,Integer> selectOperationNum( @Param("start") LocalDateTime start, @Param("end") LocalDateTime end);
+    public Map<String,Long> selectOperationNum(@Param("filterVO") FilterVO filterVO);
 }

+ 4 - 5
src/main/java/com/diagbot/service/BehospitalInfoService.java

@@ -638,16 +638,15 @@ public interface BehospitalInfoService extends IService<BehospitalInfo> {
     /**
      * 入院,手术,出院 24小时完成情况
      *
-     * @param filterRecordVO
+     * @param filterVO
      * @return
      */
-    public List<Map<String, Object>> medicalRecordIndicator(@Param("filterRecordVO") FilterRecordVO filterRecordVO, @Param("start") LocalDateTime start, @Param("end") LocalDateTime end);
+    public Map<String, Long> medicalRecordIndicator(@Param("filterVO")FilterVO filterVO);
 
     /**
      * 手术费,抗菌药物,手术和病理费等含有人数
-     * @param start
-     * @param end
+     * @param filterVO
      * @return
      */
-    public Map<String,Integer> selectOperationNum(@Param("start") LocalDateTime start, @Param("end") LocalDateTime end);
+    public Map<String,Long> selectOperationNum(@Param("filterVO")FilterVO filterVO);
 }

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

@@ -1074,24 +1074,20 @@ public class BehospitalInfoServiceImpl extends ServiceImpl<BehospitalInfoMapper,
     /**
      * 入院,手术,出院 24小时完成情况
      *
-     * @param filterRecordVO
-     * @param start
-     * @param end
+     * @param filterVO
      * @return
      */
-    public List<Map<String, Object>> medicalRecordIndicator(@Param("filterRecordVO") FilterRecordVO filterRecordVO, @Param("start") LocalDateTime start, @Param("end") LocalDateTime end) {
-
-        return baseMapper.medicalRecordIndicator(filterRecordVO,start,end);
+    public Map<String, Long> medicalRecordIndicator(@Param("filterVO")FilterVO filterVO) {
+        return baseMapper.medicalRecordIndicator(filterVO);
     }
     /**
      * 手术费,抗菌药物,手术和病理费等含有人数
      *
-     * @param start
-     * @param end
+     * @param  filterVO
      * @return
      */
-    public Map<String,Integer> selectOperationNum( @Param("start") LocalDateTime start, @Param("end") LocalDateTime end){
-        return  baseMapper.selectOperationNum( start, end);
+    public Map<String,Long> selectOperationNum(@Param("filterVO")FilterVO filterVO){
+        return  baseMapper.selectOperationNum(filterVO);
 
     }
 }

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

@@ -164,7 +164,7 @@ public class ConsoleController {
 
     /**
      * 病案指标
-     * @param filterRecordVO
+     * @param filterVO
      * @return
      */
     @ApiOperation(value = "病案指标[by:zh]",
@@ -173,8 +173,8 @@ public class ConsoleController {
                     "isPlacefile: 是否归档(0:未归档,1:已归档) <br>")
     @PostMapping("/medicalRecordIndicator")
     @SysLogger("medicalRecordIndicator")
-    public RespDTO<Integer> medicalRecordIndicator(@RequestBody @Valid FilterRecordVO filterRecordVO) {
-        return RespDTO.onSuc(consoleFacade.medicalRecordIndicator(filterRecordVO));
+    public RespDTO<MedQualityControlDTO> medicalRecordIndicator(@RequestBody @Valid FilterVO filterVO) {
+        return RespDTO.onSuc(consoleFacade.medicalRecordIndicator(filterVO));
     }
     /**
      * 质控病历统计

+ 140 - 81
src/main/resources/mapper/BehospitalInfoMapper.xml

@@ -17455,88 +17455,147 @@
         f1.doctorId = f2.doctorId
         AND f1.doctorName = f2.doctorName
     </select>
-    <!-- 入院,手术,出院情况-->
-    <select id="medicalRecordIndicator" parameterType="com.diagbot.entity.FilterRecordVO" resultType="java.util.Map">
-        select a.behospital_code as acode,
-        b.`name`,
-        b.hospital_id,
-        b.beh_dept_id ,
-        b.behospital_date,
-        b.leave_hospital_date,
-        b.diagnose_icd ,
-        b.diagnose ,
-        b.is_placefile,
-        c.cases_entry_id ,
-        c.msg
-        <if test="filterRecordVO.type != null and (filterRecordVO.type== 1 or filterRecordVO.type==2)">
-            ,COUNT(DISTINCT a.behospital_code) as countNum
-        </if>
-        <if test="filterRecordVO.type != null and (filterRecordVO.type== 3 or filterRecordVO.type==4)">
-            ,sum(c.cases_entry_id = 2170) as '2170手术记录未在术后24h内完成',
-            sum(c.cases_entry_id = 2658) as '2658入院记录未在患者入院24小时内完成',
-            sum(c.cases_entry_id = 2635) as '2635出院记录未在患者出院24小时内完成',
-            sum(c.cases_entry_id = 3110) as '3110病案首页未在患者出院24小时内完成'
-        </if>
-        from
-        med_qcresult_cases a,
-        med_behospital_info b,
-        med_qcresult_detail c,
-        qc_cases_entry d
-        where
-        a.hospital_id = #{filterRecordVO.hospitalId}
-        and a.hospital_id = b.hospital_id
-        and a.hospital_id = c.hospital_id
-        and a.cases_id = 243
-        and b.is_placefile = #{filterRecordVO.isPlacefile}
-        and a.behospital_code = b.behospital_code
-        and a.behospital_code = c.behospital_code
-        and c.cases_entry_id = d.id
-        and a.is_deleted='N'
-        and b.is_deleted ='N'
-        and c.is_deleted = 'N'
-        and d.is_deleted = 'N'
-        <if test="filterRecordVO.type != null and filterRecordVO.type==1 ">
-            and #{start} &lt;= b.leave_hospital_date
-            and b.leave_hospital_date &lt;= #{end}
-        </if>
-        <if test="filterRecordVO.type != null and (filterRecordVO.type==2 or filterRecordVO.type==0) ">
-            and #{start} &lt;= b.behospital_date
-            and b.behospital_date &lt;= #{end}
-        </if>
-        <if test="filterRecordVO.type != null and filterRecordVO.type== 3 ">
-            and #{start} &lt;= b.behospital_date
-            and b.behospital_date &lt;= #{end}
-            GROUP BY c.cases_entry_id
-        </if>
-        <if test="filterRecordVO.type != null and filterRecordVO.type== 4 ">
-            and #{start} &lt;= b.leave_hospital_date
-            and b.leave_hospital_date &lt;= #{end}
-            GROUP BY c.cases_entry_id
-        </if>
 
+    <!-- 入院,手术,出院病案情况-->
+    <select id="medicalRecordIndicator" parameterType="com.diagbot.vo.FilterVO" resultType="java.util.Map">
+        SELECT
+        count(
+        CASE
+        WHEN c.cases_entry_id = 2170
+        <if test="filterVO.startDate != null and  filterVO.endDate != null ">
+            <![CDATA[ AND a.leave_hospital_date >= #{filterVO.startDate}]]>
+            <![CDATA[ AND a.leave_hospital_date <= #{filterVO.endDate}]]>
+        </if>
+        THEN
+        1
+        ELSE
+        NULL
+        END
+        ) AS '2170手术记录未在术后24h内完成',
+        count(
+        CASE
+        WHEN c.cases_entry_id = 2658
+        <if test="filterVO.startDate != null and  filterVO.endDate != null ">
+            <![CDATA[ AND a.leave_hospital_date >= #{filterVO.startDate}]]>
+            <![CDATA[ AND a.leave_hospital_date <= #{filterVO.endDate}]]>
+        </if>
+        THEN
+        1
+        ELSE
+        NULL
+        END
+        ) AS '2658入院记录未在患者入院24小时内完成',
+        count(
+        CASE
+        WHEN c.cases_entry_id = 2635
+        <if test="filterVO.startDate != null and  filterVO.endDate != null ">
+            <![CDATA[ AND a.leave_hospital_date >= #{filterVO.startDate}]]>
+            <![CDATA[ AND a.leave_hospital_date <= #{filterVO.endDate}]]>
+        </if>
+        THEN
+        1
+        ELSE
+        NULL
+        END
+        ) AS '2635出院记录未在患者出院24小时内完成',
+        count(
+        CASE
+        WHEN c.cases_entry_id = 3110
+        <if test="filterVO.startDate != null and  filterVO.endDate != null ">
+            <![CDATA[ AND a.leave_hospital_date >= #{filterVO.startDate}]]>
+            <![CDATA[ AND a.leave_hospital_date <= #{filterVO.endDate}]]>
+        </if>
+        THEN
+        1
+        ELSE
+        NULL
+        END
+        ) AS '3110病案首页未在患者出院24小时内完成'
+        FROM
+        med_qcresult_info b,
+        med_behospital_info a,
+        med_qcresult_detail c
+        WHERE
+        a.hospital_id = #{filterVO.hospitalId}
+        AND a.hospital_id = b.hospital_id
+        AND a.hospital_id = c.hospital_id
+        AND a.is_placefile = #{filterVO.isPlacefile}
+        AND a.behospital_code = b.behospital_code
+        AND a.behospital_code = c.behospital_code
+        AND a.is_deleted = 'N'
+        AND b.is_deleted = 'N'
+        AND c.is_deleted = 'N'
     </select>
-    <!-- 手术费,抗菌药物,手术和病理费等含有人数-->
-    <select id="selectOperationNum" resultType="java.util.Map">
-    select
-        sum(b.operation_fee >0) as 'operationFee',
-        sum(b.antibiosis_fee >0) as 'antibiosisFee'
-        sum(case when  b.operation_fee >0 and b.pathology_fee>0 then 1 else 0 end ) as 'operationPathologyFee'
-    from
-            med_behospital_info a,
-            med_home_page b,
-            med_qcresult_cases c
-    where
-            b.behospital_code=a.behospital_code
-    and     a.behospital_code = c.behospital_code
-    and     a.hospital_id=#{filterRecordVO.hospitalId}
-    and     a.is_placefile=#{filterRecordVO.isPlacefile}
-    and     a.hospital_id = c.hospital_id
-    and     a.hospital_id = b.hospital_id
-    and     c.cases_id = 243
-    and     a.is_deleted='N'
-    and     b.is_deleted='N'
-    and     c.is_deleted='N'
-    and     #{start} &lt;= b.leave_hospital_date
-    and     b.leave_hospital_date &lt;= #{end}
+
+    <!--  时间段出院,住院, 手术费,抗菌药物,手术和病理费等含有人数 -->
+    <select id="selectOperationNum" parameterType="com.diagbot.vo.FilterVO" resultType="java.util.Map">
+        select
+        <if test="filterVO.startDate != null and  filterVO.endDate != null">
+        count(
+        CASE
+        WHEN   <![CDATA[  d.behospital_date >= #{filterVO.startDate}]]>
+            <![CDATA[ AND d.behospital_date <= #{filterVO.endDate}]]> THEN
+        1
+        ELSE
+        NULL
+        END
+        )  AS '出院人数',
+        count(
+        CASE
+        WHEN   <![CDATA[  d.behospital_date >= #{filterVO.startDate}]]>
+            <![CDATA[ AND d.behospital_date <= #{filterVO.endDate}]]> THEN
+        1
+        ELSE
+        NULL
+        END
+        )  AS '入院人数',
+        </if>
+        count(
+        CASE
+        WHEN   b.operation_fee > 0 THEN
+        1
+        ELSE
+        NULL
+        END
+        ) AS 'operationFee',
+        count(
+        CASE
+        WHEN   b.antibiosis_fee > 0 THEN
+        1
+        ELSE
+        NULL
+        END
+        ) AS 'antibiosisFee',
+        count(
+        CASE
+        WHEN   b.operation_fee > 0
+        AND   b.pathology_fee > 0 THEN
+        1
+        ELSE
+        NULL
+        END
+        ) AS 'operationPathologyFee'
+        FROM
+        (
+        SELECT
+        a.behospital_code,
+        a.hospital_id,
+        a.behospital_date,
+        a.leave_hospital_date
+        FROM
+        med_behospital_info a,
+        med_qcresult_info c
+        WHERE
+        a.behospital_code = c.behospital_code
+        AND a.hospital_id = #{filterVO.hospitalId}
+        AND a.is_placefile = #{filterVO.isPlacefile}
+        AND a.hospital_id = c.hospital_id
+        AND a.is_deleted = 'N'
+        AND c.is_deleted = 'N'
+        ) d
+        LEFT JOIN med_home_page b ON b.behospital_code = d.behospital_code
+        AND d.hospital_id = b.hospital_id
+        AND b.is_deleted = 'N'
     </select>
+
 </mapper>