|
|
@@ -20,8 +20,6 @@ import lombok.AllArgsConstructor;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.springframework.amqp.rabbit.annotation.Queue;
|
|
|
import org.springframework.amqp.rabbit.annotation.RabbitListener;
|
|
|
-import org.springframework.beans.factory.annotation.Autowired;
|
|
|
-import org.springframework.context.annotation.Lazy;
|
|
|
import org.springframework.messaging.handler.annotation.Payload;
|
|
|
import org.springframework.stereotype.Component;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
@@ -51,7 +49,6 @@ public class RabbitMqListener {
|
|
|
private final IHospitalLogClient hospitalLogService;
|
|
|
private final IConMixClient conMixClient;
|
|
|
private final IConDoctorClient conDoctorClient;
|
|
|
-
|
|
|
/**
|
|
|
* 描述: 监听病人队列
|
|
|
* @author lifang
|
|
|
@@ -68,32 +65,33 @@ public class RabbitMqListener {
|
|
|
hospitalLog.setInput(body);
|
|
|
long startTime = System.currentTimeMillis();
|
|
|
try {
|
|
|
+
|
|
|
PcPatientEntity source = JSONUtil.toBean(body, PcPatientEntity.class);
|
|
|
hospitalLog.setIdentityCode(source.getPumpCode());
|
|
|
hospitalLog.setTenantId(source.getHospitalCode());
|
|
|
- String patientId = patientClient.lookPatientId(source.getHospitalCode(), source.getPatientCode());
|
|
|
+ String patientId =null;
|
|
|
+ patientId = patientClient.lookPatientId(source.getHospitalCode(), source.getPatientCode());
|
|
|
BusClinicEntity clinic= source.toClinic(patientId);
|
|
|
PatientMonitorDetailResult patientDetail = patientClient.lookPatientDetail(patientId);
|
|
|
BusClinicEntity existClinic = patientDetail.getClinic();
|
|
|
- //当上一个临床状态为已结束时,对比临床信息是否发生改变,生成新的临床信息
|
|
|
- boolean sameClinic=false;
|
|
|
- if(StrUtil.isNotEmpty(existClinic.getId())){
|
|
|
- sameClinic=ObjectUtil.equal(clinic.getSurgeryName(),
|
|
|
- existClinic.getSurgeryName());
|
|
|
- }
|
|
|
- if(!sameClinic){
|
|
|
- //为了避免网络延迟,开始时间往前推1个小时
|
|
|
- clinic.setStartTime(DateUtil.offsetHour(new Date(),0));
|
|
|
- Set<BusClinicEntity> sources = Collections.singleton(clinic);
|
|
|
- clinic=clinicClient.insertFromHis(clinic);
|
|
|
- clinicClient.setCurrentClinicByHis(clinic,Boolean.TRUE.equals(existClinic.getFinished()));
|
|
|
- conMixClient.insertUniqueCon(sources,clinic.getTenantId());
|
|
|
- conDoctorClient.insertUniqueDoctor(sources,clinic.getTenantId());
|
|
|
- }else {
|
|
|
- clinic.setStartTime(existClinic.getStartTime());
|
|
|
- clinicClient.update(existClinic.getId(),clinic);
|
|
|
- }
|
|
|
-// }
|
|
|
+ //当上一个临床状态为已结束时,对比临床信息是否发生改变,生成新的临床信息
|
|
|
+ boolean sameClinic=false;
|
|
|
+ if(StrUtil.isNotEmpty(existClinic.getId())){
|
|
|
+ sameClinic=ObjectUtil.equal(clinic.getSurgeryName(),
|
|
|
+ existClinic.getSurgeryName());
|
|
|
+ }
|
|
|
+ if(!sameClinic){
|
|
|
+ //为了避免网络延迟,开始时间往前推1个小时
|
|
|
+ clinic.setStartTime(DateUtil.offsetHour(new Date(),0));
|
|
|
+ Set<BusClinicEntity> sources = Collections.singleton(clinic);
|
|
|
+ clinic=clinicClient.insertFromHis(clinic);
|
|
|
+ clinicClient.setCurrentClinicByHis(clinic,Boolean.TRUE.equals(existClinic.getFinished()));
|
|
|
+ conMixClient.insertUniqueCon(sources,clinic.getTenantId());
|
|
|
+ conDoctorClient.insertUniqueDoctor(sources,clinic.getTenantId());
|
|
|
+ }else {
|
|
|
+ clinic.setStartTime(existClinic.getStartTime());
|
|
|
+ clinicClient.update(existClinic.getId(),clinic);
|
|
|
+ }
|
|
|
hospitalLog.setResult(JSONUtil.toJsonStr(clinic));
|
|
|
hospitalLog.setSuccess(true);
|
|
|
}catch (Exception e){
|
|
|
@@ -105,6 +103,7 @@ public class RabbitMqListener {
|
|
|
long entTime = System.currentTimeMillis();
|
|
|
hospitalLog.setUseTime(entTime-startTime);
|
|
|
hospitalLogService.save(hospitalLog);
|
|
|
+ log.error("消息队列【cloud.patient】处理消息{}完成",body);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
@@ -117,13 +116,13 @@ public class RabbitMqListener {
|
|
|
@RabbitListener(queuesToDeclare = @Queue("cloud.pump"))
|
|
|
@Transactional (rollbackFor = Exception.class)
|
|
|
public void pumpQueue(@Payload String body) {
|
|
|
+ log.info("消息队列中,网络泵队列{cloud.pump},接受消息:{}",body);
|
|
|
BusHospitalLogEntity hospitalLog = new BusHospitalLogEntity();
|
|
|
hospitalLog.setMsgId(IdWorker.getIdStr());
|
|
|
hospitalLog.setType(HospitalLogEnum.MQ_PUMP);
|
|
|
hospitalLog.setInput(body);
|
|
|
long startTime = System.currentTimeMillis();
|
|
|
try {
|
|
|
- log.info("消息队列中,网络泵队列{cloud.pump},接受消息:{}",body);
|
|
|
PcPumpEntity source = JSONUtil.toBean(body, PcPumpEntity.class);
|
|
|
hospitalLog.setIdentityCode(source.getPumpCode());
|
|
|
hospitalLog.setTenantId(source.getHospitalCode());
|
|
|
@@ -139,6 +138,7 @@ public class RabbitMqListener {
|
|
|
clinicClient.finish(sync.getClinicId(),sync.getTenantId(),null);
|
|
|
deviceClient.refreshClassification(sync.getDeviceId());
|
|
|
}
|
|
|
+
|
|
|
hospitalLog.setResult(JSONUtil.toJsonStr(sync));
|
|
|
hospitalLog.setSuccess(true);
|
|
|
}catch (Exception e){
|
|
|
@@ -150,6 +150,7 @@ public class RabbitMqListener {
|
|
|
long entTime = System.currentTimeMillis();
|
|
|
hospitalLog.setUseTime(entTime-startTime);
|
|
|
hospitalLogService.save(hospitalLog);
|
|
|
+ log.error("消息队列【cloud.pump】处理消息{}完成",body);
|
|
|
|
|
|
}
|
|
|
|
|
|
@@ -200,6 +201,7 @@ public class RabbitMqListener {
|
|
|
long entTime = System.currentTimeMillis();
|
|
|
hospitalLog.setUseTime(entTime-startTime);
|
|
|
hospitalLogService.save(hospitalLog);
|
|
|
+ log.error("消息队列【cloud.analgesicScore】处理消息{}完成",body);
|
|
|
}
|
|
|
|
|
|
}
|