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; package com.supervision.manage.controller.processrecord;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.supervision.model.ProcessEvaluation;
import com.supervision.vo.result.ProcessRecordVO; import com.supervision.vo.result.ProcessRecordVO;
import com.supervision.manage.service.ProcessRecordService; import com.supervision.manage.service.ProcessRecordService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@Api(tags = "问诊病案管理") @Api(tags = "问诊病案管理")
@RestController @RestController
@ -24,4 +23,10 @@ public class ProcessRecordController {
public IPage<ProcessRecordVO> queryProcessRecordPage(String studentName, String medicalRecNo, String diseaseType, Integer pageNum, Integer pageSize) { public IPage<ProcessRecordVO> queryProcessRecordPage(String studentName, String medicalRecNo, String diseaseType, Integer pageNum, Integer pageSize) {
return processRecordService.queryProcessRecordPage(studentName, medicalRecNo, diseaseType, pageNum, 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; package com.supervision.manage.service;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.supervision.model.ProcessEvaluation;
import com.supervision.vo.result.ProcessRecordVO; import com.supervision.vo.result.ProcessRecordVO;
import org.springframework.web.bind.annotation.RequestBody;
public interface ProcessRecordService { public interface ProcessRecordService {
IPage<ProcessRecordVO> queryProcessRecordPage(String studentName, String medicalRecNo, String diseaseType, Integer pageNum, Integer pageSize); 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.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.supervision.exception.BusinessException;
import com.supervision.model.Disease; import com.supervision.model.Disease;
import com.supervision.model.ProcessEvaluation;
import com.supervision.service.DiseaseService; import com.supervision.service.DiseaseService;
import com.supervision.service.ProcessEvaluationService;
import com.supervision.vo.result.ProcessRecordVO; import com.supervision.vo.result.ProcessRecordVO;
import com.supervision.manage.service.ProcessRecordService; import com.supervision.manage.service.ProcessRecordService;
import com.supervision.service.ProcessService; import com.supervision.service.ProcessService;
@ -26,6 +30,8 @@ public class ProcessRecordServiceImpl implements ProcessRecordService {
private final DiseaseService diseaseService; private final DiseaseService diseaseService;
private final ProcessEvaluationService processEvaluationService;
@Override @Override
public IPage<ProcessRecordVO> queryProcessRecordPage(String studentName, String medicalRecNo, String diseaseType, Integer pageNum, Integer pageSize) { 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); IPage<ProcessRecordVO> page = processService.queryProcessRecordPage(studentName, medicalRecNo, diseaseList, pageNum, pageSize);
if (CollUtil.isNotEmpty(page.getRecords())) { if (CollUtil.isNotEmpty(page.getRecords())) {
HashSet<String> diseaseIdSet = new HashSet<>(); HashSet<String> diseaseIdSet = new HashSet<>();
page.getRecords().forEach(e -> diseaseIdSet.addAll(Optional.ofNullable(e.getContainDiseaseIds()).orElse(new ArrayList<>()))); page.getRecords().forEach(e -> {
if (CollUtil.isNotEmpty(diseaseIdSet)) { if (StrUtil.isNotEmpty(e.getContainDiseaseIdJsonStr())){
Map<String, Disease> diseaseMap = diseaseService.listByIds(diseaseIdSet).stream().collect(Collectors.toMap(Disease::getId, Function.identity())); diseaseIdSet.addAll(JSONUtil.toList(e.getContainDiseaseIdJsonStr(),String.class));
for (ProcessRecordVO record : page.getRecords()) { }else if (StrUtil.isNotBlank(e.getDiseaseId())){
List<String> diseaseName = new ArrayList<>(); diseaseIdSet.add(e.getDiseaseId());
for (String containDiseaseId : record.getContainDiseaseIds()) { }
Optional.ofNullable(diseaseMap.get(containDiseaseId)).ifPresent(disease -> diseaseName.add(disease.getDiseaseNameAlias())); });
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; 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 com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable; import java.io.Serializable;
import java.util.Date; import java.util.Date;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import org.checkerframework.checker.units.qual.A;
/** /**
* *
@ -14,6 +18,7 @@ import lombok.Data;
*/ */
@TableName(value ="vp_process_evaluation") @TableName(value ="vp_process_evaluation")
@Data @Data
@ApiModel
public class ProcessEvaluation implements Serializable { public class ProcessEvaluation implements Serializable {
/** /**
* *
@ -24,41 +29,49 @@ public class ProcessEvaluation implements Serializable {
/** /**
* id * id
*/ */
@ApiModelProperty("流程id")
private String processId; private String processId;
/** /**
* *
*/ */
@ApiModelProperty("评分概述")
private String overview; private String overview;
/** /**
* *
*/ */
@ApiModelProperty("预期诊断评估")
private String expectDiagnosis; private String expectDiagnosis;
/** /**
* *
*/ */
@ApiModelProperty("初步诊断评估")
private String primarilyDiagnosis; private String primarilyDiagnosis;
/** /**
* *
*/ */
@ApiModelProperty("证实诊断评估")
private String confirmDiagnosis; private String confirmDiagnosis;
/** /**
* *
*/ */
@ApiModelProperty("鉴别依据评估")
private String differentialDiagnosis; private String differentialDiagnosis;
/** /**
* *
*/ */
@ApiModelProperty("全面检查评估")
private String fullCheck; private String fullCheck;
/** /**
* *
*/ */
@ApiModelProperty("处置方案评估")
private String treatmentPlan; private String treatmentPlan;
/** /**

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

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

Loading…
Cancel
Save