|
@@ -12,18 +12,16 @@ import com.baomidou.mybatisplus.core.toolkit.IdWorker;
|
|
|
import com.google.common.cache.Cache;
|
|
import com.google.common.cache.Cache;
|
|
|
import com.google.common.cache.CacheBuilder;
|
|
import com.google.common.cache.CacheBuilder;
|
|
|
import com.nb.web.api.entity.BusClinicEntity;
|
|
import com.nb.web.api.entity.BusClinicEntity;
|
|
|
|
|
+import com.nb.web.api.entity.BusInfusionHistoryEntity;
|
|
|
import com.nb.web.service.bus.entity.*;
|
|
import com.nb.web.service.bus.entity.*;
|
|
|
import com.nb.web.service.bus.listener.event.bean.HisEvent;
|
|
import com.nb.web.service.bus.listener.event.bean.HisEvent;
|
|
|
import com.nb.web.service.bus.hospital.script.DefaultParse;
|
|
import com.nb.web.service.bus.hospital.script.DefaultParse;
|
|
|
-import com.nb.web.service.bus.service.LocalBusHospitalLogService;
|
|
|
|
|
-import com.nb.web.service.bus.service.LocalBusPatientService;
|
|
|
|
|
|
|
+import com.nb.web.service.bus.service.*;
|
|
|
import com.nb.web.service.bus.service.constant.LocalBusConDoctorService;
|
|
import com.nb.web.service.bus.service.constant.LocalBusConDoctorService;
|
|
|
import com.nb.web.service.bus.service.constant.LocalBusConMixService;
|
|
import com.nb.web.service.bus.service.constant.LocalBusConMixService;
|
|
|
import com.nb.core.exception.ExecuteResult;
|
|
import com.nb.core.exception.ExecuteResult;
|
|
|
import com.nb.web.service.bus.hospital.script.ScriptManager;
|
|
import com.nb.web.service.bus.hospital.script.ScriptManager;
|
|
|
import com.nb.web.service.bus.hospital.script.ScriptParse;
|
|
import com.nb.web.service.bus.hospital.script.ScriptParse;
|
|
|
-import com.nb.web.service.bus.service.LocalBusClinicService;
|
|
|
|
|
-import com.nb.web.service.bus.service.LocalBusHospitalService;
|
|
|
|
|
import com.nb.core.cache.ConfigStorage;
|
|
import com.nb.core.cache.ConfigStorage;
|
|
|
import com.nb.core.cache.manager.ConfigStorageManager;
|
|
import com.nb.core.cache.manager.ConfigStorageManager;
|
|
|
import com.nb.core.Value;
|
|
import com.nb.core.Value;
|
|
@@ -65,6 +63,7 @@ public class HisScriptSession {
|
|
|
private LocalBusHospitalLogService hospitalLogService;
|
|
private LocalBusHospitalLogService hospitalLogService;
|
|
|
private LocalBusConMixService conMixService;
|
|
private LocalBusConMixService conMixService;
|
|
|
private LocalBusConDoctorService conDoctorService;
|
|
private LocalBusConDoctorService conDoctorService;
|
|
|
|
|
+ private LocalBusInfusionHistoryService infusionHistoryService;
|
|
|
//缓存发给医院的请求,对相同的请求进行批量处理
|
|
//缓存发给医院的请求,对相同的请求进行批量处理
|
|
|
private Cache<String, HisRequest> hisRequestMap = CacheBuilder.newBuilder()
|
|
private Cache<String, HisRequest> hisRequestMap = CacheBuilder.newBuilder()
|
|
|
.expireAfterWrite(30, TimeUnit.SECONDS)
|
|
.expireAfterWrite(30, TimeUnit.SECONDS)
|
|
@@ -81,6 +80,7 @@ public class HisScriptSession {
|
|
|
this.patientService=SpringUtil.getBean(LocalBusPatientService.class);
|
|
this.patientService=SpringUtil.getBean(LocalBusPatientService.class);
|
|
|
this.conMixService=SpringUtil.getBean(LocalBusConMixService.class);
|
|
this.conMixService=SpringUtil.getBean(LocalBusConMixService.class);
|
|
|
this.conDoctorService=SpringUtil.getBean(LocalBusConDoctorService.class);
|
|
this.conDoctorService=SpringUtil.getBean(LocalBusConDoctorService.class);
|
|
|
|
|
+ this.infusionHistoryService=SpringUtil.getBean(LocalBusInfusionHistoryService.class);
|
|
|
init(configStorageManager,hospitalId);
|
|
init(configStorageManager,hospitalId);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -263,6 +263,7 @@ public class HisScriptSession {
|
|
|
}else {
|
|
}else {
|
|
|
BusPatientEntity patient = patientService
|
|
BusPatientEntity patient = patientService
|
|
|
.getOne(new QueryWrapper<BusPatientEntity>().lambda().eq(BusPatientEntity::getCode, patientCode).eq(BusPatientEntity::getTenantId, hospitalId));
|
|
.getOne(new QueryWrapper<BusPatientEntity>().lambda().eq(BusPatientEntity::getCode, patientCode).eq(BusPatientEntity::getTenantId, hospitalId));
|
|
|
|
|
+ BusInfusionHistoryEntity infusionHistory = infusionHistoryService.getById(patient.getInfusionId());
|
|
|
if(patient!=null){
|
|
if(patient!=null){
|
|
|
List<BusClinicEntity> finalSources = sources;
|
|
List<BusClinicEntity> finalSources = sources;
|
|
|
CompletableFuture.runAsync(()->{
|
|
CompletableFuture.runAsync(()->{
|
|
@@ -279,6 +280,9 @@ public class HisScriptSession {
|
|
|
//对数据去重, name+startTime进行唯一值判定
|
|
//对数据去重, name+startTime进行唯一值判定
|
|
|
Map<String, BusClinicEntity> distinct = new HashMap<>();
|
|
Map<String, BusClinicEntity> distinct = new HashMap<>();
|
|
|
sources.forEach(source->{
|
|
sources.forEach(source->{
|
|
|
|
|
+ if(ObjectUtil.isNull(source.getStartTime())){
|
|
|
|
|
+ source.setStartTime(ObjectUtil.isNull(infusionHistory.getClinicStartTime())?infusionHistory.getStartTime():infusionHistory.getClinicStartTime());
|
|
|
|
|
+ }
|
|
|
String key=source.getSurgeryName()+source.getStartTime();
|
|
String key=source.getSurgeryName()+source.getStartTime();
|
|
|
distinct.computeIfAbsent(key,k->{
|
|
distinct.computeIfAbsent(key,k->{
|
|
|
publish.add(source);
|
|
publish.add(source);
|