Kaynağa Gözat

add 24小时未评提醒

18339543638 3 yıl önce
ebeveyn
işleme
a9b12a0129

+ 1 - 3
nb-im/src/main/java/com/nb/im/controller/ImRoomController.java

@@ -59,7 +59,7 @@ public class ImRoomController implements BaseSaveController<ImRoomEntity,String>
     @ApiOperation(value = "查询并自动创建与病人看护人的聊天室",notes = "若存在,则返回聊天室信息,若不存在,则返回空")
     @PostMapping("/look")
     public R getChatRoom(@RequestBody@Validated ImRoomDto source){
-        if(source.isAutoCreate()&&StrUtil.isEmpty(source.getDoctorNickname())){
+        if(Boolean.TRUE.equals(source.isAutoCreate())&&StrUtil.isEmpty(source.getDoctorNickname())){
             throw new CustomException("医生昵称不可为空");
         }
         ImRoomEntity chatRoom = imRoomService.getOne(new QueryWrapper<ImRoomEntity>()
@@ -77,8 +77,6 @@ public class ImRoomController implements BaseSaveController<ImRoomEntity,String>
             source.setStatus(ImStatusEnum.SUCCESS);
             imRoomService.createChatRoom(source);
         }else if(chatRoom!=null&&ImStatusEnum.WAITING.equals(chatRoom.getStatus())&&source.isAutoCreate()){
-            chatRoom.setStatus(ImStatusEnum.SUCCESS);
-            chatRoom.setSuccessTime(new Date());
             imRoomService.successChatRoom(chatRoom.getId(),source.getDoctorId());
         }
         return R.success(chatRoom);

+ 3 - 0
nb-im/src/main/java/com/nb/im/service/LocalImRoomService.java

@@ -57,6 +57,9 @@ public class LocalImRoomService extends BaseService<ImRoomMapper, ImRoomEntity,S
         if(entity.getManageType()==null&& StrUtil.isNotEmpty(entity.getPatientId())){
             entity.setManageType(patientClient.getManageType(entity.getPatientId()));
         }
+        if(ImStatusEnum.SUCCESS.equals(entity.getStatus())){
+            entity.setSuccessTime(new Date());
+        }
     }
 
     @Override

+ 0 - 2
nb-service-api/app-assistant-api/src/main/java/com/nb/app/assistant/api/entity/AssistantEvalEntity.java

@@ -34,12 +34,10 @@ import java.util.*;
 public class AssistantEvalEntity extends GenericEntity<String> {
     @ApiModelProperty(value = "临床id",required = true)
     @NotNull(message = "临床id不能为空")
-    @JsonIgnoreProperties(allowSetters = true)
     private String clinicId;
 
     @ApiModelProperty(value = "病人id",required = true)
     @NotNull(message = "病人id不能为空")
-    @JsonIgnoreProperties(allowSetters = true)
     private String patientId;
     
     @ApiModelProperty(value = "评价时间",required = true)

+ 2 - 0
nb-service-api/web-service-api/src/main/java/com/nb/web/api/feign/result/PatientMonitorResult.java

@@ -203,6 +203,8 @@ public class PatientMonitorResult implements Serializable {
     @ApiModelProperty("提醒字段")
     private String warns;
 
+    @ApiModelProperty("最后上传时间")
+    private Date lastUploadTime;
 
     private void judgeWarnWillFinished() {
         if(!Boolean.TRUE.equals(this.warnWillFinished)){

+ 30 - 17
nb-service/web-service/src/main/java/com/nb/web/service/bus/hospital/HospitalManager.java

@@ -12,6 +12,8 @@ import com.nb.web.api.bean.Script;
 import com.nb.web.api.entity.BusHospitalConfigEntity;
 import com.nb.web.api.entity.BusInfusionHistoryEntity;
 import com.nb.web.api.enums.DeviceStatusEnum;
+import com.nb.web.api.feign.query.PatientMonitorQuery;
+import com.nb.web.api.feign.result.PatientMonitorResult;
 import com.nb.web.service.bus.entity.*;
 import com.nb.web.service.bus.hospital.config.*;
 import com.nb.web.service.bus.hospital.config.bean.*;
@@ -95,27 +97,38 @@ public class HospitalManager {
         this.extraConfigHandler=new HospitalFunctionExtraConfigHandler(storage,hospitalId);
         this.codeHandler=new HospitalPatientCodeHandler(storage,hospitalId);
         this.infusionHistoryService=SpringUtil.getBean(LocalBusInfusionHistoryService.class);
+        this.patientService=SpringUtil.getBean(LocalBusPatientService.class);
         init(configStorageManager);
 
         singleOffsetsDeviceExecutor.scheduleWithFixedDelay(()->{
-            List<BusInfusionHistoryEntity> infusions = infusionHistoryService.list(new QueryWrapper<BusInfusionHistoryEntity>()
-                    .lambda()
-                    .eq(BusInfusionHistoryEntity::getFinished, false)
-                    .eq(BusInfusionHistoryEntity::getIsUndo, false));
-            infusions
-                    .parallelStream()
-                    .forEach(infusionInfo->{
-                        BusDeviceRunningEntity source = BeanUtil.toBean(infusionInfo, BusDeviceRunningEntity.class);
-                        source.setInfusionId(infusionInfo.getId());
-                        source.setUploadTime(infusionInfo.getLastUploadTime());
-                        extraConfigHandler.handler(source);
-                        autoUndoConfigHandler.handler(source);
-                        finishMonitorConfigHandler.handler(source);
-                    });
-
+                    try {
+                        PatientMonitorQuery query = new PatientMonitorQuery();
+                        query.setTenantId(this.getHospitalId());
+                        List<PatientMonitorResult> patientMonitorResults = patientService.selectAll(query);
+                        patientMonitorResults
+                                .forEach(infusionInfo->{
+                                    BusDeviceRunningEntity source = BeanUtil.toBean(infusionInfo, BusDeviceRunningEntity.class);
+                                    source.setRunState(infusionInfo.getDeviceRunState());
+                                    source.setAlarm(infusionInfo.getDeviceAlarm());
+                                    source.setInfusionId(infusionInfo.getInfusionId());
+                                    source.setUploadTime(infusionInfo.getLastUploadTime());
+                                    source.setTenantId(this.getHospitalId());
+                                    extraConfigHandler.handler(source);
+                                    autoUndoConfigHandler.handler(source);
+                                    finishMonitorConfigHandler.handler(source);
+                                });
+                    }catch (Exception e){
+                        e
+                                .printStackTrace();
+                    }
 
-        },
-        0,  Math.addExact(30,RandomUtil.randomInt(0,60)),TimeUnit.MINUTES);
+//                    List<BusInfusionHistoryEntity> infusions = infusionHistoryService.list(new QueryWrapper<BusInfusionHistoryEntity>()
+//                            .lambda()
+//                            .eq(BusInfusionHistoryEntity::getFinished, false)
+//                            .eq(BusInfusionHistoryEntity::getIsUndo, false)
+//                            .eq(BusInfusionHistoryEntity::getTenantId,this.getHospitalId()));
+                },
+                0,  Math.addExact(30,RandomUtil.randomInt(0,60)),TimeUnit.MINUTES);
     }
 
     private void init(ConfigStorageManager configStorageManager){

+ 3 - 0
nb-service/web-service/src/main/java/com/nb/web/service/bus/hospital/config/HospitalFinishMonitorConfigHandler.java

@@ -62,6 +62,9 @@ public class HospitalFinishMonitorConfigHandler extends AbstractHospitalConfigHa
         }
         judgeShutdownAutoFinish(source,config);
 
+        if (DeviceStatusEnum.NoSignal.equals(source.getRunState())) {
+            judgeNoSignalAutoFinish(source.getPatientId(),source.getDeviceId(),source.getTenantId(),source.getInfusionId(),source.getUploadTime());
+        }
         if(lastNoSignalFinish !=null){
             delayMessageManager.remove(lastNoSignalFinish);
         }

+ 1 - 0
nb-service/web-service/src/main/java/com/nb/web/service/bus/service/LocalBusPatientService.java

@@ -518,6 +518,7 @@ public class LocalBusPatientService extends BaseService<BusPatientMapper, BusPat
     }
 
     @Override
+    @Transactional(rollbackFor = Exception.class,readOnly = true)
     public ClinicManageEnum getManageType(String patientId) {
         String clinicId = getClinicId(patientId);
         if(StrUtil.isBlank(clinicId)){

+ 3 - 0
nb-service/web-service/src/main/resources/mapper/bus/BusPatientMapper.xml

@@ -44,6 +44,7 @@
         <result column="append_dose" property="appendDose"/>
         <result column="append_lock_time" property="appendLockTime"/>
         <result column="max_dose" property="maxDose"/>
+        <result column="last_upload_time" property="lastUploadTime"/>
         <!--<result column="self_control_count" property="selfControlCount"/>-->
         <result column="self_control_lock_time" property="selfControlLockTime"/>
         <result column="pca_valid_count" property="pcaValidCount"/>
@@ -207,6 +208,7 @@
         i.start_time as infusion_start_time,
         i.remark as remark,
         i.type as device_type,
+        i.last_upload_time as last_upload_time,
         d.alias as device_alias,
         c.patient_gender as patient_gender,
         c.`patient_name` as patient_name,
@@ -406,6 +408,7 @@
         i.flow_down_limit as flow_down_limit,
         i.flow_adjust_rate as flow_adjust_rate,
         i.run_state as run_state,
+        i.last_upload_time as last_upload_time,
         i.warn_will_finished as warn_will_finished,
         i.warn_analgesic_poor as warn_analgesic_poor,
         i.warn_low_battery as warn_low_battery,