zhoutg 4 gadi atpakaļ
vecāks
revīzija
acac6ab00a

+ 157 - 217
src/main/java/com/diagbot/facade/TestFacade.java

@@ -7,6 +7,8 @@ import com.diagbot.client.StandConvertServiceClient;
 import com.diagbot.dto.IndicationDTO;
 import com.diagbot.dto.StandConvertCrfBatchDTO;
 import com.diagbot.dto.StandConvertCrfDTO;
+import com.diagbot.exception.CommonErrorCode;
+import com.diagbot.exception.CommonException;
 import com.diagbot.util.ExcelUtils;
 import com.diagbot.util.ListUtil;
 import com.diagbot.util.StringUtil;
@@ -95,97 +97,79 @@ public class TestFacade {
 
             if (StringUtil.isNotEmpty(bean.getNeoType())) {
                 switch (bean.getNeoType()) {
-                    // case "1" : // 性别
-                    //     if ("男性".equals(bean.getNeoName())) {
-                    //         indicationPushVO.setSex(1);
-                    //     } else if ("女性".equals(bean.getNeoName())) {
-                    //         indicationPushVO.setSex(2);
-                    //     }
-                    //     break;
-                    // case "2" : // 化验, 示例:血小板计数,<,50,10^9/L
-                    //     String lisStr = bean.getNeoName();
-                    //     String[] lisArr = lisStr.split(",");
-                    //
-                    //     List<Lis> lisList = new ArrayList<>();
-                    //     Lis lisBean = new Lis();
-                    //     lisBean.setUniqueName(lisArr[0]);
-                    //     lisBean.setName(lisArr[0]);
-                    //     lisBean.setDetailName(lisArr[0]);
-                    //     lisBean.setValue(getValue(lisArr));
-                    //     lisList.add(lisBean);
-                    //     indicationPushVO.setLis(lisList);
-                    //     break;
-                    // case "3" : // 临床表现
-                    //     indicationPushVO.setChief(bean.getNeoName());
-                    //     break;
-                    // case "4": //辅助检查描述
-                    //     indicationPushVO.setSymptom("B超:提示"+bean.getNeoName());
-                    //     break;
-                    // case "5" : // 诊断
-                    //     List<Item> diag = new ArrayList<>();
-                    //     Item diagItem = new Item();
-                    //     diagItem.setName(bean.getNeoName());
-                    //     diagItem.setUniqueName(bean.getNeoName());
-                    //     diag.add(diagItem);
-                    //     indicationPushVO.setDiag(diag);
-                    //     break;
-                    // case "6" : // 服用药品
-                    //     StringBuffer symptom = new StringBuffer("发病来,神志清,精神可,胃纳一般,睡眠可,二便无殊。一直服用");
-                    //     symptom.append(bean.getNeoName()).append("。");
-                    //     indicationPushVO.setSymptom(symptom.toString());
-                    //     break;
-                    // case "12": // 体征
-                    //    StringBuffer sbVital = new StringBuffer();
-                    //    String[] vitalArr = bean.getNeoName().split(",");
-                    //    if (vitalArr.length > 1) {
-                    //        if ("收缩压".equals(vitalArr[0]) || "舒张压".equals(vitalArr[0])) {
-                    //            if ("收缩压".equals(vitalArr[0])) {
-                    //                sbVital.append("血压");
-                    //                sbVital.append(getValue(vitalArr) + "/100mmHg");
-                    //                indicationPushVO.setVital(sbVital.toString());
-                    //            } else if ("舒张压".equals(vitalArr[0])) {
-                    //                sbVital.append("血压");
-                    //                sbVital.append("100/" + getValue(vitalArr) + "mmHg");
-                    //                indicationPushVO.setVital(sbVital.toString());
-                    //            }
-                    //        } else {
-                    //            // 其他数值类型
-                    //            sbVital.append(vitalArr[0]);
-                    //            sbVital.append(getValue(vitalArr));
-                    //            sbVital.append(vitalArr[3]);
-                    //            indicationPushVO.setVital(sbVital.toString());
-                    //        }
-                    //    } else {
-                    //        sbVital.append(vitalArr[0]);
-                    //        indicationPushVO.setVital(sbVital.toString());
-                    //    }
-                    //    break;
-                    // default:
-                    //     continue;
+                    case "1" : // 性别
+                        if ("男性".equals(bean.getNeoName())) {
+                            indicationPushVO.setSex(1);
+                        } else if ("女性".equals(bean.getNeoName())) {
+                            indicationPushVO.setSex(2);
+                        }
+                        break;
+                    case "2" : // 化验, 示例:血小板计数,<,50,10^9/L
+                        String lisStr = bean.getNeoName();
+                        String[] lisArr = lisStr.split(",");
+
+                        List<Lis> lisList = new ArrayList<>();
+                        Lis lisBean = new Lis();
+                        lisBean.setUniqueName(lisArr[0]);
+                        lisBean.setName(lisArr[0]);
+                        lisBean.setDetailName(lisArr[0]);
+                        lisBean.setValue(getValue(lisArr));
+                        lisList.add(lisBean);
+                        indicationPushVO.setLis(lisList);
+                        break;
+                    case "3" : // 临床表现
+                        indicationPushVO.setChief(bean.getNeoName());
+                        break;
+                    case "4": //辅助检查描述
+                        indicationPushVO.setSymptom("B超:提示"+bean.getNeoName());
+                        break;
+                    case "5" : // 诊断
+                        List<Item> diag = new ArrayList<>();
+                        Item diagItem = new Item();
+                        diagItem.setName(bean.getNeoName());
+                        diagItem.setUniqueName(bean.getNeoName());
+                        diag.add(diagItem);
+                        indicationPushVO.setDiag(diag);
+                        break;
+                    case "6" : // 服用药品
+                        StringBuffer symptom = new StringBuffer("发病来,神志清,精神可,胃纳一般,睡眠可,二便无殊。一直服用");
+                        symptom.append(bean.getNeoName()).append("。");
+                        indicationPushVO.setSymptom(symptom.toString());
+                        break;
+                    case "12": // 体征
+                       StringBuffer sbVital = new StringBuffer();
+                       String[] vitalArr = bean.getNeoName().split(",");
+                       if (vitalArr.length > 1) {
+                           if ("收缩压".equals(vitalArr[0]) || "舒张压".equals(vitalArr[0])) {
+                               if ("收缩压".equals(vitalArr[0])) {
+                                   sbVital.append("血压");
+                                   sbVital.append(getValue(vitalArr) + "/100mmHg");
+                                   indicationPushVO.setVital(sbVital.toString());
+                               } else if ("舒张压".equals(vitalArr[0])) {
+                                   sbVital.append("血压");
+                                   sbVital.append("100/" + getValue(vitalArr) + "mmHg");
+                                   indicationPushVO.setVital(sbVital.toString());
+                               }
+                           } else {
+                               // 其他数值类型
+                               sbVital.append(vitalArr[0]);
+                               sbVital.append(getValue(vitalArr));
+                               sbVital.append(vitalArr[3]);
+                               indicationPushVO.setVital(sbVital.toString());
+                           }
+                       } else {
+                           sbVital.append(vitalArr[0]);
+                           indicationPushVO.setVital(sbVital.toString());
+                       }
+                       break;
+                    default:
+                        continue;
                 }
             }
             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.getBillMsgList())) {
-                    msg.add("第【" + indicationPushVO.getIdNum() + "】行未匹配");
-                }
-            } catch (Exception e) {
-                System.out.println(indicationPushVO.getIdNum() + "行出错了!" + e.getMessage());
-                errMsg.add(indicationPushVO.getIdNum() + "行出错了");
-            }
-        }
-        map.put("总条数", indicationPushVOList.size() + "条");
-        map.put("出错条数", msg.size() + "条");
-        map.put("出错信息", msg);
-        map.put("程序报错", errMsg);
+        Map<String, Object> map = getDebugMap(indicationPushVOList, "2");
         return map;
     }
 
