Selaa lähdekoodia

返回类型修改

chengyao 4 vuotta sitten
vanhempi
commit
d73c1c3ec8

+ 74 - 40
src/main/java/com/diagbot/facade/ConsoleFacade.java

@@ -388,7 +388,7 @@ public class ConsoleFacade {
      * @param filterVO
      * @return 2170
      */
-    public ArrayList<LinkedHashMap<String, String>> medicalRecordIndicator(FilterVO filterVO) {
+    public List<Map<String, String>> medicalRecordIndicator(FilterVO filterVO) {
         filterFacade.filterVOSet(filterVO);
         MedQualityControlDTO medQualityControlDTO = new MedQualityControlDTO();
         Map<String, Long> selectOperationNumMap = behospitalInfoFacade.selectOperationNum(filterVO);
@@ -413,14 +413,14 @@ public class ConsoleFacade {
         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<>();
+        List<Map<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<>();
+            Map<String, String> stringStringHashMap = new LinkedHashMap<>();
             stringStringHashMap.put("name","入院记录24小时内完成率");
             stringStringHashMap.put("notCopiedStr",getResult(startCount - InHospitalRecords, startCount));
             stringStringHashMap.put("num",Double.valueOf(startCount - InHospitalRecords).toString());
@@ -516,21 +516,21 @@ public class ConsoleFacade {
          */
         Map<String, Object> baseIndex = behospitalInfoFacade.getBaseIndex(filterVO);
         //指标一、二、三、二十七
-        medQualityControlDTO = ManageIndexMethod(medQualityControlDTO, baseIndex, filterVO);
+        List<Map<String, String>> retLists = ManageIndexMethod(hashMapArrayList, baseIndex, filterVO);
         //指标十七 医师查房记录
-        medQualityControlDTO = WardRoundMethod(medQualityControlDTO, baseIndex, triggeringRulesMap);
+                                  retLists = WardRoundMethod(retLists, baseIndex, triggeringRulesMap);
         //指标十八 抢救记录
         List<MedManageParamsDTO> medManageParams = behospitalInfoFacade.getMedManageParams(filterVO);
-        medQualityControlDTO = rescueMethod(medManageParams,medQualityControlDTO,triggeringRulesMap);
+                                  retLists = rescueMethod(medManageParams,retLists,triggeringRulesMap);
         //指标十九 出院患者病历2日归档
-        medQualityControlDTO = getfileSecAmount(filterVO,medQualityControlDTO, baseIndex);
+                                  retLists = getfileSecAmount(filterVO,retLists, baseIndex);
         //指标十四 手术记录
-        medQualityControlDTO = operationMethod(medQualityControlDTO, operationFeeNum+"", triggeringRulesMap);
+                                  retLists = operationMethod(retLists, operationFeeNum+"", triggeringRulesMap);
         //指标十六  临床用血相关记录符合率
         filterVO.setFlagStr("1");
                                  medManageParams = behospitalInfoFacade.getMedManageParams(filterVO);
-        medQualityControlDTO = bloodMethod(medQualityControlDTO, medManageParams, triggeringRulesMap);
-        return hashMapArrayList;
+                                 retLists = bloodMethod(retLists, medManageParams, triggeringRulesMap);
+        return retLists;
     }
 
     /**
@@ -2585,7 +2585,7 @@ public class ConsoleFacade {
 
 
     //指标十八 抢救记录
-    private MedQualityControlDTO rescueMethod(List<MedManageParamsDTO> medManageParams,MedQualityControlDTO medQualityControlDTO,Map<String, Long> triggeringRulesMap){
+    private  List<Map<String, String>> rescueMethod(List<MedManageParamsDTO> medManageParams, List<Map<String, String>> retList,Map<String, Long> triggeringRulesMap){
         List<MedManageParamsDTO> manageList= new ArrayList<>();
         for (int i = 0; i < medManageParams.size(); i++) {
             List<String> rescueDrugList = QualityContent.getRescue_Drug_List();
@@ -2601,36 +2601,47 @@ public class ConsoleFacade {
         double count = manageList.stream().map(MedManageParamsDTO::getBehospitalCode).distinct().count();
         if(StringUtils.isNotEmpty(String.valueOf(count)) &&  count != 0d){
             double rescueDo = currencyCal(count, triggeringRulesMap.get("rescueNum"));
-            medQualityControlDTO.setRescueNum(rescueDo);
-            medQualityControlDTO.setRescueStr(rescueDo+"%");
+            LinkedHashMap<String, String> firMap = new LinkedHashMap<>();
+            String num = String.valueOf(rescueDo);
+            firMap.put("name"," 患者抢救记录及时完成率");
+            firMap.put("notCopiedStr",num+"%");
+            firMap.put("num",num);
+            retList.add(firMap);
         };
-        return medQualityControlDTO;
+        return retList;
     };
 
     //指标十七 医师查房记录
-    private MedQualityControlDTO WardRoundMethod(MedQualityControlDTO medQualityControlDTO, Map<String, Object> baseIndex, Map<String, Long> triggeringRulesMap){
+    private List<Map<String, String>> WardRoundMethod( List<Map<String, String>> retList, 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+"%");
-
+            LinkedHashMap<String, String> firMap = new LinkedHashMap<>();
+            String num = String.valueOf(wardRoundDo);
+            firMap.put("name","医师查房记录完成率");
+            firMap.put("notCopiedStr",num+"%");
+            firMap.put("num",num);
+            retList.add(firMap);
         };
-        return medQualityControlDTO;
+        return retList;
     }
 
     //指标十四 手术记录
-    private MedQualityControlDTO operationMethod(MedQualityControlDTO medQualityControlDTO, String operationFeeNum, Map<String, Long> triggeringRulesMap){
+    private  List<Map<String, String>> operationMethod( List<Map<String, String>>retList, String operationFeeNum, Map<String, Long> triggeringRulesMap){
         if( triggeringRulesMap.containsKey("operationRecordNum") && StringUtils.isNotEmpty(operationFeeNum) && ! operationFeeNum.equals("0")){
             double operationRecordDo = currencyCal(operationFeeNum, triggeringRulesMap.get("operationRecordNum"));
-            medQualityControlDTO.setOperationRecordNum(operationRecordDo);
-            medQualityControlDTO.setOperationRecordStr(operationRecordDo+"%");
+            LinkedHashMap<String, String> firMap = new LinkedHashMap<>();
+            String num = String.valueOf(operationRecordDo);
+            firMap.put("name"," 手术相关记录完成率");
+            firMap.put("notCopiedStr",num+"%");
+            firMap.put("num",num);
+            retList.add(firMap);
 
         };
-        return medQualityControlDTO;
+        return retList;
     }
 
     //指标十六  临床用血相关记录符合率
-    private MedQualityControlDTO bloodMethod(MedQualityControlDTO medQualityControlDTO,  List<MedManageParamsDTO> medManageParams, Map<String, Long> triggeringRulesMap){
+    private  List<Map<String, String>> bloodMethod( List<Map<String, String>>retList,  List<MedManageParamsDTO> medManageParams, Map<String, Long> triggeringRulesMap){
         List<MedManageParamsDTO> manageList= new ArrayList<>();
         for (MedManageParamsDTO medManageParam : medManageParams) {
             List<String> blood_list = QualityContent.getBlood_List();
@@ -2646,11 +2657,15 @@ public class ConsoleFacade {
             if(StringUtils.isNotEmpty(String.valueOf(count)) &&  count != 0d){
                 //指标十七
                 double rescueDo = currencyCal(count, triggeringRulesMap.get("bloodNum"));
-                medQualityControlDTO.setBloodNum(rescueDo);
-                medQualityControlDTO.setBloodStr(rescueDo+"%");
-            };
+                LinkedHashMap<String, String> firMap = new LinkedHashMap<>();
+                String num = String.valueOf(rescueDo);
+                firMap.put("name","临床用血相关记录符合率");
+                firMap.put("notCopiedStr",num+"%");
+                firMap.put("num",num);
+                retList.add(firMap);
+            }
         }
-        return medQualityControlDTO;
+        return retList;
     }
 
     private double currencyCal(Object objFir,Object objSec){
@@ -2662,7 +2677,7 @@ public class ConsoleFacade {
     };
 
     //指标十九 出院患者病历2日归档
-    private MedQualityControlDTO getfileSecAmount(FilterVO filterVO,MedQualityControlDTO medQualityControlDTO, Map<String, Object> baseIndex){
+    private List<Map<String, String>> getfileSecAmount(FilterVO filterVO,  List<Map<String, String>>retList, Map<String, Object> baseIndex){
         QueryWrapper<BehospitalInfo> query = new QueryWrapper<>();
         DecimalFormat df = new DecimalFormat("#0.00");
         query.eq("hospital_id", filterVO.getHospitalId())
@@ -2685,11 +2700,14 @@ public class ConsoleFacade {
         if(StringUtils.isNotEmpty( baseIndex.get("firWorkNum").toString()) && ! baseIndex.get("firWorkNum").toString().equals("0") ){
             double retNum =count* 100/Double.parseDouble(baseIndex.get("firWorkNum").toString());
             double firGradeStr = Double.parseDouble(df.format(retNum));
-            medQualityControlDTO.setLeaveSecFileStr(firGradeStr+"%");
+            LinkedHashMap<String, String> firMap = new LinkedHashMap<>();
+            String num = String.valueOf(firGradeStr);
+            firMap.put("name","出院患者病历2日归档率");
+            firMap.put("notCopiedStr",num+"%");
+            firMap.put("num",num);
+            retList.add(firMap);
         }
-
-
-        return medQualityControlDTO;
+        return retList;
     };
 
     private Boolean getTrueSecFile(Date date1,Date date2, List<String> holidaysTimeList){
@@ -2728,7 +2746,7 @@ public class ConsoleFacade {
     }
 
 
-     private MedQualityControlDTO ManageIndexMethod(MedQualityControlDTO medQualityControlDTO, Map<String, Object> baseIndex,FilterVO filterVO){
+     private List<Map<String, String>> ManageIndexMethod(List<Map<String, String>> retList, Map<String, Object> baseIndex,FilterVO filterVO){
          FilterVO timeVo = new FilterVO();
          BeanUtils.copyProperties(filterVO,timeVo);
          QueryWrapper<MedManagementInfo> query = new QueryWrapper<>();
@@ -2766,16 +2784,28 @@ public class ConsoleFacade {
 
          //指标一
          if(secMouth != 0d && secMouth != null && StringUtils.isNotEmpty( baseIndex.get("firWorkNum").toString())){
-             medQualityControlDTO.setManagerBeNum(Math.ceil(Double.parseDouble(baseIndex.get("firWorkNum").toString())/secMouth));
+             LinkedHashMap<String, String> firMap = new LinkedHashMap<>();
+             String num = String.valueOf(Math.ceil(Double.parseDouble(baseIndex.get("firWorkNum").toString()) / secMouth));
+             firMap.put("name","住院病案管理人员月均负担出院患者病历数");
+             firMap.put("num",num);
+             retList.add(firMap);
          }
          //指标三
          if(thrMouth != 0d && thrMouth != null && StringUtils.isNotEmpty( baseIndex.get("firWorkNum").toString())){
-             medQualityControlDTO.setCoderBeNum(Math.ceil(Double.parseDouble(baseIndex.get("firWorkNum").toString())/thrMouth));
+             LinkedHashMap<String, String> firMap = new LinkedHashMap<>();
+             String num = String.valueOf(Math.ceil(Double.parseDouble(baseIndex.get("firWorkNum").toString())/thrMouth));
+             firMap.put("name","病案编码人员月均负担出院患者病历数");
+             firMap.put("num",num);
+             retList.add(firMap);
          }
 
          if(firMouth != 0d && firMouth != null  && StringUtils.isNotEmpty( baseIndex.get("secWorkNum").toString())){
          //指标二
-             medQualityControlDTO.setSecManagerBeNum(Math.ceil(Double.parseDouble(baseIndex.get("secWorkNum").toString())/firMouth));
+             LinkedHashMap<String, String> firMap = new LinkedHashMap<>();
+             String num = String.valueOf(Math.ceil(Double.parseDouble(baseIndex.get("secWorkNum").toString())/firMouth));
+             firMap.put("name","门诊病案管理人员月均负担门诊患者病历数");
+             firMap.put("num",num);
+             retList.add(firMap);
          }
 
          //指标二十七 -甲级病历率
@@ -2785,10 +2815,14 @@ public class ConsoleFacade {
          if( firRecord != 0d && StringUtils.isNotEmpty( baseIndex.get("sixWorkNum").toString()) ){
              double retNum = Double.parseDouble(baseIndex.get("sixWorkNum").toString()) * 100 / firRecord;
              double firGradeStr = Double.parseDouble(df.format(retNum));
-             medQualityControlDTO.setFirGradeStr(firGradeStr+"%");
+             LinkedHashMap<String, String> firMap = new LinkedHashMap<>();
+             String num = String.valueOf(Math.ceil(firGradeStr));
+             firMap.put("name","甲级病历率");
+             firMap.put("notCopiedStr",num+"%");
+             firMap.put("num",num);
+             retList.add(firMap);
          }
-
-         return medQualityControlDTO;
+         return retList;
      };
    private void timeTrans(FilterVO filterVO){
        SimpleDateFormat myFormatter = new SimpleDateFormat("yyyy-MM-dd");

+ 5 - 0
src/main/java/com/diagbot/vo/FilterVO.java

@@ -72,4 +72,9 @@ public class FilterVO {
      * 辅助标识
      */
     private String flagStr = "0";
+
+    /**
+     * 指标名称
+     */
+    private String indexName;
 }