提交评估页面查询
parent
9178a036fb
commit
1ea23760b5
@ -0,0 +1,27 @@
|
||||
package com.supervision.manage.controller.processrecord;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
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;
|
||||
|
||||
@Api(tags = "问诊病案管理")
|
||||
@RestController
|
||||
@RequestMapping("processRecord")
|
||||
@RequiredArgsConstructor
|
||||
public class ProcessRecordController {
|
||||
|
||||
private final ProcessRecordService processRecordService;
|
||||
|
||||
|
||||
@ApiOperation("分页查询病案管理")
|
||||
@GetMapping("queryProcessRecordPage")
|
||||
public IPage<ProcessRecordVO> queryProcessRecordPage(String studentName, String medicalRecNo, String diseaseType, Integer pageNum, Integer pageSize) {
|
||||
return processRecordService.queryProcessRecordPage(studentName, medicalRecNo, diseaseType, pageNum, pageSize);
|
||||
}
|
||||
}
|
@ -0,0 +1,9 @@
|
||||
package com.supervision.manage.service;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.supervision.vo.result.ProcessRecordVO;
|
||||
|
||||
public interface ProcessRecordService {
|
||||
|
||||
IPage<ProcessRecordVO> queryProcessRecordPage(String studentName, String medicalRecNo, String diseaseType, Integer pageNum, Integer pageSize);
|
||||
}
|
@ -0,0 +1,66 @@
|
||||
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 com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.supervision.model.Disease;
|
||||
import com.supervision.service.DiseaseService;
|
||||
import com.supervision.vo.result.ProcessRecordVO;
|
||||
import com.supervision.manage.service.ProcessRecordService;
|
||||
import com.supervision.service.ProcessService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.function.Function;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class ProcessRecordServiceImpl implements ProcessRecordService {
|
||||
|
||||
|
||||
private final ProcessService processService;
|
||||
|
||||
private final DiseaseService diseaseService;
|
||||
|
||||
|
||||
@Override
|
||||
public IPage<ProcessRecordVO> queryProcessRecordPage(String studentName, String medicalRecNo, String diseaseType, Integer pageNum, Integer pageSize) {
|
||||
Set<String> diseaseList = new HashSet<>();
|
||||
// 首先这里根据疾病类型筛选出来符合条件的疾病
|
||||
if (StrUtil.isNotBlank(diseaseType)) {
|
||||
// 首先查询符合条件的疾病
|
||||
List<Disease> theDiseaseList = diseaseService.lambdaQuery().like(Disease::getDiseaseNameAlias, diseaseType).select(Disease::getId).list();
|
||||
if (CollUtil.isNotEmpty(theDiseaseList)) {
|
||||
Set<String> containsSet = theDiseaseList.stream().map(Disease::getId).collect(Collectors.toSet());
|
||||
List<String> diseases = diseaseService.queryAllDiseaseListByDiseaseId(new ArrayList<>(containsSet));
|
||||
diseaseList.addAll(diseases);
|
||||
}
|
||||
// 如果疾病查询条件不为空,却没有查询结果,这是就直接返回一个空的,不继续走下面逻辑
|
||||
if (CollUtil.isEmpty(diseaseList)) {
|
||||
return new Page<>();
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
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()));
|
||||
}
|
||||
record.setDiseaseType(CollUtil.join(diseaseName, ","));
|
||||
}
|
||||
}
|
||||
}
|
||||
return page;
|
||||
}
|
||||
}
|
@ -1,3 +1,3 @@
|
||||
spring:
|
||||
profiles:
|
||||
active: dev
|
||||
active: test
|
@ -0,0 +1,46 @@
|
||||
package com.supervision.vo.result;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.supervision.handler.StringListTypeHandler;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
@ApiModel
|
||||
public class ProcessRecordVO {
|
||||
|
||||
@ApiModelProperty("病历ID")
|
||||
private String medicalId;
|
||||
|
||||
@ApiModelProperty("问诊实例ID")
|
||||
private String processId;
|
||||
|
||||
@ApiModelProperty("问诊编号")
|
||||
private String processNo;
|
||||
|
||||
@ApiModelProperty("病历编号")
|
||||
private String medicalRecNo;
|
||||
|
||||
@ApiModelProperty("学生名称")
|
||||
private String studentName;
|
||||
|
||||
@ApiModelProperty("疾病名称")
|
||||
private String diseaseNameAlias;
|
||||
|
||||
@ApiModelProperty("疾病分类")
|
||||
private String diseaseType;
|
||||
|
||||
@ApiModelProperty("状态")
|
||||
private String status;
|
||||
|
||||
@ApiModelProperty("更新时间(问诊实例的时间)")
|
||||
private String updateTime;
|
||||
|
||||
@TableField(typeHandler = StringListTypeHandler.class)
|
||||
private List<String> containDiseaseIds;
|
||||
|
||||
|
||||
}
|
Loading…
Reference in New Issue