浏览代码

电子病历鼠标右键

xiaochan 11 月之前
父节点
当前提交
8ab6a54527

+ 29 - 0
src/main/java/thyyxxk/webserver/config/MyMetaObjectHandler.java

@@ -0,0 +1,29 @@
+package thyyxxk.webserver.config;
+
+import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.ibatis.reflection.MetaObject;
+import org.springframework.stereotype.Component;
+import thyyxxk.webserver.utils.TokenUtil;
+
+import java.util.Date;
+
+@Slf4j
+@Component
+public class MyMetaObjectHandler implements MetaObjectHandler {
+
+    @Override
+    public void insertFill(MetaObject metaObject) {
+        Date now = new Date();
+        this.strictInsertFill(metaObject, "createTime", Date.class, now);
+        this.strictInsertFill(metaObject, "createCode", String.class, TokenUtil.getInstance().getTokenUserId());
+    }
+
+    @Override
+    public void updateFill(MetaObject metaObject) {
+        Date now = new Date();
+        this.strictUpdateFill(metaObject, "updateTime", Date.class, now);
+        this.strictUpdateFill(metaObject, "updateCode", String.class, TokenUtil.getInstance().getTokenUserId());
+    }
+
+}

+ 3 - 6
src/main/java/thyyxxk/webserver/controller/zhuyuanyizheng/emr/EmrController.java

@@ -10,10 +10,7 @@ import thyyxxk.webserver.entity.fluorescenceTest.FluorescenceSpecimenResult;
 import thyyxxk.webserver.entity.medicalinsurance.inpatient.ZyPatientInfo;
 import thyyxxk.webserver.entity.mz.MzEmrPatientData;
 import thyyxxk.webserver.entity.zhuyuanyisheng.ZyZkList;
-import thyyxxk.webserver.entity.zhuyuanyisheng.emr.DischargedEmrModifyApply;
-import thyyxxk.webserver.entity.zhuyuanyisheng.emr.EmrPatientData;
-import thyyxxk.webserver.entity.zhuyuanyisheng.emr.MedicalHistoryPrompts;
-import thyyxxk.webserver.entity.zhuyuanyisheng.emr.YzTemperatureParam;
+import thyyxxk.webserver.entity.zhuyuanyisheng.emr.*;
 import thyyxxk.webserver.entity.zhuyuanyisheng.jianyanjiancha.YshYjReq;
 import thyyxxk.webserver.entity.zhuyuanyisheng.shoushu.OpRecord;
 import thyyxxk.webserver.service.zhuyuanyisheng.emr.EmrServer;
@@ -35,8 +32,8 @@ public class EmrController {
     }
 
     @GetMapping("/getPatientDataTree")
