Browse Source

优化组号调整功能

hurugang 3 years ago
parent
commit
e0bb3720f9

+ 61 - 15
src/main/resources/static/js/mz/clinic.js

@@ -17,7 +17,7 @@ var mztczfSiReadCardStatus = false;
 //药品组号与处方号关系
 var gropuIdAndOrderNoMap = null;
 //上一个药品大类
-var prevCategoriesFlag = null;
+//var prevCategoriesFlag = null;
 $(function () {
     initGenderSelect();
     iniAdmissStatus();
@@ -2047,7 +2047,7 @@ function clearWorkSpaceExcludeUser(source) {
         clearTurnToConsultationInput();
         clearZgtczfInput();
         gropuIdAndOrderNoMap = null;
-        prevCategoriesFlag = null;
+        //prevCategoriesFlag = null;
         initGroupOrder();
     }
     $("#totalAmount").text(0);
@@ -3568,8 +3568,18 @@ function saveWesternMedicine(calculateTotalAmountFlag) {
         gropuIdAndOrderNoMap.put(groupId, xyTabIndex);
     }
     if (xyTabIndex != exitIndex) {
-        errorMesageSimaple("同一组药必须出现在同一个处方中,当前组号已经被其他处方使用,请调整处方!");
-        return;
+        var westernMedicineUpdateFlag=$("#western_medicine_update_flag").val();
+       var westernMedicineOriGroupId =$("#western_medicine_ori_group_id").val();
+       //非修改组号的情况下就需要切换组号
+       if(!((westernMedicineUpdateFlag==true || westernMedicineUpdateFlag=="true") && westernMedicineOriGroupId!=groupId)){
+           groupId = parseInt($("#groupId > option:last").val());
+           $("#groupId").selectpicker('val', groupId);
+           $('#groupId').selectpicker('refresh');
+           gropuIdAndOrderNoMap.put(groupId, xyTabIndex);
+           appendGroupOrder();
+       }
+        warningMesageSimaple("同一组药必须出现在同一个处方中,当前组号已经被其他处方使用,系统已自动为您重新分配组号!");
+        //return;
     }
     //药品名称
     var westernMedicineNamme = $("#western_medicine_name").val();
@@ -3616,6 +3626,8 @@ function saveWesternMedicine(calculateTotalAmountFlag) {
     var packRetprice = $("#packRetprice").val();
     //皮试结果
     var tryResult = $("#tryResult").val();
+    //药品大类标志
+    var categoriesFlag = $("#categoriesFlag").val();
     if (currentCode == null || currentCode == '') {
         errorMesageSimaple("未选择任何药品!");
         return;
@@ -3690,6 +3702,7 @@ function saveWesternMedicine(calculateTotalAmountFlag) {
     html += '<input type="hidden" class="temporary_items_packRetprice" value="' + packRetprice + '"/>';
     html += '<input type="hidden" class="temporary_items_tryResult" value="' + tryResult + '"/>';
     html += '<input type="hidden" class="temporary_items_currentGroupNo" value="' + currentGroupNo + '"/>';
+    html += '<input type="hidden" class="temporary_items_categoriesFlag" value="' + categoriesFlag + '"/>';
     html += '</div>';
 
     var tableId = $("#xyTab li.active").find("a").attr("href");
@@ -3712,7 +3725,9 @@ function saveWesternMedicine(calculateTotalAmountFlag) {
                 var temporaryItemsCode = $(formGroups[i]).find("input.temporary_items_code").val();
                 var temporaryItemsSerial = $(formGroups[i]).find("input.temporary_items_serial").val();
                 var temporaryItemsGroupId = $(formGroups[i]).find("input.temporary_items_groupId").val();
-                if (temporaryItemsCode === currentCode && temporaryItemsSerial === currentSerial && temporaryItemsGroupId == groupId) {
+                //组号有可能会修改,所以,判断的时候要用原组号
+                var westernMedicineOriGroupId=$("#western_medicine_ori_group_id").val();
+                if (temporaryItemsCode === currentCode && temporaryItemsSerial === currentSerial && temporaryItemsGroupId == westernMedicineOriGroupId) {
                     //temporaryItemsAmount = $(formGroups[i]).find("input.temporary_items_amount").val();
                     if (formGroups.length > 1) {
                         nextObj = $(formGroups[i]).next();
@@ -3822,6 +3837,8 @@ function editWesternMedicine(obj) {
     var parentObject = $(obj).parent();
     //组号
     $("#groupId").val($(parentObject).find("input.temporary_items_groupId").val());
+    //组号有可能会修改,所以,判断的时候要用原组号
+    $("#western_medicine_ori_group_id").val($(parentObject).find("input.temporary_items_groupId").val());
     $('#groupId').selectpicker('refresh');
     //药品名称
     $("#western_medicine_name").val($(parentObject).find("input.temporary_items_westernMedicineNamme").val());
@@ -3858,6 +3875,8 @@ function editWesternMedicine(obj) {
     var tryResult = $(parentObject).find("input.temporary_items_tryResult").val();
     //设置当前药品类型
     $("#current_groupNo").val($(parentObject).find("input.temporary_items_currentGroupNo").val());
+    //设置当前药品大类
+    $("#categoriesFlag").val($(parentObject).find("input.temporary_items_categoriesFlag").val());
     $.ajax({
         type: "GET",
         url: '/thmz/getYpZdDictByCodeAndSerial?code=' + code + "&serial=" + serial,
@@ -4502,6 +4521,7 @@ function removeYpOrProject(index, obj) {
  */
 function clearWesternMedicine(flag) {
     $("#western_medicine_update_flag").val(false);
+    $("#western_medicine_ori_group_id").val(null);
     //药品名称
     $("#western_medicine_name").val(null);
     //当前药品编码
@@ -4550,6 +4570,7 @@ function clearWesternMedicine(flag) {
     //$("#gross").attr("readonly", "readonly");
     $("#manufactoryName").val(null);
     $("#specification").val(null);
+    $("#categoriesFlag").val(null);
 }
 
 
@@ -6813,21 +6834,36 @@ function refreshNavTabs(index, groupNo) {
     //切换处方
     $("#" + tabId).find("a[href='#" + paneId + "']").off("click").tab('show');
 
-    if (prevCategoriesFlag != null) {
-        //如果上一个药品大类不为空,又增加了处方分页,组号要自动切换
-        var last = parseInt($("#groupId > option:last").val());
-        $("#groupId").selectpicker('val', last);
-        $('#groupId').selectpicker('refresh');
-    }
+   var cf_contents= $("#xyTabContent").find("div.cf_content");
+   if(cf_contents!=null && cf_contents.length>0){
+       for(var i=0;i<cf_contents.length;i++){
+           var length=$(cf_contents[i]).children().length;
+           if(length!=null && length>0){
+               //如果上一个处方金额不为空,又增加了处方分页,组号要自动切换
+               var last = parseInt($("#groupId > option:last").val());
+               $("#groupId").selectpicker('val', last);
+               $('#groupId').selectpicker('refresh');
+               break;
+           }
+       }
+   }
 }
 
 
 /**
- * 填充西药选中的内容
+ * 判断是否需要自动增加组号
  * @param res
- * @param groupNo
  */
-function fitWesternMedicine(res, groupNo) {
+function autoAddGroupId(res) {
+    var tableId = $("#xyTab li.active").find("a").attr("href");
+    var childrens = $(tableId).find("div:eq(0)").children();
+    var prevCategoriesFlag=null;
+    if(childrens!=null && childrens.length>0){
+        prevCategoriesFlag=$(childrens[childrens.length-1]).find("input.temporary_items_categoriesFlag").val();
+        if(prevCategoriesFlag=="" || prevCategoriesFlag==undefined){
+            prevCategoriesFlag=null;
+        }
+    }
     if (!(res.data.categoriesFlag == 2 || res.data.categoriesFlag == "2" || res.data.categoriesFlag == 1 || res.data.categoriesFlag == "1") ||
         ((res.data.categoriesFlag == 2 || res.data.categoriesFlag == "2" || res.data.categoriesFlag == 1 || res.data.categoriesFlag == "1") && prevCategoriesFlag != null && prevCategoriesFlag != "1" && prevCategoriesFlag != 1 && prevCategoriesFlag != "2" && prevCategoriesFlag != 2)) {
         //非针剂默认要切换组号 或者 是针剂,但是上一个药品不是针剂,这时候也要新换一个组号
@@ -6835,7 +6871,17 @@ function fitWesternMedicine(res, groupNo) {
         $("#groupId").selectpicker('val', last);
         $('#groupId').selectpicker('refresh');
     }
-    prevCategoriesFlag = res.data.categoriesFlag;
+}
+
+/**
+ * 填充西药选中的内容
+ * @param res
+ * @param groupNo
+ */
+function fitWesternMedicine(res, groupNo) {
+    autoAddGroupId(res);
+    $("#categoriesFlag").val(res.data.categoriesFlag);
+    //prevCategoriesFlag = res.data.categoriesFlag;
     $("#western_medicine_name").val(res.data.name);
     $("#western_medicine_name").blur();
     var drugWinHtml = '';

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

@@ -520,6 +520,8 @@
                         <input id="zl_current_code" type="hidden"/>
                         <!-- 当前选择西药品是否是修改状态 true 修改 false 新增-->
                         <input id="western_medicine_update_flag" type="hidden"/>
+                        <!-- 当前修改的药品的原始组号 组号有可能会修改,所以,判断的时候要用原组号-->
+                        <input id="western_medicine_ori_group_id" type="hidden"/>
                         <!-- 当前选择中药品是否是修改状态 true 修改 false 新增-->
                         <input id="chinese_medicine_update_flag" type="hidden"/>
                         <!-- 当前选择检查检验是否是修改状态 true 修改 false 新增-->
@@ -544,6 +546,8 @@
                                                     title="请选择" onchange="groupIdChange()"
                                                     id="groupId">
                                             </select>
+                                            <!--当前药品的大类-->
+                                            <input id="categoriesFlag" type="hidden"/>
                                         </div>
                                     </div>
                                     <div style="width: 256px;float: left;">