优化评分规则和图谱展示

dev_2.1.0
liu 1 year ago
parent f0828353a6
commit 0e461a11a3

@ -165,7 +165,6 @@ public class GraphNebulaServiceImpl implements GraphNebulaService {
// 创建体格检查节点(physicalId不为空,即为只查配置了检查结果的结果)
List<DiagnosisPhysicalRecord> physicalRecordList = diagnosisPhysicalRecordService.lambdaQuery()
.isNotNull(DiagnosisPhysicalRecord::getPhysicalId)
.eq(DiagnosisPhysicalRecord::getProcessId, processId).list();
Map<String, PhysicalVertex> physicalConfirmMap = new HashMap<>();
for (DiagnosisPhysicalRecord physicalRecord : physicalRecordList) {
@ -187,7 +186,6 @@ public class GraphNebulaServiceImpl implements GraphNebulaService {
}
// 创建辅助检查节点
List<DiagnosisAncillaryRecord> ancillaryRecordList = diagnosisAncillaryRecordService.lambdaQuery()
.isNotNull(DiagnosisAncillaryRecord::getAncillaryId)
.eq(DiagnosisAncillaryRecord::getProcessId, processId).list();
Map<String, AncillaryVertex> ancillaryConfirmMap = new HashMap<>();
for (DiagnosisAncillaryRecord diagnosisAncillaryRecord : ancillaryRecordList) {

@ -1,5 +1,6 @@
package com.supervision.pojo.vo;
import cn.hutool.core.util.NumberUtil;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@ -16,6 +17,9 @@ public class ChartNodeVO {
@ApiModelProperty("属性占比")
private BigDecimal nodePer;
@ApiModelProperty("评分级别( (0-60) 不合格 [60,75)合格 [75,85)良好 [85,100]优秀,")
private String scoreLevel;
/**
* =
*/
@ -39,4 +43,18 @@ public class ChartNodeVO {
*/
@ApiModelProperty("标准,病例库中配置的数量")
private Integer standard;
public String computeScoreLevel() {
if (NumberUtil.isIn(this.getNodePer(), BigDecimal.valueOf(85), BigDecimal.valueOf(100))) {
return "优秀";
}
if (NumberUtil.isIn(this.getNodePer(), BigDecimal.valueOf(75), BigDecimal.valueOf(85))) {
return "良好";
}
if (NumberUtil.isIn(this.getNodePer(), BigDecimal.valueOf(60), BigDecimal.valueOf(75))) {
return "合格";
} else {
return "不及格";
}
}
}

@ -324,6 +324,7 @@ public class AskDiagnosisResultServiceImpl implements AskDiagnosisResultService
BigDecimal clinicalThinking = NumberUtil.add(askChart.getNodePer(), physicalChart.getNodePer(), ancillaryChart.getNodePer(), treatmentPlanChart.getNodePer()).divide(BigDecimal.valueOf(4), 1, RoundingMode.HALF_UP);
ChartNodeVO chartNodeVO = new ChartNodeVO();
chartNodeVO.setNodePer(clinicalThinking);
chartNodeVO.setScoreLevel(chartNodeVO.computeScoreLevel());
chartNodeVO.setTotal(NumberUtil.add(askChart.getTotal(), physicalChart.getTotal(), ancillaryChart.getTotal(), treatmentPlanChart.getTotal()).intValue());
chartNodeVO.setCorrect(NumberUtil.add(askChart.getCorrect(), physicalChart.getCorrect(), ancillaryChart.getCorrect(), treatmentPlanChart.getCorrect()).intValue());
chartNodeVO.setUnCorrect(NumberUtil.add(askChart.getUnCorrect(), physicalChart.getUnCorrect(), ancillaryChart.getUnCorrect(), treatmentPlanChart.getUnCorrect()).intValue());
@ -371,8 +372,8 @@ public class AskDiagnosisResultServiceImpl implements AskDiagnosisResultService
num2 = BigDecimal.valueOf(hitPlanCount).divide(BigDecimal.valueOf(medicalCount), 2, RoundingMode.HALF_UP);
}
ChartNodeVO chartNodeVO = new ChartNodeVO();
chartNodeVO.setNodePer(num2.multiply(num3));
chartNodeVO.setNodePer(num2.multiply(num3).multiply(BigDecimal.valueOf(100)));
chartNodeVO.setScoreLevel(chartNodeVO.computeScoreLevel());
chartNodeVO.setCorrect(hitPlanCount);
chartNodeVO.setUnCorrect(medicalCount - hitPlanCount);
chartNodeVO.setStandard(medicalCount);
@ -403,8 +404,8 @@ public class AskDiagnosisResultServiceImpl implements AskDiagnosisResultService
}
ChartNodeVO chartNodeVO = new ChartNodeVO();
chartNodeVO.setNodePer(num2.multiply(num3));
chartNodeVO.setNodePer(num2.multiply(num3).multiply(BigDecimal.valueOf(100)));
chartNodeVO.setScoreLevel(chartNodeVO.computeScoreLevel());
chartNodeVO.setCorrect(userHitCount);
chartNodeVO.setUnCorrect(medicalCount - userHitCount);
chartNodeVO.setStandard(medicalCount);
@ -436,8 +437,8 @@ public class AskDiagnosisResultServiceImpl implements AskDiagnosisResultService
num2 = BigDecimal.valueOf(userHitCount).divide(BigDecimal.valueOf(medicalCount), 2, RoundingMode.HALF_UP);
}
ChartNodeVO chartNodeVO = new ChartNodeVO();
chartNodeVO.setNodePer(num2.multiply(num3));
chartNodeVO.setNodePer(num2.multiply(num3).multiply(BigDecimal.valueOf(100)));
chartNodeVO.setScoreLevel(chartNodeVO.computeScoreLevel());
chartNodeVO.setCorrect(userHitCount);
chartNodeVO.setUnCorrect(medicalCount - userHitCount);
chartNodeVO.setStandard(medicalCount);
@ -483,7 +484,8 @@ public class AskDiagnosisResultServiceImpl implements AskDiagnosisResultService
num2 = BigDecimal.valueOf(userHitQuestionCount).divide(BigDecimal.valueOf(medicalQuestionCount), 2, RoundingMode.HALF_UP);
}
ChartNodeVO chartNodeVO = new ChartNodeVO();
chartNodeVO.setNodePer(num2.multiply(num3));
chartNodeVO.setNodePer(num2.multiply(num3).multiply(BigDecimal.valueOf(100)));
chartNodeVO.setScoreLevel(chartNodeVO.computeScoreLevel());
chartNodeVO.setCorrect(userHitQuestionCount);
chartNodeVO.setStandard(Integer.parseInt(String.valueOf(medicalQuestionCount)));
chartNodeVO.setUnCorrect(NumberUtil.sub(chartNodeVO.getStandard(), chartNodeVO.getCorrect()).intValue());

Loading…
Cancel
Save