优化诊毕接口

dev_2.0.0
liu 1 year ago
parent 64c442d939
commit 21d411b26c

@ -12,6 +12,7 @@ import com.supervision.service.AskPrimaryService;
import com.supervision.vo.ask.DiagnosisPrimaryVO;
import com.supervision.vo.ask.ModifyPrimaryDiseaseInfoReqVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.RequiredArgsConstructor;
@ -59,11 +60,7 @@ public class AskPrimaryController {
}
@ApiOperation("诊毕时,保存初步诊断以及鉴别依据")
@PostMapping("confirmPrimaryByAskEnd")
public void confirmPrimaryByAskEnd(@RequestBody List<PrimaryConfirmReqVO> reqVOList) {
askPrimaryService.confirmPrimaryByAskEnd(reqVOList);
}
@ApiOperation("删除初步诊断")
@GetMapping("deletePrimary")
@ -71,9 +68,16 @@ public class AskPrimaryController {
askPrimaryService.deletePrimary(id);
}
@ApiOperation("查询初步诊断需要填写的诊断依据")
@ApiOperation("诊毕时,查询初步诊断关联的诊断项")
@GetMapping("queryDiagnosticBasisListForPrimary")
public List<DiagnosticBasisForPrimaryResVO> queryDiagnosticBasisListForPrimary(@NotBlank(message = "流程ID不能为空") String processId) {
return askPrimaryService.queryDiagnosticBasisListForPrimary(processId);
public List<DiagnosticBasisForPrimaryResVO> queryDiagnosticBasisListForPrimary(@ApiParam(value = "流程ID",required = true) @NotBlank(message = "流程ID不能为空") String processId,
@ApiParam(value = "初步诊断ID,不填查所有",required = false) String primaryId) {
return askPrimaryService.queryDiagnosticBasisListForPrimary(processId,primaryId);
}
@ApiOperation("诊毕时,保存初步诊断以及鉴别依据")
@PostMapping("confirmPrimaryByAskEnd")
public void confirmPrimaryByAskEnd(@RequestBody List<PrimaryConfirmReqVO> reqVOList) {
askPrimaryService.confirmPrimaryByAskEnd(reqVOList);
}
}

@ -8,10 +8,8 @@ import java.util.List;
@Data
public class PrimaryConfirmReqVO {
/**
*
*/
private String id;
@ApiModelProperty("初步诊断ID")
private String primaryId;
private String processId;

@ -29,6 +29,6 @@ public interface AskPrimaryService {
void deletePrimary(String id);
List<DiagnosticBasisForPrimaryResVO> queryDiagnosticBasisListForPrimary(String processId);
List<DiagnosticBasisForPrimaryResVO> queryDiagnosticBasisListForPrimary(String processId,String primaryId);
}

@ -158,7 +158,7 @@ public class AskPrimaryServiceImpl implements AskPrimaryService {
for (PrimaryConfirmReqVO reqVO : reqVOList) {
// 修改初步诊断是否被排除
diagnosisPrimaryService.lambdaUpdate().set(DiagnosisPrimary::getExcludeFlag, reqVO.getExcludeFlag())
.eq(DiagnosisPrimary::getId, reqVO.getId()).update();
.eq(DiagnosisPrimary::getId, reqVO.getPrimaryId()).update();
// 保存证实诊断依据
saveDiagnosticBasis(reqVO.getDiagnosticBasisList());
}
@ -211,7 +211,7 @@ public class AskPrimaryServiceImpl implements AskPrimaryService {
* @return
*/
@Override
public List<DiagnosticBasisForPrimaryResVO> queryDiagnosticBasisListForPrimary(String processId) {
public List<DiagnosticBasisForPrimaryResVO> queryDiagnosticBasisListForPrimary(String processId,String primaryId) {
List<DiagnosticBasisForPrimaryResVO> resList = diagnosisPrimaryService.queryDiagnosticBasisListForPrimary(processId);
if (CollUtil.isEmpty(resList)) {
return resList;
@ -221,22 +221,39 @@ public class AskPrimaryServiceImpl implements AskPrimaryService {
Map<String, String> diseaseNameMap = diagnosisPrimaryVOS.stream().collect(Collectors.toMap(DiagnosisPrimaryVO::getId, DiagnosisPrimaryVO::getPrimaryDiseaseName));
// 首先根据诊断记录,找到对应的关联关系
Set<String> relationIdSet = resList.stream().map(DiagnosticBasisForPrimaryResVO::getId).collect(Collectors.toSet());
List<DiagnosisPrimaryRelation> relationList = diagnosisPrimaryRelationService.lambdaQuery().in(DiagnosisPrimaryRelation::getRelationId, relationIdSet).list();
// 查询诊疗记录对应的初步诊断关系
List<DiagnosisPrimaryRelation> relationList = diagnosisPrimaryRelationService.lambdaQuery()
.in(DiagnosisPrimaryRelation::getRelationId, relationIdSet)
.list();
// 根据relationId进行分组
Map<String, List<DiagnosisPrimaryRelation>> relationMap = relationList.stream().collect(Collectors.groupingBy(DiagnosisPrimaryRelation::getRelationId));
List<DiagnosticBasisForPrimaryResVO> result = new ArrayList<>();
for (DiagnosticBasisForPrimaryResVO node : resList) {
List<DiagnosisPrimaryRelation> relationPrimaryList = relationMap.get(node.getId());
Set<String> primarySet = relationPrimaryList.stream().map(DiagnosisPrimaryRelation::getPrimaryId).collect(Collectors.toSet());
if (CollUtil.isNotEmpty(primarySet)) {
// 如果初步诊断ID的参数不为空,那么说明只查某一个初步诊断的数据
if (StrUtil.isNotBlank(primaryId)){
if (primarySet.contains(primaryId)){
// 如果有,就只保留这一个初步诊断依据的
primarySet.removeIf(e -> !e.equals(primaryId));
}else {
// 如果没有,就直接跳过
continue;
}
}
List<String> diseaseNameList = new ArrayList<>();
primarySet.forEach(e -> diseaseNameList.add(diseaseNameMap.get(e)));
node.setPrimaryIdList(new ArrayList<>(primarySet));
node.setPrimaryName(StrUtil.join(";", diseaseNameList));
result.add(node);
}
}
return resList;
return result;
}

Loading…
Cancel
Save