瀏覽代碼

电子病历聊天室

DESKTOP-0GD05B0\Administrator 2 年之前
父節點
當前提交
91657edd80

+ 5 - 0
src/main/java/thyyxxk/webserver/service/zhuyuanyisheng/EmrServer.java

@@ -19,6 +19,7 @@ import thyyxxk.webserver.entity.ResultVo;
 import thyyxxk.webserver.entity.datamodify.YzTemperature;
 import thyyxxk.webserver.entity.dictionary.CodeName;
 import thyyxxk.webserver.entity.drg.AuxiliaryFillingOfDiagnosis;
+import thyyxxk.webserver.entity.inpatient.patient.Patient;
 import thyyxxk.webserver.entity.login.UserInfo;
 import thyyxxk.webserver.entity.medicalinsurance.inpatient.ZyPatientInfo;
 import thyyxxk.webserver.entity.zhuyuanyisheng.emr.*;
@@ -733,4 +734,8 @@ public class EmrServer {
         return str;
     }
 
+    public ResultVo<List<Patient>> getEditorUsers() {
+        return ResultVoUtil.success();
+    }
+
 }

+ 29 - 1
src/main/java/thyyxxk/webserver/websocket/WebSocketServer.java

@@ -4,12 +4,15 @@ import com.alibaba.fastjson.JSONObject;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Component;
 import thyyxxk.webserver.config.exception.ExceptionEnum;
+import thyyxxk.webserver.entity.inpatient.patient.Patient;
 import thyyxxk.webserver.utils.TokenUtil;
 
 import javax.websocket.*;
 import javax.websocket.server.PathParam;
 import javax.websocket.server.ServerEndpoint;
 import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.atomic.AtomicInteger;
@@ -23,12 +26,22 @@ import java.util.concurrent.atomic.AtomicInteger;
 public class WebSocketServer {
     private static final AtomicInteger ONLINE_COUNT = new AtomicInteger();
     private static final ConcurrentHashMap<String, Session> SESSION_MAP = new ConcurrentHashMap<>();
+    private static final ConcurrentHashMap<String, Session> EMR_MAP = new ConcurrentHashMap<>();
+    private static final AtomicInteger EMR_COUNT = new AtomicInteger();
 
     @OnOpen
     public void onOpen(Session session, @PathParam("sid") String sid) {
         if ("update".equals(sid)) {
             return;
         }
+
+        if (sid.endsWith("Emr")) {
+            EMR_MAP.put(sid, session);
+            EMR_COUNT.incrementAndGet();
+            log.info("有新的电子病历连接加入:{},当前在线人数为:{}", sid, ONLINE_COUNT.get());
+            return;
+        }
+
         if (!sid.endsWith("Screen")) {
             SESSION_MAP.forEach((item, index) -> {
                 if (sid.split("-")[0].equals(item.split("-")[0])) {
@@ -36,6 +49,7 @@ public class WebSocketServer {
                 }
             });
         }
+
         SESSION_MAP.put(sid, session);
         ONLINE_COUNT.incrementAndGet();
         log.info("有新连接加入:{},当前在线人数为:{}", sid, ONLINE_COUNT.get());
@@ -43,6 +57,11 @@ public class WebSocketServer {
 
     @OnClose
     public void onClose(@PathParam("sid") String sid) {
+        if (sid.endsWith("Emr")) {
+            EMR_MAP.remove(sid);
+            EMR_COUNT.decrementAndGet();
+            return;
+        }
         SESSION_MAP.remove(sid);
         ONLINE_COUNT.decrementAndGet();
         log.info("有一连接关闭:{},当前在线人数为:{}", sid, ONLINE_COUNT.get());
@@ -58,6 +77,16 @@ public class WebSocketServer {
         log.error("【session id: " + session.getId() + "】Socket连接发生错误", error);
     }
 
+    public static List<Patient> getEditorUsersByPatNo() {
+        List<Patient> p = new ArrayList<>();
+
+        for (Map.Entry<String, Session> item : EMR_MAP.entrySet()) {
+            log.info("数据:{}", item.getKey());
+        }
+
+        return p;
+    }
+
     public static String getSid() {
         String token = TokenUtil.getTokenUserId();
         for (Map.Entry<String, Session> entry : SESSION_MAP.entrySet()) {
@@ -69,7 +98,6 @@ public class WebSocketServer {
     }
 
 
-
     public static int sendMessage(String sid, String message) {
         Session session = SESSION_MAP.get(sid);
         if (null == session) {