|
@@ -1,11 +1,13 @@
|
|
package com.diagbot.facade;
|
|
package com.diagbot.facade;
|
|
|
|
|
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
import com.diagbot.aggregate.AverageStatisticsAggregate;
|
|
import com.diagbot.aggregate.AverageStatisticsAggregate;
|
|
import com.diagbot.aggregate.MrStatisticsAggregate;
|
|
import com.diagbot.aggregate.MrStatisticsAggregate;
|
|
import com.diagbot.aggregate.ResultStatisticsAggregate;
|
|
import com.diagbot.aggregate.ResultStatisticsAggregate;
|
|
import com.diagbot.dto.AverageStatisticsDTO;
|
|
import com.diagbot.dto.AverageStatisticsDTO;
|
|
import com.diagbot.dto.AverageStatisticsFeeDTO;
|
|
import com.diagbot.dto.AverageStatisticsFeeDTO;
|
|
|
|
+import com.diagbot.dto.ColumnDTO;
|
|
import com.diagbot.dto.DeptNumDTO;
|
|
import com.diagbot.dto.DeptNumDTO;
|
|
import com.diagbot.dto.EntryNumDTO;
|
|
import com.diagbot.dto.EntryNumDTO;
|
|
import com.diagbot.dto.EntryNumGroupDTO;
|
|
import com.diagbot.dto.EntryNumGroupDTO;
|
|
@@ -17,14 +19,20 @@ import com.diagbot.dto.LevelStatisticsTZDTO;
|
|
import com.diagbot.dto.NumDTO;
|
|
import com.diagbot.dto.NumDTO;
|
|
import com.diagbot.dto.QcResultPercentDTO;
|
|
import com.diagbot.dto.QcResultPercentDTO;
|
|
import com.diagbot.dto.QcResultShortDTO;
|
|
import com.diagbot.dto.QcResultShortDTO;
|
|
|
|
+import com.diagbot.dto.UnModifyMRDTO;
|
|
|
|
+import com.diagbot.dto.UnModifyMRDetailDTO;
|
|
|
|
+import com.diagbot.entity.SysHospitalSet;
|
|
import com.diagbot.exception.CommonErrorCode;
|
|
import com.diagbot.exception.CommonErrorCode;
|
|
import com.diagbot.exception.CommonException;
|
|
import com.diagbot.exception.CommonException;
|
|
|
|
+import com.diagbot.util.ClassUtil;
|
|
|
|
+import com.diagbot.util.EntityUtil;
|
|
import com.diagbot.util.ListUtil;
|
|
import com.diagbot.util.ListUtil;
|
|
import com.diagbot.util.StringUtil;
|
|
import com.diagbot.util.StringUtil;
|
|
import com.diagbot.vo.EntryStatisticsVO;
|
|
import com.diagbot.vo.EntryStatisticsVO;
|
|
import com.diagbot.vo.FilterOrderVO;
|
|
import com.diagbot.vo.FilterOrderVO;
|
|
import com.diagbot.vo.FilterPageByAverageVO;
|
|
import com.diagbot.vo.FilterPageByAverageVO;
|
|
import com.diagbot.vo.FilterPageVO;
|
|
import com.diagbot.vo.FilterPageVO;
|
|
|
|
+import com.diagbot.vo.FilterUnModifyMRVO;
|
|
import com.diagbot.vo.FilterVO;
|
|
import com.diagbot.vo.FilterVO;
|
|
import com.diagbot.vo.QcResultShortPageVO;
|
|
import com.diagbot.vo.QcResultShortPageVO;
|
|
import com.google.common.collect.Lists;
|
|
import com.google.common.collect.Lists;
|
|
@@ -35,6 +43,7 @@ import org.springframework.stereotype.Component;
|
|
import java.math.BigDecimal;
|
|
import java.math.BigDecimal;
|
|
import java.math.RoundingMode;
|
|
import java.math.RoundingMode;
|
|
import java.text.DecimalFormat;
|
|
import java.text.DecimalFormat;
|
|
|
|
+import java.util.Arrays;
|
|
import java.util.HashMap;
|
|
import java.util.HashMap;
|
|
import java.util.LinkedHashMap;
|
|
import java.util.LinkedHashMap;
|
|
import java.util.List;
|
|
import java.util.List;
|
|
@@ -65,6 +74,8 @@ public class ConsoleFacade {
|
|
private HomePageFacade homePageFacade;
|
|
private HomePageFacade homePageFacade;
|
|
@Autowired
|
|
@Autowired
|
|
private BehospitalInfoFacade behospitalInfoFacade;
|
|
private BehospitalInfoFacade behospitalInfoFacade;
|
|
|
|
+ @Autowired
|
|
|
|
+ private SysHospitalSetFacade sysHospitalSetFacade;
|
|
|
|
|
|
//region-----------------------聚合接口开始-------------------------------
|
|
//region-----------------------聚合接口开始-------------------------------
|
|
|
|
|
|
@@ -961,4 +972,131 @@ public class ConsoleFacade {
|
|
item.setImproveToFullPercentStr(improveToFullPercentStr);
|
|
item.setImproveToFullPercentStr(improveToFullPercentStr);
|
|
return item;
|
|
return item;
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 未整改病历统计
|
|
|
|
+ *
|
|
|
|
+ * @param filterUnModifyMRVO
|
|
|
|
+ * @return
|
|
|
|
+ */
|
|
|
|
+ public UnModifyMRDTO unModifyMRStatistics(FilterUnModifyMRVO filterUnModifyMRVO) {
|
|
|
|
+ UnModifyMRDTO unModifyMRDTO = new UnModifyMRDTO();
|
|
|
|
+ List<Object> retList = Lists.newLinkedList();
|
|
|
|
+ filterFacade.filterUnModifyMRVOSet(filterUnModifyMRVO);
|
|
|
|
+
|
|
|
|
+ //colums
|
|
|
|
+ QueryWrapper<SysHospitalSet> hospitalSetQueryWrapper = new QueryWrapper<>();
|
|
|
|
+ hospitalSetQueryWrapper.eq("is_deleted", 'N')
|
|
|
|
+ .eq("hospital_id", filterUnModifyMRVO.getHospitalId())
|
|
|
|
+ .eq("code", "unmodify_mr_entry_cx");
|
|
|
|
+ SysHospitalSet hospitalSet = sysHospitalSetFacade.getOne(hospitalSetQueryWrapper);
|
|
|
|
+ if (hospitalSet == null || StringUtil.isBlank(hospitalSet.getValue())) {
|
|
|
|
+ return null;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ List<String> columnSet = Arrays.asList(hospitalSet.getValue().split(","));
|
|
|
|
+ List<ColumnDTO> columns = Lists.newLinkedList();
|
|
|
|
+ Integer orderNo = 1;
|
|
|
|
+ ColumnDTO columnDeptId = new ColumnDTO();
|
|
|
|
+ columnDeptId.setOrderNo(orderNo);
|
|
|
|
+ columnDeptId.setFieldName("deptId");
|
|
|
|
+ columnDeptId.setColumnName("科室编码");
|
|
|
|
+ columnDeptId.setIsShow(1);
|
|
|
|
+ columns.add(columnDeptId);
|
|
|
|
+ orderNo++;
|
|
|
|
+ ColumnDTO columnDeptName = new ColumnDTO();
|
|
|
|
+ columnDeptName.setOrderNo(orderNo);
|
|
|
|
+ columnDeptName.setFieldName("deptName");
|
|
|
|
+ columnDeptName.setColumnName("科室名称");
|
|
|
|
+ columnDeptName.setIsShow(1);
|
|
|
|
+ columns.add(columnDeptName);
|
|
|
|
+ orderNo++;
|
|
|
|
+ List<Long> casesEntryIds = Lists.newArrayList();
|
|
|
|
+ for (String valueStr : columnSet) {
|
|
|
|
+ String[] keyValue = valueStr.split("--");
|
|
|
|
+ if (keyValue != null || keyValue.length > 1) {
|
|
|
|
+ casesEntryIds.add(Long.valueOf(keyValue[0]));
|
|
|
|
+ ColumnDTO columnId = new ColumnDTO();
|
|
|
|
+ columnId.setOrderNo(orderNo);
|
|
|
|
+ columnId.setId(Long.valueOf(keyValue[0]));
|
|
|
|
+ columnId.setFieldName("entry_" + keyValue[0] + "_id");
|
|
|
|
+ columnId.setColumnName(keyValue[1] + "id");
|
|
|
|
+ columnId.setIsShow(0);
|
|
|
|
+ columns.add(columnId);
|
|
|
|
+ orderNo++;
|
|
|
|
+ ColumnDTO columnName = new ColumnDTO();
|
|
|
|
+ columnName.setOrderNo(orderNo);
|
|
|
|
+ columnName.setId(Long.valueOf(keyValue[0]));
|
|
|
|
+ columnName.setFieldName("entry_" + keyValue[0] + "_name");
|
|
|
|
+ columnName.setColumnName(keyValue[1] + "name");
|
|
|
|
+ columnName.setIsShow(0);
|
|
|
|
+ columns.add(columnName);
|
|
|
|
+ orderNo++;
|
|
|
|
+ ColumnDTO columnNum = new ColumnDTO();
|
|
|
|
+ columnNum.setOrderNo(orderNo);
|
|
|
|
+ columnNum.setId(Long.valueOf(keyValue[0]));
|
|
|
|
+ columnNum.setFieldName("entry_" + keyValue[0] + "_num");
|
|
|
|
+ columnNum.setColumnName(keyValue[1]);
|
|
|
|
+ columnNum.setIsShow(1);
|
|
|
|
+ columns.add(columnNum);
|
|
|
|
+ orderNo++;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ filterUnModifyMRVO.setCasesEntryIds(casesEntryIds);
|
|
|
|
+ List<UnModifyMRDetailDTO> records = behospitalInfoFacade.unModifyMRStatistics(filterUnModifyMRVO);
|
|
|
|
+ Map<String, List<UnModifyMRDetailDTO>> deptMap = EntityUtil.makeEntityListMap(records, "deptId");
|
|
|
|
+ Map<String, String> deptInfoMap = EntityUtil.makeMapWithKeyValue(records, "deptId", "deptName");
|
|
|
|
+ Map<String, Map<Long, UnModifyMRDetailDTO>> deptEntryMap = new LinkedHashMap<>();
|
|
|
|
+ for (Map.Entry<String, List<UnModifyMRDetailDTO>> entry : deptMap.entrySet()) {
|
|
|
|
+ Map<Long, UnModifyMRDetailDTO> entryMap = EntityUtil.makeEntityMap(entry.getValue(), "casesEntryId");
|
|
|
|
+ deptEntryMap.put(entry.getKey(), entryMap);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ try {
|
|
|
|
+ for (Map.Entry<String, Map<Long, UnModifyMRDetailDTO>> entry : deptEntryMap.entrySet()) {
|
|
|
|
+ Object obj = new Object();
|
|
|
|
+ HashMap addMap = new HashMap();
|
|
|
|
+ HashMap addValMap = new HashMap();
|
|
|
|
+ addMap.put("deptId", Class.forName("java.lang.String"));
|
|
|
|
+ addValMap.put("deptId", entry.getKey());
|
|
|
|
+ addMap.put("deptName", Class.forName("java.lang.String"));
|
|
|
|
+ addValMap.put("deptName", deptInfoMap.get(entry.getKey()));
|
|
|
|
+
|
|
|
|
+ for (ColumnDTO item : columns) {
|
|
|
|
+ if (item.getFieldName().lastIndexOf("_id") > 0) {
|
|
|
|
+ addMap.put(item.getFieldName(), Class.forName("java.lang.Long"));
|
|
|
|
+ if (entry.getValue().containsKey(item.getId())) {
|
|
|
|
+ addValMap.put(item.getFieldName(), entry.getValue().get(item.getId()).getCasesEntryId());
|
|
|
|
+ } else {
|
|
|
|
+ addValMap.put(item.getFieldName(), 0L);
|
|
|
|
+ }
|
|
|
|
+ } else if (item.getFieldName().lastIndexOf("_name") > 0) {
|
|
|
|
+ addMap.put(item.getFieldName(), Class.forName("java.lang.String"));
|
|
|
|
+ if (entry.getValue().containsKey(item.getId())) {
|
|
|
|
+ addValMap.put(item.getFieldName(), entry.getValue().get(item.getId()).getCasesEntryName());
|
|
|
|
+ } else {
|
|
|
|
+ addValMap.put(item.getFieldName(), "");
|
|
|
|
+ }
|
|
|
|
+ } else if (item.getFieldName().lastIndexOf("_num") > 0) {
|
|
|
|
+ addMap.put(item.getFieldName(), Class.forName("java.lang.Integer"));
|
|
|
|
+ if (entry.getValue().containsKey(item.getId())) {
|
|
|
|
+ addValMap.put(item.getFieldName(), entry.getValue().get(item.getId()).getCasesEntryNum());
|
|
|
|
+ } else {
|
|
|
|
+ addValMap.put(item.getFieldName(), 0);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ obj = new ClassUtil().dynamicClass(obj, addMap, addValMap);
|
|
|
|
+ retList.add(obj);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
+ e.printStackTrace();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ unModifyMRDTO.setColumns(columns);
|
|
|
|
+ unModifyMRDTO.setData(retList);
|
|
|
|
+ return unModifyMRDTO;
|
|
|
|
+ }
|
|
}
|
|
}
|