From 9ff31332cc2f304516dac463fadf74f6ca2bd3da Mon Sep 17 00:00:00 2001 From: "jian.wang" <824612544@qq.com> Date: Mon, 3 Jun 2024 08:41:00 +0800 Subject: [PATCH] =?UTF-8?q?=E7=A7=91=E5=AE=A4=E5=8A=9F=E8=83=BD=E5=BC=80?= =?UTF-8?q?=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../commomSearch/CommomSearchController.java | 27 +- .../TemplateSearchController.java | 55 ++- src/main/java/com/emr/dao/CommomMapper.java | 2 + src/main/java/com/emr/util/DateUtils.java | 21 + .../com/emr/vo/commomSearch/CommomVo.java | 129 +++++ src/main/resources/mapper/CommomMapper.xml | 129 +++-- .../commomSearch/commomListqf.jsp | 464 +++++++++++++----- .../commomSearch/showRecord174.jsp | 233 +++++++-- .../recordManage/commomSearch/commomListqf.js | 235 +++++++-- .../commomSearch/showRecord174.js | 56 ++- .../templateSearch/searchCommomMethodqf.js | 85 ++-- 11 files changed, 1126 insertions(+), 310 deletions(-) diff --git a/src/main/java/com/emr/controller/commomSearch/CommomSearchController.java b/src/main/java/com/emr/controller/commomSearch/CommomSearchController.java index a131788..0a21a5c 100644 --- a/src/main/java/com/emr/controller/commomSearch/CommomSearchController.java +++ b/src/main/java/com/emr/controller/commomSearch/CommomSearchController.java @@ -19,6 +19,7 @@ import com.emr.service.emrPrintOrDownLoadInfo.PrintOrDownLoadInfoService; import com.emr.service.recordType.EmrTypeRelatedService; import com.emr.service.recordType.EmrTypeService; import com.emr.service.tScanAssort.T_Scan_AssortService; +import com.emr.util.DateUtils; import com.emr.util.ExceptionPrintUtil; import com.emr.util.Jpg2PdfUtil; import com.emr.util.img2PdfUtil; @@ -33,6 +34,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; +import org.springframework.util.ObjectUtils; import org.springframework.web.bind.annotation.*; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; @@ -102,7 +104,27 @@ public class CommomSearchController { @RequiresPermissions("/commom/commomListqf") @OptionalLog(module = "查看", methods = "常用查询页面") @RequestMapping("commomListqf") - public String commomListqf() { + public String commomListqf(Model model, HttpServletRequest request) { + String dataSource = request.getParameter("dataSource"); + //查询表格配置表的数据,根据配置动态显示表格字段 + Map tableConfigMap = commomMapper.queryTableConfig(dataSource); + if(!ObjectUtils.isEmpty(tableConfigMap)){ + //获取数据来源 + model.addAttribute("dataSource",dataSource); + //获取需要查询字段 + model.addAttribute("tableQueryField",tableConfigMap.get("tableField")); + //显示查询字段,并转为驼峰格式 + model.addAttribute("tableField", ObjectUtils.isEmpty(tableConfigMap.get("tableField")) ? "" : DateUtils.toCamelCase(tableConfigMap.get("tableField").toString())); + //获取查询字段中文名称 + model.addAttribute("tableFieldName",tableConfigMap.get("tableFieldName")); + //获取排序字段,可点击表头列实现排序 + model.addAttribute("sortField",ObjectUtils.isEmpty(tableConfigMap.get("sortField")) ? "" : DateUtils.toCamelCase(tableConfigMap.get("sortField").toString())); + //获取默认排序字段 + request.getSession().setAttribute("defaultSortField",tableConfigMap.get("defaultSortField")); + //获取默认排序字段方式 + request.getSession().setAttribute("defaultSortFieldType",tableConfigMap.get("defaultSortFieldType")); + } + return "recordManage/commomSearch/commomListqf"; } @@ -254,8 +276,9 @@ public class CommomSearchController { * @Version: 1.0 */ @RequestMapping("showRecord174") - public String showRecord174(String patientId, Model model, HttpServletRequest request) { + public String showRecord174(String patientId, String dataSource, Model model, HttpServletRequest request) { model.addAttribute("patientId", patientId); + model.addAttribute("dataSource", dataSource); //加载登陆者 Power_User user = (Power_User) request.getSession().getAttribute("CURRENT_USER"); if (null != user) { diff --git a/src/main/java/com/emr/controller/templateSearch/TemplateSearchController.java b/src/main/java/com/emr/controller/templateSearch/TemplateSearchController.java index 61cee73..7f13ea5 100644 --- a/src/main/java/com/emr/controller/templateSearch/TemplateSearchController.java +++ b/src/main/java/com/emr/controller/templateSearch/TemplateSearchController.java @@ -42,6 +42,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; +import org.springframework.util.ObjectUtils; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; @@ -864,21 +865,36 @@ public class TemplateSearchController { public String cutomSearchTable(String selectSql,String fromTableSql,String whereSql,String orderBys,Integer page, Integer limit, HttpServletRequest request,String sortNames,String sortOrder) { //匹配权限 Power_User user = (Power_User) request.getSession().getAttribute("CURRENT_USER"); - if (!sortNames.equals("id")){ - if (sortNames.equals("disDate")){ - orderBys="order by commomtable.inpatient_no"+" "+sortOrder +",commomtable.dis_date"+" "+sortOrder; - } - if (sortNames.equals("admissDate")){ - orderBys="order by commomtable.admiss_date"+" "+sortOrder; - } - if (sortNames.equals("admissId")){ - orderBys="order by commomtable.admiss_id"+" "+sortOrder; + //获取默认排序字段和排序方式 + String defaultSortField = (String) request.getSession().getAttribute("defaultSortField"); + String defaultSortFieldType = (String) request.getSession().getAttribute("defaultSortFieldType"); + if(!ObjectUtils.isEmpty(sortNames)){ + orderBys += "commomtable." + sortNames + " " + sortOrder; + }else{ + if(!ObjectUtils.isEmpty(defaultSortField)){ + String[] defaultSortFieldArray = defaultSortField.split(","); + String[] defaultSortFieldTypeArray = defaultSortFieldType.split(","); + for(int i = 0; i < defaultSortFieldArray.length; i++){ + if(i == defaultSortFieldArray.length - 1){ + orderBys += "commomtable." + defaultSortFieldArray[i] + " " + defaultSortFieldTypeArray[i]; + }else{ + orderBys += "commomtable." + defaultSortFieldArray[i] + " " + defaultSortFieldTypeArray[i] + ","; + } + } + }else{ + orderBys = ""; } - if (sortNames.equals("inpatientNo")){ - orderBys="order by commomtable.inpatient_no"+" "+sortOrder; + } + String fields = ""; + String[] fieldArray = selectSql.split(","); + for(int i = 0; i < fieldArray.length; i++){ + if(i == fieldArray.length - 1){ + fields += "commomtable." + fieldArray[i]; + }else{ + fields += "commomtable." + fieldArray[i] + ","; } } - String sql = getSql(selectSql, fromTableSql, whereSql, orderBys, user); + String sql = getSql(fields, fromTableSql, whereSql, orderBys, user); if (StringUtils.isNoneBlank(selectSql)) { if (null != page && null != limit) { PageHelper.startPage(page, limit); @@ -952,7 +968,7 @@ public class TemplateSearchController { private String getSql(String selectSql, String fromTableSql, String whereSql, String orderBys, Power_User user) { String userName = user.getUserName(); - String initSelectSql = "select commomtable.patient_id,CASE WHEN emr_apply_approve.id is null THEN 0 ELSE 1 END isShowDetail,CASE WHEN emr_apply_approve1.id IS NULL THEN 0 ELSE 1 END isDownload,CASE WHEN emr_lock.id is null THEN 0 ELSE 1 END lockStatus"; + String initSelectSql = "select commomtable.patient_id,commomtable.data_source,CASE WHEN emr_apply_approve.id is null THEN 0 ELSE 1 END isShowDetail,CASE WHEN emr_apply_approve1.id IS NULL THEN 0 ELSE 1 END isDownload,CASE WHEN emr_lock.id is null THEN 0 ELSE 1 END lockStatus"; if(StringUtils.isNotBlank(selectSql)){ initSelectSql += "," + selectSql; } @@ -1067,11 +1083,20 @@ public class TemplateSearchController { @OptionalLog(module = "导出excel", methods = "病案查询页面") @RequestMapping(value = "exportExcel", produces = {"text/json;charset=UTF-8"}) @ResponseBody - public void exportExcel(HttpServletResponse response,HttpServletRequest request, String selectSql,String fromTableSql,String whereSql,String orderBys, String fieldCns, String tableThNames) { + public void exportExcel(HttpServletResponse response,HttpServletRequest request, String selectSql,String fromTableSql,String whereSql, String fieldCns, String tableThNames) { try { //匹配权限 Power_User user = (Power_User) request.getSession().getAttribute("CURRENT_USER"); - String sql = getSql(selectSql, fromTableSql, whereSql, orderBys, user); + String fields = ""; + String[] fieldArray = selectSql.split(","); + for(int i = 0; i < fieldArray.length; i++){ + if(i == fieldArray.length - 1){ + fields += "commomtable." + fieldArray[i]; + }else{ + fields += "commomtable." + fieldArray[i] + ","; + } + } + String sql = getSql(fields, fromTableSql, whereSql, null, user); //构造excel的数据 List list = commomMapper.selectAll(sql); //文件名 diff --git a/src/main/java/com/emr/dao/CommomMapper.java b/src/main/java/com/emr/dao/CommomMapper.java index 3130d0d..3a39819 100644 --- a/src/main/java/com/emr/dao/CommomMapper.java +++ b/src/main/java/com/emr/dao/CommomMapper.java @@ -151,4 +151,6 @@ public interface CommomMapper { * @return */ CommomVo getCommomTableList(@Param("inpatientNo") String inpatientNo, @Param("disDate") String disDate); + + Map queryTableConfig(String dataSource); } \ No newline at end of file diff --git a/src/main/java/com/emr/util/DateUtils.java b/src/main/java/com/emr/util/DateUtils.java index e8060ad..1ea2b7e 100644 --- a/src/main/java/com/emr/util/DateUtils.java +++ b/src/main/java/com/emr/util/DateUtils.java @@ -269,4 +269,25 @@ public class DateUtils { return dateFormattedToUtc; } + + public static String toCamelCase(String str) { + StringBuilder result = new StringBuilder(); + boolean capitalizeNext = false; + + for (int i = 0; i < str.length(); i++) { + char currentChar = str.charAt(i); + + if (currentChar == '_') { + capitalizeNext = true; + } else { + if (capitalizeNext) { + result.append(Character.toUpperCase(currentChar)); + capitalizeNext = false; + } else { + result.append(Character.toLowerCase(currentChar)); + } + } + } + return result.toString(); + } } diff --git a/src/main/java/com/emr/vo/commomSearch/CommomVo.java b/src/main/java/com/emr/vo/commomSearch/CommomVo.java index 0d610d0..5c25827 100644 --- a/src/main/java/com/emr/vo/commomSearch/CommomVo.java +++ b/src/main/java/com/emr/vo/commomSearch/CommomVo.java @@ -437,6 +437,135 @@ public class CommomVo { private String filePath2;//第二套图像存放地址 + private String medicalNo; + + private String femaleName; + + private String maleName; + + private String cycleType; + + private String operationTime; + + private String cycleNo; + + private String visitTime; + + private String proNo; + + private String proName; + + private String applicant; + + private String fileType; + + private String subjectNo; + private String dataSource; + + public String getProNo() { + return proNo; + } + + public void setProNo(String proNo) { + this.proNo = proNo; + } + + public String getProName() { + return proName; + } + + public void setProName(String proName) { + this.proName = proName; + } + + public String getApplicant() { + return applicant; + } + + public void setApplicant(String applicant) { + this.applicant = applicant; + } + + public String getFileType() { + return fileType; + } + + public void setFileType(String fileType) { + this.fileType = fileType; + } + + public String getSubjectNo() { + return subjectNo; + } + + public void setSubjectNo(String subjectNo) { + this.subjectNo = subjectNo; + } + + public String getDataSource() { + return dataSource; + } + + public void setDataSource(String dataSource) { + this.dataSource = dataSource; + } + + public String getMedicalNo() { + return medicalNo; + } + + public void setMedicalNo(String medicalNo) { + this.medicalNo = medicalNo; + } + + public String getFemaleName() { + return femaleName; + } + + public void setFemaleName(String femaleName) { + this.femaleName = femaleName; + } + + public String getMaleName() { + return maleName; + } + + public void setMaleName(String maleName) { + this.maleName = maleName; + } + + public String getCycleType() { + return cycleType; + } + + public void setCycleType(String cycleType) { + this.cycleType = cycleType; + } + + public String getOperationTime() { + return operationTime; + } + + public void setOperationTime(String operationTime) { + this.operationTime = operationTime; + } + + public String getCycleNo() { + return cycleNo; + } + + public void setCycleNo(String cycleNo) { + this.cycleNo = cycleNo; + } + + public String getVisitTime() { + return visitTime; + } + + public void setVisitTime(String visitTime) { + this.visitTime = visitTime; + } + public String getFilePath2() { return filePath2; } diff --git a/src/main/resources/mapper/CommomMapper.xml b/src/main/resources/mapper/CommomMapper.xml index c2ad873..a745043 100644 --- a/src/main/resources/mapper/CommomMapper.xml +++ b/src/main/resources/mapper/CommomMapper.xml @@ -268,23 +268,25 @@ + + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/views/recordManage/commomSearch/commomListqf.jsp b/src/main/webapp/WEB-INF/views/recordManage/commomSearch/commomListqf.jsp index 7302be5..e13645c 100644 --- a/src/main/webapp/WEB-INF/views/recordManage/commomSearch/commomListqf.jsp +++ b/src/main/webapp/WEB-INF/views/recordManage/commomSearch/commomListqf.jsp @@ -209,7 +209,7 @@ - + @@ -225,22 +225,27 @@ - + +<%-- value="盘号,病案号,ID号,住院次数,姓名,性别,年龄_岁,年龄_月,入院日期,出院日期,出院科室,联系地址,主诊ICD码,主诊名称,主诊转归,住院天数,主治医生,其他诊断,病理诊断,损伤中毒,是否有手术,病案备注">--%> - + +<%-- value="commomtable.ph,commomtable.inpatient_no,commomtable.admiss_id,commomtable.admiss_times,commomtable.name,commomtable.sex,commomtable.age,commomtable.age_month,commomtable.admiss_date,commomtable.dis_date,commomtable.dis_dept,commomtable.home_addr,commomtable.main_diag_code,commomtable.main_diag_name,commomtable.main_dis_thing,commomtable.admiss_days,commomtable.attending,commomtable.other_diag_name,commomtable.pathology_name,commomtable.poisoning_name,commomtable.is_oper,memo,commomtable.file_source">--%> - + +<%-- value="ph,inpatientNo,admissId,admissTimes,name,sex,age,ageMonth,admissDate,disDate,disDept,homeAddr,mainDiagCode,mainDiagName,mainDisThing,admissDays,attending,otherDiagName,pathologyName,poisoningName,isOper,memo">--%> + + -
-
+ + + +
+
-
+
@@ -249,7 +254,7 @@
-
+
@@ -272,7 +277,7 @@
-
+
@@ -284,17 +289,15 @@
-
-
-
+
-
+
-<%-- -<%-- class="glyphicon glyphicon-question-sign" rel="drevil"--%> -<%-- data-container="body" data-toggle="popover" data-placement="bottom"--%> -<%-- data-content="精准查询,病案号要求8位">--%> -<%-- --%> + <%-- + <%-- class="glyphicon glyphicon-question-sign" rel="drevil"--%> + <%-- data-container="body" data-toggle="popover" data-placement="bottom"--%> + <%-- data-content="精准查询,病案号要求8位">--%> + <%-- --%>
-
+
@@ -316,7 +319,7 @@
-
+
@@ -328,11 +331,9 @@
-
-
-
+
-
+
@@ -341,7 +342,7 @@
-
+
@@ -361,7 +362,7 @@
-
+
@@ -381,11 +382,9 @@
-
-
-
+
-
+
@@ -402,7 +401,7 @@
-
+
@@ -421,7 +420,7 @@
-
+
@@ -440,11 +439,9 @@
-
-
-
+
-
+
@@ -461,7 +458,7 @@
-
+
@@ -480,7 +477,7 @@
-
+
@@ -499,11 +496,9 @@
-
-
-
+
-
+
@@ -512,7 +507,7 @@
-
+
@@ -523,7 +518,7 @@
-
+
@@ -543,11 +538,9 @@
-
-
-
+
-
+
@@ -556,7 +549,7 @@
-
+
@@ -567,7 +560,7 @@
-
+
@@ -578,11 +571,9 @@
-
-
-
+
-
+
@@ -591,7 +582,7 @@
-
+
@@ -602,7 +593,7 @@
-
+
@@ -613,9 +604,7 @@
-
-
-
+
@@ -626,9 +615,9 @@
-
+
-
+
+ +
+
+
+ +
+
+ +
+
+
+
+
+
+ +
+
+ +
+
+
+
+
+
+ +
+
+ +
+
+
+
+
+
+ +
+
+ +
+
+
+
+
+
+ +
+
+ +
+
+
+ 至 +
+
+
+ +
+
+
+
+
+
+ +
+
+ +
+
+
+ +
+
+
+ +
+
+ +
+
+
+ 至 +
+
+
+ +
+
+
+ +
+
+
+ +
+
+ +
+
+
+
+
+
+ +
+
+ +
+
+
+
+
+
+ +
+
+ +
+
+
+
+
+
+ +
+
+ +
+
+
+
+
+
+ +
+
+ +
+
+
@@ -716,7 +858,7 @@