|
@@ -86,42 +86,53 @@ public class QueryDrugsAndProjectsService {
|
|
|
// 获取诊断的详细情况
|
|
|
List<QueryDrugsAndProjects> zhenDuanList = new ArrayList<>();
|
|
|
|
|
|
- // 因为在 sql 中的 in 最长只能是有 2100 个 所以我需要 拆分来查询
|
|
|
- if (xiangMuList.size() > 2100) {
|
|
|
- for (QueryDrugsAndProjects projects : xiangMuList) {
|
|
|
- if (patientList.size() < 2000) {
|
|
|
- if (!patientList.contains(projects.getPatient())) {
|
|
|
- patientList.add(projects.getPatient());
|
|
|
- }
|
|
|
- } else {
|
|
|
- zhenDuanList.addAll(dao.queryZhenDuan(patientList));
|
|
|
+ for (QueryDrugsAndProjects projects : xiangMuList) {
|
|
|
+ // 移除重复的住院号或者门诊号
|
|
|
+ if (!patientList.contains(projects.getPatient())) {
|
|
|
+ patientList.add(projects.getPatient());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 判断 这个不能 大于 2100 不然会报错
|
|
|
+ if (patientList.size() > 2100) {
|
|
|
+ List<String> fenDuanChaXun = new ArrayList<>();
|
|
|
+ for (String s : patientList) {
|
|
|
+ fenDuanChaXun.add(s);
|
|
|
+ if (fenDuanChaXun.size() == 100) {
|
|
|
+ zhenDuanList.addAll(dao.queryZhenDuan(fenDuanChaXun));
|
|
|
+ // 清空 list 里面的值
|
|
|
patientList.clear();
|
|
|
}
|
|
|
}
|
|
|
- } else {
|
|
|
- // 如果 没有大于 2100 就这样
|
|
|
- for (QueryDrugsAndProjects projects : xiangMuList) {
|
|
|
- // 移除重复的元素
|
|
|
- if (!patientList.contains(projects.getPatient())) {
|
|
|
- patientList.add(projects.getPatient());
|
|
|
- }
|
|
|
+ // 在这里还要判断 如果还有剩下的 那也要查询
|
|
|
+ if (fenDuanChaXun.size() > 0) {
|
|
|
+ zhenDuanList.addAll(dao.queryZhenDuan(fenDuanChaXun));
|
|
|
}
|
|
|
+ } else {
|
|
|
zhenDuanList.addAll(dao.queryZhenDuan(patientList));
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
- for (QueryDrugsAndProjects xiangMu : xiangMuList) {
|
|
|
- StringBuilder pjZhenDuan = new StringBuilder();
|
|
|
- for (QueryDrugsAndProjects zhenDuan : zhenDuanList) {
|
|
|
- if (zhenDuan.getPatient().equals(xiangMu.getPatient()) && zhenDuan.getTimes().equals(xiangMu.getTimes())) {
|
|
|
- if (zhenDuan.getDisDiagNo() == 1) {
|
|
|
- xiangMu.setMainDiagnosis(zhenDuan.getDisDiagComment());
|
|
|
- } else {
|
|
|
- xiangMu.setDisDiagComment(pjZhenDuan.append(zhenDuan.getDisDiagComment()).append("----").toString());
|
|
|
- }
|
|
|
- }
|
|
|
+ // 把诊断做成 map 给到项目拼接
|
|
|
+ Map<String, String> pjZhenDuanMap = new HashMap<>();
|
|
|
+ for (QueryDrugsAndProjects zhenDuan : zhenDuanList) {
|
|
|
+ // 主诊断
|
|
|
+ String zhuZhenDuan = zhenDuan.getPatient() + "_" + zhenDuan.getTimes() + "_1";
|
|
|
+ // 副诊断
|
|
|
+ String fuZhenDuan = zhenDuan.getPatient() + "_" + zhenDuan.getTimes() + "_2";
|
|
|
+ if (zhenDuan.getDisDiagNo() == 1) {
|
|
|
+ pjZhenDuanMap.put(zhuZhenDuan, zhenDuan.getDisDiagComment());
|
|
|
+ } else {
|
|
|
+ // 每一个 诊断之间使用 ---- 隔开
|
|
|
+ String pj = pjZhenDuanMap.get(fuZhenDuan);
|
|
|
+ pj = null == pj ? "" : pj + "----";
|
|
|
+ pjZhenDuanMap.put(fuZhenDuan, pj + zhenDuan.getDisDiagComment());
|
|
|
}
|
|
|
}
|
|
|
+ // 把项目中的 诊断一个个 拼接起来
|
|
|
+ for (QueryDrugsAndProjects xiangMu : xiangMuList) {
|
|
|
+ String zhuZhenDuan = xiangMu.getPatient() + "_" + xiangMu.getTimes() + "_1";
|
|
|
+ String fuZhenDuan = xiangMu.getPatient() + "_" + xiangMu.getTimes() + "_2";
|
|
|
+ xiangMu.setMainDiagnosis(pjZhenDuanMap.get(zhuZhenDuan));
|
|
|
+ xiangMu.setDisDiagComment(pjZhenDuanMap.get(fuZhenDuan));
|
|
|
+ }
|
|
|
return ResultVoUtil.success(xiangMuList);
|
|
|
}
|
|
|
|