Bladeren bron

诊断编码获取副诊断

0027005599 2 jaren geleden
bovenliggende
commit
8047dfdb8e

+ 76 - 5
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/job/AfterWaringLogJob.java

@@ -11,11 +11,13 @@ import org.jeecg.modules.medical.entity.AfterIncidentLog;
 import org.jeecg.modules.medical.entity.AfterwardsAudit;
 import org.jeecg.modules.medical.entity.HospitalizatioSettleDetail;
 import org.jeecg.modules.medical.entity.MasterAdmissionBill;
+import org.jeecg.modules.medical.entity.MedicalRecordHomepage;
 import org.jeecg.modules.medical.ruleengine.RuleEngine;
 import org.jeecg.modules.medical.service.IAfterIncidentDetailLogService;
 import org.jeecg.modules.medical.service.IAfterIncidentLogService;
 import org.jeecg.modules.medical.service.IHospitalizatioSettleDetailService;
 import org.jeecg.modules.medical.service.IMasterAdmissionBillService;
+import org.jeecg.modules.medical.service.IMedicalRecordHomepageService;
 import org.jeecg.modules.medical.service.IOutpatientSettleBillService;
 import org.jeecg.modules.system.entity.SysUser;
 import org.jeecg.modules.system.service.ISysUserService;
@@ -23,13 +25,16 @@ import org.quartz.Job;
 import org.quartz.JobExecutionContext;
 import org.quartz.JobExecutionException;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.scheduling.annotation.Async;
 
 import java.util.ArrayList;
 import java.util.HashMap;
