Procházet zdrojové kódy

药品、手术测试数据

zhoutg před 4 roky
rodič
revize
6e10bd4ca9

+ 3 - 3
src/main/java/com/diagbot/config/CacheDeleteInit.java

@@ -28,8 +28,8 @@ public class CacheDeleteInit implements CommandLineRunner {
         // 服务启动清除redis缓存
         cacheFacade.clear();
         log.info("CDSS-CORE服务启动清除redis缓存成功!");
-
-        neoFacade.getDrugCache();
-        log.info("CDSS-CORE服务启动加载药品缓存成功!");
+        //
+        // neoFacade.getDrugCache();
+        // log.info("CDSS-CORE服务启动加载药品缓存成功!");
     }
 }

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

@@ -188,6 +188,106 @@ public class TestFacade {
     }
 
 
+    /**
+     * 高危手术测试API
+     *
+     * @param file
+     */
+    public Map<String, Object> testHighRiskOperationExcel(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;
+            }
+            // 3,4是高危手术
+            if ("0".equals(bean.getOperationLevel()) || "1".equals(bean.getOperationLevel()) || "2".equals(bean.getOperationLevel())) {
+                continue;
+            }
+            IndicationPushVO indicationPushVO = new IndicationPushVO();
+            indicationPushVO.setRuleType("3");
+            indicationPushVO.setIdNum(bean.getIdNum());
+            List<Item> operationOrder = new ArrayList<>();
+            Item item = new Item();
+            item.setUniqueName(bean.getOperationHighRisk());
+            item.setName(bean.getOperationHighRisk());
+            operationOrder.add(item);
+            indicationPushVO.setOperationOrder(operationOrder);
+            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);
+        return map;
+    }
+
+
+    /**
+     * 高危药品测试API
+     *
+     * @param file
+     */
+    public Map<String, Object> testHighRiskDrugExcel(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;
+            }
+            if (StringUtil.isEmpty(bean.getDrugLevel())) {
+                continue;
+            }
+            IndicationPushVO indicationPushVO = new IndicationPushVO();
+            indicationPushVO.setRuleType("3");
+            indicationPushVO.setIdNum(bean.getIdNum());
+            List<Item> drugOrder = new ArrayList<>();
+            Item item = new Item();
+            item.setUniqueName(bean.getDrugHighRisk());
+            item.setName(bean.getDrugHighRisk());
+            drugOrder.add(item);
+            indicationPushVO.setDrugOrder(drugOrder);
+            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);
+        return map;
+    }
+
     /**
      * 危急值数据测试
      *

+ 1 - 0
src/main/java/com/diagbot/process/HighRiskProcess.java

@@ -28,6 +28,7 @@ public class HighRiskProcess {
             billMsg.setOrderStandName(highRiskNeoDTO.getStandname());
             billMsg.setType(highRiskNeoDTO.getType());
             res.getHighRiskList().add(billMsg);
+            System.out.println(highRiskNeoDTO);
         }
     }
 }

+ 14 - 6
src/main/java/com/diagbot/vo/TestIndicationVO.java

@@ -169,7 +169,10 @@ public class TestIndicationVO implements Serializable {
 
 
 
-    /************************************************扩展字段开始***********************/
+    /************************************************扩展字段公共部分********************************/
+    @Excel(name="序号")
+    private String idNum;
+    /************************************************开单项类型*************************************/
     @Excel(name="开单项类型")
     private String orderType;
     @Excel(name="标准名称")
@@ -178,10 +181,7 @@ public class TestIndicationVO implements Serializable {
     private String neoName;
     @Excel(name="禁忌类型")
     private String neoType;
-    @Excel(name="序号")
-    private String idNum;
-
-    /***************************危急值*********************************************/
+    /*************************************************危急值*********************************************/
     @Excel(name="实验室检查套餐")
     private String criticalMeal;
     @Excel(name="实验室检查")
@@ -192,5 +192,13 @@ public class TestIndicationVO implements Serializable {
     private Double criticalMax;
     @Excel(name="参考对象")
     private String criticalAge;
-    /************************************************扩展字段结束***********************/
+    /************************************************高危药品和手术***********************/
+    @Excel(name="手术级别")
+    private String operationLevel;
+    @Excel(name="医保手术和操作名称")
+    private String operationHighRisk;
+    @Excel(name="药品高危级别")
+    private String drugLevel;
+    @Excel(name="药品注册名称")
+    private String drugHighRisk;
 }

+ 16 - 0
src/main/java/com/diagbot/web/TestController.java

@@ -49,6 +49,22 @@ public class TestController {
         return RespDTO.onSuc(testFacade.importCriticalExcel(file, testLineVO));
     }
 
+    @ApiOperation(value = "高危手术测试API[zhoutg]",
+            notes = "idNum:指定行测试<br>" +
+                    "sheetIndex:sheet的下标,默认为0,表示第一个sheet")
+    @PostMapping("/testHighRiskOperation")
+    public RespDTO<Map<String, Object>> testHighRiskOperation(@RequestParam("file") MultipartFile file, TestLineVO testLineVO) {
+        return RespDTO.onSuc(testFacade.testHighRiskOperationExcel(file, testLineVO));
+    }
+
+    @ApiOperation(value = "高危药品测试API[zhoutg]",
+            notes = "idNum:指定行测试<br>" +
+                    "sheetIndex:sheet的下标,默认为0,表示第一个sheet")
+    @PostMapping("/testHighRiskDrug")
+    public RespDTO<Map<String, Object>> testHighRiskDrug(@RequestParam("file") MultipartFile file, TestLineVO testLineVO) {
+        return RespDTO.onSuc(testFacade.testHighRiskDrugExcel(file, testLineVO));
+    }
+
     @ApiOperation(value = "标准词转换API[zhoutg]", notes = "类型,疾病: disease,症状: symptom,手术和操作:operation,药品: drug,实验室检查:lis,辅助检查:pacs, 辅助检查:vital")
     @PostMapping("/testStandConvert")
     public RespDTO<StandConvertCrfDTO> testStandConvert(@RequestBody StandConvertCrfVO standConvertCrfVO) {

+ 1 - 0
src/main/resources/application-dev.yml

@@ -102,6 +102,7 @@ spring:
   servlet:
     multipart:
       max-request-size: 2048MB
+      maxFileSize: 50MB
 
 neo4j:
   data:

+ 1 - 0
src/main/resources/application-local.yml

@@ -102,6 +102,7 @@ spring:
   servlet:
     multipart:
       max-request-size: 2048MB
+      maxFileSize: 50MB
 
 neo4j:
   data:

+ 1 - 0
src/main/resources/application-pre.yml

@@ -102,6 +102,7 @@ spring:
   servlet:
     multipart:
       max-request-size: 2048MB
+      maxFileSize: 50MB
 
 neo4j:
   data:

+ 1 - 0
src/main/resources/application-pro.yml

@@ -102,6 +102,7 @@ spring:
   servlet:
     multipart:
       max-request-size: 2048MB
+      maxFileSize: 50MB
 
 
 neo4j:

+ 1 - 0
src/main/resources/application-test.yml

@@ -102,6 +102,7 @@ spring:
   servlet:
     multipart:
       max-request-size: 2048MB
+      maxFileSize: 50MB
 
 neo4j:
   data: