18339543638 3 rokov pred
rodič
commit
204cf1da51

+ 3 - 0
nb-service-api/web-service-api/src/main/java/com/nb/web/api/entity/BusInfusionHistoryEntity.java

@@ -80,6 +80,9 @@ public class BusInfusionHistoryEntity extends CommonDeviceParam<String,String> {
     @ApiModelProperty(value = "该次输注是否已结束")
     private Boolean finished;
 
+    @ApiModelProperty(value = "是否为测试数据")
+    private Boolean test;
+
     /**
      * 智能泵-该次输注过程中是否出现过加档受限,若出现过,则此次输注过程中出现的低输注不会消失
      */

+ 7 - 0
nb-service-api/web-service-api/src/main/java/com/nb/web/api/entity/common/BusDeviceRunningEntity.java

@@ -2,6 +2,7 @@ package com.nb.web.api.entity.common;
 
 
 
+import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.nb.web.api.enums.DeviceTypeEnum;
 import com.nb.core.enums.SexEnum;
@@ -79,6 +80,9 @@ public class BusDeviceRunningEntity extends CommonDeviceParam<String,String> {
     @JsonIgnoreProperties(allowSetters = true)
     private Date uploadTime;
 
+    @ApiModelProperty("是否为测试数据")
+    private Boolean test;
+
     /**
      * 当前运行状态所绑定的输注修改记录id,只在设备上传解析过程中使用,其他地方无用处
      */
@@ -157,6 +161,7 @@ public class BusDeviceRunningEntity extends CommonDeviceParam<String,String> {
         // 属性上传时间
         this.setUploadTime(items.getDate());
 
+
         this.setDeviceId(deviceName);
         this.setClassification( items.getString(PumpParams.classification));
         this.setDataNumber(items.getInteger(PumpParams.dataNumber));
@@ -172,6 +177,8 @@ public class BusDeviceRunningEntity extends CommonDeviceParam<String,String> {
 
         this.setSelfControlLockTime(items.getBigDecimal(PumpParams.lockTime));
 
+        this.setTest(StrUtil.equals("2",items.getString(PumpParams.dataType)));
+
         this.setContinueDose(items.getBigDecimal(PumpParams.flow));
         this.setType( DeviceTypeUtils.getDeviceType(items.getInteger(PumpParams.pumpType)));
         this.setPcaValidCount(items.getInteger(PumpParams.pcaValid));

+ 1 - 1
nb-service-api/web-service-api/src/main/java/com/nb/web/api/utils/PumpParams.java

@@ -53,7 +53,7 @@ public enum PumpParams {
 
 
 
-
+    dataType("dataType","数据类型,1、业务数据 2、测试数据"),
 
     CRC("CRC","CRC");
 

+ 3 - 1
nb-service/iot-service/src/main/java/com/nb/aliyun/service/AliyunConsumerGroupService.java

@@ -189,7 +189,9 @@ public class AliyunConsumerGroupService {
                 deviceRunning.updateFieldsByItems(deviceName,items);
                 deviceRunning.setMsgId(messageId);
                 hospitalLog.setType(HospitalLogEnum.ALI_DATA_UPLOAD);
-                hospitalLog.setTenantId(iotMsgHandler.sync(deviceRunning,deviceName).getTenantId());
+                BusDeviceRunningEntity result = iotMsgHandler.sync(deviceRunning, deviceName);
+                hospitalLog.setTenantId(result.getTenantId());
+                hospitalLog.setResult(JSONUtil.toJsonStr(result));
             }else if(topic.matches("[\\w\\/]+thing/lifecycle$")){// 设备生命周期
                 // 获取生命周期类型
                 String action = content.getString("action");

+ 4 - 3
nb-service/web-service/src/main/java/com/nb/web/service/bus/controller/BusInfusionHistoryController.java

@@ -98,7 +98,8 @@ public class BusInfusionHistoryController implements BaseQueryController<BusInfu
                         BusInfusionHistoryEntity::getStartTime,
                         BusInfusionHistoryEntity::getPatientCode,
                         BusInfusionHistoryEntity::getPatientId)
-                .eq(BusInfusionHistoryEntity::getFinished, false));
+                .eq(BusInfusionHistoryEntity::getFinished, false)
+                .eq(BusInfusionHistoryEntity::getTest,true));
         List<TestBusInfusionHistory> result = infusions
                 .stream()
                 .map(TestBusInfusionHistory::valueOf)
@@ -141,8 +142,8 @@ public class BusInfusionHistoryController implements BaseQueryController<BusInfu
                 .lambda()
                 .in(BusInfusionHistoryEntity::getId, ids)
                 .set(BusInfusionHistoryEntity::getFinished, true));
-        infusions
-                .forEach(infusion-> wsPublishUtils.asyncPublishPatientMonitor(infusion.getPatientId(),infusion.getTenantId()));
+//        infusions
+//                .forEach(infusion-> wsPublishUtils.asyncPublishPatientMonitor(infusion.getPatientId(),infusion.getTenantId()));
         return R.success(true);
     }
 

+ 37 - 31
nb-service/web-service/src/main/java/com/nb/web/service/bus/listener/DeviceInfoListener.java

@@ -114,19 +114,22 @@ public class DeviceInfoListener implements IIotMsgHandler {
             if(log.isDebugEnabled()){
                 log.debug("消息【{}】,设备号【{}】处理输注参数成功,处理后结果为【{}】",device.getMsgId(),device.getDeviceId(),JSONUtil.toJsonStr(device));
             }
-            //格式化病号
-            formatPatientCode(device);
-            if(log.isDebugEnabled()){
-                log.debug("消息【{}】,设备号【{}】格式化病号,处理后结果为【{}】",device.getMsgId(),device.getDeviceId(),JSONUtil.toJsonStr(device));
-            }
-            //处理输注修改参数,处理病人信息
-            handleInfusionModify(device,deviceOperator,cacheOperation);
-            if(log.isDebugEnabled()){
-                log.debug("消息【{}】,设备号【{}】处理输注修改参数、病人信息成功,处理后结果为【{}】",device.getMsgId(),device.getDeviceId(),JSONUtil.toJsonStr(device));
-            }
 
-            //根据功能配置进行最后的一些状态处理
-            handleHospitalConfigLast(device,infusionHistory);
+            //测试数据不进行病人数据的计算
+            if(Boolean.FALSE.equals(infusionHistory.getTest())){
+                //格式化病号
+                formatPatientCode(device);
+                if(log.isDebugEnabled()){
+                    log.debug("消息【{}】,设备号【{}】格式化病号,处理后结果为【{}】",device.getMsgId(),device.getDeviceId(),JSONUtil.toJsonStr(device));
+                }
+                //处理输注修改参数,处理病人信息
+                handleInfusionModify(device,deviceOperator,cacheOperation);
+                if(log.isDebugEnabled()){
+                    log.debug("消息【{}】,设备号【{}】处理输注修改参数、病人信息成功,处理后结果为【{}】",device.getMsgId(),device.getDeviceId(),JSONUtil.toJsonStr(device));
+                }
+                //根据功能配置进行最后的一些状态处理
+                handleHospitalConfigLast(device,infusionHistory);
+            }
 
             //处理历史运行数据
             BusDeviceHistoryEntity history=handleRunningHistory(device);
@@ -159,26 +162,29 @@ public class DeviceInfoListener implements IIotMsgHandler {
             cacheOperation.add(()->{
                 deviceOperator.setUploadTime(device.getUploadTime());
                 wsPublishUtils.publishPatientMonitor(device.getPatientId(),device.getTenantId());
-                if (Boolean.TRUE.equals(device.isResetUndo())||Boolean.TRUE.equals(device.isInfusionModify())) {
-                    if (Boolean.TRUE.equals(device.isInfusionModify())) {
-                        wsPublishUtils.publishDeviceNone(device.getTenantId());
+                //非测试数据再进行处理
+                if(!Boolean.TRUE.equals(device.getTest())){
+                    if (Boolean.TRUE.equals(device.isResetUndo())||Boolean.TRUE.equals(device.isInfusionModify())) {
+                        if (Boolean.TRUE.equals(device.isInfusionModify())) {
+                            wsPublishUtils.publishDeviceNone(device.getTenantId());
+                        }
+                        wsPublishUtils.publishDeviceRepeat(device.getTenantId());
+                    }
+                    if (Boolean.TRUE.equals(device.isResetClinic())) {
+                        wsPublishUtils.publishMonitorTotalCount(device.getTenantId());
+                    }
+                    if(!device.isMaybeLowInfusion()){
+                        deviceOperator.setNonLowInfusionTime(device.getUploadTime());
+                    }
+                    wsPublishUtils.publishMonitorStateCount(device.getTenantId());
+                    if(device.isNewInfusion()){
+                        CompletableFuture.runAsync(()->patientService.getPatientInfoFromHis(device.getTenantId(),device.getFormatPatientCode(),10,false)
+                                ,executor)
+                                .exceptionally(t->{
+                                    log.warn("新的输注产生后,拉取病号【{}】信息失败,失败原因:【{}】",device.getFormatPatientCode(), ExceptionUtil.getExceptionMsg(t));
+                                    return null;
+                                });
                     }
-                    wsPublishUtils.publishDeviceRepeat(device.getTenantId());
-                }
-                if (Boolean.TRUE.equals(device.isResetClinic())) {
-                    wsPublishUtils.publishMonitorTotalCount(device.getTenantId());
-                }
-                if(!device.isMaybeLowInfusion()){
-                    deviceOperator.setNonLowInfusionTime(device.getUploadTime());
-                }
-                wsPublishUtils.publishMonitorStateCount(device.getTenantId());
-                if(device.isNewInfusion()){
-                    CompletableFuture.runAsync(()->patientService.getPatientInfoFromHis(device.getTenantId(),device.getFormatPatientCode(),10,false)
-                            ,executor)
-                            .exceptionally(t->{
-                                log.warn("新的输注产生后,拉取病号【{}】信息失败,失败原因:【{}】",device.getFormatPatientCode(), ExceptionUtil.getExceptionMsg(t));
-                                return null;
-                            });
                 }
                 return null;
             });