|
|
@@ -6,6 +6,7 @@ import lombok.extern.slf4j.Slf4j;
|
|
|
import org.apache.commons.lang.StringUtils;
|
|
|
import org.jeecg.common.system.vo.DictModel;
|
|
|
import org.jeecg.modules.medical.Constant;
|
|
|
+import org.jeecg.modules.medical.common.CommonUtil;
|
|
|
import org.jeecg.modules.medical.entity.AdviceDetailsVO;
|
|
|
import org.jeecg.modules.medical.entity.AfterIncidentDetailLog;
|
|
|
import org.jeecg.modules.medical.entity.DiagnosesVO;
|
|
|
@@ -16,7 +17,6 @@ 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.IOperativeItemsService;
|
|
|
-import org.jeecg.modules.medical.service.IOperativeService;
|
|
|
import org.jeecg.modules.medical.service.ITreatmentItemsService;
|
|
|
import org.jeecg.modules.system.service.ISysDictService;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
@@ -53,9 +53,9 @@ public class DictUtil {
|
|
|
@Autowired
|
|
|
private ISysDictService sysDictService;
|
|
|
|
|
|
- public void genHospItemsAndSendNotice(AdviceDetailsVO adviceDetailsVO, DiagnosesVO diagnose){
|
|
|
- if(null != adviceDetailsVO){
|
|
|
- switch (adviceDetailsVO.getProject_type()){
|
|
|
+ public void genHospItemsAndSendNotice(AdviceDetailsVO adviceDetailsVO, DiagnosesVO diagnose) {
|
|
|
+ if (null != adviceDetailsVO) {
|
|
|
+ switch (adviceDetailsVO.getProject_type()) {
|
|
|
case Constant.PROJECT_TYPE_MEDICINE:
|
|
|
medicalInsuranceDrugsService.saveMedicalIns(adviceDetailsVO);
|
|
|
break;
|
|
|
@@ -74,13 +74,12 @@ public class DictUtil {
|
|
|
}
|
|
|
|
|
|
}
|
|
|
- if(null != diagnose){
|
|
|
+ if (null != diagnose) {
|
|
|
diagnoseItemsService.saveHisDiagnose(diagnose);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
-
|
|
|
/**
|
|
|
* 字典页面配置逻辑
|
|
|
* 当要转换的接口属性路径配置没有.号,则直接把转换参数属性设置到ext_attr2字段上,
|
|
|
@@ -158,7 +157,7 @@ public class DictUtil {
|
|
|
diagnose.setMedical_diagnose_code(value.toString());
|
|
|
diagnose.setMedical_diagnose_name(diagnose.getDiagnose_desc());
|
|
|
|
|
|
- }else {
|
|
|
+ } else {
|
|
|
diagnose.setMedical_diagnose_code(value.toString());
|
|
|
// itemMap.put(Constant.MEDICAL_DIAGNOSE_CODE_KEY, value);
|
|
|
Object name = redisTemplate.opsForHash().get(Constant.MEDICAL_CODE_NAME_KEY, value.toString());
|
|
|
@@ -184,7 +183,7 @@ public class DictUtil {
|
|
|
value = adviceDetailsVO.getProject_code();
|
|
|
adviceDetailsVO.setMedical_project_code(value.toString());
|
|
|
adviceDetailsVO.setMedical_project_name(adviceDetailsVO.getProject_name());
|
|
|
- }else {
|
|
|
+ } else {
|
|
|
adviceDetailsVO.setMedical_project_code(value.toString());
|
|
|
// itemMap.put(Constant.MEDICAL_DIAGNOSE_CODE_KEY, value);
|
|
|
Object name = redisTemplate.opsForHash().get(Constant.MEDICAL_CODE_NAME_KEY, value.toString());
|
|
|
@@ -196,7 +195,7 @@ public class DictUtil {
|
|
|
medicalProjectCodeList.add(adviceDetailsVO.getMedical_project_name());
|
|
|
}
|
|
|
}
|
|
|
- if(null == midIncidentWarningVO.getTotoal_amount() || midIncidentWarningVO.getTotoal_amount()<=0){
|
|
|
+ if (null == midIncidentWarningVO.getTotoal_amount() || midIncidentWarningVO.getTotoal_amount() <= 0) {
|
|
|
midIncidentWarningVO.setTotoal_amount(totalAmount);
|
|
|
}
|
|
|
midIncidentWarningVO.setProjectCodeList(projectCodeList);
|
|
|
@@ -204,17 +203,17 @@ public class DictUtil {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- public String getMedicalDiagnoseCode(String diagnoseCode){
|
|
|
+ public String getMedicalDiagnoseCode(String diagnoseCode) {
|
|
|
Object value = redisTemplate.opsForHash().get(Constant.HIS_MEDICAL_DICT_KEY, diagnoseCode);
|
|
|
- if(value == null){
|
|
|
+ if (value == null) {
|
|
|
return diagnoseCode;
|
|
|
}
|
|
|
return value.toString();
|
|
|
}
|
|
|
|
|
|
- public String getMedicalDiagnoseName(String medicalDiagnoseCode){
|
|
|
+ public String getMedicalDiagnoseName(String medicalDiagnoseCode) {
|
|
|
Object value = redisTemplate.opsForHash().get(Constant.MEDICAL_CODE_NAME_KEY, medicalDiagnoseCode);
|
|
|
- if(value == null){
|
|
|
+ if (value == null) {
|
|
|
return null;
|
|
|
}
|
|
|
return value.toString();
|
|
|
@@ -236,83 +235,95 @@ public class DictUtil {
|
|
|
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())
|
|
|
-// afterIncidentDetailLog.setMedical_diagnose_code(value.toString());
|
|
|
-// afterIncidentDetailLog.setMedical_diagnose_name(afterIncidentDetailLog.getDiagnose_desc());
|
|
|
- } else {
|
|
|
- medicalDiagnoseCodeStr.append(value).append(Constant.SPLIT_STR);
|
|
|
- medicalDiagnoseCodeList.add(value.toString());
|
|
|
+ if (StringUtils.isEmpty(afterIncidentDetailLog.getMedical_diagnose_code_str())) {
|
|
|
+ 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);
|
|
|
+ } else {
|
|
|
+
|
|
|
+ medicalDiagnoseCodeStr.append(value).append(Constant.SPLIT_STR);
|
|
|
+ medicalDiagnoseCodeList.add(value.toString());
|
|
|
+ Object name = redisTemplate.opsForHash().get(Constant.MEDICAL_CODE_NAME_KEY, value.toString());
|
|
|
+ if (null != name) {
|
|
|
+ medicalDiagnoseNameStr.append(name).append(Constant.SPLIT_STR);
|
|
|
+ medicalDiagnoseNameList.add(name.toString());
|
|
|
+ }
|
|
|
|
|
|
-// medicalDiagnoseNameStr.append(afterIncidentDetailLog.getDiagnose_desc())
|
|
|
-// afterIncidentDetailLog.setMedical_diagnose_code(value.toString());
|
|
|
-// itemMap.put(Constant.MEDICAL_DIAGNOSE_CODE_KEY, value);
|
|
|
- Object name = redisTemplate.opsForHash().get(Constant.MEDICAL_CODE_NAME_KEY, value.toString());
|
|
|
- if (null != name) {
|
|
|
- medicalDiagnoseNameStr.append(name).append(Constant.SPLIT_STR);
|
|
|
- medicalDiagnoseNameList.add(name.toString());
|
|
|
}
|
|
|
+ index++;
|
|
|
}
|
|
|
- index++;
|
|
|
+ afterIncidentDetailLog.setMedical_diagnose_code_str(medicalDiagnoseCodeStr.toString());
|
|
|
+ afterIncidentDetailLog.setMedical_diagnose_name_str(medicalDiagnoseNameStr.toString());
|
|
|
+ } else {
|
|
|
+ String[] medicalDiagnoseCodeArr = afterIncidentDetailLog.getMedical_diagnose_code_str().split(Constant.SPLIT_STR);
|
|
|
+ String[] medicalDiagnoseNameArr = afterIncidentDetailLog.getMedical_diagnose_name_str().split(Constant.SPLIT_STR);
|
|
|
+ medicalDiagnoseCodeList = Arrays.asList(medicalDiagnoseCodeArr);
|
|
|
+ medicalDiagnoseNameList = Arrays.asList(medicalDiagnoseNameArr);
|
|
|
}
|
|
|
- afterIncidentDetailLog.setMedical_diagnose_code_str(medicalDiagnoseCodeStr.toString());
|
|
|
- afterIncidentDetailLog.setMedical_diagnose_name_str(medicalDiagnoseNameStr.toString());
|
|
|
afterIncidentDetailLog.setMedical_diagnose_code(medicalDiagnoseCodeList);
|
|
|
afterIncidentDetailLog.setMedical_diagnose_name(medicalDiagnoseNameList);
|
|
|
- }
|
|
|
-
|
|
|
|
|
|
- Object value = redisTemplate.opsForHash().get(Constant.HIS_MEDICAL_DICT_KEY, afterIncidentDetailLog.getProject_code());
|
|
|
- if (value == null) {
|
|
|
- log.error("字段未配置该项目编码映射的医保记录,项目:{}", afterIncidentDetailLog);
|
|
|
- genHisProjectAndNotice(afterIncidentDetailLog);
|
|
|
- value = afterIncidentDetailLog.getProject_code();
|
|
|
- afterIncidentDetailLog.setMedical_project_code(value.toString());
|
|
|
- afterIncidentDetailLog.setMedical_project_name(afterIncidentDetailLog.getProject_name());
|
|
|
- }else {
|
|
|
- afterIncidentDetailLog.setMedical_project_code(value.toString());
|
|
|
-// itemMap.put(Constant.MEDICAL_DIAGNOSE_CODE_KEY, value);
|
|
|
- Object name = redisTemplate.opsForHash().get(Constant.MEDICAL_CODE_NAME_KEY, value.toString());
|
|
|
- if (null != name) {
|
|
|
- afterIncidentDetailLog.setMedical_project_name(name.toString());
|
|
|
+ }
|
|
|
+ Object value = null;
|
|
|
+ if (StringUtils.isEmpty(afterIncidentDetailLog.getMedical_project_code())) {
|
|
|
+ if (StringUtils.isNotBlank(afterIncidentDetailLog.getProject_code())) {
|
|
|
+ value = redisTemplate.opsForHash().get(Constant.HIS_MEDICAL_DICT_KEY, afterIncidentDetailLog.getProject_code());
|
|
|
}
|
|
|
+ if (value == null) {
|
|
|
+ log.error("字段未配置该项目编码映射的医保记录,项目:{}", afterIncidentDetailLog);
|
|
|
+ genHisProjectAndNotice(afterIncidentDetailLog);
|
|
|
+ value = afterIncidentDetailLog.getProject_code();
|
|
|
+ afterIncidentDetailLog.setMedical_project_code(value.toString());
|
|
|
+ afterIncidentDetailLog.setMedical_project_name(afterIncidentDetailLog.getProject_name());
|
|
|
+ } else {
|
|
|
+ afterIncidentDetailLog.setMedical_project_code(value.toString());
|
|
|
+ Object name = redisTemplate.opsForHash().get(Constant.MEDICAL_CODE_NAME_KEY, value.toString());
|
|
|
+ if (null != name) {
|
|
|
+ afterIncidentDetailLog.setMedical_project_name(name.toString());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
- public void genHisProjectAndNotice(AfterIncidentDetailLog afterIncidentDetailLog){
|
|
|
+ public void genHisProjectAndNotice(AfterIncidentDetailLog afterIncidentDetailLog) {
|
|
|
String exCategory = afterIncidentDetailLog.getExpense_category();
|
|
|
- if(StringUtils.isNotBlank(exCategory)){
|
|
|
- List<DictModel> dictModelList = sysDictService.queryDictItemsByCode(Constant.CATEGORY_PROJECTTYPE_KEY);
|
|
|
- Map<String,String> exCateGoryAndProjectTypeMap = dictModelList.stream().collect(Collectors.toMap(DictModel::getValue, DictModel::getText));
|
|
|
- String projectType = exCateGoryAndProjectTypeMap.getOrDefault(exCategory, Constant.PROJECT_TYPE_DIAGNOSIS_TREATMENT);
|
|
|
- AdviceDetailsVO adviceDetailsVO = new AdviceDetailsVO();
|
|
|
- adviceDetailsVO.setProject_code(afterIncidentDetailLog.getProject_code());
|
|
|
- adviceDetailsVO.setProject_name(afterIncidentDetailLog.getProject_name());
|
|
|
- adviceDetailsVO.setProject_type(projectType);
|
|
|
- if(null != afterIncidentDetailLog.getPrice()) {
|
|
|
- adviceDetailsVO.setPrice(afterIncidentDetailLog.getPrice().doubleValue());
|
|
|
- }
|
|
|
- adviceDetailsVO.setExpense_category(afterIncidentDetailLog.getExpense_category());
|
|
|
- adviceDetailsVO.setDose_day(afterIncidentDetailLog.getDose_day());
|
|
|
- adviceDetailsVO.setDose_form(afterIncidentDetailLog.getDose_form());
|
|
|
+ String projectType = null;
|
|
|
+// if (StringUtils.isNotBlank(exCategory)) {
|
|
|
+// List<DictModel> dictModelList = sysDictService.queryDictItemsByCode(Constant.CATEGORY_PROJECTTYPE_KEY);
|
|
|
+// Map<String, String> exCateGoryAndProjectTypeMap = dictModelList.stream().collect(Collectors.toMap(DictModel::getValue, DictModel::getText));
|
|
|
+// projectType = exCateGoryAndProjectTypeMap.getOrDefault(exCategory, Constant.PROJECT_TYPE_DIAGNOSIS_TREATMENT);
|
|
|
+// }else{
|
|
|
+ projectType = CommonUtil.getProjectType(afterIncidentDetailLog.getMedical_project_code());
|
|
|
+// }
|
|
|
|
|
|
- adviceDetailsVO.setSingle_dose_number(afterIncidentDetailLog.getSingle_dose_number());
|
|
|
- adviceDetailsVO.setSingle_dose_unit(afterIncidentDetailLog.getSingle_dose_unit());
|
|
|
- adviceDetailsVO.setTake_frequence(afterIncidentDetailLog.getTake_frequence());
|
|
|
- adviceDetailsVO.setUse_day(afterIncidentDetailLog.getUse_day());
|
|
|
- genHospItemsAndSendNotice(adviceDetailsVO, null);
|
|
|
+ AdviceDetailsVO adviceDetailsVO = new AdviceDetailsVO();
|
|
|
+ adviceDetailsVO.setProject_code(afterIncidentDetailLog.getProject_code());
|
|
|
+ adviceDetailsVO.setProject_name(afterIncidentDetailLog.getProject_name());
|
|
|
+ adviceDetailsVO.setMedical_project_name(afterIncidentDetailLog.getMedical_project_name());
|
|
|
+ adviceDetailsVO.setMedical_project_code(afterIncidentDetailLog.getMedical_project_code());
|
|
|
+ adviceDetailsVO.setProject_type(projectType);
|
|
|
+ if (null != afterIncidentDetailLog.getPrice()) {
|
|
|
+ adviceDetailsVO.setPrice(afterIncidentDetailLog.getPrice().doubleValue());
|
|
|
}
|
|
|
+ adviceDetailsVO.setExpense_category(afterIncidentDetailLog.getExpense_category());
|
|
|
+ adviceDetailsVO.setDose_day(afterIncidentDetailLog.getDose_day());
|
|
|
+ adviceDetailsVO.setDose_form(afterIncidentDetailLog.getDose_form());
|
|
|
+
|
|
|
+ adviceDetailsVO.setSingle_dose_number(afterIncidentDetailLog.getSingle_dose_number());
|
|
|
+ adviceDetailsVO.setSingle_dose_unit(afterIncidentDetailLog.getSingle_dose_unit());
|
|
|
+ adviceDetailsVO.setTake_frequence(afterIncidentDetailLog.getTake_frequence());
|
|
|
+ adviceDetailsVO.setUse_day(afterIncidentDetailLog.getUse_day());
|
|
|
+ adviceDetailsVO.setRecipe_no(afterIncidentDetailLog.getRecipe_no());
|
|
|
|
|
|
+ genHospItemsAndSendNotice(adviceDetailsVO, null);
|
|
|
}
|
|
|
|
|
|
/**
|