Sfoglia il codice sorgente

add 病号格式化

A17404李放 3 anni fa
parent
commit
6699960092

+ 1 - 1
nb-admin/Dockerfile

@@ -1,6 +1,6 @@
 FROM docker.io/java:8
 
-ADD target/coffee-admin.jar /pump.jar
+ADD target/nb-admin.jar /pump.jar
 ADD src/main/resources/python/jython-standalone-2.7.1.jar /jython-standalone-2.7.1.jar
 RUN bash -c "touch /pump.jar"
 RUN echo "Asia/shanghai" > /etc/timezone

+ 5 - 5
nb-admin/src/main/java/com/coffee/admin/controller/common/CommonController.java

@@ -71,15 +71,15 @@ public class CommonController {
 
     @PostMapping("/upload")
     @SneakyThrows
-    public R<SysStorage> upload(@RequestParam("file") MultipartFile file, @RequestParam("file") String bizPath) {
-        if (StrUtil.isBlank(bizPath)) {
-            throw new CustomException(ResultCode.PARAM_TYPE_ERROR.getMessage());
-        }
+    public R<SysStorage> upload(@RequestParam("file") MultipartFile file) {
+//        if (StrUtil.isBlank(bizPath)) {
+//            throw new CustomException(ResultCode.PARAM_TYPE_ERROR.getMessage());
+//        }
         if (Objects.isNull(file)) {
             throw new CustomException(ResultCode.PARAM_TYPE_ERROR.getMessage());
         }
         FileStorageStrategy fileStorageStrategy = fileStorageContext.getContext();
-        SysStorage storage = fileStorageStrategy.upload(file, bizPath);
+        SysStorage storage = fileStorageStrategy.upload(file, String.valueOf(System.currentTimeMillis()));
         return R.success(storage);
     }
 

+ 2 - 1
nb-system/src/main/java/com/coffee/bus/enums/ConfigEnum.java

@@ -16,7 +16,8 @@ import lombok.Getter;
 public enum  ConfigEnum implements IEnum<Integer> {
     undo(0,"撤泵配置"),
     eval(1,"评价配置"),
-    other(2,"其他配置");
+    other(2,"其他配置"),
+    patientCode(3,"病号配置");
 
     private Integer value;
     private String text;

+ 11 - 4
nb-system/src/main/java/com/coffee/bus/hospital/HospitalManager.java

@@ -10,10 +10,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.coffee.bus.bean.Script;
 import com.coffee.bus.entity.*;
-import com.coffee.bus.hospital.config.HospitalAutoUndoConfigHandler;
-import com.coffee.bus.hospital.config.HospitalFinishMonitorConfigHandler;
-import com.coffee.bus.hospital.config.HospitalFunctionAnalConfigHandler;
-import com.coffee.bus.hospital.config.HospitalFunctionExtraConfigHandler;
+import com.coffee.bus.hospital.config.*;
 import com.coffee.bus.hospital.config.bean.*;
 import com.coffee.bus.hospital.his.HisScriptSession;
 import com.coffee.bus.hospital.his.strategy.HisStrategyEnum;
@@ -62,6 +59,8 @@ public class HospitalManager {
 
     private HospitalFunctionExtraConfigHandler extraConfigHandler;
 
+    private HospitalPatientCodeHandler codeHandler;
+
     private LocalBusHospitalConfigService hospitalConfigService;
 
     private ScriptManager scriptManager;
@@ -156,6 +155,10 @@ public class HospitalManager {
                     FunctionExtraConfig extraConfig = otherConfig.getOther();
                     extraConfigHandler.setConfig(extraConfig);
                     break;
+                case patientCode:
+                    FunctionPatientCodeConfig codeConfig = JSONUtil.toBean(JSONUtil.toJsonStr(param), FunctionPatientCodeConfig.class);
+                    codeHandler.setConfig(codeConfig);
+                    break;
                 default:break;
             }
         }
@@ -176,6 +179,9 @@ public class HospitalManager {
         finishMonitorConfigHandler.handler(source);
     }
 
+    public void formatPatientCode(BusDeviceRunningEntity source){
+        codeHandler.handler(source);
+    }
 
     public void refreshScript(){
         BusHospitalEntity hospital = hospitalService.getById(hospitalId);
@@ -232,4 +238,5 @@ public class HospitalManager {
                     });
         }
     }
+
 }

+ 87 - 0
nb-system/src/main/java/com/coffee/bus/hospital/config/HospitalPatientCodeHandler.java

