Ver código fonte

增加年龄和体格匹配

wangfeng 4 anos atrás
pai
commit
fc17cfab23

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

@@ -18,7 +18,8 @@ public enum TypeEnum implements KeyedNamed {
     clinical(5, "临床表现"),
     operation(6, "手术"),
     vital(7, "查体"),
-    transfusion(8, "输血");
+    transfusion(8, "输血"),
+    age(9,"年龄");
 
     @Setter
     private int key;

+ 23 - 0
src/main/java/com/diagbot/facade/HighRiskFacade.java

@@ -68,6 +68,29 @@ public class HighRiskFacade {
         nodePass.setName("胸部CT");
         nodePass.setVal("肺叶根治性切除标本");
         factor.add(nodePass);
+        NodeNeoDTO vital = new NodeNeoDTO();
+        vital.setName("体温");
+        vital.setMax(new BigDecimal("39.1"));
+        vital.setMin(new BigDecimal("35.1"));
+        vital.setValType(1);
+        vital.setTermtype("查体");
+        factor.add(vital);
+        //
+        NodeNeoDTO vitalBp = new NodeNeoDTO();
+        vitalBp.setName("意识模糊");
+        vitalBp.setValType(1);
+        vitalBp.setVal("意识模糊");
+        vitalBp.setTermtype("查体");
+        factor.add(vitalBp);
+
+        NodeNeoDTO vitalBp2 = new NodeNeoDTO();
+        vitalBp2.setName("年龄");
+        vitalBp2.setMax(new BigDecimal("1"));
+        vitalBp2.setMin(new BigDecimal("18"));
+        vitalBp2.setValType(1);
+        vitalBp2.setTermtype("年龄");
+        factor.add(vitalBp2);
+
         highRiskNeoDTOList.add(highRiskNeoDTO);
         // TODO 测试数据结束
         highRiskProcess.process(highRiskNeoDTOList, res,wordCrfDTO);

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

@@ -8,11 +8,16 @@ import com.diagbot.dto.IndicationDTO;
 import com.diagbot.dto.NodeNeoDTO;
 import com.diagbot.dto.WordCrfDTO;
 import com.diagbot.enums.TypeEnum;
+import com.diagbot.model.entity.Vital;
 import com.diagbot.model.label.PacsLabel;
+import com.diagbot.model.label.VitalLabel;
+import com.diagbot.rule.AgeRule;
 import com.diagbot.util.CoreUtil;
+import com.diagbot.util.ListUtil;
 import com.diagbot.util.MsgUtil;
 import org.springframework.stereotype.Component;
 
+import java.math.BigDecimal;
 import java.util.List;
 import java.util.Map;
 
@@ -47,9 +52,12 @@ public class HighRiskProcess {
                 billMsg.setType(type);
                 res.getHighRiskList().add(billMsg);
             } else {
+
                 List<Item> diag = wordCrfDTO.getDiag();
                 List<Lis> lisList = wordCrfDTO.getLis();
                 PacsLabel pacsLabel = wordCrfDTO.getPacsLabel();
+                VitalLabel vitalLabel = wordCrfDTO.getVitalLabel();
+                Integer age1 = wordCrfDTO.getAge();
                 // 复杂情况高危手术
                 if (TypeEnum.operation.getName().equals(type)) {
                     List<NodeNeoDTO> factor = highRiskNeoDTO.getFactor();
@@ -81,6 +89,24 @@ public class HighRiskProcess {
                                     res.getHighRiskList().add(billMsg);
                                 }
                             }
+                        } else if (TypeEnum.vital.getName().equals(nodeNeoDTO.getTermtype())){
+                            Map<String, Object> map = CoreUtil.compareVital(nodeNeoDTO, vitalLabel);
+                            if ((Boolean) map.get("flag") == true) {
+                                BillMsg commonBillMsg = MsgUtil.getComplexOperationMsg((String)map.get("msg"),highRiskNeoDTO.getName(), nodeNeoDTO.getTermtype());
+                                res.getHighRiskList().add(commonBillMsg);
+                            }
+
+                        }else if(TypeEnum.age.getName().equals(nodeNeoDTO.getTermtype())){
+                            Boolean flag = false;
+                            if(nodeNeoDTO != null && wordCrfDTO.getAge() != null) {
+                                Integer age = wordCrfDTO.getAge();
+                                flag = CoreUtil.compareNum(nodeNeoDTO, age);
+                            }
+                            if (flag) {
+                                String message = "年龄" + wordCrfDTO.getAge();
+                                BillMsg billMsg = MsgUtil.getComplexOperationMsg(message, highRiskNeoDTO.getName(), nodeNeoDTO.getTermtype());
+                                res.getHighRiskList().add(billMsg);
+                            }
                         }
                     }
                 }