Sfoglia il codice sorgente

事中提醒改造

0027005599 2 anni fa
parent
commit
15b13bf415

+ 3 - 1
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/Constant.java

@@ -45,7 +45,7 @@ public class Constant {
     public static final String OR = "||";
 
     public static final Integer WARING_EVENT_ATTR_ID = -1;
-    //
+    //医院项目编码
     public static final String PROJECT_CODE_KEY = "project_code";
     public static final String PROJECT_NAME_KEY = "project_name";
     //医保编码的key
@@ -66,6 +66,8 @@ public class Constant {
     //医保中心编码和名称的映射关系
     public static final String MEDICAL_CODE_NAME_KEY = "MEDICAL_CODE_NAME_KEY";
     public static final String PROJECT_TYPE_KEY = "project_type";
+    //金额
+    public static final String AMOUNT_KEY = "amount";
 //    public static final String PROJECT_CODE_KEY = "project_code";
 
 }

+ 34 - 30
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/ruleengine/FactorEnchangeFactory.java

@@ -77,7 +77,7 @@ public class FactorEnchangeFactory {
     }
 
 
-    public boolean runFactorEnchange(Integer medicalInfoRuleInfoId, MedicalInsRuleInfo medicalInsRuleInfo, MidIncidentAudit midIncidentAudit, Map<String, Object> localMap, List<RuleFactorRela> ruleFactorRelaList, List<FactorEnchance> factorEnchanceList) {
+    public boolean runFactorEnchange(Integer medicalInfoRuleInfoId, MedicalInsRuleInfo medicalInsRuleInfo, Object audit, Map<String, Object> localMap, List<RuleFactorRela> ruleFactorRelaList, List<FactorEnchance> factorEnchanceList) {
         Map<Integer, FactorEnchance> factorEnchanceMap = factorEnchanceList.stream().collect(Collectors.toMap(FactorEnchance::getId, v -> v, (v1, v2) -> v1));
         boolean result = true;
         for (RuleFactorRela ruleFactorRela : ruleFactorRelaList) {
@@ -112,7 +112,7 @@ public class FactorEnchangeFactory {
                     result = setLogicalExpressionResultByFactorEnchance(localMap, factorEnchance);
                     if (Constant.WARING_EVENT_ATTR_ID == factorEnchance.getEventAttrId()) {
                         if (result) {
-                            insertMidWarningDetail(localMap, medicalInsRuleInfo, midIncidentAudit);
+                            insertMidWarningDetail(localMap, medicalInsRuleInfo, audit);
                         }
                     } else {
                         localMap.put(getParamName(factorEnchance.getEventAttrId()), result);
@@ -146,34 +146,38 @@ public class FactorEnchangeFactory {
         return ioTypeMap;
     }
 
-    public void insertMidWarningDetail(Map<String, Object> itemMap, MedicalInsRuleInfo medicalInsRuleInfo, MidIncidentAudit midIncidentAudit) {
-        MidIncidentWarningVO midIncidentWarningVO = RuleEngine.midIncidentWarningVOThreadLocal.get();
-        MidIncidentAuditDetail midIncidentAuditDetail = new MidIncidentAuditDetail();
-        midIncidentAuditDetail.setMedicalDeptCode(midIncidentWarningVO.getMedical_dept_code());
-        midIncidentAuditDetail.setMedicalDeptName(midIncidentWarningVO.getMedical_dept_name());
-        Date date = new Date(System.currentTimeMillis());
-        midIncidentAuditDetail.setCreateTime(date);
-        midIncidentAuditDetail.setDoctorName(midIncidentWarningVO.getDoctor_name());
-        midIncidentAuditDetail.setDoctorId(midIncidentWarningVO.getDoctor_code());
-        midIncidentAuditDetail.setPatientId(midIncidentWarningVO.getPatient_id());
-        midIncidentAuditDetail.setPatientName(midIncidentWarningVO.getPatient_name());
-        midIncidentAuditDetail.setTreatmentType(medicalInsRuleInfo.getTreatmentType());
-        midIncidentAuditDetail.setNoticeType("事中预警");
-        midIncidentAuditDetail.setMedicalInsRuleInfoCode(medicalInsRuleInfo.getRuleCode());
-        midIncidentAuditDetail.setMedicalInsRuleInfoId(medicalInsRuleInfo.getId());
-        midIncidentAuditDetail.setMedicalInsRuleInfoName(medicalInsRuleInfo.getRuleName());
-        midIncidentAuditDetail.setDescription(medicalInsRuleInfo.getDescription());
-        midIncidentAuditDetail.setProejctCode(itemMap.get(Constant.PROJECT_CODE_KEY).toString());
-        midIncidentAuditDetail.setProejctName(itemMap.get(Constant.PROJECT_NAME_KEY).toString());
-        midIncidentAuditDetail.setMedicalProjectCode(itemMap.get(Constant.MEDICAL_PROJECT_CODE_KEY).toString());
-        midIncidentAuditDetail.setMedicalProjectName(itemMap.get(Constant.MEDICAL_PROJECT_NAME_KEY).toString());
-        midIncidentAuditDetail.setOutpatientNumber(midIncidentAudit.getOutpatientNumber());
-        midIncidentAuditDetail.setPrescriptionNumber(midIncidentAudit.getPrescriptionNumber());
-        midIncidentAuditDetail.setProjectType(itemMap.getOrDefault(Constant.PROJECT_TYPE_KEY, "default").toString());
-        midIncidentAuditDetail.setViolationLevel(medicalInsRuleInfo.getViolationLevel());
-        midIncidentAuditDetail.setTreatmentType(medicalInsRuleInfo.getTreatmentType());
-        midIncidentAuditDetail.setMidIncidentAuditId(midIncidentAudit.getId());
-        midIncidentAuditDetailService.save(midIncidentAuditDetail);
+    public void insertMidWarningDetail(Map<String, Object> itemMap, MedicalInsRuleInfo medicalInsRuleInfo, Object audit) {
+        if(audit instanceof MidIncidentAudit) {
+            MidIncidentAudit midIncidentAudit = (MidIncidentAudit) audit;
+            MidIncidentWarningVO midIncidentWarningVO = RuleEngine.midIncidentWarningVOThreadLocal.get();
+            MidIncidentAuditDetail midIncidentAuditDetail = new MidIncidentAuditDetail();
+            midIncidentAuditDetail.setMedicalDeptCode(midIncidentWarningVO.getMedical_dept_code());
+            midIncidentAuditDetail.setMedicalDeptName(midIncidentWarningVO.getMedical_dept_name());
+            Date date = new Date(System.currentTimeMillis());
+            midIncidentAuditDetail.setCreateTime(date);
+            midIncidentAuditDetail.setDoctorName(midIncidentWarningVO.getDoctor_name());
+            midIncidentAuditDetail.setDoctorId(midIncidentWarningVO.getDoctor_code());
+            midIncidentAuditDetail.setPatientId(midIncidentWarningVO.getPatient_id());
+            midIncidentAuditDetail.setPatientName(midIncidentWarningVO.getPatient_name());
+            midIncidentAuditDetail.setTreatmentType(medicalInsRuleInfo.getTreatmentType());
+            midIncidentAuditDetail.setNoticeType("事中预警");
+            midIncidentAuditDetail.setMedicalInsRuleInfoCode(medicalInsRuleInfo.getRuleCode());
+            midIncidentAuditDetail.setMedicalInsRuleInfoId(medicalInsRuleInfo.getId());
+            midIncidentAuditDetail.setMedicalInsRuleInfoName(medicalInsRuleInfo.getRuleName());
+            midIncidentAuditDetail.setDescription(medicalInsRuleInfo.getDescription());
+            midIncidentAuditDetail.setProejctCode(itemMap.get(Constant.PROJECT_CODE_KEY).toString());
+            midIncidentAuditDetail.setProejctName(itemMap.get(Constant.PROJECT_NAME_KEY).toString());
+            midIncidentAuditDetail.setMedicalProjectCode(itemMap.get(Constant.MEDICAL_PROJECT_CODE_KEY).toString());
+            midIncidentAuditDetail.setMedicalProjectName(itemMap.get(Constant.MEDICAL_PROJECT_NAME_KEY).toString());
+            midIncidentAuditDetail.setOutpatientNumber(midIncidentAudit.getOutpatientNumber());
+            midIncidentAuditDetail.setPrescriptionNumber(midIncidentAudit.getPrescriptionNumber());
+            midIncidentAuditDetail.setProjectType(itemMap.getOrDefault(Constant.PROJECT_TYPE_KEY, "default").toString());
+            midIncidentAuditDetail.setViolationLevel(medicalInsRuleInfo.getViolationLevel());
+            midIncidentAuditDetail.setTreatmentType(medicalInsRuleInfo.getTreatmentType());
+            midIncidentAuditDetail.setMidIncidentAuditId(midIncidentAudit.getId());
+            midIncidentAuditDetail.setAmount((Double) itemMap.get(Constant.AMOUNT_KEY));
+            midIncidentAuditDetailService.save(midIncidentAuditDetail);
+        }
     }
 
 

+ 3 - 3
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/ruleengine/RuleEngine.java

@@ -219,7 +219,7 @@ public class RuleEngine {
                         medicalInsRuleInfoIdList.addAll(diagnoseMedicalInsRuleInfoIdList);
                     }
                 }
-                runEngine(auditDetailSet, itemMap, medicalInsRuleInfoIdList, midIncidentAudit, ipStr);
+                runMidEngine(auditDetailSet, itemMap, medicalInsRuleInfoIdList, midIncidentAudit, ipStr);
             }
         } finally {
             midIncidentWarningVOThreadLocal.remove();
@@ -381,11 +381,11 @@ public class RuleEngine {
 
 
     /**
-     * 跑批规则引擎
+     * 事中跑批规则引擎
      *
      * @param paramMap
      */
-    public void runEngine(Set<String> auditDetailSet, Map<String, Object> paramMap, Set<Integer> medicalInsRuleInfoIdList, MidIncidentAudit midIncidentAudit, String ipStr) {
+    public void runMidEngine(Set<String> auditDetailSet, Map<String, Object> paramMap, Set<Integer> medicalInsRuleInfoIdList, MidIncidentAudit midIncidentAudit, String ipStr) {
         if (CollectionUtil.isEmpty(medicalInsRuleInfoIdList)) {
             log.error("未有对应的规则,接口数据:{}", paramMap);
             return;