优化诊毕接口

dev_2.0.0
liu 2 years ago
parent 8757f60599
commit fa432a1d48

@ -59,9 +59,6 @@ public class AskPrimaryController {
return askPrimaryService.queryRecordForPrimaryChoose(processId); return askPrimaryService.queryRecordForPrimaryChoose(processId);
} }
@ApiOperation("删除初步诊断") @ApiOperation("删除初步诊断")
@GetMapping("deletePrimary") @GetMapping("deletePrimary")
public void deletePrimary(String id) { public void deletePrimary(String id) {

@ -39,11 +39,11 @@ public class AskPrimaryServiceImpl implements AskPrimaryService {
public List<DiagnosisPrimaryVO> queryAskPrimaryList(String processId) { public List<DiagnosisPrimaryVO> queryAskPrimaryList(String processId) {
List<DiagnosisPrimaryVO> resVoList = diagnosisPrimaryService.queryAskPrimaryList(processId); List<DiagnosisPrimaryVO> resVoList = diagnosisPrimaryService.queryAskPrimaryList(processId);
List<DiagnosisPrimaryRelation> list = diagnosisPrimaryRelationService.lambdaQuery().eq(DiagnosisPrimaryRelation::getProcessId, processId).list(); List<DiagnosisPrimaryRelation> list = diagnosisPrimaryRelationService.lambdaQuery().eq(DiagnosisPrimaryRelation::getProcessId, processId).list();
if (CollUtil.isNotEmpty(list)){ if (CollUtil.isNotEmpty(list)) {
Map<String, List<DiagnosisPrimaryRelation>> relationMap = list.stream().collect(Collectors.groupingBy(DiagnosisPrimaryRelation::getPrimaryId)); Map<String, List<DiagnosisPrimaryRelation>> relationMap = list.stream().collect(Collectors.groupingBy(DiagnosisPrimaryRelation::getPrimaryId));
for (DiagnosisPrimaryVO diagnosisPrimaryVO : resVoList) { for (DiagnosisPrimaryVO diagnosisPrimaryVO : resVoList) {
List<DiagnosisPrimaryRelation> relationList = relationMap.get(diagnosisPrimaryVO.getId()); List<DiagnosisPrimaryRelation> relationList = relationMap.get(diagnosisPrimaryVO.getId());
if (CollUtil.isNotEmpty(relationList)){ if (CollUtil.isNotEmpty(relationList)) {
Map<Integer, List<String>> relationIdMap = relationList.stream() Map<Integer, List<String>> relationIdMap = relationList.stream()
.collect(Collectors.groupingBy(DiagnosisPrimaryRelation::getType, Collectors.mapping(DiagnosisPrimaryRelation::getRelationId, Collectors.toList()))); .collect(Collectors.groupingBy(DiagnosisPrimaryRelation::getType, Collectors.mapping(DiagnosisPrimaryRelation::getRelationId, Collectors.toList())));
diagnosisPrimaryVO.setAskIdList(relationIdMap.get(1)); diagnosisPrimaryVO.setAskIdList(relationIdMap.get(1));
@ -74,7 +74,7 @@ public class AskPrimaryServiceImpl implements AskPrimaryService {
diagnosisPrimary.setCreateUserId(UserUtil.getUser().getId()); diagnosisPrimary.setCreateUserId(UserUtil.getUser().getId());
diagnosisPrimaryService.save(diagnosisPrimary); diagnosisPrimaryService.save(diagnosisPrimary);
// 然后开始保存初步诊断关键的诊断 // 然后开始保存初步诊断关键的诊断
if (CollUtil.isNotEmpty(reqVO.getAskIdList())){ if (CollUtil.isNotEmpty(reqVO.getAskIdList())) {
List<DiagnosisPrimaryRelation> askRelationList = reqVO.getAskIdList().stream().map(e -> { List<DiagnosisPrimaryRelation> askRelationList = reqVO.getAskIdList().stream().map(e -> {
DiagnosisPrimaryRelation relation = new DiagnosisPrimaryRelation(); DiagnosisPrimaryRelation relation = new DiagnosisPrimaryRelation();
relation.setProcessId(diagnosisPrimary.getProcessId()); relation.setProcessId(diagnosisPrimary.getProcessId());
@ -88,7 +88,7 @@ public class AskPrimaryServiceImpl implements AskPrimaryService {
} }
if (CollUtil.isNotEmpty(reqVO.getPhysicalIdList())){ if (CollUtil.isNotEmpty(reqVO.getPhysicalIdList())) {
List<DiagnosisPrimaryRelation> physicalRelationList = reqVO.getPhysicalIdList().stream().map(e -> { List<DiagnosisPrimaryRelation> physicalRelationList = reqVO.getPhysicalIdList().stream().map(e -> {
DiagnosisPrimaryRelation relation = new DiagnosisPrimaryRelation(); DiagnosisPrimaryRelation relation = new DiagnosisPrimaryRelation();
relation.setProcessId(diagnosisPrimary.getProcessId()); relation.setProcessId(diagnosisPrimary.getProcessId());
@ -102,7 +102,7 @@ public class AskPrimaryServiceImpl implements AskPrimaryService {
} }
if (CollUtil.isNotEmpty(reqVO.getAncillaryIdList())){ if (CollUtil.isNotEmpty(reqVO.getAncillaryIdList())) {
List<DiagnosisPrimaryRelation> ancillaryRelationList = reqVO.getAncillaryIdList().stream().map(e -> { List<DiagnosisPrimaryRelation> ancillaryRelationList = reqVO.getAncillaryIdList().stream().map(e -> {
DiagnosisPrimaryRelation relation = new DiagnosisPrimaryRelation(); DiagnosisPrimaryRelation relation = new DiagnosisPrimaryRelation();
relation.setProcessId(diagnosisPrimary.getProcessId()); relation.setProcessId(diagnosisPrimary.getProcessId());
@ -151,7 +151,6 @@ public class AskPrimaryServiceImpl implements AskPrimaryService {
} }
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void confirmPrimaryByAskEnd(List<PrimaryConfirmReqVO> reqVOList) { public void confirmPrimaryByAskEnd(List<PrimaryConfirmReqVO> reqVOList) {
@ -211,7 +210,7 @@ public class AskPrimaryServiceImpl implements AskPrimaryService {
* @return * @return
*/ */
@Override @Override
public List<DiagnosticBasisForPrimaryResVO> queryDiagnosticBasisListForPrimary(String processId,String primaryId) { public List<DiagnosticBasisForPrimaryResVO> queryDiagnosticBasisListForPrimary(String processId, String primaryId) {
List<DiagnosticBasisForPrimaryResVO> resList = diagnosisPrimaryService.queryDiagnosticBasisListForPrimary(processId); List<DiagnosticBasisForPrimaryResVO> resList = diagnosisPrimaryService.queryDiagnosticBasisListForPrimary(processId);
if (CollUtil.isEmpty(resList)) { if (CollUtil.isEmpty(resList)) {
return resList; return resList;
@ -219,27 +218,26 @@ public class AskPrimaryServiceImpl implements AskPrimaryService {
// 找到process对应的所有的初步诊断 // 找到process对应的所有的初步诊断
List<DiagnosisPrimaryVO> diagnosisPrimaryVOS = diagnosisPrimaryService.queryAskPrimaryList(processId); List<DiagnosisPrimaryVO> diagnosisPrimaryVOS = diagnosisPrimaryService.queryAskPrimaryList(processId);
Map<String, String> diseaseNameMap = diagnosisPrimaryVOS.stream().collect(Collectors.toMap(DiagnosisPrimaryVO::getId, DiagnosisPrimaryVO::getPrimaryDiseaseName)); 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().eq(DiagnosisPrimaryRelation::getProcessId, processId).list();
// 查询诊疗记录对应的初步诊断关系
List<DiagnosisPrimaryRelation> relationList = diagnosisPrimaryRelationService.lambdaQuery()
.in(DiagnosisPrimaryRelation::getRelationId, relationIdSet)
.list();
// 根据relationId进行分组 // 根据relationId进行分组
Map<String, List<DiagnosisPrimaryRelation>> relationMap = relationList.stream().collect(Collectors.groupingBy(DiagnosisPrimaryRelation::getRelationId)); Map<String, List<DiagnosisPrimaryRelation>> relationMap = relationList.stream().collect(Collectors.groupingBy(DiagnosisPrimaryRelation::getRelationId));
List<DiagnosticBasisForPrimaryResVO> result = new ArrayList<>(); List<DiagnosticBasisForPrimaryResVO> result = new ArrayList<>();
for (DiagnosticBasisForPrimaryResVO node : resList) { for (DiagnosticBasisForPrimaryResVO node : resList) {
List<DiagnosisPrimaryRelation> relationPrimaryList = relationMap.get(node.getId()); List<DiagnosisPrimaryRelation> relationPrimaryList = relationMap.get(node.getId());
if (CollUtil.isEmpty(relationPrimaryList)){
continue;
}
Set<String> primarySet = relationPrimaryList.stream().map(DiagnosisPrimaryRelation::getPrimaryId).collect(Collectors.toSet()); Set<String> primarySet = relationPrimaryList.stream().map(DiagnosisPrimaryRelation::getPrimaryId).collect(Collectors.toSet());
if (CollUtil.isNotEmpty(primarySet)) { if (CollUtil.isNotEmpty(primarySet)) {
// 如果初步诊断ID的参数不为空,那么说明只查某一个初步诊断的数据 // 如果初步诊断ID的参数不为空,那么说明只查某一个初步诊断的数据
if (StrUtil.isNotBlank(primaryId)){ if (StrUtil.isNotBlank(primaryId)) {
if (primarySet.contains(primaryId)){ if (primarySet.contains(primaryId)) {
// 如果有,就只保留这一个初步诊断依据的 // 如果有,就只保留这一个初步诊断依据的
primarySet.removeIf(e -> !e.equals(primaryId)); primarySet.removeIf(e -> !e.equals(primaryId));
}else { } else {
// 如果没有,就直接跳过 // 如果没有,就直接跳过
continue; continue;
} }

Loading…
Cancel
Save