Ver código fonte

推理假数据逻辑调整

gaodm 4 anos atrás
pai
commit
b32c0e7cc5

+ 4 - 0
src/main/java/com/diagbot/dto/PushDTO.java

@@ -4,6 +4,7 @@ import lombok.Getter;
 import lombok.Setter;
 
 import java.util.ArrayList;
+import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
 
@@ -33,4 +34,7 @@ public class PushDTO {
     private Map<String, List<PushBaseDTO>> dis;
     //一般治疗
     private List<TreatDTO> treat = new ArrayList<>();
+
+    // 记录调试信息
+    private Map<String, Object> debug = new LinkedHashMap<>();
 }

+ 88 - 70
src/main/java/com/diagbot/facade/PushFacade.java

@@ -18,6 +18,7 @@ import com.diagbot.vo.PushPlanVO;
 import com.diagbot.vo.PushVO;
 import com.diagbot.vo.SearchData;
 import com.google.common.collect.Lists;
+import org.apache.commons.collections4.MapUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
@@ -59,83 +60,100 @@ public class PushFacade {
         searchData = assembleFacade.assembleData(searchData);
         BeanUtil.copyProperties(searchData, pushVO);
         RespDTO<PushDTO> resp = cdssCoreClient.push(pushVO);
-        //RespDTOUtil.respNGDeal(resp, "远程调用推理接口失败");
-        //PushDTO data = resp.data;
-        PushDTO data = new PushDTO();
+        RespDTOUtil.respNGDeal(resp, "远程调用推理接口失败");
+        PushDTO data = resp.data;
+        // PushDTO data = new PushDTO();
         //症状
-        List<PushBaseDTO> symptom = Lists.newArrayList();
-        PushBaseDTO sympItem1 = new PushBaseDTO();
-        sympItem1.setName("发热");
-        symptom.add(sympItem1);
-        PushBaseDTO sympItem2 = new PushBaseDTO();
-        sympItem2.setName("咳嗽");
-        symptom.add(sympItem2);
-        data.setSymptom(symptom);
+        if (ListUtil.isEmpty(data.getSymptom())){
+            List<PushBaseDTO> symptom = Lists.newArrayList();
+            PushBaseDTO sympItem1 = new PushBaseDTO();
+            sympItem1.setName("发热");
+            symptom.add(sympItem1);
+            PushBaseDTO sympItem2 = new PushBaseDTO();
+            sympItem2.setName("咳嗽");
+            symptom.add(sympItem2);
+            data.setSymptom(symptom);
+        }
         //体格检查
-        List<PushBaseDTO> vital = Lists.newArrayList();
-        PushBaseDTO vital1 = new PushBaseDTO();
-        vital1.setName("肾区叩痛阳性");
-        vital.add(vital1);
-        PushBaseDTO vital2 = new PushBaseDTO();
-        vital2.setName("血压升高");
-        vital.add(vital2);
-        data.setVital(vital);
+        if (ListUtil.isEmpty(data.getVital())){
+            List<PushBaseDTO> vital = Lists.newArrayList();
+            PushBaseDTO vital1 = new PushBaseDTO();
+            vital1.setName("肾区叩痛阳性");
+            vital.add(vital1);
+            PushBaseDTO vital2 = new PushBaseDTO();
+            vital2.setName("血压升高");
+            vital.add(vital2);
+            data.setVital(vital);
+        }
         //检验
-        List<PushBaseDTO> lis = Lists.newArrayList();
-        PushBaseDTO lis1 = new PushBaseDTO();
-        lis1.setName("血常规");
-        lis.add(lis1);
-        PushBaseDTO lis2 = new PushBaseDTO();
-        lis2.setName("尿常规");
-        lis.add(lis2);
-        PushBaseDTO lis3 = new PushBaseDTO();
-        lis3.setName("幽门螺杆菌抗体测定");
-        lis.add(lis3);
-        data.setLis(lis);
+        if (ListUtil.isEmpty(data.getLis())){
+            List<PushBaseDTO> lis = Lists.newArrayList();
+            PushBaseDTO lis1 = new PushBaseDTO();
+            lis1.setName("血常规");
+            lis.add(lis1);
+            PushBaseDTO lis2 = new PushBaseDTO();
+            lis2.setName("尿常规");
+            lis.add(lis2);
+            PushBaseDTO lis3 = new PushBaseDTO();
+            lis3.setName("幽门螺杆菌抗体测定");
+            lis.add(lis3);
+            data.setLis(lis);
+        }
         //检查
-        List<PushBaseDTO> pacs = Lists.newArrayList();
-        PushBaseDTO pacs1 = new PushBaseDTO();
-        pacs1.setName("普通胃镜检查");
-        pacs.add(pacs1);
-        PushBaseDTO pacs2 = new PushBaseDTO();
-        pacs2.setName("经直肠前列腺彩超检查");
-        pacs.add(pacs2);
-        data.setPacs(pacs);
+        if (ListUtil.isEmpty(data.getPacs())){
+            List<PushBaseDTO> pacs = Lists.newArrayList();
+            PushBaseDTO pacs1 = new PushBaseDTO();
+            pacs1.setName("普通胃镜检查");
+            pacs.add(pacs1);
+            PushBaseDTO pacs2 = new PushBaseDTO();
+            pacs2.setName("经直肠前列腺彩超检查");
+            pacs.add(pacs2);
+            data.setPacs(pacs);
+        }
         //药品
-        List<PushBaseDTO> medicines = Lists.newArrayList();
-        PushBaseDTO medicines1 = new PushBaseDTO();
-        medicines1.setName("钙通道阻滞剂");
-        medicines.add(medicines1);
-        PushBaseDTO medicines2 = new PushBaseDTO();
-        medicines2.setName("盐酸肾上腺素注射液");
-        medicines.add(medicines2);
-        data.setMedicines(medicines);
+        if (ListUtil.isEmpty(data.getMedicines())){
+            List<PushBaseDTO> medicines = Lists.newArrayList();
+            PushBaseDTO medicines1 = new PushBaseDTO();
+            medicines1.setName("钙通道阻滞剂");
+            medicines.add(medicines1);
+            PushBaseDTO medicines2 = new PushBaseDTO();
+            medicines2.setName("盐酸肾上腺素注射液");
+            medicines.add(medicines2);
+            data.setMedicines(medicines);
+        }
         //手术和操作
-        List<PushBaseDTO> operations = Lists.newArrayList();
-        PushBaseDTO operations1 = new PushBaseDTO();
-        operations1.setName("前列腺按摩");
-        operations.add(operations1);
-        PushBaseDTO operations2 = new PushBaseDTO();
-        operations2.setName("经皮冠状动脉介入治疗(PCI)");
-        operations.add(operations2);
-        data.setOperations(operations);
+        if (ListUtil.isEmpty(data.getOperations())){
+            List<PushBaseDTO> operations = Lists.newArrayList();
+            PushBaseDTO operations1 = new PushBaseDTO();
+            operations1.setName("前列腺按摩");
+            operations.add(operations1);
+            PushBaseDTO operations2 = new PushBaseDTO();
+            operations2.setName("经皮冠状动脉介入治疗(PCI)");
+            operations.add(operations2);
+            data.setOperations(operations);
+        }
         //诊断
-        List<PushBaseDTO> dis = Lists.newArrayList();
-        PushBaseDTO disItem1 = new PushBaseDTO();
-        disItem1.setName("急性胰腺炎");
-        dis.add(disItem1);
-        PushBaseDTO disItem2 = new PushBaseDTO();
-        disItem2.setName("无晶状体眼");
-        dis.add(disItem2);
-        Map<String, List<PushBaseDTO>> disMap = new HashMap<>();
-        disMap.put("可能诊断", dis);
-        data.setDis(disMap);
-        List<TreatDTO> treat = new ArrayList<>();
-        TreatDTO treatDTO1 = new TreatDTO();
-        treatDTO1.setName("无晶状体眼");
-        treatDTO1.setUniqueName("无晶状体眼");
-        treat.add(treatDTO1);
-        data.setTreat(treat);
+        if (MapUtils.isEmpty(data.getDis())){
+            List<PushBaseDTO> dis = Lists.newArrayList();
+            PushBaseDTO disItem1 = new PushBaseDTO();
+            disItem1.setName("急性胰腺炎");
+            dis.add(disItem1);
+            PushBaseDTO disItem2 = new PushBaseDTO();
+            disItem2.setName("无晶状体眼");
+            dis.add(disItem2);
+            Map<String, List<PushBaseDTO>> disMap = new HashMap<>();
+            disMap.put("可能诊断", dis);
+            data.setDis(disMap);
+        }
+        //一般治疗
+        if (ListUtil.isEmpty(data.getTreat())){
+            List<TreatDTO> treat = new ArrayList<>();
+            TreatDTO treatDTO1 = new TreatDTO();
+            treatDTO1.setName("无晶状体眼");
+            treatDTO1.setUniqueName("无晶状体眼");
+            treat.add(treatDTO1);
+            data.setTreat(treat);
+        }
         //出参映射
         data = assembleFacade.assemblePushDTO(data, pushVO.getHospitalId());
         //是否有静态信息