zhoutg hace 4 años
padre
commit
634a4dbdaf

+ 3 - 2
src/main/java/com/diagbot/facade/IndicationFacade.java

@@ -41,8 +41,9 @@ public class IndicationFacade {
 
     static {
         methodMap = new HashMap<>();
+        methodMap.put("1", Arrays.asList("crf", "stand"));
         methodMap.put("2", Arrays.asList("crf", "stand"));
-        methodMap.put("3", Arrays.asList());
+        methodMap.put("3", Arrays.asList("crf", "stand"));
     }
 
 
@@ -71,7 +72,7 @@ public class IndicationFacade {
             }
         }
 
-        WordCrfDTO wordCrfDTO = null;
+        WordCrfDTO wordCrfDTO = new WordCrfDTO();
         long l1 = System.currentTimeMillis();
 
         // 模型处理数据

+ 70 - 0
src/main/java/com/diagbot/facade/TestFacade.java

@@ -1,5 +1,6 @@
 package com.diagbot.facade;
 
+import com.diagbot.biz.push.entity.Lis;
 import com.diagbot.biz.push.entity.Pacs;
 import com.diagbot.client.StandConvertServiceClient;
 import com.diagbot.dto.IndicationDTO;
@@ -153,6 +154,75 @@ public class TestFacade {
                     msg.add("第【" + indicationPushVO.getIdNum() + "】行未匹配");
                 }
             } catch (Exception e) {
+                System.out.println(e.getMessage());
+                errMsg.add(indicationPushVO.getIdNum() + "行出错了");
+            }
+        }
+        map.put("总条数", indicationPushVOList.size() + "条");
+        map.put("出错条数", msg.size() + "条");
+        map.put("出错信息", msg);
+        map.put("程序报错", errMsg);
+        return map;
+    }
+
+
+    /**
+     * 开单项数据测试
+     *
+     * @param file
+     */
+    public Map<String, Object> importCriticalExcel(MultipartFile file, TestLineVO testLineVO) {
+        List<IndicationPushVO> indicationPushVOList = new ArrayList<>();
+        List<TestIndicationVO> data = ExcelUtils.importExcel(file, 0, 1, TestIndicationVO.class);
+        for (TestIndicationVO bean : data) {
+            if (StringUtil.isNotEmpty(testLineVO.getIdNum()) && !testLineVO.getIdNum().equals(bean.getIdNum())) {
+                continue;
+            }
+            IndicationPushVO indicationPushVO = new IndicationPushVO();
+            indicationPushVO.setRuleType("1");
+            if (StringUtil.isNotBlank(bean.getCriticalAge()) && "成人".equals(bean.getCriticalAge())) {
+                indicationPushVO.setAge(20);
+            } else if (StringUtil.isNotBlank(bean.getCriticalAge()) && "新生儿".equals(bean.getCriticalAge())) {
+                indicationPushVO.setAge(1);
+            } else {
+                indicationPushVO.setAge(20);
+            }
+            indicationPushVO.setSex(1);
+            indicationPushVO.setIdNum(bean.getIdNum());
+
+            List<Lis> lisDetail = new ArrayList<>();
+            if (bean.getCriticalMin() != null) {
+                Lis lisDetailBean = new Lis();
+                lisDetailBean.setName(bean.getCriticalMeal());
+                lisDetailBean.setDetailName(bean.getCriticalLis());
+                lisDetailBean.setUniqueName(bean.getCriticalLis());
+                lisDetailBean.setValue(bean.getCriticalMin());
+                lisDetail.add(lisDetailBean);
+            } else if (bean.getCriticalMax() != null) {
+                Lis lisDetailBean = new Lis();
+                lisDetailBean.setName(bean.getCriticalMeal());
+                lisDetailBean.setDetailName(bean.getCriticalLis());
+                lisDetailBean.setUniqueName(bean.getCriticalLis());
+                lisDetailBean.setValue(bean.getCriticalMax());
+                lisDetail.add(lisDetailBean);
+            }
+            indicationPushVO.setLis(lisDetail);
+
+            indicationPushVOList.add(indicationPushVO);
+        }
+
+        Map<String, Object> map = new LinkedHashMap<>();
+
+        List<String> msg = new ArrayList<>();
+        List<String> errMsg = new ArrayList<>();
+        for (IndicationPushVO indicationPushVO : indicationPushVOList) {
+            try {
+                IndicationDTO indicationDTO = indicationFacade.indicationFac(indicationPushVO);
+                if (ListUtil.isEmpty(indicationDTO.getCriticalValList())) {
+                    msg.add("第【" + indicationPushVO.getIdNum() + "】行未匹配");
+                }
+            } catch (Exception e) {
+                System.out.println(e.getMessage());
                 errMsg.add(indicationPushVO.getIdNum() + "行出错了");
             }
         }

+ 2 - 0
src/main/java/com/diagbot/process/CriticalProcess.java

@@ -43,6 +43,8 @@ public class CriticalProcess {
                     }
                 }
             }
+
+            // TODO 体征
         }
     }
 }

+ 12 - 0
src/main/java/com/diagbot/vo/TestIndicationVO.java

@@ -182,5 +182,17 @@ public class TestIndicationVO implements Serializable {
     private String neoType;
     @Excel(name="序号")
     private String idNum;
+
+    /***************************危急值*********************************************/
+    @Excel(name="实验室检查套餐")
+    private String criticalMeal;
+    @Excel(name="实验室检查")
+    private String criticalLis;
+    @Excel(name="低危急值")
+    private Double criticalMin;
+    @Excel(name="高危急值")
+    private Double criticalMax;
+    @Excel(name="参考对象")
+    private String criticalAge;
     /************************************************扩展字段结束***********************/
 }

+ 6 - 1
src/main/java/com/diagbot/web/TestController.java

@@ -33,12 +33,17 @@ public class TestController {
     @Autowired
     private TestFacade testFacade;
 
-    @ApiOperation(value = "开单合理性测试API[zhoutg]", notes = "ruleType(1:危急值提醒,2:开单合理项,3:管理评估,4:不良反应,5:药物推荐,6:异常值)")
+    @ApiOperation(value = "开单合理性测试API[zhoutg]", notes = "")
     @PostMapping("/testIndication")
     public RespDTO<Map<String, Object>> testIndication(@RequestParam("file") MultipartFile file, TestLineVO testLineVO) {
         return RespDTO.onSuc(testFacade.importExcel(file, testLineVO));
     }
 
+    @ApiOperation(value = "危急值测试API[zhoutg]", notes = "")
+    @PostMapping("/testCritical")
+    public RespDTO<Map<String, Object>> testCritical(@RequestParam("file") MultipartFile file, TestLineVO testLineVO) {
+        return RespDTO.onSuc(testFacade.importCriticalExcel(file, testLineVO));
+    }
 
     @ApiOperation(value = "标准词转换API[zhoutg]", notes = "类型,疾病: disease,症状: symptom,手术和操作:operation,药品: drug,实验室检查:lis,辅助检查:pacs, 辅助检查:vital")
     @PostMapping("/testStandConvert")