From 4076cc41cae23332725a4c37321310e1ff917ef3 Mon Sep 17 00:00:00 2001 From: xueqingkun Date: Tue, 7 Nov 2023 11:38:04 +0800 Subject: [PATCH] =?UTF-8?q?web=20:=201.=20ConfigPhysicalLocation=20?= =?UTF-8?q?=E7=B1=BB=E6=B7=BB=E5=8A=A0=E5=AD=97=E6=AE=B5=20=20=20=20=20=20?= =?UTF-8?q?=20=202.=20=E6=8B=93=E5=B1=95=20=E6=9F=A5=E8=AF=A2=E4=BD=93?= =?UTF-8?q?=E6=A0=BC=E6=A3=80=E6=9F=A5=E7=9A=84=E7=BB=93=E6=9E=9C=20?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E8=BF=94=E5=9B=9E=E5=80=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../model/ConfigPhysicalLocation.java | 7 ++++ .../vo/ask/DiagnosisPhysicalRecordVo.java | 20 +++++++++++ .../mapper/ConfigPhysicalLocationMapper.xml | 5 ++- .../controller/AskPhysicalController.java | 6 ++-- .../service/AskPhysicalService.java | 7 ++-- .../service/impl/AskPhysicalServiceImpl.java | 35 ++++++++++++++----- 6 files changed, 61 insertions(+), 19 deletions(-) create mode 100644 virtual-patient-model/src/main/java/com/supervision/vo/ask/DiagnosisPhysicalRecordVo.java diff --git a/virtual-patient-model/src/main/java/com/supervision/model/ConfigPhysicalLocation.java b/virtual-patient-model/src/main/java/com/supervision/model/ConfigPhysicalLocation.java index 57f4c778..532d470c 100644 --- a/virtual-patient-model/src/main/java/com/supervision/model/ConfigPhysicalLocation.java +++ b/virtual-patient-model/src/main/java/com/supervision/model/ConfigPhysicalLocation.java @@ -43,6 +43,13 @@ public class ConfigPhysicalLocation implements Serializable { @ApiModelProperty("位置名称") private String locationName; + + @ApiModelProperty("部位层级") + private String level; + + @ApiModelProperty("父级Id") + private String parentId; + /** * 创建人ID */ diff --git a/virtual-patient-model/src/main/java/com/supervision/vo/ask/DiagnosisPhysicalRecordVo.java b/virtual-patient-model/src/main/java/com/supervision/vo/ask/DiagnosisPhysicalRecordVo.java new file mode 100644 index 00000000..b2ad7a02 --- /dev/null +++ b/virtual-patient-model/src/main/java/com/supervision/vo/ask/DiagnosisPhysicalRecordVo.java @@ -0,0 +1,20 @@ +package com.supervision.vo.ask; + +import com.supervision.model.DiagnosisPhysicalRecord; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +@Data +@EqualsAndHashCode(callSuper = true) +public class DiagnosisPhysicalRecordVo extends DiagnosisPhysicalRecord { + + + @ApiModelProperty("体格检查工具名") + private String toolName; + + + @ApiModelProperty("体格检查部位名") + private String locationName; + +} diff --git a/virtual-patient-model/src/main/resources/mapper/ConfigPhysicalLocationMapper.xml b/virtual-patient-model/src/main/resources/mapper/ConfigPhysicalLocationMapper.xml index 5a0c6558..657b741d 100644 --- a/virtual-patient-model/src/main/resources/mapper/ConfigPhysicalLocationMapper.xml +++ b/virtual-patient-model/src/main/resources/mapper/ConfigPhysicalLocationMapper.xml @@ -9,6 +9,8 @@ + + @@ -18,7 +20,8 @@ id ,code,location_class - location_name,create_user_id,create_time, + location_name,level,parent_id, + create_user_id,create_time, update_user_id,update_time diff --git a/virtual-patient-web/src/main/java/com/supervision/controller/AskPhysicalController.java b/virtual-patient-web/src/main/java/com/supervision/controller/AskPhysicalController.java index c58ffb9d..dc1fef9f 100644 --- a/virtual-patient-web/src/main/java/com/supervision/controller/AskPhysicalController.java +++ b/virtual-patient-web/src/main/java/com/supervision/controller/AskPhysicalController.java @@ -1,10 +1,9 @@ package com.supervision.controller; -import com.supervision.model.ConfigPhysicalTool; -import com.supervision.model.DiagnosisPhysicalRecord; import com.supervision.pojo.vo.AskPhysicalResultReqVO; import com.supervision.pojo.vo.ConfigPhysicalToolResVO; import com.supervision.service.AskPhysicalService; +import com.supervision.vo.ask.DiagnosisPhysicalRecordVo; import com.supervision.vo.ask.AskPhysicalHistoryResVO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -15,7 +14,6 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.util.List; -import java.util.Map; @Api(tags = "体格检查") @RestController @@ -34,7 +32,7 @@ public class AskPhysicalController { @ApiOperation(value = "查询体格检查的结果(执行体格检查)") @GetMapping("queryAskPhysicalResult") - public DiagnosisPhysicalRecord queryAskPhysicalResult(AskPhysicalResultReqVO reqVO) { + public DiagnosisPhysicalRecordVo queryAskPhysicalResult(AskPhysicalResultReqVO reqVO) { return askPhysicalService.queryAskPhysicalResult(reqVO); } diff --git a/virtual-patient-web/src/main/java/com/supervision/service/AskPhysicalService.java b/virtual-patient-web/src/main/java/com/supervision/service/AskPhysicalService.java index a37709d9..402afb5a 100644 --- a/virtual-patient-web/src/main/java/com/supervision/service/AskPhysicalService.java +++ b/virtual-patient-web/src/main/java/com/supervision/service/AskPhysicalService.java @@ -1,21 +1,18 @@ package com.supervision.service; -import com.supervision.model.ConfigPhysicalLocation; -import com.supervision.model.ConfigPhysicalTool; -import com.supervision.model.DiagnosisPhysicalRecord; import com.supervision.pojo.vo.AskPhysicalResultReqVO; import com.supervision.pojo.vo.ConfigPhysicalToolResVO; +import com.supervision.vo.ask.DiagnosisPhysicalRecordVo; import com.supervision.vo.ask.AskPhysicalHistoryResVO; import java.util.List; -import java.util.Map; public interface AskPhysicalService { List queryPhysicalToolList(); - DiagnosisPhysicalRecord queryAskPhysicalResult(AskPhysicalResultReqVO reqVO); + DiagnosisPhysicalRecordVo queryAskPhysicalResult(AskPhysicalResultReqVO reqVO); List queryAskPhysicalHistory(String processId); } diff --git a/virtual-patient-web/src/main/java/com/supervision/service/impl/AskPhysicalServiceImpl.java b/virtual-patient-web/src/main/java/com/supervision/service/impl/AskPhysicalServiceImpl.java index b4b506cf..13bd2ee7 100644 --- a/virtual-patient-web/src/main/java/com/supervision/service/impl/AskPhysicalServiceImpl.java +++ b/virtual-patient-web/src/main/java/com/supervision/service/impl/AskPhysicalServiceImpl.java @@ -8,13 +8,12 @@ import com.supervision.pojo.vo.AskPhysicalResultReqVO; import com.supervision.pojo.vo.ConfigPhysicalToolResVO; import com.supervision.service.*; import com.supervision.util.UserUtil; +import com.supervision.vo.ask.DiagnosisPhysicalRecordVo; import com.supervision.vo.ask.AskPhysicalHistoryResVO; import lombok.RequiredArgsConstructor; -import org.apache.commons.collections4.SetUtils; import org.springframework.stereotype.Service; import java.util.List; -import java.util.Map; import java.util.Optional; import java.util.stream.Collectors; @@ -45,22 +44,21 @@ public class AskPhysicalServiceImpl implements AskPhysicalService { } @Override - public DiagnosisPhysicalRecord queryAskPhysicalResult(AskPhysicalResultReqVO reqVO) { + public DiagnosisPhysicalRecordVo queryAskPhysicalResult(AskPhysicalResultReqVO reqVO) { // 首先根据process_id查新到流程ID Process process = Optional.ofNullable(processService.getById(reqVO.getProcessId())).orElseThrow(() -> new BusinessException("未找到流程ID")); ConfigPhysicalTool tool = Optional.ofNullable(toolService.getById(reqVO.getToolId())).orElseThrow(() -> new BusinessException("工具不支持")); // 是否需要具体的部位,0否1是 - String locationId = null; + ConfigPhysicalLocation location = new ConfigPhysicalLocation(); if (1 == tool.getRequireLocation()) { if (StrUtil.isBlank(reqVO.getLocationCode())){ throw new BusinessException("请选择对应的位置"); } - ConfigPhysicalLocation location = locationService.lambdaQuery().eq(ConfigPhysicalLocation::getCode, reqVO.getLocationCode()).last("limit 1") + location = locationService.lambdaQuery().eq(ConfigPhysicalLocation::getCode, reqVO.getLocationCode()).last("limit 1") .oneOpt().orElseThrow(() -> new BusinessException("未找到对应部位")); - locationId = location.getId(); } DiseasePhysical result = diseasePhysicalService.lambdaQuery().eq(DiseasePhysical::getMedicalRecId, process.getMedicalRecId()) - .eq(DiseasePhysical::getToolId, tool.getId()).eq(StrUtil.isNotBlank(locationId), DiseasePhysical::getLocationId, locationId).last("limit 1") + .eq(DiseasePhysical::getToolId, tool.getId()).eq(StrUtil.isNotBlank(location.getId()), DiseasePhysical::getLocationId, location.getId()).last("limit 1") .oneOpt() .orElseGet(() -> { DiseasePhysical diseasePhysical = new DiseasePhysical(); @@ -72,17 +70,36 @@ public class AskPhysicalServiceImpl implements AskPhysicalService { diagnosisPhysicalRecord.setProcessId(process.getId()); diagnosisPhysicalRecord.setPhysicalId(result.getId()); diagnosisPhysicalRecord.setToolId(tool.getId()); - diagnosisPhysicalRecord.setLocationId(locationId); + diagnosisPhysicalRecord.setLocationId(location.getId()); diagnosisPhysicalRecord.setPrimaryId(reqVO.getPrimaryId()); diagnosisPhysicalRecord.setResult(result.getResult()); diagnosisPhysicalRecord.setCreateUserId(UserUtil.getUser().getCreateUserId()); diagnosisPhysicalRecord.setUpdateUserId(UserUtil.getUser().getCreateUserId()); diagnosisPhysicalRecord.insert(); - return diagnosisPhysicalRecord; + + return initDiagnosisPhysicalRecordVo(reqVO.getPrimaryId(), process.getId(), result, tool, location); } + @Override public List queryAskPhysicalHistory(String processId) { return diagnosisPhysicalRecordService.queryAskPhysicalHistory(processId); } + + + private static DiagnosisPhysicalRecordVo initDiagnosisPhysicalRecordVo(String primaryId, String processId, + DiseasePhysical result, ConfigPhysicalTool tool, + ConfigPhysicalLocation location) { + DiagnosisPhysicalRecordVo diagnosisPhysicalRecordVo = new DiagnosisPhysicalRecordVo(); + diagnosisPhysicalRecordVo.setProcessId(processId); + diagnosisPhysicalRecordVo.setToolId(tool.getToolName()); + diagnosisPhysicalRecordVo.setToolName(tool.getToolName()); + diagnosisPhysicalRecordVo.setLocationId(location.getId()); + diagnosisPhysicalRecordVo.setLocationName(location.getLocationName()); + diagnosisPhysicalRecordVo.setPrimaryId(primaryId); + diagnosisPhysicalRecordVo.setPhysicalId(result.getId()); + diagnosisPhysicalRecordVo.setResult(result.getResult()); + return diagnosisPhysicalRecordVo; + } + }