فهرست منبع

优化开医嘱的速度

xiaochan 2 سال پیش
والد
کامیت
11aa81dd31

+ 5 - 0
src/main/java/thyyxxk/webserver/controller/zhuyuanyizheng/YizhuLuRuController.java

@@ -255,4 +255,9 @@ public class YizhuLuRuController {
         return server.updateOrderInstruction(orderNo, str);
     }
 
+    @PostMapping("/orderGroup")
+    public ResultVo<List<XinZhenYzActOrder>> getOrderList(@RequestBody List<XinZhenYzActOrder> list) {
+        return ResultVoUtil.success(YiZhuLuRuServer.getOrderList(list));
+    }
+
 }

+ 16 - 5
src/main/java/thyyxxk/webserver/service/zhuyuanyisheng/YiZhuLuRuServer.java

@@ -124,7 +124,7 @@ public class YiZhuLuRuServer {
      * @return
      */
     @NotNull
-    private static List<XinZhenYzActOrder> getOrderList(List<XinZhenYzActOrder> yiZhuList) {
+    public static List<XinZhenYzActOrder> getOrderList(List<XinZhenYzActOrder> yiZhuList) {
         // 还有那些没有被匹配的子级医嘱
         Map<BigDecimal, XinZhenYzActOrder> wuFuJiYiZhu = yiZhuList.stream().collect(Collectors.toMap(XinZhenYzActOrder::getActOrderNo, a -> a, (k1, k2) -> k1));
         // 做成树状图
@@ -163,7 +163,6 @@ public class YiZhuLuRuServer {
         if (!wuFuJiYiZhu.isEmpty()) {
             tree.addAll(wuFuJiYiZhu.values());
         }
-        // 删除前后空格
         List<XinZhenYzActOrder> list = new ArrayList<>();
         for (XinZhenYzActOrder zy : tree) {
             list.add(zy);
@@ -172,7 +171,6 @@ public class YiZhuLuRuServer {
                 list.addAll(zy.getChildren());
                 zy.setChildren(null);
             }
-            EntityStringTrim.beanAttributeValueTrim(zy);
         }
         return list;
     }
@@ -447,11 +445,19 @@ public class YiZhuLuRuServer {
         }
 
         QueryWrapper<?> qw = new QueryWrapper<>();
-        qw.eq("a.act_order_no", param.getActOrderNo());
+
+        qw.eq("a.inpatient_no", param.getInpatientNo());
+        qw.eq("a.admiss_times", param.getAdmissTimes());
+        qw.eq("a.status_flag", "1");
+
+        qw.and(wrapper -> wrapper.eq("a.act_order_no", param.getActOrderNo())
+                .or()
+                .eq("a.parent_no", param.getActOrderNo())
+        );
 
         Map<String, Object> successMap = new HashMap<>();
         successMap.put("code", 200);
-        successMap.put("data", dao.selectOrderNo(qw).get(0));
+        successMap.put("data", getOrderList(dao.selectOrderNo(qw)));
 
         log.info("医嘱录入日志:{}", JSON.toJSONString(param));
         return ResultVoUtil.success(ExceptionEnum.SUCCESS_AND_NOTIFICATION, "添加成功。", successMap);
@@ -1344,8 +1350,13 @@ public class YiZhuLuRuServer {
         orderList.add(fatherOrder.getActOrderNo());
         // 查询子医嘱
         QueryWrapper<?> childQw = new QueryWrapper<>();
+
         childQw.eq("a.parent_no", copyOrder.getActOrderNo());
+        childQw.eq("a.inpatient_no", copyOrder.getInpatientNo());
+        childQw.eq("a.admiss_times", copyOrder.getAdmissTimes());
+
         List<XinZhenYzActOrder> childOrderList = dao.selectOrderNo(childQw);
+
         // 存放医嘱容器
         List<XinZhenYzActOrder> addOrderList = new ArrayList<>();
         // 存放父医嘱

+ 14 - 1
src/main/java/thyyxxk/webserver/service/zhuyuanyisheng/yizhuverify/YiZhuCheckData.java

@@ -14,20 +14,30 @@ import java.util.function.Consumer;
 @Slf4j
 public class YiZhuCheckData {
     private final YiZhuLuRuDao dao;
+
     /**
      * 医嘱数组
      */
     private List<XinZhenYzActOrder> list;
+
     /**
      * 药品
      */
     private final CacheOnce<XinZhenYzActOrder> drug = new CacheOnce<>();
+
+    /**
+     * 医生等级
+     */
     private final CacheOnce<Integer> authorizedDoctorLevel = new CacheOnce<>();
 
     /**
      * 项目
      */
     private final CacheOnce<List<XinZhenYzActOrder>> project = new CacheOnce<>();
+
+    /**
+     * 患者信息
+     */
     private XinZhenYiZhu patientInformation;
     private Boolean strictVerification = false;
     /**
@@ -42,6 +52,10 @@ public class YiZhuCheckData {
     private UserInfo userInfo;
     private Boolean passTheAudit = true;
     private final List<String> groupList = Arrays.asList("71", "73");
+
+    /**
+     * 全排斥医嘱
+     */
     private Repel repel = null;
     private final String ONCE = "ONCE";
 
@@ -251,7 +265,6 @@ public class YiZhuCheckData {
                 errorMessage.add("子医嘱的医嘱号,小于父医嘱号,无法成组。【原因如果子医嘱的医嘱号小于父医嘱,会导致打印乱码】");
             }
         }
-
         // 获取患者的入院时间
         if (item.getOrderTime() == null) {
             errorMessage.add("医嘱时间不能为空");