Zhaops 6 years ago
parent
commit
b7a8afe5e1

+ 2 - 0
aipt-service/src/main/java/com/diagbot/client/bean/MedicalIndication.java

@@ -14,6 +14,8 @@ import java.util.List;
 @Getter
 @Setter
 public class MedicalIndication {
+    private Long conceptId;
+    private Integer libType;
     private String name;
     private List<MedicalIndicationDetail> details;
 }

+ 3 - 2
aipt-service/src/main/java/com/diagbot/dto/PushDTO.java

@@ -1,5 +1,6 @@
 package com.diagbot.dto;
 
+import com.diagbot.client.bean.MedicalIndication;
 import lombok.Getter;
 import lombok.Setter;
 
@@ -21,7 +22,7 @@ public class PushDTO {
     private List<ConceptPushDTO> lab;
     private List<ConceptPushDTO> pacs;
     private Map<String, List<ConceptPushDTO>> dis;
-    private String deptName;
-    //private List<MedicalIndicationDTO> medicalIndications;
+    private ConceptPushDTO dept;
+    private List<MedicalIndication> medicalIndications;
     //private List<EvaluationModuleMappingDTO> evaluationModule;
 }

+ 0 - 1
aipt-service/src/main/java/com/diagbot/facade/ConceptDetailFacade.java

@@ -12,7 +12,6 @@ import com.diagbot.service.impl.ConceptDetailServiceImpl;
 import com.diagbot.util.BeanUtil;
 import com.diagbot.util.EntityUtil;
 import com.diagbot.util.ListUtil;
-import com.diagbot.util.ParamConvertUtil;
 import com.diagbot.util.StringUtil;
 import com.diagbot.vo.ConceptBaseVO;
 import com.diagbot.vo.ConceptIntroduceVO;

+ 0 - 4
aipt-service/src/main/java/com/diagbot/facade/ConceptFacade.java

@@ -6,16 +6,12 @@ import com.diagbot.dto.ConceptWithOrderRes;
 import com.diagbot.dto.RetrievalDTO;
 import com.diagbot.entity.Concept;
 import com.diagbot.entity.wrapper.ConceptWrapper;
-import com.diagbot.enums.ConceptTypeEnum;
 import com.diagbot.enums.IsDeleteEnum;
 import com.diagbot.enums.LexiconRSTypeEnum;
-import com.diagbot.enums.LexiconTypeEnum;
 import com.diagbot.exception.CommonErrorCode;
 import com.diagbot.exception.CommonException;
 import com.diagbot.service.impl.ConceptServiceImpl;
-import com.diagbot.util.IntegerUtil;
 import com.diagbot.util.ListUtil;
-import com.diagbot.util.ParamConvertUtil;
 import com.diagbot.vo.ConceptBaseVO;
 import com.diagbot.vo.ConceptSearchVO;
 import com.diagbot.vo.ConceptUsualVO;

+ 0 - 1
aipt-service/src/main/java/com/diagbot/facade/DeptInfoFacade.java

@@ -8,7 +8,6 @@ import com.diagbot.dto.HospitalDeptInfoVO;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.entity.Concept;
 import com.diagbot.enums.IsDeleteEnum;
-import com.diagbot.enums.LexiconTypeEnum;
 import com.diagbot.util.BeanUtil;
 import com.diagbot.util.RespDTOUtil;
 import com.diagbot.vo.DeptInfoVO;

+ 0 - 1
aipt-service/src/main/java/com/diagbot/facade/DisScaleFacade.java

@@ -4,7 +4,6 @@ import com.diagbot.dto.ConceptWithOrderRes;
 import com.diagbot.dto.DisScaleDTO;
 import com.diagbot.entity.wrapper.ConceptWrapper;
 import com.diagbot.enums.LexiconRSTypeEnum;
-import com.diagbot.enums.LexiconTypeEnum;
 import com.diagbot.service.impl.DisScaleServiceImpl;
 import com.diagbot.vo.DisScaleVO;
 import org.springframework.beans.factory.annotation.Autowired;

+ 0 - 1
aipt-service/src/main/java/com/diagbot/facade/DisTypeFacade.java

@@ -7,7 +7,6 @@ import com.diagbot.entity.Concept;
 import com.diagbot.entity.wrapper.ConceptWrapper;
 import com.diagbot.enums.DisTypeEnum;
 import com.diagbot.enums.LexiconRSTypeEnum;
-import com.diagbot.enums.LexiconTypeEnum;
 import com.diagbot.service.impl.DisTypeServiceImpl;
 import com.diagbot.util.EntityUtil;
 import com.diagbot.util.ListUtil;

