require("../css/qcScore.less"); const $ = require('jquery'); require('jquery-templates'); require('./modal.js'); const {api,post,getUrlArgObject,setBoxHeight} = require('./utils.js'); const {keyMaps} = require('./maps.js'); const {wardRound,preoperation,summary,operationRecord,applicationForm,resultForm,consultationNote,difficultRecord} = require("./qcScore_byll.js") //本页全局变量 let global_flawData = {}; //缺陷数据 const global_id=getUrlArgObject("id"); const global_age = getUrlArgObject("age"); let global_activeTab=$(".sub-menu .page.active").attr("code"); //当前激活菜单项 $(function(){ //getSubMenu(); //initScoreItem(); getRecordDetail(); function initMenu(data){ //菜单数据填充 $("#subMenuTmpl").tmpl(data).appendTo("#subMenu"); //菜单收起展开 $(".list-1").on("click",function(){ $(".list-1 .slide-up").removeClass('slide-up'); $(this).toggleClass('slide-up'); $(this).find("ul").slideToggle(); }); $(".list-1 li").on("click",function(e){ e.stopPropagation(); }); //右侧内容切换 $(".page").on("click",function(){ //选中样式 $(".sub-menu .active").removeClass('active'); $(this).addClass("active"); //显示对应内容 const code=$(this).attr("code"); global_activeTab=code; $(".content-item,.flaw-item").hide(); $(".content-item[code='"+code+"']").show(); showFlawList(); }); } //获取病例明细 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} = data; const info=Object.assign(beHospital,result); initMenu(JSON.parse(result.menuData)); $(".sub-menu>ul>li:first-child.page").addClass("active"); global_activeTab=$(".sub-menu .page.active").attr("code"); initPatientInfo(info); initContent(result.pageData); setBoxHeight(); initScoreItem(msg); global_flawData=msg; let obj = JSON.parse(result.pageData) wardRound(obj['查房记录'],'查房记录') preoperation(obj['术前讨论、术前小结'],'术前讨论、术前小结') summary(obj['阶段小结'],'阶段小结') operationRecord(obj['手术记录'],'手术记录') applicationForm(obj['会诊申请单'],'会诊申请单') resultForm(obj['会诊结果单'],'会诊结果单') consultationNote(obj['会诊记录'],'会诊记录') difficultRecord(obj['疑难病例讨论记录'],'疑难病例讨论记录') } }); } //填充患者信息 function initPatientInfo(data){ const date = data.birthday.substr(0,10); const age=new Date(date).getTime()/(365*24*60*60*1000); const obj=Object.assign({},data,{age:global_age}); $("#infoTmpl").tmpl(obj).appendTo("#patientInfo"); } //显示病例模块明细 function initContent(data){ const obj = JSON.parse(data); let info=[]; let nameMap={ "入院记录":"#inHisTmpl", "出院小结":"#outHisTmpl", "病案首页":"#indexTmpl", "手术知情同意书":"#surgeryBookTmpl", "首次病程录":"#firstCourseTmpl", "病危通知书":"#illnessNoticeTmpl", "术后首次病程及谈话记录":"#surgeryAfRecord", "危急值记录":"#dangerRecore", }; for(let k in obj){ for(let i in obj[k]){ info=formatInfoData(k,obj[k][i]); nameMap[k]&&$(nameMap[k]).tmpl(info).appendTo("#contentInfo"); } } if(obj["病案首页"][0]["出院诊断"]){ const diag = JSON.parse(obj["病案首页"][0]["出院诊断"]); $("#tableTmpl").tmpl({k:"出院诊断",data:diag}).appendTo("#diagTable"); } if(obj["病案首页"][0]["手术信息"]){ const diag = JSON.parse(obj["病案首页"][0]["手术信息"]); $("#tableTmpl").tmpl({k:"手术信息",data:diag}).appendTo("#surgeryTable"); } $(".content-item[code="+global_activeTab+"]").show(); console.log(obj) } function formatInfoData(k,data){ let obj = {},name=""; for(let i in data){ name=i.replace(/[^\u4e00-\u9fa5|a-zA-Z0-9]+/g,""); //过滤key中存在的特殊符号,模板会渲染不出来且不报错 obj[name]=data[i]||""; } return Object.assign({title:k},obj); } /*function formatData(data,title){ if(!keyMaps[title]){ return data; } const keyArr=Object.keys(keyMaps[title]); let obj={}; keyArr.map((k)=>{ obj[keyMaps[title][k]]=data[0][k]||""; }); const obj1=Object.assign({},obj,data[0]); return [obj1]; }*/ //评分项数据填充 function initScoreItem(data){ $("#flaws .flaw-box").html(""); for(let k in data){ $("#flawTmpl").tmpl(data[k]).appendTo("#flaws .flaw-box"); } showFlawList(); $(".flaw-item .oper a").click(function () { const i = $(".flaw-item[code="+global_activeTab+"]").index($(this).parents(".flaw-item")); const code=$(this).attr("code"); const isEdit = $(this).is(".edit-flaw"); showModal(isEdit?'0':'1',code,i); }) } //显示缺陷列表 function showFlawList(){ const hml = $(".flaw-item[code="+global_activeTab+"]"); if(hml.length){ hml.show(); $("#flaws .empty").hide(); }else{ $("#flaws .empty").length?$("#flaws .empty").show():$("#emptyTmpl").tmpl().appendTo("#flaws .flaw-box"); } } //删除评分项 function delScore(id){ const param={ 'behospitalCode':global_id, 'optResultAlgVO':{ 'id':id } }; post(api.delScore,param).then(function(res){ if(res.data.code==='0'){ $("#delModal").hide(); updateFlaws(res.data.data); $.alerModal({"message":"删除成功",type:"tip",time:'1000'}); } }); } //修改评分项 function editScore(info){ const param={ "behospitalCode": global_id, "optResultAlgVO": info }; post(api.editScore,param).then(function(res){ if(res.data.code==='0'){ $("#delModal").hide(); updateFlaws(res.data.data); $.alerModal({"message":"修改成功",type:"tip",time:'1000'}); } }); } //显示删除/修改弹窗 function showModal(flag,code,i){ $("#delModal .modal-body").html(""); $("#delModal").show(); //事件解绑 $("#delModal .confirm").off("click"); $("#qcScore,#qcMsg").off("input"); const info = global_flawData[global_activeTab][i]; if(flag==='0'){ //修改 $("#delModal .title").text("修改评分"); $("#editTmpl").tmpl(info).appendTo("#delModal .modal-body"); //分数输入验证 $("#qcScore").on("input",function(){ const val=$(this).val(); if(/^[0-9]\d*$|^[0-9]\d*(.\d)?$/.test(val)){ $(".edit-box .warning").hide(); }else{ $(".edit-box .warning .red").text("支持≥0的数字输入,最多保留小数点后1位~"); $(".edit-box .warning").show(); } }); //提示信息输入验证 $("#qcMsg").on("input",function(){ const val=$(this).val(); if(val.trim()){ $(".edit-box .warning").hide(); }else{ $(".edit-box .warning .red").text("提示信息不能为空~"); $(".edit-box .warning").show(); } }); $("#delModal .confirm").click(function(){ if($(".edit-box .warning").is(":visible")){ return; } const obj = Object.assign({},info,{msg:$("#delModal #qcMsg").val(),score:$("#delModal #qcScore").val()}); editScore(obj); }); }else{ $("#delModal .title").text("删除评分"); $("#delModal .modal-body").html('
确定要删除该评分记录吗?
'); $("#delModal .confirm").click(function(){ delScore(code,info); }); } } //更新缺陷列表 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; } }); } });