|
|
@@ -13,6 +13,7 @@ import com.baomidou.mybatisplus.core.toolkit.IdWorker;
|
|
|
import com.google.common.cache.Cache;
|
|
|
import com.google.common.cache.CacheBuilder;
|
|
|
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.listener.event.bean.HisEvent;
|
|
|
import com.nb.web.service.bus.hospital.script.DefaultParse;
|
|
|
@@ -65,6 +66,7 @@ public class HisScriptSession {
|
|
|
private LocalBusConMixService conMixService;
|
|
|
private LocalBusConDoctorService conDoctorService;
|
|
|
private WsPublishUtils wsPublishUtils;
|
|
|
+ private LocalBusInfusionHistoryService infusionHistoryService;
|
|
|
//缓存发给医院的请求,对相同的请求进行批量处理
|
|
|
private Cache<String, HisRequest> hisRequestMap = CacheBuilder.newBuilder()
|
|
|
.expireAfterWrite(30, TimeUnit.SECONDS)
|
|
|
@@ -82,6 +84,7 @@ public class HisScriptSession {
|
|
|
this.conMixService=SpringUtil.getBean(LocalBusConMixService.class);
|
|
|
this.conDoctorService=SpringUtil.getBean(LocalBusConDoctorService.class);
|
|
|
this.wsPublishUtils=SpringUtil.getBean(WsPublishUtils.class);
|
|
|
+ this.infusionHistoryService=SpringUtil.getBean(LocalBusInfusionHistoryService.class);
|
|
|
init(configStorageManager,hospitalId);
|
|
|
}
|
|
|
|
|
|
@@ -262,6 +265,21 @@ public class HisScriptSession {
|
|
|
if(CollectionUtil.isEmpty(sources)){
|
|
|
return null;
|
|
|
}else {
|
|
|
+
|
|
|
+ BusInfusionHistoryEntity lastInfusion = infusionHistoryService.lastInfusionByPatientCode(hospitalId,patientCode);
|
|
|
+ if(ObjectUtil.isNotNull(lastInfusion)){
|
|
|
+ //最后一次输注信息存在
|
|
|
+ sources=sources.stream()
|
|
|
+ .filter(clinic->{
|
|
|
+ Date infusionStartTime = lastInfusion.getStartTime();
|
|
|
+ Date clinicStartTime = clinic.getStartTime();
|
|
|
+ if(ObjectUtil.isNull(infusionStartTime)||ObjectUtil.isNull(clinicStartTime)){
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ return clinicStartTime.before(infusionStartTime);
|
|
|
+ }).collect(Collectors.toList());
|
|
|
+ }
|
|
|
+
|
|
|
BusPatientEntity patient = patientService
|
|
|
.getOne(new QueryWrapper<BusPatientEntity>().lambda().eq(BusPatientEntity::getCode, patientCode).eq(BusPatientEntity::getTenantId, hospitalId));
|
|
|
if(patient!=null){
|