From 5c2532fd2953ef7fc982c6b837687abe65b9890f Mon Sep 17 00:00:00 2001
From: liu <liujiatong112@163.com>
Date: Thu, 4 Jan 2024 13:50:12 +0800
Subject: [PATCH] =?UTF-8?q?bugfix:=E7=A7=BB=E9=99=A4=E9=83=A8=E5=88=86?=
 =?UTF-8?q?=E7=9A=84patient?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../config/PhysicalToolManageController.java  | 20 ++++++++++++++---
 .../manage/pojo/vo/MedicalRecManageVO.java    |  3 ---
 .../manage/pojo/vo/PhysicalToolReqVO.java     | 20 +++++++++++++++++
 .../service/PhysicalToolManageService.java    |  8 +++++++
 .../impl/MedicalRecManageServiceImpl.java     | 15 ++-----------
 .../impl/PhysicalToolManageServiceImpl.java   | 22 +++++++++++++++++++
 .../com/supervision/model/MedicalRec.java     |  2 +-
 .../vo/manage/MedicalRecPageResVO.java        |  1 -
 .../resources/mapper/MedicalRecMapper.xml     |  5 +----
 .../service/impl/AskPrimaryServiceImpl.java   |  1 +
 10 files changed, 72 insertions(+), 25 deletions(-)
 create mode 100644 virtual-patient-manage/src/main/java/com/supervision/manage/pojo/vo/PhysicalToolReqVO.java

diff --git a/virtual-patient-manage/src/main/java/com/supervision/manage/controller/config/PhysicalToolManageController.java b/virtual-patient-manage/src/main/java/com/supervision/manage/controller/config/PhysicalToolManageController.java
index dc835400..8f648402 100644
--- a/virtual-patient-manage/src/main/java/com/supervision/manage/controller/config/PhysicalToolManageController.java
+++ b/virtual-patient-manage/src/main/java/com/supervision/manage/controller/config/PhysicalToolManageController.java
@@ -1,13 +1,14 @@
 package com.supervision.manage.controller.config;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.supervision.manage.pojo.vo.PhysicalToolReqVO;
 import com.supervision.manage.service.PhysicalToolManageService;
+import com.supervision.model.ConfigPhysicalTool;
 import com.supervision.vo.ask.ConfigPhysicalToolResVO;
 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;
+import org.springframework.web.bind.annotation.*;
 
 import java.util.List;
 
@@ -26,4 +27,17 @@ public class PhysicalToolManageController {
         return physicalToolManageService.queryPhysicalToolList();
     }
 
+    @ApiOperation("体格检查分页查询")
+    @GetMapping("queryPhysicalPage")
+    public IPage<ConfigPhysicalTool> queryConfigPhysicalToolPage(String toolName, String type, Integer requireLocation,
+                                                                 Integer pageNum, Integer pageSize) {
+        return physicalToolManageService.queryConfigPhysicalToolPage(toolName, type, requireLocation, pageNum, pageSize);
+    }
+
+    @ApiOperation("保存体格工具")
+    @PostMapping("saveConfigPhysicalTool")
+    public void saveConfigPhysicalTool(@RequestBody PhysicalToolReqVO physicalToolReqVO){
+        physicalToolManageService.saveConfigPhysicalTool(physicalToolReqVO);
+    }
+
 }
