Sfoglia il codice sorgente

输出调试信息

zhoutg 4 anni fa
parent
commit
c65fc422d2

+ 2 - 0
src/main/java/com/diagbot/dto/IndicationDTO.java

@@ -16,4 +16,6 @@ public class IndicationDTO {
     // 开单合理性提示信息
     private List<BillMsg> billMsgList = new ArrayList<>();
 
+    // 记录调试信息
+    private List<String> dubugStr = new ArrayList<>();
 }

+ 1 - 1
src/main/java/com/diagbot/facade/CommonFacade.java

@@ -36,7 +36,7 @@ public class CommonFacade {
 
     //组装好的label
     public WordCrfDTO crf_process(SearchData searchData){
-
+        
         AIAnalyze aiAnalyze = new AIAnalyze(crfServiceClient);
         WordCrfDTO wordCrfDTO = new WordCrfDTO();
         wordCrfDTO.setAge(searchData.getAge());

+ 8 - 0
src/main/java/com/diagbot/facade/IndicationFacade.java

@@ -2,6 +2,7 @@ package com.diagbot.facade;
 
 import com.diagbot.dto.IndicationDTO;
 import com.diagbot.dto.WordCrfDTO;
+import com.diagbot.util.CoreUtil;
 import com.diagbot.vo.IndicationPushVO;
 import com.diagbot.vo.StandConvert;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -34,22 +35,29 @@ public class IndicationFacade {
      */
     public IndicationDTO indicationFac(IndicationPushVO indicationPushVO) {
         IndicationDTO res = new IndicationDTO();
+        long l1 = System.currentTimeMillis();
         // 模型处理数据
         WordCrfDTO wordCrfDTO = commonFacade.crf_process(indicationPushVO);
+        CoreUtil.getDubugStr(l1, "处理模型数据", res.getDubugStr());
 
         // 标准词转换
+        long l2 = System.currentTimeMillis();
         StandConvert standConvert = commonFacade.dataTypeGet(wordCrfDTO);
         Map<Integer, Map<String, String>> standConvertMap = neoFacade.standConvert(standConvert);
         commonFacade.dataTypeSet(wordCrfDTO, standConvertMap);
+        CoreUtil.getDubugStr(l2, "同义词转换", res.getDubugStr());
 
         List<String> ruleTypeList = Arrays.asList(indicationPushVO.getRuleType().split(","));
 
+        long l3 = System.currentTimeMillis();
         // 开单合理性
         if (ruleTypeList.contains("2")) {
             billFacade.billFac(indicationPushVO, wordCrfDTO, res);
         }
 
         // TODO 其他类型提示
+        CoreUtil.getDubugStr(l3, "开单合理性规则处理", res.getDubugStr());
+        CoreUtil.getDubugStr(l1, "本次调用总计", res.getDubugStr());
         return res;
     }
 }

+ 8 - 2
src/main/java/com/diagbot/model/ai/BeHospitalizedAI.java

@@ -4,6 +4,8 @@ import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.diagbot.client.CRFServiceClient;
 import com.diagbot.dto.WordCrfDTO;
+import com.diagbot.exception.CommonErrorCode;
+import com.diagbot.exception.CommonException;
 import com.diagbot.model.ai.process.EntityProcessClinic;
 import com.diagbot.model.ai.process.EntityProcessDiag;
 import com.diagbot.model.ai.process.EntityProcessFamily;
@@ -205,8 +207,12 @@ public class BeHospitalizedAI extends ModelAI {
                 }*//*
                 putContent(crfContent, medicalTextType.get(6), suppleDiagText, Content.supple_diag);
             }*/
-
-            JSONObject midData = loadAI(crfContent, crfServiceClient);
+            JSONObject midData = null;
+            try {
+                 midData = loadAI(crfContent, crfServiceClient);
+            } catch (Exception e) {
+                throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "调用CRF模型出错!" + e.getMessage());
+            }
             /* 处理主诉 */
             if (wordCrfDTO.getChiefLabel() != null ) {
                 putChiefCrfData(midData.getJSONObject(Content.chief), wordCrfDTO);

+ 0 - 1
src/main/java/com/diagbot/model/ai/ModelAI.java

@@ -33,7 +33,6 @@ public class ModelAI {
             //存储CRF完整所需结构数据
             CRFVo crfVo = new CRFVo();
             crfVo.setData(crfContent);
-            long t1 = System.currentTimeMillis();
             //获取CRF模型返回数据
             data = getAnnotation(crfServiceClient, crfVo).getData();
         }

+ 12 - 9
src/main/java/com/diagbot/util/CoreUtil.java

@@ -469,15 +469,18 @@ public class CoreUtil {
      */
     public static  String listConvertString(List<String> list){
         return StringUtils.join(list, ",");
-        // String message = "";
-        // for(int i=0;i<list.size();i++){
-        //     if(i != list.size()-1){
-        //         message += list.get(i)+",";
-        //     }else {
-        //         message += list.get(i);
-        //     }
-        // }
-        // return message;
+    }
+
+    /**
+     * 输出调试信息
+     *
+     * @param start
+     * @param msg
+     * @param debugStr
+     */
+    public static void getDubugStr(long start,  String msg, List<String> debugStr) {
+        long end = System.currentTimeMillis();
+        debugStr.add(msg + "需要" + (end - start) / 1000.0 + "秒");
     }
 
     public static void main(String[] args) {