|
|
|
@ -2324,6 +2324,20 @@ public class AmsReportServiceImpl implements AmsReportService { |
|
|
|
if (StrUtil.isNotEmpty(answers)) { |
|
|
|
answers = answers.substring(0, answers.length() - 1); |
|
|
|
} |
|
|
|
//DCYY-TP特殊处理:无得分量表,答案存于record_desc中
|
|
|
|
if ((StrUtil.isEmpty(answers) || "null".equals(answers)) && "DCYY-TP".equals(exportInfos.get(i).getScaleCode())) { |
|
|
|
if (CollUtil.isNotEmpty(detail.getScores())) { |
|
|
|
for (RmsVo.ReportScore reportScore : detail.getScores()) { |
|
|
|
if ("DCYY-TP".equals(reportScore.getCode()) && CollUtil.isNotEmpty(reportScore.getRecordDescMap())) { |
|
|
|
String descAnswer = reportScore.getRecordDescMap().get(questionInfo.getQuestionId().toString()); |
|
|
|
if (StrUtil.isNotEmpty(descAnswer)) { |
|
|
|
answers = descAnswer; |
|
|
|
} |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
questionTable.setResult(StrUtil.isEmpty(answers) || "null".equals(answers) ? "" : answers); |
|
|
|
questionTableList.add(questionTable); |
|
|
|
} |
|
|
|
@ -2406,6 +2420,52 @@ public class AmsReportServiceImpl implements AmsReportService { |
|
|
|
RmsDto.QueryDetail queryDetail = new RmsDto.QueryDetail(); |
|
|
|
queryDetail.setEvaluationId(report.getEvaluationId()); |
|
|
|
RmsVo.ReportDetail detail = rmsService.queryReport(queryDetail); |
|
|
|
//填充DCYY-TP量表的recordDescMap(无得分量表,数据存于record_desc中)
|
|
|
|
if (CollUtil.isNotEmpty(detail.getScores())) { |
|
|
|
for (RmsVo.ReportScore score : detail.getScores()) { |
|
|
|
if ("DCYY-TP".equals(score.getCode())) { |
|
|
|
List<RmsVo.RecordDesc> descList = rmsDao.queryScaleRecordDesc(report.getEvaluationId(), "DCYY-TP"); |
|
|
|
if (CollUtil.isNotEmpty(descList)) { |
|
|
|
Map<Long, List<RmsVo.RecordDesc>> groupedByQuestion = descList.stream() |
|
|
|
.filter(d -> d.getQuestionId() != null) |
|
|
|
.collect(Collectors.groupingBy(RmsVo.RecordDesc::getQuestionId)); |
|
|
|
for (Map.Entry<Long, List<RmsVo.RecordDesc>> entry : groupedByQuestion.entrySet()) { |
|
|
|
StringBuilder sb = new StringBuilder(); |
|
|
|
for (RmsVo.RecordDesc desc : entry.getValue()) { |
|
|
|
if (StrUtil.isNotEmpty(desc.getAnswer()) && desc.getAnswer().trim().startsWith("[")) { |
|
|
|
try { |
|
|
|
com.alibaba.fastjson2.JSONArray drugArray = com.alibaba.fastjson2.JSON.parseArray(desc.getAnswer()); |
|
|
|
for (int idx = 0; idx < drugArray.size(); idx++) { |
|
|
|
com.alibaba.fastjson2.JSONObject drug = drugArray.getJSONObject(idx); |
|
|
|
if (sb.length() > 0) { |
|
|
|
sb.append("\n"); |
|
|
|
} |
|
|
|
sb.append("药物").append(idx + 1).append(":") |
|
|
|
.append(drug.getString("drugName")) |
|
|
|
.append(" 剂量:").append(drug.getString("dose")) |
|
|
|
.append(" 单位:").append(drug.getString("unit")) |
|
|
|
.append(" 频率:").append(drug.getString("frequency")); |
|
|
|
} |
|
|
|
} catch (Exception e) { |
|
|
|
if (sb.length() > 0) { |
|
|
|
sb.append("; "); |
|
|
|
} |
|
|
|
sb.append(desc.getRecordName()).append(":").append(desc.getAnswer()); |
|
|
|
} |
|
|
|
} else if (StrUtil.isNotEmpty(desc.getAnswer())) { |
|
|
|
if (sb.length() > 0) { |
|
|
|
sb.append("; "); |
|
|
|
} |
|
|
|
sb.append(desc.getRecordName()).append(":").append(desc.getAnswer()); |
|
|
|
} |
|
|
|
} |
|
|
|
score.getRecordDescMap().put(entry.getKey().toString(), sb.toString()); |
|
|
|
} |
|
|
|
} |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
//查询分数
|
|
|
|
List<RmsVo.ReportScore> scores = rmsDao.queryReportScore(dto.getReportId(), null); |
|
|
|
if (CollUtil.isNotEmpty(scores)) { |
|
|
|
|