|
|
@@ -826,17 +826,17 @@ public class RuleEngine {
|
|
|
try {
|
|
|
dictUtil.transferAfterIncidentWarning(afterIncidentDetailLog);
|
|
|
String jsonStr = JSON.toJSONString(afterIncidentDetailLog);
|
|
|
- log.info("事后处理日志:{}", jsonStr);
|
|
|
+ log.info("事后日志工单id:{} 事后处理日志:{}", afterIncidentDetailLog.getAfterIncidentLogId(), jsonStr);
|
|
|
JSONObject itemMap = JSON.parseObject(jsonStr);
|
|
|
//callScenario 1=事前 2=事后 3=事前/事后 4=事中 5=事后/事中
|
|
|
List<String> callScenarioList = Arrays.asList("2", "5", "3");
|
|
|
List<String> treatmentTypeList = CommonUtil.getVisitTypeList(afterwardsAudit.getTreatmentType());
|
|
|
List<MedicalInsRuleProject> medicalInsRuleProjectList = medicalInsRuleProjectService.getRuleProjectByMedicalProjectCode(itemMap.get(Constant.MEDICAL_PROJECT_CODE_KEY).toString(), callScenarioList, treatmentTypeList);
|
|
|
if (CollectionUtil.isEmpty(medicalInsRuleProjectList)) {
|
|
|
- log.error("项目编码未匹配到对应的医保规则:{} 在规则库数据库中未检索到数据", itemMap.get(Constant.MEDICAL_PROJECT_CODE_KEY));
|
|
|
+ log.error("事后日志工单id:{} 项目编码未匹配到对应的医保规则:{} 在规则库数据库中未检索到数据", afterIncidentDetailLog.getAfterIncidentLogId(), itemMap.get(Constant.MEDICAL_PROJECT_CODE_KEY));
|
|
|
} else {
|
|
|
Set<Integer> medicalInsRuleInfoIdList = medicalInsRuleProjectList.stream().map(MedicalInsRuleProject::getMedicalInsRuleInfoId).collect(Collectors.toSet());
|
|
|
- log.info("项目编码:{} 数据库检索到匹配规则ID列表:{}", itemMap.get(Constant.MEDICAL_PROJECT_CODE_KEY), medicalInsRuleInfoIdList);
|
|
|
+ log.info("事后日志工单id:{} 项目编码:{} 数据库检索到匹配规则ID列表:{}", afterIncidentDetailLog.getAfterIncidentLogId(), itemMap.get(Constant.MEDICAL_PROJECT_CODE_KEY), medicalInsRuleInfoIdList);
|
|
|
}
|
|
|
|
|
|
Object diagnose = itemMap.get(Constant.MEDICAL_DIAGNOSE_CODE_KEY);
|
|
|
@@ -847,18 +847,18 @@ public class RuleEngine {
|
|
|
|
|
|
}
|
|
|
if (CollectionUtil.isEmpty(medicalInsRuleProjectList)) {
|
|
|
- log.error("项目编码未匹配到对应的医保规则:{} 在规则库数据库中未检索到数据,退出执行规则", itemMap.get(Constant.MEDICAL_PROJECT_CODE_KEY));
|
|
|
+ log.error("事后日志工单id:{} 项目编码未匹配到对应的医保规则:{} 在规则库数据库中未检索到数据,退出执行规则", afterIncidentDetailLog.getAfterIncidentLogId(), itemMap.get(Constant.MEDICAL_PROJECT_CODE_KEY));
|
|
|
afterIncidentDetailLogService.lambdaUpdate().set(AfterIncidentDetailLog::getErrorDescription, "项目编码未匹配到对应的医保规则 在规则库数据库中未检索到数据,退出执行规则")
|
|
|
.set(AfterIncidentDetailLog::getState, Constant.FAIL)
|
|
|
.eq(AfterIncidentDetailLog::getId, afterIncidentDetailLog.getId()).update();
|
|
|
return;
|
|
|
}
|
|
|
Map<Integer, List<MedicalInsRuleProject>> ruleAndProjectMap = medicalInsRuleProjectList.stream().collect(Collectors.groupingBy(MedicalInsRuleProject::getMedicalInsRuleInfoId));
|
|
|
- log.info("明细记录ID:{} 项目编码:{} 匹配到规则:{}", afterIncidentDetailLog.getId(), itemMap.get(Constant.MEDICAL_PROJECT_CODE_KEY), ruleAndProjectMap.keySet());
|
|
|
+ log.info("事后日志工单id:{} 明细记录ID:{} 项目编码:{} 匹配到规则:{}", afterIncidentDetailLog.getAfterIncidentLogId(), afterIncidentDetailLog.getId(), itemMap.get(Constant.MEDICAL_PROJECT_CODE_KEY), ruleAndProjectMap.keySet());
|
|
|
for (Integer medicalInsRuleInfoId : ruleAndProjectMap.keySet()) {
|
|
|
Object value = redisTemplate.opsForHash().get(Constant.FILTER_RULE_ID, afterwardsAudit.getId()+"_"+medicalInsRuleInfoId);
|
|
|
if(null != value){
|
|
|
- log.info("该事后工单已经有该诊断类数据:{} 对应明细id:{} 该规则跳过", afterwardsAudit.getId()+"_"+medicalInsRuleInfoId, value);
|
|
|
+ log.info("事后日志工单id:{} 该事后工单已经有该诊断类数据:{} 对应明细id:{} 该规则跳过", afterIncidentDetailLog.getAfterIncidentLogId(), afterwardsAudit.getId()+"_"+medicalInsRuleInfoId, value);
|
|
|
continue;
|
|
|
}
|
|
|
List<String> medicalInsCorrProjectCodeList = ruleAndProjectMap.get(medicalInsRuleInfoId).stream().map(MedicalInsRuleProject::getCorrelationProjectCode).collect(Collectors.toList());
|
|
|
@@ -869,7 +869,7 @@ public class RuleEngine {
|
|
|
MedicalInsRuleInfo medicalInsRuleInfo = allMedicalMap.get(medicalInsRuleInfoId);
|
|
|
boolean auditFlag = runAfterEngine(itemMap, medicalInsRuleInfoId, afterwardsAudit, itemList);
|
|
|
if (Constant.VALIDATION_HANDER_METHOD_RETURN.equals(medicalInsRuleInfo.getViolationHandingMethod()) && auditFlag) {
|
|
|
- log.error("事后提醒数据:{} 规则名:{} 触发诊断类规则,直接全金额,后续规则无需再跑", itemMap, medicalInsRuleInfo);
|
|
|
+ log.error("事后日志工单id:{} 事后提醒数据:{} 规则名:{} 触发诊断类规则,直接全金额,后续规则无需再跑", afterIncidentDetailLog.getAfterIncidentLogId(), itemMap, medicalInsRuleInfo);
|
|
|
String description = "触发诊断类规则,直接全金额,后续规则无需再跑,规则ID:" + medicalInsRuleInfo.getId();
|
|
|
itemMap.put(Constant.SPEL_LOG, description);
|
|
|
break;
|