Merge remote-tracking branch 'origin/dev_2.1.0' into dev_2.1.0

dev_2.1.0
xueqingkun 1 year ago
commit f21f89942d

@ -1,14 +1,13 @@
package com.supervision.manage.controller.processrecord;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.supervision.model.ProcessEvaluation;
import com.supervision.vo.result.ProcessRecordVO;
import com.supervision.manage.service.ProcessRecordService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
@Api(tags = "问诊病案管理")
@RestController
@ -24,4 +23,10 @@ public class ProcessRecordController {
public IPage<ProcessRecordVO> queryProcessRecordPage(String studentName, String medicalRecNo, String diseaseType, Integer pageNum, Integer pageSize) {
return processRecordService.queryProcessRecordPage(studentName, medicalRecNo, diseaseType, pageNum, pageSize);
}
@ApiOperation("保存或更新考核病案评估")
@PostMapping("saveProcessEvaluation")
public ProcessEvaluation saveOrUpdateProcessEvaluation(@RequestBody ProcessEvaluation processEvaluation){
return processRecordService.saveOrUpdateProcessEvaluation(processEvaluation);
}
}

@ -1,9 +1,13 @@
package com.supervision.manage.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.supervision.model.ProcessEvaluation;
import com.supervision.vo.result.ProcessRecordVO;
import org.springframework.web.bind.annotation.RequestBody;
public interface ProcessRecordService {
IPage<ProcessRecordVO> queryProcessRecordPage(String studentName, String medicalRecNo, String diseaseType, Integer pageNum, Integer pageSize);
ProcessEvaluation saveOrUpdateProcessEvaluation(ProcessEvaluation processEvaluation);
}