@@ -251,25 +235,7 @@ public class TestFacade {
             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.getBillMsgList())) {
-                    msg.add("第【" + indicationPushVO.getIdNum() + "】行未匹配");
-                }
-            } catch (Exception e) {
-                System.out.println(indicationPushVO.getIdNum() + "行出错了!" + e.getMessage());
-                errMsg.add(indicationPushVO.getIdNum() + "行出错了");
-            }
-        }
-        map.put("总条数", indicationPushVOList.size() + "条");
-        map.put("出错条数", msg.size() + "条");
-        map.put("出错信息", msg);
-        map.put("程序报错", errMsg);
+        Map<String, Object> map = getDebugMap(indicationPushVOList, "2");
         return map;
     }
 
@@ -301,25 +267,7 @@ public class TestFacade {
             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.getHighRiskList())) {
-                    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);
+        Map<String, Object> map = getDebugMap(indicationPushVOList, "3");
         return map;
     }
 
@@ -365,25 +313,7 @@ public class TestFacade {
             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.getOtherList())) {
-                    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);
+        Map<String, Object> map = getDebugMap(indicationPushVOList, "4");
         return map;
     }
 
@@ -450,25 +380,7 @@ public class TestFacade {
             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.getOtherList())) {
-                    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);
+        Map<String, Object> map = getDebugMap(indicationPushVOList, "4");
         return map;
     }
 
