|
@@ -2611,44 +2611,46 @@ public class ConsoleFacade {
|
|
|
|
|
|
//接受抢救的质控病历总数
|
|
//接受抢救的质控病历总数
|
|
double count = manageList.stream().map(MedManageParamsDTO::getBehospitalCode).distinct().count();
|
|
double count = manageList.stream().map(MedManageParamsDTO::getBehospitalCode).distinct().count();
|
|
|
|
+ String num = null;
|
|
if(StringUtils.isNotEmpty(String.valueOf(count)) && count != 0d){
|
|
if(StringUtils.isNotEmpty(String.valueOf(count)) && count != 0d){
|
|
double rescueDo = currencyCal(count, triggeringRulesMap.get("rescueNum"));
|
|
double rescueDo = currencyCal(count, triggeringRulesMap.get("rescueNum"));
|
|
- 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);
|
|
|
|
|
|
+ num = String.valueOf(rescueDo);
|
|
};
|
|
};
|
|
|
|
+ LinkedHashMap<String, String> firMap = new LinkedHashMap<>();
|
|
|
|
+ firMap.put("name","患者抢救记录及时完成率");
|
|
|
|
+ firMap.put("notCopiedStr",StringUtils.isEmpty(num)? null:(num+"%"));
|
|
|
|
+ firMap.put("num",num);
|
|
|
|
+ retList.add(firMap);
|
|
return retList;
|
|
return retList;
|
|
};
|
|
};
|
|
|
|
|
|
//指标十七 医师查房记录
|
|
//指标十七 医师查房记录
|
|
private List<Map<String, String>> WardRoundMethod( List<Map<String, String>> retList, 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){
|
|
|
|
+ String num = null;
|
|
if( triggeringRulesMap.containsKey("WardRoundNum") && baseIndex.containsKey("forWorkNum") && !baseIndex.get("forWorkNum").toString().equals("0")){
|
|
if( triggeringRulesMap.containsKey("WardRoundNum") && baseIndex.containsKey("forWorkNum") && !baseIndex.get("forWorkNum").toString().equals("0")){
|
|
double wardRoundDo = currencyCal(baseIndex.get("forWorkNum"), triggeringRulesMap.get("WardRoundNum"));
|
|
double wardRoundDo = currencyCal(baseIndex.get("forWorkNum"), triggeringRulesMap.get("WardRoundNum"));
|
|
- 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);
|
|
|
|
|
|
+ num = String.valueOf(wardRoundDo);
|
|
};
|
|
};
|
|
|
|
+ LinkedHashMap<String, String> firMap = new LinkedHashMap<>();
|
|
|
|
+ firMap.put("name","医师查房记录完成率");
|
|
|
|
+ firMap.put("notCopiedStr",StringUtils.isEmpty(num)? null:(num+"%"));
|
|
|
|
+ firMap.put("num",num);
|
|
|
|
+ retList.add(firMap);
|
|
return retList;
|
|
return retList;
|
|
}
|
|
}
|
|
|
|
|
|
//指标十四 手术记录
|
|
//指标十四 手术记录
|
|
private List<Map<String, String>> operationMethod( List<Map<String, String>>retList, String operationFeeNum, Map<String, Long> triggeringRulesMap){
|
|
private List<Map<String, String>> operationMethod( List<Map<String, String>>retList, String operationFeeNum, Map<String, Long> triggeringRulesMap){
|
|
|
|
+ String num = null;
|
|
if( triggeringRulesMap.containsKey("operationRecordNum") && StringUtils.isNotEmpty(operationFeeNum) && ! operationFeeNum.equals("0")){
|
|
if( triggeringRulesMap.containsKey("operationRecordNum") && StringUtils.isNotEmpty(operationFeeNum) && ! operationFeeNum.equals("0")){
|
|
double operationRecordDo = currencyCal(operationFeeNum, triggeringRulesMap.get("operationRecordNum"));
|
|
double operationRecordDo = currencyCal(operationFeeNum, triggeringRulesMap.get("operationRecordNum"));
|
|
- 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);
|
|
|
|
-
|
|
|
|
|
|
+ num = String.valueOf(operationRecordDo);
|
|
};
|
|
};
|
|
|
|
+ LinkedHashMap<String, String> firMap = new LinkedHashMap<>();
|
|
|
|
+ firMap.put("name","手术相关记录完成率");
|
|
|
|
+ firMap.put("notCopiedStr",StringUtils.isEmpty(num)? null:(num+"%"));
|
|
|
|
+ firMap.put("num",num);
|
|
|
|
+ retList.add(firMap);
|
|
return retList;
|
|
return retList;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -2666,16 +2668,17 @@ public class ConsoleFacade {
|
|
}
|
|
}
|
|
//临床用血的质控病历总数
|
|
//临床用血的质控病历总数
|
|
double count = manageList.stream().map(MedManageParamsDTO::getBehospitalCode).distinct().count();
|
|
double count = manageList.stream().map(MedManageParamsDTO::getBehospitalCode).distinct().count();
|
|
|
|
+ String num = null;
|
|
if(StringUtils.isNotEmpty(String.valueOf(count)) && count != 0d){
|
|
if(StringUtils.isNotEmpty(String.valueOf(count)) && count != 0d){
|
|
//指标十七
|
|
//指标十七
|
|
double rescueDo = currencyCal(count, triggeringRulesMap.get("bloodNum"));
|
|
double rescueDo = currencyCal(count, triggeringRulesMap.get("bloodNum"));
|
|
- 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);
|
|
|
|
|
|
+ num = String.valueOf(rescueDo);
|
|
}
|
|
}
|
|
|
|
+ LinkedHashMap<String, String> firMap = new LinkedHashMap<>();
|
|
|
|
+ firMap.put("name","临床用血相关记录符合率");
|
|
|
|
+ firMap.put("notCopiedStr",StringUtils.isEmpty(num)? null:(num+"%"));
|
|
|
|
+ firMap.put("num",num);
|
|
|
|
+ retList.add(firMap);
|
|
}
|
|
}
|
|
return retList;
|
|
return retList;
|
|
}
|
|
}
|
|
@@ -2694,6 +2697,8 @@ public class ConsoleFacade {
|
|
DecimalFormat df = new DecimalFormat("#0.00");
|
|
DecimalFormat df = new DecimalFormat("#0.00");
|
|
query.eq("hospital_id", filterVO.getHospitalId())
|
|
query.eq("hospital_id", filterVO.getHospitalId())
|
|
.eq("is_deleted", IsDeleteEnum.N)
|
|
.eq("is_deleted", IsDeleteEnum.N)
|
|
|
|
+ .ne("qc_type_id", 0)
|
|
|
|
+ .eq("is_placefile", 1)
|
|
// .eq("is_placefile", filterVO.getIsPlacefile())
|
|
// .eq("is_placefile", filterVO.getIsPlacefile())
|
|
.isNotNull("leave_hospital_date")
|
|
.isNotNull("leave_hospital_date")
|
|
.ge("leave_hospital_date",filterVO.getStartDate())
|
|
.ge("leave_hospital_date",filterVO.getStartDate())
|
|
@@ -2702,35 +2707,36 @@ public class ConsoleFacade {
|
|
Iterator<BehospitalInfo> iterator = list.iterator();
|
|
Iterator<BehospitalInfo> iterator = list.iterator();
|
|
while (iterator.hasNext()){
|
|
while (iterator.hasNext()){
|
|
BehospitalInfo beh = iterator.next();
|
|
BehospitalInfo beh = iterator.next();
|
|
- Boolean flag = getTrueSecFile(beh.getBehospitalDate(), beh.getLeaveHospitalDate(), TimeContent.getHolidaysTimeList());
|
|
|
|
|
|
+ Boolean flag = getTrueSecFile(beh.getLeaveHospitalDate(), beh.getPlacefileDate(), TimeContent.getHolidaysTimeList());
|
|
//时间截止则删除元素
|
|
//时间截止则删除元素
|
|
if(!flag){
|
|
if(!flag){
|
|
iterator.remove();
|
|
iterator.remove();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
double count = list.stream().distinct().map(BehospitalInfo::getBedCode).count();
|
|
double count = list.stream().distinct().map(BehospitalInfo::getBedCode).count();
|
|
|
|
+ String num = null;
|
|
if(StringUtils.isNotEmpty( baseIndex.get("firWorkNum").toString()) && ! baseIndex.get("firWorkNum").toString().equals("0") ){
|
|
if(StringUtils.isNotEmpty( baseIndex.get("firWorkNum").toString()) && ! baseIndex.get("firWorkNum").toString().equals("0") ){
|
|
double retNum =count* 100/Double.parseDouble(baseIndex.get("firWorkNum").toString());
|
|
double retNum =count* 100/Double.parseDouble(baseIndex.get("firWorkNum").toString());
|
|
double firGradeStr = Double.parseDouble(df.format(retNum));
|
|
double firGradeStr = Double.parseDouble(df.format(retNum));
|
|
- 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);
|
|
|
|
|
|
+ num = String.valueOf(firGradeStr);
|
|
}
|
|
}
|
|
|
|
+ LinkedHashMap<String, String> firMap = new LinkedHashMap<>();
|
|
|
|
+ firMap.put("name","出院患者病历2日归档率");
|
|
|
|
+ firMap.put("notCopiedStr",StringUtils.isEmpty(num)? null:(num+"%"));
|
|
|
|
+ firMap.put("num",num);
|
|
|
|
+ retList.add(firMap);
|
|
return retList;
|
|
return retList;
|
|
};
|
|
};
|
|
|
|
|
|
private Boolean getTrueSecFile(Date date1,Date date2, List<String> holidaysTimeList){
|
|
private Boolean getTrueSecFile(Date date1,Date date2, List<String> holidaysTimeList){
|
|
Date date = date1;
|
|
Date date = date1;
|
|
|
|
+ Date dateSec = date2;
|
|
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
|
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
|
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
SimpleDateFormat simpleDateFormatRe = new SimpleDateFormat("yyyy-MM-dd");
|
|
SimpleDateFormat simpleDateFormatRe = new SimpleDateFormat("yyyy-MM-dd");
|
|
Calendar cal = null;
|
|
Calendar cal = null;
|
|
int count = 0;
|
|
int count = 0;
|
|
try {
|
|
try {
|
|
- String format = simpleDateFormatRe.format(date1);
|
|
|
|
date1 = simpleDateFormatRe.parse(simpleDateFormatRe.format(date1));
|
|
date1 = simpleDateFormatRe.parse(simpleDateFormatRe.format(date1));
|
|
date2 = simpleDateFormatRe.parse(simpleDateFormatRe.format(date2));
|
|
date2 = simpleDateFormatRe.parse(simpleDateFormatRe.format(date2));
|
|
cal = Calendar.getInstance();
|
|
cal = Calendar.getInstance();
|
|
@@ -2751,7 +2757,7 @@ public class ConsoleFacade {
|
|
ZoneId zone = ZoneId.systemDefault();
|
|
ZoneId zone = ZoneId.systemDefault();
|
|
Instant instant = ldt.atZone(zone).toInstant();
|
|
Instant instant = ldt.atZone(zone).toInstant();
|
|
Date endDate = Date.from(instant);
|
|
Date endDate = Date.from(instant);
|
|
- if(endDate.after(date2)){
|
|
|
|
|
|
+ if(endDate.after(dateSec)){
|
|
return true;
|
|
return true;
|
|
}
|
|
}
|
|
return false;
|
|
return false;
|
|
@@ -2795,45 +2801,50 @@ public class ConsoleFacade {
|
|
Double firRecord = 0d;
|
|
Double firRecord = 0d;
|
|
|
|
|
|
//指标一
|
|
//指标一
|
|
|
|
+ String num1 = null;
|
|
if(secMouth != 0d && secMouth != null && StringUtils.isNotEmpty( baseIndex.get("firWorkNum").toString())){
|
|
if(secMouth != 0d && secMouth != null && StringUtils.isNotEmpty( baseIndex.get("firWorkNum").toString())){
|
|
- 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);
|
|
|
|
|
|
+ num1 = String.valueOf(Math.ceil(Double.parseDouble(baseIndex.get("firWorkNum").toString()) / secMouth));
|
|
}
|
|
}
|
|
|
|
+ LinkedHashMap<String, String> firMap = new LinkedHashMap<>();
|
|
|
|
+ firMap.put("name","住院病案管理人员月均负担出院患者病历数");
|
|
|
|
+ firMap.put("num",num1);
|
|
|
|
+ retList.add(firMap);
|
|
//指标三
|
|
//指标三
|
|
|
|
+ String num2 = null;
|
|
if(thrMouth != 0d && thrMouth != null && StringUtils.isNotEmpty( baseIndex.get("firWorkNum").toString())){
|
|
if(thrMouth != 0d && thrMouth != null && StringUtils.isNotEmpty( baseIndex.get("firWorkNum").toString())){
|
|
- 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);
|
|
|
|
|
|
+ num2 = String.valueOf(Math.ceil(Double.parseDouble(baseIndex.get("firWorkNum").toString())/thrMouth));
|
|
|
|
+
|
|
}
|
|
}
|
|
|
|
+ LinkedHashMap<String, String> secMap = new LinkedHashMap<>();
|
|
|
|
+ secMap.put("name","病案编码人员月均负担出院患者病历数");
|
|
|
|
+ secMap.put("num",num2);
|
|
|
|
+ retList.add(secMap);
|
|
|
|
|
|
|
|
+ String num3= null;
|
|
if(firMouth != 0d && firMouth != null && StringUtils.isNotEmpty( baseIndex.get("secWorkNum").toString())){
|
|
if(firMouth != 0d && firMouth != null && StringUtils.isNotEmpty( baseIndex.get("secWorkNum").toString())){
|
|
//指标二
|
|
//指标二
|
|
- 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);
|
|
|
|
|
|
+ num3 = String.valueOf(Math.ceil(Double.parseDouble(baseIndex.get("secWorkNum").toString())/firMouth));
|
|
}
|
|
}
|
|
|
|
+ LinkedHashMap<String, String> thrMap = new LinkedHashMap<>();
|
|
|
|
+ thrMap.put("name","门诊病案管理人员月均负担门诊患者病历数");
|
|
|
|
+ thrMap.put("num",num3);
|
|
|
|
+ retList.add(thrMap);
|
|
|
|
|
|
//指标二十七 -甲级病历率
|
|
//指标二十七 -甲级病历率
|
|
|
|
+ String num4= null;
|
|
if(StringUtils.isNotEmpty( baseIndex.get("forWorkNum").toString())){
|
|
if(StringUtils.isNotEmpty( baseIndex.get("forWorkNum").toString())){
|
|
firRecord =Double.parseDouble(baseIndex.get("forWorkNum").toString());
|
|
firRecord =Double.parseDouble(baseIndex.get("forWorkNum").toString());
|
|
}
|
|
}
|
|
if( firRecord != 0d && StringUtils.isNotEmpty( baseIndex.get("sixWorkNum").toString()) ){
|
|
if( firRecord != 0d && StringUtils.isNotEmpty( baseIndex.get("sixWorkNum").toString()) ){
|
|
double retNum = Double.parseDouble(baseIndex.get("sixWorkNum").toString()) * 100 / firRecord;
|
|
double retNum = Double.parseDouble(baseIndex.get("sixWorkNum").toString()) * 100 / firRecord;
|
|
double firGradeStr = Double.parseDouble(df.format(retNum));
|
|
double firGradeStr = Double.parseDouble(df.format(retNum));
|
|
- 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);
|
|
|
|
|
|
+ num4 = String.valueOf(Math.ceil(firGradeStr));
|
|
}
|
|
}
|
|
|
|
+ LinkedHashMap<String, String> fouMap = new LinkedHashMap<>();
|
|
|
|
+ fouMap.put("name","甲级病历率");
|
|
|
|
+ fouMap.put("notCopiedStr",StringUtils.isEmpty(num4)? null:(num4+"%"));
|
|
|
|
+ fouMap.put("num",num4);
|
|
|
|
+ retList.add(fouMap);
|
|
return retList;
|
|
return retList;
|
|
};
|
|
};
|
|
private void timeTrans(FilterVO filterVO){
|
|
private void timeTrans(FilterVO filterVO){
|