|
|
@ -504,10 +504,10 @@ public class AskDiagnosisResultServiceImpl implements AskDiagnosisResultService
|
|
|
|
* ( 用户命中病历配置问题数 / 病历问题总数 ) * (用户提问命中病历配置问题数 / 用户实际提问的数量 )
|
|
|
|
* ( 用户命中病历配置问题数 / 病历问题总数 ) * (用户提问命中病历配置问题数 / 用户实际提问的数量 )
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
private ChartNodeVO computeAncillaryChart(Process process) {
|
|
|
|
private ChartNodeVO computeAncillaryChart(Process process) {
|
|
|
|
Integer userHitCount = diagnosisAncillaryRecordService.lambdaQuery().isNotNull(DiagnosisAncillaryRecord::getAncillaryId)
|
|
|
|
Long userHitCount = diagnosisAncillaryRecordService.lambdaQuery().isNotNull(DiagnosisAncillaryRecord::getAncillaryId)
|
|
|
|
.eq(DiagnosisAncillaryRecord::getProcessId, process.getId()).count();
|
|
|
|
.eq(DiagnosisAncillaryRecord::getProcessId, process.getId()).count();
|
|
|
|
Integer userCount = diagnosisAncillaryRecordService.lambdaQuery().eq(DiagnosisAncillaryRecord::getProcessId, process.getId()).count();
|
|
|
|
Long userCount = diagnosisAncillaryRecordService.lambdaQuery().eq(DiagnosisAncillaryRecord::getProcessId, process.getId()).count();
|
|
|
|
Integer medicalCount = diseaseAncillaryService.lambdaQuery().eq(DiseaseAncillary::getDiseaseId, process.getDiseaseId()).count();
|
|
|
|
Long medicalCount = diseaseAncillaryService.lambdaQuery().eq(DiseaseAncillary::getDiseaseId, process.getDiseaseId()).count();
|
|
|
|
// 过程数据3:问诊vs问诊正确率
|
|
|
|
// 过程数据3:问诊vs问诊正确率
|
|
|
|
BigDecimal num3 = BigDecimal.ZERO;
|
|
|
|
BigDecimal num3 = BigDecimal.ZERO;
|
|
|
|
if (userCount > 0) {
|
|
|
|
if (userCount > 0) {
|
|
|
@ -522,9 +522,9 @@ public class AskDiagnosisResultServiceImpl implements AskDiagnosisResultService
|
|
|
|
ChartNodeVO chartNodeVO = new ChartNodeVO();
|
|
|
|
ChartNodeVO chartNodeVO = new ChartNodeVO();
|
|
|
|
chartNodeVO.setNodePer(num2.multiply(num3).multiply(BigDecimal.valueOf(100)));
|
|
|
|
chartNodeVO.setNodePer(num2.multiply(num3).multiply(BigDecimal.valueOf(100)));
|
|
|
|
chartNodeVO.setScoreLevel(chartNodeVO.computeScoreLevel());
|
|
|
|
chartNodeVO.setScoreLevel(chartNodeVO.computeScoreLevel());
|
|
|
|
chartNodeVO.setCorrect(userHitCount);
|
|
|
|
chartNodeVO.setCorrect(Math.toIntExact(userHitCount));
|
|
|
|
chartNodeVO.setUnCorrect(medicalCount - userHitCount);
|
|
|
|
chartNodeVO.setUnCorrect((int) (medicalCount - userHitCount));
|
|
|
|
chartNodeVO.setStandard(medicalCount);
|
|
|
|
chartNodeVO.setStandard(Math.toIntExact(medicalCount));
|
|
|
|
chartNodeVO.setTotal(NumberUtil.add(chartNodeVO.getUnCorrect(), chartNodeVO.getStandard(), chartNodeVO.getCorrect()).intValue());
|
|
|
|
chartNodeVO.setTotal(NumberUtil.add(chartNodeVO.getUnCorrect(), chartNodeVO.getStandard(), chartNodeVO.getCorrect()).intValue());
|
|
|
|
|
|
|
|
|
|
|
|
return chartNodeVO;
|
|
|
|
return chartNodeVO;
|
|
|
@ -536,12 +536,12 @@ public class AskDiagnosisResultServiceImpl implements AskDiagnosisResultService
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
private ChartNodeVO computePhysicalChart(Process process) {
|
|
|
|
private ChartNodeVO computePhysicalChart(Process process) {
|
|
|
|
// 查询用户命中病历配置问题数
|
|
|
|
// 查询用户命中病历配置问题数
|
|
|
|
Integer userHitCount = diagnosisPhysicalRecordService.lambdaQuery().isNotNull(DiagnosisPhysicalRecord::getPhysicalId)
|
|
|
|
Long userHitCount = diagnosisPhysicalRecordService.lambdaQuery().isNotNull(DiagnosisPhysicalRecord::getPhysicalId)
|
|
|
|
.eq(DiagnosisPhysicalRecord::getProcessId, process.getId()).count();
|
|
|
|
.eq(DiagnosisPhysicalRecord::getProcessId, process.getId()).count();
|
|
|
|
// 查询用户实际检查数量
|
|
|
|
// 查询用户实际检查数量
|
|
|
|
Integer userCount = diagnosisPhysicalRecordService.lambdaQuery().eq(DiagnosisPhysicalRecord::getProcessId, process.getId()).count();
|
|
|
|
Long userCount = diagnosisPhysicalRecordService.lambdaQuery().eq(DiagnosisPhysicalRecord::getProcessId, process.getId()).count();
|
|
|
|
// 查询病例配置的数量
|
|
|
|
// 查询病例配置的数量
|
|
|
|
Integer medicalCount = diseasePhysicalService.lambdaQuery().eq(DiseasePhysical::getDiseaseId, process.getDiseaseId()).count();
|
|
|
|
Long medicalCount = diseasePhysicalService.lambdaQuery().eq(DiseasePhysical::getDiseaseId, process.getDiseaseId()).count();
|
|
|
|
// 过程数据3:问诊vs问诊正确率
|
|
|
|
// 过程数据3:问诊vs问诊正确率
|
|
|
|
BigDecimal num3 = BigDecimal.ZERO;
|
|
|
|
BigDecimal num3 = BigDecimal.ZERO;
|
|
|
|
if (userCount > 0) {
|
|
|
|
if (userCount > 0) {
|
|
|
@ -555,9 +555,9 @@ public class AskDiagnosisResultServiceImpl implements AskDiagnosisResultService
|
|
|
|
ChartNodeVO chartNodeVO = new ChartNodeVO();
|
|
|
|
ChartNodeVO chartNodeVO = new ChartNodeVO();
|
|
|
|
chartNodeVO.setNodePer(num2.multiply(num3).multiply(BigDecimal.valueOf(100)));
|
|
|
|
chartNodeVO.setNodePer(num2.multiply(num3).multiply(BigDecimal.valueOf(100)));
|
|
|
|
chartNodeVO.setScoreLevel(chartNodeVO.computeScoreLevel());
|
|
|
|
chartNodeVO.setScoreLevel(chartNodeVO.computeScoreLevel());
|
|
|
|
chartNodeVO.setCorrect(userHitCount);
|
|
|
|
chartNodeVO.setCorrect(Math.toIntExact(userHitCount));
|
|
|
|
chartNodeVO.setUnCorrect(medicalCount - userHitCount);
|
|
|
|
chartNodeVO.setUnCorrect((int) (medicalCount - userHitCount));
|
|
|
|
chartNodeVO.setStandard(medicalCount);
|
|
|
|
chartNodeVO.setStandard(Math.toIntExact(medicalCount));
|
|
|
|
chartNodeVO.setTotal(NumberUtil.add(chartNodeVO.getUnCorrect(), chartNodeVO.getStandard(), chartNodeVO.getCorrect()).intValue());
|
|
|
|
chartNodeVO.setTotal(NumberUtil.add(chartNodeVO.getUnCorrect(), chartNodeVO.getStandard(), chartNodeVO.getCorrect()).intValue());
|
|
|
|
|
|
|
|
|
|
|
|
return chartNodeVO;
|
|
|
|
return chartNodeVO;
|
|
|
|