From b638a661ef02201fbc9a171ca7dee80af980d061 Mon Sep 17 00:00:00 2001
From: xueqingkun <xueqingkun@126.com>
Date: Thu, 30 Nov 2023 13:09:05 +0800
Subject: [PATCH] =?UTF-8?q?manage=EF=BC=9A=E6=B7=BB=E5=8A=A0=E4=BD=93?=
 =?UTF-8?q?=E6=A0=BC=E6=A3=80=E6=9F=A5=E3=80=81=E8=BE=85=E5=8A=A9=E6=A3=80?=
 =?UTF-8?q?=E6=9F=A5=20=E8=AF=8A=E6=96=AD=E4=BE=9D=E6=8D=AE=E8=A7=86?=
 =?UTF-8?q?=E5=9B=BE=E5=AD=97=E6=AE=B5?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../DiseaseAncillaryManageServiceImpl.java    |  2 +-
 .../DiseasePhysicalManageServiceImpl.java     |  2 +-
 .../impl/ConfigPhysicalToolServiceImpl.java   |  4 +--
 .../vo/manage/DiseaseAncillaryResVo.java      | 20 +++++++++++
 .../vo/manage/DiseasePhysicalResVo.java       | 35 ++++++++++++++++++-
 .../mapper/DiseaseAncillaryMapper.xml         |  1 +
 .../mapper/DiseasePhysicalMapper.xml          |  4 ++-
 7 files changed, 62 insertions(+), 6 deletions(-)

diff --git a/virtual-patient-manage/src/main/java/com/supervision/manage/service/impl/DiseaseAncillaryManageServiceImpl.java b/virtual-patient-manage/src/main/java/com/supervision/manage/service/impl/DiseaseAncillaryManageServiceImpl.java
index a0eb76f9..44d238b5 100644
--- a/virtual-patient-manage/src/main/java/com/supervision/manage/service/impl/DiseaseAncillaryManageServiceImpl.java
+++ b/virtual-patient-manage/src/main/java/com/supervision/manage/service/impl/DiseaseAncillaryManageServiceImpl.java
@@ -27,7 +27,7 @@ public class DiseaseAncillaryManageServiceImpl implements DiseaseAncillaryManage
         Assert.isTrue(StrUtil.isNotEmpty(diseaseId),"diseaseId不能为空");
         List<DiseaseAncillaryResVo> diseaseAncillaryResVos = diseaseAncillaryService.queryListByDiseaseId(diseaseId);
 
-        diseaseAncillaryResVos.forEach(DiseaseAncillaryResVo::aggregationDiagnosticCriteria);
+        diseaseAncillaryResVos.forEach(DiseaseAncillaryResVo::populateOther);
         return diseaseAncillaryResVos;
     }
 
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 88b1423c..bdbe148e 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
@@ -36,7 +36,7 @@ public class DiseasePhysicalManageServiceImpl implements DiseasePhysicalManageSe
         Assert.isTrue(StrUtil.isNotEmpty(diseaseId),"id不能为空");
         List<DiseasePhysicalResVo> diseasePhysicalResVos = diseasePhysicalService.queryListByDiseaseId(diseaseId);
 
-        diseasePhysicalResVos.forEach(DiseasePhysicalResVo::aggregationDiagnosticCriteria);
+        diseasePhysicalResVos.forEach(DiseasePhysicalResVo::populateOther);
         return diseasePhysicalResVos;
     }
 
diff --git a/virtual-patient-model/src/main/java/com/supervision/service/impl/ConfigPhysicalToolServiceImpl.java b/virtual-patient-model/src/main/java/com/supervision/service/impl/ConfigPhysicalToolServiceImpl.java
index 6db05fcd..286ce277 100644
--- a/virtual-patient-model/src/main/java/com/supervision/service/impl/ConfigPhysicalToolServiceImpl.java
+++ b/virtual-patient-model/src/main/java/com/supervision/service/impl/ConfigPhysicalToolServiceImpl.java
@@ -1,7 +1,7 @@
 package com.supervision.service.impl;
 
 import cn.hutool.core.collection.CollectionUtil;
-import cn.hutool.core.lang.UUID;
+import cn.hutool.crypto.digest.MD5;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.supervision.model.ConfigPhysicalTool;
 import com.supervision.service.ConfigPhysicalToolService;
@@ -30,7 +30,7 @@ public class ConfigPhysicalToolServiceImpl extends ServiceImpl<ConfigPhysicalToo
             ConfigPhysicalToolResVO tool = new ConfigPhysicalToolResVO();
             tool.setToolType(e.getKey());
             tool.setToolName(e.getKey());
