Jelajahi Sumber

Merge remote-tracking branch 'origin/dev/icssNCD' into dev/icssNCD

wangyu 6 tahun lalu
induk
melakukan
2ecfb78023

+ 6 - 4
aipt-service/src/main/java/com/diagbot/facade/ClinicalFacade.java

@@ -50,12 +50,15 @@ public class ClinicalFacade {
         sData.setLisArr(processLis(sData.getLisArr()));
 
         Response<ResponseData> res = aiServiceClient.bayesPageData(sData);
+        if (res == null || res.getData() == null) {
+            throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "AI没有返回结果");
+        }
 
         return res.getData();
     }
 
     private List<LisResult> processLis(List<LisResult> lisArr) {
-        if(ListUtil.isEmpty(lisArr)){
+        if (ListUtil.isEmpty(lisArr)) {
             return lisArr;
         }
 
@@ -69,8 +72,7 @@ public class ClinicalFacade {
 
             if (Otherval.indexOf(pos) >= 0 || Otherval.indexOf(neg) >= 0) {
                 lisres.setOtherValue(lisres.getDetailName() + Otherval);
-            }
-            else {
+            } else {
                 Otherval = (Otherval.trim().length() > 0) ? Otherval.trim() + "\n" : "";
 
                 if (lisres.getMaxValue() != null && lisres.getValue() > lisres.getMaxValue()) {
@@ -113,4 +115,4 @@ public class ClinicalFacade {
         }
         return response.getData();
     }
-}
+}

+ 1 - 0
aipt-service/src/main/java/com/diagbot/vo/SearchVo.java

@@ -38,6 +38,7 @@ public class SearchVo {
 
     //特征类别
     private String featureType;
+    private Integer disType;
     /*
     //特征类别对","进行分割后数据
     private String[] featureTypes;

+ 2 - 0
icss-service/src/main/java/com/diagbot/dto/PushEMRDTO.java

@@ -14,6 +14,8 @@ import java.util.Map;
 @Getter
 @Setter
 public class PushEMRDTO {
+    private List<EMRQuestionDTO> symptomList;
+    private List<EMRQuestionDTO> vitalList;
     private List<EMRQuestionDTO> lisList;
     private List<EMRQuestionDTO> pacsList;
     private Map<String, List<EMRQuestionDTO>> dis;

+ 28 - 2
icss-service/src/main/java/com/diagbot/facade/PushFacade.java

@@ -5,7 +5,6 @@ import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.diagbot.client.AiptServiceClient;
 import com.diagbot.client.TranServiceClient;
-import com.diagbot.client.bean.CalcResult;
 import com.diagbot.client.bean.FeatureRate;
 import com.diagbot.client.bean.GdbResponse;
 import com.diagbot.client.bean.MedicalIndication;
@@ -172,7 +171,8 @@ public class PushFacade {
     public Map<String, Object> scale(SearchData searchData) {
         Response<Map<String, Object>> res = aiptServiceClient.scale(searchData);
         if (null == res || null == res.getData()) {
-            throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "中间层没有返回结果");
+//            throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "中间层没有返回结果");
+            return new HashMap<String, Object>();
         }
         return res.getData();
     }
@@ -653,6 +653,32 @@ public class PushFacade {
         String[] featureTypes = featureType.split(",|,");
         Set<String> featureTypeSet = new HashSet(Arrays.asList(featureTypes));
 
+        if (featureTypeSet.contains(String.valueOf(QuestionTypeEnum.Symptom.getKey()))) {
+            List<FeatureRate> symptomFeature = data.getSymptom();
+            if (symptomFeature.size() > 0) {
+                List<EMRQuestionDTO> symptomList = Lists.newLinkedList();
+                for (FeatureRate featureRate : symptomFeature) {
+                    EMRQuestionDTO symptom = new EMRQuestionDTO();
+                    symptom.setName(featureRate.getFeatureName());
+                    symptom.setUniqueName(featureRate.getFeatureName());
+                    symptomList.add(symptom);
+                }
+                pushEMRDTO.setSymptomList(symptomList);
+            }
+        }
+        if (featureTypeSet.contains(String.valueOf(QuestionTypeEnum.Vital.getKey()))) {
+            List<FeatureRate> vitalFeature = data.getVitals();
+            if (vitalFeature.size() > 0) {
+                List<EMRQuestionDTO> vitalList = Lists.newLinkedList();
+                for (FeatureRate featureRate : vitalFeature) {
+                    EMRQuestionDTO vital = new EMRQuestionDTO();
+                    vital.setName(featureRate.getFeatureName());
+                    vital.setUniqueName(featureRate.getFeatureName());
+                    vitalList.add(vital);
+                }
+                pushEMRDTO.setVitalList(vitalList);
+            }
+        }
         if (featureTypeSet.contains(String.valueOf(QuestionTypeEnum.Lis.getKey()))) {
             List<FeatureRate> lisFeatures = data.getLabs();
             if (lisFeatures.size() > 0) {

+ 2 - 2
icss-service/src/main/java/com/diagbot/vo/EMRPushVO.java

@@ -12,7 +12,7 @@ import javax.validation.constraints.NotBlank;
  */
 @Getter
 @Setter
-public class EMRPushVO extends PushVO {
+public class EMRPushVO extends PushBaseVO {
     @NotBlank(message = "请输入医院编码")
     private String hosCode;
-}
+}

+ 31 - 0
icss-service/src/main/java/com/diagbot/vo/PushBaseVO.java

@@ -0,0 +1,31 @@
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.util.List;
+
+/**
+ * @Description: 推理参数
+ * @Author:zhaops
+ * @time: 2019/4/17 14:42
+ */
+@Getter
+@Setter
+public class PushBaseVO {
+    @NotNull(message = "请输入年龄")
+    private Integer age;
+    @NotNull(message = "请输入性别")
+    private Integer sex;
+    @NotBlank(message = "请输入推送类型")
+    private String featureType;
+    private String symptom;
+    private String diag;
+    private String vital;
+    private List<LisResultVO> lis;
+    private String pacs;
+    private String past;
+    private String other;
+}

+ 1 - 17
icss-service/src/main/java/com/diagbot/vo/PushVO.java

@@ -1,13 +1,10 @@
 package com.diagbot.vo;
 
-import com.alibaba.fastjson.JSONObject;
 import com.diagbot.client.bean.AdverseReaction;
 import com.diagbot.client.bean.IndicationResult;
 import lombok.Getter;
 import lombok.Setter;
 
-import javax.validation.constraints.NotBlank;
-import javax.validation.constraints.NotNull;
 import java.util.List;
 
 /**
@@ -17,20 +14,7 @@ import java.util.List;
  */
 @Getter
 @Setter
-public class PushVO {
-    @NotNull(message = "请输入年龄")
-    private Integer age;
-    @NotNull(message = "请输入性别")
-    private Integer sex;
-    @NotBlank(message = "请输入推送类型")
-    private String featureType;
-    private String symptom;
-    private String diag;
-    private String vital;
-    private List<LisResultVO> lis;
-    private String pacs;
-    private String past;
-    private String other;
+public class PushVO  extends PushBaseVO{
     private Long diseaseId;
     private Long patientId;   //病人id
     private String scaleName; //量表名称

+ 1 - 1
icss-service/src/main/java/com/diagbot/web/EMRController.java

@@ -67,7 +67,7 @@ public class EMRController {
                     "lis:source:数据来源(必填)0-内部来源,1-外部来源,Integer<br>" +
                     "pacs:辅检,String<br>" +
                     "diag:诊断,String<br>" +
-                    "featureType:类型(多选必填),5:检验,6:检查,7:诊断,String<br>")
+                    "featureType:类型(多选必填),1:症状,4:查体,5:检验,6:检查,7:诊断,String<br>")
     @PostMapping("/pushEMR")
     @SysLogger("pushEMR")
     public RespDTO<PushEMRDTO> pushEMR(@RequestBody @Valid EMRPushVO emrPushVO) {