diff --git a/virtual-patient-web/src/main/java/com/supervision/controller/AskPrimaryController.java b/virtual-patient-web/src/main/java/com/supervision/controller/AskPrimaryController.java index 352f5478..03f58540 100644 --- a/virtual-patient-web/src/main/java/com/supervision/controller/AskPrimaryController.java +++ b/virtual-patient-web/src/main/java/com/supervision/controller/AskPrimaryController.java @@ -4,6 +4,7 @@ package com.supervision.controller; import com.supervision.model.DiagnosisPrimary; import com.supervision.model.Disease; import com.supervision.pojo.vo.DiagnosticBasisForPrimaryReqVO; +import com.supervision.pojo.vo.RecordForPrimaryChooseVO; import com.supervision.pojo.vo.SaveDiagnosisPrimaryReqVO; import com.supervision.vo.ask.DiagnosticBasisForPrimaryResVO; import com.supervision.service.AskPrimaryService; @@ -50,8 +51,8 @@ public class AskPrimaryController { @ApiOperation("查询选择初步诊断关联的问诊记录") @PostMapping("queryRecordForPrimaryChoose") - public void queryRecordForPrimaryChoose(String processId){ - + public RecordForPrimaryChooseVO queryRecordForPrimaryChoose(String processId){ + return askPrimaryService.queryRecordForPrimaryChoose(processId); } @ApiOperation("确认诊断时,修改初步诊断的信息") diff --git a/virtual-patient-web/src/main/java/com/supervision/pojo/vo/ChooseNode.java b/virtual-patient-web/src/main/java/com/supervision/pojo/vo/ChooseNode.java new file mode 100644 index 00000000..2d805f5a --- /dev/null +++ b/virtual-patient-web/src/main/java/com/supervision/pojo/vo/ChooseNode.java @@ -0,0 +1,11 @@ +package com.supervision.pojo.vo; + +import lombok.Data; + +@Data +public class ChooseNode { + + private String nodeId; + + private String name; +} diff --git a/virtual-patient-web/src/main/java/com/supervision/pojo/vo/RecordForPrimaryChooseVO.java b/virtual-patient-web/src/main/java/com/supervision/pojo/vo/RecordForPrimaryChooseVO.java new file mode 100644 index 00000000..9941ff46 --- /dev/null +++ b/virtual-patient-web/src/main/java/com/supervision/pojo/vo/RecordForPrimaryChooseVO.java @@ -0,0 +1,21 @@ +package com.supervision.pojo.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +@Data +@ApiModel +public class RecordForPrimaryChooseVO { + + @ApiModelProperty("问诊ID") + private List askList; + + @ApiModelProperty("辅助检查ID") + private List ancillaryList; + + @ApiModelProperty("体格检查ID") + private List physicalList; +} diff --git a/virtual-patient-web/src/main/java/com/supervision/pojo/vo/SaveDiagnosisPrimaryReqVO.java b/virtual-patient-web/src/main/java/com/supervision/pojo/vo/SaveDiagnosisPrimaryReqVO.java index d9b30580..925a8090 100644 --- a/virtual-patient-web/src/main/java/com/supervision/pojo/vo/SaveDiagnosisPrimaryReqVO.java +++ b/virtual-patient-web/src/main/java/com/supervision/pojo/vo/SaveDiagnosisPrimaryReqVO.java @@ -2,6 +2,8 @@ package com.supervision.pojo.vo; import com.supervision.model.DiagnosisPrimary; import com.supervision.model.DiagnosisPrimaryRelation; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; @@ -9,10 +11,12 @@ import java.util.List; @EqualsAndHashCode(callSuper = true) @Data +@ApiModel(parent = DiagnosisPrimary.class) public class SaveDiagnosisPrimaryReqVO extends DiagnosisPrimary { // 关联的初步诊断列表 - private List primaryRecordList; + @ApiModelProperty("关联的初步诊断列表") + private RecordForPrimaryChooseVO choose; } diff --git a/virtual-patient-web/src/main/java/com/supervision/service/AskPrimaryService.java b/virtual-patient-web/src/main/java/com/supervision/service/AskPrimaryService.java index 4ae2c7c3..a30ffe77 100644 --- a/virtual-patient-web/src/main/java/com/supervision/service/AskPrimaryService.java +++ b/virtual-patient-web/src/main/java/com/supervision/service/AskPrimaryService.java @@ -3,11 +3,11 @@ package com.supervision.service; import com.supervision.model.DiagnosisPrimary; import com.supervision.model.Disease; import com.supervision.pojo.vo.DiagnosticBasisForPrimaryReqVO; +import com.supervision.pojo.vo.RecordForPrimaryChooseVO; import com.supervision.pojo.vo.SaveDiagnosisPrimaryReqVO; import com.supervision.vo.ask.DiagnosticBasisForPrimaryResVO; import com.supervision.vo.ask.DiagnosisPrimaryVO; import com.supervision.vo.ask.ModifyPrimaryDiseaseInfoReqVO; -import org.springframework.web.bind.annotation.RequestBody; import java.util.List; @@ -21,6 +21,8 @@ public interface AskPrimaryService { void savePrimary(SaveDiagnosisPrimaryReqVO reqVO); + RecordForPrimaryChooseVO queryRecordForPrimaryChoose(String processId); + void updatePrimaryByConfirm(DiagnosisPrimary reqVO); void deletePrimary(String id); diff --git a/virtual-patient-web/src/main/java/com/supervision/service/impl/AskPrimaryServiceImpl.java b/virtual-patient-web/src/main/java/com/supervision/service/impl/AskPrimaryServiceImpl.java index ad71dda1..81ae8a61 100644 --- a/virtual-patient-web/src/main/java/com/supervision/service/impl/AskPrimaryServiceImpl.java +++ b/virtual-patient-web/src/main/java/com/supervision/service/impl/AskPrimaryServiceImpl.java @@ -6,13 +6,13 @@ import cn.hutool.core.util.StrUtil; import com.supervision.exception.BusinessException; import com.supervision.model.*; import com.supervision.model.Process; +import com.supervision.pojo.vo.ChooseNode; import com.supervision.pojo.vo.DiagnosticBasisForPrimaryReqVO; +import com.supervision.pojo.vo.RecordForPrimaryChooseVO; import com.supervision.pojo.vo.SaveDiagnosisPrimaryReqVO; -import com.supervision.vo.ask.DiagnosticBasisForPrimaryResVO; +import com.supervision.vo.ask.*; import com.supervision.service.*; import com.supervision.util.UserUtil; -import com.supervision.vo.ask.DiagnosisPrimaryVO; -import com.supervision.vo.ask.ModifyPrimaryDiseaseInfoReqVO; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -62,9 +62,81 @@ public class AskPrimaryServiceImpl implements AskPrimaryService { diagnosisPrimary.setCreateUserId(UserUtil.getUser().getId()); diagnosisPrimaryService.save(diagnosisPrimary); // 然后开始保存初步诊断关键的诊断 - List primaryRecordList = reqVO.getPrimaryRecordList(); - primaryRecordList.forEach(e -> e.setPrimaryId(diagnosisPrimary.getId())); - diagnosisPrimaryRelationService.saveBatch(primaryRecordList); + RecordForPrimaryChooseVO choose = reqVO.getChoose(); + if (CollUtil.isNotEmpty(choose.getAskList())){ + List askRelationList = choose.getAskList().stream().map(e -> { + DiagnosisPrimaryRelation relation = new DiagnosisPrimaryRelation(); + relation.setProcessId(diagnosisPrimary.getProcessId()); + relation.setPrimaryId(diagnosisPrimary.getId()); + relation.setType(1); + relation.setRelationId(e.getNodeId()); + relation.setCreateUserId(UserUtil.getUser().getId()); + return relation; + }).collect(Collectors.toList()); + diagnosisPrimaryRelationService.saveBatch(askRelationList); + + } + + if (CollUtil.isNotEmpty(choose.getPhysicalList())){ + List physicalRelationList = choose.getPhysicalList().stream().map(e -> { + DiagnosisPrimaryRelation relation = new DiagnosisPrimaryRelation(); + relation.setProcessId(diagnosisPrimary.getProcessId()); + relation.setPrimaryId(diagnosisPrimary.getId()); + relation.setType(2); + relation.setRelationId(e.getNodeId()); + relation.setCreateUserId(UserUtil.getUser().getId()); + return relation; + }).collect(Collectors.toList()); + diagnosisPrimaryRelationService.saveBatch(physicalRelationList); + + } + + if (CollUtil.isNotEmpty(choose.getAncillaryList())){ + List ancillaryRelationList = choose.getAncillaryList().stream().map(e -> { + DiagnosisPrimaryRelation relation = new DiagnosisPrimaryRelation(); + relation.setProcessId(diagnosisPrimary.getProcessId()); + relation.setPrimaryId(diagnosisPrimary.getId()); + relation.setType(3); + relation.setRelationId(e.getNodeId()); + relation.setCreateUserId(UserUtil.getUser().getId()); + return relation; + }).collect(Collectors.toList()); + diagnosisPrimaryRelationService.saveBatch(ancillaryRelationList); + + } + } + + @Override + public RecordForPrimaryChooseVO queryRecordForPrimaryChoose(String processId) { + RecordForPrimaryChooseVO resVO = new RecordForPrimaryChooseVO(); + // 查询语音问诊记录 + List list = diagnosisQaRecordService.lambdaQuery().eq(DiagnosisQaRecord::getProcessId, processId).orderByAsc(DiagnosisQaRecord::getCreateTime).list(); + List askRecordList = list.stream().map(e -> { + ChooseNode chooseNode = new ChooseNode(); + chooseNode.setNodeId(e.getId()); + chooseNode.setName(e.getQuestion()); + return chooseNode; + + }).collect(Collectors.toList()); + resVO.setAskList(askRecordList); + // 查询体格检查记录 + List physicalHistoryList = diagnosisPhysicalRecordService.queryAskPhysicalHistory(processId); + List physicalList = physicalHistoryList.stream().map(e -> { + ChooseNode chooseNode = new ChooseNode(); + chooseNode.setNodeId(e.getId()); + chooseNode.setName(StrUtil.join(" | ", e.getToolName(), e.getLocationName())); + return chooseNode; + }).collect(Collectors.toList()); + resVO.setPhysicalList(physicalList); + List ancillaryHistoryList = diagnosisAncillaryRecordService.queryAncillaryRecord(processId); + List ancillaryList = ancillaryHistoryList.stream().map(e -> { + ChooseNode chooseNode = new ChooseNode(); + chooseNode.setNodeId(e.getId()); + chooseNode.setName(e.getItemName()); + return chooseNode; + }).collect(Collectors.toList()); + resVO.setAncillaryList(ancillaryList); + return resVO; } @Override