Browse Source

方法合并

zhoutg 4 years ago
parent
commit
8fbd47b836

+ 2 - 1
src/main/java/com/diagbot/enums/TypeEnum.java

@@ -17,7 +17,8 @@ public enum TypeEnum implements KeyedNamed {
     drug(4, "药品"),
     clinical(5, "临床表现"),
     operation(6, "手术"),
-    vital(7, "查体");
+    vital(7, "查体"),
+    transfusion(8, "输血");
 
     @Setter
     private int key;

+ 19 - 132
src/main/java/com/diagbot/rule/CommonRule.java

@@ -1,8 +1,5 @@
 package com.diagbot.rule;
 
-import com.diagbot.biz.push.entity.Item;
-import com.diagbot.biz.push.entity.Lis;
-import com.diagbot.biz.push.entity.Pacs;
 import com.diagbot.dto.BillMsg;
 import com.diagbot.dto.BillNeoMaxDTO;
 import com.diagbot.dto.NodeNeoDTO;
@@ -102,127 +99,13 @@ public class CommonRule {
      * @param billMsgList
      */
     public static void repeat24Bill(WordCrfDTO wordCrfDTO, List<BillMsg> billMsgList) {
-        repeat24BillWithLisType(billMsgList, wordCrfDTO.getLisOrder(), TypeEnum.lis.getName()); // 化验重复开单
-        repeat24BillWithPacsType(billMsgList, wordCrfDTO.getPacsOrder(), TypeEnum.pacs.getName()); // 辅检重复开单
+        repeat24BillWithType(billMsgList, wordCrfDTO.getLisOrder(), TypeEnum.lis.getName()); // 化验重复开单
+        repeat24BillWithType(billMsgList, wordCrfDTO.getPacsOrder(), TypeEnum.pacs.getName()); // 辅检重复开单
         repeat24BillWithType(billMsgList, wordCrfDTO.getDrugOrder(), TypeEnum.drug.getName()); // 药品重复开单
         repeat24BillWithType(billMsgList, wordCrfDTO.getOperationOrder(), TypeEnum.operation.getName()); // 手术重复开单
+        repeat24BillWithType(billMsgList, wordCrfDTO.getTransfusionOrder(), TypeEnum.transfusion.getName()); // 输血重复开单
     }
 
-    /**
-     * 24小时重复开单入口(化验)
-     *
-     * @param billMsgList
-     * @param itemList
-     * @param type
-     */
-    public static <T> void repeat24BillWithPacsType(List<BillMsg> billMsgList, List<Pacs> itemList, String type) {
-        if (ListUtil.isEmpty(itemList)) {
-            return ;
-        }
-        Map<String, List<Pacs>> map = EntityUtil.makeEntityListMap(itemList, "uniqueName");
-        for (String key : map.keySet()) {
-            List<Pacs> items = map.get(key);
-
-            // 个数大于2个才比较
-            if (ListUtil.isNotEmpty(items) && items.size() > 1) {
-                // items 按照时间排序
-                Collections.sort(items, new Comparator<Pacs>() {
-                    @Override
-                    public int compare(Pacs o1, Pacs o2) {
-                        if (StringUtil.isBlank(o1.getDateValue()) || StringUtil.isBlank(o2.getDateValue())) {
-                            return -1;
-                        } else {
-                            return o1.getDateValue().compareTo(o2.getDateValue());
-                        }
-                    }
-                });
-
-                // 比较时间是否在24小时内
-                List<Date> dateList = new ArrayList<>();
-                for (Pacs it : items) {
-                    if (StringUtil.isNotBlank(it.getDateValue())) {
-                        Date cur = CatalogueUtil.parseStringDate(it.getDateValue());
-                        // 如果为null,说明日期格式出错,不比较
-                        if (cur != null) {
-                            if (ListUtil.isNotEmpty(dateList)) {
-                                Date last = dateList.get(dateList.size() - 1);
-                                if (!CatalogueUtil.compareTime(last, cur, 60L * 24)) {
-                                    BillMsg commonBillMsg = CoreUtil.getBillMsg24Repeat(
-                                            it.getName(), it.getUniqueName(),
-                                            it.getName(), type);
-                                    billMsgList.add(commonBillMsg);
-                                    break;
-                                } else {
-                                    dateList.add(cur);
-                                }
-                            } else {
-                                dateList.add(cur);
-                            }
-                        }
-                    }
-                }
-            }
-        }
-    }
-
-    /**
-     * 24小时重复开单入口(化验)
-     *
-     * @param billMsgList
-     * @param itemList
-     * @param type
-     */
-    public static <T> void repeat24BillWithLisType(List<BillMsg> billMsgList, List<Lis> itemList, String type) {
-        if (ListUtil.isEmpty(itemList)) {
-            return ;
-        }
-        Map<String, List<Lis>> map = EntityUtil.makeEntityListMap(itemList, "uniqueName");
-        for (String key : map.keySet()) {
-            List<Lis> items = map.get(key);
-
-            // 个数大于2个才比较
-            if (ListUtil.isNotEmpty(items) && items.size() > 1) {
-                // items 按照时间排序
-                Collections.sort(items, new Comparator<Lis>() {
-                    @Override
-                    public int compare(Lis o1, Lis o2) {
-                        if (StringUtil.isBlank(o1.getDateValue()) || StringUtil.isBlank(o2.getDateValue())) {
-                            return -1;
-                        } else {
-                            return o1.getDateValue().compareTo(o2.getDateValue());
-                        }
-                    }
-                });
-
-                // 比较时间是否在24小时内
-                List<Date> dateList = new ArrayList<>();
-                for (Lis it : items) {
-                    if (StringUtil.isNotBlank(it.getDateValue())) {
-                        Date cur = CatalogueUtil.parseStringDate(it.getDateValue());
-                        // 如果为null,说明日期格式出错,不比较
-                        if (cur != null) {
-                            if (ListUtil.isNotEmpty(dateList)) {
-                                Date last = dateList.get(dateList.size() - 1);
-                                if (!CatalogueUtil.compareTime(last, cur, 60L * 24)) {
-                                    BillMsg commonBillMsg = CoreUtil.getBillMsg24Repeat(
-                                            it.getName(), it.getUniqueName(),
-                                            it.getName(), type);
-                                    billMsgList.add(commonBillMsg);
-                                    break;
-                                } else {
-                                    dateList.add(cur);
-                                }
-                            } else {
-                                dateList.add(cur);
-                            }
-                        }
-                    }
-                }
-            }
-        }
-    }
-
-
     /**
      * 24小时重复开单入口
      *
@@ -230,41 +113,45 @@ public class CommonRule {
      * @param itemList
      * @param type
      */
-    public static void repeat24BillWithType(List<BillMsg> billMsgList, List<Item> itemList, String type) {
+    public static <T> void repeat24BillWithType(List<BillMsg> billMsgList, List<T> itemList, String type) {
         if (ListUtil.isEmpty(itemList)) {
             return ;
         }
-        Map<String, List<Item>> map = EntityUtil.makeEntityListMap(itemList, "uniqueName");
+        Map<String, List<T>> map = EntityUtil.makeEntityListMap(itemList, "uniqueName");
         for (String key : map.keySet()) {
-            List<Item> items = map.get(key);
+            List<T> items = map.get(key);
 
             // 个数大于2个才比较
             if (ListUtil.isNotEmpty(items) && items.size() > 1) {
                 // items 按照时间排序
-                Collections.sort(items, new Comparator<Item>() {
+                Collections.sort(items, new Comparator<T>() {
                     @Override
-                    public int compare(Item o1, Item o2) {
-                        if (StringUtil.isBlank(o1.getDateValue()) || StringUtil.isBlank(o2.getDateValue())) {
+                    public int compare(T o1, T o2) {
+                        String o1Str = (String)CoreUtil.getFieldValue(o1, "dateValue");
+                        String o2Str = (String)CoreUtil.getFieldValue(o2, "dateValue");
+                        if (StringUtil.isBlank(o1Str) || StringUtil.isBlank(o2Str)) {
                             return -1;
                         } else {
-                            return o1.getDateValue().compareTo(o2.getDateValue());
+                            return o1Str.compareTo(o2Str);
                         }
                     }
                 });
 
                 // 比较时间是否在24小时内
                 List<Date> dateList = new ArrayList<>();
-                for (Item it : items) {
-                    if (StringUtil.isNotBlank(it.getDateValue())) {
-                        Date cur = CatalogueUtil.parseStringDate(it.getDateValue());
+                for (T it : items) {
+                    String dateValue = (String)CoreUtil.getFieldValue(it, "dateValue");
+                    if (StringUtil.isNotBlank(dateValue)) {
+                        Date cur = CatalogueUtil.parseStringDate(dateValue);
                         // 如果为null,说明日期格式出错,不比较
                         if (cur != null) {
                             if (ListUtil.isNotEmpty(dateList)) {
                                 Date last = dateList.get(dateList.size() - 1);
                                 if (!CatalogueUtil.compareTime(last, cur, 60L * 24)) {
+                                    String name = (String)CoreUtil.getFieldValue(it, "name");
+                                    String uniqueName = (String)CoreUtil.getFieldValue(it, "uniqueName");
                                     BillMsg commonBillMsg = CoreUtil.getBillMsg24Repeat(
-                                            it.getName(), it.getUniqueName(),
-                                            it.getName(), type);
+                                            name, uniqueName, name, type);
                                     billMsgList.add(commonBillMsg);
                                     break;
                                 } else {