浏览代码

分子code限制

chengyao 4 年之前
父节点
当前提交
c02a96a0c8
共有 2 个文件被更改,包括 46 次插入11 次删除
  1. 45 10
      src/main/java/com/diagbot/facade/ConsoleFacade.java
  2. 1 1
      src/main/java/com/diagbot/util/ExcelUtils.java

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

@@ -719,21 +719,22 @@ public class ConsoleFacade {
         MedIndexFilterVO timeVo = new MedIndexFilterVO();
         BeanUtils.copyProperties(filterVO,timeVo);
         timeTrans(timeVo);
-        Map<String, Object> baseIndex = behospitalInfoFacade.getBaseIndex(timeVo);
+            List<String> rescueCode = new CopyOnWriteArrayList<>();
+            List<String> bloodCode = new CopyOnWriteArrayList<>();
         //指标二十七
 
         //指标十七 医师查房记录
 
         //指标十八 抢救记录
-        rescueMethods(doctorAdviceMedManageParams,medIndexResult);
+        rescueMethods(doctorAdviceMedManageParams,medIndexResult,rescueCode);
         //指标十九 出院患者病历2日归档
-        getfileSecAmounts(filterVO,baseIndex,medIndexResult);
+        getfileSecAmounts(filterVO,medIndexResult);
         //指标十四 手术记录
         medIndexResult.setOperationCompleteResult(Double.parseDouble(operationFeeNum+""));
         //指标十六  临床用血相关记录符合率
         filterVO.setFlagStr("1");
         List<MedManageParamsDTO> medManageParams = behospitalInfoFacade.getMedManageParams(filterVO);
-        bloodMethods(doctorAdviceMedManageParams, medManageParams,medIndexResult);
+        bloodMethods(doctorAdviceMedManageParams, medManageParams,medIndexResult,bloodCode);
         medIndexResult.setHospitalId(filterVO.getHospitalId());
         medIndexResult.setStartDate(filterVO.getStartDate());
         medIndexResult.setEndDate(filterVO.getEndDate());
@@ -791,6 +792,27 @@ public class ConsoleFacade {
                     medIndexRelevanceFacade.save(medIndexRelevance);
                 }
             }
+            if(ListUtil.isNotEmpty(operationCode)) {
+                medIndexRelevance.setRelevanceType(15);
+                for (String Code : operationCode) {
+                    medIndexRelevance.setBehospitalCode(Code);
+                    medIndexRelevanceFacade.save(medIndexRelevance);
+                }
+            }
+            if(ListUtil.isNotEmpty(bloodCode)) {
+                medIndexRelevance.setRelevanceType(17);
+                for (String Code : bloodCode) {
+                    medIndexRelevance.setBehospitalCode(Code);
+                    medIndexRelevanceFacade.save(medIndexRelevance);
+                }
+            }
+            if(ListUtil.isNotEmpty(rescueCode)) {
+                medIndexRelevance.setRelevanceType(19);
+                for (String Code : rescueCode) {
+                    medIndexRelevance.setBehospitalCode(Code);
+                    medIndexRelevanceFacade.save(medIndexRelevance);
+                }
+            }
         }
     }
     /**
@@ -2904,6 +2926,9 @@ public class ConsoleFacade {
         if(StringUtils.isNotEmpty(String.valueOf(count)) &&  count != 0d){
             double rescueDo = currencyCal(count, triggeringRulesMap.get("rescueNum"));
             num = String.valueOf(rescueDo);
+            if(rescueDo<0d){
+                num = null;
+            }
         };
         LinkedHashMap<String, String> firMap = new LinkedHashMap<>();
         firMap.put("name","患者抢救记录及时完成率");
@@ -2918,6 +2943,9 @@ public class ConsoleFacade {
         if( triggeringRulesMap.containsKey("WardRoundNum") && baseIndex.containsKey("forWorkNum") && !baseIndex.get("forWorkNum").toString().equals("0")){
             double wardRoundDo = currencyCal(baseIndex.get("forWorkNum"), triggeringRulesMap.get("WardRoundNum"));
             num = String.valueOf(wardRoundDo);
+            if(wardRoundDo<0d){
+                num = null;
+            }
         };
         LinkedHashMap<String, String> firMap = new LinkedHashMap<>();
         firMap.put("name","医师查房记录完成率");
@@ -2933,6 +2961,9 @@ public class ConsoleFacade {
         if( triggeringRulesMap.containsKey("operationRecordNum") && StringUtils.isNotEmpty(operationFeeNum) && ! operationFeeNum.equals("0")){
             double operationRecordDo = currencyCal(operationFeeNum, triggeringRulesMap.get("operationRecordNum"));
             num = String.valueOf(operationRecordDo);
+            if(operationRecordDo<0d){
+                num = null;
+            }
         };
         LinkedHashMap<String, String> firMap = new LinkedHashMap<>();
         firMap.put("name","手术相关记录完成率");
@@ -2948,8 +2979,11 @@ public class ConsoleFacade {
         String num = null;
         if(StringUtils.isNotEmpty(String.valueOf(count)) &&  count != 0d){
             //指标十七
-            double rescueDo = currencyCal(count, triggeringRulesMap.get("bloodNum"));
-            num = String.valueOf(rescueDo);
+            double bloodDo = currencyCal(count, triggeringRulesMap.get("bloodNum"));
+            num = String.valueOf(bloodDo);
+            if(bloodDo<0d){
+                num = null;
+            }
         }
         LinkedHashMap<String, String> firMap = new LinkedHashMap<>();
         firMap.put("name","临床用血相关记录符合率");
@@ -3085,7 +3119,7 @@ public class ConsoleFacade {
      * ==============================后台维护===============================
      */
     //指标十八 抢救记录
