|
@ -3085,37 +3085,37 @@ public class StatisticsESService {
|
|
|
String quotaDate = elasticsearchUtil.getQuotaTime();
|
|
|
//总数
|
|
|
if (StringUtils.isNotBlank(disease)) {
|
|
|
total = elasticsearchUtil.findOneDateQuotaLevel2NoSlaveKey1(quotaDate, area, level, index58, SaveModel.timeLevel_DDL, disease);
|
|
|
total = elasticsearchUtil.findOneDateQuotaLevel2NoSlaveKey2(quotaDate, area, level, index58, SaveModel.timeLevel_DDL, disease);
|
|
|
} else {
|
|
|
total = elasticsearchUtil.findOneDateQuotaLevel1NoSlaveKey1(quotaDate, area, level, index64, SaveModel.timeLevel_DDL);
|
|
|
}
|
|
|
//进行中
|
|
|
if (StringUtils.isNotBlank(disease)) {
|
|
|
processing = elasticsearchUtil.findOneDateQuotaLevel2(quotaDate, area, level, index58, SaveModel.timeLevel_DDL, disease, "1");
|
|
|
processing = elasticsearchUtil.findOneDateQuotaLevel2(quotaDate, area, level, index58, SaveModel.timeLevel_DDL, disease, "1").get(0);
|
|
|
} else {
|
|
|
processing = elasticsearchUtil.findOneDateQuotaLevel1(quotaDate, area, level, index64, SaveModel.timeLevel_DDL, "1");
|
|
|
}
|
|
|
//已完成
|
|
|
if (StringUtils.isNotBlank(disease)) {
|
|
|
finished = elasticsearchUtil.findOneDateQuotaLevel2(quotaDate, area, level, index58, SaveModel.timeLevel_DDL, disease, "2");
|
|
|
finished = elasticsearchUtil.findOneDateQuotaLevel2(quotaDate, area, level, index58, SaveModel.timeLevel_DDL, disease, "2").get(0);
|
|
|
} else {
|
|
|
finished = elasticsearchUtil.findOneDateQuotaLevel1(quotaDate, area, level, index64, SaveModel.timeLevel_DDL, "2");
|
|
|
}
|
|
|
//已经取消
|
|
|
if (StringUtils.isNotBlank(disease)) {
|
|
|
canceled = elasticsearchUtil.findOneDateQuotaLevel2(quotaDate, area, level, index58, SaveModel.timeLevel_DDL, disease, "3");
|
|
|
canceled = elasticsearchUtil.findOneDateQuotaLevel2(quotaDate, area, level, index58, SaveModel.timeLevel_DDL, disease, "3").get(0);
|
|
|
} else {
|
|
|
canceled = elasticsearchUtil.findOneDateQuotaLevel1(quotaDate, area, level, index64, SaveModel.timeLevel_DDL, "3");
|
|
|
}
|
|
|
//审核不通过
|
|
|
if (StringUtils.isNotBlank(disease)) {
|
|
|
unPass = elasticsearchUtil.findOneDateQuotaLevel2(quotaDate, area, level, index58, SaveModel.timeLevel_DDL, disease, "4");
|
|
|
unPass = elasticsearchUtil.findOneDateQuotaLevel2(quotaDate, area, level, index58, SaveModel.timeLevel_DDL, disease, "4").get(0);
|
|
|
} else {
|
|
|
unPass = elasticsearchUtil.findOneDateQuotaLevel1(quotaDate, area, level, index64, SaveModel.timeLevel_DDL, "4");
|
|
|
}
|
|
|
//其他原因取消
|
|
|
if (StringUtils.isNotBlank(disease)) {
|
|
|
other = elasticsearchUtil.findOneDateQuotaLevel2(quotaDate, area, level, index58, SaveModel.timeLevel_DDL, disease, "5");
|
|
|
other = elasticsearchUtil.findOneDateQuotaLevel2(quotaDate, area, level, index58, SaveModel.timeLevel_DDL, disease, "5").get(0);
|
|
|
} else {
|
|
|
other = elasticsearchUtil.findOneDateQuotaLevel1(quotaDate, area, level, index64, SaveModel.timeLevel_DDL, "5");
|
|
|
}
|
|
@ -3247,9 +3247,6 @@ public class StatisticsESService {
|
|
|
if (list.size() > 0) {
|
|
|
for (SaveModel one : list) {
|
|
|
map = new HashMap<>();
|
|
|
if (Integer.parseInt(lowlevel) >= Integer.parseInt(level)) {
|
|
|
lowlevel = String.valueOf(Integer.parseInt(level) + 1);
|
|
|
}
|
|
|
if (SaveModel.townLevel.equals(lowlevel)) {
|
|
|
map.put("code", one.getTown());
|
|
|
map.put("name", one.getTownName());
|
|
@ -3261,6 +3258,7 @@ public class StatisticsESService {
|
|
|
map.put("name", one.getTeamName());
|
|
|
}
|
|
|
map.put("val", one.getResult2().longValue());
|
|
|
rs.add(map);
|
|
|
}
|
|
|
} else {
|
|
|
//统计数据为空时,自建结果集
|
|
@ -3283,22 +3281,24 @@ public class StatisticsESService {
|
|
|
map.put("code", one.getCode());
|
|
|
map.put("name", one.getName());
|
|
|
map.put("val", 0);
|
|
|
rs.add(map);
|
|
|
}
|
|
|
} else if (SaveModel.OrgLevel.equals(lowlevel)) {
|
|
|
for (Hospital one : hospitalList) {
|
|
|
map.put("code", one.getCode());
|
|
|
map.put("name", one.getName());
|
|
|
map.put("val", 0);
|
|
|
rs.add(map);
|
|
|
}
|
|
|
} else if (SaveModel.teamLevel.equals(lowlevel)) {
|
|
|
for (AdminTeam one : adminTeams) {
|
|
|
map.put("code", one.getLeaderCode());
|
|
|
map.put("name", one.getName());
|
|
|
map.put("val", 0);
|
|
|
rs.add(map);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
rs.add(map);
|
|
|
Collections.sort(rs, new Comparator<Map<String, Object>>() {
|
|
|
public int compare(Map<String, Object> o1, Map<String, Object> o2) {
|
|
|
Integer map1value = Integer.valueOf(String.valueOf(o1.get("val")));
|
|
@ -3340,37 +3340,77 @@ public class StatisticsESService {
|
|
|
}
|
|
|
|
|
|
public Map<String, Object> getPrescriptionAgeHistogram(String level, String area, String disease) throws Exception {
|
|
|
String index63 = "63"; //统计长处方总数疾病和状态维度(去重相同患者)
|
|
|
String index68 = "68"; //统计长处方年龄人数(按照患者去重)
|
|
|
|
|
|
String index60 = "60"; //统计长处方总数年龄和疾病维度
|
|
|
String index65 = "65"; //统计长处方总数年龄维度
|
|
|
|
|
|
List<SaveModel> chufanglist =null;
|
|
|
List<SaveModel> numList =null;
|
|
|
Map<String,SaveModel> numListMap =new HashMap<>();
|
|
|
String quotaDate = elasticsearchUtil.getQuotaTime();
|
|
|
//统计年龄分布
|
|
|
List<SaveModel> list = elasticsearchUtil.findOneDateQuotaLevel2(quotaDate, area, Integer.parseInt(level), "60", "2", disease);
|
|
|
//获取总人数
|
|
|
String sql = " SELECT COUNT(1) AS num FROM ( SELECT DISTINCT p.patient FROM wlyy_prescription p ) a ";
|
|
|
Map<String, Object> count = jdbcTemplate.queryForMap(sql);
|
|
|
Long num = (Long) count.get("num");
|
|
|
//统计处方年龄分布
|
|
|
if(org.springframework.util.StringUtils.isEmpty(disease)){
|
|
|
numList = elasticsearchUtil.findOneDateQuotaLevel1(quotaDate, area, Integer.parseInt(level), index68, SaveModel.timeLevel_DDL);
|
|
|
}else{
|
|
|
numList = elasticsearchUtil.findOneDateQuotaLevel2(quotaDate, area, Integer.parseInt(level), index63, SaveModel.timeLevel_DDL,null,disease);
|
|
|
}
|
|
|
//统计处方患者年龄分布
|
|
|
if(org.springframework.util.StringUtils.isEmpty(disease)){
|
|
|
chufanglist = elasticsearchUtil.findOneDateQuotaLevel1(quotaDate, area, Integer.parseInt(level), index65, SaveModel.timeLevel_DDL);
|
|
|
}else{
|
|
|
chufanglist = elasticsearchUtil.findOneDateQuotaLevel2(quotaDate, area, Integer.parseInt(level), index60, SaveModel.timeLevel_DDL,null,disease);
|
|
|
}
|
|
|
for(int i=0;i<numList.size();i++){
|
|
|
SaveModel saveModel=numList.get(i);
|
|
|
numListMap.put(saveModel.getSlaveKey1(),saveModel);
|
|
|
}
|
|
|
Map<String, Object> map = new HashMap<>();
|
|
|
DecimalFormat decimalFormat = new DecimalFormat("0.00");//构造方法的字符格式这里如果小数不足2位,会以0补足.
|
|
|
if (num == 0) {
|
|
|
map.put("0ageRate", 0.0);
|
|
|
if (numList.size() == 0) {
|
|
|
map.put("7ageRate", 0.0);
|
|
|
map.put("19ageRate", 0.0);
|
|
|
map.put("31ageRate", 0.0);
|
|
|
map.put("51ageRate", 0.0);
|
|
|
map.put("65ageRate", 0.0);
|
|
|
} else {
|
|
|
|
|
|
Double ageRate = list.get(0).getResult2() / num;
|
|
|
map.put("0ageRate", decimalFormat.format(ageRate));
|
|
|
ageRate = list.get(1).getResult2() / num;
|
|
|
map.put("7ageRate", decimalFormat.format(ageRate));
|
|
|
ageRate = list.get(2).getResult2() / num;
|
|
|
map.put("19ageRate", decimalFormat.format(ageRate));
|
|
|
ageRate = list.get(3).getResult2() / num;
|
|
|
map.put("31ageRate", decimalFormat.format(ageRate));
|
|
|
ageRate = list.get(4).getResult2() / num;
|
|
|
map.put("51ageRate", decimalFormat.format(ageRate));
|
|
|
ageRate = list.get(5).getResult2() / num;
|
|
|
map.put("65ageRate", decimalFormat.format(ageRate));
|
|
|
DecimalFormat decimalFormat = new DecimalFormat("0.00");//构造方法的字符格式这里如果小数不足2位,会以0补足.
|
|
|
if(numListMap.get(chufanglist.get(0).getSlaveKey1()).getResult2()!=0.0D){
|
|
|
Double ageRate = chufanglist.get(0).getResult2() /numListMap.get(chufanglist.get(0).getSlaveKey1()).getResult2() ;
|
|
|
map.put("0ageRate", decimalFormat.format(ageRate));
|
|
|
}else{
|
|
|
map.put("0ageRate",chufanglist.get(0).getResult2() );
|
|
|
}
|
|
|
if(numListMap.get(chufanglist.get(1).getSlaveKey1()).getResult2()!=0.0D){
|
|
|
Double ageRate = chufanglist.get(1).getResult2() /numListMap.get(chufanglist.get(1).getSlaveKey1()).getResult2() ;
|
|
|
map.put("7ageRate", decimalFormat.format(ageRate));
|
|
|
}else{
|
|
|
map.put("7ageRate", chufanglist.get(1).getResult2() );
|
|
|
}
|
|
|
if(numListMap.get(chufanglist.get(2).getSlaveKey1()).getResult2()!=0.0D){
|
|
|
Double ageRate = chufanglist.get(2).getResult2() /numListMap.get(chufanglist.get(2).getSlaveKey1()).getResult2() ;
|
|
|
map.put("19ageRate", decimalFormat.format(ageRate));
|
|
|
}else{
|
|
|
map.put("19ageRate", chufanglist.get(2).getResult2() );
|
|
|
}
|
|
|
if(numListMap.get(chufanglist.get(3).getSlaveKey1()).getResult2()!=0.0D){
|
|
|
Double ageRate = chufanglist.get(3).getResult2() /numListMap.get(chufanglist.get(3).getSlaveKey1()).getResult2() ;
|
|
|
map.put("31ageRate", decimalFormat.format(ageRate));
|
|
|
}else{
|
|
|
map.put("31ageRate",chufanglist.get(3).getResult2() );
|
|
|
}
|
|
|
if(numListMap.get(chufanglist.get(4).getSlaveKey1()).getResult2()!=0.0D){
|
|
|
Double ageRate = chufanglist.get(4).getResult2() /numListMap.get(chufanglist.get(4).getSlaveKey1()).getResult2() ;
|
|
|
map.put("51ageRate", decimalFormat.format(ageRate));
|
|
|
}else{
|
|
|
map.put("51ageRate",chufanglist.get(4).getResult2() );
|
|
|
}
|
|
|
if(numListMap.get(chufanglist.get(5).getSlaveKey1()).getResult2()!=0.0D){
|
|
|
Double ageRate = chufanglist.get(5).getResult2() /numListMap.get(chufanglist.get(5).getSlaveKey1()).getResult2() ;
|
|
|
map.put("65ageRate", decimalFormat.format(ageRate));
|
|
|
}else{
|
|
|
map.put("65ageRate", chufanglist.get(5).getResult2() );
|
|
|
}
|
|
|
}
|
|
|
return map;
|
|
|
}
|
|
@ -3466,13 +3506,13 @@ public class StatisticsESService {
|
|
|
}
|
|
|
} else {
|
|
|
if ("1".equals(type)) {
|
|
|
saveModels = elasticsearchUtil.findListDateQuotaLevel2NoSlaveKey2(quotaDate, area, level, index58, "2", lowlevel, disease);
|
|
|
saveModels = elasticsearchUtil.findListDateQuotaLevel2NoSlaveKey2(quotaDate, area, level, index58, SaveModel.timeLevel_DDL, lowlevel, disease);
|
|
|
} else if ("2".equals(type) || "3".equals(type) || "4".equals(type)) {
|
|
|
saveModels = elasticsearchUtil.findListDateQuotaLevel2(quotaDate, area, level, index58, "2", lowlevel, disease, type);
|
|
|
saveModels = elasticsearchUtil.findListDateQuotaLevel2(quotaDate, area, level, index58, SaveModel.timeLevel_DDL, lowlevel, disease, type);
|
|
|
} else if ("5".equals(type)) {
|
|
|
saveModels = elasticsearchUtil.findListDateQuotaLevel2(quotaDate, area, level, index58, "2", lowlevel, disease, "1");
|
|
|
saveModels = elasticsearchUtil.findListDateQuotaLevel2(quotaDate, area, level, index58, SaveModel.timeLevel_DDL, lowlevel, disease, "1");
|
|
|
} else if ("6".equals(type)) {
|
|
|
saveModels = elasticsearchUtil.findListDateQuotaLevel2(quotaDate, area, level, index58, "2", lowlevel, disease, "5");
|
|
|
saveModels = elasticsearchUtil.findListDateQuotaLevel2(quotaDate, area, level, index58, SaveModel.timeLevel_DDL, lowlevel, disease, "5");
|
|
|
}
|
|
|
}
|
|
|
if ("5".equals(lowlevel)) {
|
|
@ -3632,11 +3672,11 @@ public class StatisticsESService {
|
|
|
//type二级指标,disease一级指标
|
|
|
if (StringUtils.isNotBlank(disease)) {
|
|
|
//自取
|
|
|
selt = elasticsearchUtil.findOneDateQuotaLevel2(quotaTime, area, level, index62, SaveModel.timeLevel_DDL, disease, "1");
|
|
|
selt = elasticsearchUtil.findOneDateQuotaLevel2(quotaTime, area, level, index62, SaveModel.timeLevel_DDL, "1", disease).get(0);
|
|
|
//物流配送
|
|
|
delivery = elasticsearchUtil.findOneDateQuotaLevel2(quotaTime, area, level, index62, SaveModel.timeLevel_DDL, disease, "2");
|
|
|
delivery = elasticsearchUtil.findOneDateQuotaLevel2(quotaTime, area, level, index62, SaveModel.timeLevel_DDL, "2", disease).get(0);
|
|
|
//健管师配送
|
|
|
healthDoctor = elasticsearchUtil.findOneDateQuotaLevel2(quotaTime, area, level, index62, SaveModel.timeLevel_DDL, disease, "3");
|
|
|
healthDoctor = elasticsearchUtil.findOneDateQuotaLevel2(quotaTime, area, level, index62, SaveModel.timeLevel_DDL, "3", disease).get(0);
|
|
|
} else {
|
|
|
//自取
|
|
|
selt = elasticsearchUtil.findOneDateQuotaLevel1(quotaTime, area, level, index67, SaveModel.timeLevel_DDL, "1");
|
|
@ -3702,7 +3742,7 @@ public class StatisticsESService {
|
|
|
|
|
|
List<SaveModel> resultList = new ArrayList<>();
|
|
|
if (StringUtils.isNotBlank(disease)) {
|
|
|
resultList = elasticsearchUtil.findLineChartDateQuotaLevel2(startTime, endTime, area, level, index62, SaveModel.timeLevel_ZL, SaveModel.interval_month, disease, type);
|
|
|
resultList = elasticsearchUtil.findLineChartDateQuotaLevel2(startTime, endTime, area, level, index62, SaveModel.timeLevel_ZL, SaveModel.interval_month, type,disease);
|
|
|
} else {
|
|
|
resultList = elasticsearchUtil.findLineChartDateQuotaLevel1(startTime, endTime, area, level, index67, SaveModel.timeLevel_ZL, SaveModel.interval_month, type);
|
|
|
}
|
|
@ -3755,7 +3795,7 @@ public class StatisticsESService {
|
|
|
List<Map<String, Object>> rs = new ArrayList<>();
|
|
|
if (StringUtils.isNotBlank(disease)) {
|
|
|
//类型 1.自取,2.快递配送,3.健管师配送
|
|
|
saveModels = elasticsearchUtil.findListDateQuotaLevel2(quotaDate, area, level, index62, SaveModel.timeLevel_DDL, lowlevel, disease, type);
|
|
|
saveModels = elasticsearchUtil.findListDateQuotaLevel2(quotaDate, area, level, index62, SaveModel.timeLevel_DDL, lowlevel, type,disease);
|
|
|
} else {
|
|
|
saveModels = elasticsearchUtil.findListDateQuotaLevel1(quotaDate, area, level, index67, SaveModel.timeLevel_DDL, lowlevel, type);
|
|
|
}
|
|
@ -3766,9 +3806,6 @@ public class StatisticsESService {
|
|
|
if (saveModels.size() > 0) {
|
|
|
for (SaveModel one : saveModels) {
|
|
|
map = new HashMap<>();
|
|
|
if (Integer.parseInt(lowlevel) >= level) {
|
|
|
lowlevel = String.valueOf(level + 1);
|
|
|
}
|
|
|
if (SaveModel.townLevel.equals(lowlevel)) {
|
|
|
map.put("code", one.getTown());
|
|
|
map.put("name", one.getTownName());
|