|
@@ -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())
|