Browse Source

Merge remote-tracking branch 'origin/master'

MarkHuang 4 years ago
parent
commit
0cc81e16a3

+ 3 - 0
src/main/java/com/diagbot/dto/BillNeoMaxDTO.java

@@ -63,4 +63,7 @@ public class BillNeoMaxDTO {
     // 体征
     private List<NodeNeoDTO> vitals = new ArrayList<>();
 
+    // 禁用辅助检查描述
+    private List<NodeNeoDTO> pacsDesc = new ArrayList<>();
+
 }

+ 3 - 0
src/main/java/com/diagbot/dto/DrugBillNeoDTO.java

@@ -47,4 +47,7 @@ public class DrugBillNeoDTO {
 
     // 配伍禁忌
     private List<NodeNeoDTO> conflictmeds = new ArrayList<>();
+
+    // 禁用辅助检查描述
+    private List<NodeNeoDTO> pacsDesc = new ArrayList<>();
 }

+ 3 - 1
src/main/java/com/diagbot/dto/LisBillNeoDTO.java

@@ -1,6 +1,5 @@
 package com.diagbot.dto;
 
-import com.diagbot.entity.node.Age;
 import lombok.Data;
 
 import java.util.ArrayList;
@@ -46,4 +45,7 @@ public class LisBillNeoDTO {
     // 禁用人群
     private List<NodeNeoDTO> group = new ArrayList<>();
 
+    // 禁用辅助检查描述
+    private List<NodeNeoDTO> pacsDesc = new ArrayList<>();
+
 }

+ 3 - 0
src/main/java/com/diagbot/dto/OperationBillNeoDTO.java

@@ -47,4 +47,7 @@ public class OperationBillNeoDTO {
 
     // 配伍禁忌
     private List<NodeNeoDTO> conflictmeds = new ArrayList<>();
+
+    // 禁用辅助检查描述
+    private List<NodeNeoDTO> pacsDesc = new ArrayList<>();
 }

+ 3 - 0
src/main/java/com/diagbot/dto/PacsBillNeoDTO.java

@@ -48,4 +48,7 @@ public class PacsBillNeoDTO {
     // 禁用人群
     private List<NodeNeoDTO> group = new ArrayList<>();
 
+    // 禁用辅助检查描述
+    private List<NodeNeoDTO> pacsDesc = new ArrayList<>();
+
 }

+ 4 - 0
src/main/java/com/diagbot/dto/RetrievalDTO.java

@@ -41,4 +41,8 @@ public class RetrievalDTO {
      * 科室
      */
     private List<String> deptNames;
+    /**
+     * 输血
+     */
+    private List<String> transfusionNames;
 }

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

