Prechádzať zdrojové kódy

Merge remote-tracking branch 'origin/dev/20210326_2.0.3' into dev/20210326_2.0.3

# Conflicts:
#	src/main/java/com/diagbot/facade/ConsoleFacade.java
zhanghang 4 rokov pred
rodič
commit
bf871f8bbb

+ 0 - 9
doc/031.20210326v2.0.3/qc_initv1.0.1.sql

@@ -1,10 +0,0 @@
-use `qc`;
-/**
-注意:
-1、中间表的新增或修改需要按照实际的唯一字段来进行操作
-例如:新增sys_role_menu中数据需要sys_menu中指定的id、menu_id,否则可能会失效!!!
-2、按照顺序执行
- */
-
-INSERT INTO `qc`.`sys_dictionary_info` ( `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `group_type`, `name`, `val`, `return_type`, `order_no`, `remark`) VALUES ('N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '2', 'gmtCreate', '创建时间', '2', '0', '病案首页');

+ 2 - 7
doc/031.20210326v2.0.3/qc_initv1.0.2.sql

@@ -1,12 +1,6 @@
 use `qc`;
-/**
-注意:
-1、中间表的新增或修改需要按照实际的唯一字段来进行操作
-例如:新增sys_role_menu中数据需要sys_menu中指定的id、menu_id,否则可能会失效!!!
-2、按照顺序执行
- */
 
+INSERT INTO `qc`.`sys_dictionary_info` ( `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `group_type`, `name`, `val`, `return_type`, `order_no`, `remark`) VALUES ('N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '2', 'gmtCreate', '创建时间', '2', '0', '病案首页');
 
 DROP TABLE IF EXISTS `qc_cases_relevance_entry`;
 CREATE TABLE `qc_cases_relevance_entry` (
@@ -17,4 +11,4 @@ CREATE TABLE `qc_cases_relevance_entry` (
   `relevance_id` bigint(20) DEFAULT NULL COMMENT '关联质控条目',
   `name` varchar(255) DEFAULT NULL COMMENT '条目',
   PRIMARY KEY (`id`)
-) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COMMENT='质控关联条目表';
+) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COMMENT='质控关联条目表';

+ 3 - 17
src/main/java/com/diagbot/dto/MedManageParamsDTO.java

@@ -24,12 +24,6 @@ public class MedManageParamsDTO implements Serializable {
      */
     private String behospitalCode;
 
-    /**
-     * 质控的条目
-     */
-    private String casesEntryId;
-
-
    // 医嘱项目名称
     private String daItemName;
 
@@ -39,22 +33,14 @@ public class MedManageParamsDTO implements Serializable {
     //医嘱处方类型
     private String doctorAdviceType;
 
+    //化验报告名称
+    private String repName;
+
     /**
      * 住院科室名称
      */
     private String behDeptName;
 
-    /**
-     * 入院时间
-     */
-    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
-    private Date behospitalDate;
-
-    /**
-     * 出院时间
-     */
-    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
-    private Date leaveHospitalDate;
 
 
 }

+ 8 - 0
src/main/java/com/diagbot/dto/MedQualityControlDTO.java

@@ -87,6 +87,14 @@ public class MedQualityControlDTO {
     @Excel(name = "医师查房记录完成率",width = 12, orderNum = "8")
     private String WardRoundStr;
 
+    /**
+     * 临床用血相关记录符合量
+     */
+    @Excel(name = "临床用血相关记录符合率",width = 12, orderNum = "8")
+    private Double bloodNum;
+    //临床用血相关记录符合率
+    private String bloodStr;
+
     /**
      * 患者抢救记录6h完成量
      */

+ 10 - 0
src/main/java/com/diagbot/enums/QualityContent.java

@@ -89,6 +89,16 @@ public class QualityContent {
     public static List<String> getRescue_Drug_List() {
         return Rescue_Drug_List;
     }
+
+    /**
+     *   临床用血
+     */
+    public static List<String> blood_List = Arrays.asList(
+            "交叉配血");
+
+    public static List<String> getBlood_List() {
+        return blood_List;
+    }
 }
 
 

+ 69 - 52
src/main/java/com/diagbot/facade/ConsoleFacade.java

@@ -420,8 +420,7 @@ public class ConsoleFacade {
             medQualityControlDTO.setOperationStr(getResult(operationFeeNum-operationCount,operationFeeNum));
             //入院记录24小时完成率
             //入院记录完成人数为
-            medQualityControlDTO.setAdmissionNum(Double.valueOf(startCount-InHospitalRecords
-            ));
+            medQualityControlDTO.setAdmissionNum(Double.valueOf(startCount-InHospitalRecords));
             //入院记录完成率
             medQualityControlDTO.setAdmissionStr(getResult(startCount-InHospitalRecords,startCount));
             //出院记录24小时完成率
@@ -460,6 +459,25 @@ public class ConsoleFacade {
       //    medQualityControlDTO.setAdmissionStr(getResult(antibiosisFeeNum-0,antibiosisFeeNum));
 
 
+        /**
+         * =================================标示线========================================
+         */
+        Map<String, Object> baseIndex = behospitalInfoFacade.getBaseIndex(filterVO);
+        //指标一、二、三、二十七
+        medQualityControlDTO = ManageIndexMethod(medQualityControlDTO, baseIndex, filterVO);
+        //指标十七 医师查房记录
+        medQualityControlDTO = WardRoundMethod(medQualityControlDTO, baseIndex, triggeringRulesMap);
+        //指标十八 抢救记录
+        List<MedManageParamsDTO> medManageParams = behospitalInfoFacade.getMedManageParams(filterVO);
+        medQualityControlDTO = rescueMethod(medManageParams,medQualityControlDTO,triggeringRulesMap);
+        //指标十九 出院患者病历2日归档
+        medQualityControlDTO = getfileSecAmount(filterVO,medQualityControlDTO, baseIndex);
+        //指标十四 手术记录
+        medQualityControlDTO = operationMethod(medQualityControlDTO, operationFeeNum+"", triggeringRulesMap);
+        //指标十六  临床用血相关记录符合率
+        filterVO.setFlagStr("1");
+                                 medManageParams = behospitalInfoFacade.getMedManageParams(filterVO);
+        medQualityControlDTO = bloodMethod(medQualityControlDTO, medManageParams, triggeringRulesMap);
         return medQualityControlDTO;
     }
 
@@ -2458,46 +2476,15 @@ public class ConsoleFacade {
         return behospitalInfoFacade.hmImproveMRPage(qcResultShortPageVO);
     }
 
-    /**
-     * 病案管理指标(内页)
-     * @param filterVO
-     * @return
-     */
-    public MedQualityControlDTO getMedManageIndex(FilterVO filterVO) {
-        filterFacade.filterVOSet(filterVO);
-        MedQualityControlDTO medQualityControlDTO = new MedQualityControlDTO();
-        Map<String, Object> baseIndex = behospitalInfoFacade.getBaseIndex(filterVO);
-        //指标一、二、三、二十七
-        medQualityControlDTO = ManageIndexMethod(medQualityControlDTO, baseIndex, filterVO);
-        filterVO.setFlagStr("0");
-        Map<String, Object> entryCountMap = behospitalInfoFacade.getCountByEntry(filterVO);
-        //指标十七
-        medQualityControlDTO = ruleIndexMethod(filterVO,medQualityControlDTO, baseIndex, entryCountMap);
-        //指标十八
-        filterVO.setFlagStr("1");
-        List<MedManageParamsDTO> medManageParams = behospitalInfoFacade.getMedManageParams(filterVO);
-         medQualityControlDTO = rescueMethod(medManageParams,medQualityControlDTO,entryCountMap);
-
-        //指标十九
-        medQualityControlDTO = getfileSecAmount(filterVO,medQualityControlDTO, baseIndex);
-        //指标十四
-        filterVO.setFlagStr("2");
-                             entryCountMap = behospitalInfoFacade.getCountByEntry(filterVO);
-        medQualityControlDTO = ruleIndexMethod(filterVO,medQualityControlDTO, baseIndex, entryCountMap);
-        //指标十六
-        filterVO.setFlagStr("3");
-        entryCountMap = behospitalInfoFacade.getCountByEntry(filterVO);
-        medQualityControlDTO = ruleIndexMethod(filterVO,medQualityControlDTO, baseIndex, entryCountMap);
 
-        return medQualityControlDTO;
-    }
-
-    private MedQualityControlDTO rescueMethod(List<MedManageParamsDTO> medManageParams,MedQualityControlDTO medQualityControlDTO,Map<String, Object> entryCountMap){
+    //指标十八 抢救记录
+    private MedQualityControlDTO rescueMethod(List<MedManageParamsDTO> medManageParams,MedQualityControlDTO medQualityControlDTO,Map<String, Long> triggeringRulesMap){
         List<MedManageParamsDTO> manageList= new ArrayList<>();
         for (int i = 0; i < medManageParams.size(); i++) {
             List<String> rescueDrugList = QualityContent.getRescue_Drug_List();
             for (String str : rescueDrugList) {
-                if(medManageParams.get(i).getDaItemName().contains(str)){
+                String daItemName = medManageParams.get(i).getDaItemName();
+                if(StringUtils.isNotEmpty(daItemName) && daItemName.contains(str)){
                     manageList.add(medManageParams.get(i));
                 }
             }
@@ -2505,24 +2492,18 @@ public class ConsoleFacade {
 
         //接受抢救的质控病历总数
         double count = manageList.stream().map(MedManageParamsDTO::getBehospitalCode).distinct().count();
-        String wardRoundAmountStr = entryCountMap.get("WardRoundAmount").toString();
-        if(entryCountMap.containsKey("WardRoundAmount") && StringUtils.isNotEmpty(wardRoundAmountStr)){
-            //指标十七
-            DecimalFormat df = new DecimalFormat("#0.00");
-            double WardRoundAmount = Double.parseDouble(wardRoundAmountStr);
-            double retData = 0d;
-            if(count!=0d){
-                 retData = Double.parseDouble(df.format(WardRoundAmount * 100 / count));
-            }
-            medQualityControlDTO.setWardRoundNum(retData);
-            medQualityControlDTO.setWardRoundStr(retData+"%");
+        if(StringUtils.isNotEmpty(String.valueOf(count)) &&  count != 0d){
+            double rescueDo = currencyCal(count, triggeringRulesMap.get("rescueNum"));
+            medQualityControlDTO.setRescueNum(rescueDo);
+            medQualityControlDTO.setRescueStr(rescueDo+"%");
         };
         return medQualityControlDTO;
     };
-    private MedQualityControlDTO ruleIndexMethod(FilterVO filterVO,MedQualityControlDTO medQualityControlDTO, Map<String, Object> baseIndex, Map<String, Object> entryCountMap){
-        if(filterVO.getFlagStr().equals("0") && entryCountMap.containsKey("WardRoundAmount") && baseIndex.containsKey("thrWorkNum") && ! entryCountMap.get("WardRoundAmount").toString().equals("0")){
-            //指标十七
-            double wardRoundDo = currencyCal(baseIndex.get("thrWorkNum"), entryCountMap.get("WardRoundAmount"));
+
+    //指标十七 医师查房记录
+    private MedQualityControlDTO WardRoundMethod(MedQualityControlDTO medQualityControlDTO, Map<String, Object> baseIndex, Map<String, Long> triggeringRulesMap){
+        if( triggeringRulesMap.containsKey("WardRoundNum") && baseIndex.containsKey("forWorkNum") && !baseIndex.get("forWorkNum").toString().equals("0")){
+            double wardRoundDo = currencyCal(baseIndex.get("forWorkNum"), triggeringRulesMap.get("WardRoundNum"));
             medQualityControlDTO.setWardRoundNum(wardRoundDo);
             medQualityControlDTO.setWardRoundStr(wardRoundDo+"%");
 
@@ -2530,6 +2511,41 @@ public class ConsoleFacade {
         return medQualityControlDTO;
     }
 
+    //指标十四 手术记录
+    private MedQualityControlDTO operationMethod(MedQualityControlDTO medQualityControlDTO, String operationFeeNum, Map<String, Long> triggeringRulesMap){
+        if( triggeringRulesMap.containsKey("operationRecordNum") && StringUtils.isNotEmpty(operationFeeNum) && ! operationFeeNum.equals("0")){
+            double operationRecordDo = currencyCal(operationFeeNum, triggeringRulesMap.get("operationRecordNum"));
+            medQualityControlDTO.setOperationNum(operationRecordDo);
+            medQualityControlDTO.setOperationStr(operationRecordDo+"%");
+
+        };
+        return medQualityControlDTO;
+    }
+
+    //指标十六  临床用血相关记录符合率
+    private MedQualityControlDTO bloodMethod(MedQualityControlDTO medQualityControlDTO,  List<MedManageParamsDTO> medManageParams, Map<String, Long> triggeringRulesMap){
+        List<MedManageParamsDTO> manageList= new ArrayList<>();
+        for (MedManageParamsDTO medManageParam : medManageParams) {
+            List<String> blood_list = QualityContent.getBlood_List();
+            for (String str : blood_list) {
+                String daItemName = medManageParam.getDaItemName();
+                String repName = medManageParam.getRepName();
+                if(StringUtils.isNotEmpty(daItemName) && daItemName.contains(str) && StringUtils.isNotEmpty(repName) && repName.contains(str)){
+                    manageList.add(medManageParam);
+                }
+            }
+            //临床用血的质控病历总数
+            double count = manageList.stream().map(MedManageParamsDTO::getBehospitalCode).distinct().count();
+            if(StringUtils.isNotEmpty(String.valueOf(count)) &&  count != 0d){
+                //指标十七
+                double rescueDo = currencyCal(count, triggeringRulesMap.get("bloodNum"));
+                medQualityControlDTO.setBloodNum(rescueDo);
+                medQualityControlDTO.setBloodStr(rescueDo+"%");
+            };
+        }
+        return medQualityControlDTO;
+    }
+
     private double currencyCal(Object objFir,Object objSec){
         DecimalFormat df = new DecimalFormat("#0.00");
         double firDouble = Double.parseDouble(objFir.toString()) - Double.parseDouble(objSec.toString());
@@ -2538,6 +2554,7 @@ public class ConsoleFacade {
         return retData;
     };
 
+    //指标十九 出院患者病历2日归档
     private MedQualityControlDTO getfileSecAmount(FilterVO filterVO,MedQualityControlDTO medQualityControlDTO, Map<String, Object> baseIndex){
         QueryWrapper<BehospitalInfo> query = new QueryWrapper<>();
         DecimalFormat df = new DecimalFormat("#0.00");

+ 1 - 1
src/main/java/com/diagbot/vo/FilterVO.java

@@ -69,7 +69,7 @@ public class FilterVO {
     private String isPlacefile = "1";
 
     /**
-     * 辅助标识(0-查房 1:抢救)
+     * 辅助标识
      */
     private String flagStr = "0";
 }

+ 151 - 74
src/main/resources/mapper/BehospitalInfoMapper.xml

@@ -784,90 +784,46 @@
     </select>
 
     <!-- 病案管理规则质控缺陷病历总数查询-->
-    <select id="getCountByEntry"  parameterType="com.diagbot.vo.FilterVO" resultType="java.util.Map">
+    <select id="getMedManageParams"  parameterType="com.diagbot.vo.FilterVO" resultType="com.diagbot.dto.MedManageParamsDTO">
         SELECT
-        true as flagNum
-        <if test="flagStr != null and flagStr == 0 ">
-            ,count(DISTINCT case when f1.cases_entry_id = 2655 or f1.cases_entry_id = 2654 or f1.cases_entry_id = 2468 then f1.behospital_code end) as WardRoundAmount
+        f1.behospitalCode,
+        <if test="flagStr != null and flagStr == 1 ">
+        f2.rep_name as repName,
         </if>
+        f3.da_item_name as daItemName,
+        f3.da_frequency as da_frequency,
+        f3.doctor_advice_type as doctorAdviceType
         from(
-        select
-        a.behospital_code,
-        a.is_placefile,
-        a.hospital_id,
-        a.behospital_date,
-        a.leave_hospital_date,
-        c.cases_entry_id
+        SELECT DISTINCT
+        a.hospital_id as hospitalId,
+        a.behospital_code as behospitalCode
         FROM
         med_behospital_info a,
         med_qcresult_info b,
-        med_qcresult_detail c,
         qc_cases_entry 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_entry_id = d.id
+        AND <![CDATA[a.leave_hospital_date >= #{startDate}]]>
+        AND  <![CDATA[a.leave_hospital_date <= #{endDate}]]>
+        AND  a.is_placefile = 1
         <![CDATA[AND a.qc_type_id <>0 ]]>
-        <if test="flagStr != null and flagStr == 0 ">
-            AND <![CDATA[a.leave_hospital_date >= #{startDate}]]>
-            AND  <![CDATA[a.leave_hospital_date <= #{endDate}]]>
-            AND  a.is_placefile = 1
-        </if>
         <if test="hospitalId != null and hospitalId != ''">
             AND a.hospital_id = #{hospitalId}
         </if>)f1
-    </select>
-
-    <!-- 病案管理规则质控缺陷病历总数查询-->
-    <select id="getMedManageParams"  parameterType="com.diagbot.vo.FilterVO" resultType="com.diagbot.dto.MedManageParamsDTO">
-        SELECT
-        f1.*,
-        f2.da_item_name as daItemName,
-        f2.da_frequency as da_frequency,
-        f2.doctor_advice_type as doctorAdviceType,
-        f2.da_start_date
-        from(
-        SELECT
-        a.hospital_id as hospitalId,
-        a.behospital_code as behospitalCode,
-        a.behospital_date as behospitalDate,
-        a.leave_hospital_date as leaveHospitalDate,
-        c.cases_entry_id as casesEntryId
-        FROM
-        med_behospital_info a,
-        med_qcresult_info b,
-        med_qcresult_detail c,
-        qc_cases_entry 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_entry_id = d.id
-        <![CDATA[AND a.qc_type_id <>0 ]]>
         <if test="flagStr != null and flagStr == 1 ">
-            AND <![CDATA[a.leave_hospital_date >= #{startDate}]]>
-            AND  <![CDATA[a.leave_hospital_date <= #{endDate}]]>
-            AND  a.is_placefile = 1
-        <if test="hospitalId != null and hospitalId != ''">
-            AND a.hospital_id = #{hospitalId}
-        </if>)f1,
-        med_doctor_advice f2
-        WHERE
-        f2.is_deleted = 'N'
-        AND f1.hospitalId = f2.hospital_id
-        AND f1.behospitalCode = f2.behospital_code
-        </if>
+            left join med_lis_info f2
+            on  f2.is_deleted = 'N'
+            AND f1.hospitalId = f2.hospital_id
+            AND f1.behospitalCode = f2.behospital_code
+        </if>
+         left join  med_doctor_advice f3
+        on  f3.is_deleted = 'N'
+        AND f1.hospitalId = f3.hospital_id
+        AND f1.behospitalCode = f3.behospital_code
     </select>
 
 
@@ -17549,6 +17505,91 @@
         AND f1.doctorName = f2.doctorName
     </select>
 
+    <!-- 入院,手术,出院病案情况-->
+    <select id="medicalRecordIndicator" parameterType="com.diagbot.vo.FilterVO" resultType="java.util.Map">
+        SELECT
+        count(
+        DISTINCT
+        CASE
+        WHEN q.type=5 THEN
+        a.behospital_code
+        ELSE
+        NULL
+        END
+        ) AS 'operationNote',
+        count(
+        DISTINCT
+        CASE
+        WHEN q.type = 4 THEN
+        a.behospital_code
+        ELSE
+        NULL
+        END
+        ) AS 'residentAdmitNote',
+        count(
+        DISTINCT
+        CASE
+        WHEN q.type = 6 THEN
+        a.behospital_code
+        ELSE
+        NULL
+        END
+        ) AS 'dischargeRecord',
+        count(
+        DISTINCT
+        CASE
+        WHEN q.type = 7 THEN
+        a.behospital_code
+        ELSE
+        NULL
+        END
+        ) AS 'medicalRecord'
+        FROM
+        (
+        SELECT
+        a.behospital_code,
+        a.cases_entry_id,
+        a.hospital_id
+        FROM
+        (
+        SELECT
+        a.behospital_code,
+        c.cases_entry_id,
+        a.hospital_id
+        FROM
+        (
+        SELECT
+        a.behospital_code,
+        a.hospital_id
+        FROM
+        med_behospital_info a,
+        med_qcresult_info c
+        WHERE
+        a.is_deleted = 'N'
+        AND c.is_deleted = 'N'
+        AND a.is_placefile = #{filterVO.isPlacefile}
+        <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>
+        <![CDATA[ and  a.qc_type_id <>'0' ]]>
+        AND a.behospital_code = c.behospital_code
+        AND a.hospital_id = #{filterVO.hospitalId}
+        AND a.hospital_id = c.hospital_id
+        ) a
+        LEFT JOIN med_qcresult_detail c ON c.is_deleted = 'N'
+        AND a.behospital_code = c.behospital_code
+        AND a.hospital_id = c.hospital_id
+        ) a
+        JOIN qc_cases_entry d ON d.id = a.cases_entry_id
+        AND d.is_deleted = 'N'
+        ) a
+        LEFT JOIN qc_cases_relevance_entry q ON a.cases_entry_id = q.relevance_id
+        AND a.hospital_id = q.hospital_id
+
+    </select>
 
     <!--  时间段出院,住院, 手术费,抗菌药物,手术和病理费等含有人数 -->
     <select id="selectOperationNum" parameterType="com.diagbot.vo.FilterVO" resultType="java.util.Map">
@@ -17634,6 +17675,42 @@
         count(
         DISTINCT
         CASE
+        WHEN q.type=5 THEN
+        a.behospital_code
+        ELSE
+        NULL
+        END
+        ) AS 'operationNote',
+        count(
+        DISTINCT
+        CASE
+        WHEN q.type = 4 THEN
+        a.behospital_code
+        ELSE
+        NULL
+        END
+        ) AS 'residentAdmitNote',
+        count(
+        DISTINCT
+        CASE
+        WHEN q.type = 6 THEN
+        a.behospital_code
+        ELSE
+        NULL
+        END
+        ) AS 'dischargeRecord',
+        count(
+        DISTINCT
+        CASE
+        WHEN q.type = 7 THEN
+        a.behospital_code
+        ELSE
+        NULL
+        END
+        ) AS 'medicalRecord',
+        count(
+        DISTINCT
+        CASE
         WHEN q.type=8 THEN
         a.behospital_code
         ELSE
@@ -17661,39 +17738,39 @@
         count(
         DISTINCT
         CASE
-        WHEN q.type=5 THEN
+        WHEN q.type = 14 THEN
         a.behospital_code
         ELSE
         NULL
         END
-        ) AS 'operationNote',
+        ) AS 'operationRecordNum',
         count(
         DISTINCT
         CASE
-        WHEN q.type = 4 THEN
+        WHEN q.type = 16 THEN
         a.behospital_code
         ELSE
         NULL
         END
-        ) AS 'residentAdmitNote',
+        ) AS 'bloodNum',
         count(
         DISTINCT
         CASE
-        WHEN q.type = 6 THEN
+        WHEN q.type = 17 THEN
         a.behospital_code
         ELSE
         NULL
         END
-        ) AS 'dischargeRecord',
+        ) AS 'WardRoundNum',
         count(
         DISTINCT
         CASE
-        WHEN q.type = 7 THEN
+        WHEN q.type = 18 THEN
         a.behospital_code
         ELSE
         NULL
         END
-        ) AS 'medicalRecord'
+        ) AS 'rescueNum'
         FROM
         (
         SELECT