-    private  void rescueMethods(List<MedManageParamsDTO> medManageParams,MedIndexResult medIndexResult){
+    private  void rescueMethods(List<MedManageParamsDTO> medManageParams,MedIndexResult medIndexResult, List<String> rescueCode){
         List<MedManageParamsDTO> manageList= new ArrayList<>();
         List<String> rescueDrugList = QualityContent.RESCUEDRUGLIST;
         for (int i = 0; i < medManageParams.size(); i++) {
@@ -3095,6 +3129,7 @@ public class ConsoleFacade {
             for (String str : rescueDrugList) {
                 if(StringUtils.isNotEmpty(daItemName) && daItemName.contains(str) && StringUtils.isNotEmpty(doctorAdviceType) && doctorAdviceType.equals(QualityContent.STAT_ORDER) && (StringUtils.isEmpty(da_status) || (StringUtils.isNotEmpty(da_status) && ! da_status.equals(QualityContent.CANCELLATION_ORDER)))){
                     manageList.add(medManageParams.get(i));
+                    rescueCode.add(medManageParams.get(i).getBehospitalCode());
                 }
             }
         }
@@ -3107,7 +3142,7 @@ public class ConsoleFacade {
     }
 
     //指标十六  临床用血相关记录符合率
-    private void bloodMethods(List<MedManageParamsDTO> doctorAdviceList, List<MedManageParamsDTO> medManageParams,MedIndexResult medIndexResult){
+    private void bloodMethods(List<MedManageParamsDTO> doctorAdviceList, List<MedManageParamsDTO> medManageParams,MedIndexResult medIndexResult, List<String> bloodCode){
         Set<String> manageList= new CopyOnWriteArraySet<>();
         List<String> blood_list = QualityContent.BLOODLIST;
         //lis项目存在用血住院病历号
@@ -3125,7 +3160,7 @@ public class ConsoleFacade {
                         (StringUtils.isEmpty(obj.getDaStatus()) || (StringUtils.isNotEmpty(obj.getDaStatus()) && ! obj.getDaStatus()
                         .equals(QualityContent.CANCELLATION_ORDER))))
                 .distinct()
-                .map(obj -> manageList.add(obj.getBehospitalCode()))
+                .map(obj -> {manageList.add(obj.getBehospitalCode());return bloodCode.add(obj.getBehospitalCode());})
                 .collect(Collectors.toList());
         long xx3= System.currentTimeMillis();
         System.out.println("advice体现lis项目存在用血的住院病历号 = " + (xx3-xx2));
@@ -3140,7 +3175,7 @@ public class ConsoleFacade {
 
 
     //指标十九 出院患者病历2日归档
-    private void getfileSecAmounts(FilterVO filterVO,Map<String, Object> baseIndex,MedIndexResult medIndexResult){
+    private void getfileSecAmounts(FilterVO filterVO,MedIndexResult medIndexResult){
         QueryWrapper<BehospitalInfo> query = new QueryWrapper<>();
         DecimalFormat df = new DecimalFormat("#0.00");
         query.eq("hospital_id", filterVO.getHospitalId())

+ 1 - 1
src/main/java/com/diagbot/util/ExcelUtils.java

@@ -115,7 +115,7 @@ public class ExcelUtils {
 
     private static void userExport2(List<?> list, Class<?> pojoClass, String fileName, HttpServletResponse response,
                                     ExportParams exportParams, float height, Boolean havTitle) {
-        if(exportParams.getTitle().equals("病历质控报表")){
+        if(StringUtils.isNotEmpty(exportParams.getTitle()) && exportParams.getTitle().equals("病历质控报表")){
             exportParams.setTitleHeight(Short.valueOf("20"));
         };
         Workbook workbook = ExcelExportUtil.exportExcel(exportParams, pojoClass, list);