| 
					
				 | 
			
			
				@@ -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 重置父级节点() { 
			 |