Browse Source

优化处方编辑校验,防止一个处方超过5个药品

hurugang 2 years ago
parent
commit
1ec517cc8a
1 changed files with 93 additions and 33 deletions
  1. 93 33
      src/main/resources/static/js/mz/clinic.js

+ 93 - 33
src/main/resources/static/js/mz/clinic.js

@@ -2923,8 +2923,6 @@ function editPrescription(jsonData, type) {
                         currentOrderNo = orderNo;
                     }
                 }
-
-
                 checkYpInfo(code, serial, groupNo, false, orderNo);
                 // 给药方式 同组药品给药方式相同
                 $("#supplyType").selectpicker('val', mzChargeDetail.supplyCode);
@@ -2949,7 +2947,7 @@ function editPrescription(jsonData, type) {
                 $("#totalRetprice").val(Multiply(mzChargeDetail.quantity, $("#packRetprice").val()).toFixed(2));
                 $("#medicalAdvice").selectpicker('val', mzChargeDetail.instructionCode);
                 $('#medicalAdvice').selectpicker('refresh');
-                saveWesternMedicine(false);
+                saveWesternMedicineWithCheck(false, orderNo);
                 $("#western_medicine_button").click();
                 $("#xyTab").find("li:eq(0) a").off("click").click();
             } else {
@@ -3742,27 +3740,89 @@ function initJyZdSample() {
  */
 function saveMedicine(index) {
     if (index == 0) {
-        // //每个处方不能超过5个药品
-        // var tableId = $("#xyTab li.active").find("a").attr("href");
-        // var childrens = $(tableId).find("div:eq(0)").children().length;
-        // if (childrens === 5) {
-        //     $("#messageModal").modal();
-        //     $("#messageContent").html("单张处方最多只能开具5个药品,是否需要新增处方?");
-        //     $("#messageButton").off("click").on("click", function (t) {
-        //         $("#messageModal").modal("hide");
-        //         refreshNavTabs(index);
-        //         saveWesternMedicine();
-        //     });
-        // } else {
-        //     saveWesternMedicine();
-        // }
-        saveWesternMedicine(true);
+        saveWesternMedicineWithCheck(true, null);
     } else if (index == 1) {
         saveChineseMedicine(true);
     }
 }
 
 
+/**
+ * 保存当前药品到右边处方区域  西药
+ * calculateTotalAmountFlag 是否计算总金额 回写的时候一次计算
+ * orderNoParmams
+ */
+function saveWesternMedicineWithCheck(calculateTotalAmountFlag, orderNoParmams) {
+    //当前药房编码
+    var currentGroupNo = $("#current_groupNo").val();
+    var tableId = $("#xyTab li.active").find("a").attr("href");
+    var childrens = $(tableId).find("div:eq(0)").children().length;
+    var thisGroupNo = $(tableId).find("input.current_groupNo").val();
+    var flag = childrens === 5;
+    if (!calculateTotalAmountFlag) {
+        flag = childrens === 5 && $(tableId).is(':last-child');
+    }
+    if (thisGroupNo != null && thisGroupNo != '' && currentGroupNo != thisGroupNo) {
+        //当前编辑的处方与选中的品类非同一处方能保存的
+        var currentGroupNos = $("#xyTabContent").find("input.current_groupNo");
+        //是否需要新增处方页,以保存医材处方
+        var needAddTable = true;
+        for (var i = 0; i < currentGroupNos.length; i++) {
+            if ($(currentGroupNos[i]).val() == currentGroupNo) {
+                var next = $(currentGroupNos[i]).next();
+                if (needAddTable && $(next).children().length < 5) {
+                    var parentId = $(currentGroupNos[i]).parent().attr("id");
+                    //切换处方
+                    $("#xyTab").find("a[href='#" + parentId + "']").off("click").tab('show');
+                    //$("#xyTab").find("a[href='#" + tableId + "']").off("click").click();
+                    //因为存在没有满5个的处方页,直接保存到该页
+                    needAddTable = false;
+                }
+            }
+        }
+        if (needAddTable) {
+            //91 医材
+            var message = "医材需要单独处方,是否需要新增医材处方?";
+            if (currentGroupNo == '71') {
+                message = "普通西成药需要单独处方,是否需要新增处方?"
+            } else if (currentGroupNo == '111') {
+                message = "麻、精一药物需要单独处方,是否需要新增处方?"
+            } else if (currentGroupNo == '131') {
+                message = "精二药物需要单独处方,是否需要新增处方?"
+            }
+            if (calculateTotalAmountFlag) {
+                $("#messageModal").modal();
+                $("#messageContent").html(message);
+                $("#messageButton").off("click").on("click", function (t) {
+                    $("#messageModal").modal("hide");
+                    refreshNavTabs(0, currentGroupNo, orderNoParmams);
+                    saveWesternMedicine(calculateTotalAmountFlag);
+                });
+                $("#cancelButton").off("click").on("click", function (t) {
+                    return;
+                });
+            }
+        }
+    } else if (flag) {
+        if (calculateTotalAmountFlag) {
+            $("#messageModal").modal();
+            $("#messageContent").html("单张处方最多只能开具5个药品,是否需要新增处方?");
+            $("#messageButton").off("click").on("click", function (t) {
+                $("#messageModal").modal("hide");
+                refreshNavTabs(0, currentGroupNo, orderNoParmams);
+                saveWesternMedicine(calculateTotalAmountFlag);
+            });
+            $("#cancelButton").off("click").on("click", function (t) {
+                return;
+            });
+        }
+    } else {
+        saveWesternMedicine(calculateTotalAmountFlag);
+    }
+
+}
+
+
 /**
  * 保存当前药品到右边处方区域  西药
  * calculateTotalAmountFlag 是否计算总金额 回写的时候一次计算
@@ -6232,21 +6292,7 @@ function checkYpInfo(code, serial, groupNo, needNotice, orderNo) {
                     if (!needNotice) {
                         flag = childrens === 5 && $(tableId).is(':last-child');
                     }
-                    if (flag) {
-                        if (needNotice) {
-                            $("#messageModal").modal();
-                            $("#messageContent").html("单张处方最多只能开具5个药品,是否需要新增处方?");
-                            $("#messageButton").off("click").on("click", function (t) {
-                                $("#messageModal").modal("hide");
-                                refreshNavTabs(0, groupNo, orderNo);
-                                fitWesternMedicine(res, groupNo);
-                            });
-                            $("#cancelButton").off("click");
-                        } else {
-                            refreshNavTabs(0, groupNo, orderNo);
-                            fitWesternMedicine(res, groupNo);
-                        }
-                    } else if (currentGroupNo != null && currentGroupNo != '' && groupNo != currentGroupNo) {
+                    if (currentGroupNo != null && currentGroupNo != '' && groupNo != currentGroupNo) {
                         //当前编辑的处方与选中的品类非同一处方能保存的
                         var currentGroupNos = $("#xyTabContent").find("input.current_groupNo");
                         //是否需要新增处方页,以保存医材处方
@@ -6292,6 +6338,20 @@ function checkYpInfo(code, serial, groupNo, needNotice, orderNo) {
                             }
                         }
                         //当前编辑的处方非普通西药处方
+                    } else if (flag) {
+                        if (needNotice) {
+                            $("#messageModal").modal();
+                            $("#messageContent").html("单张处方最多只能开具5个药品,是否需要新增处方?");
+                            $("#messageButton").off("click").on("click", function (t) {
+                                $("#messageModal").modal("hide");
+                                refreshNavTabs(0, groupNo, orderNo);
+                                fitWesternMedicine(res, groupNo);
+                            });
+                            $("#cancelButton").off("click");
+                        } else {
+                            refreshNavTabs(0, groupNo, orderNo);
+                            fitWesternMedicine(res, groupNo);
+                        }
                     } else {
                         //修改药品
                         if (orderNo != null) {