From 0cbf32143a2105f8375f78581205c6bd81cf2446 Mon Sep 17 00:00:00 2001 From: liu Date: Tue, 24 Oct 2023 13:09:07 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=9D=E5=A7=8B=E5=8C=96=E8=BE=85=E5=8A=A9?= =?UTF-8?q?=E6=A3=80=E6=9F=A5=E5=92=8C=E4=BD=93=E6=A0=BC=E6=A3=80=E6=9F=A5?= =?UTF-8?q?=E7=9A=84=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../supervision/config/JwtInterceptor.java | 3 +- .../com/supervision/config/ThreadCache.java | 2 +- .../java/com/supervision/util/TokenUtil.java | 2 - .../model/DiagnosisAncillaryRecord.java | 4 +- .../model/DiagnosisPhysicalRecord.java | 4 +- .../supervision/model/DiseaseAncillary.java | 5 ++ .../supervision/model/DiseasePhysical.java | 5 ++ .../supervision/service/PatientService.java | 2 +- .../service/impl/PatientServiceImpl.java | 5 +- .../mapper/DiseaseAncillaryMapper.xml | 1 + .../mapper/DiseasePhysicalMapper.xml | 3 +- .../controller/AskAncillaryController.java | 26 ++++++++ .../controller/AskPatientController.java | 32 ++++++++++ .../controller/AskPhysicalController.java | 26 ++++++++ .../controller/AskProcessController.java | 29 +++++++++ .../controller/PatientController.java | 25 -------- .../pojo/vo/AskAncillaryResultReqVO.java | 16 +++++ .../pojo/vo/AskPhysicalResultReqVO.java | 18 ++++++ .../service/AskAncillaryService.java | 9 +++ .../service/AskPatientService.java | 11 ++++ .../service/AskPhysicalService.java | 9 +++ .../service/AskProcessService.java | 11 ++++ .../service/impl/AskAncillaryServiceImpl.java | 48 +++++++++++++++ .../service/impl/AskPatientServiceImpl.java | 27 +++++++++ .../service/impl/AskPhysicalServiceImpl.java | 59 +++++++++++++++++++ .../service/impl/AskProcessServiceImpl.java | 27 +++++++++ .../java/com/supervision/util/UserUtil.java | 20 +++++++ 27 files changed, 391 insertions(+), 38 deletions(-) create mode 100644 virtual-patient-web/src/main/java/com/supervision/controller/AskAncillaryController.java create mode 100644 virtual-patient-web/src/main/java/com/supervision/controller/AskPatientController.java create mode 100644 virtual-patient-web/src/main/java/com/supervision/controller/AskPhysicalController.java create mode 100644 virtual-patient-web/src/main/java/com/supervision/controller/AskProcessController.java delete mode 100644 virtual-patient-web/src/main/java/com/supervision/controller/PatientController.java create mode 100644 virtual-patient-web/src/main/java/com/supervision/pojo/vo/AskAncillaryResultReqVO.java create mode 100644 virtual-patient-web/src/main/java/com/supervision/pojo/vo/AskPhysicalResultReqVO.java create mode 100644 virtual-patient-web/src/main/java/com/supervision/service/AskAncillaryService.java create mode 100644 virtual-patient-web/src/main/java/com/supervision/service/AskPatientService.java create mode 100644 virtual-patient-web/src/main/java/com/supervision/service/AskPhysicalService.java create mode 100644 virtual-patient-web/src/main/java/com/supervision/service/AskProcessService.java create mode 100644 virtual-patient-web/src/main/java/com/supervision/service/impl/AskAncillaryServiceImpl.java create mode 100644 virtual-patient-web/src/main/java/com/supervision/service/impl/AskPatientServiceImpl.java create mode 100644 virtual-patient-web/src/main/java/com/supervision/service/impl/AskPhysicalServiceImpl.java create mode 100644 virtual-patient-web/src/main/java/com/supervision/service/impl/AskProcessServiceImpl.java create mode 100644 virtual-patient-web/src/main/java/com/supervision/util/UserUtil.java diff --git a/virtual-patient-common/src/main/java/com/supervision/config/JwtInterceptor.java b/virtual-patient-common/src/main/java/com/supervision/config/JwtInterceptor.java index 11470724..f30dae65 100644 --- a/virtual-patient-common/src/main/java/com/supervision/config/JwtInterceptor.java +++ b/virtual-patient-common/src/main/java/com/supervision/config/JwtInterceptor.java @@ -56,8 +56,7 @@ public class JwtInterceptor implements HandlerInterceptor { private void cacheAuth(JWT jwt) { try { JSONObject claimsJson = jwt.getPayload().getClaimsJson(); - UserInfo userInfo = JSONUtil.toBean(claimsJson, UserInfo.class); - ThreadCache.USER.set(userInfo); + ThreadCache.USER.set(claimsJson.toString()); } catch (Exception e) { log.error("用户信息异常", e); } diff --git a/virtual-patient-common/src/main/java/com/supervision/config/ThreadCache.java b/virtual-patient-common/src/main/java/com/supervision/config/ThreadCache.java index cc257865..de90ebe8 100644 --- a/virtual-patient-common/src/main/java/com/supervision/config/ThreadCache.java +++ b/virtual-patient-common/src/main/java/com/supervision/config/ThreadCache.java @@ -26,7 +26,7 @@ public class ThreadCache { /** * 用户ID */ - public static final ThreadLocal USER = new ThreadLocal<>(); + public static final ThreadLocal USER = new ThreadLocal<>(); } diff --git a/virtual-patient-common/src/main/java/com/supervision/util/TokenUtil.java b/virtual-patient-common/src/main/java/com/supervision/util/TokenUtil.java index 4f3b1b31..762ceee6 100644 --- a/virtual-patient-common/src/main/java/com/supervision/util/TokenUtil.java +++ b/virtual-patient-common/src/main/java/com/supervision/util/TokenUtil.java @@ -5,8 +5,6 @@ import cn.hutool.json.JSONUtil; import cn.hutool.jwt.JWTUtil; import cn.hutool.jwt.signers.JWTSigner; import cn.hutool.jwt.signers.JWTSignerUtil; -import com.supervision.domain.UserInfo; -import org.springframework.boot.autoconfigure.security.SecurityProperties; public class TokenUtil { diff --git a/virtual-patient-model/src/main/java/com/supervision/model/DiagnosisAncillaryRecord.java b/virtual-patient-model/src/main/java/com/supervision/model/DiagnosisAncillaryRecord.java index ff57f086..5d30d166 100644 --- a/virtual-patient-model/src/main/java/com/supervision/model/DiagnosisAncillaryRecord.java +++ b/virtual-patient-model/src/main/java/com/supervision/model/DiagnosisAncillaryRecord.java @@ -6,6 +6,8 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import java.io.Serializable; import java.time.LocalDateTime; + +import com.baomidou.mybatisplus.extension.activerecord.Model; import lombok.Data; /** @@ -14,7 +16,7 @@ import lombok.Data; */ @TableName(value ="vp_diagnosis_ancillary_record") @Data -public class DiagnosisAncillaryRecord implements Serializable { +public class DiagnosisAncillaryRecord extends Model implements Serializable { /** * 主键 */ diff --git a/virtual-patient-model/src/main/java/com/supervision/model/DiagnosisPhysicalRecord.java b/virtual-patient-model/src/main/java/com/supervision/model/DiagnosisPhysicalRecord.java index 993e76a7..f0235273 100644 --- a/virtual-patient-model/src/main/java/com/supervision/model/DiagnosisPhysicalRecord.java +++ b/virtual-patient-model/src/main/java/com/supervision/model/DiagnosisPhysicalRecord.java @@ -6,6 +6,8 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import java.io.Serializable; import java.time.LocalDateTime; + +import com.baomidou.mybatisplus.extension.activerecord.Model; import lombok.Data; /** @@ -14,7 +16,7 @@ import lombok.Data; */ @TableName(value ="vp_diagnosis_physical_record") @Data -public class DiagnosisPhysicalRecord implements Serializable { +public class DiagnosisPhysicalRecord extends Model implements Serializable { /** * 主键 */ diff --git a/virtual-patient-model/src/main/java/com/supervision/model/DiseaseAncillary.java b/virtual-patient-model/src/main/java/com/supervision/model/DiseaseAncillary.java index 0cbda23b..6ea3eb61 100644 --- a/virtual-patient-model/src/main/java/com/supervision/model/DiseaseAncillary.java +++ b/virtual-patient-model/src/main/java/com/supervision/model/DiseaseAncillary.java @@ -21,6 +21,11 @@ public class DiseaseAncillary implements Serializable { @TableId private String id; + /** + * 病人ID + */ + private String patientId; + /** * 工具ID */ diff --git a/virtual-patient-model/src/main/java/com/supervision/model/DiseasePhysical.java b/virtual-patient-model/src/main/java/com/supervision/model/DiseasePhysical.java index 7629fd21..ef7cfc52 100644 --- a/virtual-patient-model/src/main/java/com/supervision/model/DiseasePhysical.java +++ b/virtual-patient-model/src/main/java/com/supervision/model/DiseasePhysical.java @@ -21,6 +21,11 @@ public class DiseasePhysical implements Serializable { @TableId private String id; + /** + * 病人ID + */ + private String patientId; + /** * 工具ID */ diff --git a/virtual-patient-model/src/main/java/com/supervision/service/PatientService.java b/virtual-patient-model/src/main/java/com/supervision/service/PatientService.java index ca1a3104..85848c65 100644 --- a/virtual-patient-model/src/main/java/com/supervision/service/PatientService.java +++ b/virtual-patient-model/src/main/java/com/supervision/service/PatientService.java @@ -10,6 +10,6 @@ import com.baomidou.mybatisplus.extension.service.IService; */ public interface PatientService extends IService { - Patient queryPatientById(String id); + } diff --git a/virtual-patient-model/src/main/java/com/supervision/service/impl/PatientServiceImpl.java b/virtual-patient-model/src/main/java/com/supervision/service/impl/PatientServiceImpl.java index f3fd416a..5fc51aad 100644 --- a/virtual-patient-model/src/main/java/com/supervision/service/impl/PatientServiceImpl.java +++ b/virtual-patient-model/src/main/java/com/supervision/service/impl/PatientServiceImpl.java @@ -18,10 +18,7 @@ import java.util.Optional; public class PatientServiceImpl extends ServiceImpl implements PatientService{ - @Override - public Patient queryPatientById(String id) { - return this.lambdaQuery().eq(Patient::getId, id).oneOpt().orElseThrow(() -> new BusinessException("未找到用户")); - } + } diff --git a/virtual-patient-model/src/main/resources/mapper/DiseaseAncillaryMapper.xml b/virtual-patient-model/src/main/resources/mapper/DiseaseAncillaryMapper.xml index ac8d0007..a17deab8 100644 --- a/virtual-patient-model/src/main/resources/mapper/DiseaseAncillaryMapper.xml +++ b/virtual-patient-model/src/main/resources/mapper/DiseaseAncillaryMapper.xml @@ -6,6 +6,7 @@ + diff --git a/virtual-patient-model/src/main/resources/mapper/DiseasePhysicalMapper.xml b/virtual-patient-model/src/main/resources/mapper/DiseasePhysicalMapper.xml index 27832287..544552ca 100644 --- a/virtual-patient-model/src/main/resources/mapper/DiseasePhysicalMapper.xml +++ b/virtual-patient-model/src/main/resources/mapper/DiseasePhysicalMapper.xml @@ -6,6 +6,7 @@ + @@ -18,7 +19,7 @@ - id,tool_id,location_id, + id,patient_id,tool_id,location_id, require_check,result,trait, create_user_id,create_time,update_user_id, update_time diff --git a/virtual-patient-web/src/main/java/com/supervision/controller/AskAncillaryController.java b/virtual-patient-web/src/main/java/com/supervision/controller/AskAncillaryController.java new file mode 100644 index 00000000..7c062527 --- /dev/null +++ b/virtual-patient-web/src/main/java/com/supervision/controller/AskAncillaryController.java @@ -0,0 +1,26 @@ +package com.supervision.controller; + +import com.supervision.model.DiagnosisAncillaryRecord; +import com.supervision.pojo.vo.AskAncillaryResultReqVO; +import com.supervision.service.AskAncillaryService; +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("askAncillary") +@RequiredArgsConstructor +public class AskAncillaryController { + + private final AskAncillaryService askAncillaryService; + + @ApiOperation("查询辅助检查的结果") + @GetMapping("queryAskAncillaryResult") + public DiagnosisAncillaryRecord queryAskAncillaryResult(AskAncillaryResultReqVO reqVO){ + return askAncillaryService.queryAskAncillaryResult(reqVO); + } +} diff --git a/virtual-patient-web/src/main/java/com/supervision/controller/AskPatientController.java b/virtual-patient-web/src/main/java/com/supervision/controller/AskPatientController.java new file mode 100644 index 00000000..9cd618b0 --- /dev/null +++ b/virtual-patient-web/src/main/java/com/supervision/controller/AskPatientController.java @@ -0,0 +1,32 @@ +package com.supervision.controller; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.supervision.model.Patient; +import com.supervision.service.AskPatientService; +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("/askPatient") +@RequiredArgsConstructor +public class AskPatientController { + + private final AskPatientService askPatientService; + + @ApiOperation("分页获取病人列表") + @RequestMapping("queryPatientPage") + public IPage queryPatientPage(Integer pageNum, Integer pageSize) { + return askPatientService.queryPatientPage(pageNum, pageSize); + } + + @ApiOperation("根据病人ID获取病人详细信息") + @GetMapping("queryPatientInfo") + public Patient queryPatientInfo(String id) { + return askPatientService.queryPatientById(id); + } +} 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 new file mode 100644 index 00000000..2c6b4b71 --- /dev/null +++ b/virtual-patient-web/src/main/java/com/supervision/controller/AskPhysicalController.java @@ -0,0 +1,26 @@ +package com.supervision.controller; + +import com.supervision.model.DiagnosisPhysicalRecord; +import com.supervision.pojo.vo.AskPhysicalResultReqVO; +import com.supervision.service.AskPhysicalService; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequestMapping("askPhysical") +@RequiredArgsConstructor +@Validated +public class AskPhysicalController { + + private final AskPhysicalService askPhysicalService; + + @ApiOperation("查询体格检查的结果") + @GetMapping("queryAskPhysicalResult") + public DiagnosisPhysicalRecord queryAskPhysicalResult(AskPhysicalResultReqVO reqVO) { + return askPhysicalService.queryAskPhysicalResult(reqVO); + } +} diff --git a/virtual-patient-web/src/main/java/com/supervision/controller/AskProcessController.java b/virtual-patient-web/src/main/java/com/supervision/controller/AskProcessController.java new file mode 100644 index 00000000..1e79a546 --- /dev/null +++ b/virtual-patient-web/src/main/java/com/supervision/controller/AskProcessController.java @@ -0,0 +1,29 @@ +package com.supervision.controller; + +import com.supervision.model.Process; +import com.supervision.model.User; +import com.supervision.service.AskProcessService; +import com.supervision.util.UserUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +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("askProcess") +@RequiredArgsConstructor +public class AskProcessController { + + private final AskProcessService askProcessService; + + @ApiOperation("生成诊断流程任务") + @GetMapping("creatDiagnosisProcess") + public Process creatDiagnosisProcess(@ApiParam("病人ID") String patientId) { + User user = UserUtil.getUser(); + return askProcessService.creatDiagnosisProcess(patientId, user); + } +} diff --git a/virtual-patient-web/src/main/java/com/supervision/controller/PatientController.java b/virtual-patient-web/src/main/java/com/supervision/controller/PatientController.java deleted file mode 100644 index ea22ab4b..00000000 --- a/virtual-patient-web/src/main/java/com/supervision/controller/PatientController.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.supervision.controller; - -import com.supervision.model.Patient; -import com.supervision.service.PatientService; -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("/patient") -@RequiredArgsConstructor -public class PatientController { - - private final PatientService patientService; - - @ApiOperation("根据病人ID获取病人") - @GetMapping("queryPatientInfo") - public Patient queryPatientInfo(String id) { - return patientService.queryPatientById(id); - } -} diff --git a/virtual-patient-web/src/main/java/com/supervision/pojo/vo/AskAncillaryResultReqVO.java b/virtual-patient-web/src/main/java/com/supervision/pojo/vo/AskAncillaryResultReqVO.java new file mode 100644 index 00000000..b0a206d4 --- /dev/null +++ b/virtual-patient-web/src/main/java/com/supervision/pojo/vo/AskAncillaryResultReqVO.java @@ -0,0 +1,16 @@ +package com.supervision.pojo.vo; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +@Data +public class AskAncillaryResultReqVO { + + @NotBlank(message = "辅助检查工具名称不能为空") + private String itemName; + + @NotBlank(message = "流程ID不能为空") + private String processId; + +} diff --git a/virtual-patient-web/src/main/java/com/supervision/pojo/vo/AskPhysicalResultReqVO.java b/virtual-patient-web/src/main/java/com/supervision/pojo/vo/AskPhysicalResultReqVO.java new file mode 100644 index 00000000..90bc371b --- /dev/null +++ b/virtual-patient-web/src/main/java/com/supervision/pojo/vo/AskPhysicalResultReqVO.java @@ -0,0 +1,18 @@ +package com.supervision.pojo.vo; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +@Data +public class AskPhysicalResultReqVO { + + @NotBlank(message = "体格检查工具名称不能为空") + private String toolName; + + private String locationName; + + @NotBlank(message = "流程ID不能为空") + private String processId; + +} diff --git a/virtual-patient-web/src/main/java/com/supervision/service/AskAncillaryService.java b/virtual-patient-web/src/main/java/com/supervision/service/AskAncillaryService.java new file mode 100644 index 00000000..bbbbd0e3 --- /dev/null +++ b/virtual-patient-web/src/main/java/com/supervision/service/AskAncillaryService.java @@ -0,0 +1,9 @@ +package com.supervision.service; + +import com.supervision.model.DiagnosisAncillaryRecord; +import com.supervision.pojo.vo.AskAncillaryResultReqVO; + +public interface AskAncillaryService { + + DiagnosisAncillaryRecord queryAskAncillaryResult(AskAncillaryResultReqVO reqVO); +} diff --git a/virtual-patient-web/src/main/java/com/supervision/service/AskPatientService.java b/virtual-patient-web/src/main/java/com/supervision/service/AskPatientService.java new file mode 100644 index 00000000..3674caff --- /dev/null +++ b/virtual-patient-web/src/main/java/com/supervision/service/AskPatientService.java @@ -0,0 +1,11 @@ +package com.supervision.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.supervision.model.Patient; + +public interface AskPatientService { + + IPage queryPatientPage(Integer pageNum, Integer pageSize); + + Patient queryPatientById(String id); +} 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 new file mode 100644 index 00000000..17f22609 --- /dev/null +++ b/virtual-patient-web/src/main/java/com/supervision/service/AskPhysicalService.java @@ -0,0 +1,9 @@ +package com.supervision.service; + +import com.supervision.model.DiagnosisPhysicalRecord; +import com.supervision.pojo.vo.AskPhysicalResultReqVO; + +public interface AskPhysicalService { + + DiagnosisPhysicalRecord queryAskPhysicalResult(AskPhysicalResultReqVO reqVO); +} diff --git a/virtual-patient-web/src/main/java/com/supervision/service/AskProcessService.java b/virtual-patient-web/src/main/java/com/supervision/service/AskProcessService.java new file mode 100644 index 00000000..cd5e6eaf --- /dev/null +++ b/virtual-patient-web/src/main/java/com/supervision/service/AskProcessService.java @@ -0,0 +1,11 @@ +package com.supervision.service; + +import com.supervision.model.Process; +import com.supervision.model.User; + +public interface AskProcessService { + + Process creatDiagnosisProcess(String patientId, User user); + + +} diff --git a/virtual-patient-web/src/main/java/com/supervision/service/impl/AskAncillaryServiceImpl.java b/virtual-patient-web/src/main/java/com/supervision/service/impl/AskAncillaryServiceImpl.java new file mode 100644 index 00000000..c6c99945 --- /dev/null +++ b/virtual-patient-web/src/main/java/com/supervision/service/impl/AskAncillaryServiceImpl.java @@ -0,0 +1,48 @@ +package com.supervision.service.impl; + +import com.supervision.exception.BusinessException; +import com.supervision.model.ConfigAncillaryItem; +import com.supervision.model.DiagnosisAncillaryRecord; +import com.supervision.model.DiseaseAncillary; +import com.supervision.model.Process; +import com.supervision.pojo.vo.AskAncillaryResultReqVO; +import com.supervision.service.*; +import com.supervision.util.UserUtil; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +import java.util.Optional; + +@Service +@RequiredArgsConstructor +public class AskAncillaryServiceImpl implements AskAncillaryService { + + private final ProcessService processService; + + private final DiseaseAncillaryService diseaseAncillaryService; + + private final ConfigAncillaryItemService ancillaryItemService; + + @Override + public DiagnosisAncillaryRecord queryAskAncillaryResult(AskAncillaryResultReqVO reqVO) { + // 首先根据process_id查新到流程ID + Process process = Optional.ofNullable(processService.getById(reqVO.getProcessId())).orElseThrow(() -> new BusinessException("未找到流程ID")); + // 找到对应的项目 + ConfigAncillaryItem ancillaryItem = ancillaryItemService.lambdaQuery().eq(ConfigAncillaryItem::getItemName, reqVO.getItemName()).last("limit 1") + .oneOpt().orElseThrow(() -> new BusinessException("未找到对应的辅助工具")); + + DiseaseAncillary diseaseAncillary = diseaseAncillaryService.lambdaQuery().eq(DiseaseAncillary::getPatientId, process.getPatientId()).eq(DiseaseAncillary::getItemId, ancillaryItem.getId()) + .oneOpt().orElseGet(() -> { + DiseaseAncillary get = new DiseaseAncillary(); + get.setResult("无相关资讯"); + return get; + }); + DiagnosisAncillaryRecord record = new DiagnosisAncillaryRecord(); + record.setProcessId(process.getId()); + record.setItemId(ancillaryItem.getId()); + record.setValue(diseaseAncillary.getResult()); + record.setCreateUserId(UserUtil.getUser().getId()); + record.setUpdateUserId(UserUtil.getUser().getId()); + return record; + } +} diff --git a/virtual-patient-web/src/main/java/com/supervision/service/impl/AskPatientServiceImpl.java b/virtual-patient-web/src/main/java/com/supervision/service/impl/AskPatientServiceImpl.java new file mode 100644 index 00000000..380517a8 --- /dev/null +++ b/virtual-patient-web/src/main/java/com/supervision/service/impl/AskPatientServiceImpl.java @@ -0,0 +1,27 @@ +package com.supervision.service.impl; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.supervision.exception.BusinessException; +import com.supervision.model.Patient; +import com.supervision.service.AskPatientService; +import com.supervision.service.PatientService; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +@Service +@RequiredArgsConstructor +public class AskPatientServiceImpl implements AskPatientService { + + private final PatientService patientService; + + @Override + public IPage queryPatientPage(Integer pageNum, Integer pageSize) { + return patientService.lambdaQuery().page(new Page<>(pageNum,pageSize)); + } + + @Override + public Patient queryPatientById(String id) { + return patientService.lambdaQuery().eq(Patient::getId, id).oneOpt().orElseThrow(() -> new BusinessException("未找到用户")); + } +} 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 new file mode 100644 index 00000000..474ede32 --- /dev/null +++ b/virtual-patient-web/src/main/java/com/supervision/service/impl/AskPhysicalServiceImpl.java @@ -0,0 +1,59 @@ +package com.supervision.service.impl; + +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.AskPhysicalResultReqVO; +import com.supervision.service.*; +import com.supervision.util.UserUtil; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +import java.util.Optional; + +@Service +@RequiredArgsConstructor +public class AskPhysicalServiceImpl implements AskPhysicalService { + + private final ConfigPhysicalLocationService locationService; + + private final ConfigPhysicalToolService toolService; + + private final DiseasePhysicalService diseasePhysicalService; + + private final ProcessService processService; + + @Override + public DiagnosisPhysicalRecord queryAskPhysicalResult(AskPhysicalResultReqVO reqVO) { + // 首先根据process_id查新到流程ID + Process process = Optional.ofNullable(processService.getById(reqVO.getProcessId())).orElseThrow(() -> new BusinessException("未找到流程ID")); + ConfigPhysicalTool tool = toolService.lambdaQuery().eq(ConfigPhysicalTool::getToolName, reqVO.getToolName()).last("limit 1") + .oneOpt().orElseThrow(() -> new BusinessException("工具不支持")); + // 是否需要具体的部位,0否1是 + String locationId = null; + if (1 == tool.getRequireLocation()){ + ConfigPhysicalLocation location = locationService.lambdaQuery().eq(ConfigPhysicalLocation::getLocationName, reqVO.getLocationName()).last("limit 1") + .oneOpt().orElseThrow(() -> new BusinessException("为找到对应部位")); + locationId = location.getId(); + } + DiseasePhysical result = diseasePhysicalService.lambdaQuery().eq(DiseasePhysical::getPatientId, process.getPatientId()) + .eq(DiseasePhysical::getToolId, tool.getId()).eq(StrUtil.isNotBlank(locationId), DiseasePhysical::getLocationId, locationId).last("limit 1") + .oneOpt() + .orElseGet(() -> { + DiseasePhysical diseasePhysical = new DiseasePhysical(); + diseasePhysical.setResult("无相关资讯"); + return diseasePhysical; + }); + // 检查记录保存到数据库中 + DiagnosisPhysicalRecord diagnosisPhysicalRecord = new DiagnosisPhysicalRecord(); + diagnosisPhysicalRecord.setProcessId(process.getId()); + diagnosisPhysicalRecord.setToolId(tool.getId()); + diagnosisPhysicalRecord.setLocationId(locationId); + diagnosisPhysicalRecord.setResult(result.getResult()); + diagnosisPhysicalRecord.setCreateUserId(UserUtil.getUser().getCreateUserId()); + diagnosisPhysicalRecord.setUpdateUserId(UserUtil.getUser().getCreateUserId()); + diagnosisPhysicalRecord.insert(); + return diagnosisPhysicalRecord; + } +} diff --git a/virtual-patient-web/src/main/java/com/supervision/service/impl/AskProcessServiceImpl.java b/virtual-patient-web/src/main/java/com/supervision/service/impl/AskProcessServiceImpl.java new file mode 100644 index 00000000..22ac913d --- /dev/null +++ b/virtual-patient-web/src/main/java/com/supervision/service/impl/AskProcessServiceImpl.java @@ -0,0 +1,27 @@ +package com.supervision.service.impl; + +import com.supervision.model.Process; +import com.supervision.model.User; +import com.supervision.service.AskProcessService; +import com.supervision.service.ProcessService; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +@Service +@RequiredArgsConstructor +public class AskProcessServiceImpl implements AskProcessService { + + private final ProcessService processService; + + @Override + public Process creatDiagnosisProcess(String patientId, User user) { + Process process = new Process(); + process.setPatientId(patientId); + process.setUserId(user.getId()); + process.setStatus(0); + process.setCreateUserId(user.getId()); + process.setUpdateUserId(user.getId()); + processService.save(process); + return process; + } +} diff --git a/virtual-patient-web/src/main/java/com/supervision/util/UserUtil.java b/virtual-patient-web/src/main/java/com/supervision/util/UserUtil.java new file mode 100644 index 00000000..b730cba1 --- /dev/null +++ b/virtual-patient-web/src/main/java/com/supervision/util/UserUtil.java @@ -0,0 +1,20 @@ +package com.supervision.util; + +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.json.JSONUtil; +import com.supervision.config.ThreadCache; +import com.supervision.domain.UserInfo; +import com.supervision.exception.BusinessException; +import com.supervision.model.User; + +public class UserUtil { + + public static User getUser(){ + String userStr = ThreadCache.USER.get(); + User bean = JSONUtil.toBean(userStr, User.class); + if (ObjectUtil.isEmpty(bean)){ + throw new BusinessException("未获取到用户信息"); + } + return bean; + } +}