|
@ -178,10 +178,6 @@ public class DataQualityHomeService extends BaseJpaService {
|
|
|
double hospitalOutpatientNum = 0;//总门诊数
|
|
|
double hospitalExamNum = 0;//总体检数
|
|
|
double hospitalInpatientNum = 0;//总住院数
|
|
|
|
|
|
double totalOutpatientNum = 0;//总门诊数
|
|
|
double totalExamNum = 0;//总体检数
|
|
|
double totalInpatientNum = 0;//总住院数
|
|
|
double totalInTime = 0;//总及时数
|
|
|
double totalVisitNum = 0;//总完整数(平台总就诊数)
|
|
|
double totalCorrect = 0;//总准确数
|
|
@ -197,13 +193,10 @@ public class DataQualityHomeService extends BaseJpaService {
|
|
|
Map<String, Object> dataMap = new HashMap<>();
|
|
|
//2. 平台就诊完整数
|
|
|
getPatientCount("receive_date",start, end, null, dataMap);
|
|
|
totalOutpatientNum = Double.valueOf(dataMap.get("outpatientIntegrity").toString());//门诊完整数
|
|
|
totalInpatientNum = Double.valueOf(dataMap.get("hospitalIntegrity").toString());//住院完整数
|
|
|
totalExamNum = Double.valueOf(dataMap.get("peIntegrity").toString());//体检完整数
|
|
|
totalVisitNum = Double.valueOf(dataMap.get("visitIntegrity").toString());//就诊完整数
|
|
|
//3. 及时数
|
|
|
totalInTime = getInTimeNum("receive_date" ,start, end);
|
|
|
// 3. 去重准确数
|
|
|
// 3. 去重准确数【】
|
|
|
totalCorrect = getErrorDataSetData("receive_date",start, end, null);
|
|
|
//4. 数据集总量
|
|
|
int dataSetsMun = getDataSetsMap(start, end, null);
|
|
@ -232,6 +225,108 @@ public class DataQualityHomeService extends BaseJpaService {
|
|
|
}
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 质控分析 - 完整性统计
|
|
|
*
|
|
|
* @param start 就诊时间- 起始
|
|
|
* @param end 就诊时间- 截止
|
|
|
* 【目前取的是平台全部机构,若做多区域平台的话,需要添加区域参数】
|
|
|
*/
|
|
|
public Map<String, Object> getCompleteStatistics(String start, String end) throws Exception {
|
|
|
Map<String, Object> totalMap = new HashMap<>();
|
|
|
String dateStr = DateUtil.toString(new Date());
|
|
|
if (StringUtils.isBlank(start)) {
|
|
|
start = dateStr;
|
|
|
}
|
|
|
if (StringUtils.isBlank(end)) {
|
|
|
end = dateStr;
|
|
|
}
|
|
|
|
|
|
int totalHospitalNum = 0;//医院总就诊数
|
|
|
double totalVisitNum = 0;//总完整数(平台总就诊数)
|
|
|
|
|
|
//1. 获取医院档案量;
|
|
|
Envelop envelop = packQcReportService.dailyReport("create_date", start + "T00:00:00Z", end + "T23:59:59Z", null);
|
|
|
Map<String, Object> hospitalDataMap = (Map<String, Object>) envelop.getDetailModelList().get(0);
|
|
|
//医院总数据量
|
|
|
totalHospitalNum = (int) hospitalDataMap.get("total");
|
|
|
Map<String, Object> dataMap = new HashMap<>();
|
|
|
//2. 平台就诊完整数
|
|
|
getPatientCount("receive_date",start, end, null, dataMap);
|
|
|
totalVisitNum = Double.valueOf(dataMap.get("visitIntegrity").toString());
|
|
|
totalMap.put("totalComplete", totalVisitNum);//总就诊完整数
|
|
|
totalMap.put("totalHospital", totalHospitalNum);//医院总就诊数
|
|
|
//计算完整率,
|
|
|
totalMap.put("completeRate", calRate(totalVisitNum, totalHospitalNum));//完整率
|
|
|
return totalMap;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 质控分析 - 准确率统计
|
|
|
*
|
|
|
* @param start 就诊时间- 起始
|
|
|
* @param end 就诊时间- 截止
|
|
|
*/
|
|
|
public Map<String, Object> getCorrectStatistics(String start, String end) throws Exception {
|
|
|
Map<String, Object> totalMap = new HashMap<>();
|
|
|
String dateStr = DateUtil.toString(new Date());
|
|
|
if (StringUtils.isBlank(start)) {
|
|
|
start = dateStr;
|
|
|
}
|
|
|
if (StringUtils.isBlank(end)) {
|
|
|
end = dateStr;
|
|
|
}
|
|
|
|
|
|
double totalCorrect = 0;//总准确数
|
|
|
Map<String, Object> dataMap = new HashMap<>();
|
|
|
//1. 去重准确数
|
|
|
totalCorrect = getErrorDataSetData("receive_date",start, end, null);
|
|
|
//2. 数据集总量
|
|
|
int dataSetsMun = getDataSetsMap(start, end, null);
|
|
|
totalMap.put("totalCorrect", totalCorrect);//准确数
|
|
|
totalMap.put("totalDataSet", dataSetsMun);//数据集总行数
|
|
|
//3 计算准确性
|
|
|
totalMap.put("correctRate", calRate(totalCorrect, dataSetsMun));//数据集准确率
|
|
|
return totalMap;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 质控分析 - 及时率统计
|
|
|
*
|
|
|
* @param start 就诊时间- 起始
|
|
|
* @param end 就诊时间- 截止
|
|
|
*/
|
|
|
public Map<String, Object> getInTimeStatistics(String start, String end) throws Exception {
|
|
|
Map<String, Object> totalMap = new HashMap<>();
|
|
|
String dateStr = DateUtil.toString(new Date());
|
|
|
if (StringUtils.isBlank(start)) {
|
|
|
start = dateStr;
|
|
|
}
|
|
|
if (StringUtils.isBlank(end)) {
|
|
|
end = dateStr;
|
|
|
}
|
|
|
|
|
|
int totalHospitalNum = 0;//医院总就诊数
|
|
|
double totalInTime = 0;//总及时数
|
|
|
//1. 获取医院档案量;
|
|
|
Envelop envelop = packQcReportService.dailyReport("create_date", start + "T00:00:00Z", end + "T23:59:59Z", null);
|
|
|
Map<String, Object> hospitalDataMap = (Map<String, Object>) envelop.getDetailModelList().get(0);
|
|
|
//医院总数据量
|
|
|
totalHospitalNum = (int) hospitalDataMap.get("total");
|
|
|
Map<String, Object> dataMap = new HashMap<>();
|
|
|
//2. 及时数
|
|
|
totalInTime = getInTimeNum("receive_date" ,start, end);
|
|
|
totalMap.put("totalInTime", totalInTime);//及时数
|
|
|
totalMap.put("totalHospital", totalHospitalNum);//医院总就诊数
|
|
|
//3 计算及时率
|
|
|
totalMap.put("inTimeRate", calRate(totalInTime, totalHospitalNum));//及时率
|
|
|
return totalMap;
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 获取质控错误 - 数据集总条数
|
|
|
* @param dateField 时间区间查询字段
|