|
@@ -25,6 +25,7 @@ import com.diagbot.vo.EntryStatisticsVO;
|
|
|
import com.diagbot.vo.FilterOrderVO;
|
|
|
import com.diagbot.vo.FilterPageByAverageVO;
|
|
|
import com.diagbot.vo.FilterPageVO;
|
|
|
+import com.diagbot.vo.FilterQcCheckVO;
|
|
|
import com.diagbot.vo.FilterVO;
|
|
|
import com.diagbot.vo.QcResultShortPageVO;
|
|
|
import com.google.common.collect.Lists;
|
|
@@ -824,7 +825,7 @@ public class ConsoleFacade {
|
|
|
NumDTO improve = new NumDTO();
|
|
|
improve.setName("改善率");
|
|
|
improve.setNum(improveDTO.getImproveNum());
|
|
|
- improve.setTotleNum(improveDTO.getMrNum());
|
|
|
+ improve.setTotleNum(improveDTO.getHomePageMRNum());
|
|
|
improve.setPercent(improveDTO.getImprovePercent());
|
|
|
improve.setPercentStr(improveDTO.getImprovePercentStr());
|
|
|
|
|
@@ -846,4 +847,114 @@ public class ConsoleFacade {
|
|
|
IPage<QcResultShortDTO> page = behospitalInfoFacade.leaveHosMRPage(qcResultShortPageVO);
|
|
|
return page;
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 质控核查统计(内页)
|
|
|
+ *
|
|
|
+ * @param filterQcCheckVO
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public List<HomePageImproveDTO> qcCheckStatistics(FilterQcCheckVO filterQcCheckVO) {
|
|
|
+ filterFacade.filterQcCheckVOSet(filterQcCheckVO);
|
|
|
+ List<HomePageImproveDTO> records = behospitalInfoFacade.qcCheckStatistics(filterQcCheckVO);
|
|
|
+ //增加全院数据
|
|
|
+ if (StringUtil.isBlank(filterQcCheckVO.getDeptName()) || filterQcCheckVO.getDeptName().equals("全院")) {
|
|
|
+ HomePageImproveDTO item = getGlobleRecord_improve(records);
|
|
|
+ if (item != null) {
|
|
|
+ records.add(0, item);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return records;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 增加全院记录
|
|
|
+ *
|
|
|
+ * @param records
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public HomePageImproveDTO getGlobleRecord_improve(List<HomePageImproveDTO> records) {
|
|
|
+ DecimalFormat df = new DecimalFormat("#0.00");
|
|
|
+ HomePageImproveDTO item = new HomePageImproveDTO();
|
|
|
+
|
|
|
+ if (ListUtil.isEmpty(records)) {
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ //总病历数
|
|
|
+ Integer mrNum = records
|
|
|
+ .stream()
|
|
|
+ .map(HomePageImproveDTO::getMrNum)
|
|
|
+ .reduce(0, Integer::sum);
|
|
|
+ if (mrNum == null || mrNum == 0) {
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ //核查病历数
|
|
|
+ Integer checkedNum = records
|
|
|
+ .stream()
|
|
|
+ .map(HomePageImproveDTO::getCheckedNum)
|
|
|
+ .reduce(0, Integer::sum);
|
|
|
+ //核查病历占比
|
|
|
+ Double checkedPercent = BigDecimal.valueOf(checkedNum)
|
|
|
+ .divide(BigDecimal.valueOf(mrNum), 4, RoundingMode.HALF_UP)
|
|
|
+ .doubleValue();
|
|
|
+ String checkedPercentStr
|
|
|
+ = df.format(BigDecimal.valueOf(checkedPercent).multiply(BigDecimal.valueOf(100))) + "%";
|
|
|
+ //带病案首页的病历数
|
|
|
+ Integer homePageMRNum = records
|
|
|
+ .stream()
|
|
|
+ .map(HomePageImproveDTO::getHomePageMRNum)
|
|
|
+ .reduce(0, Integer::sum);
|
|
|
+ //改善病历数
|
|
|
+ Integer improveNum = records
|
|
|
+ .stream()
|
|
|
+ .map(HomePageImproveDTO::getImproveNum)
|
|
|
+ .reduce(0, Integer::sum);
|
|
|
+ //改善率
|
|
|
+ Double improvePercent = BigDecimal.valueOf(improveNum)
|
|
|
+ .divide(BigDecimal.valueOf(homePageMRNum), 4, RoundingMode.HALF_UP)
|
|
|
+ .doubleValue();
|
|
|
+ String improvePercentStr
|
|
|
+ = df.format(BigDecimal.valueOf(improvePercent).multiply(BigDecimal.valueOf(100))) + "%";
|
|
|
+ //改善至合格病历数
|
|
|
+ Integer improveToPassNum = records
|
|
|
+ .stream()
|
|
|
+ .map(HomePageImproveDTO::getImproveToPassNum)
|
|
|
+ .reduce(0, Integer::sum);
|
|
|
+ //改善至合格占比
|
|
|
+ Double improveToPassPercent = BigDecimal.valueOf(improveToPassNum)
|
|
|
+ .divide(BigDecimal.valueOf(homePageMRNum), 4, RoundingMode.HALF_UP)
|
|
|
+ .doubleValue();
|
|
|
+ String improveToPassPercentStr
|
|
|
+ = df.format(BigDecimal.valueOf(improvePercent).multiply(BigDecimal.valueOf(100))) + "%";
|
|
|
+ //改善至满分病历数
|
|
|
+ Integer improveToFullNum = records
|
|
|
+ .stream()
|
|
|
+ .map(HomePageImproveDTO::getImproveToFullNum)
|
|
|
+ .reduce(0, Integer::sum);
|
|
|
+ //改善至满分占比
|
|
|
+ Double improveToFullPercent = BigDecimal.valueOf(improveToFullNum)
|
|
|
+ .divide(BigDecimal.valueOf(homePageMRNum), 4, RoundingMode.HALF_UP)
|
|
|
+ .doubleValue();
|
|
|
+ String improveToFullPercentStr
|
|
|
+ = df.format(BigDecimal.valueOf(improveToFullPercent).multiply(BigDecimal.valueOf(100))) + "%";
|
|
|
+
|
|
|
+ item.setDeptName("全院");
|
|
|
+ item.setMrNum(mrNum);
|
|
|
+ item.setCheckedNum(checkedNum);
|
|
|
+ item.setCheckedPercent(checkedPercent);
|
|
|
+ item.setCheckedPercentStr(checkedPercentStr);
|
|
|
+ item.setHomePageMRNum(homePageMRNum);
|
|
|
+ item.setImproveNum(improveNum);
|
|
|
+ item.setImprovePercent(improvePercent);
|
|
|
+ item.setImprovePercentStr(improvePercentStr);
|
|
|
+ item.setImproveToPassNum(improveToPassNum);
|
|
|
+ item.setImproveToPassPercent(improveToPassPercent);
|
|
|
+ item.setImproveToPassPercentStr(improveToPassPercentStr);
|
|
|
+ item.setImproveToFullNum(improveToFullNum);
|
|
|
+ item.setImproveToFullPercent(improveToFullPercent);
|
|
|
+ item.setImproveToFullPercentStr(improveToFullPercentStr);
|
|
|
+ return item;
|
|
|
+ }
|
|
|
}
|