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); } } 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/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/java/com/supervision/model/ProcessMedical.java b/virtual-patient-model/src/main/java/com/supervision/model/ProcessMedical.java index d15dd07a..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; @@ -21,6 +19,11 @@ public class ProcessMedical implements Serializable { @TableId private String id; + /** + * 流程id + */ + private String processId; + /** * 病历ID */ @@ -41,21 +44,44 @@ public class ProcessMedical implements Serializable { */ private String patientSelfDesc; + + /** + * 个人史 + */ + private String personalHistory; + + /** * 现病史 */ private String illnessHistory; + + /** + * 过敏史标识 0:否 1:是 + */ + private Integer allergyHistoryFlag; + /** * 过敏史 */ private String allergyHistory; + /** + * 既往史标识 0:否 1:是 + */ + private Integer previousHistoryFlag; + /** * 既往史 */ private String previousHistory; + /** + * 家族史标识 0:否 1:是 + */ + private Integer familyHistoryFlag; + /** * 家族史 */ @@ -66,6 +92,16 @@ public class ProcessMedical implements Serializable { */ private String marriageChildHistory; + /** + * 手术史标识 0:否 1:是 + */ + private Integer operationHistoryFlag; + + /** + * 手术史 + */ + private String operationHistory; + /** * 创建人ID */ @@ -84,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/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 diff --git a/virtual-patient-model/src/main/resources/mapper/ProcessMedicalMapper.xml b/virtual-patient-model/src/main/resources/mapper/ProcessMedicalMapper.xml index 084634d8..eae30564 100644 --- a/virtual-patient-model/src/main/resources/mapper/ProcessMedicalMapper.xml +++ b/virtual-patient-model/src/main/resources/mapper/ProcessMedicalMapper.xml @@ -5,27 +5,66 @@ - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + - 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 + 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,"当前实例已经存在电子病例信息"); + } +}