+ 0 - 1
aipt-service/src/main/java/com/diagbot/facade/DiseaseIcdFacade.java

@@ -7,7 +7,6 @@ import com.diagbot.dto.GetDiseaseIcdDTO;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.entity.Concept;
 import com.diagbot.enums.IsDeleteEnum;
-import com.diagbot.enums.LexiconTypeEnum;
 import com.diagbot.util.BeanUtil;
 import com.diagbot.util.ListUtil;
 import com.diagbot.util.RespDTOUtil;

+ 0 - 1
aipt-service/src/main/java/com/diagbot/facade/PartFacade.java

@@ -9,7 +9,6 @@ import com.diagbot.entity.Symptom;
 import com.diagbot.entity.wrapper.ConceptWrapper;
 import com.diagbot.enums.IsDeleteEnum;
 import com.diagbot.enums.LexiconRSTypeEnum;
-import com.diagbot.enums.LexiconTypeEnum;
 import com.diagbot.exception.CommonErrorCode;
 import com.diagbot.exception.CommonException;
 import com.diagbot.util.EntityUtil;

+ 0 - 1
aipt-service/src/main/java/com/diagbot/facade/PatientInfoFacade.java

@@ -8,7 +8,6 @@ import com.diagbot.client.TranServiceClient;
 import com.diagbot.dto.GetTopPatientInfoDTO;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.entity.Concept;
-import com.diagbot.enums.LexiconTypeEnum;
 import com.diagbot.util.RespDTOUtil;
 import com.diagbot.vo.ConceptBaseVO;
 import com.diagbot.vo.GetTopPatientInfoVO;

+ 101 - 17
aipt-service/src/main/java/com/diagbot/facade/PushFacade.java

@@ -4,11 +4,14 @@ import com.alibaba.fastjson.JSONObject;
 import com.diagbot.client.TranServiceClient;
 import com.diagbot.client.bean.FeatureRate;
 import com.diagbot.client.bean.GdbResponse;
+import com.diagbot.client.bean.MedicalIndication;
+import com.diagbot.client.bean.MedicalIndicationDetail;
 import com.diagbot.client.bean.ResponseData;
 import com.diagbot.client.bean.SearchData;
 import com.diagbot.dto.ConceptPushDTO;
 import com.diagbot.dto.PushDTO;
 import com.diagbot.entity.Concept;
+import com.diagbot.enums.ConceptTypeEnum;
 import com.diagbot.enums.FeatureTypeEnum;
 import com.diagbot.enums.LexiconTypeEnum;
 import com.diagbot.exception.CommonErrorCode;
@@ -17,6 +20,7 @@ import com.diagbot.util.FastJsonUtils;
 import com.diagbot.util.ListUtil;
 import com.diagbot.util.ParamConvertUtil;
 import com.diagbot.util.StringUtil;
