|
|
@@ -9,7 +9,12 @@ import org.jeecg.modules.medical.entity.AfterIncidentDetailLog;
|
|
|
import org.jeecg.modules.medical.entity.DiagnosesVO;
|
|
|
import org.jeecg.modules.medical.entity.FactorEnchance;
|
|
|
import org.jeecg.modules.medical.entity.MidIncidentWarningVO;
|
|
|
+import org.jeecg.modules.medical.service.IDiagnoseItemsService;
|
|
|
+import org.jeecg.modules.medical.service.IMaterialItemsService;
|
|
|
+import org.jeecg.modules.medical.service.IMedicalInsuranceDrugsService;
|
|
|
import org.jeecg.modules.medical.service.IMedicineService;
|
|
|
+import org.jeecg.modules.medical.service.IOperativeService;
|
|
|
+import org.jeecg.modules.medical.service.ITreatmentItemsService;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.data.redis.core.RedisTemplate;
|
|
|
import org.springframework.stereotype.Component;
|
|
|
@@ -30,6 +35,42 @@ public class DictUtil {
|
|
|
private IMedicineService medicineService;
|
|
|
@Autowired
|
|
|
private RedisTemplate redisTemplate;
|
|
|
+ @Autowired
|
|
|
+ private IMedicalInsuranceDrugsService medicalInsuranceDrugsService;
|
|
|
+ @Autowired
|
|
|
+ private ITreatmentItemsService treatmentItemsService;
|
|
|
+ @Autowired
|
|
|
+ private IMaterialItemsService materialItemsService;
|
|
|
+ @Autowired
|
|
|
+ private IDiagnoseItemsService diagnoseItemsService;
|
|
|
+ @Autowired
|
|
|
+ private IOperativeService operativeService;
|
|
|
+
|
|
|
+ public void genHospItemsAndSendNotice(AdviceDetailsVO adviceDetailsVO, DiagnosesVO diagnose){
|
|
|
+ if(null != adviceDetailsVO){
|
|
|
+ switch (adviceDetailsVO.getProject_type()){
|
|
|
+ case Constant.PROJECT_TYPE_MEDICINE:
|
|
|
+ medicalInsuranceDrugsService.saveMedicalIns(adviceDetailsVO);
|
|
|
+ break;
|
|
|
+ case Constant.PROJECT_TYPE_CONSUMABLE_METERIAL:
|
|
|
+ treatmentItemsService.saveTreatmentItems(adviceDetailsVO);
|
|
|
+ break;
|
|
|
+ case Constant.PROJECT_TYPE_DIAGNOSIS_TREATMENT:
|
|
|
+ materialItemsService.saveMaterialItems(adviceDetailsVO);
|
|
|
+ break;
|
|
|
+ case Constant.PROJECT_TYPE_OPERATIVE:
|
|
|
+
|
|
|
+
|
|
|
+ break;
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ if(null != diagnose){
|
|
|
+ diagnoseItemsService.saveHisDiagnose(diagnose);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
|
|
|
/**
|
|
|
* 字典页面配置逻辑
|
|
|
@@ -103,9 +144,11 @@ public class DictUtil {
|
|
|
Object value = redisTemplate.opsForHash().get(Constant.HIS_MEDICAL_DICT_KEY, diagnose.getDiagnose_code());
|
|
|
if (value == null) {
|
|
|
log.error("字段未配置该诊断编码映射的医保记录,项目:{}", diagnose);
|
|
|
+ genHospItemsAndSendNotice(null, diagnose);
|
|
|
value = diagnose.getDiagnose_code();
|
|
|
diagnose.setMedical_diagnose_code(value.toString());
|
|
|
diagnose.setMedical_diagnose_name(diagnose.getDiagnose_desc());
|
|
|
+
|
|
|
}else {
|
|
|
diagnose.setMedical_diagnose_code(value.toString());
|
|
|
// itemMap.put(Constant.MEDICAL_DIAGNOSE_CODE_KEY, value);
|
|
|
@@ -127,6 +170,7 @@ public class DictUtil {
|
|
|
Object value = redisTemplate.opsForHash().get(Constant.HIS_MEDICAL_DICT_KEY, adviceDetailsVO.getProject_code());
|
|
|
if (value == null) {
|
|
|
log.error("字段未配置该项目编码映射的医保记录,项目:{}", adviceDetailsVO);
|
|
|
+ genHospItemsAndSendNotice(adviceDetailsVO, null);
|
|
|
value = adviceDetailsVO.getProject_code();
|
|
|
adviceDetailsVO.setMedical_project_code(value.toString());
|
|
|
adviceDetailsVO.setMedical_project_name(adviceDetailsVO.getProject_name());
|
|
|
@@ -172,14 +216,20 @@ public class DictUtil {
|
|
|
if (StringUtils.isNotBlank(afterIncidentDetailLog.getDiagnose_code_str())) {
|
|
|
|
|
|
String[] diagnoseCodeArr = afterIncidentDetailLog.getDiagnose_code_str().split(Constant.SPLIT_STR);
|
|
|
+ String[] diagnoseNameArr = afterIncidentDetailLog.getDiagnose_name_str().split(Constant.SPLIT_STR);
|
|
|
StringBuffer medicalDiagnoseNameStr = new StringBuffer();
|
|
|
StringBuffer medicalDiagnoseCodeStr = new StringBuffer();
|
|
|
List<String> medicalDiagnoseNameList = new ArrayList<>();
|
|
|
List<String> medicalDiagnoseCodeList = new ArrayList<>();
|
|
|
+ int index = 0;
|
|
|
for(String diagnose_code : diagnoseCodeArr) {
|
|
|
Object value = redisTemplate.opsForHash().get(Constant.HIS_MEDICAL_DICT_KEY, diagnose_code);
|
|
|
if (value == null) {
|
|
|
log.error("字段未配置该诊断编码映射的医保记录,项目:{}", afterIncidentDetailLog);
|
|
|
+ DiagnosesVO diagnosesVO = new DiagnosesVO();
|
|
|
+ diagnosesVO.setDiagnose_code(diagnose_code);
|
|
|
+ diagnosesVO.setDiagnose_desc(diagnoseNameArr[index]);
|
|
|
+ diagnoseItemsService.saveHisDiagnose(diagnosesVO);
|
|
|
// value = diagnose_code;
|
|
|
// medicalDiagnoseCodeStr.append(value).append(Constant.SPLIT_STR);
|
|
|
// medicalDiagnoseNameStr.append(afterIncidentDetailLog.getDiagnose_desc())
|
|
|
@@ -198,6 +248,7 @@ public class DictUtil {
|
|
|
medicalDiagnoseNameList.add(name.toString());
|
|
|
}
|
|
|
}
|
|
|
+ index++;
|
|
|
}
|
|
|
afterIncidentDetailLog.setMedical_diagnose_code_str(medicalDiagnoseCodeStr.toString());
|
|
|
afterIncidentDetailLog.setMedical_diagnose_name_str(medicalDiagnoseNameStr.toString());
|