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