From ce1c2acdfad3b6c967640cf8b226d328ff14fabd Mon Sep 17 00:00:00 2001 From: liu Date: Wed, 6 Dec 2023 15:42:59 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E8=AF=8A=E6=96=AD=E4=BE=9D?= =?UTF-8?q?=E6=8D=AE=E5=88=97=E8=A1=A8,=E5=88=9D=E6=AD=A5=E8=AF=8A?= =?UTF-8?q?=E6=96=AD=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mapper/DiagnosisPrimaryMapper.java | 3 + .../model/DefaultItemIndicator.java | 2 + .../model/DiagnosisAncillaryRecord.java | 7 ++ .../model/DiagnosisPhysicalRecord.java | 6 ++ .../supervision/model/DiagnosisPrimary.java | 4 +- .../supervision/model/DiagnosisQaRecord.java | 6 ++ .../service/DiagnosisPrimaryService.java | 3 + .../impl/DiagnosisPrimaryServiceImpl.java | 6 ++ .../ask/DiagnosticBasisForPrimaryResVO.java | 41 ++++++++++ .../mapper/DiagnosisPrimaryMapper.xml | 49 +++++++++++- .../controller/AskPrimaryController.java | 22 +++++- .../vo/DiagnosticBasisForPrimaryReqVO.java | 20 +++++ .../service/AskPrimaryService.java | 8 ++ .../impl/AskDiagnosisResultServiceImpl.java | 2 +- .../service/impl/AskPrimaryServiceImpl.java | 74 +++++++++++++++++-- 15 files changed, 240 insertions(+), 13 deletions(-) create mode 100644 virtual-patient-model/src/main/java/com/supervision/vo/ask/DiagnosticBasisForPrimaryResVO.java create mode 100644 virtual-patient-web/src/main/java/com/supervision/pojo/vo/DiagnosticBasisForPrimaryReqVO.java diff --git a/virtual-patient-model/src/main/java/com/supervision/mapper/DiagnosisPrimaryMapper.java b/virtual-patient-model/src/main/java/com/supervision/mapper/DiagnosisPrimaryMapper.java index 3149b826..a8e16c5b 100644 --- a/virtual-patient-model/src/main/java/com/supervision/mapper/DiagnosisPrimaryMapper.java +++ b/virtual-patient-model/src/main/java/com/supervision/mapper/DiagnosisPrimaryMapper.java @@ -3,6 +3,7 @@ package com.supervision.mapper; import com.supervision.model.DiagnosisPrimary; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.supervision.vo.ask.DiagnosisPrimaryVO; +import com.supervision.vo.ask.DiagnosticBasisForPrimaryResVO; import org.apache.ibatis.annotations.Param; import java.util.List; @@ -17,6 +18,8 @@ public interface DiagnosisPrimaryMapper extends BaseMapper { List queryAskPrimaryList(@Param("processId") String processId); + List queryDiagnosticBasisListForPrimary(@Param("processId") String processId); + } diff --git a/virtual-patient-model/src/main/java/com/supervision/model/DefaultItemIndicator.java b/virtual-patient-model/src/main/java/com/supervision/model/DefaultItemIndicator.java index d43140df..2d141918 100644 --- a/virtual-patient-model/src/main/java/com/supervision/model/DefaultItemIndicator.java +++ b/virtual-patient-model/src/main/java/com/supervision/model/DefaultItemIndicator.java @@ -8,6 +8,7 @@ import java.io.Serializable; import java.time.LocalDateTime; import lombok.Data; +import org.apache.ibatis.annotations.Insert; /** * 身体检查默认指标表 @@ -60,6 +61,7 @@ public class DefaultItemIndicator implements Serializable { /** * 更新时间 */ + private LocalDateTime updateTime; @TableField(exist = false) 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 245137ef..15d87809 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 @@ -11,6 +11,7 @@ import com.baomidou.mybatisplus.extension.activerecord.Model; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import org.apache.ibatis.annotations.Insert; /** * 辅助检查记录表 @@ -56,6 +57,12 @@ public class DiagnosisAncillaryRecord extends Model im @ApiModelProperty("检查结果") private String result; + @ApiModelProperty("是否是证实诊断依据(0否1是)") + private Integer basisConfirmFlag; + + @ApiModelProperty("是否是鉴别依据(0否1是)") + private Integer basisIdentificationFlag; + /** * 创建人ID */ 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 45fbb954..53457328 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 @@ -62,6 +62,12 @@ public class DiagnosisPhysicalRecord extends Model impl @ApiModelProperty("体格检查结果") private String result; + @ApiModelProperty("是否是证实诊断依据(0否1是)") + private Integer basisConfirmFlag; + + @ApiModelProperty("是否是鉴别依据(0否1是)") + private Integer basisIdentificationFlag; + /** * 创建人ID */ diff --git a/virtual-patient-model/src/main/java/com/supervision/model/DiagnosisPrimary.java b/virtual-patient-model/src/main/java/com/supervision/model/DiagnosisPrimary.java index dcb981cf..1a119093 100644 --- a/virtual-patient-model/src/main/java/com/supervision/model/DiagnosisPrimary.java +++ b/virtual-patient-model/src/main/java/com/supervision/model/DiagnosisPrimary.java @@ -41,8 +41,8 @@ public class DiagnosisPrimary implements Serializable { @TableField(exist = false) private String primaryDiagnosisName; - @ApiModelProperty("是否删除(0否1是)如删除,仅页面不显示") - private Integer deleteFlag; + @ApiModelProperty("是否排除(0否1是)") + private Integer excludeFlag; @ApiModelProperty("患者病情(初步诊断填写)") private String patientDiseaseInfo; diff --git a/virtual-patient-model/src/main/java/com/supervision/model/DiagnosisQaRecord.java b/virtual-patient-model/src/main/java/com/supervision/model/DiagnosisQaRecord.java index 7d6d316e..457b0ac1 100644 --- a/virtual-patient-model/src/main/java/com/supervision/model/DiagnosisQaRecord.java +++ b/virtual-patient-model/src/main/java/com/supervision/model/DiagnosisQaRecord.java @@ -67,6 +67,12 @@ public class DiagnosisQaRecord extends Model implements Seria @ApiModelProperty("回答语音文件ID") private String answerWavId; + @ApiModelProperty("是否是证实诊断依据(0否1是)") + private Integer basisConfirmFlag; + + @ApiModelProperty("是否是鉴别依据(0否1是)") + private Integer basisIdentificationFlag; + /** * 创建人ID */ diff --git a/virtual-patient-model/src/main/java/com/supervision/service/DiagnosisPrimaryService.java b/virtual-patient-model/src/main/java/com/supervision/service/DiagnosisPrimaryService.java index 31c71fb0..6b06d793 100644 --- a/virtual-patient-model/src/main/java/com/supervision/service/DiagnosisPrimaryService.java +++ b/virtual-patient-model/src/main/java/com/supervision/service/DiagnosisPrimaryService.java @@ -3,6 +3,7 @@ package com.supervision.service; import com.supervision.model.DiagnosisPrimary; import com.baomidou.mybatisplus.extension.service.IService; import com.supervision.vo.ask.DiagnosisPrimaryVO; +import com.supervision.vo.ask.DiagnosticBasisForPrimaryResVO; import java.util.List; @@ -15,4 +16,6 @@ public interface DiagnosisPrimaryService extends IService { List queryAskPrimaryList(String processId); + List queryDiagnosticBasisListForPrimary(String processId); + } diff --git a/virtual-patient-model/src/main/java/com/supervision/service/impl/DiagnosisPrimaryServiceImpl.java b/virtual-patient-model/src/main/java/com/supervision/service/impl/DiagnosisPrimaryServiceImpl.java index 3603ed3d..7fe80bbe 100644 --- a/virtual-patient-model/src/main/java/com/supervision/service/impl/DiagnosisPrimaryServiceImpl.java +++ b/virtual-patient-model/src/main/java/com/supervision/service/impl/DiagnosisPrimaryServiceImpl.java @@ -5,6 +5,7 @@ import com.supervision.model.DiagnosisPrimary; import com.supervision.service.DiagnosisPrimaryService; import com.supervision.mapper.DiagnosisPrimaryMapper; import com.supervision.vo.ask.DiagnosisPrimaryVO; +import com.supervision.vo.ask.DiagnosticBasisForPrimaryResVO; import org.springframework.stereotype.Service; import java.util.List; @@ -22,6 +23,11 @@ public class DiagnosisPrimaryServiceImpl extends ServiceImpl queryAskPrimaryList(String processId) { return this.baseMapper.queryAskPrimaryList(processId); } + + @Override + public List queryDiagnosticBasisListForPrimary(String processId) { + return this.baseMapper.queryDiagnosticBasisListForPrimary(processId); + } } diff --git a/virtual-patient-model/src/main/java/com/supervision/vo/ask/DiagnosticBasisForPrimaryResVO.java b/virtual-patient-model/src/main/java/com/supervision/vo/ask/DiagnosticBasisForPrimaryResVO.java new file mode 100644 index 00000000..a1f6c965 --- /dev/null +++ b/virtual-patient-model/src/main/java/com/supervision/vo/ask/DiagnosticBasisForPrimaryResVO.java @@ -0,0 +1,41 @@ +package com.supervision.vo.ask; + +import io.swagger.annotations.ApiModelProperty; +import io.swagger.annotations.ApiOperation; +import lombok.Data; + +import java.util.List; + +@Data +public class DiagnosticBasisForPrimaryResVO { + + @ApiModelProperty("本项ID") + private String id; + + @ApiModelProperty("阶段,1问诊 2体格检查 3辅助检查") + private Integer type; + + @ApiModelProperty("身体部位") + private String locationName; + + @ApiModelProperty("检查类目") + private String category; + + @ApiModelProperty("问诊项目") + private String item; + + @ApiModelProperty("初步诊断名称") + private String primaryName; + + @ApiModelProperty("初步诊断ID") + private String primaryId; + + @ApiModelProperty("是否是证实诊断依据(0否1是)") + private Integer basisConfirmFlag; + + @ApiModelProperty("是否是鉴别依据(0否1是)") + private Integer basisIdentificationFlag; + + + +} diff --git a/virtual-patient-model/src/main/resources/mapper/DiagnosisPrimaryMapper.xml b/virtual-patient-model/src/main/resources/mapper/DiagnosisPrimaryMapper.xml index 86ef2b1d..c4d1c729 100644 --- a/virtual-patient-model/src/main/resources/mapper/DiagnosisPrimaryMapper.xml +++ b/virtual-patient-model/src/main/resources/mapper/DiagnosisPrimaryMapper.xml @@ -9,6 +9,7 @@ + @@ -25,11 +26,57 @@ + diff --git a/virtual-patient-web/src/main/java/com/supervision/controller/AskPrimaryController.java b/virtual-patient-web/src/main/java/com/supervision/controller/AskPrimaryController.java index 19d8ba12..e6176cee 100644 --- a/virtual-patient-web/src/main/java/com/supervision/controller/AskPrimaryController.java +++ b/virtual-patient-web/src/main/java/com/supervision/controller/AskPrimaryController.java @@ -3,6 +3,8 @@ package com.supervision.controller; import com.supervision.model.DiagnosisPrimary; import com.supervision.model.Disease; +import com.supervision.pojo.vo.DiagnosticBasisForPrimaryReqVO; +import com.supervision.vo.ask.DiagnosticBasisForPrimaryResVO; import com.supervision.service.AskPrimaryService; import com.supervision.vo.ask.DiagnosisPrimaryVO; import com.supervision.vo.ask.ModifyPrimaryDiseaseInfoReqVO; @@ -39,15 +41,33 @@ public class AskPrimaryController { askPrimaryService.modifyPrimaryDiseaseInfo(reqVO); } - @ApiOperation("保存初步诊断") + @ApiOperation("新增初步诊断") @PostMapping("savePrimary") public void savePrimary(@RequestBody DiagnosisPrimary reqVO){ askPrimaryService.savePrimary(reqVO); } + @ApiOperation("确认诊断时,修改初步诊断的信息") + @PostMapping("updatePrimaryByConfirm") + public void updatePrimaryByConfirm(@RequestBody DiagnosisPrimary reqVO){ + askPrimaryService.updatePrimaryByConfirm(reqVO); + } + @ApiOperation("删除初步诊断") @GetMapping("deletePrimary") public void deletePrimary(String id){ askPrimaryService.deletePrimary(id); } + + @ApiOperation("查询初步诊断需要填写的诊断依据") + @GetMapping("queryDiagnosticBasisListForPrimary") + public List queryDiagnosticBasisListForPrimary(String processId){ + return askPrimaryService.queryDiagnosticBasisListForPrimary(processId); + } + + @ApiOperation("保存诊断依据") + @PostMapping("saveDiagnosticBasis") + public void saveDiagnosticBasis(@RequestBody List reqVO){ + askPrimaryService.saveDiagnosticBasis(reqVO); + } } diff --git a/virtual-patient-web/src/main/java/com/supervision/pojo/vo/DiagnosticBasisForPrimaryReqVO.java b/virtual-patient-web/src/main/java/com/supervision/pojo/vo/DiagnosticBasisForPrimaryReqVO.java new file mode 100644 index 00000000..88fc4a79 --- /dev/null +++ b/virtual-patient-web/src/main/java/com/supervision/pojo/vo/DiagnosticBasisForPrimaryReqVO.java @@ -0,0 +1,20 @@ +package com.supervision.pojo.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class DiagnosticBasisForPrimaryReqVO { + + @ApiModelProperty("本项ID") + private String id; + + @ApiModelProperty("阶段,1问诊 2体格检查 3辅助检查") + private Integer type; + + @ApiModelProperty("是否是证实诊断依据(0否1是)") + private Integer basisConfirmFlag; + + @ApiModelProperty("是否是鉴别依据(0否1是)") + private Integer basisIdentificationFlag; +} diff --git a/virtual-patient-web/src/main/java/com/supervision/service/AskPrimaryService.java b/virtual-patient-web/src/main/java/com/supervision/service/AskPrimaryService.java index 809124f8..85487eed 100644 --- a/virtual-patient-web/src/main/java/com/supervision/service/AskPrimaryService.java +++ b/virtual-patient-web/src/main/java/com/supervision/service/AskPrimaryService.java @@ -2,6 +2,8 @@ package com.supervision.service; import com.supervision.model.DiagnosisPrimary; import com.supervision.model.Disease; +import com.supervision.pojo.vo.DiagnosticBasisForPrimaryReqVO; +import com.supervision.vo.ask.DiagnosticBasisForPrimaryResVO; import com.supervision.vo.ask.DiagnosisPrimaryVO; import com.supervision.vo.ask.ModifyPrimaryDiseaseInfoReqVO; import org.springframework.web.bind.annotation.RequestBody; @@ -18,5 +20,11 @@ public interface AskPrimaryService { void savePrimary(DiagnosisPrimary reqVO); + void updatePrimaryByConfirm(DiagnosisPrimary reqVO); + void deletePrimary(String id); + + List queryDiagnosticBasisListForPrimary(String processId); + + void saveDiagnosticBasis(List reqVO); } diff --git a/virtual-patient-web/src/main/java/com/supervision/service/impl/AskDiagnosisResultServiceImpl.java b/virtual-patient-web/src/main/java/com/supervision/service/impl/AskDiagnosisResultServiceImpl.java index f41183dd..2054a5bf 100644 --- a/virtual-patient-web/src/main/java/com/supervision/service/impl/AskDiagnosisResultServiceImpl.java +++ b/virtual-patient-web/src/main/java/com/supervision/service/impl/AskDiagnosisResultServiceImpl.java @@ -54,7 +54,7 @@ public class AskDiagnosisResultServiceImpl implements AskDiagnosisResultService // 最终诊断结果,从初步诊断中获取 List list = diagnosisPrimaryService.lambdaQuery() .eq(DiagnosisPrimary::getProcessId, reqVO.getProcessId()) - .eq(DiagnosisPrimary::getDeleteFlag, 0) + .eq(DiagnosisPrimary::getExcludeFlag,0) .list(); if (CollectionUtil.isEmpty(list)){ throw new BusinessException("您还未进行有效的初步诊断!"); diff --git a/virtual-patient-web/src/main/java/com/supervision/service/impl/AskPrimaryServiceImpl.java b/virtual-patient-web/src/main/java/com/supervision/service/impl/AskPrimaryServiceImpl.java index 37dd2693..b75635b6 100644 --- a/virtual-patient-web/src/main/java/com/supervision/service/impl/AskPrimaryServiceImpl.java +++ b/virtual-patient-web/src/main/java/com/supervision/service/impl/AskPrimaryServiceImpl.java @@ -1,10 +1,10 @@ package com.supervision.service.impl; -import com.supervision.model.DiagnosisPrimary; -import com.supervision.model.Disease; -import com.supervision.service.AskPrimaryService; -import com.supervision.service.DiagnosisPrimaryService; -import com.supervision.service.DiseaseService; +import com.supervision.exception.BusinessException; +import com.supervision.model.*; +import com.supervision.pojo.vo.DiagnosticBasisForPrimaryReqVO; +import com.supervision.vo.ask.DiagnosticBasisForPrimaryResVO; +import com.supervision.service.*; import com.supervision.util.UserUtil; import com.supervision.vo.ask.DiagnosisPrimaryVO; import com.supervision.vo.ask.ModifyPrimaryDiseaseInfoReqVO; @@ -22,6 +22,12 @@ public class AskPrimaryServiceImpl implements AskPrimaryService { private final DiseaseService diseaseService; + private final DiagnosisAncillaryRecordService diagnosisAncillaryRecordService; + + private final DiagnosisPhysicalRecordService diagnosisPhysicalRecordService; + + private final DiagnosisQaRecordService diagnosisQaRecordService; + @Override public List queryAskPrimaryList(String processId) { return diagnosisPrimaryService.queryAskPrimaryList(processId); @@ -34,19 +40,71 @@ public class AskPrimaryServiceImpl implements AskPrimaryService { @Override public void modifyPrimaryDiseaseInfo(ModifyPrimaryDiseaseInfoReqVO reqVO) { - diagnosisPrimaryService.lambdaUpdate().set(DiagnosisPrimary::getPatientDiseaseInfo,reqVO.getPatientDiseaseInfo()) - .eq(DiagnosisPrimary::getId,reqVO.getId()).update(); + diagnosisPrimaryService.lambdaUpdate().set(DiagnosisPrimary::getPatientDiseaseInfo, reqVO.getPatientDiseaseInfo()) + .eq(DiagnosisPrimary::getId, reqVO.getId()).update(); } @Override @Transactional(rollbackFor = Exception.class) public void savePrimary(DiagnosisPrimary reqVO) { + reqVO.setExcludeFlag(null); reqVO.setCreateUserId(UserUtil.getUser().getId()); diagnosisPrimaryService.save(reqVO); } + @Override + public void updatePrimaryByConfirm(DiagnosisPrimary reqVO) { + diagnosisPrimaryService.lambdaUpdate().set(DiagnosisPrimary::getExcludeFlag,reqVO.getExcludeFlag()) + .set(DiagnosisPrimary::getPatientDiseaseInfo,reqVO.getPatientDiseaseInfo()) + .eq(DiagnosisPrimary::getId,reqVO.getId()).update(); + } + @Override public void deletePrimary(String id) { - diagnosisPrimaryService.lambdaUpdate().set(DiagnosisPrimary::getDeleteFlag,1).eq(DiagnosisPrimary::getId,id).update(); + // 如果本项初步诊断已经做过了辅助检查和体格检查,则不允许删除 + DiagnosisPrimary primary = diagnosisPrimaryService.getById(id); + Integer ancillaryCount = diagnosisAncillaryRecordService.lambdaQuery().eq(DiagnosisAncillaryRecord::getProcessId, primary.getProcessId()).count(); + if (ancillaryCount > 0) { + throw new BusinessException("仅支持删除没有做过体格、辅助检查的初步诊断项目"); + } + Integer physicalCount = diagnosisPhysicalRecordService.lambdaQuery().eq(DiagnosisPhysicalRecord::getProcessId, primary.getProcessId()).count(); + if (physicalCount > 0) { + throw new BusinessException("仅支持删除没有做过体格、辅助检查的初步诊断项目"); + } + diagnosisPrimaryService.lambdaUpdate().eq(DiagnosisPrimary::getId, id).remove(); + } + + /** + * 确诊页面,初步诊断填写初步诊断依据 + * @param processId 流程ID + * @return 结果 + */ + @Override + public List queryDiagnosticBasisListForPrimary(String processId) { + return diagnosisPrimaryService.queryDiagnosticBasisListForPrimary(processId); + } + + @Override + public void saveDiagnosticBasis(List reqVO) { + for (DiagnosticBasisForPrimaryReqVO node : reqVO) { + if (1 == node.getType()){ + diagnosisQaRecordService.lambdaUpdate().set(DiagnosisQaRecord::getBasisConfirmFlag,node.getBasisConfirmFlag()) + .set(DiagnosisQaRecord::getBasisIdentificationFlag,node.getBasisIdentificationFlag()) + .eq(DiagnosisQaRecord::getId,node.getId()).update(); + continue; + } + if (2 == node.getType()){ + diagnosisPhysicalRecordService.lambdaUpdate().set(DiagnosisPhysicalRecord::getBasisConfirmFlag,node.getBasisConfirmFlag()) + .set(DiagnosisPhysicalRecord::getBasisIdentificationFlag,node.getBasisIdentificationFlag()) + .eq(DiagnosisPhysicalRecord::getId,node.getId()).update(); + continue; + } + if (3 == node.getType()){ + diagnosisAncillaryRecordService.lambdaUpdate().set(DiagnosisAncillaryRecord::getBasisConfirmFlag,node.getBasisConfirmFlag()) + .set(DiagnosisAncillaryRecord::getBasisIdentificationFlag,node.getBasisIdentificationFlag()) + .eq(DiagnosisAncillaryRecord::getId,node.getId()).update(); + } + + } } }