|
|
@@ -225,6 +225,7 @@ public class RuleEngine {
|
|
|
insertLog(midIncidentWarningVO);
|
|
|
midIncidentAudit.setInterfName(intefName);
|
|
|
Set<String> auditDetailSet = new HashSet<>();
|
|
|
+ boolean sendFlag = false;
|
|
|
for (Map<String, Object> itemMap : itemList) {
|
|
|
Set<Integer> medicalInsRuleInfoIdList = itemCodeAndRuleIdMap.get(itemMap.get(Constant.MEDICAL_PROJECT_CODE_KEY));
|
|
|
if (CollectionUtil.isEmpty(medicalInsRuleInfoIdList)) {
|
|
|
@@ -242,9 +243,13 @@ public class RuleEngine {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- runMidEngine(auditDetailSet, itemMap, medicalInsRuleInfoIdList, midIncidentAudit, itemList);
|
|
|
+ sendFlag = runMidEngine(auditDetailSet, itemMap, medicalInsRuleInfoIdList, midIncidentAudit, itemList);
|
|
|
+ }
|
|
|
+ if(sendFlag) {
|
|
|
+ webSocket.pushMessage(ipStr, JSON.toJSONString(midIncidentAudit));
|
|
|
+ }else{
|
|
|
+ log.error("无违规,事中审核无需提醒 门诊/住院号:{}", midIncidentWarningVO.getVisit_no());
|
|
|
}
|
|
|
- webSocket.pushMessage(ipStr, JSON.toJSONString(midIncidentAudit));
|
|
|
} catch (Exception e) {
|
|
|
log.error(e.getMessage(), e);
|
|
|
} finally {
|
|
|
@@ -517,10 +522,10 @@ public class RuleEngine {
|
|
|
*
|
|
|
* @param paramMap
|
|
|
*/
|
|
|
- public void runMidEngine(Set<String> auditDetailSet, Map<String, Object> paramMap, Set<Integer> medicalInsRuleInfoIdList, MidIncidentAudit midIncidentAudit, List<Map<String,Object>> itemList) {
|
|
|
+ public boolean runMidEngine(Set<String> auditDetailSet, Map<String, Object> paramMap, Set<Integer> medicalInsRuleInfoIdList, MidIncidentAudit midIncidentAudit, List<Map<String,Object>> itemList) {
|
|
|
if (CollectionUtil.isEmpty(medicalInsRuleInfoIdList)) {
|
|
|
log.error("未有对应的规则,接口数据:{}", paramMap);
|
|
|
- return;
|
|
|
+ return false;
|
|
|
}
|
|
|
LambdaQueryWrapper<RuleFactorRela> query = new LambdaQueryWrapper<RuleFactorRela>();
|
|
|
query.eq(RuleFactorRela::getDelFlag, CommonConstant.DEL_FLAG_0);
|
|
|
@@ -550,11 +555,11 @@ public class RuleEngine {
|
|
|
boolean auditFlag = factorEnchangeFactory.runFactorEnchange(medicalRuleInsInfoId, medicalInsRuleInfo, midIncidentAudit, paramMap, ruleFactorRelaSortList, factorEnchanceListTemp, itemList);
|
|
|
if (Constant.VALIDATION_HANDER_METHOD_RETURN.equals(medicalInsRuleInfo.getViolationHandingMethod()) && auditFlag) {
|
|
|
log.error("事中提醒数据:{} 规则名:{} 触发诊断类规则,直接全金额,后续规则无需再跑", paramMap, medicalInsRuleInfo);
|
|
|
- return;
|
|
|
+ return auditFlag;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
+ return false;
|
|
|
}
|
|
|
|
|
|
|