+import com.diagbot.vo.ConceptBaseVO;
 import com.diagbot.vo.SearchVo;
 import com.google.common.collect.Lists;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -61,24 +65,9 @@ public class PushFacade {
         String[] featureTypes = featureType.split(",|,");
         Set<String> featureTypeSet = new HashSet(Arrays.asList(featureTypes));
 
-        //诊断
+        //确定推送科室
         List<FeatureRate> dis = data.getDis();
-        //推送科室
-        String deptName = "";
-        if (ListUtil.isNotEmpty(dis)) {
-            for (FeatureRate featureRate : dis) {
-                if (StringUtil.isNotBlank(featureRate.getExtraProperty())) {
-                    deptName = featureRate.getExtraProperty();
-                    break;
-                }
-            }
-        }
-        //没有推送信息时,默认取全科模板
-        if (StringUtil.isBlank(deptName)) {
-            deptName = "全科";
-        }
-        pushDTO.setDeptName(deptName);
-
+        pushDTO.setDept(getDept(dis));
 
         //症状 概念列表
         if (featureTypeSet.contains(String.valueOf(FeatureTypeEnum.Feature_Type_Symptom.getKey()))) {
@@ -172,9 +161,66 @@ public class PushFacade {
                 pushDTO.setDis(disMapDTO);
             }
         }
+        //核心指标 list
+        if (featureTypeSet.contains(String.valueOf(FeatureTypeEnum.Feature_Type_Indication.getKey()))) {
+            List<MedicalIndication> medicalIndicationList = data.getMedicalIndications();
+            ConceptBaseVO conceptBaseVO = new ConceptBaseVO();
+            if (ListUtil.isNotEmpty(medicalIndicationList)) {
+                for (MedicalIndication medicalIndication : medicalIndicationList) {
+                    //关联概念,增加概念id
+                    conceptBaseVO.setName(medicalIndication.getName());
+                    conceptBaseVO.setLibType(LexiconTypeEnum.CORE_INDICATORS.getKey());
+                    Concept medConcept = conceptFacade.getConcept(conceptBaseVO);
+                    if (medConcept != null) {
+                        medicalIndication.setConceptId(medConcept.getId());
+                    }
+                    if (ListUtil.isNotEmpty(medicalIndication.getDetails())) {
+                        for (MedicalIndicationDetail detail : medicalIndication.getDetails()) {
+                            //量表,增加概念id;其他类型保留图谱返回结果
+                            if (detail.getType().equals(1)) {
+                                JSONObject scaleJson = detail.getContent();
+                                if (null != scaleJson.get("name")) {
+                                    String scaleName = scaleJson.get("name").toString();
+                                    conceptBaseVO.setName(scaleName);
+                                    conceptBaseVO.setLibType(LexiconTypeEnum.GAUGE.getKey());
+                                    Concept scaleConcept = conceptFacade.getConcept(conceptBaseVO);
+                                    if (scaleConcept != null) {
+                                        scaleJson.put("id", scaleConcept.getId());
+                                    } else {
+                                        scaleJson.put("id", null);
+                                    }
+                                    detail.setContent(scaleJson);
+                                }
+                            }
+                        }
+                    }
+                }
+                pushDTO.setMedicalIndications(medicalIndicationList);
+            }
+        }
         return pushDTO;
     }
 
+    /**
+     * 获取管理评估大数据推理内容
+     *
+     * @param searchVo
+     * @return
+     */
+    public Map<String, JSONObject> getManagementEvaluationContent(SearchVo searchVo) {
+        ResponseData data = clinicalFacade.processClinicalData(searchVo);
+
+        String featureType = searchVo.getFeatureType();
+        String[] featureTypes = featureType.split(",|,");
+        Set<String> featureTypeSet = new HashSet(Arrays.asList(featureTypes));
+        if (featureTypeSet.contains(String.valueOf(FeatureTypeEnum.Feature_Type_ManagementEvaluation.getKey()))) {
+            return data.getManagementEvaluation();
+        } else {
+            return null;
+        }
+    }
+
+
     /**
      * 获取治疗方案
      *
@@ -212,4 +258,42 @@ public class PushFacade {
         }
         return conceptDTOS;
     }
+
+    /**
+     * 根据诊断推送确定科室
+     *
+     * @param dis
+     * @return
+     */
+    public ConceptPushDTO getDept(List<FeatureRate> dis) {
+        String deptName = "";
+        if (ListUtil.isNotEmpty(dis)) {
+            for (FeatureRate featureRate : dis) {
+                if (StringUtil.isNotBlank(featureRate.getExtraProperty())) {
+                    deptName = featureRate.getExtraProperty();
+                    break;
+                }
+            }
+        }
+        //没有推送信息时,默认取全科模板
+        if (StringUtil.isBlank(deptName)) {
+            deptName = "全科";
+        }
+        ConceptBaseVO conceptBaseVO = new ConceptBaseVO();
+        conceptBaseVO.setName(deptName);
+        conceptBaseVO.setLibType(LexiconTypeEnum.DEPARTMENT.getKey());
+        ConceptPushDTO deptDTO = new ConceptPushDTO();
+        Concept dept = conceptFacade.getConcept(conceptBaseVO);
+        if (dept == null && deptName.equals("全科") == false) {
+            deptName = "全科";
+            conceptBaseVO.setName(deptName);
+            dept = conceptFacade.getConcept(conceptBaseVO);
+        }
+        if (dept != null) {
+            deptDTO.setName(deptName);
+            deptDTO.setConceptId(dept.getId());
+            deptDTO.setLibType(ConceptTypeEnum.DEPARTMENT.getKey());
+        }
+        return deptDTO;
+    }
 }

+ 0 - 2
aipt-service/src/main/java/com/diagbot/facade/TreatmentFacade.java

@@ -10,11 +10,9 @@ import com.diagbot.dto.ConceptRes;
 import com.diagbot.entity.Concept;
 import com.diagbot.entity.ConceptDetail;
 import com.diagbot.entity.wrapper.ConceptWrapper;
