瀏覽代碼

新增医嘱复制/粘贴功能,可以粘贴到其他患者和其他频率

xiaochan 2 年之前
父節點
當前提交
c76152f2f3

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

@@ -235,4 +235,9 @@ public class YizhuLuRuController {
         return server.copyTheDoctorSOrder(orderNo, deptCode);
     }
 
+    @PostMapping("/copyOrder")
+    public ResultVo<List<BigDecimal>> copyOrder(@RequestBody copyOrder copyOrder) {
+        return server.copyOrder(copyOrder);
+    }
+
 }

+ 17 - 0
src/main/java/thyyxxk/webserver/entity/zhuyuanyisheng/yizhuluru/copyOrder.java

@@ -0,0 +1,17 @@
+package thyyxxk.webserver.entity.zhuyuanyisheng.yizhuluru;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+public class copyOrder {
+    private BigDecimal actOrderNo;
+
+    private String frequCode;
+    private String deptCode;
+    private String inpatientNo;
+    private Integer admissTimes;
+
+
+}

+ 49 - 0
src/main/java/thyyxxk/webserver/service/zhuyuanyisheng/YiZhuLuRuServer.java

@@ -1597,6 +1597,7 @@ public class YiZhuLuRuServer {
         return ResultVoUtil.success(ExceptionEnum.SUCCESS_AND_NOTIFICATION);
     }
 
+    @Deprecated
     public ResultVo<String> copyTheDoctorSOrder(BigDecimal orderNo, String deptCode) {
         QueryWrapper<?> qw = new QueryWrapper<>();
         qw.eq("a.act_order_no", orderNo);
@@ -1656,4 +1657,52 @@ public class YiZhuLuRuServer {
     }
 
 
+    public ResultVo<List<BigDecimal>> copyOrder(copyOrder copyOrder) {
+        log.info("数据:{}", JSON.toJSONString(copyOrder));
+        QueryWrapper<?> qw = new QueryWrapper<>();
+        qw.eq("a.act_order_no", copyOrder.getActOrderNo());
+        List<XinZhenYzActOrder> yiZhuList = dao.selectOrderNo(qw);
+        if (ListUtil.isBlank(yiZhuList)) {
+            return ResultVoUtil.fail(ExceptionEnum.NULL_POINTER, "原医嘱已经不存在了。");
+        }
+        // 个人信息
+        UserInfo us = redisLikeService.getUserInfoByToken();
+
+        // 存放生成的医嘱容器
+        List<BigDecimal> orderList = new ArrayList<>();
+
+        // 原来的医嘱
+        XinZhenYzActOrder fatherOrder = yiZhuList.get(0);
+        // 设置默认值
+        revertToTheDefaultState(fatherOrder, us, null);
+        fatherOrder.setExecUnit(copyOrder.getDeptCode());
+        fatherOrder.setFrequCode(copyOrder.getFrequCode());
+        orderList.add(fatherOrder.getActOrderNo());
+        // 查询子医嘱
+        QueryWrapper<?> childQw = new QueryWrapper<>();
+        childQw.eq("a.parent_no", copyOrder.getActOrderNo());
+        List<XinZhenYzActOrder> childOrderList = dao.selectOrderNo(childQw);
+        // 存放医嘱容器
+        List<XinZhenYzActOrder> addOrderList = new ArrayList<>();
+        // 存放父医嘱
+        addOrderList.add(fatherOrder);
+
+        // 设置子医嘱默认值
+        if (ListUtil.notBlank(childOrderList)) {
+            childOrderList.forEach(item -> {
+                item.setExecUnit(copyOrder.getDeptCode());
+                item.setFrequCode(copyOrder.getFrequCode());
+                revertToTheDefaultState(item, us, fatherOrder.getActOrderNo());
+                orderList.add(item.getActOrderNo());
+                addOrderList.add(item);
+            });
+        }
+
+        // 获取患者信息
+        XinZhenYiZhu patInfo = dao.queryPatientInfo(copyOrder.getInpatientNo(), copyOrder.getAdmissTimes());
+        getThis().insertATemplate(addOrderList, patInfo);
+        return ResultVoUtil.success(ExceptionEnum.SUCCESS_AND_NOTIFICATION, "复制成功。", orderList);
+    }
+
+
 }