Browse Source

优化模板调用,同一组药分成多个处方

hurugang 2 years ago
parent
commit
865a3da241

+ 42 - 14
src/main/resources/static/js/mz/clinic.js

@@ -18,6 +18,8 @@ var mztczfSiReadCardStatus = false;
 var gropuIdAndOrderNoMap = null;
 //上一个药品大类
 //var prevCategoriesFlag = null;
+//处方回调和修改的时候处方号与处方tab的关系
+var orderNoAndTableIdMap=null;
 $(function () {
     initGenderSelect();
     iniAdmissStatus();
@@ -611,7 +613,7 @@ $(function () {
                             $("#zlExecUnit").selectpicker('refresh');
                             //诊疗
                             if ($("#zlTab").find("li") == null || $("#zlTab").find("li").length == 0) {
-                                initNavTabs(3);
+                                initNavTabs(3,null,null);
                             }
                             $("#zlItem").val(trData.name);
                             $("#zlItem").blur();
@@ -2547,7 +2549,7 @@ function callBackZlDetail(code, mzChargeDetail) {
             if (res.code == 0) {
                 //如果
                 if ($("#zlTab").find("li") == null || $("#zlTab").find("li").length == 0) {
-                    initNavTabs(3);
+                    initNavTabs(3,null,null);
                 }
                 $("#zlItem").val(res.data.name);
                 $("#zlItem").blur();
@@ -2580,6 +2582,7 @@ function callBackZlDetail(code, mzChargeDetail) {
  * @param type 回写类型  0 全部回写 1 医疗范文 2 就诊详情
  */
 function editPrescription(jsonData, type) {
+    orderNoAndTableIdMap = new Map();
     var firstOrNot = jsonData.firstOrNot;
     var conciseRecordsFlag = false;
     if (type == 1) {
@@ -2848,6 +2851,8 @@ function editPrescription(jsonData, type) {
         //设置总金额 计算金额的时候,可能处方还没有回写完
         calculateTotalAmount();
     }, 1000);
+    //清空映射map
+    orderNoAndTableIdMap=null;
 }
 
 /**
@@ -4446,7 +4451,7 @@ function saveZlItemReal(calculateTotalAmountFlag) {
 function saveZyReq(messageFlag) {
     //如果
     if ($("#zyReqTab").find("li") == null || $("#zyReqTab").find("li").length == 0) {
-        initNavTabs(4);
+        initNavTabs(4,null,null);
     }
     var tableId = $("#zyReqTab li.active").find("a").attr("href");
     //病区编码
@@ -5979,7 +5984,7 @@ function checkYpInfo(code, serial, groupNo, needNotice, orderNo) {
                 if (res.data != null) {
                     //如果
                     if ($("#xyTab").find("li") == null || $("#xyTab").find("li").length == 0) {
-                        initNavTabs(0);
+                        initNavTabs(0,groupNo,orderNo);
                     }
                     var cfdesc = '普药';
                     if (groupNo == '91') {
@@ -6002,14 +6007,14 @@ function checkYpInfo(code, serial, groupNo, needNotice, orderNo) {
                             $("#messageContent").html("单张处方最多只能开具5个药品,是否需要新增处方?");
                             $("#messageButton").off("click").on("click", function (t) {
                                 $("#messageModal").modal("hide");
-                                refreshNavTabs(0, groupNo);
+                                refreshNavTabs(0, groupNo,null);
                                 fitWesternMedicine(res, groupNo);
                                 // //选中药品后,光标默认到用法
                                 // $("#supplyType").next().click();
                             });
                             $("#cancelButton").off("click");
                         } else {
-                            refreshNavTabs(0, groupNo);
+                            refreshNavTabs(0, groupNo,null);
                             fitWesternMedicine(res, groupNo);
                         }
                     } else if (currentGroupNo != null && currentGroupNo != '' && groupNo != currentGroupNo) {
@@ -6045,14 +6050,14 @@ function checkYpInfo(code, serial, groupNo, needNotice, orderNo) {
                                 $("#messageContent").html(message);
                                 $("#messageButton").off("click").on("click", function (t) {
                                     $("#messageModal").modal("hide");
-                                    refreshNavTabs(0, groupNo);
+                                    refreshNavTabs(0, groupNo,null);
                                     fitWesternMedicine(res, groupNo);
                                     // //选中药品后,光标默认到用法
                                     // $("#supplyType").next().click();
                                 });
                                 $("#cancelButton").off("click");
                             } else {
-                                refreshNavTabs(0, groupNo);
+                                refreshNavTabs(0, groupNo,null);
                                 fitWesternMedicine(res, groupNo);
                             }
                         }
@@ -6063,7 +6068,13 @@ function checkYpInfo(code, serial, groupNo, needNotice, orderNo) {
                             //西药处方数量
                             var xyTabLiLength = $("#xyTab li").length;
                             if (xyTabLiLength < orderNo) {
-                                refreshNavTabs(0, groupNo);
+                              var tableId=orderNoAndTableIdMap.get(orderNo);
+                              if(tableId!=null && tableId!=""){
+                                  //切换处方
+                                  $("#xyTab").find("a[href='#" + tableId + "']").off("click").tab('show');
+                              }else {
+                                  refreshNavTabs(0, groupNo,orderNo);
+                              }
                             } else {
                                 $("#xyTab li.active").find("a").find("small.cfdesc").text("(" + cfdesc + ")");
                             }
@@ -6133,7 +6144,7 @@ function checkZyInfo(code, serial, async) {
                     hintProjectSelfPayInfo(res.data.selfpayProp, "药品");
                     //如果
                     if ($("#zyTab").find("li") == null || $("#zyTab").find("li").length == 0) {
-                        initNavTabs(1);
+                        initNavTabs(1,null,null);
                         //$("input.zyfs").val(1);
                     }
                     $("#chinese_medicine_name").val(res.data.name);
@@ -6412,7 +6423,7 @@ function loadZlItemList(event) {
             $("#zlExecUnit").selectpicker('refresh');
             //诊疗
             if ($("#zlTab").find("li") == null || $("#zlTab").find("li").length == 0) {
-                initNavTabs(3);
+                initNavTabs(3,null,null);
             }
             $("#zlItem").val(row.name);
             $("#zlItem").blur();
@@ -6466,7 +6477,7 @@ function checkJcJyItemInfo(code, name, type, async) {
                     hintProjectSelfPayInfo(res.selfpayProp, type == 1 ? "检验" : "辅助检查");
                     //如果
                     if ($("#jcjyTab").find("li") == null || $("#jcjyTab").find("li").length == 0) {
-                        initNavTabs(2);
+                        initNavTabs(2,null,null);
                     }
                     if (name == null) {
                         name = res.name;
@@ -6720,8 +6731,10 @@ function verifyRepeat(code, serial, chargeUnitCode, index) {
 /**
  * 初始化处方分页
  * @param index 0 西药 1 中药 2 诊疗 3 入院
+ * @param groupNo 初始化时候的药房分类
+ * @param orderNo 初始化时候的处方组号
  */
-function initNavTabs(index) {
+function initNavTabs(index,groupNo,orderNo) {
     var tabId = null;
     var tabContentId = null;
     var paneId = null;
@@ -6814,6 +6827,13 @@ function initNavTabs(index) {
         initZySupplyTypes("zy_supplyType_1", false);
 
     }
+    if(groupNo!=null && groupNo!=""){
+        //设置当前药品的品类
+        $("#"+paneId).find("input.current_groupNo").val(groupNo);
+    }
+    if(orderNo!=null && orderNo!="" && orderNoAndTableIdMap!=null){
+        orderNoAndTableIdMap.put(orderNo,paneId);
+    }
 }
 
 
@@ -6864,8 +6884,9 @@ function clearNavTabs(index) {
  * 添加处方分页
  * @param index 0 西药 1 中药 2 诊疗 3 入院
  * @param groupNo 71 普通西药  91 医材  111 麻、精一  131 精二  151 诊疗
+ * @param orderNo 处方号
  */
-function refreshNavTabs(index, groupNo) {
+function refreshNavTabs(index, groupNo,orderNo) {
     var tabId = null;
     var tabContentId = null;
     var paneIdPrfix = null;
@@ -6941,6 +6962,13 @@ function refreshNavTabs(index, groupNo) {
     $("#" + tabContentId).append(html);
     //切换处方
     $("#" + tabId).find("a[href='#" + paneId + "']").off("click").tab('show');
+    if(groupNo!=null && groupNo!=""){
+        //设置当前药品的品类
+        $("#"+paneId).find("input.current_groupNo").val(groupNo);
+    }
+    if(orderNo!=null && orderNo!="" && orderNoAndTableIdMap!=null){
+        orderNoAndTableIdMap.put(orderNo,paneId);
+    }
 }
 
 

+ 4 - 4
src/main/resources/templates/mz/clinic.html

@@ -680,15 +680,15 @@
                                                 type="button" aria-expanded="false">新增处方<span class="caret"></span>
                                         </button>
                                         <ul role="menu" class="dropdown-menu">
-                                            <li><a onclick="refreshNavTabs(0, 71)">新增处方(普药)</a>
+                                            <li><a onclick="refreshNavTabs(0, 71,null)">新增处方(普药)</a>
                                             </li>
-                                            <li><a onclick="refreshNavTabs(0, 91)">新增处方(医材)</a>
+                                            <li><a onclick="refreshNavTabs(0, 91,null)">新增处方(医材)</a>
                                             </li>
                                             <!-- 横线-->
                                             <li class="divider"></li>
-                                            <li><a onclick="refreshNavTabs(0, 111)">新增处方(麻、精一)</a>
+                                            <li><a onclick="refreshNavTabs(0, 111,null)">新增处方(麻、精一)</a>
                                             </li>
-                                            <li><a onclick="refreshNavTabs(0, 131)">新增处方(精二)</a>
+                                            <li><a onclick="refreshNavTabs(0, 131,null)">新增处方(精二)</a>
                                             </li>
                                         </ul>
                                     </div>