|
@@ -20,6 +20,8 @@ var gropuIdAndOrderNoMap = null;
|
|
|
//var prevCategoriesFlag = null;
|
|
|
//处方回调和修改的时候处方号与处方tab的关系
|
|
|
var orderNoAndTableIdMap = null;
|
|
|
+//处方回调和修改的时候处方tab与处方号的关系
|
|
|
+var tableIdAndOrderNoMap = null;
|
|
|
$(function () {
|
|
|
initGenderSelect();
|
|
|
iniAdmissStatus();
|
|
@@ -802,6 +804,7 @@ $(function () {
|
|
|
timer = setTimeout(isScrollEnd, 100)
|
|
|
t1 = $("#scroll-wrap").scrollTop();
|
|
|
})
|
|
|
+
|
|
|
function isScrollEnd() {
|
|
|
t2 = $("#scroll-wrap").scrollTop();
|
|
|
if (t2 == t1) {
|
|
@@ -810,6 +813,7 @@ $(function () {
|
|
|
console.log("滚动停止", t2) // 这里处理
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
//监听滚动停止处理逻辑结束
|
|
|
|
|
|
|
|
@@ -2490,6 +2494,8 @@ function medicalModelModal(id) {
|
|
|
$("#idTemplate").val(res.data.id);
|
|
|
$("#zsTemplate").html(jsonData.mzBlRecord.emrChiefComplaint);
|
|
|
$("#xbsTemplate").html(jsonData.mzBlRecord.emrHpi);
|
|
|
+ $("#tgjcTemplate").html(jsonData.mzBlRecord.emrPe);
|
|
|
+ $("#jkjyTemplate").html(jsonData.mzBlRecord.emrJkjy);
|
|
|
var icdText = res.data.icdText;
|
|
|
$("#zdTemplate").html("");
|
|
|
$("#xypyContent").html("");
|
|
@@ -2641,6 +2647,7 @@ function callBackZlDetail(code, mzChargeDetail) {
|
|
|
*/
|
|
|
function editPrescription(jsonData, type) {
|
|
|
orderNoAndTableIdMap = new Map();
|
|
|
+ tableIdAndOrderNoMap = new Map();
|
|
|
var firstOrNot = jsonData.firstOrNot;
|
|
|
var conciseRecordsFlag = false;
|
|
|
if (type == 1) {
|
|
@@ -2740,25 +2747,29 @@ function editPrescription(jsonData, type) {
|
|
|
var zlArrays = [];
|
|
|
//住院选中的数据组
|
|
|
var zyReqArrays = [];
|
|
|
+ //组号与同组药数量的map
|
|
|
+ var groupOrderAndLengthMap = new Map();
|
|
|
+ //处方号与同处方号药数量的map
|
|
|
+ var orderNoAndLengthMap = new Map();
|
|
|
//住院回写
|
|
|
var zyReqCallBack = false;
|
|
|
if (type == 1) {
|
|
|
- setCallBackArrays("xypyContent", xyArrays);
|
|
|
- setCallBackArrays("xymjContent", xyArrays);
|
|
|
- setCallBackArrays("xyjeContent", xyArrays);
|
|
|
- setCallBackArrays("yczlContent", xyArrays);
|
|
|
- setCallBackArrays("zyzlContent", zyArrays);
|
|
|
- setCallBackArrays("jcjyContent", jcjyArrays);
|
|
|
- setCallBackArrays("zlContent", zlArrays);
|
|
|
+ setCallBackArrays("xypyContent", xyArrays, groupOrderAndLengthMap, orderNoAndLengthMap);
|
|
|
+ setCallBackArrays("xymjContent", xyArrays, groupOrderAndLengthMap, orderNoAndLengthMap);
|
|
|
+ setCallBackArrays("xyjeContent", xyArrays, groupOrderAndLengthMap, orderNoAndLengthMap);
|
|
|
+ setCallBackArrays("yczlContent", xyArrays, groupOrderAndLengthMap, orderNoAndLengthMap);
|
|
|
+ setCallBackArrays("zyzlContent", zyArrays, null, null);
|
|
|
+ setCallBackArrays("jcjyContent", jcjyArrays, null, null);
|
|
|
+ setCallBackArrays("zlContent", zlArrays, null, null);
|
|
|
zyReqCallBack = $("#zyReqContent").find("input").prop("checked");
|
|
|
} else if (type == 2) {
|
|
|
- setCallBackArrays("prescriptionDetail_xypyContent", xyArrays);
|
|
|
- setCallBackArrays("prescriptionDetail_xymjContent", xyArrays);
|
|
|
- setCallBackArrays("prescriptionDetail_xyjeContent", xyArrays);
|
|
|
- setCallBackArrays("prescriptionDetail_yczlContent", xyArrays);
|
|
|
- setCallBackArrays("prescriptionDetail_zyzlContent", zyArrays);
|
|
|
- setCallBackArrays("prescriptionDetail_jcjyContent", jcjyArrays);
|
|
|
- setCallBackArrays("prescriptionDetail_zlContent", zlArrays);
|
|
|
+ setCallBackArrays("prescriptionDetail_xypyContent", xyArrays, groupOrderAndLengthMap, orderNoAndLengthMap);
|
|
|
+ setCallBackArrays("prescriptionDetail_xymjContent", xyArrays, groupOrderAndLengthMap, orderNoAndLengthMap);
|
|
|
+ setCallBackArrays("prescriptionDetail_xyjeContent", xyArrays, groupOrderAndLengthMap, orderNoAndLengthMap);
|
|
|
+ setCallBackArrays("prescriptionDetail_yczlContent", xyArrays, groupOrderAndLengthMap, orderNoAndLengthMap);
|
|
|
+ setCallBackArrays("prescriptionDetail_zyzlContent", zyArrays, null, null);
|
|
|
+ setCallBackArrays("prescriptionDetail_jcjyContent", jcjyArrays, null, null);
|
|
|
+ setCallBackArrays("prescriptionDetail_zlContent", zlArrays, null, null);
|
|
|
zyReqCallBack = $("#prescriptionDetail_zyReqContent").find("input").prop("checked");
|
|
|
} else if (type == 0) {
|
|
|
zyReqCallBack = true;
|
|
@@ -2769,6 +2780,13 @@ function editPrescription(jsonData, type) {
|
|
|
var hadSetZyFullParams = false;
|
|
|
//西药,成药,医材,麻精,中药,诊疗
|
|
|
if (mzChargeDetailList != null && mzChargeDetailList.length > 0) {
|
|
|
+ //当前实际回写的组号
|
|
|
+ var currentOrderNo = null;
|
|
|
+ //处方号与药品类型关系
|
|
|
+ var orderAndGroupNoMap = new Map();
|
|
|
+ // mzChargeDetailList.sort(function (a, b) {
|
|
|
+ // return a.groupNo - b.groupNo
|
|
|
+ // });
|
|
|
for (var i = 0; i < mzChargeDetailList.length; i++) {
|
|
|
var mzChargeDetail = mzChargeDetailList[i];
|
|
|
var groupNo = mzChargeDetail.groupNo;
|
|
@@ -2785,7 +2803,9 @@ function editPrescription(jsonData, type) {
|
|
|
if (groupOrder == null || groupOrder == 'null' || groupOrder == "") {
|
|
|
groupOrder = 1;
|
|
|
}
|
|
|
- if (type != 0 && !isInArray(code + "_" + serial + "_" + groupOrder, xyArrays)) {
|
|
|
+ var orderNo = mzChargeDetail.orderNo;
|
|
|
+ orderAndGroupNoMap.put(orderNo, groupNo);
|
|
|
+ if (type != 0 && !isInArray(code + "_" + serial + "_" + groupOrder + "_" + orderNo, xyArrays)) {
|
|
|
continue;
|
|
|
}
|
|
|
var lastGroupOrder = parseInt($("#groupId > option:last").val());
|
|
@@ -2796,7 +2816,58 @@ function editPrescription(jsonData, type) {
|
|
|
//appendGroupOrder()
|
|
|
$("#groupId").selectpicker('val', groupOrder);
|
|
|
$('#groupId').selectpicker('refresh');
|
|
|
- checkYpInfo(code, serial, groupNo, false, mzChargeDetail.orderNo);
|
|
|
+ //模板和历史轨迹回调的时候,如果前一个处方不满5个,就将后面的处方的药品添加到上一个处方中,但如果同一组药不能全部添加到上一个处方,就不会追加到该处方中
|
|
|
+ var orderNoLength = orderNoAndLengthMap.get(orderNo);
|
|
|
+ if (currentOrderNo == null) {
|
|
|
+ currentOrderNo = orderNo;
|
|
|
+ } else if (orderAndGroupNoMap.get(currentOrderNo) != orderAndGroupNoMap.get(orderNo)) {
|
|
|
+ var currentGroupNos = $("#xyTabContent").find("input.current_groupNo");
|
|
|
+ //查询还没有满5个的处方页
|
|
|
+ var tempOrderNo = null;
|
|
|
+ for (var k = 0; k < currentGroupNos.length; k++) {
|
|
|
+ if ($(currentGroupNos[k]).val() == groupNo) {
|
|
|
+ var next = $(currentGroupNos[k]).next();
|
|
|
+ if ($(next).children().length < 4) {
|
|
|
+ var parentId = $(currentGroupNos[k]).parent().attr("id");
|
|
|
+ tempOrderNo = tableIdAndOrderNoMap.get(parentId);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ currentOrderNo = tempOrderNo;
|
|
|
+ } else if (currentOrderNo != orderNo && orderNoLength < 5) {
|
|
|
+ var currentOrderNoLength = orderNoAndLengthMap.get(currentOrderNo);
|
|
|
+ var groupOrderLength = groupOrderAndLengthMap.get(groupOrder);
|
|
|
+ if (groupOrderLength + currentOrderNoLength <= 5) {
|
|
|
+ currentOrderNoLength = currentOrderNoLength + 1;
|
|
|
+ orderNoLength = orderNoLength - 1;
|
|
|
+ groupOrderLength = groupOrderLength - 1;
|
|
|
+ orderNoAndLengthMap.put(currentOrderNo, currentOrderNoLength);
|
|
|
+ orderNoAndLengthMap.put(orderNo, orderNoLength);
|
|
|
+ groupOrderAndLengthMap.put(groupOrder, groupOrderLength);
|
|
|
+ orderNo = currentOrderNo;
|
|
|
+ if (currentOrderNoLength == 5) {
|
|
|
+ var currentGroupNos = $("#xyTabContent").find("input.current_groupNo");
|
|
|
+ //查询还没有满5个的处方页,
|
|
|
+ var tempOrderNo = null;
|
|
|
+ for (var k = 0; k < currentGroupNos.length; k++) {
|
|
|
+ if ($(currentGroupNos[k]).val() == groupNo) {
|
|
|
+ var next = $(currentGroupNos[k]).next();
|
|
|
+ //这里判断是4,是因为已经把组号设置了,所以要减去1
|
|
|
+ if ($(next).children().length < 4) {
|
|
|
+ var parentId = $(currentGroupNos[k]).parent().attr("id");
|
|
|
+ tempOrderNo = tableIdAndOrderNoMap.get(parentId);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ currentOrderNo = tempOrderNo;
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ currentOrderNo=orderNo;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ checkYpInfo(code, serial, groupNo, false, orderNo);
|
|
|
// 给药方式 同组药品给药方式相同
|
|
|
$("#supplyType").selectpicker('val', mzChargeDetail.supplyCode);
|
|
|
$('#supplyType').selectpicker('refresh');
|
|
@@ -2822,6 +2893,7 @@ function editPrescription(jsonData, type) {
|
|
|
$('#medicalAdvice').selectpicker('refresh');
|
|
|
saveWesternMedicine(false);
|
|
|
$("#western_medicine_button").click();
|
|
|
+ $("#xyTab").find("li:eq(0) a").off("click").click();
|
|
|
} else {
|
|
|
if (type != 0 && !isInArray(code + "_" + serial, zyArrays)) {
|
|
|
continue;
|
|
@@ -2911,14 +2983,17 @@ function editPrescription(jsonData, type) {
|
|
|
}, 1000);
|
|
|
//清空映射map
|
|
|
orderNoAndTableIdMap = null;
|
|
|
+ tableIdAndOrderNoMap = null;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 根据勾选内容设置选中集合
|
|
|
* @param id 区域id
|
|
|
* @param arrays 集合
|
|
|
+ * @param groupOrderAndLengthMap 组号与同组药数量的map
|
|
|
+ * @param orderNoAndLengthMap 处方号与同处方号药数量的map
|
|
|
*/
|
|
|
-function setCallBackArrays(id, arrays) {
|
|
|
+function setCallBackArrays(id, arrays, groupOrderAndLengthMap, orderNoAndLengthMap) {
|
|
|
var contents = $("#" + id).children();
|
|
|
if (contents == null || contents.length == 0) {
|
|
|
return;
|
|
@@ -2928,6 +3003,35 @@ function setCallBackArrays(id, arrays) {
|
|
|
var data_id = $(obj).attr("data-id");
|
|
|
if (checked && data_id != undefined && data_id != null && data_id != "null" && data_id != "") {
|
|
|
arrays[arrays.length] = data_id;
|
|
|
+ var dataArr = null;
|
|
|
+ //设置组号与同组药品数量关系
|
|
|
+ if (groupOrderAndLengthMap != null) {
|
|
|
+ dataArr = data_id.split("_");
|
|
|
+ if (dataArr != null && dataArr.length >= 3) {
|
|
|
+ var groupOrder = Number(dataArr[2]);
|
|
|
+ var length = groupOrderAndLengthMap.get(groupOrder);
|
|
|
+ if (length == null || length == "") {
|
|
|
+ length = 0;
|
|
|
+ }
|
|
|
+ length++;
|
|
|
+ groupOrderAndLengthMap.put(groupOrder, length);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //设置处方号与同处方号药品数量关系
|
|
|
+ if (orderNoAndLengthMap != null) {
|
|
|
+ if (dataArr == null) {
|
|
|
+ dataArr = data_id.split("_");
|
|
|
+ }
|
|
|
+ if (dataArr != null && dataArr.length >= 4) {
|
|
|
+ var orderNo = Number(dataArr[3]);
|
|
|
+ var length = orderNoAndLengthMap.get(orderNo);
|
|
|
+ if (length == null || length == "") {
|
|
|
+ length = 0;
|
|
|
+ }
|
|
|
+ length++;
|
|
|
+ orderNoAndLengthMap.put(orderNo, length);
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
});
|
|
|
}
|
|
@@ -6065,20 +6169,18 @@ function checkYpInfo(code, serial, groupNo, needNotice, orderNo) {
|
|
|
var tableId = $("#xyTab li.active").find("a").attr("href");
|
|
|
var childrens = $(tableId).find("div:eq(0)").children().length;
|
|
|
var currentGroupNo = $(tableId).find("input.current_groupNo").val();
|
|
|
- if (childrens === 5) {
|
|
|
+ if (childrens === 5 && $(tableId).is(':last-child')) {
|
|
|
if (needNotice) {
|
|
|
$("#messageModal").modal();
|
|
|
$("#messageContent").html("单张处方最多只能开具5个药品,是否需要新增处方?");
|
|
|
$("#messageButton").off("click").on("click", function (t) {
|
|
|
$("#messageModal").modal("hide");
|
|
|
- refreshNavTabs(0, groupNo, null);
|
|
|
+ refreshNavTabs(0, groupNo, orderNo);
|
|
|
fitWesternMedicine(res, groupNo);
|
|
|
- // //选中药品后,光标默认到用法
|
|
|
- // $("#supplyType").next().click();
|
|
|
});
|
|
|
$("#cancelButton").off("click");
|
|
|
} else {
|
|
|
- refreshNavTabs(0, groupNo, null);
|
|
|
+ refreshNavTabs(0, groupNo, orderNo);
|
|
|
fitWesternMedicine(res, groupNo);
|
|
|
}
|
|
|
} else if (currentGroupNo != null && currentGroupNo != '' && groupNo != currentGroupNo) {
|
|
@@ -6093,6 +6195,7 @@ function checkYpInfo(code, serial, groupNo, needNotice, orderNo) {
|
|
|
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;
|
|
|
fitWesternMedicine(res, groupNo);
|
|
@@ -6114,14 +6217,14 @@ function checkYpInfo(code, serial, groupNo, needNotice, orderNo) {
|
|
|
$("#messageContent").html(message);
|
|
|
$("#messageButton").off("click").on("click", function (t) {
|
|
|
$("#messageModal").modal("hide");
|
|
|
- refreshNavTabs(0, groupNo, null);
|
|
|
+ refreshNavTabs(0, groupNo, orderNo);
|
|
|
fitWesternMedicine(res, groupNo);
|
|
|
// //选中药品后,光标默认到用法
|
|
|
// $("#supplyType").next().click();
|
|
|
});
|
|
|
$("#cancelButton").off("click");
|
|
|
} else {
|
|
|
- refreshNavTabs(0, groupNo, null);
|
|
|
+ refreshNavTabs(0, groupNo, orderNo);
|
|
|
fitWesternMedicine(res, groupNo);
|
|
|
}
|
|
|
}
|
|
@@ -6130,17 +6233,20 @@ function checkYpInfo(code, serial, groupNo, needNotice, orderNo) {
|
|
|
//修改药品
|
|
|
if (orderNo != null) {
|
|
|
//西药处方数量
|
|
|
- var xyTabLiLength = $("#xyTab li").length;
|
|
|
- if (xyTabLiLength < orderNo) {
|
|
|
- var tableId = orderNoAndTableIdMap.get(orderNo);
|
|
|
- if (tableId != null && tableId != "") {
|
|
|
- //切换处方
|
|
|
- $("#xyTab").find("a[href='#" + tableId + "']").off("click").tab('show');
|
|
|
- } else {
|
|
|
- refreshNavTabs(0, groupNo, orderNo);
|
|
|
- }
|
|
|
- } else {
|
|
|
+ // var xyTabLiLength = $("#xyTab li").length;
|
|
|
+ // if (xyTabLiLength < orderNo) {
|
|
|
+ //
|
|
|
+ // } else {
|
|
|
+ // $("#xyTab li.active").find("a").find("small.cfdesc").text("(" + cfdesc + ")");
|
|
|
+ // }
|
|
|
+ var tableId = orderNoAndTableIdMap.get(orderNo);
|
|
|
+ if (tableId != null && tableId != "") {
|
|
|
+ //切换处方
|
|
|
+ $("#xyTab").find("a[href='#" + tableId + "']").off("click").tab('show');
|
|
|
+ //$("#xyTab").find("a[href='#" + tableId + "']").off("click").click();
|
|
|
$("#xyTab li.active").find("a").find("small.cfdesc").text("(" + cfdesc + ")");
|
|
|
+ } else {
|
|
|
+ refreshNavTabs(0, groupNo, orderNo);
|
|
|
}
|
|
|
fitWesternMedicine(res, groupNo);
|
|
|
} else {
|
|
@@ -6148,11 +6254,6 @@ function checkYpInfo(code, serial, groupNo, needNotice, orderNo) {
|
|
|
fitWesternMedicine(res, groupNo);
|
|
|
}
|
|
|
}
|
|
|
- // if (needNotice) {
|
|
|
- // //选中药品后,光标默认到用法
|
|
|
- // $("#supplyType").next().click();
|
|
|
- // // prevEleId = 'supplyType';
|
|
|
- // }
|
|
|
}
|
|
|
} else {
|
|
|
errorMesage(res);
|
|
@@ -6897,6 +6998,7 @@ function initNavTabs(index, groupNo, orderNo) {
|
|
|
}
|
|
|
if (orderNo != null && orderNo != "" && orderNoAndTableIdMap != null) {
|
|
|
orderNoAndTableIdMap.put(orderNo, paneId);
|
|
|
+ tableIdAndOrderNoMap.put(paneId, orderNo);
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -7032,6 +7134,7 @@ function refreshNavTabs(index, groupNo, orderNo) {
|
|
|
}
|
|
|
if (orderNo != null && orderNo != "" && orderNoAndTableIdMap != null) {
|
|
|
orderNoAndTableIdMap.put(orderNo, paneId);
|
|
|
+ tableIdAndOrderNoMap.put(paneId, orderNo);
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -8535,6 +8638,8 @@ function prescriptionDetailCommon(patientId, times, clnicId, payMark, type) {
|
|
|
}
|
|
|
$("#prescriptionDetail_zs").html(jsonData.mzBlRecord.emrChiefComplaint);
|
|
|
$("#prescriptionDetail_xbs").html(jsonData.mzBlRecord.emrHpi);
|
|
|
+ $("#prescriptionDetail_tgjc").html(jsonData.mzBlRecord.emrPe);
|
|
|
+ $("#prescriptionDetail_jkjy").html(jsonData.mzBlRecord.emrJkjy);
|
|
|
var icdText = jsonData.icdText;
|
|
|
if (icdText != null) {
|
|
|
var arr = icdText.split(",");
|