|
@@ -1,48 +1,19 @@
|
|
|
package com.diagbot.facade;
|
|
|
|
|
|
+import com.alibaba.fastjson.JSONObject;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.diagbot.aggregate.AverageStatisticsAggregate;
|
|
|
import com.diagbot.aggregate.MrStatisticsAggregate;
|
|
|
import com.diagbot.aggregate.ResultStatisticsAggregate;
|
|
|
-import com.diagbot.dto.AverageStatisticsDTO;
|
|
|
-import com.diagbot.dto.AverageStatisticsFeeDTO;
|
|
|
-import com.diagbot.dto.ColumnDTO;
|
|
|
-import com.diagbot.dto.DeptNumDTO;
|
|
|
-import com.diagbot.dto.EntryNumDTO;
|
|
|
-import com.diagbot.dto.EntryNumGroupDTO;
|
|
|
-import com.diagbot.dto.EntryStatisticsDTO;
|
|
|
-import com.diagbot.dto.HomePageImproveDTO;
|
|
|
-import com.diagbot.dto.HomePageNumDTO;
|
|
|
-import com.diagbot.dto.LevelStatisticsDTO;
|
|
|
-import com.diagbot.dto.LevelStatisticsTZDTO;
|
|
|
-import com.diagbot.dto.NumDTO;
|
|
|
-import com.diagbot.dto.QcResultPercentDTO;
|
|
|
-import com.diagbot.dto.QcResultShortDTO;
|
|
|
-import com.diagbot.dto.ReBeHosDTO;
|
|
|
-import com.diagbot.dto.ReBeHosDetailDTO;
|
|
|
-import com.diagbot.dto.ReBeHosMergeDTO;
|
|
|
-import com.diagbot.dto.UnModifyMRDTO;
|
|
|
-import com.diagbot.dto.UnModifyMRDetailDTO;
|
|
|
+import com.diagbot.dto.*;
|
|
|
import com.diagbot.entity.QcCasesEntry;
|
|
|
import com.diagbot.entity.SysHospitalSet;
|
|
|
import com.diagbot.exception.CommonErrorCode;
|
|
|
import com.diagbot.exception.CommonException;
|
|
|
-import com.diagbot.util.BeanUtil;
|
|
|
-import com.diagbot.util.ClassUtil;
|
|
|
-import com.diagbot.util.EntityUtil;
|
|
|
-import com.diagbot.util.ListUtil;
|
|
|
-import com.diagbot.util.ObjectUtil;
|
|
|
-import com.diagbot.util.StringUtil;
|
|
|
-import com.diagbot.vo.EntryStatisticsVO;
|
|
|
-import com.diagbot.vo.FilterOrderVO;
|
|
|
-import com.diagbot.vo.FilterPageByAverageVO;
|
|
|
-import com.diagbot.vo.FilterPageVO;
|
|
|
-import com.diagbot.vo.FilterUnModifyMRVO;
|
|
|
-import com.diagbot.vo.FilterVO;
|
|
|
-import com.diagbot.vo.QcResultShortPageVO;
|
|
|
-import com.diagbot.vo.ReBeHosPageVO;
|
|
|
+import com.diagbot.util.*;
|
|
|
+import com.diagbot.vo.*;
|
|
|
import com.google.common.collect.Lists;
|
|
|
import io.github.lvyahui8.spring.aggregate.facade.DataBeanAggregateQueryFacade;
|
|
|
import org.apache.ibatis.annotations.Param;
|
|
@@ -52,13 +23,7 @@ import org.springframework.stereotype.Component;
|
|
|
import java.math.BigDecimal;
|
|
|
import java.math.RoundingMode;
|
|
|
import java.text.DecimalFormat;
|
|
|
-import java.util.Arrays;
|
|
|
-import java.util.Collections;
|
|
|
-import java.util.Comparator;
|
|
|
-import java.util.HashMap;
|
|
|
-import java.util.LinkedHashMap;
|
|
|
-import java.util.List;
|
|
|
-import java.util.Map;
|
|
|
+import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
@@ -1053,10 +1018,13 @@ public class ConsoleFacade {
|
|
|
qcCasesEntryQueryWrapper.eq("is_deleted", "N")
|
|
|
.in("id", casesEntryIds);
|
|
|
List<QcCasesEntry> casesEntryList = qcCasesEntryFacade.list(qcCasesEntryQueryWrapper);
|
|
|
+ // 实体类中将实体类转化为map形式,其中条目id对应目标条目名称
|
|
|
Map<Long, String> basCasesEntryMap = EntityUtil.makeMapWithKeyValue(casesEntryList, "id", "name");
|
|
|
|
|
|
List<UnModifyMRDetailDTO> records = behospitalInfoFacade.unModifyMRStatistics(filterUnModifyMRVO);
|
|
|
+ //以科室分组,将符合科室的每条数据以map形式存储
|
|
|
Map<String, List<UnModifyMRDetailDTO>> deptMap = EntityUtil.makeEntityListMap(records, "deptName");
|
|
|
+ //科室对应科室id
|
|
|
Map<String, String> deptInfoMap = EntityUtil.makeMapWithKeyValue(records, "deptName", "deptId");
|
|
|
Map<String, Map<Long, UnModifyMRDetailDTO>> deptEntryMap = new LinkedHashMap<>();
|
|
|
for (Map.Entry<String, List<UnModifyMRDetailDTO>> entry : deptMap.entrySet()) {
|
|
@@ -1321,4 +1289,146 @@ public class ConsoleFacade {
|
|
|
filterFacade.qcResultShortPageVOSet(qcResultShortPageVO);
|
|
|
return behospitalInfoFacade.qcCheckMRPage(qcResultShortPageVO);
|
|
|
}
|
|
|
-}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 运行病历稽查表(首页)
|
|
|
+ *
|
|
|
+ * @param filterVO
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public IPage<Map<String, Object>> getMedicalCheck(@Param("filterVO") FilterMedicalCheckVO filterVO) {
|
|
|
+ //filterFacade.getMedicalCheckVOSet(filterVO);
|
|
|
+ filterVO.setHospitalId("2");
|
|
|
+ //colums
|
|
|
+ QueryWrapper<SysHospitalSet> hospitalSetQueryWrapper = new QueryWrapper<>();
|
|
|
+ hospitalSetQueryWrapper.eq("is_deleted", 'N')
|
|
|
+ .eq("hospital_id", filterVO.getHospitalId())
|
|
|
+ .eq("code", "medical_check_form");
|
|
|
+ SysHospitalSet hospitalSet = sysHospitalSetFacade.getOne(hospitalSetQueryWrapper);
|
|
|
+
|
|
|
+ //表头生成
|
|
|
+ List<String> columnSet = Arrays.asList(hospitalSet.getValue().split(","));
|
|
|
+
|
|
|
+ //目标条目
|
|
|
+ List<Long> casesEntryIds = Lists.newArrayList();
|
|
|
+ //遍历第一个条目
|
|
|
+ for (String valueStr : columnSet) {
|
|
|
+ if (StringUtil.isBlank(valueStr)) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ String[] keyValue = valueStr.split("--");
|
|
|
+ if (keyValue != null || keyValue.length > 1) {
|
|
|
+ casesEntryIds.add(Long.valueOf(keyValue[0]));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ filterVO.setCasesEntryIds(casesEntryIds);
|
|
|
+ IPage<Map<String, Object>> medicalCheck = behospitalInfoFacade.getMedicalCheck(filterVO);
|
|
|
+ List<Map<String, Object>> records = medicalCheck.getRecords();
|
|
|
+ List<Map<String, Object>> targetRecords = new ArrayList<>();
|
|
|
+
|
|
|
+ for (Map<String, Object> record : records) {
|
|
|
+ MedicalCheckDTO medicalCheckDTO = new MedicalCheckDTO();
|
|
|
+ Map<String, Object> targetMap = new HashMap<String, Object>();
|
|
|
+ Map<String, Object> targetMedicalCheck = new HashMap<>();
|
|
|
+ String deptId = String.valueOf(record.get("deptId"));
|
|
|
+ String deptName = String.valueOf(record.get("deptName"));
|
|
|
+ String doctorName = String.valueOf(record.get("doctorName"));
|
|
|
+ String casesEntryId = String.valueOf(record.get("casesEntryId"));
|
|
|
+
|
|
|
+ String[] split = casesEntryId.split(",");
|
|
|
+
|
|
|
+ for (String num : split) {
|
|
|
+ if (!targetMap.containsKey(num)) {
|
|
|
+ targetMap.put(num, 1);
|
|
|
+ } else {
|
|
|
+ targetMap.put(num, (Object) ((Integer) targetMap.get(num) + 1));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ medicalCheckDTO.setDoctorName(doctorName);
|
|
|
+ medicalCheckDTO.setDeptId(deptId);
|
|
|
+ medicalCheckDTO.setColumndeptNames(deptName);
|
|
|
+ Set<Map.Entry<String, Object>> entries = targetMap.entrySet();
|
|
|
+ for (Map.Entry<String, Object> entry : entries) {
|
|
|
+ medicalCheckDTO.setNumId(entry.getKey());
|
|
|
+ medicalCheckDTO.setJzCount(String.valueOf(entry.getValue()));
|
|
|
+ targetMedicalCheck.put(medicalCheckDTO.getNumId(), medicalCheckDTO);
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ targetRecords.add(targetMedicalCheck);
|
|
|
+ }
|
|
|
+ medicalCheck.setRecords(targetRecords);
|
|
|
+
|
|
|
+
|
|
|
+ return medicalCheck;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 运行病历稽查表(title)
|
|
|
+ *
|
|
|
+ * @param
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+
|
|
|
+
|
|
|
+ public List<ColumnDTO> getMedicalCheckTitle() {
|
|
|
+ //运行病历稽查入参拼接
|
|
|
+ // String hospitalId = SysUserUtils.getCurrentHospitalID();
|
|
|
+ String hospitalId = "2";
|
|
|
+ //colums
|
|
|
+ QueryWrapper<SysHospitalSet> hospitalSetQueryWrapper = new QueryWrapper<>();
|
|
|
+ hospitalSetQueryWrapper.eq("is_deleted", 'N')
|
|
|
+ .eq("hospital_id", hospitalId)
|
|
|
+ .eq("code", "medical_check_form");
|
|
|
+ List<ColumnDTO> columns = Lists.newLinkedList();
|
|
|
+ SysHospitalSet hospitalSet = sysHospitalSetFacade.getOne(hospitalSetQueryWrapper);
|
|
|
+ if (hospitalSet == null || StringUtil.isBlank(hospitalSet.getValue())) {
|
|
|
+ return columns;
|
|
|
+ }
|
|
|
+
|
|
|
+ //表头生成
|
|
|
+ List<String> columnSet = Arrays.asList(hospitalSet.getValue().split(","));
|
|
|
+ Integer orderNo = 1;
|
|
|
+ ColumnDTO columnDeptId = new ColumnDTO();
|
|
|
+ columnDeptId.setOrderNo(orderNo);
|
|
|
+ columnDeptId.setFieldName("deptId");
|
|
|
+ columnDeptId.setColumnName("科室编码");
|
|
|
+ columnDeptId.setIsShow(0);
|
|
|
+ columns.add(columnDeptId);
|
|
|
+ orderNo++;
|
|
|
+ ColumnDTO columnDeptName = new ColumnDTO();
|
|
|
+ columnDeptName.setOrderNo(orderNo);
|
|
|
+ columnDeptName.setFieldName("deptName");
|
|
|
+ columnDeptName.setColumnName("科室");
|
|
|
+ columnDeptName.setIsShow(1);
|
|
|
+ columns.add(columnDeptName);
|
|
|
+ orderNo++;
|
|
|
+ ColumnDTO columnMedicalName = new ColumnDTO();
|
|
|
+ columnDeptName.setOrderNo(orderNo);
|
|
|
+ columnDeptName.setFieldName("medicalName");
|
|
|
+ columnDeptName.setColumnName("医疗组");
|
|
|
+ columnDeptName.setIsShow(1);
|
|
|
+ columns.add(columnMedicalName);
|
|
|
+ orderNo++;
|
|
|
+ for (String valueStr : columnSet) {
|
|
|
+ if (StringUtil.isBlank(valueStr)) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ String[] keyValue = valueStr.split("--");
|
|
|
+ if (keyValue != null || keyValue.length > 1) {
|
|
|
+ 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++;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return columns;
|
|
|
+ }
|
|
|
+}
|
|
|
+
|