|
|
@@ -1,6 +1,7 @@
|
|
|
package cn.tr.module.smart.common.config;
|
|
|
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
+import cn.hutool.core.util.StrUtil;
|
|
|
import cn.tr.core.annotation.TenantIgnore;
|
|
|
import cn.tr.core.utils.JsonUtils;
|
|
|
import cn.tr.module.api.sys.tenant.SysTenantApi;
|
|
|
@@ -109,8 +110,34 @@ public class PatientMonitorListener {
|
|
|
infusionClinic.setInfusionId(infusionHistory.getId());
|
|
|
infusionClinic.setClinicId(patientPO.getCurrentClinicId());
|
|
|
infusionClinic.setType(InfusionBindType.autoBind);
|
|
|
- infusionClinicRepository.insert(infusionClinic);
|
|
|
- log.info("找到匹配的患者信息,患者ID: {}", patientPO.getId());
|
|
|
+ //判断有没有被绑定
|
|
|
+ BizInfusionClinicPO infusionClinicPO = infusionClinicRepository.selectOne(new LambdaQueryWrapper<BizInfusionClinicPO>()
|
|
|
+ .eq(BizInfusionClinicPO::getClinicId, patientPO.getCurrentClinicId())
|
|
|
+ .last("limit 1"));
|
|
|
+ if(StrUtil.equals(infusionClinicPO.getInfusionId(),infusionHistory.getId())){
|
|
|
+ //已绑定
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if (ObjectUtil.isNotNull(infusionClinicPO)) {
|
|
|
+ if(InfusionBindType.autoBind.equals(infusionClinicPO.getType())){
|
|
|
+ //如果是自动绑的,则判断两个泵头的先后顺序
|
|
|
+ BizInfusionHistoryPO preInfusionHistory = infusionHistoryRepository.selectById(infusionClinicPO.getInfusionId());
|
|
|
+ if (ObjectUtil.isNotNull(preInfusionHistory)) {
|
|
|
+ infusionClinicRepository.deleteById(infusionClinicPO.getId());
|
|
|
+ infusionClinicRepository.insert(infusionClinic);
|
|
|
+ log.info("找到匹配的患者信息,患者ID: {}", patientPO.getId());
|
|
|
+ }else {
|
|
|
+ if(ObjectUtil.compare(infusionHistory.getInfusionStartTime(),preInfusionHistory.getInfusionStartTime())>0){
|
|
|
+ infusionClinicRepository.deleteById(infusionClinicPO.getId());
|
|
|
+ infusionClinicRepository.insert(infusionClinic);
|
|
|
+ log.info("找到匹配的患者信息,患者ID: {}", patientPO.getId());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }else {
|
|
|
+ infusionClinicRepository.insert(infusionClinic);
|
|
|
+ log.info("找到匹配的患者信息,患者ID: {}", patientPO.getId());
|
|
|
+ }
|
|
|
} else {
|
|
|
log.warn("未找到匹配的患者信息,住院号: {}", source.getPatientCode());
|
|
|
}
|