@@ -0,0 +1,87 @@
+package com.coffee.bus.hospital.config;
+
+import cn.hutool.core.text.CharSequenceUtil;
+import cn.hutool.json.JSONUtil;
+import com.coffee.bus.entity.BusDeviceRunningEntity;
+import com.coffee.bus.hospital.config.bean.FunctionFinishMonitorConfig;
+import com.coffee.bus.hospital.config.bean.FunctionPatientCodeConfig;
+import com.coffee.bus.hospital.enums.ConfigHandlerEnums;
+import com.coffee.bus.registry.device.DeviceRegistry;
+import com.coffee.bus.service.LocalBusInfusionHistoryService;
+import com.coffee.bus.utils.WsPublishUtils;
+import com.coffee.common.cache.ConfigStorage;
+import com.coffee.common.util.RedissonUtil;
+import lombok.extern.slf4j.Slf4j;
+
+import java.util.Objects;
+
+/**
+ * @author lifang
+ * @version 1.0.0
+ * @ClassName HospitalPatientCodeHandler.java
+ * @Description TODO
+ * @createTime 2022年06月25日 14:38:00
+ */
+@Slf4j
+public class HospitalPatientCodeHandler  extends AbstractHospitalConfigHandler<FunctionPatientCodeConfig, BusDeviceRunningEntity> {
+
+    public HospitalPatientCodeHandler(ConfigStorage configStorage, String hospitalId, RedissonUtil redissonUtil, LocalBusInfusionHistoryService infusionHistoryService, DeviceRegistry deviceRegistry, WsPublishUtils wsPublishUtils) {
+        super(configStorage, hospitalId, redissonUtil, infusionHistoryService, deviceRegistry, wsPublishUtils);
+    }
+
+    @Override
+    public ConfigHandlerEnums getId() {
+        return ConfigHandlerEnums.patientCode;
+    }
+
+    @Override
+    public String getDescription() {
+        return "病号格式化处理";
+    }
+
+    @Override
+    public void handler(BusDeviceRunningEntity source) {
+        FunctionPatientCodeConfig config = this.getConfig().as(FunctionPatientCodeConfig.class);
+        if(config==null||!Boolean.TRUE.equals(config.getEnable())|| Objects.isNull(config.getFillChar())){
+            log.warn("id:{},配置名称:{},不存在",hospitalId,getId());
+            return;
+        }
+        source.setPatientCode(formatPatientCode(config,source.getPatientCode(),source.getTenantId()));
+    }
+
+    /**
+     * 描述: 病号格式化处理
+     * @author lifang
+     * @date 2022/6/25 14:40
+     * @param config
+     * @param code
+     * @return String
+     */
+    private String formatPatientCode(FunctionPatientCodeConfig config,String code,String tenantId){
+        String fillChar = config.getFillChar();
+        Boolean fillLeft = config.getFillLeft();
+        Integer length = config.getLength();
+        if(Objects.isNull(fillChar)
+                ||Objects.isNull(fillLeft)
+                ||Objects.isNull(length)){
+            log.warn("医院【{}】,病号转换配置【{}】有误",tenantId, JSONUtil.toJsonStr(config));
+            return code;
+        }
+        String appendChars="";
+        if(CharSequenceUtil.length(code)<length){
+            StringBuffer append=new StringBuffer();
+            int subSize=length-CharSequenceUtil.length(code);
+            while (CharSequenceUtil.length(append)<subSize){
+                append.append(fillChar);
+            }
+            appendChars=append.substring(0,subSize-1);
+        }
+        if(Boolean.TRUE.equals(fillLeft)){
+            code=appendChars+code;
+        }else {
+            code=code+appendChars;
+        }
+        return code;
+    }
+
+}

+ 28 - 0
nb-system/src/main/java/com/coffee/bus/hospital/config/bean/FunctionPatientCodeConfig.java

@@ -0,0 +1,28 @@
+package com.coffee.bus.hospital.config.bean;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @author lifang
+ * @version 1.0.0
+ * @ClassName FunctionPatientCodeConfig.java
+ * @Description 病号转换配置
+ * @createTime 2022年06月25日 14:21:00
+ */
+@ApiModel("病号配置")
+@Data
+public class FunctionPatientCodeConfig implements Serializable {
+    @ApiModelProperty("是否开启病号转换")
+    private Boolean enable;
+    @ApiModelProperty("是否左填充")
+    private Boolean fillLeft;
+    @ApiModelProperty("填充字符,限制长度为 1 ")
+    private String fillChar;
+    @ApiModelProperty("长度")
+    private Integer length;
+
+}

+ 2 - 1
nb-system/src/main/java/com/coffee/bus/hospital/enums/ConfigHandlerEnums.java

@@ -15,7 +15,8 @@ public enum ConfigHandlerEnums {
     autoUndo("自动撤泵配置"),
     finishMonitor("自动结束管理配置"),
     anal("镇痛不足配置"),
-    extra("其他配置");
+    extra("其他配置"),
+    patientCode("病号配置");
 
     @Getter
     private String description;

+ 9 - 0
nb-system/src/main/java/com/coffee/bus/websocket/listener/DeviceInfoListener.java

@@ -84,6 +84,8 @@ public class DeviceInfoListener {
                 throw new RuntimeException("设备数据中分包标识不能为空");
             }
             long startTime = System.currentTimeMillis();
+
+
             //对设备数据的一些参数进行初始化设置
             init(device);
 
@@ -91,6 +93,8 @@ public class DeviceInfoListener {
             DeviceOperator deviceOperator = deviceRegistry.getOperator(deviceId);
             //缓存操作
             List<Supplier<?>> cacheOperation=new ArrayList<>();
+            //格式化病号
+            formatPatientCode(device);
             //处理输注参数
             BusInfusionHistoryEntity infusionHistory = handleInfusionHistory(device, deviceOperator, cacheOperation);
             //处理输注修改参数
@@ -342,6 +346,11 @@ public class DeviceInfoListener {
     }
 
 
+    private void formatPatientCode(BusDeviceRunningEntity device){
+        hospitalManagerRegister
+                .get(device.getTenantId())
+                .formatPatientCode(device);
+    }
     /**
      * 医院相关配置对于设备数据的处理
      * @param device 设备运行数据