-import com.diagbot.enums.ConceptTypeEnum;
 import com.diagbot.enums.DisTypeEnum;
 import com.diagbot.enums.IntroducePositionEnum;
 import com.diagbot.enums.LexiconRSTypeEnum;
-import com.diagbot.enums.LexiconTypeEnum;
 import com.diagbot.exception.CommonErrorCode;
 import com.diagbot.exception.CommonException;
 import com.diagbot.util.BeanUtil;

+ 0 - 3
aipt-service/src/main/java/com/diagbot/util/ParamConvertUtil.java

@@ -1,8 +1,5 @@
 package com.diagbot.util;
 
-import com.diagbot.enums.ConceptTypeEnum;
-import com.diagbot.enums.LexiconTypeEnum;
-
 /**
  * @Description:参数转换
  * @Author:zhaops

+ 3 - 0
icss-service/src/main/java/com/diagbot/client/AiptServiceClient.java

@@ -71,6 +71,9 @@ public interface AiptServiceClient {
     @PostMapping(value = "/conceptDetail/getConceptDetail")
     RespDTO<ConceptIntroduceDTO> getConceptDetail(@Valid @RequestBody ConceptIntroduceVO conceptIntroduceVO);
 
+    @PostMapping(value = "/concept/exist")
+    RespDTO<ConceptBaseDTO> existConcept(@RequestBody @Valid ConceptBaseVO conceptBaseVO);
+
     @PostMapping(value = "/concept/getConceptUsual")
     RespDTO<List<ConceptBaseDTO>> getConceptUsual(@RequestBody @Valid ConceptUsualVO conceptUsualVO);
 

+ 6 - 0
icss-service/src/main/java/com/diagbot/client/hystrix/AiptServiceHystrix.java

@@ -100,6 +100,12 @@ public class AiptServiceHystrix implements AiptServiceClient {
         return null;
     }
 
+    @Override
+    public RespDTO<ConceptBaseDTO> existConcept(@RequestBody @Valid ConceptBaseVO conceptBaseVO) {
+        log.error("【hystrix】调用{}异常", "existConcept");
+        return null;
+    }
+
     @Override
     public RespDTO<List<ConceptBaseDTO>> getConceptUsual(@RequestBody @Valid ConceptUsualVO conceptUsualVO) {
         log.error("【hystrix】调用{}异常", "getConceptUsual");

+ 17 - 17
icss-service/src/main/java/com/diagbot/dto/PushDTO.java

@@ -1,30 +1,30 @@
 package com.diagbot.dto;
 
-import java.util.List;
-import java.util.Map;
-
-import com.diagbot.entity.ScaleContent;
-
+import com.diagbot.client.bean.MedicalIndication;
 import lombok.Getter;
 import lombok.Setter;
 
+import java.util.List;
+import java.util.Map;
+
 /**
- * @Description:
+ * @Description: 推理出参
  * @Author:zhaops
  * @time: 2018/11/20 13:44
  */
 @Getter
 @Setter
 public class PushDTO {
-    private List<QuestionDTO> symptom;
-    private List<QuestionDTO> other;
-    private List<QuestionDTO> vital;
-    private List<Long> markedVitalIds;
-    private List<QuestionDTO> lab;
-    private List<QuestionDTO> pacs;
-    private Map<String, List<QuestionDTO>> dis;
-    private Map<String, Object> treat;
-    private List<MedicalIndicationDTO> medicalIndications;
-    private List<ScaleContent> scale;
-    private List<EvaluationDTO> evaluationModule;
+    private List<ConceptPushDTO> symptom;
+    private List<ConceptPushDTO> other;
+    private List<ConceptPushDTO> vital;
+    private List<Long> vitalIds;
+    private List<QuestionPushDTO> moduleVital;
+    private List<ConceptPushDTO> lab;
+    private List<ConceptPushDTO> pacs;
+    private Map<String, List<ConceptPushDTO>> dis;
+    private ConceptPushDTO dept;
+    private List<MedicalIndication> medicalIndications;
+    /*private List<ScaleContent> scale;
+    private List<EvaluationDTO> evaluationModule;*/
 }

+ 16 - 0
icss-service/src/main/java/com/diagbot/dto/QuestionPushDTO.java

@@ -0,0 +1,16 @@
+package com.diagbot.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2019/5/10 15:55
+ */
+@Getter
+@Setter
+public class QuestionPushDTO extends QuestionDTO {
+    private Long conceptId;
+    private Integer libType;
+}

File diff suppressed because it is too large
+ 107 - 270
icss-service/src/main/java/com/diagbot/facade/PushFacade.java