-            tool.setId(UUID.fastUUID().toString());
+            tool.setId(new MD5().digestHex16(e.getKey()));
             int priority = 999;
             if (CollectionUtil.isNotEmpty(e.getValue()) && null != e.getValue().get(0).getTypePriority()) {
                 priority = e.getValue().get(0).getTypePriority();
diff --git a/virtual-patient-model/src/main/java/com/supervision/vo/manage/DiseaseAncillaryResVo.java b/virtual-patient-model/src/main/java/com/supervision/vo/manage/DiseaseAncillaryResVo.java
index a54067b0..907d8336 100644
--- a/virtual-patient-model/src/main/java/com/supervision/vo/manage/DiseaseAncillaryResVo.java
+++ b/virtual-patient-model/src/main/java/com/supervision/vo/manage/DiseaseAncillaryResVo.java
@@ -15,6 +15,12 @@ public class DiseaseAncillaryResVo extends DiseaseAncillary {
     @ApiModelProperty("项目名称")
     private String itemName;
 
+    @ApiModelProperty("项目类型")
+    private String itemType;
+
+    @ApiModelProperty("项目id路径")
+    private List<String> itemIdPath;
+
     @ApiModelProperty("诊断依据 0:初步诊断依据 1:证实诊断依据 2:鉴别诊断依据 3:全面诊断依据")
     private List<Integer> diagnosticCriteria;
 
@@ -46,4 +52,18 @@ public class DiseaseAncillaryResVo extends DiseaseAncillary {
 
     }
 
+    public void initItemIdPath(){
+        if (null == itemIdPath){
+            itemIdPath = new ArrayList<>();
+        }
+
+        itemIdPath.add(itemType);
+        itemIdPath.add(getItemId());
+    }
+
+    public void populateOther(){
+        aggregationDiagnosticCriteria();
+        initItemIdPath();
+    }
+
 }
diff --git a/virtual-patient-model/src/main/java/com/supervision/vo/manage/DiseasePhysicalResVo.java b/virtual-patient-model/src/main/java/com/supervision/vo/manage/DiseasePhysicalResVo.java
index 12c0a261..56e0b3ee 100644
--- a/virtual-patient-model/src/main/java/com/supervision/vo/manage/DiseasePhysicalResVo.java
+++ b/virtual-patient-model/src/main/java/com/supervision/vo/manage/DiseasePhysicalResVo.java
@@ -1,5 +1,6 @@
 package com.supervision.vo.manage;
 
+import cn.hutool.crypto.digest.MD5;
 import com.supervision.model.DiseasePhysical;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -15,7 +16,17 @@ public class DiseasePhysicalResVo extends DiseasePhysical {
     @ApiModelProperty("工具名称")
     private String toolName;
 
-    private String itemId;
+    @ApiModelProperty("工具类型")
+    private String toolType;
+
+    @ApiModelProperty("工具父级id")
+    private String toolParentId;
+
+    @ApiModelProperty("工具id路径")
+    private List<String> toolIdPath;
+
+    @ApiModelProperty("身体部位id路径")
+    private List<String> locationIdPath;
 
     @ApiModelProperty("诊断依据 0:初步诊断依据 1:证实诊断依据 2:鉴别诊断依据 3:全面诊断依据")
     private List<Integer> diagnosticCriteria;
@@ -48,4 +59,26 @@ public class DiseasePhysicalResVo extends DiseasePhysical {
 
     }
 
+    public void initToolIdPath(){
+        if (null == toolIdPath){
+            toolIdPath = new ArrayList<>();
+        }
+        toolIdPath.add(new MD5().digestHex16(toolType));
+        toolIdPath.add(getToolId());
+    }
+
+    public void initLocationIdPath(){
+        if (null == locationIdPath){
+            locationIdPath = new ArrayList<>();
+        }
+        locationIdPath.add(getToolParentId());
+        locationIdPath.add(getLocationId());
+    }
+
+    public void populateOther(){
+        this.aggregationDiagnosticCriteria();
+        this.initToolIdPath();
+        this.initLocationIdPath();
+    }
+
 }
diff --git a/virtual-patient-model/src/main/resources/mapper/DiseaseAncillaryMapper.xml b/virtual-patient-model/src/main/resources/mapper/DiseaseAncillaryMapper.xml
index 511938c1..bf96d996 100644
--- a/virtual-patient-model/src/main/resources/mapper/DiseaseAncillaryMapper.xml
+++ b/virtual-patient-model/src/main/resources/mapper/DiseaseAncillaryMapper.xml
@@ -61,6 +61,7 @@
                da.disease_id                        as diseaseId,
                da.item_id                           as itemId,
                cai.item_name                        as itemName,
+               cai.type                             as itemType,
                da.primarily_diagnosis_criteria_flag as primarilyDiagnosisCriteriaFlag,
                da.basis_confirm_flag                as basisConfirmFlag,
                da.basis_identification_flag         as basisIdentificationFlag,
diff --git a/virtual-patient-model/src/main/resources/mapper/DiseasePhysicalMapper.xml b/virtual-patient-model/src/main/resources/mapper/DiseasePhysicalMapper.xml
index 4fdbfc86..d052e81f 100644
--- a/virtual-patient-model/src/main/resources/mapper/DiseasePhysicalMapper.xml
+++ b/virtual-patient-model/src/main/resources/mapper/DiseasePhysicalMapper.xml
@@ -38,9 +38,10 @@
         select dp.id,
                dp.disease_id                        as diseaseId,
                dp.tool_id                           as toolId,
-               dp.tool_id                           as itemId,
+               cpl.parent_id                        as toolParentId,
                dp.location_id                       as locationId,
                cpt.tool_name                        as toolName,
+               cpt.type                             as toolType,
                dp.primarily_diagnosis_criteria_flag as primarilyDiagnosisCriteriaFlag,
                dp.basis_confirm_flag                as basisConfirmFlag,
                dp.basis_identification_flag         as basisIdentificationFlag,
@@ -52,6 +53,7 @@
                dp.trait                             as trait
         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
     </select>
 </mapper>