From ccdc5cdfb29017354b9b6164ecf2fa46305cef4d Mon Sep 17 00:00:00 2001 From: xueqingkun Date: Wed, 6 Dec 2023 14:00:38 +0800 Subject: [PATCH 1/4] =?UTF-8?q?model=EF=BC=9A1.=20vp=5Fprocess=5Fmedical?= =?UTF-8?q?=20=E6=B7=BB=E5=8A=A0=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/supervision/model/ProcessMedical.java | 38 +++++++++++++++ .../resources/mapper/ProcessMedicalMapper.xml | 47 +++++++++++-------- 2 files changed, 66 insertions(+), 19 deletions(-) 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 d15dd07a..f5e4e420 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 @@ -21,6 +21,11 @@ public class ProcessMedical implements Serializable { @TableId private String id; + /** + * 流程id + */ + private String processId; + /** * 病历ID */ @@ -41,21 +46,44 @@ public class ProcessMedical implements Serializable { */ private String patientSelfDesc; + + /** + * 个人史 + */ + private String personalHistory; + + /** * 现病史 */ private String illnessHistory; + + /** + * 过敏史标识 0:否 1:是 + */ + private String allergyHistoryFlag; + /** * 过敏史 */ private String allergyHistory; + /** + * 既往史标识 0:否 1:是 + */ + private String previousHistoryFlag; + /** * 既往史 */ private String previousHistory; + /** + * 家族史标识 0:否 1:是 + */ + private String familyHistoryFlag; + /** * 家族史 */ @@ -66,6 +94,16 @@ public class ProcessMedical implements Serializable { */ private String marriageChildHistory; + /** + * 手术史标识 0:否 1:是 + */ + private String operationHistoryFlag; + + /** + * 手术史 + */ + private String operationHistory; + /** * 创建人ID */ diff --git a/virtual-patient-model/src/main/resources/mapper/ProcessMedicalMapper.xml b/virtual-patient-model/src/main/resources/mapper/ProcessMedicalMapper.xml index 084634d8..8d47e92e 100644 --- a/virtual-patient-model/src/main/resources/mapper/ProcessMedicalMapper.xml +++ b/virtual-patient-model/src/main/resources/mapper/ProcessMedicalMapper.xml @@ -5,27 +5,36 @@ - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + - id,medical_rec_id,patient_id, - disease_id,patient_self_desc,illness_history, - allergy_history,previous_history,family_history, - marriage_child_history,create_user_id,create_time, - update_user_id,update_time + id,medical_rec_id,process_id, + patient_id,disease_id,patient_self_desc, + illness_history,allergy_history_flag,personal_history, + allergy_history,previous_history,previous_history_flag, + family_history,family_history_flag,marriage_child_history, + operation_history_flag,operation_history,create_user_id, + create_time,update_user_id,update_time From 5c6e30a5fdb0292ab2777c32aca5323117df4c17 Mon Sep 17 00:00:00 2001 From: xueqingkun Date: Wed, 6 Dec 2023 14:50:38 +0800 Subject: [PATCH 2/4] =?UTF-8?q?model=EF=BC=9A1.=20vp=5Fprocess=20=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/supervision/model/Process.java | 5 +++-- .../src/main/resources/mapper/ProcessMapper.xml | 3 ++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/virtual-patient-model/src/main/java/com/supervision/model/Process.java b/virtual-patient-model/src/main/java/com/supervision/model/Process.java index 804ebe1a..3b8d64e5 100644 --- a/virtual-patient-model/src/main/java/com/supervision/model/Process.java +++ b/virtual-patient-model/src/main/java/com/supervision/model/Process.java @@ -1,12 +1,10 @@ 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 java.io.Serializable; import java.time.LocalDateTime; -import java.util.List; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; @@ -38,6 +36,9 @@ public class Process implements Serializable { @ApiModelProperty("疾病ID") private String diseaseId; + @ApiModelProperty("问诊编号") + private String processNo; + /** * 用户ID */ diff --git a/virtual-patient-model/src/main/resources/mapper/ProcessMapper.xml b/virtual-patient-model/src/main/resources/mapper/ProcessMapper.xml index d14ead6b..b6712624 100644 --- a/virtual-patient-model/src/main/resources/mapper/ProcessMapper.xml +++ b/virtual-patient-model/src/main/resources/mapper/ProcessMapper.xml @@ -9,6 +9,7 @@ + @@ -19,7 +20,7 @@ id - ,patient_id,user_id,status,process_type, + ,process_no,patient_id,user_id,status,process_type, create_user_id,create_time,update_user_id,update_time From 3257ac18dfb20ac84a41b0d8184792abee740d5a Mon Sep 17 00:00:00 2001 From: xueqingkun Date: Wed, 6 Dec 2023 15:37:15 +0800 Subject: [PATCH 3/4] =?UTF-8?q?model=EF=BC=9A1.=20MyBatisMetaObjectHandler?= =?UTF-8?q?=20-createTime,updateTime=E5=A2=9E=E5=8A=A0=E9=BB=98=E8=AE=A4?= =?UTF-8?q?=E5=80=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/supervision/config/MyBatisMetaObjectHandler.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/virtual-patient-common/src/main/java/com/supervision/config/MyBatisMetaObjectHandler.java b/virtual-patient-common/src/main/java/com/supervision/config/MyBatisMetaObjectHandler.java index e85b88df..3fe73a4d 100644 --- a/virtual-patient-common/src/main/java/com/supervision/config/MyBatisMetaObjectHandler.java +++ b/virtual-patient-common/src/main/java/com/supervision/config/MyBatisMetaObjectHandler.java @@ -4,7 +4,7 @@ import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler; import org.apache.ibatis.reflection.MetaObject; import org.springframework.stereotype.Component; -import java.util.Date; +import java.time.LocalDateTime; /** * @author ljt on 2022/08/13. @@ -16,13 +16,13 @@ public class MyBatisMetaObjectHandler implements MetaObjectHandler { @Override public void insertFill(MetaObject metaObject) { //属性名称,不是字段名称 - this.setFieldValByName("createTime", new Date(), metaObject); - this.setFieldValByName("updateTime", new Date(), metaObject); + this.setFieldValByName("createTime", LocalDateTime.now(), metaObject); + this.setFieldValByName("updateTime", LocalDateTime.now(), metaObject); } @Override public void updateFill(MetaObject metaObject) { // 使用MP进行修改操作,该方法执行 - this.setFieldValByName("updateTime", new Date(), metaObject); + this.setFieldValByName("updateTime", LocalDateTime.now(), metaObject); } } From 511b8864efdc48177349d741e69d854a22aa177e Mon Sep 17 00:00:00 2001 From: xueqingkun Date: Wed, 6 Dec 2023 15:40:17 +0800 Subject: [PATCH 4/4] =?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,"当前实例已经存在电子病例信息"); + } +}