|
@ -62,8 +62,7 @@ public class StatisticsEsService {
|
|
|
private BaseEvaluateScoreService baseEvaluateScoreService;
|
|
|
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
|
|
|
@Value("${wechat.flag}")
|
|
|
private boolean flag;
|
|
|
|
|
|
/**
|
|
|
* 问诊量
|
|
|
* @param startDate
|
|
@ -726,14 +725,14 @@ public class StatisticsEsService {
|
|
|
* @param level2_type
|
|
|
* @return
|
|
|
* @throws Exception
|
|
|
*/
|
|
|
*//*
|
|
|
public JSONObject getPrescriptionLine(String startDate, String endDate, String area, int level, String index,int interval, String level2_type) throws Exception {
|
|
|
JSONObject object = new JSONObject();
|
|
|
//开方量增量曲线
|
|
|
JSONArray array = dateTotalStatistics2(startDate,endDate,area,level,index,null,SaveModel.timeLevel_ZL,null);
|
|
|
object.put("prescriptionLine",array);
|
|
|
return object;
|
|
|
}
|
|
|
}*/
|
|
|
|
|
|
|
|
|
/**
|
|
@ -753,65 +752,54 @@ public class StatisticsEsService {
|
|
|
|
|
|
JSONObject object = new JSONObject();
|
|
|
|
|
|
if (flag){
|
|
|
object.put("specialistCount",0);//专家咨询数
|
|
|
object.put("specialistRate","0%");
|
|
|
object.put("synergyCount",0);//专家咨询数
|
|
|
object.put("synergyRate","0%");
|
|
|
object.put("topicCount",0);//图文复诊数量
|
|
|
object.put("topicRate","0%");
|
|
|
object.put("videoCount",0);//视频复诊数量
|
|
|
object.put("videoRate","0%");
|
|
|
object.put("total",0);
|
|
|
}else {
|
|
|
//协同门诊
|
|
|
SaveModel saveModel1 = null;
|
|
|
saveModel1 = elasticsearchUtil.findOneDateQuotaLevel1(endDate, endDate, area, level, index, SaveModel.timeLevel_DDL, "12");
|
|
|
//图文复诊
|
|
|
SaveModel saveModel2 = null;
|
|
|
//saveModel2 = elasticsearchUtil.findOneDateQuotaLevel2(endDate, endDate, area, level, index, SaveModel.timeLevel_DDL, "1","1");
|
|
|
saveModel2 = elasticsearchUtil.findOneDateQuotaLevel1(endDate, endDate, area, level, index, SaveModel.timeLevel_DDL, "9");
|
|
|
//视频复诊
|
|
|
SaveModel saveModel3 = null;
|
|
|
|
|
|
//协同门诊
|
|
|
SaveModel saveModel1 = null;
|
|
|
saveModel1 = elasticsearchUtil.findOneDateQuotaLevel1(endDate, endDate, area, level, index, SaveModel.timeLevel_DDL, "12");
|
|
|
//图文复诊
|
|
|
SaveModel saveModel2 = null;
|
|
|
//saveModel2 = elasticsearchUtil.findOneDateQuotaLevel2(endDate, endDate, area, level, index, SaveModel.timeLevel_DDL, "1","1");
|
|
|
saveModel2 = elasticsearchUtil.findOneDateQuotaLevel1(endDate, endDate, area, level, index, SaveModel.timeLevel_DDL, "9");
|
|
|
//视频复诊
|
|
|
SaveModel saveModel3 = null;
|
|
|
/*
|
|
|
saveModel3 = elasticsearchUtil.findOneDateQuotaLevel2(endDate, endDate, area, level, index, SaveModel.timeLevel_DDL, "1","2");
|
|
|
saveModel3 = elasticsearchUtil.findOneDateQuotaLevel2(endDate, endDate, area, level, index, SaveModel.timeLevel_DDL, "1","2");
|
|
|
*/
|
|
|
saveModel3 = elasticsearchUtil.findOneDateQuotaLevel1(endDate, endDate, area, level, index, SaveModel.timeLevel_DDL, "16");
|
|
|
Double specialistCount =0.0;
|
|
|
//专科咨询
|
|
|
SaveModel saveModel4 = null;
|
|
|
saveModel4 = elasticsearchUtil.findOneDateQuotaLevel1(endDate, endDate, area, level, index, SaveModel.timeLevel_DDL, "1");
|
|
|
specialistCount = saveModel4.getResult1();//专家咨询数量
|
|
|
/*if(index.equalsIgnoreCase("5")){
|
|
|
//专家咨询数量
|
|
|
SaveModel saveModel = null;
|
|
|
if (StringUtils.isNotEmpty(level2_type)) {
|
|
|
saveModel = elasticsearchUtil.findOneDateQuotaLevel1(endDate, endDate, area, level, "4", SaveModel.timeLevel_DDL, level2_type);
|
|
|
} else {
|
|
|
saveModel = elasticsearchUtil.findOneDateQuotaLevel0(endDate, endDate, area, level, "4", SaveModel.timeLevel_DDL);
|
|
|
}
|
|
|
specialistCount = saveModel.getResult1();//专家咨询数量
|
|
|
saveModel3 = elasticsearchUtil.findOneDateQuotaLevel1(endDate, endDate, area, level, index, SaveModel.timeLevel_DDL, "16");
|
|
|
Double specialistCount =0.0;
|
|
|
//专科咨询
|
|
|
SaveModel saveModel4 = null;
|
|
|
saveModel4 = elasticsearchUtil.findOneDateQuotaLevel1(endDate, endDate, area, level, index, SaveModel.timeLevel_DDL, "1");
|
|
|
specialistCount = saveModel4.getResult1();//专家咨询数量
|
|
|
/*if(index.equalsIgnoreCase("5")){
|
|
|
//专家咨询数量
|
|
|
SaveModel saveModel = null;
|
|
|
if (StringUtils.isNotEmpty(level2_type)) {
|
|
|
saveModel = elasticsearchUtil.findOneDateQuotaLevel1(endDate, endDate, area, level, "4", SaveModel.timeLevel_DDL, level2_type);
|
|
|
} else {
|
|
|
saveModel = elasticsearchUtil.findOneDateQuotaLevel0(endDate, endDate, area, level, "4", SaveModel.timeLevel_DDL);
|
|
|
}
|
|
|
specialistCount = saveModel.getResult1();//专家咨询数量
|
|
|
|
|
|
}else if (index.equalsIgnoreCase("3")){
|
|
|
specialistCount = 0.0;
|
|
|
}*/
|
|
|
}else if (index.equalsIgnoreCase("3")){
|
|
|
specialistCount = 0.0;
|
|
|
}*/
|
|
|
|
|
|
Double synergyCount = saveModel1.getResult1();//协同门诊数量
|
|
|
Double topicCount = saveModel2.getResult1();//图文复诊数量
|
|
|
Double videoCount = saveModel3.getResult1();//视频复诊数量
|
|
|
Double total = specialistCount+synergyCount+topicCount+videoCount;//总量
|
|
|
Double synergyCount = saveModel1.getResult1();//协同门诊数量
|
|
|
Double topicCount = saveModel2.getResult1();//图文复诊数量
|
|
|
Double videoCount = saveModel3.getResult1();//视频复诊数量
|
|
|
Double total = specialistCount+synergyCount+topicCount+videoCount;//总量
|
|
|
|
|
|
|
|
|
object.put("specialistCount",specialistCount);//专家咨询数
|
|
|
object.put("specialistRate",getRange(specialistCount.intValue(),total.intValue(),0));
|
|
|
object.put("synergyCount",synergyCount);//专家咨询数
|
|
|
object.put("synergyRate",getRange(synergyCount.intValue(),total.intValue(),0));
|
|
|
object.put("topicCount",topicCount);//图文复诊数量
|
|
|
object.put("topicRate",getRange(topicCount.intValue(),total.intValue(),0));
|
|
|
object.put("videoCount",videoCount);//视频复诊数量
|
|
|
object.put("videoRate",getRange(videoCount.intValue(),total.intValue(),0));
|
|
|
object.put("total",total);
|
|
|
}
|
|
|
object.put("specialistCount",specialistCount);//专家咨询数
|
|
|
object.put("specialistRate",getRange(specialistCount.intValue(),total.intValue(),0));
|
|
|
object.put("synergyCount",synergyCount);//专家咨询数
|
|
|
object.put("synergyRate",getRange(synergyCount.intValue(),total.intValue(),0));
|
|
|
object.put("topicCount",topicCount);//图文复诊数量
|
|
|
object.put("topicRate",getRange(topicCount.intValue(),total.intValue(),0));
|
|
|
object.put("videoCount",videoCount);//视频复诊数量
|
|
|
object.put("videoRate",getRange(videoCount.intValue(),total.intValue(),0));
|
|
|
object.put("total",total);
|
|
|
|
|
|
return object;
|
|
|
}
|
|
@ -1391,7 +1379,9 @@ public class StatisticsEsService {
|
|
|
}else {
|
|
|
saveModels = elasticsearchUtil.findLineChartDateQuotaLevel1(startDate, endDate, area, level, index, timelevel, SaveModel.interval_day, lowCode);
|
|
|
}
|
|
|
} else {
|
|
|
}else if(StringUtils.isNoneBlank(lowCode2)){
|
|
|
saveModels = elasticsearchUtil.findLineChartDateQuotaLevel2(startDate, endDate, area, level, index, timelevel, SaveModel.interval_day, lowCode,lowCode2);
|
|
|
}else {
|
|
|
saveModels = elasticsearchUtil.findLineChartDateQuotaLevel0(startDate, endDate, area, level, index, timelevel, SaveModel.interval_day);
|
|
|
}
|
|
|
List<JSONObject> result = new ArrayList<>();
|
|
@ -1764,7 +1754,10 @@ public class StatisticsEsService {
|
|
|
saveModels = elasticsearchUtil.findLineChartDateQuotaLevel1(startDate, endDate, area, level, index, timelevel, SaveModel.interval_week, lowCode);
|
|
|
}
|
|
|
|
|
|
} else {
|
|
|
}else if(StringUtils.isNoneBlank(lowCode2)){
|
|
|
saveModels = elasticsearchUtil.findLineChartDateQuotaLevel2(startDate, endDate, area, level, index, timelevel, SaveModel.interval_week, lowCode,lowCode2);
|
|
|
}
|
|
|
else {
|
|
|
saveModels = elasticsearchUtil.findLineChartDateQuotaLevel0(startDate, endDate, area, level, index, timelevel, SaveModel.interval_week);
|
|
|
}
|
|
|
|
|
@ -1907,6 +1900,9 @@ public class StatisticsEsService {
|
|
|
}else {
|
|
|
saveModels = elasticsearchUtil.findLineChartDateQuotaLevel1(startDate, endDate, area, level, index, timelevel, SaveModel.interval_month, lowCode);
|
|
|
}
|
|
|
} else if(StringUtils.isNoneBlank(lowCode2)){
|
|
|
saveModels = elasticsearchUtil.findLineChartDateQuotaLevel2(startDate, endDate, area, level, index, timelevel, SaveModel.interval_month, lowCode,lowCode2);
|
|
|
|
|
|
} else {
|
|
|
saveModels = elasticsearchUtil.findLineChartDateQuotaLevel0(startDate, endDate, area, level, index, timelevel, SaveModel.interval_month);
|
|
|
}
|
|
@ -3457,8 +3453,146 @@ public class StatisticsEsService {
|
|
|
return object;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 按日期柱状图统计处方量
|
|
|
*
|
|
|
*
|
|
|
* @param startDate
|
|
|
* @param endDate
|
|
|
* @param area
|
|
|
* @param level 2科室
|
|
|
* @param index
|
|
|
* @param level2_type 4 医院
|
|
|
* @return
|
|
|
* @throws Exception
|
|
|
*/
|
|
|
public JSONObject getPrescriptionLine(String startDate, String endDate, String area, int level, String index,int interval, String level2_type) throws Exception {
|
|
|
logger.info("service index:"+index+" and level2_type:"+level2_type+" and level:"+level);
|
|
|
String[] indexes = index.split(",");
|
|
|
JSONArray resultArray = new JSONArray();
|
|
|
//问诊量
|
|
|
JSONObject object = new JSONObject();
|
|
|
if (interval==1){
|
|
|
//图文
|
|
|
JSONArray array = dateTotalStatistics2(startDate,endDate,area,level,indexes[1],null,SaveModel.timeLevel_ZL,"1");
|
|
|
object.put("data",array);
|
|
|
//视频
|
|
|
JSONArray array1 = dateTotalStatistics2(startDate,endDate,area,level,indexes[1],null,SaveModel.timeLevel_ZL,"2");
|
|
|
object.put("data",array1);
|
|
|
}else if (interval==2){
|
|
|
JSONArray array = weekTotalStatistics2(startDate,endDate,area,level,indexes[1],null,SaveModel.timeLevel_ZL,"1");
|
|
|
JSONArray array1 = weekTotalStatistics2(startDate,endDate,area,level,indexes[1],null,SaveModel.timeLevel_ZL,"2");
|
|
|
object.put("data",array);
|
|
|
object.put("data",array1);
|
|
|
|
|
|
}else if (interval==3){
|
|
|
JSONArray array = monthTotalStatistics2(startDate,endDate,area,level,index,null,SaveModel.timeLevel_ZL,"1");
|
|
|
JSONArray array1 = monthTotalStatistics2(startDate,endDate,area,level,index,null,SaveModel.timeLevel_ZL,"2");
|
|
|
object.put("data",array);
|
|
|
object.put("data",array1);
|
|
|
}
|
|
|
if (StringUtils.isNoneBlank(level2_type)){
|
|
|
|
|
|
//问诊量表格
|
|
|
List<SaveModel> outpatientList = elasticsearchUtil.findDateQuotaLevel1(startDate, endDate, area, level, indexes[0], SaveModel.timeLevel_ZL,"",String.valueOf(interval),level2_type);
|
|
|
//开具处方数量
|
|
|
List<SaveModel> precriptionList = elasticsearchUtil.findDateQuotaLevel1(startDate, endDate, area, level, indexes[1], SaveModel.timeLevel_ZL,"",String.valueOf(interval),level2_type);
|
|
|
|
|
|
/*for (int i=0;i<prescriptionSaveModels.size();i++){
|
|
|
JSONObject jsonObject = new JSONObject();
|
|
|
Double specialist = 0.0;
|
|
|
Double totalOutpatient = 0.0;
|
|
|
SaveModel saveModel = prescriptionSaveModels.get(i);
|
|
|
jsonObject.put("hospitalCode",saveModel.getHospital());
|
|
|
jsonObject.put("hospitalName",saveModel.getHospitalName());
|
|
|
jsonObject.put("deptNo",saveModel.getDept());
|
|
|
jsonObject.put("deptName",saveModel.getDeptName());
|
|
|
jsonObject.put("name",saveModel.getHospitalName());
|
|
|
jsonObject.put("specialist",saveModel.getResult1());
|
|
|
jsonObject.put("doctorName",saveModel.getDoctorName());
|
|
|
jsonObject.put("doctorcode",saveModel.getDoctor());
|
|
|
specialist = saveModel.getResult1();
|
|
|
jsonObject.put("specialist",specialist);
|
|
|
totalOutpatient = specialistSaveModels.get(i).getResult1();
|
|
|
String prescriptionRate = getRange(specialist.intValue(),totalOutpatient.intValue(),0);
|
|
|
jsonObject.put("prescriptionRate",prescriptionRate);
|
|
|
resultArray.add(jsonObject);
|
|
|
}*/
|
|
|
object.put("excelData",resultArray);
|
|
|
}
|
|
|
return object;
|
|
|
}
|
|
|
/**
|
|
|
* 按日期柱状图 取药方式统计处方量
|
|
|
*
|
|
|
*
|
|
|
* @param startDate
|
|
|
* @param endDate
|
|
|
* @param area
|
|
|
* @param level 2科室
|
|
|
* @param index
|
|
|
* @param level2_type 4 医院
|
|
|
* @return
|
|
|
* @throws Exception
|
|
|
*/
|
|
|
public JSONObject getPrescriptionLineByType(String startDate, String endDate, String area, int level, String index,int interval, String level2_type) throws Exception {
|
|
|
logger.info("service index:"+index+" and level2_type:"+level2_type+" and level:"+level);
|
|
|
String[] indexes = index.split(",");
|
|
|
JSONArray resultArray = new JSONArray();
|
|
|
//问诊量
|
|
|
JSONObject object = new JSONObject();
|
|
|
if (interval==1){
|
|
|
//图文
|
|
|
JSONArray array = dateTotalStatistics2(startDate,endDate,area,level,indexes[1],null,SaveModel.timeLevel_ZL,"1");
|
|
|
object.put("data",array);
|
|
|
//视频
|
|
|
JSONArray array1 = dateTotalStatistics2(startDate,endDate,area,level,indexes[1],null,SaveModel.timeLevel_ZL,"2");
|
|
|
object.put("data",array1);
|
|
|
}else if (interval==2){
|
|
|
JSONArray array = weekTotalStatistics2(startDate,endDate,area,level,indexes[1],null,SaveModel.timeLevel_ZL,"1");
|
|
|
JSONArray array1 = weekTotalStatistics2(startDate,endDate,area,level,indexes[1],null,SaveModel.timeLevel_ZL,"2");
|
|
|
object.put("data",array);
|
|
|
object.put("data",array1);
|
|
|
|
|
|
}else if (interval==3){
|
|
|
JSONArray array = monthTotalStatistics2(startDate,endDate,area,level,index,null,SaveModel.timeLevel_ZL,"1");
|
|
|
JSONArray array1 = monthTotalStatistics2(startDate,endDate,area,level,index,null,SaveModel.timeLevel_ZL,"2");
|
|
|
object.put("data",array);
|
|
|
object.put("data",array1);
|
|
|
}
|
|
|
if (StringUtils.isNoneBlank(level2_type)){
|
|
|
|
|
|
//问诊量表格
|
|
|
List<SaveModel> specialistSaveModels = elasticsearchUtil.findDateQuotaLevel1(startDate, endDate, area, level, indexes[0], SaveModel.timeLevel_ZL,"",String.valueOf(interval),level2_type);
|
|
|
//开具处方数量中自取的处方
|
|
|
List<SaveModel> oneselfTake = elasticsearchUtil.findDateQuotaLevel1(startDate, endDate, area, level, indexes[1], SaveModel.timeLevel_ZL,"1",String.valueOf(interval),level2_type);
|
|
|
//开具处方数量中快递的处方
|
|
|
List<SaveModel> mailPost = elasticsearchUtil.findDateQuotaLevel1(startDate, endDate, area, level, indexes[1], SaveModel.timeLevel_ZL,"0",String.valueOf(interval),level2_type);
|
|
|
for(SaveModel saveModel:oneselfTake)
|
|
|
{
|
|
|
|
|
|
}
|
|
|
/*for (int i=0;i<prescriptionSaveModels.size();i++){
|
|
|
JSONObject jsonObject = new JSONObject();
|
|
|
Double specialist = 0.0;
|
|
|
Double totalOutpatient = 0.0;
|
|
|
SaveModel saveModel = prescriptionSaveModels.get(i);
|
|
|
jsonObject.put("hospitalCode",saveModel.getHospital());
|
|
|
jsonObject.put("hospitalName",saveModel.getHospitalName());
|
|
|
jsonObject.put("deptNo",saveModel.getDept());
|
|
|
jsonObject.put("deptName",saveModel.getDeptName());
|
|
|
jsonObject.put("name",saveModel.getHospitalName());
|
|
|
jsonObject.put("specialist",saveModel.getResult1());
|
|
|
specialist = saveModel.getResult1();
|
|
|
totalOutpatient = specialistSaveModels.get(i).getResult1();
|
|
|
String prescriptionRate = getRange(specialist.intValue(),totalOutpatient.intValue(),0);
|
|
|
jsonObject.put("prescriptionRate",prescriptionRate);
|
|
|
resultArray.add(jsonObject);
|
|
|
}*/
|
|
|
object.put("excelData",resultArray);
|
|
|
}
|
|
|
return object;
|
|
|
}
|
|
|
|
|
|
|
|
|
}
|