Ver Fonte

fix 设备重复报警
fix 病人无泵管理
fix 病人重复设备管理

A17404李放 há 3 anos atrás
pai
commit
1c38696776

+ 43 - 49
coffee-system/src/main/java/com/coffee/bus/controller/BusClinicController.java

@@ -17,7 +17,6 @@ import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 import java.util.List;
 import java.util.Map;
-import java.util.concurrent.CompletableFuture;
 import java.util.stream.Collectors;
 
 /**
@@ -64,54 +63,49 @@ public class BusClinicController {
         }
         //填充临床信息
         result.setClinic(ClinicAnalClinicRecord.parse(clinic));
-        CompletableFuture
-                .runAsync(()->{
-                    //填充评价记录
-                    result.setEvaluations(evaluationService.list(new QueryWrapper<BusEvaluationEntity>().lambda().eq(BusEvaluationEntity::getClinicId,clinicId).orderByAsc(BusEvaluationEntity::getEvaluateTime)));
-                })
-                .thenAcceptAsync(ignore->{
-                    //填充输注记录
-                    List<BusInfusionHistoryEntity> infusionHistories = infusionHistoryService.list(new QueryWrapper<BusInfusionHistoryEntity>().lambda()
-                            .eq(BusInfusionHistoryEntity::getClinicId, clinicId)
-                            .orderByAsc(BusInfusionHistoryEntity::getStartTime));
-
-                    //添加设备别名
-                    Map<String, List<BusInfusionHistoryEntity>> infusionByDeviceId = infusionHistories.stream().collect(Collectors.groupingBy(BusInfusionHistoryEntity::getDeviceId));
-                    infusionByDeviceId.forEach((deviceId,infusions)->{
-                        String alias = deviceRegistry.getOperator(deviceId).getAlias();
-                        infusions.forEach(infusion->infusion.setAlias(alias));
-                    });
-
-                    result.fillUndoInfo(infusionHistories);
-
-
-                    List<String> infusionIds = infusionHistories.stream().map(BusInfusionHistoryEntity::getId).collect(Collectors.toList());
-                    List<BusInfusionModifyEntity> infusionModifies = infusionModifyService.list(new QueryWrapper<BusInfusionModifyEntity>().lambda()
-                            .in(BusInfusionModifyEntity::getInfusionId, infusionIds));
-                    result.fillInfusionRecords(infusionHistories,infusionModifies);
-                })
-                .thenAccept(ignore->{
-                    List<String> infusionIds = result.getInfusionRecords().stream().map(ClinicAnalInfusionRecord::getId).collect(Collectors.toList());
-                    List<BusDeviceHistoryEntity> deviceHistories = deviceHistoryService.list(new QueryWrapper<BusDeviceHistoryEntity>()
-                            .lambda()
-                            .select(BusDeviceHistoryEntity::getInfusionId,BusDeviceHistoryEntity::getPcaValidCount,BusDeviceHistoryEntity::getInfusionModifyId,
-                                    BusDeviceHistoryEntity::getPcaInvalidCount,BusDeviceHistoryEntity::getInputDose,BusDeviceHistoryEntity::getUploadTime)
-                            .in(BusDeviceHistoryEntity::getInfusionId, infusionIds)
-                            .eq(BusDeviceHistoryEntity::getMaster, true));
-                    //标记输注
-                    result.markInfusion(deviceHistories);
-                    List<ClinicStatsQueryResult> statsQueryResults = deviceHistories.stream().map(history -> {
-                        ClinicStatsQueryResult statsQueryResult = new ClinicStatsQueryResult();
-                        statsQueryResult.setInputDose(history.getInputDose());
-                        statsQueryResult.setInValidCount(history.getPcaInvalidCount());
-                        statsQueryResult.setValidCount(history.getPcaValidCount());
-                        statsQueryResult.setUploadTime(history.getUploadTime());
-                        return statsQueryResult;
-                    }).collect(Collectors.toList());
-                    //填充统计信息
-                    result.setStats(ClinicStatsReturnResult.of(statsQueryResults));
-                })
-                .join();
+
+        //填充评价记录
+        result.setEvaluations(evaluationService.list(new QueryWrapper<BusEvaluationEntity>().lambda().eq(BusEvaluationEntity::getClinicId,clinicId).orderByAsc(BusEvaluationEntity::getEvaluateTime)));
+
+
+        //填充输注记录
+        List<BusInfusionHistoryEntity> infusionHistories = infusionHistoryService.list(new QueryWrapper<BusInfusionHistoryEntity>().lambda()
+                .eq(BusInfusionHistoryEntity::getClinicId, clinicId)
+                .orderByAsc(BusInfusionHistoryEntity::getStartTime));
+
+        //添加设备别名
+        Map<String, List<BusInfusionHistoryEntity>> infusionByDeviceId = infusionHistories.stream().collect(Collectors.groupingBy(BusInfusionHistoryEntity::getDeviceId));
+        infusionByDeviceId.forEach((deviceId,infusions)->{
+            String alias = deviceRegistry.getOperator(deviceId).getAlias();
+            infusions.forEach(infusion->infusion.setAlias(alias));
+        });
+
+        result.fillUndoInfo(infusionHistories);
+
+        List<String> infusionIds = infusionHistories.stream().map(BusInfusionHistoryEntity::getId).collect(Collectors.toList());
+        List<BusInfusionModifyEntity> infusionModifies = infusionModifyService.list(new QueryWrapper<BusInfusionModifyEntity>().lambda()
+                .in(BusInfusionModifyEntity::getInfusionId, infusionIds));
+        result.fillInfusionRecords(infusionHistories,infusionModifies);
+
+        List<BusDeviceHistoryEntity> deviceHistories = deviceHistoryService.list(new QueryWrapper<BusDeviceHistoryEntity>()
+                .lambda()
+                .select(BusDeviceHistoryEntity::getInfusionId,BusDeviceHistoryEntity::getPcaValidCount,BusDeviceHistoryEntity::getInfusionModifyId,
+                        BusDeviceHistoryEntity::getPcaInvalidCount,BusDeviceHistoryEntity::getInputDose,BusDeviceHistoryEntity::getUploadTime)
+                .in(BusDeviceHistoryEntity::getInfusionId, infusionIds)
+                .eq(BusDeviceHistoryEntity::getMaster, true));
+        //标记输注
+        result.markInfusion(deviceHistories);
+        List<ClinicStatsQueryResult> statsQueryResults = deviceHistories.stream().map(history -> {
+            ClinicStatsQueryResult statsQueryResult = new ClinicStatsQueryResult();
+            statsQueryResult.setInputDose(history.getInputDose());
+            statsQueryResult.setInValidCount(history.getPcaInvalidCount());
+            statsQueryResult.setValidCount(history.getPcaValidCount());
+            statsQueryResult.setUploadTime(history.getUploadTime());
+            return statsQueryResult;
+        }).collect(Collectors.toList());
+        //填充统计信息
+        result.setStats(ClinicStatsReturnResult.of(statsQueryResults));
+
 
 
         return R.success(result);

+ 1 - 1
coffee-system/src/main/java/com/coffee/bus/controller/BusDeviceManualController.java

@@ -58,7 +58,7 @@ public class BusDeviceManualController {
 
     @PostMapping("/no_page")
     @SaCheckPermission("device:manual:query")
-    @ApiOperation(value = "查询其他监控输注列表,不分页",notes = "新增病人信息,权限【device:manual:query】")
+    @ApiOperation(value = "查询其他监控输注列表,不分页",notes = "查询其他监控输注列表,权限【device:manual:query】")
     public R<List<ManualMonitorResult>> list(@RequestBody ManualMonitorQuery query){
         return R.success(deviceManualService.selectMonitor(query));
     }

+ 0 - 1
coffee-system/src/main/java/com/coffee/bus/controller/BusPatientController.java

@@ -24,7 +24,6 @@ import com.coffee.common.crud.BaseService;
 import com.coffee.common.crud.controller.BaseQueryController;
 import com.coffee.common.exception.CustomException;
 import com.coffee.common.result.R;
-import com.coffee.common.result.ResultCode;
 import io.swagger.annotations.*;
 import lombok.AllArgsConstructor;
 import org.springframework.web.bind.annotation.*;

+ 2 - 1
coffee-system/src/main/java/com/coffee/bus/entity/PatientDeviceRepeatDomain.java

@@ -1,6 +1,7 @@
 package com.coffee.bus.entity;
 
 import com.coffee.bus.enums.DeviceAlarmEnum;
+import com.coffee.bus.enums.DeviceStatusEnum;
 import com.coffee.bus.enums.DeviceTypeEnum;
 import com.coffee.common.enums.SexEnum;
 import io.swagger.annotations.ApiModel;
@@ -40,7 +41,7 @@ public class PatientDeviceRepeatDomain {
     @ApiModelProperty("设备别名")
     private String deviceAlias;
     @ApiModelProperty("设备运行状态")
-    private DeviceTypeEnum deviceRunState;
+    private DeviceStatusEnum deviceRunState;
     @ApiModelProperty("设备报警信息")
     private DeviceAlarmEnum deviceAlarm;
     @ApiModelProperty("输注开始时间")

+ 0 - 2
coffee-system/src/main/java/com/coffee/bus/service/LocalBusDeviceHistoryService.java

@@ -1,10 +1,8 @@
 package com.coffee.bus.service;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.coffee.bus.entity.BusDeviceAlarmEntity;
 import com.coffee.bus.entity.BusDeviceHistoryEntity;
 import com.coffee.bus.mapper.BusDeviceHistoryMapper;
-import com.coffee.bus.service.dto.AlarmQuery;
 import com.coffee.bus.service.dto.DeviceHistoryQuery;
 import com.coffee.common.crud.BaseService;
 import org.springframework.stereotype.Service;

+ 2 - 2
coffee-system/src/main/java/com/coffee/bus/service/dto/PatientDeviceNoneResult.java

@@ -56,8 +56,8 @@ public class PatientDeviceNoneResult {
     @ApiModelProperty("手术医生")
     private String surgeryDoctor;
 
-    @ApiModelProperty("手术名称")
-    private String surgeryName;
+    @ApiModelProperty("asa")
+    private String asa;
 
     @ApiModelProperty("配方")
     private String formula;

+ 2 - 1
coffee-system/src/main/java/com/coffee/bus/service/dto/PatientDeviceRepeatResult.java

@@ -1,6 +1,7 @@
 package com.coffee.bus.service.dto;
 
 import com.coffee.bus.enums.DeviceAlarmEnum;
+import com.coffee.bus.enums.DeviceStatusEnum;
 import com.coffee.bus.enums.DeviceTypeEnum;
 import com.coffee.common.enums.SexEnum;
 import io.swagger.annotations.ApiModel;
@@ -60,7 +61,7 @@ public class PatientDeviceRepeatResult {
         @ApiModelProperty("设备别名")
         private String deviceAlias;
         @ApiModelProperty("设备运行状态")
-        private DeviceTypeEnum deviceRunState;
+        private DeviceStatusEnum deviceRunState;
         @ApiModelProperty("设备报警信息")
         private DeviceAlarmEnum deviceAlarm;
         @ApiModelProperty("输注开始时间")

+ 33 - 8
coffee-system/src/main/java/com/coffee/bus/websocket/listener/DeviceInfoListener.java

@@ -476,21 +476,46 @@ public class DeviceInfoListener {
             String lastAlarmSign = deviceOperator.getAlarm();
             BusDeviceAlarmEntity alarm = BusDeviceAlarmEntity.parseHistory(history);
             String alarmSign = alarm.signParm(sign);
-            if(StrUtil.isBlank(lastAlarmSign)||!alarmSign.equals(lastAlarmSign)){
-                alarmService.save(alarm);
-                cacheOperation.add(()->{
-                    //todo 发布报警信息 产生新的报警或提醒信息
-                    deviceOperator.setAlarm(alarmSign);
-                    return null;
-                });
 
+            if(StrUtil.isBlank(lastAlarmSign)||!alarmSign.equals(lastAlarmSign)){
+                //报警及提示发生变化,判断具体变化是由报警引起还是由提示引起
+                BusDeviceRunningEntity lastRunning = deviceRunningService.getOne(new QueryWrapper<BusDeviceRunningEntity>().lambda().eq(BusDeviceRunningEntity::getDeviceId, history.getDeviceId()));
+                int change=5;
+                //防止重复插入
+                if(ObjectUtil.equal(lastRunning.getAlarm(),history.getAlarm())){
+                    alarm.setAlarm(false);
+                    alarm.setAlarmState(null);
+                    --change;
+                }
+                if (ObjectUtil.equal(lastRunning.getWarnAnalgesicPoor(), history.getWarnAnalgesicPoor())) {
+                    alarm.setWarnAnalgesicPoor(false);
+                    --change;
+                }
+                if (ObjectUtil.equal(lastRunning.getWarnFlow(), history.getWarnFlow())) {
+                    alarm.setWarnFlow(null);
+                    --change;
+                }
+                if (ObjectUtil.equal(lastRunning.getWarnLowBattery(), history.getWarnLowBattery())) {
+                    alarm.setWarnLowBattery(false);
+                    --change;
+                }
+                if (ObjectUtil.equal(lastRunning.getWarnWillFinished(), history.getWarnWillFinished())) {
+                    alarm.setWarnWillFinished(false);
+                    --change;
+                }
+                if(change!=0){
+                    alarmService.save(alarm);
+                    cacheOperation.add(()->{
+                        deviceOperator.setAlarm(alarmSign);
+                        return null;
+                    });
+                }
             }
         }else {
             cacheOperation.add(()->{
                 deviceOperator.setAlarm(null);
                 return null;
             });
-            return;
         }
     }
 }

+ 2 - 2
coffee-system/src/main/resources/mapper/bus/BusPatientMapper.xml

@@ -89,7 +89,7 @@
         <result column="ana_type" property="anaType"/>
         <result column="anal_type" property="analType"/>
         <result column="surgery_doctor" property="surgeryDoctor"/>
-        <result column="surgery_name" property="surgeryName"/>
+        <result column="asa" property="asa"/>
         <result column="formula" property="formula"/>
         <result column="finished" property="finished"/>
         <result column="config_person" property="configPerson"/>
@@ -130,7 +130,7 @@
          c.ana_type as ana_type,
          c.anal_type as anal_type,
          c.surgery_doctor as surgery_doctor,
-         c.surgery_name as surgery_name,
+         c.asa as asa
          c.formula as formula,
          c.finished as finished,
          c.config_person as config_person