|
|
@@ -11,6 +11,9 @@ import org.jeecg.common.util.dynamic.db.DynamicDBUtil;
|
|
|
import org.jeecg.modules.medical.ColumnTypeEnum;
|
|
|
import org.jeecg.modules.medical.Constant;
|
|
|
import org.jeecg.modules.medical.EnchanceTypeEnum;
|
|
|
+import org.jeecg.modules.medical.entity.AfterIncidentLog;
|
|
|
+import org.jeecg.modules.medical.entity.AfterwardsAudit;
|
|
|
+import org.jeecg.modules.medical.entity.AfterwardsAuditDetail;
|
|
|
import org.jeecg.modules.medical.entity.EventAttr;
|
|
|
import org.jeecg.modules.medical.entity.FactorAttrRela;
|
|
|
import org.jeecg.modules.medical.entity.FactorCondRela;
|
|
|
@@ -21,6 +24,8 @@ import org.jeecg.modules.medical.entity.MidIncidentAuditDetail;
|
|
|
import org.jeecg.modules.medical.entity.MidIncidentWarningVO;
|
|
|
import org.jeecg.modules.medical.entity.RuleFactorRela;
|
|
|
import org.jeecg.modules.medical.ruleengine.dict.DictUtil;
|
|
|
+import org.jeecg.modules.medical.service.IAfterwardsAuditDetailService;
|
|
|
+import org.jeecg.modules.medical.service.IAfterwardsAuditService;
|
|
|
import org.jeecg.modules.medical.service.IEventAttrService;
|
|
|
import org.jeecg.modules.medical.service.IFactorAttrRelaService;
|
|
|
import org.jeecg.modules.medical.service.IFactorCondRelaService;
|
|
|
@@ -32,6 +37,7 @@ import org.springframework.jdbc.support.rowset.SqlRowSet;
|
|
|
import org.springframework.stereotype.Component;
|
|
|
|
|
|
import javax.annotation.PostConstruct;
|
|
|
+import java.math.BigDecimal;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.Date;
|
|
|
import java.util.HashMap;
|
|
|
@@ -63,6 +69,10 @@ public class FactorEnchangeFactory {
|
|
|
IMidIncidentAuditService midIncidentAuditService;
|
|
|
@Autowired
|
|
|
IMidIncidentAuditDetailService midIncidentAuditDetailService;
|
|
|
+ @Autowired
|
|
|
+ IAfterwardsAuditService afterwardsAuditService;
|
|
|
+ @Autowired
|
|
|
+ IAfterwardsAuditDetailService afterwardsAuditDetailService;
|
|
|
|
|
|
public static Map<Integer, EventAttr> enchanceAttrMap = new HashMap<>();
|
|
|
|
|
|
@@ -112,7 +122,7 @@ public class FactorEnchangeFactory {
|
|
|
result = setLogicalExpressionResultByFactorEnchance(localMap, factorEnchance);
|
|
|
if (Constant.WARING_EVENT_ATTR_ID == factorEnchance.getEventAttrId()) {
|
|
|
if (result) {
|
|
|
- insertMidWarningDetail(localMap, medicalInsRuleInfo, audit);
|
|
|
+ insertWarningDetail(localMap, medicalInsRuleInfo, audit);
|
|
|
}
|
|
|
} else {
|
|
|
localMap.put(getParamName(factorEnchance.getEventAttrId()), result);
|
|
|
@@ -146,45 +156,93 @@ public class FactorEnchangeFactory {
|
|
|
return ioTypeMap;
|
|
|
}
|
|
|
|
|
|
- public void insertMidWarningDetail(Map<String, Object> itemMap, MedicalInsRuleInfo medicalInsRuleInfo, Object audit) {
|
|
|
+ public void insertWarningDetail(Map<String, Object> itemMap, MedicalInsRuleInfo medicalInsRuleInfo, Object audit){
|
|
|
if(audit instanceof MidIncidentAudit) {
|
|
|
MidIncidentAudit midIncidentAudit = (MidIncidentAudit) audit;
|
|
|
- Double amount = (Double) itemMap.get(Constant.AMOUNT_KEY);
|
|
|
- if(Constant.VALIDATION_HANDER_METHOD_RETURN.equals(medicalInsRuleInfo.getViolationHandingMethod())) {
|
|
|
- midIncidentAuditService.lambdaUpdate().set(MidIncidentAudit::getAmount, midIncidentAudit.getAmount()).eq(MidIncidentAudit::getId, midIncidentAudit.getId()).update();
|
|
|
- }else {
|
|
|
- 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(amount);
|
|
|
- midIncidentAuditService.lambdaUpdate().setSql("amount +"+amount).eq(MidIncidentAudit::getId, midIncidentAudit.getId()).update();
|
|
|
- midIncidentAuditDetailService.save(midIncidentAuditDetail);
|
|
|
- }
|
|
|
+ insertMidWarningDetail(itemMap, medicalInsRuleInfo, midIncidentAudit);
|
|
|
+ }else{
|
|
|
+ AfterwardsAudit afterwardsAudit = (AfterwardsAudit) audit;
|
|
|
+ insertAfterWarningDetail(itemMap, medicalInsRuleInfo, afterwardsAudit);
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
+ public void insertAfterWarningDetail(Map<String, Object> itemMap, MedicalInsRuleInfo medicalInsRuleInfo, AfterwardsAudit afterwardsAudit) {
|
|
|
+ Double amount = (Double) itemMap.get(Constant.AMOUNT_KEY);
|
|
|
+ if(Constant.VALIDATION_HANDER_METHOD_RETURN.equals(medicalInsRuleInfo.getViolationHandingMethod())) {
|
|
|
+ afterwardsAuditService.lambdaUpdate().set(AfterwardsAudit::getAmount, afterwardsAudit.getAmount()).eq(AfterwardsAudit::getId, afterwardsAudit.getId()).update();
|
|
|
+ }else {
|
|
|
+// MidIncidentWarningVO midIncidentWarningVO = RuleEngine.midIncidentWarningVOThreadLocal.get();
|
|
|
+ AfterwardsAuditDetail afterwardsAuditDetail = new AfterwardsAuditDetail();
|
|
|
+ afterwardsAuditDetail.setMedicalDeptCode(afterwardsAudit.getMedicalDeptCode());
|
|
|
+ afterwardsAuditDetail.setMedicalDeptName(afterwardsAudit.getMedicalDeptName());
|
|
|
+ Date date = new Date(System.currentTimeMillis());
|
|
|
+ afterwardsAuditDetail.setCreateTime(date);
|
|
|
+ afterwardsAuditDetail.setDoctorName(afterwardsAudit.getDoctorName());
|
|
|
+ afterwardsAuditDetail.setDoctorId(afterwardsAudit.getDoctorId());
|
|
|
+ afterwardsAuditDetail.setPatientId(afterwardsAudit.getPatientId());
|
|
|
+ afterwardsAuditDetail.setPatientName(afterwardsAudit.getPatientName());
|
|
|
+ afterwardsAuditDetail.setTreatmentType(medicalInsRuleInfo.getTreatmentType());
|
|
|
+ afterwardsAuditDetail.setNoticeType("事后预警");
|
|
|
+ afterwardsAuditDetail.setMedicalInsRuleInfoCode(medicalInsRuleInfo.getRuleCode());
|
|
|
+ afterwardsAuditDetail.setMedicalInsRuleInfoId(medicalInsRuleInfo.getId());
|
|
|
+ afterwardsAuditDetail.setMedicalInsRuleInfoName(medicalInsRuleInfo.getRuleName());
|
|
|
+ afterwardsAuditDetail.setDescription(medicalInsRuleInfo.getDescription());
|
|
|
+ afterwardsAuditDetail.setProejctCode(itemMap.get(Constant.PROJECT_CODE_KEY).toString());
|
|
|
+ afterwardsAuditDetail.setProejctName(itemMap.get(Constant.PROJECT_NAME_KEY).toString());
|
|
|
+ afterwardsAuditDetail.setMedicalProjectCode(itemMap.get(Constant.MEDICAL_PROJECT_CODE_KEY).toString());
|
|
|
+ afterwardsAuditDetail.setMedicalProjectName(itemMap.get(Constant.MEDICAL_PROJECT_NAME_KEY).toString());
|
|
|
+ afterwardsAuditDetail.setOutpatientNumber(afterwardsAudit.getOutpatientNumber());
|
|
|
+ afterwardsAuditDetail.setPrescriptionNumber(afterwardsAudit.getPrescriptionNumber());
|
|
|
+ afterwardsAuditDetail.setProjectType(itemMap.getOrDefault(Constant.PROJECT_TYPE_KEY, "default").toString());
|
|
|
+ afterwardsAuditDetail.setViolationLevel(medicalInsRuleInfo.getViolationLevel());
|
|
|
+ afterwardsAuditDetail.setTreatmentType(medicalInsRuleInfo.getTreatmentType());
|
|
|
+ afterwardsAuditDetail.setAfterwardsAuditId(afterwardsAudit.getId());
|
|
|
+ afterwardsAuditDetail.setAmount(new BigDecimal(amount));
|
|
|
+ afterwardsAuditService.lambdaUpdate().setSql("amount +"+amount).eq(AfterwardsAudit::getId, afterwardsAudit.getId()).update();
|
|
|
+ afterwardsAuditDetailService.save(afterwardsAuditDetail);
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ public void insertMidWarningDetail(Map<String, Object> itemMap, MedicalInsRuleInfo medicalInsRuleInfo, MidIncidentAudit midIncidentAudit) {
|
|
|
+
|
|
|
+ Double amount = (Double) itemMap.get(Constant.AMOUNT_KEY);
|
|
|
+ if(Constant.VALIDATION_HANDER_METHOD_RETURN.equals(medicalInsRuleInfo.getViolationHandingMethod())) {
|
|
|
+ midIncidentAuditService.lambdaUpdate().set(MidIncidentAudit::getAmount, midIncidentAudit.getAmount()).eq(MidIncidentAudit::getId, midIncidentAudit.getId()).update();
|
|
|
+ }else {
|
|
|
+ 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(amount);
|
|
|
+ midIncidentAuditService.lambdaUpdate().setSql("amount +"+amount).eq(MidIncidentAudit::getId, midIncidentAudit.getId()).update();
|
|
|
+ midIncidentAuditDetailService.save(midIncidentAuditDetail);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
}
|
|
|
|
|
|
|