@@ -517,24 +429,7 @@ public class TestFacade {
             }
         }
 
-        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.getOtherList())) {
-                    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);
+        Map<String, Object> map = getDebugMap(indicationPushVOList, "4");
         return map;
     }
 
@@ -566,34 +461,16 @@ public class TestFacade {
             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.getHighRiskList())) {
-                    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);
+        Map<String, Object> map = getDebugMap(indicationPushVOList, "3");
         return map;
     }
 
     /**
-     * 危急值数据测试
+     * 危急值数据测试——化验
      *
      * @param file
      */
-    public Map<String, Object> importCriticalExcel(MultipartFile file, TestLineVO testLineVO) {
+    public Map<String, Object> importCriticalLisExcel(MultipartFile file, TestLineVO testLineVO) {
         List<IndicationPushVO> indicationPushVOList = new ArrayList<>();
         List<TestIndicationVO> data = ExcelUtils.importExcelMultiSheets(file, 0, 1, testLineVO.getSheetIndex(), TestIndicationVO.class);
         for (TestIndicationVO bean : data) {
@@ -633,25 +510,38 @@ public class TestFacade {
             indicationPushVOList.add(indicationPushVO);
         }
 
-        Map<String, Object> map = new LinkedHashMap<>();
+        Map<String, Object> map = getDebugMap(indicationPushVOList, "1");
+        return map;
+    }
 
-        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() + "行出错了");
+    /**
+     * 危急值数据测试——辅检
+     *
+     * @param file
+     */
+    public Map<String, Object> importCriticalPacsExcel(MultipartFile file, TestLineVO testLineVO) {
+        List<IndicationPushVO> indicationPushVOList = new ArrayList<>();
+        List<TestIndicationVO> data = ExcelUtils.importExcelMultiSheets(file, 0, 1, testLineVO.getSheetIndex(), TestIndicationVO.class);
+        for (TestIndicationVO bean : data) {
+            if (StringUtil.isNotEmpty(testLineVO.getIdNum()) && !testLineVO.getIdNum().equals(bean.getIdNum())) {
+                continue;
             }
+            IndicationPushVO indicationPushVO = new IndicationPushVO();
+            indicationPushVO.setRuleType("1");
+
+            List<Pacs> pacsList = new ArrayList<>();
+            Pacs pacs = new Pacs();
+            pacs.setName("腹部B超");
+            pacs.setUniqueName("腹部B超");
+            pacs.setResult(bean.getRuleText());
+            pacsList.add(pacs);
+            indicationPushVO.setPacs(pacsList);
+            indicationPushVO.setIdNum(bean.getIdNum());
+
+            indicationPushVOList.add(indicationPushVO);
         }
-        map.put("总条数", indicationPushVOList.size() + "条");
-        map.put("出错条数", msg.size() + "条");
-        map.put("出错信息", msg);
-        map.put("程序报错", errMsg);
+
+        Map<String, Object> map = getDebugMap(indicationPushVOList, "1");
         return map;
     }
 
@@ -845,4 +735,54 @@ public class TestFacade {
         map.put("程序报错", errMsg);
         return map;
     }
+
+    /**
+     * 提示方法
+     *
+     * @param indicationPushVOList
+     * @param ruleType
+     * @return
+     */
+    public Map getDebugMap(List<IndicationPushVO> indicationPushVOList, String ruleType) {
+        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);
+                switch (ruleType) {
+                    case "1":
+                        if (ListUtil.isEmpty(indicationDTO.getCriticalValList())) {
+                            msg.add("第【" + indicationPushVO.getIdNum() + "】行未匹配");
+                        }
+                        break;
+                    case "2":
+                        if (ListUtil.isEmpty(indicationDTO.getBillMsgList())) {
+                            msg.add("第【" + indicationPushVO.getIdNum() + "】行未匹配");
+                        }
+                        break;
+                    case "3":
+                        if (ListUtil.isEmpty(indicationDTO.getHighRiskList())) {
+                            msg.add("第【" + indicationPushVO.getIdNum() + "】行未匹配");
+                        }
+                        break;
+                    case "4":
+                        if (ListUtil.isEmpty(indicationDTO.getOtherList())) {
+                            msg.add("第【" + indicationPushVO.getIdNum() + "】行未匹配");
+                        }
+                        break;
+                    default:
+                        throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "ruleType格式不对");
+                }
+            } 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;
+    }
 }

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

