require("../css/qcScore.less"); const $ = require('jquery'); require('jquery-templates'); require('./modal.js'); const { post, getUrlArgObject, setBoxHeight, getCookie, getLocal, initScroll } = require('./utils.js'); const { api, ywCheckApi } = require('./api.js'); let checkOk = require('./../images/checkOk.png') const adLogo = require("../images/adlogo.png") if (localStorage.getItem('toLogin') === '1') { window.location.href = '../login.html'; } $(function () { const hideLogo = getUrlArgObject("hideLg"); if (hideLogo) { $(".sub-menu .logo img,.copy-right").remove(); $(".menu-mini .logo").text(""); } const otherLogo = getUrlArgObject("adLg"); if (otherLogo) { $(".logo img").attr("src", adLogo); $(".menu-mini .logo").text("艾登"); $(".copy-right").remove(); } //本页全局变量 let global_flawData = {}; //缺陷数据 let global_flawDataPay = {}; //缺陷数据 const global_id = getUrlArgObject("id"); const global_hid = getUrlArgObject("hid"); let global_check; let global_check_home, global_check_show, check_Operation_WithAppeal; let global_entryName, global_casesEntryId const global_code = getUrlArgObject("code"); let global_activeTab = $(".sub-menu .page.active").attr("code"); //当前激活菜单项 let global_modules = {}; //模板数据缓存 let global_flaws = []; //缺陷条目列表缓存 let global_selectedFlaw = {}; //新增时选中的条目信息 getAllModules(); let showCheckBtns = global_code === "YH-ZKHC-HCRWLB"; window.document.title = (showCheckBtns ? "质控核查-" : "质控评分-") + getUrlArgObject("name"); let hasAu3 = showCheckBtns && hasData('FUNC000011'); //新增缺陷权限 if (hasAu3) { $(".add-flaw").click(function () { getQcCasesEntry(); }); } function showAppealDetailEvent() { //申诉状态点击事件 $(".flaw-item").off("click").on("click", ".title .btn", function () { showModal("5", $(this).attr("data_id"), $(this).attr("data_type"), $(this).attr("data_casesEntryId"), $(this).attr("data_qcresultDetailId")); }); } function initMenu(data) { console.log(data); data.push({ id: 6, name: "其他信息", parentId: -1, sonMode: [], }) const menu = [{ id: 0, name: "缺陷总览", parentId: -1, sonMode: [] }, ...(data || [])]; //菜单数据填充 $("#subMenuTmpl").tmpl(menu).appendTo("#subMenu"); $("#miniMenuTmpl").tmpl(menu).appendTo(".menu-mini ul"); //菜单收起展开 $(document).on("click", ".sub-menu .list-1", function () { $(".sub-menu .list-1 .slide-up").removeClass('slide-up'); $(this).toggleClass('slide-up'); $(this).find("ul").slideToggle(); // setTimeout(function(){ // initScroll("subMenu","Y",2) // },300) }); $(".sub-menu .list-1 li").on("click", function (e) { e.stopPropagation(); }); //收起菜单 $(".slide-show").click(function () { $(".sub-menu,.copy-right").animate({ "width": "60px" }, function () { $(this).hide(); $(".menu-mini").show(); }); $(".tab-container").animate({ "margin-left": "60px" }); }); //展开菜单 $(".slide-hide").click(function () { $(".menu-mini").hide(); $(".sub-menu,.copy-right").show().animate({ "width": "220px" }, function () { }); $(".tab-container").animate({ "margin-left": "220px" }); }); //右侧内容切换 $(".page").on("click", function () { $(".info-item .cont,.flaw-item,td").removeClass("active"); //清空缺陷定位背景 const title = $(this).attr("code"); if (title == '缺陷总览' || !global_check_show) { //质控核查页进来隐藏原核查按钮 $(".check,.ywCheck").css('display', 'none') }/*else if(title == '病案首页'){ if(showCheckBtns){ $(".ywCheck").show(); }else{ $(".check").css('display','block').text(global_check_home==1?'重新核查':'病案首页核查') } }*/else { if (showCheckBtns) { $(".ywCheck").show(); } else { $(".check").css('display', 'block').text(global_check == 1 ? '重新核查' : '病历核查') } } if (title === "缺陷总览" || title === "谈话告知书" || title === "知情同意书" || title === '医嘱信息' || title === '检验信息' || title === '检查信息' || title === '护理信息' || title === '其他信息') { if (title === "缺陷总览") { getRecordDetailUpdate() } $(".flaw-table .page-item").hide(); $(".flaw-table,.flaw-table .page-item[code=" + title + "]").show(); } else { $(".flaw-table").hide(); } iframeShow(title) //选中样式 $(".sub-menu .active,.menu-mini .active").removeClass('active'); const mItems = $(".sub-menu .page[code=" + title + "],.menu-mini .page[code=" + title + "]"); mItems.addClass("active"); mItems.parents(".list-1").addClass("active"); //显示对应内容 const code = $(this).attr("code"); global_activeTab = code; //initModuleData(); $(".content-item,.flaw-item").hide(); $(".content-item[code='" + code + "']").show(); showFlawList(); $("#contentInfo").scrollTop(0) }); // initScroll("subMenu","Y",2) } function iframeShow(title) { if (title === '医嘱信息') { $("#pacsIframeIn,#assistIframeIn,#pacsDetailIframeIn,#contentNursing,#contentOther").css("display", "none") $("#contentIframeIn").css({ display: 'block' }).attr("src", 'advice.html').contents().find(".adviceWrp").height(window.innerHeight - $("#patientInfo").height() - 20 + 'px') $(window).resize(function () { $("#contentIframeIn").contents().find(".adviceWrp").height(window.innerHeight - $("#patientInfo").height() - 20 + 'px') }); } else if (title === '检验信息') { $("#contentIframeIn,#assistIframeIn,#pacsDetailIframeIn,#contentNursing,#contentOther").css("display", "none") $("#pacsIframeIn").css({ display: 'block' }).attr("src", 'pacs.html').contents().find(".pacsWrp").height(window.innerHeight - $("#patientInfo").height() - 20 + 'px') $(window).resize(function () { $("#pacsIframeIn").contents().find(".pacsWrp").height(window.innerHeight - $("#patientInfo").height() - 20 + 'px') }); } else if (title === '检查信息') { $("#contentIframeIn,#pacsIframeIn,#pacsDetailIframeIn,#contentNursing,#contentOther").css("display", "none") $("#assistIframeIn").css({ display: 'block' }).attr("src", 'assist.html').contents().find(".assistWrp").height(window.innerHeight - $("#patientInfo").height() - 20 + 'px') $(window).resize(function () { $("#assistIframeIn").contents().find(".assistWrp").height(window.innerHeight - $("#patientInfo").height() - 20 + 'px') }); } else if (title === '护理信息') { $("#pacsIframeIn,#assistIframeIn,#pacsDetailIframeIn,#contentIframeIn,#contentOther").css("display", "none") $("#contentNursing").css({ display: 'block' }).attr("src", 'nursing.html').contents().find(".nursingWrp").height(window.innerHeight - $("#patientInfo").height() - 20 + 'px') $(window).resize(function () { $("#contentNursing").contents().find(".nursingWrp").height(window.innerHeight - $("#patientInfo").height() - 20 + 'px') }); } else if (title === '其他信息') { $("#pacsIframeIn,#assistIframeIn,#pacsDetailIframeIn,#contentIframeIn,#contentNursing").css("display", "none") $("#contentOther").css({ display: 'block' }).attr("src", 'other.html').contents().find(".otherWrp").height(window.innerHeight - $("#patientInfo").height() - 20 + 'px') $(window).resize(function () { $("#contentOther").contents().find(".otherWrp").height(window.innerHeight - $("#patientInfo").height() - 20 + 'px') }); } else { $("#contentIframeIn,#pacsIframeIn,#pacsDetailIframeIn,#assistIframeIn,#contentNursing,#contentOther").css({ display: 'none' }) } } //判断有无某一权限 function hasData(data) { return true let trdObj = JSON.parse(getLocal("trdObj")) let lis = trdObj[global_code] if (!lis) { return false } if (lis.indexOf(data) > -1) {//有权限 return true } return false; } //获取病例明细 function getRecordDetail() { post(api.getRecordDetail, { 'behospitalCode': global_id }).then(function (res) { if (res.data.code === '0') { const data = res.data.data; const { beHospital, result, msg, checkStatus, drgs, mrStatus, checkShow, checkOperationWithAppeal } = data; global_check = checkStatus global_check_home = mrStatus global_check_show = checkShow;//0隐藏操作按钮1显示 check_Operation_WithAppeal = JSON.parse(checkOperationWithAppeal) const info = Object.assign(beHospital, result); initMenu(JSON.parse(result.menuData)); // $(".sub-menu>ul>li:first-child.page,.menu-mini>ul>li:first-child.page").addClass("active"); $(".subMenu >li:first-child.page,.menu-mini>ul>li:first-child.page").addClass("active"); global_activeTab = $(".sub-menu .page.active").attr("code"); $(".operation").show() initPatientInfo(info); initContent(result.pageData); initList(msg); initScoreItem(msg); global_flawData = msg; global_flawDataPay = drgs; setBoxHeight(); changePay() } }); } function getRecordDetailUpdate() { post(api.getRecordDetail, { 'behospitalCode': global_id }).then(function (res) { if (res.data.code === '0') { const data = res.data.data; const { beHospital, result, msg, checkStatus, drgs } = data; // global_check = checkStatus // const info=Object.assign(beHospital,result); // initMenu(JSON.parse(result.menuData)); // $(".subMenu >li:first-child.page,.menu-mini>ul>li:first-child.page").addClass("active"); // global_activeTab=$(".sub-menu .page.active").attr("code"); // initPatientInfo(info); // initContent(result.pageData); initList(msg); initScoreItem(msg); global_flawData = msg; global_flawDataPay = drgs; // setBoxHeight(); // changePay() } }); } function changePay() { $(document).on('click', ".titleSpecial span", function () { let type = $(this).attr("data-type") if (type == 1) { initList(global_flawDataPay, type); } else { initList(global_flawData, type); } }) } //填充患者信息 function initPatientInfo(data) { const obj = Object.assign({}, data, { showCheckBtns, checkState: global_check, checkStateHome: global_check_home }); $("#infoTmpl").tmpl(obj).appendTo("#patientInfo"); /*$(".check").on("click", function(){ checkQc() })*/ $(".ywCheck").on("click", function () { checkYwQc() }) } //显示病例模块明细 function initContent(data) { const obj = JSON.parse(data); let info = []; let hml = '', moduleId = ''; formatSpecPage(obj["谈话告知书"], "谈话告知书"); formatSpecPage(obj["知情同意书"], "知情同意书"); // formatSpecPage(obj["医嘱信息"],"医嘱信息"); $(".content-box").show(); for (let k in obj) { if (k === "谈话告知书" || k === "知情同意书") { continue; } for (let i in obj[k]) { info = formatInfoData(k, obj[k][i]); moduleId = info.mode_id; if (global_modules[moduleId]) { hml = initModuleData(moduleId, obj[k]); $.tmpl(hml, info).appendTo("#contentInfo"); } else { const icon = require("../images/empty1.png"); const sid = moduleId ? "(" + moduleId + ")" : ""; const code = k.replace(/[^\u4e00-\u9fa5|a-zA-Z0-9]+/g, ''); const emptyStr = `
暂无信息~
确定要恢复该评分记录吗?
'); $("#delModal .confirm").text("取消").unbind("click").click(function () { $("#delModal").hide(); }); $("#delModal .cancel").show().text("恢复").unbind("click").click(function () { delScore(code, info, true); }); } else { $("#delModal .confirm").show(); $("#delModal .title").text("删除提示"); $("#delModal .modal-body").html('确定要删除该评分记录吗?
'); $("#delModal .confirm").text("取消").unbind("click").click(function () { $("#delModal").hide(); }); $("#delModal .cancel").show().text("删除").unbind("click").click(function () { console.log(123); delScore(code, info); }); } } function getAppealDetail(id, flg, casesEntryId, qcresultDetailId) { const param = { behospitalCode: global_id, casesEntryId: casesEntryId, hospitalId: global_hid, qcresultDetailId: qcresultDetailId, id: +id }; post(api.getApprovedView, param).then((res) => { const info = res.data.data || {}; const appealInfo = info.appealExamineRecordDTOList; $("#appealStatusTmpl").tmpl(appealInfo).appendTo("#delModal .modal-body"); $("#delModal .cancel").text("关闭").unbind("click").click(function () { $("#delModal").hide(); }); /*if (flg === '1') { $(".check-item").hide(); $(".reject-item").show(); } else if (flg === '2') { $(".check-item").show(); }*/ }) } //缺陷列表key值去掉特殊符号 function formatFlawKeys(data) { const obj = {}; for (let k in data) { obj[k.replace(/[^\u4e00-\u9fa5|a-zA-Z0-9]+/g, '')] = data[k]; } return obj; } //获取缺陷条目下拉列表 function getQcCasesEntry(name) { const id = $("#subMenu [code=" + global_activeTab + "]").attr("mode"); const param = { 'behospitalCode': global_id, 'entryName': name || "", 'modeId': id }; post(api.findQcCasesEntry, param).then(function (res) { if (res.data.code === '0') { const data = res.data.data; if (name) { global_flaws = data; $("#delModal .modal-body ul").html(""); $("#flawDropTmpl").tmpl({ info: data }).appendTo("#delModal .modal-body ul"); } else { global_flaws = data; if ($("#delModal").css("display") == "block") { $("#flawDropTmpl").tmpl({ info: data }).appendTo("#delModal .modal-body ul"); return } showModal('2', data); } } }); } //增加条目弹窗元素事件 $("body").on("click", ".add-box .flaw-drop-input", function () { $(".add-box .drop-box").addClass("show"); }); $("body").on("blur", ".add-box .flaw-drop-input", function () { setTimeout(function () { $(".add-box .drop-box").removeClass("show"); }, 300) }); $("body").on("input", ".add-box .flaw-drop-input", function () { $(this).attr({ "code": "", "title": $(this).val().trim() }); getQcCasesEntry($(this).val().trim()); }); $("body").on("click", ".add-box .drop-box li", function () { const n = $(this).attr("idx"); const flaw = global_flaws[n]; const { score, msg, entryName, casesEntryId } = flaw; global_selectedFlaw = flaw; global_entryName = entryName global_casesEntryId = casesEntryId $(".flaw-drop-input").val(entryName).attr({ "code": casesEntryId, "title": entryName }); $("#addQcMsg").val(msg).attr("title", msg); $("#addQcScore").val(score); $(".add-box .warning").hide(); $(".add-box .drop-box").removeClass("show"); console.log(123); }); $(document).on("blur", ".flaw-drop-input", (e) => { $('.flaw-drop-input').val(global_entryName).attr({ "code": global_casesEntryId, "title": global_entryName }); }); //更新缺陷列表 function updateFlaws(info) { $("#patientInfo .level").text("质控等级:" + info.level); $("#patientInfo .score").text("质控得分:" + info.scoreRes); const param = { 'behospitalCode': global_id, 'paramStr': [ "msg" ] }; post(api.getRecordDetail, param).then(function (res) { if (res.data.code === '0') { const data = res.data.data; const { msg } = data; initScoreItem(msg); global_flawData = msg; } }); } //获取病例模板 function getInfoModule(moduleId) { const param = { moduleId: moduleId }; post(api.getInfoModule, param).then(function (res) { if (res.data.code === '0') { const data = res.data.data; cachemoduleDatas(data); getRecordDetail(); } }); } //模板数据缓存 function cachemoduleDatas(data) { const moudle = data.moduleDetail; global_modules[data.modeName] = []; for (let i in moudle) { global_modules[data.modeName].push(moudle[i]); } } //初始化模板 function initModuleData(mid, obj) { const n = obj.length; const module = global_modules[mid].moduleDetail; const key = global_modules[mid].modeName.replace(/[^\u4e00-\u9fa5|a-zA-Z0-9]+/g, ''); let hml = '' + extractVars(val) + '
'); const txtHml = ('' + extractVars(val) + '
'); let hml = addLine || monoLine ? `" + questionMapping[i].name + extractVars(questionMapping[i].val) + " | " + questionMapping[i + 1].name + extractVars(questionMapping[i + 1].val) + " | "; } else { tdVal = "" + questionMapping[i].name + extractVars(questionMapping[i].val) + " | "; } if (i == 0) { hml = hml + ` |
${name} | ${tdVal}`; } else { hml = hml + `