|
@@ -3,11 +3,8 @@ package com.coffee.bus.websocket.listener;
|
|
|
import cn.hutool.core.collection.CollectionUtil;
|
|
import cn.hutool.core.collection.CollectionUtil;
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
import cn.hutool.extra.spring.SpringUtil;
|
|
import cn.hutool.extra.spring.SpringUtil;
|
|
|
-import cn.hutool.json.JSONArray;
|
|
|
|
|
-import cn.hutool.json.JSONUtil;
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
|
|
-import com.coffee.bus.bean.HisInfo;
|
|
|
|
|
import com.coffee.bus.entity.BusClinicEntity;
|
|
import com.coffee.bus.entity.BusClinicEntity;
|
|
|
import com.coffee.bus.entity.BusInfusionHistoryEntity;
|
|
import com.coffee.bus.entity.BusInfusionHistoryEntity;
|
|
|
import com.coffee.bus.entity.BusPatientEntity;
|
|
import com.coffee.bus.entity.BusPatientEntity;
|
|
@@ -16,14 +13,9 @@ import com.coffee.bus.registry.patient.PatientOperator;
|
|
|
import com.coffee.bus.registry.patient.PatientRegistry;
|
|
import com.coffee.bus.registry.patient.PatientRegistry;
|
|
|
import com.coffee.bus.registry.patient.bean.DeviceTimeSmallInfo;
|
|
import com.coffee.bus.registry.patient.bean.DeviceTimeSmallInfo;
|
|
|
import com.coffee.bus.registry.patient.bean.PatientCacheInfo;
|
|
import com.coffee.bus.registry.patient.bean.PatientCacheInfo;
|
|
|
-import com.coffee.bus.script.ExecuteResult;
|
|
|
|
|
-import com.coffee.bus.script.ScriptManager;
|
|
|
|
|
import com.coffee.bus.service.*;
|
|
import com.coffee.bus.service.*;
|
|
|
-import com.coffee.common.config.websocket.WebSocketConstant;
|
|
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
-import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
|
import org.springframework.context.event.EventListener;
|
|
import org.springframework.context.event.EventListener;
|
|
|
-import org.springframework.data.redis.core.RedisTemplate;
|
|
|
|
|
import org.springframework.scheduling.annotation.Async;
|
|
import org.springframework.scheduling.annotation.Async;
|
|
|
import org.springframework.stereotype.Component;
|
|
import org.springframework.stereotype.Component;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
@@ -53,12 +45,14 @@ public class HisInfoListener {
|
|
|
|
|
|
|
|
private final LocalBusDeviceRunningService deviceRunningService;
|
|
private final LocalBusDeviceRunningService deviceRunningService;
|
|
|
|
|
|
|
|
|
|
+ private final LocalBusPatientService patientService;
|
|
|
|
|
|
|
|
- public HisInfoListener(LocalBusClinicService clinicService, LocalBusInfusionHistoryService infusionHistoryService, PatientRegistry patientRegistry, LocalBusDeviceRunningService deviceRunningService) {
|
|
|
|
|
|
|
+ public HisInfoListener(LocalBusClinicService clinicService, LocalBusInfusionHistoryService infusionHistoryService, PatientRegistry patientRegistry, LocalBusDeviceRunningService deviceRunningService, LocalBusPatientService patientService) {
|
|
|
this.clinicService = clinicService;
|
|
this.clinicService = clinicService;
|
|
|
this.infusionHistoryService = infusionHistoryService;
|
|
this.infusionHistoryService = infusionHistoryService;
|
|
|
this.patientRegistry = patientRegistry;
|
|
this.patientRegistry = patientRegistry;
|
|
|
this.deviceRunningService = deviceRunningService;
|
|
this.deviceRunningService = deviceRunningService;
|
|
|
|
|
+ this.patientService = patientService;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
private HisInfoListener hisInfoListener;
|
|
private HisInfoListener hisInfoListener;
|
|
@@ -74,7 +68,25 @@ public class HisInfoListener {
|
|
|
if(CollectionUtil.isEmpty(clinics)){
|
|
if(CollectionUtil.isEmpty(clinics)){
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|
|
|
- //处理病人信息 todo
|
|
|
|
|
|
|
+ //处理病人信息
|
|
|
|
|
+ BusPatientEntity patient = clinics.stream().map(clinicEntity -> {
|
|
|
|
|
+ BusPatientEntity patientEntity = new BusPatientEntity();
|
|
|
|
|
+ patientEntity.setName(clinicEntity.getPatientName());
|
|
|
|
|
+ patientEntity.setGender(clinicEntity.getPatientGender());
|
|
|
|
|
+ patientEntity.setCode(clinicEntity.getPatientCode());
|
|
|
|
|
+ patientEntity.setTenantId(clinicEntity.getTenantId());
|
|
|
|
|
+ return patientEntity;
|
|
|
|
|
+ }).findFirst().get();
|
|
|
|
|
+ PatientOperator<PatientCacheInfo> patientOperator = patientRegistry.getOperator(patient.getTenantId(), patient.getCode());
|
|
|
|
|
+ String name = patientOperator.getName();
|
|
|
|
|
+ if(StrUtil.isNullOrUndefined(name)){
|
|
|
|
|
+ patientService.update(new UpdateWrapper<BusPatientEntity>().lambda().eq(BusPatientEntity::getCode,patient.getCode())
|
|
|
|
|
+ .eq(BusPatientEntity::getTenantId,patient.getTenantId())
|
|
|
|
|
+ .set(BusPatientEntity::getName,patient.getName())
|
|
|
|
|
+ .set(BusPatientEntity::getGender,patient.getGender()));
|
|
|
|
|
+ patientOperator.setName(patient.getName());
|
|
|
|
|
+ patientOperator.setGender(patient.getGender());
|
|
|
|
|
+ }
|
|
|
//处理病人手术信息
|
|
//处理病人手术信息
|
|
|
clinics.parallelStream().forEach(hisInfoListener::handle);
|
|
clinics.parallelStream().forEach(hisInfoListener::handle);
|
|
|
}
|
|
}
|
|
@@ -96,7 +108,7 @@ public class HisInfoListener {
|
|
|
.set(BusInfusionHistoryEntity::getClinicId,clinic.getId())
|
|
.set(BusInfusionHistoryEntity::getClinicId,clinic.getId())
|
|
|
.set(BusInfusionHistoryEntity::getClinicStartTime,clinic.getStartTime())
|
|
.set(BusInfusionHistoryEntity::getClinicStartTime,clinic.getStartTime())
|
|
|
.eq(BusInfusionHistoryEntity::getTenantId,clinic.getTenantId())
|
|
.eq(BusInfusionHistoryEntity::getTenantId,clinic.getTenantId())
|
|
|
- .ge(BusInfusionHistoryEntity::getStartTime,clinic.getStartTime().getTime())
|
|
|
|
|
|
|
+ .ge(BusInfusionHistoryEntity::getStartTime,clinic.getStartTime())
|
|
|
.le(BusInfusionHistoryEntity::getClinicStartTime,clinic.getStartTime())
|
|
.le(BusInfusionHistoryEntity::getClinicStartTime,clinic.getStartTime())
|
|
|
);
|
|
);
|
|
|
}else {
|
|
}else {
|
|
@@ -149,6 +161,13 @@ public class HisInfoListener {
|
|
|
if(StrUtil.isNullOrUndefined(clinicId)){
|
|
if(StrUtil.isNullOrUndefined(clinicId)){
|
|
|
//临床数据尚未存在,则将该临床数据设置为最新的临床数据
|
|
//临床数据尚未存在,则将该临床数据设置为最新的临床数据
|
|
|
changedRunningClinic(clinic,patientOperator);
|
|
changedRunningClinic(clinic,patientOperator);
|
|
|
|
|
+ Boolean finished = patientOperator.getFinished();
|
|
|
|
|
+ if(Boolean.TRUE.equals(finished)){
|
|
|
|
|
+ clinicService.update(new UpdateWrapper<BusClinicEntity>()
|
|
|
|
|
+ .lambda()
|
|
|
|
|
+ .eq(BusClinicEntity::getId,clinic.getId())
|
|
|
|
|
+ .set(BusClinicEntity::getFinished,true));
|
|
|
|
|
+ }
|
|
|
return ;
|
|
return ;
|
|
|
}
|
|
}
|
|
|
//判断临床信息是否一样
|
|
//判断临床信息是否一样
|
|
@@ -163,6 +182,12 @@ public class HisInfoListener {
|
|
|
if(startTime==null||clinic.getStartTime().after(startTime)){
|
|
if(startTime==null||clinic.getStartTime().after(startTime)){
|
|
|
//更新临床信息
|
|
//更新临床信息
|
|
|
changedRunningClinic(clinic,patientOperator);
|
|
changedRunningClinic(clinic,patientOperator);
|
|
|
|
|
+ clinicService.update(new UpdateWrapper<BusClinicEntity>()
|
|
|
|
|
+ .lambda()
|
|
|
|
|
+ .ne(BusClinicEntity::getId,clinic.getId())
|
|
|
|
|
+ .eq(BusClinicEntity::getPatientCode,clinic.getPatientCode())
|
|
|
|
|
+ .eq(BusClinicEntity::getTenantId,clinic.getTenantId())
|
|
|
|
|
+ .set(BusClinicEntity::getFinished,true));
|
|
|
return;
|
|
return;
|
|
|
}else {
|
|
}else {
|
|
|
//运行临床信息不发生变化,将该次临床置为结束状态, 进行撤泵操作 todo
|
|
//运行临床信息不发生变化,将该次临床置为结束状态, 进行撤泵操作 todo
|