From 511b8864efdc48177349d741e69d854a22aa177e Mon Sep 17 00:00:00 2001 From: xueqingkun Date: Wed, 6 Dec 2023 15:40:17 +0800 Subject: [PATCH] =?UTF-8?q?web=EF=BC=9A=20=E6=B7=BB=E5=8A=A0=E7=94=B5?= =?UTF-8?q?=E5=AD=90=E7=97=85=E4=BE=8B=E7=9B=B8=E5=85=B3=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mapper/ProcessMedicalMapper.java | 3 + .../com/supervision/model/ProcessMedical.java | 15 ++-- .../service/ProcessMedicalService.java | 2 + .../impl/ProcessMedicalServiceImpl.java | 6 ++ .../vo/ask/ProcessMedicalResVo.java | 84 +++++++++++++++++++ .../resources/mapper/ProcessMedicalMapper.xml | 34 +++++++- .../controller/MedicalRecordController.java | 48 +++++++++++ .../service/MedicalRecordService.java | 15 ++++ .../impl/MedicalRecordServiceImpl.java | 56 +++++++++++++ 9 files changed, 253 insertions(+), 10 deletions(-) create mode 100644 virtual-patient-model/src/main/java/com/supervision/vo/ask/ProcessMedicalResVo.java create mode 100644 virtual-patient-web/src/main/java/com/supervision/controller/MedicalRecordController.java create mode 100644 virtual-patient-web/src/main/java/com/supervision/service/MedicalRecordService.java create mode 100644 virtual-patient-web/src/main/java/com/supervision/service/impl/MedicalRecordServiceImpl.java diff --git a/virtual-patient-model/src/main/java/com/supervision/mapper/ProcessMedicalMapper.java b/virtual-patient-model/src/main/java/com/supervision/mapper/ProcessMedicalMapper.java index a547c60d..65c97576 100644 --- a/virtual-patient-model/src/main/java/com/supervision/mapper/ProcessMedicalMapper.java +++ b/virtual-patient-model/src/main/java/com/supervision/mapper/ProcessMedicalMapper.java @@ -2,6 +2,8 @@ package com.supervision.mapper; import com.supervision.model.ProcessMedical; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.supervision.vo.ask.ProcessMedicalResVo; +import org.apache.ibatis.annotations.Param; /** * @author flevance @@ -11,6 +13,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; */ public interface ProcessMedicalMapper extends BaseMapper { + ProcessMedicalResVo findByProcessId(@Param("processId") String processId); } diff --git a/virtual-patient-model/src/main/java/com/supervision/model/ProcessMedical.java b/virtual-patient-model/src/main/java/com/supervision/model/ProcessMedical.java index f5e4e420..f7a65cc2 100644 --- a/virtual-patient-model/src/main/java/com/supervision/model/ProcessMedical.java +++ b/virtual-patient-model/src/main/java/com/supervision/model/ProcessMedical.java @@ -1,9 +1,7 @@ package com.supervision.model; -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableField; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.*; + import java.io.Serializable; import java.time.LocalDateTime; import lombok.Data; @@ -62,7 +60,7 @@ public class ProcessMedical implements Serializable { /** * 过敏史标识 0:否 1:是 */ - private String allergyHistoryFlag; + private Integer allergyHistoryFlag; /** * 过敏史 @@ -72,7 +70,7 @@ public class ProcessMedical implements Serializable { /** * 既往史标识 0:否 1:是 */ - private String previousHistoryFlag; + private Integer previousHistoryFlag; /** * 既往史 @@ -82,7 +80,7 @@ public class ProcessMedical implements Serializable { /** * 家族史标识 0:否 1:是 */ - private String familyHistoryFlag; + private Integer familyHistoryFlag; /** * 家族史 @@ -97,7 +95,7 @@ public class ProcessMedical implements Serializable { /** * 手术史标识 0:否 1:是 */ - private String operationHistoryFlag; + private Integer operationHistoryFlag; /** * 手术史 @@ -122,6 +120,7 @@ public class ProcessMedical implements Serializable { /** * 更新时间 */ + @TableField(fill = FieldFill.INSERT) private LocalDateTime updateTime; @TableField(exist = false) diff --git a/virtual-patient-model/src/main/java/com/supervision/service/ProcessMedicalService.java b/virtual-patient-model/src/main/java/com/supervision/service/ProcessMedicalService.java index 93802306..5c45229c 100644 --- a/virtual-patient-model/src/main/java/com/supervision/service/ProcessMedicalService.java +++ b/virtual-patient-model/src/main/java/com/supervision/service/ProcessMedicalService.java @@ -2,6 +2,7 @@ package com.supervision.service; import com.supervision.model.ProcessMedical; import com.baomidou.mybatisplus.extension.service.IService; +import com.supervision.vo.ask.ProcessMedicalResVo; /** * @author flevance @@ -10,4 +11,5 @@ import com.baomidou.mybatisplus.extension.service.IService; */ public interface ProcessMedicalService extends IService { + ProcessMedicalResVo findByProcessId(String processId); } diff --git a/virtual-patient-model/src/main/java/com/supervision/service/impl/ProcessMedicalServiceImpl.java b/virtual-patient-model/src/main/java/com/supervision/service/impl/ProcessMedicalServiceImpl.java index b369c6aa..6e74b2f9 100644 --- a/virtual-patient-model/src/main/java/com/supervision/service/impl/ProcessMedicalServiceImpl.java +++ b/virtual-patient-model/src/main/java/com/supervision/service/impl/ProcessMedicalServiceImpl.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.supervision.model.ProcessMedical; import com.supervision.service.ProcessMedicalService; import com.supervision.mapper.ProcessMedicalMapper; +import com.supervision.vo.ask.ProcessMedicalResVo; import org.springframework.stereotype.Service; /** @@ -15,6 +16,11 @@ import org.springframework.stereotype.Service; public class ProcessMedicalServiceImpl extends ServiceImpl implements ProcessMedicalService{ + @Override + public ProcessMedicalResVo findByProcessId(String processId) { + + return super.getBaseMapper().findByProcessId(processId); + } } diff --git a/virtual-patient-model/src/main/java/com/supervision/vo/ask/ProcessMedicalResVo.java b/virtual-patient-model/src/main/java/com/supervision/vo/ask/ProcessMedicalResVo.java new file mode 100644 index 00000000..48278419 --- /dev/null +++ b/virtual-patient-model/src/main/java/com/supervision/vo/ask/ProcessMedicalResVo.java @@ -0,0 +1,84 @@ +package com.supervision.vo.ask; + +import com.supervision.model.ProcessMedical; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.time.LocalDateTime; + +@Data +@EqualsAndHashCode(callSuper = true) +public class ProcessMedicalResVo extends ProcessMedical { + + /** + * 问诊编号 + */ + private String processNo; + + /** + * 病例编号 + */ + private String medicalRecNo; + + /** + * 最近问诊时间 + */ + private LocalDateTime recentTime; + + /** + * 姓名 + */ + private String patientName; + + /** + * 性别 0:女 1:男 + */ + private String patientGender; + + /** + * 年龄 + */ + private Integer patientAge; + + /** + * 婚姻状况 0:未婚 1:已婚 + */ + private String patientMarriage; + + /** + * 职业 + */ + private String patientProfession; + + /** + * 电话 + */ + private String patientPhone; + + /** + * 籍贯 + */ + private String nativePlace; + + /** + * 民族 + */ + private String patientNation; + + /** + * 邮编 + */ + private String patientPostcode; + + /** + * 出生地 + */ + private String patientBirthplace; + + /** + * 现居住地址 + */ + private String patientHabitation; + + +} diff --git a/virtual-patient-model/src/main/resources/mapper/ProcessMedicalMapper.xml b/virtual-patient-model/src/main/resources/mapper/ProcessMedicalMapper.xml index 8d47e92e..eae30564 100644 --- a/virtual-patient-model/src/main/resources/mapper/ProcessMedicalMapper.xml +++ b/virtual-patient-model/src/main/resources/mapper/ProcessMedicalMapper.xml @@ -12,7 +12,7 @@ - + @@ -20,7 +20,7 @@ - + @@ -37,4 +37,34 @@ operation_history_flag,operation_history,create_user_id, create_time,update_user_id,update_time + diff --git a/virtual-patient-web/src/main/java/com/supervision/controller/MedicalRecordController.java b/virtual-patient-web/src/main/java/com/supervision/controller/MedicalRecordController.java new file mode 100644 index 00000000..6b1bf4e7 --- /dev/null +++ b/virtual-patient-web/src/main/java/com/supervision/controller/MedicalRecordController.java @@ -0,0 +1,48 @@ +package com.supervision.controller; + +import cn.hutool.core.util.StrUtil; +import com.supervision.exception.BusinessException; +import com.supervision.model.DiagnosisQaRecord; +import com.supervision.model.ProcessMedical; +import com.supervision.service.MedicalRecordService; +import com.supervision.vo.ask.ProcessMedicalResVo; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiModelProperty; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +@Slf4j +@Api(tags = "电子病例") +@RestController +@RequestMapping("medicalRecord") +@RequiredArgsConstructor +public class MedicalRecordController { + + private final MedicalRecordService medicalRecordService; + + @ApiOperation("新增电子病例信息") + @PostMapping("save") + public boolean saveMedicalRecord(@RequestBody ProcessMedical processMedical){ + + return medicalRecordService.saveMedicalRecord(processMedical); + } + + @ApiOperation("更新电子病例信息") + @PutMapping("update") + public boolean updateMedicalRecord(@RequestBody ProcessMedical processMedical){ + + return medicalRecordService.updateMedicalRecord(processMedical); + } + + @ApiOperation("通过流程id查询电子病例信息") + @GetMapping("findByProcessId") + public ProcessMedicalResVo findByProcessId(@ApiParam("流程id") @RequestParam("processId") String processId){ + + return medicalRecordService.findByProcessId(processId); + } +} diff --git a/virtual-patient-web/src/main/java/com/supervision/service/MedicalRecordService.java b/virtual-patient-web/src/main/java/com/supervision/service/MedicalRecordService.java new file mode 100644 index 00000000..388eb0e7 --- /dev/null +++ b/virtual-patient-web/src/main/java/com/supervision/service/MedicalRecordService.java @@ -0,0 +1,15 @@ +package com.supervision.service; + +import com.supervision.model.DiagnosisQaRecord; +import com.supervision.model.ProcessMedical; +import com.supervision.vo.ask.ProcessMedicalResVo; + +import java.util.List; + +public interface MedicalRecordService { + boolean saveMedicalRecord(ProcessMedical processMedical); + + ProcessMedicalResVo findByProcessId(String processId); + + boolean updateMedicalRecord(ProcessMedical processMedical); +} diff --git a/virtual-patient-web/src/main/java/com/supervision/service/impl/MedicalRecordServiceImpl.java b/virtual-patient-web/src/main/java/com/supervision/service/impl/MedicalRecordServiceImpl.java new file mode 100644 index 00000000..806a59d8 --- /dev/null +++ b/virtual-patient-web/src/main/java/com/supervision/service/impl/MedicalRecordServiceImpl.java @@ -0,0 +1,56 @@ +package com.supervision.service.impl; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; +import com.supervision.model.ProcessMedical; +import com.supervision.service.MedicalRecordService; +import com.supervision.service.ProcessMedicalService; +import com.supervision.service.ProcessService; +import com.supervision.vo.ask.ProcessMedicalResVo; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import java.util.List; + + +@Service +@RequiredArgsConstructor +@Slf4j +public class MedicalRecordServiceImpl implements MedicalRecordService { + + private final ProcessMedicalService processMedicalService; + @Override + public boolean saveMedicalRecord(ProcessMedical processMedical) { + + saveAssert(processMedical); + + return processMedicalService.save(processMedical); + } + + @Override + public ProcessMedicalResVo findByProcessId(String processId) { + + Assert.notEmpty(processId,"流程id不允许为空"); + + return processMedicalService.findByProcessId(processId); + } + + @Override + public boolean updateMedicalRecord(ProcessMedical processMedical) { + + Assert.notEmpty(processMedical.getId(),"id 不能为空"); + + return processMedicalService.updateById(processMedical); + } + + private void saveAssert(ProcessMedical processMedical){ + Assert.notEmpty(processMedical.getProcessId(),"流程id不为空"); + Assert.notEmpty(processMedical.getMedicalRecId(),"病例id不能为空"); + Assert.notEmpty(processMedical.getPatientId(),"病人id不能为空"); + + Integer count = processMedicalService.lambdaQuery().eq(ProcessMedical::getProcessId, processMedical.getProcessId()).count(); + Assert.isFalse(count > 0,"当前实例已经存在电子病例信息"); + } +}