From 0040d95c99c64406619c4627444a74821032d690 Mon Sep 17 00:00:00 2001
From: xueqingkun <xueqingkun@126.com>
Date: Wed, 19 Jun 2024 10:16:09 +0800
Subject: [PATCH] =?UTF-8?q?1:=20=E7=94=B0=E9=97=B4=20=E6=A0=B9=E6=8D=AE?=
 =?UTF-8?q?=E7=97=85=E5=8E=86id=E6=9F=A5=E8=AF=A2=E7=96=BE=E7=97=85?=
 =?UTF-8?q?=E6=9F=A5=E7=9C=8B=E9=85=8D=E7=BD=AE=E7=9A=84=E4=BD=93=E6=A0=BC?=
 =?UTF-8?q?=E6=A3=80=E6=9F=A5=E9=A1=B9=E5=88=97=E8=A1=A8=20=E6=8E=A5?=
 =?UTF-8?q?=E5=8F=A3?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../DiseasePhysicalManageController.java      |  2 +-
 .../MedicalRecManageController.java           |  6 +++++
 .../service/DiseasePhysicalManageService.java |  2 +-
 .../service/MedicalRecManageService.java      |  2 ++
 .../DiseasePhysicalManageServiceImpl.java     |  7 ++---
 .../impl/MedicalRecManageServiceImpl.java     | 27 ++++++++++++++-----
 .../mapper/DiseasePhysicalMapper.java         |  2 +-
 .../service/DiseasePhysicalService.java       |  2 +-
 .../impl/DiseasePhysicalServiceImpl.java      |  4 +--
 .../mapper/DiseasePhysicalMapper.xml          |  6 ++++-
 .../impl/AskDiagnosisResultServiceImpl.java   |  6 ++---
 11 files changed, 47 insertions(+), 19 deletions(-)

