From 0e461a11a3d95726436d81bdb34087addbf6581b Mon Sep 17 00:00:00 2001 From: liu Date: Wed, 6 Mar 2024 11:28:27 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E4=BC=98=E5=8C=96=E8=AF=84=E5=88=86?= =?UTF-8?q?=E8=A7=84=E5=88=99=E5=92=8C=E5=9B=BE=E8=B0=B1=E5=B1=95=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/GraphNebulaServiceImpl.java | 2 -- .../com/supervision/pojo/vo/ChartNodeVO.java | 18 ++++++++++++++++++ .../impl/AskDiagnosisResultServiceImpl.java | 16 +++++++++------- 3 files changed, 27 insertions(+), 9 deletions(-) diff --git a/virtual-patient-graph/src/main/java/com/supervision/service/impl/GraphNebulaServiceImpl.java b/virtual-patient-graph/src/main/java/com/supervision/service/impl/GraphNebulaServiceImpl.java index 22a3d866..7b531626 100644 --- a/virtual-patient-graph/src/main/java/com/supervision/service/impl/GraphNebulaServiceImpl.java +++ b/virtual-patient-graph/src/main/java/com/supervision/service/impl/GraphNebulaServiceImpl.java @@ -165,7 +165,6 @@ public class GraphNebulaServiceImpl implements GraphNebulaService { // 创建体格检查节点(physicalId不为空,即为只查配置了检查结果的结果) List physicalRecordList = diagnosisPhysicalRecordService.lambdaQuery() - .isNotNull(DiagnosisPhysicalRecord::getPhysicalId) .eq(DiagnosisPhysicalRecord::getProcessId, processId).list(); Map physicalConfirmMap = new HashMap<>(); for (DiagnosisPhysicalRecord physicalRecord : physicalRecordList) { @@ -187,7 +186,6 @@ public class GraphNebulaServiceImpl implements GraphNebulaService { } // 创建辅助检查节点 List ancillaryRecordList = diagnosisAncillaryRecordService.lambdaQuery() - .isNotNull(DiagnosisAncillaryRecord::getAncillaryId) .eq(DiagnosisAncillaryRecord::getProcessId, processId).list(); Map ancillaryConfirmMap = new HashMap<>(); for (DiagnosisAncillaryRecord diagnosisAncillaryRecord : ancillaryRecordList) { diff --git a/virtual-patient-web/src/main/java/com/supervision/pojo/vo/ChartNodeVO.java b/virtual-patient-web/src/main/java/com/supervision/pojo/vo/ChartNodeVO.java index dc77eb26..f4304339 100644 --- a/virtual-patient-web/src/main/java/com/supervision/pojo/vo/ChartNodeVO.java +++ b/virtual-patient-web/src/main/java/com/supervision/pojo/vo/ChartNodeVO.java @@ -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 "不及格"; + } + } } diff --git a/virtual-patient-web/src/main/java/com/supervision/service/impl/AskDiagnosisResultServiceImpl.java b/virtual-patient-web/src/main/java/com/supervision/service/impl/AskDiagnosisResultServiceImpl.java index f67197a5..2b5b3e75 100644 --- a/virtual-patient-web/src/main/java/com/supervision/service/impl/AskDiagnosisResultServiceImpl.java +++ b/virtual-patient-web/src/main/java/com/supervision/service/impl/AskDiagnosisResultServiceImpl.java @@ -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()); From 1b6c3a28c3b41a124854724b92daf771b8ace89d Mon Sep 17 00:00:00 2001 From: liu Date: Wed, 6 Mar 2024 13:54:18 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E4=BC=98=E5=8C=96=E8=AF=84=E5=88=86?= =?UTF-8?q?=E8=A7=84=E5=88=99=E5=92=8C=E5=9B=BE=E8=B0=B1=E5=B1=95=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/supervision/pojo/vo/RadarChartResVO.java | 4 ++++ .../service/impl/AskDiagnosisResultServiceImpl.java | 7 +++++++ 2 files changed, 11 insertions(+) diff --git a/virtual-patient-web/src/main/java/com/supervision/pojo/vo/RadarChartResVO.java b/virtual-patient-web/src/main/java/com/supervision/pojo/vo/RadarChartResVO.java index 5911d657..daacae2b 100644 --- a/virtual-patient-web/src/main/java/com/supervision/pojo/vo/RadarChartResVO.java +++ b/virtual-patient-web/src/main/java/com/supervision/pojo/vo/RadarChartResVO.java @@ -1,5 +1,6 @@ package com.supervision.pojo.vo; +import com.supervision.model.ProcessEvaluation; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -23,4 +24,7 @@ public class RadarChartResVO { // 临床思维=前面几项和或平均值 @ApiModelProperty("临床思维") private ChartNodeVO clinicalThinking; + + @ApiModelProperty("考核评估") + private ProcessEvaluation processEvaluation; } diff --git a/virtual-patient-web/src/main/java/com/supervision/service/impl/AskDiagnosisResultServiceImpl.java b/virtual-patient-web/src/main/java/com/supervision/service/impl/AskDiagnosisResultServiceImpl.java index 2b5b3e75..40df6d1f 100644 --- a/virtual-patient-web/src/main/java/com/supervision/service/impl/AskDiagnosisResultServiceImpl.java +++ b/virtual-patient-web/src/main/java/com/supervision/service/impl/AskDiagnosisResultServiceImpl.java @@ -45,6 +45,8 @@ public class AskDiagnosisResultServiceImpl implements AskDiagnosisResultService private final ProcessService processService; + private final ProcessEvaluationService processEvaluationService; + private final DiseaseService diseaseService; private final TreatmentPlanRecordService treatmentPlanRecordService; @@ -330,6 +332,11 @@ public class AskDiagnosisResultServiceImpl implements AskDiagnosisResultService chartNodeVO.setUnCorrect(NumberUtil.add(askChart.getUnCorrect(), physicalChart.getUnCorrect(), ancillaryChart.getUnCorrect(), treatmentPlanChart.getUnCorrect()).intValue()); chartNodeVO.setStandard(NumberUtil.add(askChart.getStandard(), physicalChart.getStandard(), ancillaryChart.getStandard(), treatmentPlanChart.getStandard()).intValue()); radarChartResVO.setClinicalThinking(chartNodeVO); + + // 查询考核评估内容 + ProcessEvaluation processEvaluation = processEvaluationService.lambdaQuery().eq(ProcessEvaluation::getProcessId, processId).one(); + radarChartResVO.setProcessEvaluation(processEvaluation); + return radarChartResVO;