|
|
@@ -1,13 +1,17 @@
|
|
|
package com.coffee.bus.registry.patient;
|
|
|
|
|
|
+import cn.hutool.core.collection.CollectionUtil;
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.coffee.bus.entity.BusClinicEntity;
|
|
|
+import com.coffee.bus.entity.BusDeviceRunningEntity;
|
|
|
import com.coffee.bus.entity.BusInfusionHistoryEntity;
|
|
|
import com.coffee.bus.entity.BusPatientEntity;
|
|
|
import com.coffee.bus.registry.RegistryConstant;
|
|
|
+import com.coffee.bus.registry.patient.bean.DeviceTimeSmallInfo;
|
|
|
import com.coffee.bus.registry.patient.bean.PatientCacheInfo;
|
|
|
import com.coffee.bus.service.LocalBusClinicService;
|
|
|
+import com.coffee.bus.service.LocalBusDeviceRunningService;
|
|
|
import com.coffee.bus.service.LocalBusInfusionHistoryService;
|
|
|
import com.coffee.bus.service.LocalBusPatientService;
|
|
|
import com.coffee.common.cache.manager.ClusterConfigStorageManager;
|
|
|
@@ -17,7 +21,11 @@ import org.springframework.dao.DuplicateKeyException;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
-import java.util.Map;
|
|
|
+import java.util.List;
|
|
|
+import java.util.Optional;
|
|
|
+import java.util.Set;
|
|
|
+import java.util.stream.Collectors;
|
|
|
+
|
|
|
|
|
|
/**
|
|
|
* @author lifang
|
|
|
@@ -34,6 +42,7 @@ public class ClusterPatientRegistry implements PatientRegistry {
|
|
|
private final ClusterConfigStorageManager configStorageManager;
|
|
|
private final LocalBusClinicService clinicService;
|
|
|
private final LocalBusInfusionHistoryService infusionService;
|
|
|
+ private final LocalBusDeviceRunningService deviceRunningService;
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public PatientOperator<PatientCacheInfo> getOperator(String hospitalId, String patientCode) {
|
|
|
@@ -41,7 +50,7 @@ public class ClusterPatientRegistry implements PatientRegistry {
|
|
|
return null;
|
|
|
}
|
|
|
String key=getId()+hospitalId+":"+patientCode;
|
|
|
- ClusterPatientOperator patientOperator = new ClusterPatientOperator( configStorageManager.getStorage(key));
|
|
|
+ ClusterPatientOperator patientOperator = new ClusterPatientOperator(configStorageManager.getStorage(key));
|
|
|
String code = patientOperator.getCode();
|
|
|
if(StrUtil.isNullOrUndefined(code)){
|
|
|
//将新数据存入数据库
|
|
|
@@ -67,8 +76,8 @@ public class ClusterPatientRegistry implements PatientRegistry {
|
|
|
//不存在临床或临床已结束
|
|
|
if(clinic==null||Boolean.TRUE.equals(clinic.getFinished())){
|
|
|
clinicService.asyncFromHis(hospitalId,patientCode);
|
|
|
- patient.setClinicId("-1");
|
|
|
- patientOperator.setClinicId("-1");
|
|
|
+ patient.setClinicId("");
|
|
|
+ patientOperator.setClinicId("");
|
|
|
}else {
|
|
|
//填充临床信息
|
|
|
patient.setName(clinic.getName());
|
|
|
@@ -88,6 +97,19 @@ public class ClusterPatientRegistry implements PatientRegistry {
|
|
|
patient.setMonitorStartTime(infusion.getStartTime());
|
|
|
patient.setMonitorEndTime(infusion.getUndoTime());
|
|
|
}
|
|
|
+ //填充主副泵信息
|
|
|
+ List<BusDeviceRunningEntity> runningList = deviceRunningService.list(new QueryWrapper<BusDeviceRunningEntity>().lambda().eq(BusDeviceRunningEntity::getPatientCode, patientCode).eq(BusDeviceRunningEntity::getTenantId, hospitalId));
|
|
|
+ if (CollectionUtil.isNotEmpty(runningList)) {
|
|
|
+ Set<DeviceTimeSmallInfo> allDevice = runningList.stream().map(running ->
|
|
|
+ DeviceTimeSmallInfo.of(running.getDeviceId(), running.getStartTime())
|
|
|
+ )
|
|
|
+ .collect(Collectors.toSet());
|
|
|
+ Optional<BusDeviceRunningEntity> first = runningList.stream().filter(running -> Boolean.TRUE.equals(running.getMaster())).findFirst();
|
|
|
+ if(first.isPresent()){
|
|
|
+ patientOperator.setBindDeviceId(first.get().getDeviceId());
|
|
|
+ }
|
|
|
+ patientOperator.setAllDevice(allDevice);
|
|
|
+ }
|
|
|
if(insert){
|
|
|
try {
|
|
|
log.info("医院[{}]新增病号数据[{}]",hospitalId,patientCode);
|