diff --git a/virtual-patient-manage/src/main/java/com/supervision/manage/controller/diseasemanage/DiseasePhysicalManageController.java b/virtual-patient-manage/src/main/java/com/supervision/manage/controller/diseasemanage/DiseasePhysicalManageController.java
index a0723a4d..c800ed52 100644
--- a/virtual-patient-manage/src/main/java/com/supervision/manage/controller/diseasemanage/DiseasePhysicalManageController.java
+++ b/virtual-patient-manage/src/main/java/com/supervision/manage/controller/diseasemanage/DiseasePhysicalManageController.java
@@ -52,7 +52,7 @@ public class DiseasePhysicalManageController {
     @GetMapping("/queryListByDiseaseId")
     public List<DiseasePhysicalResVo> queryListByDiseaseId(@RequestParam("diseaseId") String diseaseId) {
 
-        return diseasePhysicalManageService.queryListByDiseaseId(diseaseId);
+        return diseasePhysicalManageService.queryListByDiseaseId(diseaseId,0);
 
     }
 
diff --git a/virtual-patient-manage/src/main/java/com/supervision/manage/controller/medicalrec/MedicalRecManageController.java b/virtual-patient-manage/src/main/java/com/supervision/manage/controller/medicalrec/MedicalRecManageController.java
index 7806f9c4..ea05fc60 100644
--- a/virtual-patient-manage/src/main/java/com/supervision/manage/controller/medicalrec/MedicalRecManageController.java
+++ b/virtual-patient-manage/src/main/java/com/supervision/manage/controller/medicalrec/MedicalRecManageController.java
@@ -81,6 +81,12 @@ public class MedicalRecManageController {
         return medicalRecManageService.queryDiseasePhysicalByCreat(diseaseId);
     }
 
+    @Operation(summary = "查看配置的体格检查项")
+    @GetMapping("queryDiseasePhysical")
+    public List<DiseasePhysicalResVo> queryDiseasePhysical(@Parameter(name = "medicalRecId", description = "病例id") String medicalRecId){
+        return medicalRecManageService.queryDiseasePhysical(medicalRecId);
+    }
+
     @Operation(summary = "创建病历时查看配置的处置计划")
     @GetMapping("queryDiseaseTreatmentPlanByCreat")
     public List<DiseaseTreatmentPlanResVo> queryDiseaseTreatmentPlanByCreat(String diseaseId){
diff --git a/virtual-patient-manage/src/main/java/com/supervision/manage/service/DiseasePhysicalManageService.java b/virtual-patient-manage/src/main/java/com/supervision/manage/service/DiseasePhysicalManageService.java
index ac4b402e..e44f0b72 100644
--- a/virtual-patient-manage/src/main/java/com/supervision/manage/service/DiseasePhysicalManageService.java
+++ b/virtual-patient-manage/src/main/java/com/supervision/manage/service/DiseasePhysicalManageService.java
@@ -9,7 +9,7 @@ import java.util.List;
 
 public interface DiseasePhysicalManageService {
 
-    List<DiseasePhysicalResVo> queryListByDiseaseId(String diseaseId);
+    List<DiseasePhysicalResVo> queryListByDiseaseId(String diseaseId,Integer relationType);
 
     DiseasePhysical savePhysical(DiseasePhysical diseasePhysical);
 
diff --git a/virtual-patient-manage/src/main/java/com/supervision/manage/service/MedicalRecManageService.java b/virtual-patient-manage/src/main/java/com/supervision/manage/service/MedicalRecManageService.java
index 97e46323..8b067869 100644
--- a/virtual-patient-manage/src/main/java/com/supervision/manage/service/MedicalRecManageService.java
+++ b/virtual-patient-manage/src/main/java/com/supervision/manage/service/MedicalRecManageService.java
@@ -62,4 +62,6 @@ public interface MedicalRecManageService {
     Boolean updateMedicalRecAncillary(DiseaseAncillaryReqVo diseaseAncillaryReqVo);
 
     List<DiseaseAncillaryResVo> queryDiseaseAncillary(String medicalId);
+
+    List<DiseasePhysicalResVo> queryDiseasePhysical(String medicalRecId);
 }
diff --git a/virtual-patient-manage/src/main/java/com/supervision/manage/service/impl/DiseasePhysicalManageServiceImpl.java b/virtual-patient-manage/src/main/java/com/supervision/manage/service/impl/DiseasePhysicalManageServiceImpl.java
index decb97be..81b1e3be 100644
--- a/virtual-patient-manage/src/main/java/com/supervision/manage/service/impl/DiseasePhysicalManageServiceImpl.java
+++ b/virtual-patient-manage/src/main/java/com/supervision/manage/service/impl/DiseasePhysicalManageServiceImpl.java
@@ -37,10 +37,11 @@ public class DiseasePhysicalManageServiceImpl implements DiseasePhysicalManageSe
 
 
     @Override
-    public List<DiseasePhysicalResVo> queryListByDiseaseId(String diseaseId) {
+    public List<DiseasePhysicalResVo> queryListByDiseaseId(String diseaseId,Integer relationType) {
 
         Assert.isTrue(StrUtil.isNotEmpty(diseaseId),"id不能为空");
-        List<DiseasePhysicalResVo> diseasePhysicalResVos = diseasePhysicalService.queryListByDiseaseId(diseaseId);
+        relationType = Objects.isNull(relationType) ? 0 : relationType;
+        List<DiseasePhysicalResVo> diseasePhysicalResVos = diseasePhysicalService.queryListByDiseaseId(diseaseId,relationType);
 
         diseasePhysicalResVos.forEach(DiseasePhysicalResVo::populateOther);
         return diseasePhysicalResVos;
@@ -107,7 +108,7 @@ public class DiseasePhysicalManageServiceImpl implements DiseasePhysicalManageSe
         }
 
         // 2. 根据疾病id查询疾病体格检查项
-        List<DiseasePhysicalResVo> diseasePhysicalResVos = diseasePhysicalService.queryListByDiseaseId(diseaseId);
+        List<DiseasePhysicalResVo> diseasePhysicalResVos = diseasePhysicalService.queryListByDiseaseId(diseaseId,0);
         List<String> locationIds = diseasePhysicalResVos.stream().filter(vo->toolId.equals(vo.getToolId()))
                 .map(DiseasePhysical::getLocationId).filter(Objects::nonNull).distinct().collect(Collectors.toList());
 
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 038c14e2..2827b077 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
@@ -150,7 +150,7 @@ public class MedicalRecManageServiceImpl implements MedicalRecManageService {
 
     @Override
     public List<DiseasePhysicalResVo> queryDiseasePhysicalByCreat(String diseaseId) {
-        return diseasePhysicalManageService.queryListByDiseaseId(diseaseId);
+        return diseasePhysicalManageService.queryListByDiseaseId(diseaseId,0);
     }
 
     @Override
@@ -245,7 +245,7 @@ public class MedicalRecManageServiceImpl implements MedicalRecManageService {
         // 辅助检查
         medicalRecInfoVO.setAncillaryList(diseaseAncillaryManageService.queryListByDiseaseId(medicalRec.getDiseaseId(),0));
         // 体格检查
-        medicalRecInfoVO.setPhysicalList(diseasePhysicalManageService.queryListByDiseaseId(medicalRec.getDiseaseId()));
+        medicalRecInfoVO.setPhysicalList(diseasePhysicalManageService.queryListByDiseaseId(medicalRec.getDiseaseId(),0));
         // 处置计划
         medicalRecInfoVO.setTreatmentPlanList(diseaseTreatmentPlanManageService.queryListByDiseaseId(medicalRec.getDiseaseId()));
         // 问答策略
@@ -502,20 +502,35 @@ public class MedicalRecManageServiceImpl implements MedicalRecManageService {
     }
 
     @Override
-    public List<DiseaseAncillaryResVo> queryDiseaseAncillary(String medicalId) {
-        // 在病历没有保存病历与辅助检查的关联数据时,直接通过medicalId不能够查询到数据,这个时候用对应疾病的数据
-        List<DiseaseAncillaryResVo> diseaseAncillaryResVos = diseaseAncillaryManageService.queryListByDiseaseId(medicalId,1);
+    public List<DiseaseAncillaryResVo> queryDiseaseAncillary(String medicalRecId) {
+        // 在病历没有保存病历与辅助检查的关联数据时,直接通过medicalId不能够查询到数据,这个时候使用对应疾病的数据
+        List<DiseaseAncillaryResVo> diseaseAncillaryResVos = diseaseAncillaryManageService.queryListByDiseaseId(medicalRecId,1);
         if (CollUtil.isNotEmpty(diseaseAncillaryResVos)) {
             return diseaseAncillaryResVos;
         }
         log.info("queryDiseaseAncillary:未找到该病历辅助检查数据,使用对应疾病辅助检查数据");
-        MedicalRec medicalRec = medicalRecService.getById(medicalId);
+        MedicalRec medicalRec = medicalRecService.getById(medicalRecId);
         Assert.notNull(medicalRec, "未找到该病历");
         Assert.notEmpty(medicalRec.getDiseaseId(), "未配置疾病信息");
 
         return diseaseAncillaryManageService.queryListByDiseaseId(medicalRec.getDiseaseId(),0);
     }
 
+    @Override
+    public List<DiseasePhysicalResVo> queryDiseasePhysical(String medicalRecId) {
+        // 在病历没有保存病历与体格检查的关联数据时,直接通过medicalId不能够查询到数据,这个时候使用对应疾病的数据
+        List<DiseasePhysicalResVo> diseasePhysicalResVos = diseasePhysicalManageService.queryListByDiseaseId(medicalRecId,1);
+        if (CollUtil.isNotEmpty(diseasePhysicalResVos)) {
+            return diseasePhysicalResVos;
+        }
+        log.info("queryDiseasePhysical:未找到该病历体格检查数据,使用对应疾病体格检查数据");
+        MedicalRec medicalRec = medicalRecService.getById(medicalRecId);
+        Assert.notNull(medicalRec, "未找到该病历");
+        Assert.notEmpty(medicalRec.getDiseaseId(), "未配置疾病信息");
+
+        return diseasePhysicalManageService.queryListByDiseaseId(medicalRec.getDiseaseId(),0);
+    }
+
     private void saveMedicalRecAssert(MedicalRecInfoReVo reqVO){
         Assert.notEmpty(reqVO.getId(), "id不能为空");
         Assert.notEmpty(reqVO.getPatientId(),"病人id不能为空");
diff --git a/virtual-patient-model/src/main/java/com/supervision/mapper/DiseasePhysicalMapper.java b/virtual-patient-model/src/main/java/com/supervision/mapper/DiseasePhysicalMapper.java
index a8162b1f..a1104b31 100644
--- a/virtual-patient-model/src/main/java/com/supervision/mapper/DiseasePhysicalMapper.java
+++ b/virtual-patient-model/src/main/java/com/supervision/mapper/DiseasePhysicalMapper.java
@@ -15,7 +15,7 @@ import java.util.List;
 */
 public interface DiseasePhysicalMapper extends BaseMapper<DiseasePhysical> {
 
-    List<DiseasePhysicalResVo> queryListByDiseaseId(@Param("diseaseId") String diseaseId);
+    List<DiseasePhysicalResVo> queryListByDiseaseId(@Param("diseaseId") String diseaseId,@Param("relationType")Integer relationType);
 
 }
 
diff --git a/virtual-patient-model/src/main/java/com/supervision/service/DiseasePhysicalService.java b/virtual-patient-model/src/main/java/com/supervision/service/DiseasePhysicalService.java
index 9b180b22..eb977820 100644
--- a/virtual-patient-model/src/main/java/com/supervision/service/DiseasePhysicalService.java
+++ b/virtual-patient-model/src/main/java/com/supervision/service/DiseasePhysicalService.java
@@ -13,5 +13,5 @@ import java.util.List;
 */
 public interface DiseasePhysicalService extends IService<DiseasePhysical> {
 
-    List<DiseasePhysicalResVo> queryListByDiseaseId(String diseaseId);
+    List<DiseasePhysicalResVo> queryListByDiseaseId(String diseaseId,Integer relationType);
 }
diff --git a/virtual-patient-model/src/main/java/com/supervision/service/impl/DiseasePhysicalServiceImpl.java b/virtual-patient-model/src/main/java/com/supervision/service/impl/DiseasePhysicalServiceImpl.java
index 2e34e979..5e99997c 100644
--- a/virtual-patient-model/src/main/java/com/supervision/service/impl/DiseasePhysicalServiceImpl.java
+++ b/virtual-patient-model/src/main/java/com/supervision/service/impl/DiseasePhysicalServiceImpl.java
@@ -19,9 +19,9 @@ public class DiseasePhysicalServiceImpl extends ServiceImpl<DiseasePhysicalMappe
     implements DiseasePhysicalService{
 
     @Override
-    public List<DiseasePhysicalResVo> queryListByDiseaseId(String diseaseId) {
+    public List<DiseasePhysicalResVo> queryListByDiseaseId(String diseaseId,Integer relationType) {
 
-        return super.getBaseMapper().queryListByDiseaseId(diseaseId);
+        return super.getBaseMapper().queryListByDiseaseId(diseaseId,relationType);
     }
 }
 
diff --git a/virtual-patient-model/src/main/resources/mapper/DiseasePhysicalMapper.xml b/virtual-patient-model/src/main/resources/mapper/DiseasePhysicalMapper.xml
index 6376f967..e0eff8cc 100644
--- a/virtual-patient-model/src/main/resources/mapper/DiseasePhysicalMapper.xml
+++ b/virtual-patient-model/src/main/resources/mapper/DiseasePhysicalMapper.xml
@@ -59,6 +59,10 @@
         from vp_disease_physical dp
                  left join vp_config_physical_tool cpt on dp.tool_id = cpt.id
                  left join vp_config_physical_location cpl on dp.location_id = cpl.id
-        where dp.disease_id = #{diseaseId} order by dp.create_time desc
+        where dp.disease_id = #{diseaseId}
+        <if test="relationType != null">
+            AND dp.relation_type = #{relationType}
+        </if>
+        order by dp.create_time desc
     </select>
 </mapper>
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 158bfd6f..1463d1c6 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
@@ -132,7 +132,7 @@ public class AskDiagnosisResultServiceImpl implements AskDiagnosisResultService
         basisIdentificationResultResVO.setIdentificationDiagnosis(medicalRec.getDifferentialDiagnosisCriteria());
         // 2.2 获取体格检查
         List<PhysicalRecordByResultDTO> physicalRecordList = diagnosisPhysicalRecordService.queryPhysicalResultByProcessId(processId);
-        List<DiseasePhysicalResVo> diseasePhysicalResVos = diseasePhysicalService.queryListByDiseaseId(medicalRec.getDiseaseId());
+        List<DiseasePhysicalResVo> diseasePhysicalResVos = diseasePhysicalService.queryListByDiseaseId(medicalRec.getDiseaseId(),0);
 
         List<BasisDiagnosisNodeResVO> nodeList = physicalRecordMergeListsIdentification(physicalRecordList, diseasePhysicalResVos);
 
@@ -152,7 +152,7 @@ public class AskDiagnosisResultServiceImpl implements AskDiagnosisResultService
         basisConfirmResultResVO.setConfirmingDiagnosis(medicalRec.getConfirmDiagnosisCriteria());
         // 2.2 获取体格检查的证实诊断依据
         List<PhysicalRecordByResultDTO> physicalRecordList = diagnosisPhysicalRecordService.queryPhysicalResultByProcessId(processId);
-        List<DiseasePhysicalResVo> diseasePhysicalResVos = diseasePhysicalService.queryListByDiseaseId(medicalRec.getDiseaseId());
+        List<DiseasePhysicalResVo> diseasePhysicalResVos = diseasePhysicalService.queryListByDiseaseId(medicalRec.getDiseaseId(),0);
 
         List<BasisDiagnosisNodeResVO> nodeList = physicalRecordMergeListsConfirm(physicalRecordList, diseasePhysicalResVos);
 
@@ -179,7 +179,7 @@ public class AskDiagnosisResultServiceImpl implements AskDiagnosisResultService
 
         // 2.2 获取体格检查
         List<PhysicalRecordByResultDTO> physicalRecordList = diagnosisPhysicalRecordService.queryPhysicalResultByProcessId(process.getId());
-        List<DiseasePhysicalResVo> diseasePhysicalResVos = diseasePhysicalService.queryListByDiseaseId(medicalRec.getDiseaseId());
+        List<DiseasePhysicalResVo> diseasePhysicalResVos = diseasePhysicalService.queryListByDiseaseId(medicalRec.getDiseaseId(),0);
 
         basisDiagnosisNodeResVOS.addAll(physicalRecordMergeListsBasisPrimary(physicalRecordList, diseasePhysicalResVos));