Browse Source

输血测试数据

zhoutg 4 years ago
parent
commit
5f0ef77ac0

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

@@ -189,8 +189,8 @@ public class CommonFacade {
         List<String> transfusionList = new ArrayList<>();
         if (ListUtil.isNotEmpty(wordCrfDTO.getTransfusionOrder())) {
             transfusionList.addAll(wordCrfDTO.getTransfusionOrder().stream().filter(z -> StringUtils.isBlank(z.getUniqueName())).map(x -> x.getName()).collect(Collectors.toList()));
-            standConvert.setTransfusionList(transfusionList);
         }
+        standConvert.setTransfusionList(transfusionList);
 
         return standConvert;
     }

+ 69 - 4
src/main/java/com/diagbot/facade/TestFacade.java

@@ -240,7 +240,7 @@ public class TestFacade {
                         lisBean.setUniqueName(bean.getStandName());
                         lisBean.setName(bean.getStandName());
                         lisBean.setDetailName(bean.getStandName());
-                        lisBean.setValue(getValue(bean.getOtherTipLisSymbol(), bean.getOtherTipLisValue()));
+                        lisBean.setValue(getValue(bean.getSymbol(), bean.getValue()));
                         lisList.add(lisBean);
                         indicationPushVO.setLis(lisList);
                         break;
@@ -294,8 +294,8 @@ public class TestFacade {
             indicationPushVO.setIdNum(bean.getIdNum());
             List<Item> operationOrder = new ArrayList<>();
             Item item = new Item();
-            item.setUniqueName(bean.getOperationHighRisk());
-            item.setName(bean.getOperationHighRisk());
+            item.setUniqueName(bean.getOperationName());
+            item.setName(bean.getOperationName());
             operationOrder.add(item);
             indicationPushVO.setOperationOrder(operationOrder);
             indicationPushVOList.add(indicationPushVO);
@@ -359,7 +359,7 @@ public class TestFacade {
             lis.setName("套餐");
             lis.setDetailName("明细");
             lis.setUniqueName(bean.getOtherTipLisName());
-            lis.setValue(getValue(bean.getOtherTipLisSymbol(), bean.getOtherTipLisValue()));
+            lis.setValue(getValue(bean.getSymbol(), bean.getValue()));
             lisList.add(lis);
             indicationPushVO.setLis(lisList);
             indicationPushVOList.add(indicationPushVO);
@@ -387,6 +387,71 @@ public class TestFacade {
         return map;
     }
 
+    /**
+     * 其他值提醒测试——输血
+     *
+     * @param file
+     */
+    public Map<String, Object> testOtherTipTransfusion(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("4");
+            indicationPushVO.setIdNum(bean.getIdNum());
+
+            if (StringUtil.isNotBlank(bean.getDisName())) {
+                List<Item> diag = new ArrayList<>();
+                Item item = new Item();
+                item.setUniqueName(bean.getDisName());
+                item.setName(bean.getDisName());
+                diag.add(item);
+                indicationPushVO.setDiag(diag);
+            }
+            if (StringUtil.isNotBlank(bean.getOperationName())) {
+                List<Item> operation = new ArrayList<>();
+                Item item = new Item();
+                item.setUniqueName(bean.getOperationName());
+                item.setName(bean.getOperationName());
+                operation.add(item);
+                indicationPushVO.setOperation(operation);
+            }
+            if("实验室检查名称".equals(bean.getItemNodeName())) {
+                List<Lis> lisList = new ArrayList<>();
+                Lis lis = new Lis();
+                lis.setName("套餐");
+                lis.setDetailName("明细");
+                lis.setUniqueName(bean.getItemName());
+                lis.setValue(getValue(bean.getSymbol(), bean.getValue()));
+                lisList.add(lis);
+                indicationPushVO.setLis(lisList);
+                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);
+        return map;
+    }
 
     /**
      * 高危药品测试API

+ 16 - 9
src/main/java/com/diagbot/vo/TestIndicationVO.java

@@ -172,7 +172,8 @@ public class TestIndicationVO implements Serializable {
     /************************************************扩展字段公共部分********************************/
     @Excel(name="序号")
     private String idNum;
-    /************************************************开单项类型*************************************/
+    @Excel(name="医保手术和操作名称")
+    private String operationName;
     @Excel(name="开单项类型")
     private String orderType;
     @Excel(name="标准名称")
@@ -181,12 +182,10 @@ public class TestIndicationVO implements Serializable {
     private String neoName;
     @Excel(name="禁忌类型")
     private String neoType;
-    /************************************************开单项输血类型*************************************/
     @Excel(name="输血治疗")
     private String transfusionName;
     @Excel(name="节点标签")
     private String transfusionNodeName;
-    /*************************************************危急值*********************************************/
     @Excel(name="实验室检查套餐")
     private String criticalMeal;
     @Excel(name="实验室检查")
@@ -197,27 +196,35 @@ 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;
     @Excel(name="注册剂型")
     private String drugForm;
-    /************************************************其他值提醒——化验****************************************/
     @Excel(name="实验室检查名称")
     private String otherTipLisName;
     @Excel(name="比较符号")
-    private String otherTipLisSymbol;
+    private String symbol;
     @Excel(name="数值")
-    private Double otherTipLisValue;
+    private Double value;
     @Excel(name="标签")
     private String otherTipNodeType;
     @Excel(name="名称")
     private String otherTipNodeName;
+    @Excel(name="医保疾病名称")
+    private String disName;
+    @Excel(name="指标名称")
+    private String itemName;
+    @Excel(name="指标标签")
+    private String itemNodeName;
+    // @Excel(name="数值")
+    // private Double otherTipLisValue;
+    // @Excel(name="标签")
+    // private String otherTipNodeType;
+    // @Excel(name="名称")
+    // private String otherTipNodeName;
 
 }

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

@@ -73,7 +73,7 @@ public class TestController {
         return RespDTO.onSuc(testFacade.testHighRiskDrugExcel(file, testLineVO));
     }
 
-    @ApiOperation(value = "特殊值提醒测试——化验API[zhoutg]",
+    @ApiOperation(value = "其他值提醒测试——化验API[zhoutg]",
             notes = "idNum:指定行测试<br>" +
                     "sheetIndex:sheet的下标,默认为0,表示第一个sheet")
     @PostMapping("/testOtherTipLis")
@@ -81,6 +81,14 @@ public class TestController {
         return RespDTO.onSuc(testFacade.testOtherTipLis(file, testLineVO));
     }
 
+    @ApiOperation(value = "其他值提醒测试——输血API[zhoutg]",
+            notes = "idNum:指定行测试<br>" +
+                    "sheetIndex:sheet的下标,默认为0,表示第一个sheet")
+    @PostMapping("/testOtherTipTransfusion")
+    public RespDTO<Map<String, Object>> testOtherTipTransfusion(@RequestParam("file") MultipartFile file, TestLineVO testLineVO) {
+        return RespDTO.onSuc(testFacade.testOtherTipTransfusion(file, testLineVO));
+    }
+
     @ApiOperation(value = "标准词转换API[zhoutg]", notes = "类型,疾病: disease,症状: symptom,手术和操作:operation,药品: drug,实验室检查:lis,辅助检查:pacs, 辅助检查:vital")
     @PostMapping("/testStandConvert")
     public RespDTO<StandConvertCrfDTO> testStandConvert(@RequestBody StandConvertCrfVO standConvertCrfVO) {