| | |
| | | LambdaQueryWrapper<TjOrderYcxm> wq = new LambdaQueryWrapper<>(); |
| | | wq.eq(TjOrderYcxm::getTjh, tjNum); |
| | | List<TjOrderYcxm> ycxms = tjOrderYcxmService.list(wq); |
| | | Map<String, List<TjOrderYcxm>> stringListMap = ycxms.stream() |
| | | .collect(Collectors.groupingBy(TjOrderYcxm::getParentName)); |
| | | JSONArray jczs = JSONUtil.createArray(); |
| | | JSONArray ysjy = JSONUtil.createArray(); |
| | | Map<String, List<TjOrderYcxm>> stringListMap = ycxms.stream().collect(Collectors.groupingBy(TjOrderYcxm::getParentName)); |
| | | int xmXh = 1; |
| | | JSONArray jczs = JSONUtil.createArray(); |
| | | for (Map.Entry<String, List<TjOrderYcxm>> entry : stringListMap.entrySet()) { |
| | | List<TjOrderYcxm> details = entry.getValue(); |
| | | String xmmc = entry.getKey(); |
| | | details.sort(Comparator.comparing(TjOrderYcxm::getJcxm)); |
| | | boolean isXmWrite = false; |
| | | int index = 1; |
| | | JSONObject object = JSONUtil.createObj(); |
| | | for (TjOrderYcxm detail : details) { |
| | | if (!isXmWrite) { |
| | | object.putOpt("xh",xmXh); |
| | | object.putOpt("xmmc",xmmc); |
| | | xmXh++; |
| | | } |
| | | String result = detail.getJcjg(); |
| | | if (StrUtil.isNotBlank(result)) { |
| | | result = result.replaceAll("本报告仅对本次检查负责,临床医生依据病情如有疑问,请及时复查或进一步检查", ""); |
| | | StringBuilder builder = new StringBuilder(); |
| | | if (StrUtil.isBlank(result.replaceAll("\n", "").trim())) continue; |
| | | builder.append(" (").append(index).append(")").append(detail.getJcxm()).append(": ").append(result).append("\n"); |
| | | index++; |
| | | result = builder.toString(); |
| | | } |
| | | object.putOpt("result",result); |
| | | } |
| | | jczs.add(object); |
| | | } |
| | | entries.putOpt("jczs",jczs); |
| | | |
| | | JSONObject jczObject = processDetails(details, xmmc, xmXh, true); |
| | | jczs.add(jczObject); |
| | | xmXh = 1; |
| | | JSONArray ysjy = JSONUtil.createArray(); |
| | | for (Map.Entry<String, List<TjOrderYcxm>> entry : stringListMap.entrySet()) { |
| | | List<TjOrderYcxm> details = entry.getValue(); |
| | | if(null !=details && !details.isEmpty()){ |
| | | details= details.stream() |
| | | .sorted(Comparator.comparing(TjOrderYcxm::getJcxm)) |
| | | .collect(Collectors.toList()); |
| | | boolean isXmWrite = false; |
| | | int index1 = 1; |
| | | for (TjOrderYcxm detail : details) { |
| | | JSONObject obj = JSONUtil.createObj(); |
| | | String xmmc = entry.getKey().toString(); |
| | | if (!isXmWrite) { |
| | | isXmWrite = true; |
| | | obj.putOpt("xh",xmXh); |
| | | obj.putOpt("xmmc",xmmc); |
| | | xmXh++; |
| | | } |
| | | String result = detail.getJcjg(); |
| | | if (StrUtil.isNotBlank(result)) { |
| | | StringBuilder builder = new StringBuilder(); |
| | | if (StrUtil.isBlank(result.replaceAll("\n", "").trim())) continue; |
| | | builder.append(" (").append(index1).append(")").append(detail.getJcxm()).append(": ").append(result).append("\n"); |
| | | index1++; |
| | | result = builder.toString(); |
| | | } |
| | | if (StrUtil.isNotBlank(result)) { |
| | | obj.putOpt("result",result); |
| | | } else { |
| | | obj.putOpt("result","建议定期复查"); |
| | | } |
| | | String str = " "; |
| | | List<Map<String, Object>> maps = new ArrayList<>(); |
| | | |
| | | JSONObject ysjyObject = processDetails(details, xmmc, xmXh, false); |
| | | ysjy.add(ysjyObject); |
| | | String jynr = detail.getJynr(); |
| | | JSONArray array = JSONUtil.parseArray(jynr); |
| | | for (Object object : array) { |
| | | Map<String,Object> objectMap=new HashMap<>(); |
| | | JSONObject jsonObject = (JSONObject) object; |
| | | String bt = jsonObject.getStr("bt"); |
| | | String nr = jsonObject.getStr("nr"); |
| | | objectMap.put("bt",bt); |
| | | objectMap.put("nr",nr); |
| | | if(null !=bt || null !=nr) maps.add(objectMap); |
| | | } |
| | | ArrayList<String> strings = new ArrayList<>(); |
| | | List<Map<String, Object>> collect1 = maps.stream().distinct().collect(Collectors.toList()); |
| | | for (Map<String, Object> objectMap : collect1) { |
| | | String content = str + objectMap.get("bt").toString() + objectMap.get("nr").toString(); |
| | | if (StrUtil.isBlank(content)) content = " "; |
| | | strings.add(content); |
| | | } |
| | | obj.putOpt("contents",strings); |
| | | ysjy.add(obj); |
| | | } |
| | | } |
| | | } |
| | | |
| | | entries.putOpt("jczs", jczs); |
| | | entries.putOpt("ysjy", ysjy); |
| | | entries.putOpt("ysjy",ysjy); |
| | | |
| | | removeNullFields(entries); |
| | | return JSONUtil.toBean(entries, AjaxResult.class); |
| | |
| | | log.info("ltkj {}的体检报告查询详情"+maps,tjNumber); |
| | | return AjaxResult.success(maps); |
| | | |
| | | } |
| | | |
| | | private JSONObject processDetails(List<TjOrderYcxm> details, String xmmc, int xmXh, boolean isJcz) { |
| | | JSONObject object = JSONUtil.createObj(); |
| | | boolean isXmWrite = false; |
| | | int index = 1; |
| | | for (TjOrderYcxm detail : details) { |
| | | if (!isXmWrite) { |
| | | object.putOpt("xh", xmXh++); |
| | | object.putOpt("xmmc", xmmc); |
| | | isXmWrite = true; |
| | | } |
| | | String result = detail.getJcjg(); |
| | | if (StrUtil.isNotBlank(result)) { |
| | | result = result.replaceAll("本报告仅对本次检查负责,临床医生依据病情如有疑问,请及时复查或进一步检查", "") |
| | | .replaceAll("\n", "").trim(); |
| | | if (StrUtil.isNotBlank(result)) { |
| | | StringBuilder builder = new StringBuilder(); |
| | | builder.append(" (").append(index).append(")").append(detail.getJcxm()) |
| | | .append(": ").append(result).append("\n"); |
| | | index++; |
| | | result = builder.toString(); |
| | | } |
| | | } |
| | | |
| | | if (StrUtil.isNotBlank(result)) { |
| | | object.putOpt("result", result); |
| | | } else { |
| | | object.putOpt("result", isJcz ? result : "建议定期复查"); |
| | | } |
| | | if (!isJcz) { |
| | | JSONArray contents = processJynr(detail.getJynr()); |
| | | object.putOpt("contents", contents); |
| | | } |
| | | } |
| | | return object; |
| | | } |
| | | |
| | | private JSONArray processJynr(String jynr) { |
| | | JSONArray contents = JSONUtil.createArray(); |
| | | List<Map<String, Object>> maps = JSONUtil.parseArray(jynr).stream() |
| | | .map(o -> { |
| | | JSONObject jsonObject = (JSONObject) o; |
| | | Map<String, Object> map = new HashMap<>(); |
| | | String bt = jsonObject.getStr("bt"); |
| | | String nr = jsonObject.getStr("nr"); |
| | | if (StrUtil.isNotBlank(bt) || StrUtil.isNotBlank(nr)) { |
| | | map.put("bt", bt); |
| | | map.put("nr", nr); |
| | | } |
| | | return map; |
| | | }) |
| | | .filter(map -> !map.isEmpty()) |
| | | .distinct() |
| | | .collect(Collectors.toList()); |
| | | |
| | | for (Map<String, Object> map : maps) { |
| | | String content = " " + map.get("bt") + map.get("nr"); |
| | | contents.add(StrUtil.isBlank(content) ? " " : content); |
| | | } |
| | | return contents; |
| | | } |
| | | |
| | | } |