|
@ -140,7 +140,13 @@ public class FollowUpService {
|
|
|
List<Map<String, Object>> followupList = followupList(businessType, businessSource, startDate, endDate, patientName, followupStatus, doctorName, deptCode, followupFormType);
|
|
|
// 根据表单类型分类
|
|
|
Map<String, List<Map<String, Object>>> followupListGroupingByFormType = followupList.stream()
|
|
|
.collect(Collectors.groupingBy(item -> (String) item.get("followupFormType")));
|
|
|
.collect(Collectors.groupingBy(item -> {
|
|
|
String key = (String) item.get("followupFormType");
|
|
|
if(key == null) {
|
|
|
return "null";
|
|
|
}
|
|
|
return key;
|
|
|
}));
|
|
|
// 处理每种类型的表单
|
|
|
for (Map.Entry<String, List<Map<String, Object>>> followupEntry : followupListGroupingByFormType.entrySet()) {
|
|
|
String followupFormType2 = followupEntry.getKey();
|
|
@ -157,9 +163,10 @@ public class FollowUpService {
|
|
|
List<Map<String, Object>> followupContent = jdbcTemplate.queryForList(sql);
|
|
|
|
|
|
try {
|
|
|
int o = 1; // 序号
|
|
|
WritableSheet ws = wwb.createSheet("全院通用随访", 1);
|
|
|
|
|
|
String[] header = {"随访患者", "随访方式", "随访状态", "随访医生", "随访日期", "随方小结"};
|
|
|
String[] header = {"序号","随访患者", "随访方式", "随访状态", "随访医生", "随访日期", "随方小结"};
|
|
|
int k = 0;
|
|
|
for (String h : header) {
|
|
|
exportUtl.addCell(ws, 0, k, h);//表名,行,列,header
|
|
@ -169,12 +176,13 @@ public class FollowUpService {
|
|
|
for (Map<String, Object> m : followupContent) {
|
|
|
Integer followupId = (Integer) m.get("followup_id");
|
|
|
Map<String, Object> followup = followupList3.get(followupId).get(0);
|
|
|
exportUtl.addCell(ws, i, 0, followup.get("patientName")); // 随访患者
|
|
|
exportUtl.addCell(ws, i, 1, followup.get("followupTypeValue")); // 随访方式
|
|
|
exportUtl.addCell(ws, i, 2, followup.get("statusName")); // 随访状态
|
|
|
exportUtl.addCell(ws, i, 3, followup.get("doctorName")); // 随访医生
|
|
|
exportUtl.addCell(ws, i, 4, followup.get("followupDate")); // 随访日期
|
|
|
exportUtl.addCell(ws, i, 5, m.get("followup_value")); // 随方小结
|
|
|
exportUtl.addCell(ws, i, 0, o++); // 随访患者
|
|
|
exportUtl.addCell(ws, i, 1, followup.get("patientName")); // 随访患者
|
|
|
exportUtl.addCell(ws, i, 2, followup.get("followupTypeValue")); // 随访方式
|
|
|
exportUtl.addCell(ws, i, 3, followup.get("statusName")); // 随访状态
|
|
|
exportUtl.addCell(ws, i, 4, followup.get("doctorName")); // 随访医生
|
|
|
exportUtl.addCell(ws, i, 5, followup.get("followupDate")); // 随访日期
|
|
|
exportUtl.addCell(ws, i, 6, m.get("followup_value")); // 随方小结
|
|
|
i++;
|
|
|
}
|
|
|
|
|
@ -191,9 +199,10 @@ public class FollowUpService {
|
|
|
|
|
|
|
|
|
try {
|
|
|
int o = 1; // 序号
|
|
|
WritableSheet ws = wwb.createSheet("骨科患者术后随访", 2);
|
|
|
|
|
|
String[] header = {"姓名", "性别", "年龄", "联系电话", "门诊号/住院号", "手术日期", "手术类型","主刀医生","伤口愈合情况","其他内容",
|
|
|
String[] header = {"序号","姓名", "性别", "年龄", "联系电话", "门诊号/住院号", "手术日期", "手术类型","主刀医生","伤口愈合情况","其他内容",
|
|
|
"是否按计划进行康复训练","未按计划训练原因","肢体功能恢复,关节活动度","肢体功能恢复,肌力","辅助器具使用","发热","体温","肢体肿胀/疼痛加重","深静脉血栓症状(如下肢红肿、疼痛)","其他异常",
|
|
|
"睡眠质量","饮食情况","心里状态","需心理干预","下次随访时间","下次随访方式","下次关注重点","随访医生","随访时间"};
|
|
|
int k = 0;
|
|
@ -207,6 +216,7 @@ public class FollowUpService {
|
|
|
Map<String, Object> followup = followupList3.get(followupId).get(0);
|
|
|
int j = 0;
|
|
|
|
|
|
exportUtl.addCell(ws, i, j++, o++);
|
|
|
exportUtl.addCell(ws, i, j++, m.get("name"));
|
|
|
exportUtl.addCell(ws, i, j++, m.get("sexValue"));
|
|
|
exportUtl.addCell(ws, i, j++, m.get("age"));
|
|
@ -258,9 +268,10 @@ public class FollowUpService {
|
|
|
List<Map<String, Object>> baseFollowupHandFootList = jdbcTemplate.queryForList(sql);
|
|
|
|
|
|
try {
|
|
|
int o = 1; // 序号
|
|
|
WritableSheet ws = wwb.createSheet("手足外科患者随访", 3);
|
|
|
|
|
|
String[] header = {"姓名", "性别", "年龄", "联系电话", "门诊号/住院号", "手术日期", "手术类型","主刀医生","伤口与血运,伤口愈合情况","末梢血运(手指/足趾)",
|
|
|
String[] header = {"序号","姓名", "性别", "年龄", "联系电话", "门诊号/住院号", "手术日期", "手术类型","主刀医生","伤口与血运,伤口愈合情况","末梢血运(手指/足趾)",
|
|
|
"是否手外科","关节活动度","是否足踝外科","肢体肿胀情况","关节功能","步态","是否显微外科手书专项随访","伤口愈合","末梢血运(手指/足趾)",
|
|
|
"是否糖尿病足专项随访","伤口愈合","足部感觉","血糖监测","餐前","餐后","是否按计划进行康复训练","未按计划训练原因","日常生活能力",
|
|
|
"特殊需求","下次随访时间","下次随访方式","下次关注重点","随访医生","随访时间"};
|
|
@ -275,6 +286,7 @@ public class FollowUpService {
|
|
|
Map<String, Object> followup = followupList3.get(followupId).get(0);
|
|
|
int j = 0;
|
|
|
|
|
|
exportUtl.addCell(ws, i, j++, o++);
|
|
|
exportUtl.addCell(ws, i, j++, m.get("name"));
|
|
|
exportUtl.addCell(ws, i, j++, m.get("sexValue"));
|
|
|
exportUtl.addCell(ws, i, j++, m.get("age"));
|
|
@ -333,9 +345,10 @@ public class FollowUpService {
|
|
|
List<Map<String, Object>> baseFollowupOncologyList = jdbcTemplate.queryForList(sql);
|
|
|
|
|
|
try {
|
|
|
int o = 1; // 序号
|
|
|
WritableSheet ws = wwb.createSheet("肿瘤科患者随访", 4);
|
|
|
|
|
|
String[] header = {"姓名", "性别", "年龄", "联系电话", "门诊号/住院号", "诊断", "分期", "治疗阶段", "主管医生", "恶心/呕吐",
|
|
|
String[] header = {"序号","姓名", "性别", "年龄", "联系电话", "门诊号/住院号", "诊断", "分期", "治疗阶段", "主管医生", "恶心/呕吐",
|
|
|
"恶心/呕吐频率", "需止吐药调整", "骨髓抑制", "白细胞", "需升白治疗", "黏膜炎", "口腔/肛周疼痛评分", "手足综合征", "皮肤红肿/脱皮", "放射性皮炎",
|
|
|
"放射性肺炎", "咳嗽气促", "吞咽困难", "皮疹", "分级", "需激素治疗", "甲状腺功能异常", "需内分泌科会诊", "疼痛部位", "当前疼痛程度(0-10分)",
|
|
|
"最严重的疼痛程度(0-10分)", "镇痛药物使用", "未使用原因", "体重变化", "近一月下降体重", "进食情况", "体力状况(ECOG评分)", "近期复查项目影像学(CT/MRI)", "近期复查项目肿瘤标志物", "具体升高",
|
|
@ -353,6 +366,7 @@ public class FollowUpService {
|
|
|
Map<String, Object> followup = followupList3.get(followupId).get(0);
|
|
|
int j = 0;
|
|
|
|
|
|
exportUtl.addCell(ws, i, j++, o++);
|
|
|
exportUtl.addCell(ws, i, j++, m.get("name"));
|
|
|
exportUtl.addCell(ws, i, j++, m.get("sexValue"));
|
|
|
exportUtl.addCell(ws, i, j++, m.get("age"));
|
|
@ -455,7 +469,7 @@ public class FollowUpService {
|
|
|
"h.dept_code deptCode,h.dept_name deptName,f.`status`,date_format(f.followup_date, '%Y-%m-%d %H:%i:%s') followupDate,'诊后康复' businessSource," +
|
|
|
"date_format(f.followup_plan_date, '%Y-%m-%d %H:%i:%s') followupPlanDate,date_format(pl.create_time, '%Y-%m-%d %H:%i:%s') turnDownDate," +
|
|
|
"if(i.from_source=2,i.doctor_name,pl.plan_doctor_name) planDoctorName,if(i.from_source=2,i.dept_name,h2.dept_name) turnDownDeptName, " +
|
|
|
"f.followup_form_type followupFormType,d.dict_value followupFormTypeValue ";
|
|
|
"f.followup_form_type followupFormType,d.dict_value followupFormTypeValue, d2.dict_value followupTypeValue ";
|
|
|
String countSql = "select count(DISTINCT f.id) ";
|
|
|
String filter = " from wlyy_followup f " +
|
|
|
"LEFT JOIN base_service_item_plan ip on f.id = ip.relation_code and ip.relation_type='6' " +
|
|
@ -465,6 +479,7 @@ public class FollowUpService {
|
|
|
"LEFT JOIN base_doctor_hospital h on f.doctor_code=h.doctor_code and h.del=1 " +
|
|
|
"LEFT JOIN base_doctor_hospital h2 on pl.plan_doctor=h2.doctor_code and h2.del=1 " +
|
|
|
"LEFT JOIN wlyy_hospital_sys_dict d ON d.dict_name='followup_form_type' AND d.dict_code=f.followup_form_type " +
|
|
|
"LEFT JOIN wlyy_hospital_sys_dict d2 ON d2.dict_name='FOLLOWUP_WAY_DICT' AND d2.dict_code=f.followup_type " +
|
|
|
"WHERE 1=1 ";
|
|
|
if(StringUtils.isNotBlank(businessType)){
|
|
|
if(businessType.contains(",")){
|
|
@ -4256,12 +4271,17 @@ public class FollowUpService {
|
|
|
" f.body_temperature bodyTemperature,\n" +
|
|
|
" f.swelling_pain swellingPain,\n" +
|
|
|
" CASE f.swelling_pain\n" +
|
|
|
" WHEN '1' THEN '无'\n" +
|
|
|
" WHEN '0' THEN '有'\n" +
|
|
|
" WHEN '1' THEN '有'\n" +
|
|
|
" WHEN '0' THEN '无'\n" +
|
|
|
" ELSE f.swelling_pain\n" +
|
|
|
" END AS swellingPainValue,\n" +
|
|
|
" f.deep_vein_thrombosis deepVeinThrombosis,\n" +
|
|
|
" dict_deep_vein_thrombosis.dict_value deepVeinThrombosisValue,\n" +
|
|
|
// " dict_deep_vein_thrombosis.dict_value deepVeinThrombosisValue,\n" +
|
|
|
" CASE f.deep_vein_thrombosis\n" +
|
|
|
" WHEN '1' THEN '有'\n" +
|
|
|
" WHEN '0' THEN '无'\n" +
|
|
|
" ELSE f.deep_vein_thrombosis\n" +
|
|
|
" END AS deepVeinThrombosisValue,\n" +
|
|
|
" f.other_anomalies otherAnomalies,\n" +
|
|
|
" f.sleep_status sleepStatus,\n" +
|
|
|
" dict_sleep_status.dict_value sleepStatusValue,\n" +
|
|
@ -4285,8 +4305,8 @@ public class FollowUpService {
|
|
|
" ON dict_wound_healing_status.dict_name = 'wound_healing_status' AND dict_wound_healing_status.dict_code = f.wound_healing_status\n" +
|
|
|
"LEFT JOIN wlyy_hospital_sys_dict dict_assistive_devices\n" +
|
|
|
" ON dict_assistive_devices.dict_name = 'assistive_devices' AND dict_assistive_devices.dict_code = f.assistive_devices\n" +
|
|
|
"LEFT JOIN wlyy_hospital_sys_dict dict_deep_vein_thrombosis\n" +
|
|
|
" ON dict_deep_vein_thrombosis.dict_name = 'deep_vein_thrombosis' AND dict_deep_vein_thrombosis.dict_code = f.deep_vein_thrombosis\n" +
|
|
|
// "LEFT JOIN wlyy_hospital_sys_dict dict_deep_vein_thrombosis\n" +
|
|
|
// " ON dict_deep_vein_thrombosis.dict_name = 'deep_vein_thrombosis' AND dict_deep_vein_thrombosis.dict_code = f.deep_vein_thrombosis\n" +
|
|
|
"LEFT JOIN wlyy_hospital_sys_dict dict_sleep_status\n" +
|
|
|
" ON dict_sleep_status.dict_name = 'sleep_status' AND dict_sleep_status.dict_code = f.sleep_status\n" +
|
|
|
"LEFT JOIN wlyy_hospital_sys_dict dict_dietary_status\n" +
|
|
@ -4328,7 +4348,8 @@ public class FollowUpService {
|
|
|
" CASE f.mucositis WHEN '1' THEN '有' WHEN '0' THEN '无' ELSE f.mucositis END AS mucositisValue,\n" +
|
|
|
" f.oral_pain_score oralPainScore,\n" +
|
|
|
" f.hand_foot_syndrome handFootSyndrome,\n" +
|
|
|
" dict_hand_foot_syndrome.dict_value handFootSyndromeValue,\n" +
|
|
|
" CASE f.hand_foot_syndrome WHEN '1' THEN '有' WHEN '0' THEN '无' ELSE f.hand_foot_syndrome END AS handFootSyndromeValue,\n" +
|
|
|
// " dict_hand_foot_syndrome.dict_value handFootSyndromeValue,\n" +
|
|
|
" f.`skin_redness` skinRedness,\n" +
|
|
|
" dict_skin_redness.dict_value skinRednessValue,\n" +
|
|
|
" f.radiodermatitis,\n" +
|