Bladeren bron

诊断依据枚举类型

zhoutg 5 jaren geleden
bovenliggende
commit
4f91e2b285

+ 4 - 0
knowledgeman-service/src/main/java/com/diagbot/dto/DiagnoseDetailSaveDTO.java

@@ -2,6 +2,8 @@ package com.diagbot.dto;
 
 import com.diagbot.entity.DiagnoseDetail;
 import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -11,6 +13,8 @@ import java.util.List;
  * @author: zhoutg
  * @time: 2019/8/8 13:47
  */
+@Getter
+@Setter
 public class DiagnoseDetailSaveDTO {
 
     @ApiModelProperty(value = "疾病特征")

+ 8 - 8
knowledgeman-service/src/main/java/com/diagbot/enums/DiagnoseFeatureTypeEnum.java

@@ -12,14 +12,14 @@ import lombok.Setter;
 public enum DiagnoseFeatureTypeEnum implements KeyedNamed {
 
     Symptom(1, "症状"),
-    Vital(1, "体征"),
-    Lis(1, "化验"),
-    Pacs(1, "辅检"),
-    Antidiastole(1, "鉴别诊断"),
-    History(1, "病史"),
-    Cause(1, "诱因"),
-    CourseOfDisease(1, "病程"),
-    Other(1, "其他");
+    Vital(2, "体征"),
+    Lis(3, "化验"),
+    Pacs(4, "辅检"),
+    Antidiastole(5, "鉴别诊断"),
+    History(6, "病史"),
+    Cause(7, "诱因"),
+    CourseOfDisease(8, "病程"),
+    Other(9, "其他");
 
 
     @Setter

+ 53 - 0
knowledgeman-service/src/main/java/com/diagbot/enums/DiagnoseFieldEnum.java

@@ -0,0 +1,53 @@
+package com.diagbot.enums;
+
+import com.diagbot.core.KeyedNamed;
+import lombok.Setter;
+
+/**
+ * 
+ * @author zhoutg
+ * @Description:
+ * @date 2018年11月21日 下午2:31:42
+ */
+public enum DiagnoseFieldEnum implements KeyedNamed {
+
+    standard(2, "标准词"),
+    relation(3, "关联词"),
+    result(4, "结果");
+
+    @Setter
+    private Integer key;
+
+    @Setter
+    private String name;
+
+    DiagnoseFieldEnum(Integer key, String name) {
+        this.key = key;
+        this.name = name;
+    }
+
+    public static DiagnoseFieldEnum getEnum(Integer key) {
+        for (DiagnoseFieldEnum item : DiagnoseFieldEnum.values()) {
+            if (item.key == key) {
+                return item;
+            }
+        }
+        return null;
+    }
+
+    public static String getName(Integer key) {
+        DiagnoseFieldEnum item = getEnum(key);
+        return item != null ? item.name : null;
+    }
+
+    @Override
+    public int getKey() {
+        return key;
+    }
+
+    @Override
+    public String getName() {
+        return name;
+    }
+}
+

+ 12 - 3
knowledgeman-service/src/main/java/com/diagbot/facade/DiagnoseFacade.java

@@ -12,6 +12,7 @@ import com.diagbot.entity.DiagnoseDetail;
 import com.diagbot.entity.DiagnoseDetailSave;
 import com.diagbot.entity.DiagnoseQuestion;
 import com.diagbot.entity.wrapper.DiagnoseWrapper;
+import com.diagbot.enums.DiagnoseTypeEnum;
 import com.diagbot.enums.InsertOrUpdateEnum;
 import com.diagbot.enums.IsDeleteEnum;
 import com.diagbot.enums.LexiconTypeEnum;
@@ -106,16 +107,24 @@ public class DiagnoseFacade extends DiagnoseServiceImpl {
      * @param getDiagnoseDetailVO
      * @return
      */
-    public List<DiagnoseDetailSaveDTO> getDetail(GetDiagnoseDetailVO getDiagnoseDetailVO) {
+    public DiagnoseDetailSaveDTO getDetail(GetDiagnoseDetailVO getDiagnoseDetailVO) {
+        DiagnoseDetailSaveDTO res = new DiagnoseDetailSaveDTO();
         List<DiagnoseDetail> detailList = diagnoseDetailFacade.list(new QueryWrapper<DiagnoseDetail>()
                 .eq("diagnose_id", getDiagnoseDetailVO.getId())
                 .eq("is_deleted", IsDeleteEnum.N.getKey())
                 .orderByAsc("order_no")
         );
         for (DiagnoseDetail detail : detailList) {
+            if (DiagnoseTypeEnum.Confirmed.getKey() == detail.getType() ||
+                    DiagnoseTypeEnum.Examination.getKey() == detail.getType() ||
+                    DiagnoseTypeEnum.Vigilant.getKey() == detail.getType()
+            ) {
+                res.getDisformula().add(detail);
+            } else {
+                res.getDisFeature().add(detail);
+            }
         }
-
-        return null;
+        return res;
     }
 
 

+ 73 - 0
knowledgeman-service/src/main/java/com/diagbot/util/DiagnoseTypeConvertUtil.java

@@ -0,0 +1,73 @@
+package com.diagbot.util;
+
+import com.diagbot.enums.DiagnoseFeatureTypeEnum;
+import com.diagbot.enums.DiagnoseFieldEnum;
+import com.diagbot.enums.LexiconTypeEnum;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @Description:参数转换
+ * @Author:zhoutg
+ * @time: 2019/5/7 9:44
+ */
+public class DiagnoseTypeConvertUtil {
+
+
+    /**
+     * 诊断依据类型转换为标准词库类型
+     *
+     * @param type
+     * @return
+     */
+    public static List<Integer> diagnoseType2LibType(Integer type, Integer field) {
+        List<Integer> res = new ArrayList<>();
+        switch (DiagnoseFeatureTypeEnum.getEnum(type)) {
+            case Symptom:  // 症状 -> 症状,诊断依据其他
+                res.add(LexiconTypeEnum.SYMPTOM.getKey());
+                res.add(LexiconTypeEnum.OTHER_DIAGNOSTIC_CRITERIA.getKey());
+                break;
+            case Vital: // 体征 -> 体征结果
+                res.add(LexiconTypeEnum.VITAL_RESULT.getKey());
+                break;
+            case Lis: // 化验标准词 -> 化验大项
+                      // 化验关联词 -> 化验小项
+                      // 化验结果 -> 化验结果
+                if (DiagnoseFieldEnum.standard.getKey() == field) {
+                    res.add(LexiconTypeEnum.LIS_PACKAGE.getKey());
+                } else if (DiagnoseFieldEnum.relation.getKey() == field) {
+                    res.add(LexiconTypeEnum.LIS_DETAILS.getKey());
+                } else if (DiagnoseFieldEnum.result.getKey() == field){
+                    res.add(LexiconTypeEnum.LIS_RESULTS.getKey());
+                }
+                break;
+            case Pacs: // 辅检标准词 -> 辅检项目
+                       // 辅检结果 -> 辅检结果
+                if (DiagnoseFieldEnum.standard.getKey() == field) {
+                    res.add(LexiconTypeEnum.PACS_ITEMS.getKey());
+                } else if (DiagnoseFieldEnum.result.getKey() == field){
+                    res.add(LexiconTypeEnum.PACS_RESULTS.getKey());
+                }
+                break;
+            case Antidiastole: // 鉴别诊断 -> 诊断
+                res.add(LexiconTypeEnum.DIAGNOSIS.getKey());
+                break;
+            case History: // 病史 -> 诊断
+                res.add(LexiconTypeEnum.DIAGNOSIS.getKey());
+                break;
+            case Cause: // 诱因 -> 诱因
+                res.add(LexiconTypeEnum.CAUSE.getKey());
+                break;
+            case CourseOfDisease:  // 病程 -> 诊断依据其他
+                res.add(LexiconTypeEnum.OTHER_DIAGNOSTIC_CRITERIA.getKey());
+                break;
+            case Other: // 其他 -> 诊断依据其他
+                res.add(LexiconTypeEnum.OTHER_DIAGNOSTIC_CRITERIA.getKey());
+                break;
+            default:
+                break;
+        }
+        return res;
+    }
+}

+ 4 - 2
knowledgeman-service/src/main/java/com/diagbot/web/DiagnoseController.java

@@ -4,6 +4,7 @@ package com.diagbot.web;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.diagbot.annotation.SysLogger;
 import com.diagbot.dto.ConceptBaseDTO;
+import com.diagbot.dto.DiagnoseDetailSaveDTO;
 import com.diagbot.dto.DiagnosePageDTO;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.entity.wrapper.DiagnoseWrapper;
@@ -79,7 +80,8 @@ public class DiagnoseController {
     @PostMapping("/getDetail")
     @SysLogger("getDetail")
     @Transactional
-    public RespDTO<Boolean> getDetail(@Valid @RequestBody GetDiagnoseDetailVO getDiagnoseDetailVO) {
-        return RespDTO.onSuc(true);
+    public RespDTO<DiagnoseDetailSaveDTO> getDetail(@Valid @RequestBody GetDiagnoseDetailVO getDiagnoseDetailVO) {
+        DiagnoseDetailSaveDTO diagnoseDetailSaveDTO = diagnoseFacade.getDetail(getDiagnoseDetailVO);
+        return RespDTO.onSuc(diagnoseDetailSaveDTO);
     }
 }