|
|
@@ -5,7 +5,7 @@ import cn.dev33.satoken.annotation.SaCheckPermission;
|
|
|
import cn.dev33.satoken.stp.StpLogic;
|
|
|
import cn.hutool.core.collection.CollUtil;
|
|
|
import cn.hutool.core.text.CharSequenceUtil;
|
|
|
-import cn.hutool.core.util.StrUtil;
|
|
|
+import cn.hutool.json.JSONUtil;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
|
|
import com.baomidou.mybatisplus.core.mapper.Mapper;
|
|
|
@@ -26,6 +26,7 @@ import com.coffee.common.exception.CustomException;
|
|
|
import com.coffee.common.result.R;
|
|
|
import io.swagger.annotations.*;
|
|
|
import lombok.AllArgsConstructor;
|
|
|
+import lombok.extern.slf4j.Slf4j;
|
|
|
import org.springframework.validation.annotation.Validated;
|
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
import org.springframework.web.context.request.async.DeferredResult;
|
|
|
@@ -41,6 +42,7 @@ import java.util.*;
|
|
|
@RestController
|
|
|
@AllArgsConstructor
|
|
|
@RequestMapping("/bus/patient")
|
|
|
+@Slf4j
|
|
|
@Api(tags = "医院病人管理",description = "关于病人的相关操作,查询操作权限【bus:patient:query】")
|
|
|
public class BusPatientController implements BaseQueryController<BusPatientEntity,String> {
|
|
|
private final LocalBusPatientService patientService;
|
|
|
@@ -58,18 +60,21 @@ public class BusPatientController implements BaseQueryController<BusPatientEnti
|
|
|
@SaCheckPermission("bus:patient:query")
|
|
|
@ApiOperation(value = "输注监控列表",notes = "病人监控管理列表,权限【bus:patient:query】")
|
|
|
public R<List<PatientMonitorResult>> selectPage(@RequestBody PatientMonitorQuery query){
|
|
|
+ log.info("输注监控列表,【{}】",JSONUtil.toJsonStr(query));
|
|
|
return R.success(patientService.selectAll(query));
|
|
|
}
|
|
|
|
|
|
@GetMapping("/repeat/device")
|
|
|
@ApiOperation(value = "设备重复提示列表",notes = "当出现病患同一时间绑定了多个泵时,调用该接口查询出所有设备重复报警数据,权限【无】")
|
|
|
public R<List<PatientDeviceRepeatResult>> repeatDevice(){
|
|
|
+ log.info("设备重复提示列表");
|
|
|
return R.success(patientService.repeatDevice());
|
|
|
}
|
|
|
|
|
|
@GetMapping("/none/device")
|
|
|
@ApiOperation(value = "临床无泵列表",notes = "当出现病患同一时间没有泵时,调用该接口查询出所有没有泵信息的病患临床数据,权限【无】")
|
|
|
public R<List<PatientDeviceNoneResult>> noneDevice(){
|
|
|
+ log.info("设备重复提示列表");
|
|
|
return R.success(patientService.noneDevice());
|
|
|
}
|
|
|
|
|
|
@@ -79,6 +84,7 @@ public class BusPatientController implements BaseQueryController<BusPatientEnti
|
|
|
@ApiResponse(code = 200,message = "0 病人中未出现重复,非0 病人中出现重复"),
|
|
|
})
|
|
|
public R<Long> judgeRepeat(@RequestBody List<String> patientCode){
|
|
|
+ log.info("判断所给病号中是否出现了绑定设备重复,【{}】",patientCode);
|
|
|
return R.success(patientService.count(new QueryWrapper<BusPatientEntity>().lambda().in(BusPatientEntity::getCode,patientCode).eq(BusPatientEntity::getAlarm,PatientAlarmEnum.DEVICE_REPEAT)));
|
|
|
}
|
|
|
|
|
|
@@ -89,6 +95,7 @@ public class BusPatientController implements BaseQueryController<BusPatientEnti
|
|
|
@ApiResponse(code =200 ,message = "若存在不可以结束的临床信息,返回1",response = BusDeviceRunningEntity.class)
|
|
|
})
|
|
|
public R<Boolean> judgeFinished(@RequestBody List<String> patientCodes){
|
|
|
+ log.info("判断给定病号中是否可以结束临床管理,【{}】",patientCodes);
|
|
|
if(CollUtil.isEmpty(patientCodes)){
|
|
|
throw new CustomException("请选择一个病患");
|
|
|
}
|
|
|
@@ -107,6 +114,7 @@ public class BusPatientController implements BaseQueryController<BusPatientEnti
|
|
|
public R<Boolean> finished(@PathVariable("monitorType")@ApiParam(value = "是否为无泵管理 false、无泵 true、有泵",defaultValue = "false" ) boolean haveDevice,
|
|
|
@RequestBody MonitorFinishedVo monitorFinishedVo,
|
|
|
@RequestAttribute("tenantId")@ApiParam(hidden = true) String tenantId){
|
|
|
+ log.info("结束管理,【{}】",JSONUtil.toJsonStr(monitorFinishedVo));
|
|
|
if(haveDevice){
|
|
|
R<Boolean> result = monitorFinished(monitorFinishedVo, tenantId);
|
|
|
wsPublishUtils.publishMonitorTotalCount(tenantId);
|
|
|
@@ -172,6 +180,7 @@ public class BusPatientController implements BaseQueryController<BusPatientEnti
|
|
|
@SaCheckPermission("device:patient:edit")
|
|
|
@ApiOperation(value = "病人当前监控时间重启",notes = "当结束临床后有新的输注信息产生,那么病人监控会重新显示,此时监控时间不会重新计算,需先调用该接口,权限标识为【device:patient:edit】")
|
|
|
public R<Boolean> reset(@ApiParam("临床id")@PathVariable("clinicId")String clinicId){
|
|
|
+ log.info("病人当前监控时间重启,【{}】",clinicId);
|
|
|
R<Boolean> result = R.success(clinicService.update(new UpdateWrapper<BusClinicEntity>().lambda().eq(BusClinicEntity::getId, clinicId)
|
|
|
.set(BusClinicEntity::getEndTime, null)));
|
|
|
BusClinicEntity clinic = clinicService.getById(clinicId);
|
|
|
@@ -187,6 +196,7 @@ public class BusPatientController implements BaseQueryController<BusPatientEnti
|
|
|
if(alarmEnum==null){
|
|
|
return R.success(0L);
|
|
|
}
|
|
|
+ log.info("病人报警数量统计,【{}】",alarmEnum);
|
|
|
return R.success(patientService.patientAlarmCount(alarmEnum));
|
|
|
}
|
|
|
|
|
|
@@ -194,6 +204,7 @@ public class BusPatientController implements BaseQueryController<BusPatientEnti
|
|
|
@SaCheckPermission("device:patient:shift")
|
|
|
@ApiOperation(value = "主泵切换的操作,只切换,不结束",notes = "当出现泵重复状态时,若用户想要进行主泵的切换,调用该接口进行操作,主泵切换完成后,会将副泵自动撤泵,权限标识为【device:patient:shift】")
|
|
|
public R shift(@RequestBody@Validated DeviceShiftConfig shiftConfig){
|
|
|
+ log.info("主泵切换的操作,【{}】",JSONUtil.toJsonStr(shiftConfig));
|
|
|
patientService.shift(shiftConfig);
|
|
|
wsPublishUtils.publishPatientMonitor(shiftConfig.getPatientCode(),shiftConfig.getTenantId());
|
|
|
return R.success();
|
|
|
@@ -203,6 +214,7 @@ public class BusPatientController implements BaseQueryController<BusPatientEnti
|
|
|
@SaCheckPermission("device:patient:undo")
|
|
|
@ApiOperation(value = "批量撤泵,只撤泵,不切换",notes = "当出现泵重复状态时,若用户想要取消对其他副泵的监控,则调用此接口进行撤泵操作,权限标识为【device:patient:undo】")
|
|
|
public R shift(@RequestBody@Validated ManualUndoConfig undoConfig, @RequestAttribute("tenantId")@ApiParam(hidden = true) String tenantId){
|
|
|
+ log.info("批量撤泵,【{}】",JSONUtil.toJsonStr(undoConfig));
|
|
|
undoConfig.setTenantId(tenantId);
|
|
|
//泵切换完成后,对病号报警解除
|
|
|
infusionService.undo(undoConfig,false);
|
|
|
@@ -229,6 +241,7 @@ public class BusPatientController implements BaseQueryController<BusPatientEnti
|
|
|
@SaCheckPermission("device:patient:query")
|
|
|
@ApiOperation(value = "查看病人当前监控详情",notes = "查看病人当前监控详情,权限标识为【device:patient:query】")
|
|
|
public R<PatientMonitorDetailResult> monitor(@RequestBody@Validated MonitorDetailVo vo){
|
|
|
+ log.info("查看病人监控详情,【{}】", JSONUtil.toJsonStr(vo));
|
|
|
PatientMonitorDetailResult result = new PatientMonitorDetailResult();
|
|
|
BusClinicEntity clinic =null;
|
|
|
Boolean monitorType = vo.getMonitorType();
|