zhanghang 4 jaren geleden
bovenliggende
commit
0714b8f8d5

+ 4 - 4
doc/031.20210326v2.0.3/qc_initv2.0.3.sql

@@ -23,8 +23,8 @@ INSERT INTO `qc_cases_relevance_entry` VALUES ('3', '6', '4', '出院记录24小
 INSERT INTO `qc_cases_relevance_entry` VALUES ('4', '7', '4', '病案首页24小时完成率', '3110', '病案首页未在患者出院24小时内完成', 'N');
 INSERT INTO `qc_cases_relevance_entry` VALUES ('5', '8', '4', 'CT检查记录24小时内完成率', '3114', '医嘱存在CT,报告单未记录', 'N');
 INSERT INTO `qc_cases_relevance_entry` VALUES ('6', '9', '4', 'MR检查记录24小时完成率', '3112', '医嘱存在MR,报告单未记录', 'N');
-INSERT INTO `qc_cases_relevance_entry` VALUES ('7', '8', '4', 'CT检查记录24小时内完成率', '3115', '医嘱存在CT,病记录未记录', 'N');
-INSERT INTO `qc_cases_relevance_entry` VALUES ('8', '9', '4', 'MR检查记录24小时完成率', '3113', '医嘱存在MR,病记录未记录', 'N');
+INSERT INTO `qc_cases_relevance_entry` VALUES ('7', '8', '4', 'CT检查记录24小时内完成率', '3115', '医嘱存在CT,病记录未记录', 'N');
+INSERT INTO `qc_cases_relevance_entry` VALUES ('8', '9', '4', 'MR检查记录24小时完成率', '3113', '医嘱存在MR,病记录未记录', 'N');
 INSERT INTO `qc_cases_relevance_entry` VALUES ('9', '10', '4', '病理检查完成率', '3116', '病理检查缺少病理检查报告单', 'N');
 INSERT INTO `qc_cases_relevance_entry` VALUES ('10', '10', '4', '病理检查完成率', '3111', '手术病理检查存在手术记录中无病理相关记录', 'N');
 INSERT INTO `qc_cases_relevance_entry` VALUES ('11', '10', '4', '病理检查完成率', '3117', '病理检查存在病程记录中无病理报告结果', 'N');
@@ -84,9 +84,9 @@ INSERT INTO `qc_cases_relevance_entry` VALUES ('59', '18', '4', '患者抢救记
 
 INSERT INTO `qc`.`qc_cases_entry` (`id`, `cases_id`, `cases_name`, `mode_id`, `code`, `name`, `drgs`, `type`, `rule_type`, `dev_type`, `accuracy_type`, `precond`, `order_no`, `remark`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`) VALUES ('3117', '241', '三级查房制度', '4', 'THR03117', '病理检查存在病程记录中无病理报告结果', '2', '1', '0', '0', '3', '', NULL, '', 'N', '2021-04-16 11:04:42', '2021-04-16 11:04:42', '0', '医学人员');
 INSERT INTO `qc`.`qc_cases_entry` (`id`, `cases_id`, `cases_name`, `mode_id`, `code`, `name`, `drgs`, `type`, `rule_type`, `dev_type`, `accuracy_type`, `precond`, `order_no`, `remark`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`) VALUES ('3116', '283', '病历书写规范', '8', 'MEDI03116', '病理检查缺少病理检查报告单', '2', '1', '0', '0', '3', '', NULL, '', 'N', '2021-04-16 11:07:28', '2021-04-16 11:07:28', '0', '医学人员');
-INSERT INTO `qc`.`qc_cases_entry` (`id`, `cases_id`, `cases_name`, `mode_id`, `code`, `name`, `drgs`, `type`, `rule_type`, `dev_type`, `accuracy_type`, `precond`, `order_no`, `remark`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`) VALUES ('3115', '241', '三级查房制度', '4', 'THR03115', '医嘱存在CT,病记录未记录', '2', '1', '0', '0', '3', '', NULL, '', 'N', '2021-04-16 11:17:24', '2021-04-16 11:17:24', '0', '医学人员');
+INSERT INTO `qc`.`qc_cases_entry` (`id`, `cases_id`, `cases_name`, `mode_id`, `code`, `name`, `drgs`, `type`, `rule_type`, `dev_type`, `accuracy_type`, `precond`, `order_no`, `remark`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`) VALUES ('3115', '241', '三级查房制度', '4', 'THR03115', '医嘱存在CT,病记录未记录', '2', '1', '0', '0', '3', '', NULL, '', 'N', '2021-04-16 11:17:24', '2021-04-16 11:17:24', '0', '医学人员');
 INSERT INTO `qc`.`qc_cases_entry` (`id`, `cases_id`, `cases_name`, `mode_id`, `code`, `name`, `drgs`, `type`, `rule_type`, `dev_type`, `accuracy_type`, `precond`, `order_no`, `remark`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`) VALUES ('3114', '283', '病历书写规范', '8', 'MEDI03114', '医嘱存在CT,报告单未记录', '2', '1', '0', '0', '3', '', NULL, '', 'N', '2021-04-16 11:16:51', '2021-04-16 11:16:51', '0', '医学人员');
-INSERT INTO `qc`.`qc_cases_entry` (`id`, `cases_id`, `cases_name`, `mode_id`, `code`, `name`, `drgs`, `type`, `rule_type`, `dev_type`, `accuracy_type`, `precond`, `order_no`, `remark`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`) VALUES ('3113', '241', '三级查房制度', '4', 'THR0', '医嘱存在MR,病历记录未记录', '2', '1', '0', '0', '3', '', NULL, '', 'N', '2021-04-16 11:17:46', '2021-04-16 11:17:46', '0', '医学人员');
+INSERT INTO `qc`.`qc_cases_entry` (`id`, `cases_id`, `cases_name`, `mode_id`, `code`, `name`, `drgs`, `type`, `rule_type`, `dev_type`, `accuracy_type`, `precond`, `order_no`, `remark`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`) VALUES ('3113', '241', '三级查房制度', '4', 'THR3113', '医嘱存在MR,病程记录未记录', '2', '1', '0', '0', '3', '', NULL, '', 'N', '2021-04-16 11:17:46', '2021-04-16 11:17:46', '0', '医学人员');
 INSERT INTO `qc`.`qc_cases_entry` (`id`, `cases_id`, `cases_name`, `mode_id`, `code`, `name`, `drgs`, `type`, `rule_type`, `dev_type`, `accuracy_type`, `precond`, `order_no`, `remark`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`) VALUES ('3112', '283', '病历书写规范', '8', 'MEDI03112', '医嘱存在MR,报告单未记录', '2', '1', '0', '0', '3', '', NULL, '', 'N', '2021-04-16 10:58:38', '2021-04-16 10:58:38', '0', '医学人员');
 INSERT INTO `qc`.`qc_cases_entry` (`id`, `cases_id`, `cases_name`, `mode_id`, `code`, `name`, `drgs`, `type`, `rule_type`, `dev_type`, `accuracy_type`, `precond`, `order_no`, `remark`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`) VALUES ('3111', '248', '围手术期病历讨论', '17', 'OPE03111', '手术病理检查存在手术记录中无病理相关记录', '1', '1', '0', '0', '3', '', NULL, '', 'N', '2021-04-16 11:03:55', '2021-04-16 11:03:55', '0', '医学人员');
 INSERT INTO `qc`.`qc_cases_entry` (`id`, `cases_id`, `cases_name`, `mode_id`, `code`, `name`, `drgs`, `type`, `rule_type`, `dev_type`, `accuracy_type`, `precond`, `order_no`, `remark`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`) VALUES ('3110', '243', '病案首页', '6', 'FIRP03110', '病案首页未在患者出院院24小时内完成', '1', '1', '0', '0', '1', '', NULL, '', 'N', '2021-04-07 17:13:57', '2021-04-07 17:13:57', '0', '医学人员');

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

@@ -11,6 +11,8 @@ public class QualityContent {
     public static final String NoRecordNumberId = "无病案首页病历ID";
     public static final String DISCHARGED_PATIENTS = "出院人数";
     public static final String NUMBER_OF_HOSPITAL = "入院人数";
+    public static final String NO_RECORD_OPERATION = "无病案首页手术患者";
+    public static final String NO_RECORD_OPERATION_PATHOLOGY = "无病案首页手术病理患者";
     /**
      * 触发规则指标
      */

+ 160 - 82
src/main/java/com/diagbot/facade/ConsoleFacade.java

@@ -388,59 +388,79 @@ public class ConsoleFacade {
      * @param filterVO
      * @return 2170
      */
-    public MedQualityControlDTO medicalRecordIndicator(FilterVO filterVO) {
+    public ArrayList<LinkedHashMap<String, String>> medicalRecordIndicator(FilterVO filterVO) {
         filterFacade.filterVOSet(filterVO);
         MedQualityControlDTO medQualityControlDTO = new MedQualityControlDTO();
         Map<String, Long> selectOperationNumMap = behospitalInfoFacade.selectOperationNum(filterVO);
         Long startCount = selectOperationNumMap.get(QualityContent.DISCHARGED_PATIENTS);
         Long endCount = selectOperationNumMap.get(QualityContent.NUMBER_OF_HOSPITAL);
+        Map<String, Integer> operationPathologyNumMap = getOperationPathologyNum(filterVO);
         //手术人数
         Long operationFeeNum = selectOperationNumMap.get("operationFee");
-        int operationNum = getOperationNum(filterVO);
-        Integer integer = Integer.valueOf(operationNum);
-        operationFeeNum = operationFeeNum + integer;
+        Integer operationNum = operationPathologyNumMap.get(QualityContent.NO_RECORD_OPERATION);
+        operationFeeNum = operationFeeNum + operationNum;
         //抗菌人数
         Long antibiosisFeeNum = selectOperationNumMap.get("antibiosisFee");
         Integer antibiosis = Integer.valueOf(getAntibiosisNum(filterVO));
         antibiosisFeeNum = antibiosisFeeNum + antibiosis;
         //手术病理人数
         Long operationPathologyFeeNum = selectOperationNumMap.get("operationPathologyFee");
-        int operationPathologyNum = getOperationPathologyNum(filterVO);
-        Integer operationPathologyInteger = Integer.valueOf(operationPathologyNum);
-        operationPathologyFeeNum = operationPathologyFeeNum + operationPathologyInteger;
+        Integer operationPathologyNum = operationPathologyNumMap.get(QualityContent.NO_RECORD_OPERATION_PATHOLOGY);
+        operationPathologyFeeNum = operationPathologyFeeNum + operationPathologyNum;
         Map<String, Long> recordIndicatorMap = behospitalInfoFacade.triggeringRules(filterVO);
         //各指标未完成人数情况
         Long operationCount = recordIndicatorMap.get(QualityContent.SSJLWCC_24H);
         Long InHospitalRecords = recordIndicatorMap.get(QualityContent.RYJLWWC_24H);
         Long OutHospitalRecords = recordIndicatorMap.get(QualityContent.CYJLWWC_24H);
         Long recordHomePage = recordIndicatorMap.get(QualityContent.BASYWWC_24H);
+        ArrayList<LinkedHashMap<String, String>> hashMapArrayList = new ArrayList<>();
+        //入院记录24小时完成率
+        //入院记录完成人数为
+        if (InHospitalRecords != null && startCount!=null) {
+         //   medQualityControlDTO.setAdmissionNum(Double.valueOf(startCount - InHospitalRecords));
+            //入院记录完成率
+        //    medQualityControlDTO.setAdmissionStr(getResult(startCount - InHospitalRecords, startCount));
+            LinkedHashMap<String, String> stringStringHashMap = new LinkedHashMap<>();
+            stringStringHashMap.put("name","入院记录24小时内完成率");
+            stringStringHashMap.put("notCopiedStr",getResult(startCount - InHospitalRecords, startCount));
+            stringStringHashMap.put("num",Double.valueOf(startCount - InHospitalRecords).toString());
+            hashMapArrayList.add(stringStringHashMap);
+        }
         //手术记录完成率
         //手术完成人数为
         if (operationCount != null && operationFeeNum!=null){
-            medQualityControlDTO.setOperationNum(Double.valueOf(operationFeeNum - operationCount));
+        //    medQualityControlDTO.setOperationNum(Double.valueOf(operationFeeNum - operationCount));
         //手术完成率
-             medQualityControlDTO.setOperationStr(getResult(operationFeeNum - operationCount, operationFeeNum));
-        }
-            //入院记录24小时完成率
-            //入院记录完成人数为
-        if (InHospitalRecords != null && startCount!=null) {
-            medQualityControlDTO.setAdmissionNum(Double.valueOf(startCount - InHospitalRecords));
-            //入院记录完成率
-            medQualityControlDTO.setAdmissionStr(getResult(startCount - InHospitalRecords, startCount));
+       //      medQualityControlDTO.setOperationStr(getResult(operationFeeNum - operationCount, operationFeeNum));
+            LinkedHashMap<String, String> stringStringHashMap = new LinkedHashMap<>();
+            stringStringHashMap.put("name","手术记录24小时内完成率");
+             stringStringHashMap.put("notCopiedStr",getResult(operationFeeNum - operationCount, operationFeeNum));
+             stringStringHashMap.put("num",Double.valueOf(operationFeeNum - operationCount).toString());
+            hashMapArrayList.add(stringStringHashMap);
         }
             //出院记录24小时完成率
             //出院记录完成人数为
         if (OutHospitalRecords != null && startCount!=null) {
-            medQualityControlDTO.setLeaveHospitalNum(Double.valueOf(startCount - OutHospitalRecords));
+      //      medQualityControlDTO.setLeaveHospitalNum(Double.valueOf(startCount - OutHospitalRecords));
             //出院记录完成率
-            medQualityControlDTO.setLeaveHospitalStr(getResult(startCount - OutHospitalRecords, startCount));
+      //      medQualityControlDTO.setLeaveHospitalStr(getResult(startCount - OutHospitalRecords, startCount));
+            LinkedHashMap<String, String> stringStringHashMap = new LinkedHashMap<>();
+            stringStringHashMap.put("name","出院记录24小时内完成率");
+            stringStringHashMap.put("notCopiedStr",getResult(startCount - OutHospitalRecords, startCount));
+            stringStringHashMap.put("num",Double.valueOf(startCount - OutHospitalRecords).toString());
+            hashMapArrayList.add(stringStringHashMap);
         }
             //病案首页24小时完成率
             //病案首页完成人数为
         if (recordHomePage != null && startCount!=null) {
-            medQualityControlDTO.setMedHomePageNum(Double.valueOf(startCount - recordHomePage));
+       //     medQualityControlDTO.setMedHomePageNum(Double.valueOf(startCount - recordHomePage));
             //病案首页完成率
-            medQualityControlDTO.setMedHomePageStr(getResult(startCount - recordHomePage, startCount));
+        //    medQualityControlDTO.setMedHomePageStr(getResult(startCount - recordHomePage, startCount));
+            LinkedHashMap<String, String> stringStringHashMap = new LinkedHashMap<>();
+            stringStringHashMap.put("name","病案首页24小时完成率");
+            stringStringHashMap.put("notCopiedStr",getResult(startCount - recordHomePage, startCount));
+            stringStringHashMap.put("num",Double.valueOf(startCount - recordHomePage).toString());
+            hashMapArrayList.add(stringStringHashMap);
         }
 
         Map<String, Long> longMap = getCTNum(filterVO);
@@ -459,18 +479,34 @@ public class ConsoleFacade {
         Long ct = triggeringRulesMap.get("CT");
         //MR
         Long mr = triggeringRulesMap.get("MR");
-        if(operationPathologyFeeNum!=null && antibiosisNum!=null) {
-            //病理完成率为
-            medQualityControlDTO.setPathologicalExamination(getResult(operationPathologyFeeNum - antibiosisNum, operationPathologyFeeNum));
-        }
         //CT完成率
         if(CTNum!=null && ct!=null) {
-            medQualityControlDTO.setCTExaminationConform(getResult(CTNum - ct, CTNum));
+        //    medQualityControlDTO.setCTExaminationConform(getResult(CTNum - ct, CTNum));
+            LinkedHashMap<String, String> stringStringHashMap = new LinkedHashMap<>();
+            stringStringHashMap.put("name","CT检查记录符合率");
+            stringStringHashMap.put("notCopiedStr",getResult(CTNum - ct, CTNum));
+            stringStringHashMap.put("num",Double.valueOf(CTNum - ct).toString());
+            hashMapArrayList.add(stringStringHashMap);
         }
         //MR完成率
-            if(MRNum!=null && mr!=null) {
-                medQualityControlDTO.setMRIExaminationConform(getResult(MRNum - mr, MRNum));
-            }
+        if(MRNum!=null && mr!=null) {
+        //    medQualityControlDTO.setMRIExaminationConform(getResult(MRNum - mr, MRNum));
+            LinkedHashMap<String, String> stringStringHashMap = new LinkedHashMap<>();
+            stringStringHashMap.put("name","MRI检查记录符合率");
+            stringStringHashMap.put("notCopiedStr",getResult(MRNum - mr, MRNum));
+            stringStringHashMap.put("num",Double.valueOf(MRNum - mr).toString());
+            hashMapArrayList.add(stringStringHashMap);
+        }
+        if(operationPathologyFeeNum!=null && antibiosisNum!=null) {
+            //病理完成率为
+       //     medQualityControlDTO.setPathologicalExamination(getResult(operationPathologyFeeNum - antibiosisNum, operationPathologyFeeNum));
+            LinkedHashMap<String, String> stringStringHashMap = new LinkedHashMap<>();
+            stringStringHashMap.put("name","病理检查记录符合率");
+            stringStringHashMap.put("notCopiedStr",getResult(operationPathologyFeeNum - antibiosisNum, operationPathologyFeeNum));
+            stringStringHashMap.put("num",Double.valueOf(operationPathologyFeeNum - antibiosisNum).toString());
+            hashMapArrayList.add(stringStringHashMap);
+        }
+
         //抗菌完成率
       //    medQualityControlDTO.setAdmissionStr(getResult(antibiosisFeeNum-0,antibiosisFeeNum));
 
@@ -494,7 +530,7 @@ public class ConsoleFacade {
         filterVO.setFlagStr("1");
                                  medManageParams = behospitalInfoFacade.getMedManageParams(filterVO);
         medQualityControlDTO = bloodMethod(medQualityControlDTO, medManageParams, triggeringRulesMap);
-        return medQualityControlDTO;
+        return hashMapArrayList;
     }
 
     /**
@@ -531,27 +567,51 @@ public class ConsoleFacade {
     /**
      * 医嘱表判断无病案首页是否为病理手术患者的人数
      */
-    public int getOperationPathologyNum(FilterVO filterVO){
+    public Map<String,Integer> getOperationPathologyNum(FilterVO filterVO){
         List<String> behospitalCodeList = adviceVerify(filterVO);
+        int operationPathologyNum=0;
         int operationNum=0;
+        HashMap<String, Integer> map = new HashMap<>();
+        if(ListUtil.isNotEmpty(behospitalCodeList)&&behospitalCodeList.size()>0) {
         for (String behospitalCode : behospitalCodeList) {
             QueryWrapper<DoctorAdvice> dtoQueryWrapper = new QueryWrapper<>();
             dtoQueryWrapper.eq("behospital_code",behospitalCode)
                     .eq("is_deleted", IsDeleteEnum.N.getKey())
-                    .eq("doctor_advice_type",QualityContent.STAT_ORDER)
                     .eq("da_status",QualityContent.EXECUTE_ORDER);
             //查医嘱表
             List<DoctorAdvice> doctorAdvices = doctorAdviceFacade.getBaseMapper().selectList(dtoQueryWrapper);
+            //手术病理
+            if(ListUtil.isNotEmpty(doctorAdvices)&&doctorAdvices.size()>0) {
             for (DoctorAdvice doctorAdvice : doctorAdvices) {
                 String name = doctorAdvice.getDaItemName();
-                if(name.contains(QualityContent.OPERATION)) {
+                if (StringUtil.isNotEmpty(name)) {
+                if (name.contains(QualityContent.OPERATION)) {
                     if (name.contains(QualityContent.NO_OPERATION) || name.contains(QualityContent.OPERATION_ROOM) || (name.contains(QualityContent.OPERATION) && name.contains(QualityContent.COUNTERMAND)) || (name.contains(QualityContent.PAUSE) && name.contains(QualityContent.OPERATION)) || name.contains(QualityContent.VENIPUNCTURE_CATHETERIZATION) || name.startsWith(QualityContent.STOP) || name.contains(QualityContent.LAST)
                             || name.contains(QualityContent.OPERATION_SPECIAL_PATIENTS) || name.contains(QualityContent.IMMUNODEFICIENCY_VIRUS_ANTIBODY)) {
                         continue;
-                    }else {
+                    } else {
                         for (DoctorAdvice advice : doctorAdvices) {
                             String daItemName = advice.getDaItemName();
-                            if(daItemName.contains(QualityContent.PATHOLOGY)) {
+                            if (daItemName.contains(QualityContent.PATHOLOGY)) {
+                                operationPathologyNum++;
+                                break;
+                            }
+                        }
+                    }
+                    }
+                }
+                }
+            }
+            //手术
+            if(ListUtil.isNotEmpty(doctorAdvices)&&doctorAdvices.size()>0) {
+                for (DoctorAdvice doctorAdvice : doctorAdvices) {
+                    String name = doctorAdvice.getDaItemName();
+                    if (StringUtil.isNotEmpty(name)) {
+                        if (name.contains(QualityContent.OPERATION)) {
+                            if (name.contains(QualityContent.NO_OPERATION) || name.contains(QualityContent.OPERATION_ROOM) || (name.contains(QualityContent.OPERATION) && name.contains(QualityContent.COUNTERMAND)) || (name.contains(QualityContent.PAUSE) && name.contains(QualityContent.OPERATION)) || name.contains(QualityContent.VENIPUNCTURE_CATHETERIZATION) || name.startsWith(QualityContent.STOP) || name.contains(QualityContent.LAST)
+                                    || name.contains(QualityContent.OPERATION_SPECIAL_PATIENTS) || name.contains(QualityContent.IMMUNODEFICIENCY_VIRUS_ANTIBODY)) {
+                                continue;
+                            } else {
                                 operationNum++;
                                 break;
                             }
@@ -559,8 +619,11 @@ public class ConsoleFacade {
                     }
                 }
             }
+            }
         }
-        return operationNum;
+        map.put(QualityContent.NO_RECORD_OPERATION_PATHOLOGY,operationPathologyNum);
+        map.put(QualityContent.NO_RECORD_OPERATION,operationNum);
+        return map;
     }
 
     /**
@@ -569,23 +632,28 @@ public class ConsoleFacade {
     public int getOperationNum(FilterVO filterVO){
         List<String> behospitalCodeList = adviceVerify(filterVO);
         int operationNum=0;
-        for (String behospitalCode : behospitalCodeList) {
-            QueryWrapper<DoctorAdvice> dtoQueryWrapper = new QueryWrapper<>();
-            dtoQueryWrapper.eq("behospital_code",behospitalCode)
-                    .eq("is_deleted", IsDeleteEnum.N.getKey())
-                    .eq("doctor_advice_type",QualityContent.STAT_ORDER)
-                    .eq("da_status",QualityContent.EXECUTE_ORDER);
-            //查医嘱表
-            List<DoctorAdvice> doctorAdvices = doctorAdviceFacade.getBaseMapper().selectList(dtoQueryWrapper);
-            for (DoctorAdvice doctorAdvice : doctorAdvices) {
-                String name = doctorAdvice.getDaItemName();
-                if(name.contains(QualityContent.OPERATION)) {
-                    if (name.contains(QualityContent.NO_OPERATION) || name.contains(QualityContent.OPERATION_ROOM) || (name.contains(QualityContent.OPERATION) && name.contains(QualityContent.COUNTERMAND)) || (name.contains(QualityContent.PAUSE) && name.contains(QualityContent.OPERATION)) || name.contains(QualityContent.VENIPUNCTURE_CATHETERIZATION) || name.startsWith(QualityContent.STOP) || name.contains(QualityContent.LAST)
-                            || name.contains(QualityContent.OPERATION_SPECIAL_PATIENTS) || name.contains(QualityContent.IMMUNODEFICIENCY_VIRUS_ANTIBODY)) {
-                        continue;
-                    }else {
-                        operationNum++;
-                        break;
+        if(ListUtil.isNotEmpty(behospitalCodeList)&&behospitalCodeList.size()>0) {
+            for (String behospitalCode : behospitalCodeList) {
+                QueryWrapper<DoctorAdvice> dtoQueryWrapper = new QueryWrapper<>();
+                dtoQueryWrapper.eq("behospital_code", behospitalCode)
+                        .eq("is_deleted", IsDeleteEnum.N.getKey())
+                        .eq("da_status", QualityContent.EXECUTE_ORDER);
+                //查医嘱表
+                List<DoctorAdvice> doctorAdvices = doctorAdviceFacade.getBaseMapper().selectList(dtoQueryWrapper);
+                if(ListUtil.isNotEmpty(doctorAdvices)&&doctorAdvices.size()>0) {
+                    for (DoctorAdvice doctorAdvice : doctorAdvices) {
+                        String name = doctorAdvice.getDaItemName();
+                        if (StringUtil.isNotEmpty(name)) {
+                            if (name.contains(QualityContent.OPERATION)) {
+                                if (name.contains(QualityContent.NO_OPERATION) || name.contains(QualityContent.OPERATION_ROOM) || (name.contains(QualityContent.OPERATION) && name.contains(QualityContent.COUNTERMAND)) || (name.contains(QualityContent.PAUSE) && name.contains(QualityContent.OPERATION)) || name.contains(QualityContent.VENIPUNCTURE_CATHETERIZATION) || name.startsWith(QualityContent.STOP) || name.contains(QualityContent.LAST)
+                                        || name.contains(QualityContent.OPERATION_SPECIAL_PATIENTS) || name.contains(QualityContent.IMMUNODEFICIENCY_VIRUS_ANTIBODY)) {
+                                    continue;
+                                } else {
+                                    operationNum++;
+                                    break;
+                                }
+                            }
+                        }
                     }
                 }
             }
@@ -606,13 +674,15 @@ public class ConsoleFacade {
                     String behospitalCode = ctNumMap.get("behospital_code");
                     if (!codeList.contains(behospitalCode)) {
                         String daItemName = ctNumMap.get("da_item_name");
-                        if ((daItemName.contains(QualityContent.CT) || daItemName.contains(QualityContent.X_RAY)) && StringUtil.isNotEmpty(daItemName)) {
-                            if ((!daItemName.contains(QualityContent.ATCH) && !daItemName.contains(QualityContent.TCT) && !daItemName.contains(QualityContent.HCT)
-                                    && !daItemName.contains(QualityContent.OCT) && !daItemName.contains(QualityContent.NCT) && !daItemName.contains(QualityContent.LCT)
-                                    && !daItemName.contains(QualityContent.ACT)) || (daItemName.contains(QualityContent.STOP))) {
-                                //都不包含为CT
-                                codeList.add(behospitalCode);
-                                continue;
+                        if (StringUtil.isNotEmpty(daItemName)) {
+                            if ((daItemName.contains(QualityContent.CT) || daItemName.contains(QualityContent.X_RAY))) {
+                                if ((!daItemName.contains(QualityContent.ATCH) && !daItemName.contains(QualityContent.TCT) && !daItemName.contains(QualityContent.HCT)
+                                        && !daItemName.contains(QualityContent.OCT) && !daItemName.contains(QualityContent.NCT) && !daItemName.contains(QualityContent.LCT)
+                                        && !daItemName.contains(QualityContent.ACT)) || (daItemName.contains(QualityContent.STOP))) {
+                                    //都不包含为CT
+                                    codeList.add(behospitalCode);
+                                    continue;
+                                }
                             }
                         }
                     }
@@ -626,10 +696,12 @@ public class ConsoleFacade {
                 if (contains(QualityContent.STAT_ORDER)) {
                     if (!codeList.contains(behospitalCodeMri)) {
                         String daItemName = MRINumMap.get("da_item_name");
-                        if (daItemName.contains(QualityContent.MRGNETIC_RESONANCE) || daItemName.contains(QualityContent.MR)) {
-                            if (!daItemName.contains(QualityContent.IMRT) && !daItemName.contains(QualityContent.MRS)) {
-                                codeMri.add(behospitalCodeMri);
-                                continue;
+                        if (StringUtil.isNotEmpty(daItemName)) {
+                            if (daItemName.contains(QualityContent.MRGNETIC_RESONANCE) || daItemName.contains(QualityContent.MR)) {
+                                if (!daItemName.contains(QualityContent.IMRT) && !daItemName.contains(QualityContent.MRS)) {
+                                    codeMri.add(behospitalCodeMri);
+                                    continue;
+                                }
                             }
                         }
                     }
@@ -654,26 +726,32 @@ public class ConsoleFacade {
      * @param filterVO
      * @return
      */
-    public int getAntibiosisNum(FilterVO filterVO){
+    public int getAntibiosisNum(FilterVO filterVO) {
         List<String> adviceVerify = adviceVerify(filterVO);
-        int operationNum=0;
-        for (String behospitalCode : adviceVerify) {
-            QueryWrapper<DoctorAdvice> dtoQueryWrapper = new QueryWrapper<>();
-            dtoQueryWrapper.eq("behospital_code",behospitalCode)
-                    .eq("is_deleted", IsDeleteEnum.N.getKey())
-                    .eq("doctor_advice_type",QualityContent.STAT_ORDER)
-                    .eq("da_status",QualityContent.EXECUTE_ORDER);
-            //查医嘱表
-            List<DoctorAdvice> doctorAdvices = doctorAdviceFacade.getBaseMapper().selectList(dtoQueryWrapper);
-            doc:
-            for (DoctorAdvice doctorAdvice : doctorAdvices) {
-                String daItemName = doctorAdvice.getDaItemName();
-                List<String> antimicrobialDrugList = QualityContent.Antimicrobial_Drug_List;
-                for (String antimicrobialDrug : antimicrobialDrugList) {
-                    if(daItemName.contains(antimicrobialDrug)) {
-                        //医嘱包含抗菌药物名称
-                        operationNum++;
-                        break doc;
+        int operationNum = 0;
+        if (ListUtil.isNotEmpty(adviceVerify) && adviceVerify.size() > 0) {
+            for (String behospitalCode : adviceVerify) {
+                QueryWrapper<DoctorAdvice> dtoQueryWrapper = new QueryWrapper<>();
+                dtoQueryWrapper.eq("behospital_code", behospitalCode)
+                        .eq("is_deleted", IsDeleteEnum.N.getKey())
+                        .eq("doctor_advice_type", QualityContent.STAT_ORDER)
+                        .eq("da_status", QualityContent.EXECUTE_ORDER);
+                //查医嘱表
+                List<DoctorAdvice> doctorAdvices = doctorAdviceFacade.getBaseMapper().selectList(dtoQueryWrapper);
+                if (ListUtil.isNotEmpty(doctorAdvices) && doctorAdvices.size() > 0) {
+                    doc:
+                    for (DoctorAdvice doctorAdvice : doctorAdvices) {
+                        String daItemName = doctorAdvice.getDaItemName();
+                        if (StringUtil.isNotEmpty(daItemName)) {
+                            List<String> antimicrobialDrugList = QualityContent.Antimicrobial_Drug_List;
+                            for (String antimicrobialDrug : antimicrobialDrugList) {
+                                if (daItemName.contains(antimicrobialDrug)) {
+                                    //医嘱包含抗菌药物名称
+                                    operationNum++;
+                                    break doc;
+                                }
+                            }
+                        }
                     }
                 }
             }