-    public ResultVo<List<JSONObject>> getPatientDataTree(@RequestParam("patNo") String patNo,
-                                                         @RequestParam("times") Integer times) {
+    public ResultVo<List<EmrFolder>> getPatientDataTree(@RequestParam("patNo") String patNo,
+                                                        @RequestParam("times") Integer times) {
         return server.getPatientDataTree(patNo, times);
     }
 

+ 7 - 0
src/main/java/thyyxxk/webserver/dao/his/zhuyuanyisheng/emr/EmrFolderDao.java

@@ -0,0 +1,7 @@
+package thyyxxk.webserver.dao.his.zhuyuanyisheng.emr;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import thyyxxk.webserver.entity.zhuyuanyisheng.emr.EmrFolder;
+
+public interface EmrFolderDao extends BaseMapper<EmrFolder> {
+}

+ 103 - 0
src/main/java/thyyxxk/webserver/entity/zhuyuanyisheng/emr/EmrFolder.java

@@ -0,0 +1,103 @@
+package thyyxxk.webserver.entity.zhuyuanyisheng.emr;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@TableName(value = "emr_folder")
+public class EmrFolder implements Serializable {
+
+    private static final long serialVersionUID = 6280341928420491484L;
+
+    /**
+     * id
+     */
+    @TableId
+    private String id;
+
+    /**
+     * 文件夹名称
+     */
+    @TableField(value = "name")
+    private String name;
+
+    /**
+     * 父级id
+     */
+    @TableField(value = "parent")
+    private String parent;
+
+    /**
+     * 排序
+     */
+    @TableField(value = "sort")
+    private Integer sort;
+
+    /**
+     * 这个文件夹是住院还是门诊还是其他系统使用
+     */
+    @TableField(value = "folder_name")
+    private String folderName;
+
+    /**
+     * delFlag
+     */
+    @TableLogic
+    private Boolean delFlag;
+
+    /**
+     * createTime
+     */
+    @TableField(fill = FieldFill.INSERT, value = "create_time")
+    private Date createTime;
+
+    /**
+     * createCode
+     */
+    @TableField(fill = FieldFill.INSERT, value = "create_code")
+    private String createCode;
+
+    /**
+     * updateTime
+     */
+    @TableField(fill = FieldFill.UPDATE, value = "update_time")
+    private Date updateTime;
+
+    /**
+     * updateCode
+     */
+    @TableField(fill = FieldFill.UPDATE, value = "update_code")
+    private String updateCode;
+
+    @TableField(exist = false)
+    private List<Object> children;
+
+    public String get_id() {
+        return id;
+    }
+
+    public String getType() {
+        return "group-category";
+    }
+
+    public static LambdaQueryWrapper<EmrFolder> lambdaQueryWrapper() {
+        return new LambdaQueryWrapper<>();
+    }
+
+    public static QueryWrapper<EmrFolder> queryWrapper() {
+        return new QueryWrapper<>();
+    }
+
+}

+ 34 - 27
src/main/java/thyyxxk/webserver/service/zhuyuanyisheng/emr/EmrServer.java

@@ -12,10 +12,12 @@ import org.jetbrains.annotations.NotNull;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.client.RestTemplate;
+import org.yaml.snakeyaml.events.Event;
 import thyyxxk.webserver.config.exception.ExceptionEnum;
 import thyyxxk.webserver.constants.Capacity;
 import thyyxxk.webserver.constants.EmrType;
 import thyyxxk.webserver.dao.his.LoginDao;
+import thyyxxk.webserver.dao.his.zhuyuanyisheng.emr.EmrFolderDao;
 import thyyxxk.webserver.dao.his.zhuyuanyisheng.emr.EmrPatientDao;
 import thyyxxk.webserver.entity.ResultVo;
 import thyyxxk.webserver.entity.datamodify.YzTemperature;
@@ -31,12 +33,14 @@ import thyyxxk.webserver.entity.zhuyuanyisheng.emr.*;
 import thyyxxk.webserver.entity.zhuyuanyisheng.jianyanjiancha.YshYjReq;
 import thyyxxk.webserver.entity.zhuyuanyisheng.shoushu.OpRecord;
 import thyyxxk.webserver.service.PublicServer;
+import thyyxxk.webserver.service.RedisServer;
 import thyyxxk.webserver.service.externalhttp.WebSocketService;
 import thyyxxk.webserver.service.externalhttp.emr.EmrEditor;
 import thyyxxk.webserver.service.redislike.RedisLikeService;
 import thyyxxk.webserver.utils.*;
 
 import java.util.*;
+import java.util.stream.Collector;
 import java.util.stream.Collectors;
 
 
@@ -45,6 +49,9 @@ import java.util.stream.Collectors;
 public class EmrServer {
     private final EmrPatientDao dao;
     private final EmrEditor emr;
+    private final EmrFolderDao folderDao;
+    private final RedisServer redisServer;
+
     private final PublicServer publicServer;
     private final LoginDao loginDao;
     private final RedisLikeService redisLikeService;
@@ -53,9 +60,11 @@ public class EmrServer {
     private static final Map<String, String> GROUP_MAP = new HashMap<>();
     private final String HOSPITAL_WIDE_FOLDER = "3b1655a006ff11edbc820dada413ba28";
 
-    public EmrServer(EmrPatientDao dao, EmrEditor emr, PublicServer publicServer, LoginDao loginDao, RedisLikeService redisLikeService, WebSocketService socketService) {
+    public EmrServer(EmrPatientDao dao, EmrEditor emr, EmrFolderDao folderDao, RedisServer redisServer, PublicServer publicServer, LoginDao loginDao, RedisLikeService redisLikeService, WebSocketService socketService) {
         this.dao = dao;
         this.emr = emr;
+        this.folderDao = folderDao;
+        this.redisServer = redisServer;
         this.publicServer = publicServer;
         this.loginDao = loginDao;
         this.redisLikeService = redisLikeService;
@@ -69,40 +78,39 @@ public class EmrServer {
      * @param times 住院次数
      * @return 数据
      */
-    public ResultVo<List<JSONObject>> getPatientDataTree(String patNo, Integer times) {
+    public ResultVo<List<EmrFolder>> getPatientDataTree(String patNo, Integer times) {
         List<EmrPatientData> list = dao.getPatientData(patNo, times);
-        List<JSONObject> tree = new ArrayList<>(list.size());
+        List<EmrFolder> folder = redisServer.getData("emrFolder", () -> folderDao.selectList(null));
 
         if (ListUtil.isBlank(list)) {
-            return ResultVoUtil.success(tree);
-        }
-
-        if (TEMPLATE_DATA.isEmpty()) {
-            tree();
+            return ResultVoUtil.success(folder);
         }
 
-        Map<String, JSONObject> temp = JSON.parseObject(JSON.toJSONString(TEMPLATE_DATA),
-                new TypeReference<LinkedHashMap<String, JSONObject>>() {
-                });
-
-
+        Map<String, EmrFolder> folderMap = folder.stream().collect(
+                Collectors.toMap(EmrFolder::getId, a -> a, (k1, k2) -> k1)
+        );
+        List<EmrPatientData> noFolder = new ArrayList<>();
         list.forEach(item -> {
-            JSONObject js = temp.get(item.getParent());
-
-            if (js == null) {
-                js = temp.get(HOSPITAL_WIDE_FOLDER);
-            }
-
-            if (js.getJSONArray("children") == null) {
-                js.put("children", new ArrayList<>());
+            String parent = item.getParent();
+            EmrFolder emrFolder = folderMap.get(parent);
+            if (null != emrFolder) {
+                if (emrFolder.getChildren() == null) {
+                    emrFolder.setChildren(new ArrayList<>());
+                }
+                emrFolder.getChildren().add(item);
+            } else {
+                noFolder.add(item);
             }
-
-            js.getJSONArray("children").add(item);
-
         });
+        folder.add(EmrFolder.builder()
+                .id("WEIFENLEI")
+                .name("可拖动病历调整到合适文件夹,右键确认排序")
+                .children(new ArrayList<>(noFolder))
+                .sort(0)
+                .build());
 
-        tree.addAll(temp.values());
-        return ResultVoUtil.success(tree);
+        folder.sort(Comparator.comparing((o) -> o.getSort() == null ? 0 : o.getSort()));
+        return ResultVoUtil.success(folder);
     }
 
 
@@ -863,7 +871,6 @@ public class EmrServer {
             }
             GROUP_MAP.put(item.getString("code"), item.getString("parent"));
         }
-//        log.info("获取所有的父节点:{}", JSON.toJSONString(TEMPLATE_DATA));
     }
 
     private void 重置父级节点() {