@@ -23,7 +23,8 @@ public enum NeoEnum implements KeyedNamed {
     disease(10, "禁忌疾病"),
     group(11, "禁用人群"),
     conflictmeds(12, "配伍禁忌"),
-    vitals(13, "禁忌查体");
+    vitals(13, "禁忌查体"),
+    pacsDesc(14, "禁忌辅助检查描述");
 
     @Setter
     private int key;

+ 3 - 0
src/main/java/com/diagbot/facade/RetrievalFacade.java

@@ -94,6 +94,9 @@ public class RetrievalFacade {
             case 7:
                 retrievalDTO.setDeptNames(getDepts(retrievalVO.getInputStr()));
                 break;
+            case 8:
+                retrievalDTO.setTransfusionNames(ListUtil.arrayToList(new String[] { "输血1", "输血2" }));
+                break;
         }
 
         return retrievalDTO;

+ 4 - 23
src/main/java/com/diagbot/model/ai/process/EntityProcess.java

@@ -377,12 +377,12 @@ public class EntityProcess {
     public String[] extract_digit_new(String value) {
         String[] res = new String[2];
         try {
-            String reg_time = "([1-9]\\d*\\.?\\d*)|(0\\.\\d*[1-9])";
-            Pattern pattern = Pattern.compile(reg_time);
+            String regex = "([1-9]\\d*\\.?\\d*)|(0\\.\\d*[1-9])";
+            Pattern pattern = Pattern.compile(regex);
             Matcher matcher = pattern.matcher(value);
             if (matcher.find(0)) {
-                res[0] = matcher.group(1);
-                res[1] = value.substring(value.indexOf(res[0]) + res[0].length());
+                res[0] = matcher.group(0);
+                res[1] = value.substring(matcher.end(0));
             } else {
                 res[0] = value;
                 res[1] = "";
@@ -392,23 +392,4 @@ public class EntityProcess {
         }
         return res;
     }
-
-    public static void main(String[] args) {
-        String value = "℃";
-        String[] res = new String[2];
-        try {
-            String reg_time = "([1-9]\\d*\\.?\\d*)|(0\\.\\d*[1-9])";
-            Pattern pattern = Pattern.compile(reg_time);
-            Matcher matcher = pattern.matcher(value);
-            if (matcher.find(0)) {
-                res[0] = matcher.group(1);
-                res[1] = value.substring(value.indexOf(res[0]) + res[0].length());
-            } else {
-                res[0] = value;
-                res[1] = "";
-            }
-        } catch (Exception ex) {
-            ex.printStackTrace();
-        }
-    }
 }

+ 23 - 12
src/main/java/com/diagbot/process/BillProcess.java

@@ -8,15 +8,8 @@ import com.diagbot.dto.IndicationDTO;
 import com.diagbot.dto.WordCrfDTO;
 import com.diagbot.enums.NeoEnum;
 import com.diagbot.facade.NeoFacade;
-import com.diagbot.model.entity.Clinical;
-import com.diagbot.model.entity.GeneralDesc;
-import com.diagbot.model.entity.Medicine;
-import com.diagbot.model.entity.Operation;
-import com.diagbot.model.entity.Vital;
-import com.diagbot.model.label.ChiefLabel;
-import com.diagbot.model.label.DiagLabel;
-import com.diagbot.model.label.PastLabel;
-import com.diagbot.model.label.PresentLabel;
+import com.diagbot.model.entity.*;
+import com.diagbot.model.label.*;
 import com.diagbot.rule.AgeRule;
 import com.diagbot.rule.CommonRule;
 import com.diagbot.rule.DrugRule;
@@ -34,6 +27,7 @@ import org.springframework.stereotype.Component;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * @Description: 开单总入口
@@ -130,12 +124,26 @@ public class BillProcess {
         PresentLabel presentLabel = wordCrfDTO.getPresentLabel();
         PastLabel pastLabel = wordCrfDTO.getPastLabel();
 
-        // 体征
-        List<Vital> vitals = wordCrfDTO.getVitalLabel().getVitals();
-
         // 诊断数据
         List<Item> diags = wordCrfDTO.getDiag();
 
+        //辅助检查描述
+        PacsLabel pacsLabel = wordCrfDTO.getPacsLabel();
+        List<Item> pacsNewList = new ArrayList<>();
+        pacsLabel.getPacsNewList().stream().filter(x -> ListUtil.isNotEmpty(x.getPacsResults()) || ListUtil.isNotEmpty(x.getDisease())).forEach(
+                x ->{
+                    List<String> pacsResults = x.getPacsResults().stream().map(pacr -> pacr.getStandName()).collect(Collectors.toList());
+                    List<String> diseases = x.getDisease().stream().map(disease -> disease.getStandName()).collect(Collectors.toList());
+                    pacsResults.addAll(diseases);
+                    pacsResults.stream().forEach(z ->{
+                        Item item = new Item();
+                        item.setName(z);
+                        item.setUniqueName(z);
+                        pacsNewList.add(item);
+                    });
+                }
+        );
+
         // 手术数据
         List<Operation> operations_present = presentLabel.getOperations();
         List<Operation> operations_past = pastLabel.getOperations();
@@ -185,6 +193,9 @@ public class BillProcess {
 
             // 禁用人群
             GroupRule.compareGroupWithBill(wordCrfDTO, bill, billMsgList, NeoEnum.group.getName());
+
+            // 禁用辅助检查描述
+            CommonRule.compareItemWithBill(bill.getPacsDesc(), pacsNewList, bill, billMsgList, NeoEnum.pacsDesc.getName());
         }
 
         // 24小时重复开单项

+ 1 - 1
src/main/java/com/diagbot/web/RetrievalController.java

@@ -31,7 +31,7 @@ public class RetrievalController {
     private RetrievalFacade retrievalFacade;
 
     @ApiOperation(value = "术语检索[zhaops]",
-            notes = "type: 类型:1-化验大项、2-化验小项、3-辅检、4-诊断、5-药品、6-手术和操作、7-科室 <br>" +
+            notes = "type: 类型:1-化验大项、2-化验小项、3-辅检、4-诊断、5-药品、6-手术和操作、7-科室、8-输血 <br>" +
                     "inputStr: 检索内容<br>" +
                     "sex: 性别:1-男、2-女、3-通用 <br>" +
                     "age: 年龄<br>")