diff --git a/acupuncture-admin/src/main/java/com/acupuncture/web/controller/web/ExternalController.java b/acupuncture-admin/src/main/java/com/acupuncture/web/controller/web/ExternalController.java index 4d18978b..67b944c5 100644 --- a/acupuncture-admin/src/main/java/com/acupuncture/web/controller/web/ExternalController.java +++ b/acupuncture-admin/src/main/java/com/acupuncture/web/controller/web/ExternalController.java @@ -25,13 +25,9 @@ import com.acupuncture.system.domain.vo.UmsDataSourceVo; import com.acupuncture.system.domain.vo.UplRtcfInfoVo; import com.acupuncture.system.persist.dao.UmsDataSourceDao; import com.acupuncture.system.service.ExternalService; -import com.mysql.cj.xdevapi.JsonArray; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; -import jdk.nashorn.internal.runtime.logging.Logger; import lombok.extern.slf4j.Slf4j; -import org.apache.ibatis.annotations.Param; -import org.apache.regexp.RE; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; diff --git a/acupuncture-admin/src/main/resources/TreamtmentPgTemplate.docx b/acupuncture-admin/src/main/resources/TreamtmentPgTemplate.docx new file mode 100644 index 00000000..e370ede7 --- /dev/null +++ b/acupuncture-admin/src/main/resources/TreamtmentPgTemplate.docx @@ -0,0 +1,96 @@ +-------------------------------------------------------------------------------- +{{h_name}}评估报告 + +基本信息 +姓名:{{name}} +性别:{{sex}} +年龄:{{age}} +编号:{{visitNum}} +责任医生:{{doctor}} +检查日期:{{visitTime}} + +主要诊断 +{{Clinical_diagnosis}} + + +病情评估 +-------------------------------------------------------------------------------- +{{?rtcf_flag}} +人体成分分析结果 +体型类型:{{PG_RTCF_TXLX}} +身体年龄:{{PG_RTCF_STNL}} +健康评分:{{PG_RTCF_JKPF}} +体重:{{PG_RTCF_TZ}} +去脂体重:{{PG_RTCF_QZTZ}} +肌肉:{{PG_RTCF_JRL}} +水分:{{PG_RTCF_TBW}} +蛋白质:{{PG_RTCF_DBZ}} +骨质:{{PG_RTCF_GZ}} +骨骼肌:{{PG_RTCF_GGJ}} +脂肪:{{PG_RTCF_ZF}} +腰臀比:{{PG_RTCF_WHR}} +体质指数:{{PG_RTCF_BMI}} +体脂百分比:{{PG_RTCF_PBF}} +内脏脂肪指数:{{PG_RTCF_NZZFSP}} +-------------------------------------------------------------------------------- +{{/rtcf_flag}} +-------------------------------------------------------------------------------- +{{?bsjg_flag}} +中医体质辨识结果 +主要体质: {{PG_TZBS_ZYTZ}} +兼夹体质: {{PG_TZBS_JJTZ}} +{{/bsjg_flag}} +{{?ttpg_flag}} +体态评估结果 + 序号 + 量表名称 + 评分 + 1 + TAPS体态自觉评估 + {{score1}} + 2 + TRACE体态临床评估 + {{score2}} + 3 + SRS-22问卷评估 + {{score3}} +{{/ttpg_flag}} +{{?smpg_flag}} +失眠评估结果 + 序号 + 量表名称 + 评分 + 1 + 患者健康问卷(PHQ-9)评估 + {{score4}} + 2 + Epworth嗜睡评估 + {{score5}} + 3 + 匹兹堡睡眠质量指数(PSQI)评估 + {{score6}} +{{/smpg_flag}} +{{?jlpg_flag}} +焦虑评估结果 + 序号 + 量表名称 + 评分 + 1 + 汉密尔顿抑郁评估(HAMD-24) + {{score7}} + 2 + 焦虑自评(SAS) + {{score8}} + +{{/jlpg_flag}} + + + + + + + + 测评人: +审核人: +报告日期:{{report_date}} + diff --git a/acupuncture-system/pom.xml b/acupuncture-system/pom.xml index ad62855a..72bd9a0e 100644 --- a/acupuncture-system/pom.xml +++ b/acupuncture-system/pom.xml @@ -80,7 +80,7 @@ com.deepoove poi-tl - 1.10.5 + 1.12.2 diff --git a/acupuncture-system/src/main/java/com/acupuncture/system/service/impl/PmsTreatmentServiceImpl.java b/acupuncture-system/src/main/java/com/acupuncture/system/service/impl/PmsTreatmentServiceImpl.java index 081f7e08..eded34cf 100644 --- a/acupuncture-system/src/main/java/com/acupuncture/system/service/impl/PmsTreatmentServiceImpl.java +++ b/acupuncture-system/src/main/java/com/acupuncture/system/service/impl/PmsTreatmentServiceImpl.java @@ -30,6 +30,8 @@ import com.acupuncture.system.persist.mapper.*; import com.acupuncture.system.service.PmsPatientService; import com.acupuncture.system.service.PmsTreatmentService; import com.deepoove.poi.XWPFTemplate; +import com.deepoove.poi.data.*; +import com.deepoove.poi.data.style.BorderStyle; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; @@ -536,7 +538,13 @@ public class PmsTreatmentServiceImpl implements PmsTreatmentService { if (CollectionUtil.isNotEmpty(pmsTreatmentRecords)) { Map recordMap = pmsTreatmentRecords.stream().collect(Collectors.toMap(PmsTreatmentRecord::getQuestionCode, Function.identity())); map.put("Clinical_diagnosis", recordMap.get("JBXX_ZYZD") == null ? "" : StrUtil.split(recordMap.get("JBXX_ZYZD").getAnswer(), UserConstants.ANSWER_JOIN_STRING).stream().collect(Collectors.joining(", "))); - map.put("PG_RTCF_TXLX", recordMap.get("PG_RTCF_TXLX") == null ? "" : recordMap.get("PG_RTCF_TXLX").getAnswer()); + String txlx = recordMap.get("PG_RTCF_TXLX") == null ? "" : recordMap.get("PG_RTCF_TXLX").getAnswer(); + if (StrUtil.isEmpty(txlx)) { + map.put("rtcf_flag", false); + }else { + map.put("rtcf_flag", true); + } + map.put("PG_RTCF_TXLX", txlx); map.put("PG_RTCF_STNL", recordMap.get("PG_RTCF_STNL") == null ? "" : recordMap.get("PG_RTCF_STNL").getAnswer()); map.put("PG_RTCF_JKPF", recordMap.get("PG_RTCF_JKPF") == null ? "" : recordMap.get("PG_RTCF_JKPF").getAnswer()); map.put("PG_RTCF_TZ", recordMap.get("PG_RTCF_TZ") == null ? "" : recordMap.get("PG_RTCF_TZ").getAnswer()); @@ -551,17 +559,56 @@ public class PmsTreatmentServiceImpl implements PmsTreatmentService { map.put("PG_RTCF_BMI", recordMap.get("PG_RTCF_BMI") == null ? "" : recordMap.get("PG_RTCF_BMI").getAnswer()); map.put("PG_RTCF_PBF", recordMap.get("PG_RTCF_PBF") == null ? "" : recordMap.get("PG_RTCF_PBF").getAnswer()); map.put("PG_RTCF_NZZFSP", recordMap.get("PG_RTCF_NZZFSP") == null ? "" : recordMap.get("PG_RTCF_NZZFSP").getAnswer()); - map.put("PG_TZBS_ZYTZ", recordMap.get("PG_TZBS_ZYTZ") == null ? "" : recordMap.get("PG_TZBS_ZYTZ").getAnswer()); + + String tzbs = recordMap.get("PG_TZBS_ZYTZ") == null ? "" : recordMap.get("PG_TZBS_ZYTZ").getAnswer(); + if (StrUtil.isEmpty(tzbs)) { + map.put("bsjg_flag", false); + }else { + map.put("bsjg_flag", true); + } + map.put("PG_TZBS_ZYTZ", tzbs); map.put("PG_TZBS_JJTZ", recordMap.get("PG_TZBS_JJTZ") == null ? "" : StrUtil.split(recordMap.get("PG_TZBS_JJTZ").getAnswer(), UserConstants.ANSWER_JOIN_STRING).stream().collect(Collectors.joining(","))); - map.put("score1", recordMap.get("PG_TT_TAPS_DF") == null ? "" : recordMap.get("PG_TT_TAPS_DF").getAnswer()); - map.put("score2", recordMap.get("PG_TT_TRACE_DF") == null ? "" : recordMap.get("PG_TT_TRACE_DF").getAnswer()); - map.put("score3", recordMap.get("PG_TT_SRS22_DF") == null ? "" : recordMap.get("PG_TT_SRS22_DF").getAnswer()); - map.put("score4", recordMap.get("PG_SM_PHQ-9_DF") == null ? "" : recordMap.get("PG_SM_PHQ-9_DF").getAnswer()); - map.put("score5", recordMap.get("PG_SM_EPSW_DF") == null ? "" : recordMap.get("PG_SM_EPSW_DF").getAnswer()); - map.put("score6", recordMap.get("PG_SM_PSQI_DF") == null ? "" : recordMap.get("PG_SM_PSQI_DF").getAnswer()); - map.put("score7", recordMap.get("PG_JL_HAMD-24_DF") == null ? "" : recordMap.get("PG_JL_HAMD-24_DF").getAnswer()); - map.put("score8", recordMap.get("PG_JL_SAS_DF") == null ? "" : recordMap.get("PG_JL_SAS_DF").getAnswer()); + String score1 = recordMap.get("PG_TT_TAPS_DF") == null ? "" : recordMap.get("PG_TT_TAPS_DF").getAnswer(); + String score2 = recordMap.get("PG_TT_TRACE_DF") == null ? "" : recordMap.get("PG_TT_TRACE_DF").getAnswer(); + String score3 = recordMap.get("PG_TT_SRS22_DF") == null ? "" : recordMap.get("PG_TT_SRS22_DF").getAnswer(); + if (StrUtil.isEmpty(score1) && StrUtil.isEmpty(score2) && StrUtil.isEmpty(score3)) { + map.put("ttpg_flag", false); + }else { + map.put("ttpg_flag", true); + } + map.put("score1", score1); + map.put("score2", score2); + map.put("score3", score3); + String score4 = recordMap.get("PG_SM_PHQ-9_DF") == null ? "" : recordMap.get("PG_SM_PHQ-9_DF").getAnswer(); + String score5 = recordMap.get("PG_SM_EPSW_DF") == null ? "" : recordMap.get("PG_SM_EPSW_DF").getAnswer(); + String score6 = recordMap.get("PG_SM_PSQI_DF") == null ? "" : recordMap.get("PG_SM_PSQI_DF").getAnswer(); + + if (StrUtil.isEmpty(score4) && StrUtil.isEmpty(score5) && StrUtil.isEmpty(score6)) { + map.put("smpg_flag", false); + }else { + map.put("smpg_flag", true); + } + + map.put("table0", Tables.of(new String[][] { + new String[] { "00", "01" }, + new String[] { "10", "11" } + }).border(BorderStyle.DEFAULT).create()); + + + map.put("score4", score4); + map.put("score5", score5); + map.put("score6", score6); + + String score7 = recordMap.get("PG_JL_HAMD-24_DF") == null ? "" : recordMap.get("PG_JL_HAMD-24_DF").getAnswer(); + String score8 = recordMap.get("PG_JL_SAS_DF") == null ? "" : recordMap.get("PG_JL_SAS_DF").getAnswer(); + if (StrUtil.isEmpty(score7) && StrUtil.isEmpty(score8)) { + map.put("jlpg_flag", false); + }else { + map.put("jlpg_flag", true); + } + map.put("score7", score7); + map.put("score8", score8); } //渲染 template.render(map); diff --git a/acupuncture-system/src/main/java/com/acupuncture/system/service/impl/ScreeningServiceImpl.java b/acupuncture-system/src/main/java/com/acupuncture/system/service/impl/ScreeningServiceImpl.java index 7fd645ea..14a38b68 100644 --- a/acupuncture-system/src/main/java/com/acupuncture/system/service/impl/ScreeningServiceImpl.java +++ b/acupuncture-system/src/main/java/com/acupuncture/system/service/impl/ScreeningServiceImpl.java @@ -89,15 +89,22 @@ public class ScreeningServiceImpl implements IScreeningService { "性别", "出生日期", "年龄", -// "身份证", "联系方式", "身高", "体重", "BMI", "体重自评结论", - "失眠自评(SRSS)得分", - "可接受的治疗方式", - "可接受的治疗周期", + "上床睡觉", + "入睡时间", + "睡醒时间", + "起床时间", + "睡眠效率", + "疾病风险", + "疾病风险-其他", + "筛查结论", +// "失眠自评(SRSS)得分", +// "可接受的治疗方式", +// "可接受的治疗周期", "筛查时间", "组织" ); @@ -114,28 +121,30 @@ public class ScreeningServiceImpl implements IScreeningService { if (CollectionUtil.isNotEmpty(recordList)) { map = recordList.stream().collect(Collectors.toMap(ScrScreenVo.ScreeningDetailVo::getQuestionCode, Function.identity())); } - //筛查信息 - ScrScreenVo.ScreeningDetailVo record = map.get("SCWJ-ILLNESS"); - //筛查结果 - ScrScreenVo.ScreeningDetailVo result = map.get("SCWJ-RESULT"); + row += 1; excelWriter.writeCellValue(0, row, detailVos.get(i).getName() + ""); excelWriter.writeCellValue(1, row, map.get("SCWJ-SEX") == null ? "未知" : map.get("SCWJ-SEX").getAnswer()); -// excelWriter.writeCellValue(3, row, map.get("SCWJ-idCard") == null ? "" : map.get("SCWJ-idCard").getAnswer()); excelWriter.writeCellValue(2, row, map.get("SCWJ-BIRTH") == null ? "" : map.get("SCWJ-BIRTH").getAnswer()); excelWriter.writeCellValue(3, row, map.get("SCWJ-AGE") == null ? "" : map.get("SCWJ-AGE").getAnswer()); excelWriter.writeCellValue(4, row, map.get("SCWJ-PHONE") == null ? "" : map.get("SCWJ-PHONE").getAnswer()); - excelWriter.writeCellValue(5, row, map.get("SCWJ-HEIGHT") == null ? "" : map.get("SCWJ-HEIGHT").getAnswer()); excelWriter.writeCellValue(6, row, map.get("SCWJ-WEIGHT") == null ? "" : map.get("SCWJ-WEIGHT").getAnswer()); excelWriter.writeCellValue(7, row, map.get("SCWJ-BMI") == null ? "" : map.get("SCWJ-BMI").getAnswer()); excelWriter.writeCellValue(8, row, map.get("SCWJ-JL") == null ? "" : map.get("SCWJ-JL").getAnswer()); - excelWriter.writeCellValue(9, row, map.get("SCWJ-RESULT") == null ? "" : map.get("SCWJ-RESULT").getAnswer()); - excelWriter.writeCellValue(10, row, map.get("SCWJ-ZLFS") == null ? "" : map.get("SCWJ-ZLFS").getAnswer()); - excelWriter.writeCellValue(11, row, map.get("SCWJ-ZLZQ") == null ? "" : map.get("SCWJ-ZLZQ").getAnswer()); - - excelWriter.writeCellValue(12, row, DateUtil.format(detailVos.get(i).getCreateTime(), "yyyy-MM-dd HH:mm:ss")); - excelWriter.writeCellValue(13, row, detailVos.get(i).getTenantName()); + excelWriter.writeCellValue(9, row, map.get("SCWJ-SCSJ") == null ? "" : map.get("SCWJ-SCSJ").getAnswer()); + excelWriter.writeCellValue(10, row, map.get("SCWJ-RSSJ") == null ? "" : map.get("SCWJ-RSSJ").getAnswer()); + excelWriter.writeCellValue(11, row, map.get("SCWJ-SXSJ") == null ? "" : map.get("SCWJ-SXSJ").getAnswer()); + excelWriter.writeCellValue(12, row, map.get("SCWJ-QCSJ") == null ? "" : map.get("SCWJ-QCSJ").getAnswer()); + excelWriter.writeCellValue(13, row, map.get("SCWJ-SMXL") == null ? "" : map.get("SCWJ-SMXL").getAnswer()); + excelWriter.writeCellValue(14, row, map.get("SCWJ-XBS") == null ? "" : map.get("SCWJ-XBS").getAnswer()); + excelWriter.writeCellValue(15, row, map.get("SCWJ-XBS-QT") == null ? "" : map.get("SCWJ-XBS-QT").getAnswer()); + excelWriter.writeCellValue(16, row, map.get("SCREEN-JL") == null ? "" : map.get("SCREEN-JL").getAnswer()); +// excelWriter.writeCellValue(17, row, map.get("SCWJ-RESULT") == null ? "" : map.get("SCWJ-RESULT").getAnswer()); +// excelWriter.writeCellValue(18, row, map.get("SCWJ-ZLFS") == null ? "" : map.get("SCWJ-ZLFS").getAnswer()); +// excelWriter.writeCellValue(19, row, map.get("SCWJ-ZLZQ") == null ? "" : map.get("SCWJ-ZLZQ").getAnswer()); + excelWriter.writeCellValue(17, row, DateUtil.format(detailVos.get(i).getCreateTime(), "yyyy-MM-dd HH:mm:ss")); + excelWriter.writeCellValue(18, row, detailVos.get(i).getTenantName()); // if (record == null || StrUtil.isEmpty(record.getAnswer())) { // excelWriter.writeCellValue(6, row, "否"); @@ -185,7 +194,7 @@ public class ScreeningServiceImpl implements IScreeningService { } } - String filename = StrUtil.format("筛查-{}.xlsx", DateUtil.date().toString("yyyyMMdd")); + String filename = StrUtil.format("Screen-{}.xlsx", DateUtil.date().toString("yyyyMMdd")); //response为HttpServletResponse对象 response.setContentType("application/vnd.ms-excel;charset=utf-8"); diff --git a/pom.xml b/pom.xml index a9cd8482..a574f28d 100644 --- a/pom.xml +++ b/pom.xml @@ -152,7 +152,7 @@ org.apache.poi poi-ooxml - 4.1.2 + 5.2.2