+import java.util.HashSet;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
 
 /**
  * 事后监管任务生成-住院就诊类型
@@ -45,6 +50,8 @@ public class AfterWaringLogJob implements Job {
     @Autowired
     IMasterAdmissionBillService masterAdmissionBillService;
     @Autowired
+    IMedicalRecordHomepageService medicalRecordHomepageService;
+    @Autowired
     IHospitalizatioSettleDetailService hospitalizatioSettleDetailService;
     @Autowired
     IOutpatientSettleBillService outpatientSettleBillService;
@@ -52,6 +59,8 @@ public class AfterWaringLogJob implements Job {
     ISysUserService sysUserService;
     @Autowired
     BackDetailToHis backDetailToHis;
+    @Autowired
+    RedisTemplate redisTemplate;
 
     @Override
     public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
@@ -78,6 +87,7 @@ public class AfterWaringLogJob implements Job {
             doctorLevel = sysUserList.get(0).getDoctorLevel();
         }
         masterAdmissionBill.setDoctorLevel(doctorLevel);
+
         AfterIncidentLog afterIncidentLog = afterIncidentLogService.addAfterIncidentLog(masterAdmissionBill);
         List<HospitalizatioSettleDetail> hospitalizatioSettleDetails = hospitalizatioSettleDetailService.lambdaQuery().eq(HospitalizatioSettleDetail::getHisid, masterAdmissionBill.getHisid()).list();
         sumDetail(hospitalizatioSettleDetails);
@@ -88,8 +98,7 @@ public class AfterWaringLogJob implements Job {
             afterIncidentDetailLog = new AfterIncidentDetailLog();
 
             afterIncidentDetailLog.setAfterIncidentLogId(afterIncidentLog.getId());
-            afterIncidentDetailLog.setMedicalDiagnoseNameStr(masterAdmissionBill.getYbAdmissionDiseaseName());
-            afterIncidentDetailLog.setMedicalDiagnoseCodeStr(masterAdmissionBill.getYbAdmissionDiseaseId());
+
             afterIncidentDetailLog.setAmount(hospitalizatioSettleDetail.getCost());
 
             if (StringUtils.isNotBlank(hospitalizatioSettleDetail.getItemId())) {
@@ -120,9 +129,12 @@ public class AfterWaringLogJob implements Job {
             afterIncidentDetailLog.setChangeClass(hospitalizatioSettleDetail.getPType());
 //            afterIncidentDetailLog.setInspectionSite();
             afterIncidentDetailLog.setOutHospDate(masterAdmissionBill.getDischargeDate());
-            if (StringUtils.isNotBlank(masterAdmissionBill.getDischargeDiseaseIdMain())) {
-                afterIncidentDetailLog.setDiagnoseCodeStr(masterAdmissionBill.getDischargeDiseaseIdMain().trim());
-                afterIncidentDetailLog.setDiagnoseNameStr(masterAdmissionBill.getDischargeDiseaseNameMain());
+            String[] diagnoseArr = setDiagnose(masterAdmissionBill);
+            if (null != diagnoseArr) {
+                afterIncidentDetailLog.setDiagnoseCodeStr(diagnoseArr[0]);
+                afterIncidentDetailLog.setDiagnoseNameStr(diagnoseArr[1]);
+                afterIncidentDetailLog.setMedicalDiagnoseCodeStr(diagnoseArr[2]);
+                afterIncidentDetailLog.setMedicalDiagnoseNameStr(diagnoseArr[3]);
             }
             afterIncidentDetailLog.setMedicalInsuranceMark(masterAdmissionBill.getPayMethod());
             afterIncidentDetailLog.setMedicalSpecification(hospitalizatioSettleDetail.getDrugSpec());
@@ -155,6 +167,65 @@ public class AfterWaringLogJob implements Job {
         masterAdmissionBillService.lambdaUpdate().set(MasterAdmissionBill::getState, Constant.SUCCESS).eq(MasterAdmissionBill::getId, masterAdmissionBill.getId()).update();
     }
 
+    public String[] setDiagnose(MasterAdmissionBill masterAdmissionBill){
+        List<String> diagnoseCodeList = new ArrayList<>();
+        List<String> diagnoseNameList = new ArrayList<>();
+        List<String> srcDiagnoseCodeList = new ArrayList<>();
+        List<String> srcDiagnoseNameList = new ArrayList<>();
+        if(StringUtils.isNotBlank(masterAdmissionBill.getYbDischargeDiseaseIdMain())){
+            diagnoseCodeList.add(masterAdmissionBill.getYbDischargeDiseaseIdMain().trim());
+            diagnoseNameList.add(masterAdmissionBill.getYbDischargeDiseaseNameMain());
+            srcDiagnoseCodeList.add(masterAdmissionBill.getDischargeDiseaseIdMain());
+            srcDiagnoseNameList.add(masterAdmissionBill.getDischargeDiseaseNameMain());
+        }
+        List<MedicalRecordHomepage> medicalRecordHomepageList = medicalRecordHomepageService.lambdaQuery().eq(MedicalRecordHomepage::getBridgeId, masterAdmissionBill.getHisid()).list();
+        if(CollectionUtil.isNotEmpty(medicalRecordHomepageList)){
+            if(StringUtils.isNotBlank(masterAdmissionBill.getYbAdmissionDiseaseId())){
+                if(!diagnoseCodeList.contains(masterAdmissionBill.getYbAdmissionDiseaseId())){
+                    diagnoseCodeList.add(masterAdmissionBill.getYbAdmissionDiseaseId().trim());
+                    diagnoseNameList.add(masterAdmissionBill.getYbAdmissionDiseaseName());
+                    srcDiagnoseCodeList.add(masterAdmissionBill.getAdmissionDiseaseId());
+                    srcDiagnoseNameList.add(masterAdmissionBill.getAdmissionDiseaseName());
+                }
+            }
+            String diagnoseCodeStr = medicalRecordHomepageList.get(0).getIcd10CodeBasy();
+            String diagnoseNameStr = medicalRecordHomepageList.get(0).getIcd10NameBasy();
+            if(StringUtils.isNotBlank(diagnoseCodeStr)) {
+                String[] medicalCodeAndNameArr = CommonUtil.getMedicalCodeAndName(diagnoseCodeStr);
+                if (null != medicalCodeAndNameArr) {
+                    if(!diagnoseCodeList.contains(medicalCodeAndNameArr[0])){
+                        diagnoseCodeList.add(medicalCodeAndNameArr[0]);
+                        diagnoseNameList.add(medicalCodeAndNameArr[1]);
+                        srcDiagnoseCodeList.add(diagnoseCodeStr);
+                        srcDiagnoseNameList.add(diagnoseNameStr);
+                    }
+                }
+            }
+
+            String diagnoseCode1Str = medicalRecordHomepageList.get(0).getDiseaseId1();
+            String diagnoseName1Str = medicalRecordHomepageList.get(0).getDiseaseName1();
+            if(StringUtils.isNotBlank(diagnoseCode1Str)) {
+                String[] medicalCodeAndNameArr = CommonUtil.getMedicalCodeAndName(diagnoseCode1Str);
+                if (null != medicalCodeAndNameArr) {
+                    if(!diagnoseCodeList.contains(medicalCodeAndNameArr[0])){
+                        diagnoseCodeList.add(medicalCodeAndNameArr[0]);
+                        diagnoseNameList.add(medicalCodeAndNameArr[1]);
+                        srcDiagnoseCodeList.add(diagnoseCode1Str);
+                        srcDiagnoseNameList.add(diagnoseName1Str);
+                    }
+                }
+            }
+        }
+        if(CollectionUtil.isNotEmpty(diagnoseCodeList)){
+            String srcDiagnoseCodeStr = CollectionUtil.join(srcDiagnoseCodeList, Constant.SPLIT_STR);
+            String srcDiagnoseNameStr = CollectionUtil.join(srcDiagnoseNameList, Constant.SPLIT_STR);
+            String diagnoseCodeStr = CollectionUtil.join(diagnoseCodeList, Constant.SPLIT_STR);
+            String diagnoseNameStr = CollectionUtil.join(diagnoseNameList, Constant.SPLIT_STR);
+            return new String[]{srcDiagnoseCodeStr, srcDiagnoseNameStr, diagnoseCodeStr, diagnoseNameStr};
+        }
+        return null;
+    }
+
     /**
      * 抵扣负条数记录
      * @param detailList

+ 0 - 1
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/job/XCFYDatav_master_admission_billJob.java

@@ -212,7 +212,6 @@ public class XCFYDatav_master_admission_billJob implements Job {
      * @return
      */
     public Integer transferHospSettleDetail(String hisId) {
-        String openStr = sysDictService.queryDictTextByKey(Constant.JOB_DELETE_OLD_DATE_SWITCH,"SWITCH");;
         try {
 //            List<DictModel> cateGoriesList = sysDictService.getDictItems(Constant.DICT_CATEGORIES_ITEMS_KEY);
             Map<String, String> cateGoriesMap = CommonUtil.getCategoriesItemsMap();