@ -3,10 +3,14 @@ package com.supervision.manage.service.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.supervision.exception.BusinessException;
import com.supervision.model.Disease;
import com.supervision.model.ProcessEvaluation;
import com.supervision.service.DiseaseService;
import com.supervision.service.ProcessEvaluationService;
import com.supervision.vo.result.ProcessRecordVO;
import com.supervision.manage.service.ProcessRecordService;
import com.supervision.service.ProcessService;
@ -26,6 +30,8 @@ public class ProcessRecordServiceImpl implements ProcessRecordService {
private final DiseaseService diseaseService;
private final ProcessEvaluationService processEvaluationService;
@Override
public IPage<ProcessRecordVO> queryProcessRecordPage(String studentName, String medicalRecNo, String diseaseType, Integer pageNum, Integer pageSize) {
@ -49,18 +55,45 @@ public class ProcessRecordServiceImpl implements ProcessRecordService {
IPage<ProcessRecordVO> page = processService.queryProcessRecordPage(studentName, medicalRecNo, diseaseList, pageNum, pageSize);
if (CollUtil.isNotEmpty(page.getRecords())) {
HashSet<String> diseaseIdSet = new HashSet<>();
page.getRecords().forEach(e -> diseaseIdSet.addAll(Optional.ofNullable(e.getContainDiseaseIds()).orElse(new ArrayList<>())));
if (CollUtil.isNotEmpty(diseaseIdSet)) {
Map<String, Disease> diseaseMap = diseaseService.listByIds(diseaseIdSet).stream().collect(Collectors.toMap(Disease::getId, Function.identity()));
for (ProcessRecordVO record : page.getRecords()) {
List<String> diseaseName = new ArrayList<>();
for (String containDiseaseId : record.getContainDiseaseIds()) {
Optional.ofNullable(diseaseMap.get(containDiseaseId)).ifPresent(disease -> diseaseName.add(disease.getDiseaseNameAlias()));
page.getRecords().forEach(e -> {
if (StrUtil.isNotEmpty(e.getContainDiseaseIdJsonStr())){
diseaseIdSet.addAll(JSONUtil.toList(e.getContainDiseaseIdJsonStr(),String.class));
}else if (StrUtil.isNotBlank(e.getDiseaseId())){
diseaseIdSet.add(e.getDiseaseId());
}
});
if (CollUtil.isNotEmpty(diseaseIdSet)) {
Map<String, Disease> diseaseMap = diseaseService.listByIds(diseaseIdSet).stream().collect(Collectors.toMap(Disease::getId, Function.identity()));
for (ProcessRecordVO record : page.getRecords()) {
List<String> diseaseName = new ArrayList<>();
if (StrUtil.isNotEmpty(record.getContainDiseaseIdJsonStr())){
for (String containsDiseaseId : JSONUtil.toList(record.getContainDiseaseIdJsonStr(), String.class)) {
Optional.ofNullable(diseaseMap.get(containsDiseaseId)).ifPresent(disease -> diseaseName.add(disease.getDiseaseNameAlias()));
}
record.setDiseaseType(CollUtil.join(diseaseName, ","));
}else if (StrUtil.isNotBlank(record.getDiseaseId())){
Optional.ofNullable(diseaseMap.get(record.getDiseaseId())).ifPresent(disease -> diseaseName.add(disease.getDiseaseNameAlias()));
}
record.setDiseaseType(CollUtil.join(diseaseName, ","));
}
}
}
return page;
}
@Override
public ProcessEvaluation saveOrUpdateProcessEvaluation(ProcessEvaluation processEvaluation) {
// 如果processId不为空,校验是否已经存在
if (StrUtil.isNotBlank(processEvaluation.getProcessId())) {
processEvaluationService.lambdaQuery().eq(ProcessEvaluation::getProcessId, processEvaluation.getProcessId()).oneOpt().ifPresent(e -> {
// 如果ID不一致,则说明processId存在重复情况,这时报错
if (!StrUtil.equals(e.getId(), processEvaluation.getId())) {
throw new BusinessException("已存在相同的评估记录");
}
});
}
processEvaluationService.saveOrUpdate(processEvaluation);
return processEvaluation;
}
}

@ -6,7 +6,11 @@ import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.util.Date;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.checkerframework.checker.units.qual.A;
/**
*
@ -14,6 +18,7 @@ import lombok.Data;
*/
@TableName(value ="vp_process_evaluation")
@Data
@ApiModel
public class ProcessEvaluation implements Serializable {
/**
*
@ -24,41 +29,49 @@ public class ProcessEvaluation implements Serializable {
/**
* id
*/
@ApiModelProperty("流程id")
private String processId;
/**
*
*/
@ApiModelProperty("评分概述")
private String overview;
/**
*
*/
@ApiModelProperty("预期诊断评估")
private String expectDiagnosis;
/**
*
*/
@ApiModelProperty("初步诊断评估")
private String primarilyDiagnosis;
/**
*
*/
@ApiModelProperty("证实诊断评估")
private String confirmDiagnosis;
/**
*
*/
@ApiModelProperty("鉴别依据评估")
private String differentialDiagnosis;
/**
*
*/
@ApiModelProperty("全面检查评估")
private String fullCheck;
/**
*
*/
@ApiModelProperty("处置方案评估")
private String treatmentPlan;
/**

@ -30,17 +30,18 @@ public class ProcessRecordVO {
@ApiModelProperty("疾病名称")
private String diseaseNameAlias;
private String diseaseId;
@ApiModelProperty("疾病分类")
private String diseaseType;
@ApiModelProperty("状态")
@ApiModelProperty("状态 2:已评估 其他未评估")
private String status;
@ApiModelProperty("更新时间(问诊实例的时间)")
private String updateTime;
@TableField(typeHandler = StringListTypeHandler.class)
private List<String> containDiseaseIds;
private String containDiseaseIdJsonStr;
}

@ -62,7 +62,7 @@
t3.name as studentName,
t2.disease_id as diseaseId,
t1.status as status,
t4.contain_disease_ids as containDiseaseIds
cast(t4.contain_disease_ids as CHAR ) as containDiseaseIdJsonStr
from vp_process t1
left join vp_medical_rec t2 on t1.medical_rec_id = t2.id
left join vp_user t3 on t1.user_id = t3.id

Loading…
Cancel
Save