diff --git a/virtual-patient-manage/src/main/java/com/supervision/manage/pojo/vo/MedicalRecManageVO.java b/virtual-patient-manage/src/main/java/com/supervision/manage/pojo/vo/MedicalRecManageVO.java
index 1e6ff70a..fedcb97f 100644
--- a/virtual-patient-manage/src/main/java/com/supervision/manage/pojo/vo/MedicalRecManageVO.java
+++ b/virtual-patient-manage/src/main/java/com/supervision/manage/pojo/vo/MedicalRecManageVO.java
@@ -16,9 +16,6 @@ import java.util.List;
 @ApiModel(value = "病历管理创建及新建", parent = MedicalRec.class)
 public class MedicalRecManageVO extends MedicalRec {
 
-    @ApiModelProperty("step:1 基础信息")
-    private Patient patient;
-
     @NotBlank(message = "疾病不能为空")
     @ApiModelProperty("step:1 疾病ID")
     private String diseaseId;
diff --git a/virtual-patient-manage/src/main/java/com/supervision/manage/pojo/vo/PhysicalToolReqVO.java b/virtual-patient-manage/src/main/java/com/supervision/manage/pojo/vo/PhysicalToolReqVO.java
new file mode 100644
index 00000000..2f2c742a
--- /dev/null
+++ b/virtual-patient-manage/src/main/java/com/supervision/manage/pojo/vo/PhysicalToolReqVO.java
@@ -0,0 +1,20 @@
+package com.supervision.manage.pojo.vo;
+
+import com.supervision.model.ConfigPhysicalTool;
+import com.supervision.model.DefaultPhysicalIndicator;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.List;
+
+@EqualsAndHashCode(callSuper = true)
+@Data
+@ApiModel(parent = ConfigPhysicalTool.class)
+public class PhysicalToolReqVO extends ConfigPhysicalTool {
+
+    private List<DefaultPhysicalIndicator>  defaultPhysicalIndicatorList;
+
+
+}
diff --git a/virtual-patient-manage/src/main/java/com/supervision/manage/service/PhysicalToolManageService.java b/virtual-patient-manage/src/main/java/com/supervision/manage/service/PhysicalToolManageService.java
index b2b5d478..8b86b7ca 100644
--- a/virtual-patient-manage/src/main/java/com/supervision/manage/service/PhysicalToolManageService.java
+++ b/virtual-patient-manage/src/main/java/com/supervision/manage/service/PhysicalToolManageService.java
@@ -1,10 +1,18 @@
 package com.supervision.manage.service;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.supervision.manage.pojo.vo.PhysicalToolReqVO;
+import com.supervision.model.ConfigPhysicalTool;
 import com.supervision.vo.ask.ConfigPhysicalToolResVO;
+import org.springframework.web.bind.annotation.RequestBody;
 
 import java.util.List;
 
 public interface PhysicalToolManageService {
     List<ConfigPhysicalToolResVO> queryPhysicalToolList();
 
+    IPage<ConfigPhysicalTool> queryConfigPhysicalToolPage(String toolName, String type, Integer requireLocation, Integer pageNum, Integer pageSize);
+
+    void saveConfigPhysicalTool(PhysicalToolReqVO physicalToolReqVO);
+
 }
diff --git a/virtual-patient-manage/src/main/java/com/supervision/manage/service/impl/MedicalRecManageServiceImpl.java b/virtual-patient-manage/src/main/java/com/supervision/manage/service/impl/MedicalRecManageServiceImpl.java
index a92c64e4..f350c22b 100644
--- a/virtual-patient-manage/src/main/java/com/supervision/manage/service/impl/MedicalRecManageServiceImpl.java
+++ b/virtual-patient-manage/src/main/java/com/supervision/manage/service/impl/MedicalRecManageServiceImpl.java
@@ -73,16 +73,13 @@ public class MedicalRecManageServiceImpl implements MedicalRecManageService {
     @Override
     @Transactional(rollbackFor = Exception.class)
     public void createMedicalRec(MedicalRecManageVO reqVO) {
-        // 首先新增病人
-        Patient patient = reqVO.getPatient();
-        patient.insert();
+
         // 然后保存病历
         MedicalRec medicalRec = BeanUtil.toBean(reqVO, MedicalRec.class);
-        medicalRec.setPatientId(patient.getId());
         medicalRec.setDiseaseId(reqVO.getDiseaseId());
         medicalRec.insert();
         // 这里生成一个新的编号(首先去数据库里面查询编号,然后用最大的编号+1)(可能存在并发修改导致编码重复问题,不是重点,等有问题再说)
-        medicalRecService.updateMedicalRecNo("QL", "男".equals(patient.getGender()) ? "M" : "F", medicalRec.getId());
+        medicalRecService.updateMedicalRecNo("QL", "男".equals(reqVO.getPatientGender()) ? "M" : "F", medicalRec.getId());
         // 然后保存病历对应的问题
         List<MedicalRecQaVO> qaList = reqVO.getQaList();
         for (MedicalRecQaVO medicalRecQaVO : qaList) {
@@ -149,12 +146,6 @@ public class MedicalRecManageServiceImpl implements MedicalRecManageService {
 
     @Override
     public void modifyMedicalRec(MedicalRecManageVO reqVO) {
-        // 首先修改病人
-        Patient patient = reqVO.getPatient();
-        if (StrUtil.isBlank(patient.getId())){
-            throw new BusinessException("病人ID不能为空");
-        }
-        patient.updateById();
         // 病历不允许修改
         MedicalRec medicalRec = Optional.ofNullable(medicalRecService.getById(reqVO.getId())).orElseThrow(() -> new BusinessException("未找到病历信息"));
         if (!StrUtil.equals(medicalRec.getDiseaseId(), reqVO.getDiseaseId())) {
@@ -193,8 +184,6 @@ public class MedicalRecManageServiceImpl implements MedicalRecManageService {
         MedicalRec medicalRec = Optional.ofNullable(medicalRecService.getById(id)).orElseThrow(() -> new BusinessException("未找到病历"));
         MedicalRecInfoVO medicalRecInfoVO = BeanUtil.toBean(medicalRec, MedicalRecInfoVO.class);
         medicalRecInfoVO.setDiseaseName(diseaseService.getById(medicalRec.getDiseaseId()).getDiseaseName());
-        // 病人基本信息
-        medicalRecInfoVO.setPatient(patientService.getById(medicalRec.getPatientId()));
         // 辅助检查
         medicalRecInfoVO.setAncillaryList(diseaseAncillaryManageService.queryListByDiseaseId(medicalRec.getDiseaseId()));
         // 体格检查
diff --git a/virtual-patient-manage/src/main/java/com/supervision/manage/service/impl/PhysicalToolManageServiceImpl.java b/virtual-patient-manage/src/main/java/com/supervision/manage/service/impl/PhysicalToolManageServiceImpl.java
index 2068b71b..a12a4fcb 100644
--- a/virtual-patient-manage/src/main/java/com/supervision/manage/service/impl/PhysicalToolManageServiceImpl.java
+++ b/virtual-patient-manage/src/main/java/com/supervision/manage/service/impl/PhysicalToolManageServiceImpl.java
@@ -1,6 +1,12 @@
 package com.supervision.manage.service.impl;
 
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.supervision.manage.pojo.vo.PhysicalToolReqVO;
 import com.supervision.manage.service.PhysicalToolManageService;
+import com.supervision.model.ConfigPhysicalTool;
 import com.supervision.service.ConfigPhysicalToolService;
 import com.supervision.vo.ask.ConfigPhysicalToolResVO;
 import lombok.RequiredArgsConstructor;
@@ -15,8 +21,24 @@ import java.util.List;
 public class PhysicalToolManageServiceImpl implements PhysicalToolManageService {
 
     private final ConfigPhysicalToolService configPhysicalToolService;
+
     @Override
     public List<ConfigPhysicalToolResVO> queryPhysicalToolList() {
         return configPhysicalToolService.queryPhysicalToolList();
     }
+
+    @Override
+    public IPage<ConfigPhysicalTool> queryConfigPhysicalToolPage(String toolName, String type, Integer requireLocation,
+                                                       Integer pageNum, Integer pageSize) {
+        return configPhysicalToolService.lambdaQuery().like(StrUtil.isNotBlank(toolName),ConfigPhysicalTool::getToolName,toolName)
+                .eq(StrUtil.isNotBlank(type),ConfigPhysicalTool::getType,type)
+                .eq(ObjectUtil.isNotEmpty(requireLocation),ConfigPhysicalTool::getRequireLocation,requireLocation)
+                .page(new Page<>(pageNum,pageSize));
+    }
+
+
+    @Override
+    public void saveConfigPhysicalTool(PhysicalToolReqVO physicalToolReqVO) {
+
+    }
 }
diff --git a/virtual-patient-model/src/main/java/com/supervision/model/MedicalRec.java b/virtual-patient-model/src/main/java/com/supervision/model/MedicalRec.java
index 0855da6e..2385699b 100644
--- a/virtual-patient-model/src/main/java/com/supervision/model/MedicalRec.java
+++ b/virtual-patient-model/src/main/java/com/supervision/model/MedicalRec.java
@@ -36,7 +36,7 @@ public class MedicalRec extends Model<MedicalRec> implements Serializable {
     private String patientName;
 
     /**
-     * 性别 0:女 1:男
+     * 性别  女 / 男
      */
     private String patientGender;
 
diff --git a/virtual-patient-model/src/main/java/com/supervision/vo/manage/MedicalRecPageResVO.java b/virtual-patient-model/src/main/java/com/supervision/vo/manage/MedicalRecPageResVO.java
index f929ec3b..9b8146b7 100644
--- a/virtual-patient-model/src/main/java/com/supervision/vo/manage/MedicalRecPageResVO.java
+++ b/virtual-patient-model/src/main/java/com/supervision/vo/manage/MedicalRecPageResVO.java
@@ -8,7 +8,6 @@ import java.time.LocalDateTime;
 public class MedicalRecPageResVO {
 
     private String medicalId;
-    private String patientId;
     private String no;
     private String name;
     private Integer age;
diff --git a/virtual-patient-model/src/main/resources/mapper/MedicalRecMapper.xml b/virtual-patient-model/src/main/resources/mapper/MedicalRecMapper.xml
index 8ad19072..97490c0c 100644
--- a/virtual-patient-model/src/main/resources/mapper/MedicalRecMapper.xml
+++ b/virtual-patient-model/src/main/resources/mapper/MedicalRecMapper.xml
@@ -56,25 +56,22 @@
     <select id="queryMedicalRecManagePage" resultType="com.supervision.vo.manage.MedicalRecPageResVO">
         select
         t1.id as medicalId,
-        t2.id as patientId,
         t3.disease_name as diagnosisPrimaryStr,
         t1.no as no,
         t1.patient_id  as patientId,
         t1.patient_name as name,
         t1.patient_age as age,
         t1.patient_gender as gender,
-        t2.resource_id    as resourceId,
         t1.patient_self_desc as patientSelfDesc,
         if(t1.update_time is null, t1.create_time, t1.update_time) as time
         from vp_medical_rec t1
-        left join vp_patient t2 on t1.patient_id = t2.id
         left join vp_disease t3 on t1.disease_id = t3.id
         <where>
             <if test="selfDescKeyword != null and selfDescKeyword != ''">
                 AND t1.patient_self_desc like concat("%",#{selfDescKeyword}, "%")
             </if>
             <if test="gender != null and gender != ''">
-                AND t2.gender = #{gender}
+                AND t1.patient_gender = #{gender}
             </if>
             <if test="diseaseId != null and diseaseId != ''">
                 AND t1.disease_id = #{diseaseId}
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 5300cd20..b45a0024 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
@@ -62,6 +62,7 @@ public class AskPrimaryServiceImpl implements AskPrimaryService {
 
     @Override
     public List<Disease> queryPrimaryCanChooseList() {
+        // 初步诊断列表可选的疾病为单一疾病
         return diseaseService.lambdaQuery().eq(Disease::getDiseaseType, 0).list();
     }