@@ -243,4 +243,6 @@ public class TestIndicationVO implements Serializable {
     private String pacsAll;
     @Excel(name="年龄T")
     private String ageAll;
+    @Excel(name="规则")
+    private String ruleText;
 }

+ 14 - 5
src/main/java/com/diagbot/web/TestController.java

@@ -49,12 +49,20 @@ public class TestController {
         return RespDTO.onSuc(testFacade.testIndicationTransfusion(file, testLineVO));
     }
 
-    @ApiOperation(value = "危急值测试API[zhoutg]",
+    @ApiOperation(value = "危急值测试API——化验[zhoutg]",
             notes = "idNum:指定行测试<br>" +
                     "sheetIndex:sheet的下标,默认为0,表示第一个sheet")
-    @PostMapping("/testCritical")
-    public RespDTO<Map<String, Object>> testCritical(@RequestParam("file") MultipartFile file, TestLineVO testLineVO) {
-        return RespDTO.onSuc(testFacade.importCriticalExcel(file, testLineVO));
+    @PostMapping("/testCriticalLis")
+    public RespDTO<Map<String, Object>> testCriticalLis(@RequestParam("file") MultipartFile file, TestLineVO testLineVO) {
+        return RespDTO.onSuc(testFacade.importCriticalLisExcel(file, testLineVO));
+    }
+
+    @ApiOperation(value = "危急值测试API——辅检[zhoutg]",
+            notes = "idNum:指定行测试<br>" +
+                    "sheetIndex:sheet的下标,默认为0,表示第一个sheet")
+    @PostMapping("/testCriticalPacs")
+    public RespDTO<Map<String, Object>> testCriticalPacs(@RequestParam("file") MultipartFile file, TestLineVO testLineVO) {
+        return RespDTO.onSuc(testFacade.importCriticalPacsExcel(file, testLineVO));
     }
 
     @ApiOperation(value = "高危手术测试API[zhoutg]",
@@ -89,7 +97,6 @@ public class TestController {
         return RespDTO.onSuc(testFacade.testOtherTipPacs(file, testLineVO));
     }
 
-
     @ApiOperation(value = "其他值提醒测试——输血API[zhoutg]",
             notes = "idNum:指定行测试<br>" +
                     "sheetIndex:sheet的下标,默认为0,表示第一个sheet")
@@ -109,6 +116,7 @@ public class TestController {
     public RespDTO<StandConvertCrfBatchDTO> testStandConvertBatch(@RequestBody List<StandConvertCrfVO> standConvertCrfVOList) {
         return RespDTO.onSuc(testFacade.testStandConvertBatch(standConvertCrfVOList));
     }
+
     @ApiOperation(value = "复杂高危手术测试API[zhoutg]",
             notes = "idNum:指定行测试<br>" +
                     "sheetIndex:sheet的下标,默认为0,表示第一个sheet")
@@ -116,5 +124,6 @@ public class TestController {
     public RespDTO<Map<String, Object>> testHighRiskProcess(@RequestParam("file") MultipartFile file, TestLineVO testLineVO) {
         return RespDTO.onSuc(testFacade.testHighRiskProcess(file, testLineVO));
     }
+
 }