|
@@ -1,24 +1,20 @@
|
|
|
package com.diagbot.facade;
|
|
|
|
|
|
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
+import com.diagbot.aggregate.AverageStatisticsAggregate;
|
|
|
+import com.diagbot.aggregate.MrStatisticsAggregate;
|
|
|
+import com.diagbot.aggregate.ResultStatisticsAggregate;
|
|
|
import com.diagbot.dto.AverageStatisticsDTO;
|
|
|
-import com.diagbot.entity.BehospitalInfo;
|
|
|
-import com.diagbot.enums.IsDeleteEnum;
|
|
|
+import com.diagbot.dto.NumDTO;
|
|
|
+import com.diagbot.dto.QcResultPercentDTO;
|
|
|
import com.diagbot.exception.CommonErrorCode;
|
|
|
import com.diagbot.exception.CommonException;
|
|
|
-import com.diagbot.util.BeanUtil;
|
|
|
-import com.diagbot.util.DateUtil;
|
|
|
+import com.diagbot.util.ListUtil;
|
|
|
import com.diagbot.util.SysUserUtils;
|
|
|
import com.diagbot.vo.FilterVO;
|
|
|
-import com.diagbot.vo.QcresultFilterVO;
|
|
|
-import com.google.common.collect.Lists;
|
|
|
import io.github.lvyahui8.spring.aggregate.facade.DataBeanAggregateQueryFacade;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Component;
|
|
|
|
|
|
-import java.math.BigDecimal;
|
|
|
-import java.math.RoundingMode;
|
|
|
-import java.util.Date;
|
|
|
import java.util.HashMap;
|
|
|
import java.util.LinkedHashMap;
|
|
|
import java.util.List;
|
|
@@ -31,114 +27,44 @@ import java.util.Map;
|
|
|
*/
|
|
|
@Component
|
|
|
public class ConsoleFacade {
|
|
|
-
|
|
|
@Autowired
|
|
|
- private QcresultInfoFacade qcresultInfoFacade;
|
|
|
+ private FilterFacade filterFacade;
|
|
|
@Autowired
|
|
|
- private BehospitalInfoFacade behospitalInfoFacade;
|
|
|
+ private DataBeanAggregateQueryFacade dataBeanAggregateQueryFacade;
|
|
|
+
|
|
|
@Autowired
|
|
|
- private HomePageFacade homePageFacade;
|
|
|
+ private AverageStatisticsAggregate averageStatisticsAggregate;
|
|
|
@Autowired
|
|
|
- private DataBeanAggregateQueryFacade dataBeanAggregateQueryFacade;
|
|
|
+ private MrStatisticsAggregate mrStatisticsAggregate;
|
|
|
+ @Autowired
|
|
|
+ private ResultStatisticsAggregate resultStatisticsAggregate;
|
|
|
|
|
|
+ //-----------------------聚合接口开始-------------------------------
|
|
|
|
|
|
/**
|
|
|
* 病历相关统计
|
|
|
*
|
|
|
+ * @param filterVO
|
|
|
* @return
|
|
|
*/
|
|
|
public Map<String, Object> mrStatistics(FilterVO filterVO) {
|
|
|
Map<String, Object> retMap = new LinkedHashMap<>();
|
|
|
String hospitalId = SysUserUtils.getCurrentHospitalID();
|
|
|
- String startDate = getStartDateStr(filterVO.getType());
|
|
|
+ String startDate = filterFacade.getStartDateStr(filterVO.getType(), null);
|
|
|
+ String endDate = filterFacade.getEndDateStr(filterVO.getType(), null);
|
|
|
filterVO.setStartDate(startDate);
|
|
|
+ filterVO.setEndDate(endDate);
|
|
|
filterVO.setHospitalId(hospitalId);
|
|
|
-
|
|
|
- QueryWrapper<BehospitalInfo> behospitalInfoQueryWrapper = new QueryWrapper<>();
|
|
|
- behospitalInfoQueryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
|
|
|
- .eq("hospital_id", hospitalId)
|
|
|
- .ge("behospital_date", startDate);
|
|
|
- int behospitalInfoCount = behospitalInfoFacade.count(behospitalInfoQueryWrapper);
|
|
|
- //病历数
|
|
|
- if (filterVO.getType().equals(1)) {
|
|
|
- retMap.put("本月病历数", behospitalInfoCount);
|
|
|
- } else if (filterVO.getType().equals(2)) {
|
|
|
- retMap.put("本年病历数", behospitalInfoCount);
|
|
|
- }
|
|
|
-
|
|
|
- QcresultFilterVO qcresultFilterVO = new QcresultFilterVO();
|
|
|
- BeanUtil.copyProperties(filterVO, qcresultFilterVO);
|
|
|
- //本月质控数-人工
|
|
|
- qcresultFilterVO.setGradeType(2);
|
|
|
- qcresultFilterVO.setLevel("");
|
|
|
- int qcresultByGradeType2Count = qcresultInfoFacade.getQcresultSelectively(qcresultFilterVO);
|
|
|
- if (qcresultFilterVO.getType().equals(1)) {
|
|
|
- retMap.put("本月质控数-人工", qcresultByGradeType2Count);
|
|
|
- } else if (qcresultFilterVO.getType().equals(2)) {
|
|
|
- retMap.put("本年质控数-人工", qcresultByGradeType2Count);
|
|
|
- }
|
|
|
- //本月质控数-机器
|
|
|
- qcresultFilterVO.setGradeType(1);
|
|
|
- qcresultFilterVO.setLevel("");
|
|
|
- int qcresultByGradeType1Count = qcresultInfoFacade.getQcresultSelectively(qcresultFilterVO);
|
|
|
- if (qcresultFilterVO.getType().equals(1)) {
|
|
|
- retMap.put("本月质控数-机器", qcresultByGradeType1Count);
|
|
|
- } else if (qcresultFilterVO.getType().equals(2)) {
|
|
|
- retMap.put("本年质控数-机器", qcresultByGradeType1Count);
|
|
|
- }
|
|
|
- //本月甲级病历-人工
|
|
|
- qcresultFilterVO.setGradeType(2);
|
|
|
- qcresultFilterVO.setLevel("甲");
|
|
|
- int qcresultByGradeType2AndLevel1Count = qcresultInfoFacade.getQcresultSelectively(qcresultFilterVO);
|
|
|
- if (qcresultFilterVO.getType().equals(1)) {
|
|
|
- retMap.put("本月甲级病历-人工", qcresultByGradeType2AndLevel1Count);
|
|
|
- } else if (qcresultFilterVO.getType().equals(2)) {
|
|
|
- retMap.put("本年甲级病历-人工", qcresultByGradeType2AndLevel1Count);
|
|
|
- }
|
|
|
- //本月甲级病历-机器
|
|
|
- qcresultFilterVO.setGradeType(1);
|
|
|
- qcresultFilterVO.setLevel("甲");
|
|
|
- int qcresultByGradeType1AndLevel1Count = qcresultInfoFacade.getQcresultSelectively(qcresultFilterVO);
|
|
|
- if (qcresultFilterVO.getType().equals(1)) {
|
|
|
- retMap.put("本月甲级病历-机器", qcresultByGradeType1AndLevel1Count);
|
|
|
- } else if (qcresultFilterVO.getType().equals(2)) {
|
|
|
- retMap.put("本年甲级病历-机器", qcresultByGradeType1AndLevel1Count);
|
|
|
- }
|
|
|
- //本月乙级病历-人工
|
|
|
- qcresultFilterVO.setGradeType(2);
|
|
|
- qcresultFilterVO.setLevel("乙");
|
|
|
- int qcresultByGradeType2AndLevel2Count = qcresultInfoFacade.getQcresultSelectively(qcresultFilterVO);
|
|
|
- if (qcresultFilterVO.getType().equals(1)) {
|
|
|
- retMap.put("本月乙级病历-人工", qcresultByGradeType2AndLevel2Count);
|
|
|
- } else if (qcresultFilterVO.getType().equals(2)) {
|
|
|
- retMap.put("本年乙级病历-人工", qcresultByGradeType2AndLevel2Count);
|
|
|
- }
|
|
|
- //本月乙级病历-机器
|
|
|
- qcresultFilterVO.setGradeType(1);
|
|
|
- qcresultFilterVO.setLevel("乙");
|
|
|
- int qcresultByGradeType1AndLevel2Count = qcresultInfoFacade.getQcresultSelectively(qcresultFilterVO);
|
|
|
- if (qcresultFilterVO.getType().equals(1)) {
|
|
|
- retMap.put("本月乙级病历-机器", qcresultByGradeType1AndLevel2Count);
|
|
|
- } else if (qcresultFilterVO.getType().equals(2)) {
|
|
|
- retMap.put("本年乙级病历-机器", qcresultByGradeType1AndLevel2Count);
|
|
|
- }
|
|
|
- //本月乙级病历-人工
|
|
|
- qcresultFilterVO.setGradeType(2);
|
|
|
- qcresultFilterVO.setLevel("丙");
|
|
|
- int qcresultByGradeType2AndLevel3Count = qcresultInfoFacade.getQcresultSelectively(qcresultFilterVO);
|
|
|
- if (qcresultFilterVO.getType().equals(1)) {
|
|
|
- retMap.put("本月丙级病历-人工", qcresultByGradeType2AndLevel3Count);
|
|
|
- } else if (qcresultFilterVO.getType().equals(2)) {
|
|
|
- retMap.put("本年丙级病历-人工", qcresultByGradeType2AndLevel3Count);
|
|
|
+ if (filterVO.getLimitCount() == null || filterVO.getLimitCount().equals(0)) {
|
|
|
+ filterVO.setLimitCount(10);
|
|
|
}
|
|
|
- //本月乙级病历-机器
|
|
|
- qcresultFilterVO.setGradeType(1);
|
|
|
- qcresultFilterVO.setLevel("丙");
|
|
|
- int qcresultByGradeType1AndLevel3Count = qcresultInfoFacade.getQcresultSelectively(qcresultFilterVO);
|
|
|
- if (filterVO.getType().equals(1)) {
|
|
|
- retMap.put("本月丙级病历-机器", qcresultByGradeType1AndLevel3Count);
|
|
|
- } else if (filterVO.getType().equals(2)) {
|
|
|
- retMap.put("本年丙级病历-机器", qcresultByGradeType1AndLevel3Count);
|
|
|
+ try {
|
|
|
+ Map<String, Object> invokeParams = new HashMap<>();
|
|
|
+ invokeParams.put("filterVO", filterVO);
|
|
|
+ retMap
|
|
|
+ = dataBeanAggregateQueryFacade.get("setAllMr", invokeParams, Map.class);
|
|
|
+ } catch (Exception e) {
|
|
|
+ throw new CommonException(CommonErrorCode.SERVER_IS_ERROR);
|
|
|
}
|
|
|
return retMap;
|
|
|
}
|
|
@@ -151,59 +77,15 @@ public class ConsoleFacade {
|
|
|
*/
|
|
|
public Map<String, Object> resultStatistics(FilterVO filterVO) {
|
|
|
Map<String, Object> retMap = new LinkedHashMap<>();
|
|
|
- retMap.put("缺陷排行列表", Lists.newLinkedList());
|
|
|
- retMap.put("各科室缺陷占比", Lists.newLinkedList());
|
|
|
String hospitalId = SysUserUtils.getCurrentHospitalID();
|
|
|
- String startDate = getStartDateStr(filterVO.getType());
|
|
|
- filterVO.setStartDate(startDate);
|
|
|
+ String startDate = filterFacade.getStartDateStr(filterVO.getType(), null);
|
|
|
+ String endDate = filterFacade.getEndDateStr(filterVO.getType(), null);
|
|
|
filterVO.setHospitalId(hospitalId);
|
|
|
- /*if (filterVO.getLimitCount() == null || filterVO.getLimitCount().equals(0)) {
|
|
|
+ filterVO.setStartDate(startDate);
|
|
|
+ filterVO.setEndDate(endDate);
|
|
|
+ if (filterVO.getLimitCount() == null || filterVO.getLimitCount().equals(0)) {
|
|
|
filterVO.setLimitCount(10);
|
|
|
- }*/
|
|
|
- // List<ResultDetailDTO> results = behospitalInfoFacade.resultStatistics(filterVO);
|
|
|
- // if (ListUtil.isNotEmpty(results)) {
|
|
|
- // results.forEach(result -> {
|
|
|
- // DecimalFormat df = new DecimalFormat("#0.00");
|
|
|
- // String percentStr
|
|
|
- // = df.format(BigDecimal.valueOf(result.getPercent()).multiply(BigDecimal.valueOf(100))) + "%";
|
|
|
- // result.setPercentStr(percentStr);
|
|
|
- // });
|
|
|
- // retMap.put("缺陷排行列表", results);
|
|
|
- // }
|
|
|
- // List<ResultDetailDTO> results2 = behospitalInfoFacade.resultStatisticsByDept(filterVO);
|
|
|
- // if (ListUtil.isNotEmpty(results2)) {
|
|
|
- // List<ResultDetailDTO> retResults = Lists.newLinkedList();
|
|
|
- // if (results2.size() <= 6) {
|
|
|
- // retResults = BeanUtil.listCopyTo(results2, ResultDetailDTO.class);
|
|
|
- // } else {
|
|
|
- //
|
|
|
- // Double rate = 0d;
|
|
|
- // Integer num = 0;
|
|
|
- // for (ResultDetailDTO result : results2) {
|
|
|
- // if (retResults.size() < 5) {
|
|
|
- // rate = BigDecimal.valueOf(rate)
|
|
|
- // .add(BigDecimal.valueOf(Double.valueOf(result.getPercent())))
|
|
|
- // .doubleValue();
|
|
|
- // retResults.add(result);
|
|
|
- // } else {
|
|
|
- // num += result.getNum();
|
|
|
- // }
|
|
|
- // }
|
|
|
- // ResultDetailDTO retResult = new ResultDetailDTO();
|
|
|
- // retResult.setName("其他");
|
|
|
- // retResult.setNum(num);
|
|
|
- // retResult.setPercent(BigDecimal.valueOf(1).subtract(BigDecimal.valueOf(rate)).doubleValue());
|
|
|
- // retResults.add(retResult);
|
|
|
- // }
|
|
|
- // retResults.forEach(result -> {
|
|
|
- // DecimalFormat df = new DecimalFormat("#0.00");
|
|
|
- // String percentStr
|
|
|
- // = df.format(BigDecimal.valueOf(result.getPercent()).multiply(BigDecimal.valueOf(100))) + "%";
|
|
|
- // result.setPercentStr(percentStr);
|
|
|
- // });
|
|
|
- // retMap.put("各科室缺陷占比", retResults);
|
|
|
- // }
|
|
|
-
|
|
|
+ }
|
|
|
try {
|
|
|
Map<String, Object> invokeParams = new HashMap<>();
|
|
|
invokeParams.put("filterVO", filterVO);
|
|
@@ -216,43 +98,22 @@ public class ConsoleFacade {
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * 医院运营相关统计
|
|
|
+ * 平局值相关统计
|
|
|
*
|
|
|
* @param filterVO
|
|
|
* @return
|
|
|
*/
|
|
|
public Map<String, Object> averageStatistics(FilterVO filterVO) {
|
|
|
Map<String, Object> retMap = new LinkedHashMap<>();
|
|
|
- retMap.put("平均住院日", Lists.newLinkedList());
|
|
|
- retMap.put("平均住院费用", Lists.newLinkedList());
|
|
|
String hospitalId = SysUserUtils.getCurrentHospitalID();
|
|
|
+ String startDate = filterFacade.getStartDateStr(filterVO.getType(), null);
|
|
|
+ String endDate = filterFacade.getEndDateStr(filterVO.getType(), null);
|
|
|
filterVO.setHospitalId(hospitalId);
|
|
|
- String startDate = getStartDateStr(filterVO.getType());
|
|
|
filterVO.setStartDate(startDate);
|
|
|
-
|
|
|
- /*
|
|
|
- List<AverageStatisticsDTO> retAverageDayNumList = Lists.newLinkedList();
|
|
|
- List<AverageStatisticsDTO> retAverageFeeList = Lists.newLinkedList();
|
|
|
- List<AverageStatisticsDTO> averageDayNumList = homePageFacade.getAverageDayNum(filterVO);
|
|
|
- List<AverageStatisticsDTO> averageFeeList = homePageFacade.getAverageFee(filterVO);
|
|
|
-
|
|
|
+ filterVO.setEndDate(endDate);
|
|
|
if (filterVO.getLimitCount() == null || filterVO.getLimitCount().equals(0)) {
|
|
|
filterVO.setLimitCount(10);
|
|
|
}
|
|
|
- Integer limitCount = filterVO.getLimitCount();
|
|
|
-
|
|
|
- //平均住院日
|
|
|
- if (ListUtil.isNotEmpty(averageDayNumList)) {
|
|
|
- retAverageDayNumList = getLimitAverageList(averageDayNumList, limitCount);
|
|
|
- retMap.put("平均住院日", retAverageDayNumList);
|
|
|
- }
|
|
|
-
|
|
|
- //平均住院费用
|
|
|
- if (ListUtil.isNotEmpty(averageFeeList)) {
|
|
|
- retAverageFeeList = getLimitAverageList(averageFeeList, limitCount);
|
|
|
- retMap.put("平均住院费用", retAverageFeeList);
|
|
|
- }*/
|
|
|
-
|
|
|
try {
|
|
|
Map<String, Object> invokeParams = new HashMap<>();
|
|
|
invokeParams.put("filterVO", filterVO);
|
|
@@ -261,67 +122,166 @@ public class ConsoleFacade {
|
|
|
} catch (Exception e) {
|
|
|
throw new CommonException(CommonErrorCode.SERVER_IS_ERROR);
|
|
|
}
|
|
|
+ return retMap;
|
|
|
+ }
|
|
|
|
|
|
+ //-----------------------聚合接口结束-------------------------------
|
|
|
+
|
|
|
+ //-----------------------单独接口开始-------------------------------
|
|
|
+ /**
|
|
|
+ * 平均住院天数
|
|
|
+ *
|
|
|
+ * @param filterVO
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public Map<String, Object> getAverageDayNum(FilterVO filterVO) {
|
|
|
+ Map<String, Object> retMap = new HashMap<>();
|
|
|
+ filterVOSet(filterVO);
|
|
|
+ List<AverageStatisticsDTO> averageDayNumList = averageStatisticsAggregate.getAverageDayNum(filterVO);
|
|
|
+ if (ListUtil.isNotEmpty(averageDayNumList)) {
|
|
|
+ retMap.put("平均住院日", averageDayNumList);
|
|
|
+ }
|
|
|
return retMap;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * 筛选起始时间
|
|
|
+ * 平均住院费用
|
|
|
*
|
|
|
- * @param type
|
|
|
+ * @param filterVO
|
|
|
* @return
|
|
|
*/
|
|
|
- public String getStartDateStr(Integer type) {
|
|
|
- Date date = new Date();
|
|
|
- String startDate = "";
|
|
|
- String year = DateUtil.getYear(date);
|
|
|
- int month = DateUtil.getMonth(date);
|
|
|
- if (type.equals(1)) {
|
|
|
- //本月统计
|
|
|
- startDate = year + "-" + month + "-1";
|
|
|
- } else if (type.equals(2)) {
|
|
|
- //本年统计
|
|
|
- startDate = year + "-1-1";
|
|
|
+ public Map<String, Object> getAverageFee(FilterVO filterVO) {
|
|
|
+ Map<String, Object> retMap = new HashMap<>();
|
|
|
+ filterVOSet(filterVO);
|
|
|
+ List<AverageStatisticsDTO> averageFeeList = averageStatisticsAggregate.getAverageFee(filterVO);
|
|
|
+ if (ListUtil.isNotEmpty(averageFeeList)) {
|
|
|
+ retMap.put("平均住院费用", averageFeeList);
|
|
|
}
|
|
|
- return startDate;
|
|
|
+ return retMap;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * 根据限制数量重组统计结果
|
|
|
+ * 质控平均分按科室统计
|
|
|
*
|
|
|
- * @param averageList
|
|
|
- * @param limitCount
|
|
|
+ * @param filterVO
|
|
|
* @return
|
|
|
*/
|
|
|
- public List<AverageStatisticsDTO> getLimitAverageList(List<AverageStatisticsDTO> averageList, Integer limitCount) {
|
|
|
- List<AverageStatisticsDTO> retAverageList = Lists.newLinkedList();
|
|
|
- if (averageList.size() < limitCount) {
|
|
|
- retAverageList = BeanUtil.listCopyTo(averageList, AverageStatisticsDTO.class);
|
|
|
- } else {
|
|
|
- if (averageList.size() > limitCount) {
|
|
|
- retAverageList = averageList.subList(0, limitCount - 1);
|
|
|
- List<AverageStatisticsDTO> otherList = averageList.subList(limitCount - 1, averageList.size());
|
|
|
- Double totleValue = otherList
|
|
|
- .stream()
|
|
|
- .map(i -> BigDecimal.valueOf(i.getTotleValue()))
|
|
|
- .reduce(BigDecimal.ZERO, BigDecimal::add).doubleValue();
|
|
|
- Integer num = otherList
|
|
|
- .stream()
|
|
|
- .map(AverageStatisticsDTO::getNum)
|
|
|
- .reduce(0, Integer::sum);
|
|
|
- Double averageValue = BigDecimal.valueOf(totleValue)
|
|
|
- .divide(BigDecimal.valueOf(num), 2, RoundingMode.HALF_UP)
|
|
|
- .doubleValue();
|
|
|
- AverageStatisticsDTO retAverageStatistics = new AverageStatisticsDTO();
|
|
|
- retAverageStatistics.setDeptName("其他");
|
|
|
- retAverageStatistics.setNum(num);
|
|
|
- retAverageStatistics.setAverageValue(averageValue);
|
|
|
- retAverageStatistics.setTotleValue(totleValue);
|
|
|
- retAverageList.add(retAverageStatistics);
|
|
|
- } else {
|
|
|
- retAverageList = averageList;
|
|
|
- }
|
|
|
+ public Map<String, Object> getAverageScore(FilterVO filterVO) {
|
|
|
+ Map<String, Object> retMap = new HashMap<>();
|
|
|
+ filterVOSet(filterVO);
|
|
|
+ List<AverageStatisticsDTO> averageScoreList = averageStatisticsAggregate.getAverageScore(filterVO);
|
|
|
+ if (ListUtil.isNotEmpty(averageScoreList)) {
|
|
|
+ retMap.put("各科室质控平均分", averageScoreList);
|
|
|
+ }
|
|
|
+ return retMap;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 各科室甲级病历占比
|
|
|
+ *
|
|
|
+ * @param filterVO
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public Map<String, Object> getLevelResultDept(FilterVO filterVO) {
|
|
|
+ Map<String, Object> retMap = new HashMap<>();
|
|
|
+ filterVOSet(filterVO);
|
|
|
+ List<QcResultPercentDTO> levelResults = mrStatisticsAggregate.getLevelResultDept(filterVO);
|
|
|
+ if (ListUtil.isNotEmpty(levelResults)) {
|
|
|
+ retMap.put("各科室甲级病历占比", levelResults);
|
|
|
+ }
|
|
|
+ return retMap;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 出院人数统计
|
|
|
+ *
|
|
|
+ * @param filterVO
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public Map<String, Object> leaveHosCount(FilterVO filterVO) {
|
|
|
+ Map<String, Object> retMap = new HashMap<>();
|
|
|
+ filterVOSet(filterVO);
|
|
|
+ Map<String, Object> leaveHosMap = mrStatisticsAggregate.leaveHosCount(filterVO);
|
|
|
+ if (leaveHosMap != null) {
|
|
|
+ retMap.put("出院人数统计", leaveHosMap);
|
|
|
+ }
|
|
|
+ return retMap;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 质控病历统计
|
|
|
+ *
|
|
|
+ * @param filterVO
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public Map<String, Object> mrCount(FilterVO filterVO) {
|
|
|
+ Map<String, Object> retMap = new HashMap<>();
|
|
|
+ filterVOSet(filterVO);
|
|
|
+ List<NumDTO> mrCountList = mrStatisticsAggregate.mrCount(filterVO);
|
|
|
+ if (ListUtil.isNotEmpty(mrCountList)) {
|
|
|
+ retMap.put("病历数统计", mrCountList);
|
|
|
+ }
|
|
|
+ return retMap;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 各模块缺陷占比排行
|
|
|
+ *
|
|
|
+ * @param filterVO
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public Map<String, Object> entryCountGroupByCase(FilterVO filterVO) {
|
|
|
+ Map<String, Object> retMap = new HashMap<>();
|
|
|
+ filterVOSet(filterVO);
|
|
|
+ List<NumDTO> caseList = resultStatisticsAggregate.entryCountGroupByCase(filterVO);
|
|
|
+ if (ListUtil.isNotEmpty(caseList)) {
|
|
|
+ retMap.put("各模块缺陷占比排行", caseList);
|
|
|
+ }
|
|
|
+ return retMap;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 条目缺陷占比
|
|
|
+ *
|
|
|
+ * @param filterVO
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public Map<String, Object> entryCountGroupByEntry(FilterVO filterVO) {
|
|
|
+ Map<String, Object> retMap = new HashMap<>();
|
|
|
+ filterVOSet(filterVO);
|
|
|
+ List<NumDTO> entryList = resultStatisticsAggregate.entryCountGroupByEntry(filterVO);
|
|
|
+ if (ListUtil.isNotEmpty(entryList)) {
|
|
|
+ retMap.put("条目缺陷占比", entryList);
|
|
|
+ }
|
|
|
+ return retMap;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 各科室缺陷占比
|
|
|
+ *
|
|
|
+ * @param filterVO
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public Map<String, Object> entryByDept(FilterVO filterVO) {
|
|
|
+ Map<String, Object> retMap = new HashMap<>();
|
|
|
+ filterVOSet(filterVO);
|
|
|
+ List<NumDTO> deptList = resultStatisticsAggregate.entryByDept(filterVO);
|
|
|
+ if (ListUtil.isNotEmpty(deptList)) {
|
|
|
+ retMap.put("各科室缺陷占比", deptList);
|
|
|
+ }
|
|
|
+ return retMap;
|
|
|
+ }
|
|
|
+
|
|
|
+ private void filterVOSet(FilterVO filterVO){
|
|
|
+ String hospitalId = SysUserUtils.getCurrentHospitalID();
|
|
|
+ String startDate = filterFacade.getStartDateStr(filterVO.getType(), null);
|
|
|
+ String endDate = filterFacade.getEndDateStr(filterVO.getType(), null);
|
|
|
+ filterVO.setStartDate(startDate);
|
|
|
+ filterVO.setEndDate(endDate);
|
|
|
+ filterVO.setHospitalId(hospitalId);
|
|
|
+ if (filterVO.getLimitCount() == null || filterVO.getLimitCount().equals(0)) {
|
|
|
+ filterVO.setLimitCount(10);
|
|
|
}
|
|
|
- return retAverageList;
|
|
|
}
|
|
|
+ //-----------------------单独接口结束-------------------------------
|
|
|
}
|