Browse Source

病历质控报表联调1

zhouna 4 years ago
parent
commit
7110700b4a
5 changed files with 103 additions and 68 deletions
  1. 17 1
      src/css/qcListYw.less
  2. BIN
      src/images/more.png
  3. 4 1
      src/js/api.js
  4. 49 39
      src/js/qcListDeptYw.js
  5. 33 27
      src/js/qcListYw.js

+ 17 - 1
src/css/qcListYw.less

@@ -295,9 +295,25 @@ h2{
         white-space: normal;
         width: 180px;
         a{
+            display: inline-block;
+            width: 48px;
+            /*background: url("../images/more.png") 32px 5px no-repeat;*/
             cursor: pointer;
-            font-size: 12px;
+            text-align: left;
+            margin-left: 5px;
+            /*font-size: 12px;*/
             color: @activeColor;
+            &:after{
+                display: inline-block;
+                content: ' ';
+                width: 12px;
+                height: 12px;
+                background: url("../images/more.png") 2px 1px no-repeat;
+            }
+            &.spread:after{
+                background-position: 0 1px;
+                transform: rotate(-90deg);
+            }
         }
         .part-2{
             display: none;

BIN
src/images/more.png


+ 4 - 1
src/js/api.js

@@ -16,7 +16,8 @@ const api = {
   qcListByDept: '/qc/behospitalInfo/page_dept',
   qcListByPerson: '/qc/behospitalInfo/page_person',
   qcListByDoc: '/qc/behospitalInfo/page_group', //质控评分(医疗组)
-  qcListYw:'/console/qualityControl',  //病历质控报表-义务全院
+  qcListYw:'/console/qualityControl',  //病历质控报表-义乌全院
+  qcListByDeptYw:'/consoleByDept/qualityControlByDept',//病历质控报表-义乌科室
   saveQcCases: '/qc/cases/saveQcCases',
   recordScore: '/qc/behospitalInfo/analyze',
   getInfoModule: '/qc/module/getById',
@@ -124,6 +125,8 @@ const api = {
   qcCheckMRPageExport: '/console/export/qcCheckMRPageExport', //质控核查质控评分页导出
   hmImproveMRPageExport: '/console/export/hmImproveMRPageExport', //病案首页改善率质控评分页导出
   badLevelPagePageExport: '/console/export/badLevelPagePageExport', //病案首页不合格数病历详情页导出
+  qualityControlExport:'/console/export/qualityControlExport',//病历质控报表导出
+  qualityControlExportByDept:'/print/export/qualityControlExportByDept',//病历质控报表(科室)导出
 
   casesEntryStatisticsById: '/console/casesEntryStatisticsById', //入院记录24小时未完成
   beHosCount: '/console/beHosCount', //入院人数

+ 49 - 39
src/js/qcListDeptYw.js

@@ -110,14 +110,14 @@ function getTabData(activePage,qcCheckMain){
         desc:data_desc,       //降序
         doctorName: doctorName,
         deptName:deptName=="全部"?"":deptName||'',
-        doctorCode: doctorNum,
+        //doctorCode: doctorNum,
         leaveHosDateStart: isPlacefile==1?behosDateStart:'', //出院日期--开始时间
         leaveHosDateEnd: isPlacefile==1?behosDateEnd:'', //出院日期--结束时间
         "behosDateStart": isPlacefile==1?'':behosDateStart, //出院日期--开始时间
         "behosDateEnd": isPlacefile==1?'':behosDateEnd, //出院日期--结束时间
         size: 15,
         statisticsType:statisticsType,
-        checkStatus: qcCheckStatus?Number(qcCheckStatus):qcCheckStatus, //病历核查状态
+        /*checkStatus: qcCheckStatus?Number(qcCheckStatus):qcCheckStatus, //病历核查状态
         mrStatus: fpCheckStatus?Number(fpCheckStatus):fpCheckStatus,   //首页核查状态(1:已核查,0:未核查)
         chName: qcCheckName,   //病历核查人员
         diagnose: qcCheckMain,   //病历主症状..........
@@ -125,11 +125,11 @@ function getTabData(activePage,qcCheckMain){
         chTimeStart: qcCheckDateStart.replace(/\//g,'-'), //病历核查起始时间
         chTimeEnd: qcCheckDateEnd.replace(/\//g,'-'), //病历核查截止时间
         mrTimeStart: fpCheckDateStart.replace(/\//g,'-'), //首页核查起始时间
-        mrTimeEnd: fpCheckDateEnd.replace(/\//g,'-'), //首页核查截止时间
+        mrTimeEnd: fpCheckDateEnd.replace(/\//g,'-'),*/ //首页核查截止时间
     }
     $('.pagination').html("")
     $('.tbody').html(emptyBox('努力加载中...','',1))
-    return post(api.qcListByDept,param).then(res =>{
+    return post(api.qcListByDeptYw,param).then(res =>{
         if(res.data.code == '0'){
             tabList = res.data.data.records
             const totalPage = res.data.data.pages
@@ -149,7 +149,7 @@ function getTabData(activePage,qcCheckMain){
     })
 }
 
-//getTabData(1)
+getTabData(1)
 
 $(".filter").on("click", function(e){
     behosDateStart = $("#datepicker").val()
@@ -334,6 +334,23 @@ function bindOrder(){
         getTabData(1);
     });
 }
+const moreKeys = 'medHomePage,admissionNote,firstCourseNote,courseRecord,operationInfo,dischargeNote,docAdviceNote,otherCase';//需要收起的字段
+function get30Str(str){
+    let part1='',part2='';
+    let istr = str||'';
+    if(istr.length>30){
+        part1=istr.substr(0,30);
+        part2=istr.substr(30);
+        return `<div class="more-cont"><span>${part1}</span><span class="part-2">${part2}</span><i>...</i><a class="more-btn">更多</a></div>`;
+    }
+    return `<div class="more-cont"><span>${istr}</span></div>`;
+}
+pageSet = $(".tabTitle th[key]").map((i,it)=>{
+    return {
+        val:$(it).attr('key'),
+        status:1,
+    }
+});
 function renderTab(data){
     let str = ``
     let hasSelectAll = true;
@@ -344,45 +361,29 @@ function renderTab(data){
     }
     for(let i = 0; i < data.length; i++){
         const item = data[i]
-        if(!item.hasSelect){
+        /*if(!item.hasSelect){
             hasSelectAll = false
-        }
+        }*/
         // <td  class="recordScoreOperaBtn textCenter" style="opacity:${hasData('FUNC000017')?'1':'0.5'}">评分</td>
         str += `
             <tr  data-index=${i}>
-                <td class="scoreOperaItem textCenter">${item.hasSelect ? `<img class="iconCheck" src=${iconCheck} />`:`<img class="iconCheck" src=${iconUnCheck} />`}</td>
+                <td class="scoreOperaItem textCenter">${i+1}</td>
                 `
         for(let j = 0; j < pageSet.length; j++){
-            if(pageSet[j].status == 1){
-                if(pageSet[j].val === "checkStatus" || pageSet[j].val === "mrStatus" ){
-                    str +=  `<td class="${isTextCenter(pageSet[j].val) ? 'textCenter':''}"><span data-index=${i} class="${pageSet[j].val=='name'?'patientNameSpan':'' } ">${item[pageSet[j].val] =="1"? "已核查" :item[pageSet[j].val] === 0 ? "未核查":"-"}<span></td>`
-                }else if(pageSet[j].val == 'scoreRes'||pageSet[j].val == 'scoreBn'){
-                    str += `<td class="${isTextCenter(pageSet[j].val) ? 'textCenter':'textCenter'}"><span data-index=${i} class="${pageSet[j].val=='name'?'patientNameSpan':'' } ">${item[pageSet[j].val]===null?'-': item[pageSet[j].val]}<span></td>`
+            if(pageSet[j].status === 1){
+                colName=pageSet[j].val;
+                /*if(colName === "level"){
+                    str +=  `<td class="textCenter"><span data-index=${i}>${item[colName]}</span></td>`
+                }else */if(moreKeys.indexOf(colName)>-1){
+                    str +=  `<td class="textCenter">${get30Str(item[colName])}</td>`
                 }else{
-                    str +=  `<td class="${isTextCenter(pageSet[j].val) ? 'textCenter':'textCenter'}"><span data-index=${i} class="${pageSet[j].val=='name'?'patientNameSpan':'' } ">${item[pageSet[j].val] || "-"}<span></td>`
+                    str +=  `<td class="textCenter"><span data-index=${i} class="${colName==='name'?'patientNameSpan':'' } ">${item[colName]}</span></td>`
                 }
             }
         }
-        // <td >${item.behospitalCode || "-"}</td>
-        // <td>${item.fileCode || "-"}</td>
-        // <td  class="textCenter"><span data-index=${i} class="patientNameSpan">${item.name || "-"}<span></td>
-        // <td  class="textCenter">${item.sex || "-"}</td>
-        // <td  class="textCenter">${item.age || "-"}</td>
-        // <td  class="textCenter">${item.bedCode || "-"}</td>
-        // <td  class="textCenter">${item.behospitalDate&&item.behospitalDate.slice(0,10) || "-"}</td>
-        // <td  class="textCenter">${item.leaveHospitalDate&&item.leaveHospitalDate.slice(0,10)|| "-"}</td>
-        // <td  class="textCenter">${item.diagnose|| "-"}</td>
-        // <td  class="textCenter">${item.behDoctorName   || "-"}</td>
-        // <td  class="textCenter">${item.doctorName || "-"}</td>
-        // <td  class="textCenter">${item.directorDoctorName || "-"}</td>
-        // <td  class="textCenter">${item.behDeptName || "-"}</td>
-        // <td  class="textCenter">${item.level || "-"}</td>
-        // <td  class="textCenter">${item.scoreRes || "-"}</td>
-        // <td  class="textCenter">${item.gradeTime&&item.gradeTime.slice(0,10) || "-"}</td>
-
         str += "</tr>"
     }
-    if(data.length === 0){
+    /*if(data.length === 0){
         hasSelectAll = false
     }
     if(hasSelectAll){
@@ -391,7 +392,7 @@ function renderTab(data){
     }else{
         $('.scoreOpera img').attr("src" ,iconUnCheck)
         $('.scoreOpera').attr("data-selectall",false)
-    }
+    }*/
     $('.tbody').html(str)
     bindScoreOperaItem()
     bindRecordScoreOper()
@@ -1145,7 +1146,7 @@ $((function($){
         const param = {
             "behospitalCode": behospitalCode,
             "deptId": deptId.trim(),
-            "doctorCode":doctorNum,
+            //"doctorCode":doctorNum,
             "doctorName": doctorName,
             "asc":data_asc,     //升序
             "desc":data_desc,       //降序
@@ -1156,7 +1157,7 @@ $((function($){
             "isPlacefile": isPlacefile,
             "level": level,
             "name": name,
-            "checkStatus": qcCheckStatus?Number(qcCheckStatus):qcCheckStatus, //病历核查状态
+            /*"checkStatus": qcCheckStatus?Number(qcCheckStatus):qcCheckStatus, //病历核查状态
             "mrStatus": fpCheckStatus?Number(fpCheckStatus):fpCheckStatus,   //首页核查状态(1:已核查,0:未核查)
             "chName": qcCheckName,   //病历核查人员
             "diagnose": qcCheckMain,   //病历主症状..........
@@ -1166,12 +1167,21 @@ $((function($){
             "mrTimeStart": fpCheckDateStart.replace(/\//g,'-'), //首页核查起始时间
             "mrTimeEnd": fpCheckDateEnd.replace(/\//g,'-'), //首页核查截止时间
             "deptName":deptName=="全部"?"":deptName||'',
-            "statisticsType":statisticsType,
+            "statisticsType":statisticsType,*/
         }
-        $.alerModal({type:"radio",time:'1000',isFather: true, fatherWrapper: $("#mainBox", parent.document)});
+        let time = exportTimeLimit.defectTime
+        if((new Date(behosDateEnd) - new Date(behosDateStart))/24/60/60/1000 > time){
+            $.alerModal({"message":`最多只能导出${time}天`,type:"tip",time:'1000',isFather: true, fatherWrapper: $("#mainBox", parent.document)});
+            return
+        }
+        expJson(api.qualityControlExportByDept,param).then(res =>{
+            $(".divModal",parent.document).html("")
+            downloadExportedData(res.data, behosDateStart.slice(0,10).replace(/-/g,"")+"-"+behosDateEnd.slice(0,10).replace(/-/g,"")+"抽查住院病历质量情况.xls")
+        })
+        /*$.alerModal({type:"radio",time:'1000',isFather: true, fatherWrapper: $("#mainBox", parent.document)});
         closeRadio()
         radioSelect()
-        bindSaveColPort(param)
+        bindSaveColPort(param)*/
 
     })
 })($));
@@ -1195,7 +1205,7 @@ function bindSaveColPort(param){
             return
         }
         param.radioCheck = radioCheck||1
-        expJson(api.exportQcListDept,param).then(res =>{
+        expJson(api.qualityControlExportByDept,param).then(res =>{
             $(".divModal",parent.document).html("")
             downloadExportedData(res.data, behosDateStart.slice(0,10).replace(/-/g,"")+"-"+behosDateEnd.slice(0,10).replace(/-/g,"")+"抽查住院病历质量情况.xls")
         })

+ 33 - 27
src/js/qcListYw.js

@@ -19,7 +19,7 @@ const goUpB = require("./../images/arrow_up_blue.png")
 const goDownG= require("./../images/arrow_down_grey.png")
 const goDownB = require("./../images/arrow_down_blue.png")
 listenScroll()
-let pageSet = [],pageSetCopy = [], showNum = 0, scrollTop=0;
+let pageSet = [],pageSetCopy = [], showNum = 26, scrollTop=0;
 let srcUrl = $("#contentIframe",parent.document).attr("src")
 let statisticsType = getUrlArgObjectNew("dateType",srcUrl)||getUrlArgObjectNew("shijian",srcUrl) || ""
 let chengdu = getUrlArgObjectNew("chengdu",srcUrl)||""
@@ -127,7 +127,7 @@ function getTabData(activePage){
     return post(api.qcListYw,param).then(res =>{
         if(res.data.code == '0'){
             const data = res.data.data;
-            tabList = data.records;console.log(tabList)
+            tabList = data.records||[];console.log(tabList)
             const totalPage = data.pages;
             const totalNum = data.total;
             renderTab(tabList,data.hospitalId);
@@ -321,32 +321,33 @@ $(".abnormalClear").on("click", function(e){
 const moreKeys = 'medHomePage,admissionNote,firstCourseNote,courseRecord,operationInfo,dischargeNote,docAdviceNote,otherCase';//需要收起的字段
 function get30Str(str){
     let part1='',part2='';
-    if(str.length>30){
-        part1=str.substr(0,30);
-        part2=str.substr(30);
+    let istr = str||'';
+    if(istr.length>30){
+        part1=istr.substr(0,30);
+        part2=istr.substr(30);
         return `<div class="more-cont"><span>${part1}</span><span class="part-2">${part2}</span><i>...</i><a class="more-btn">更多</a></div>`;
     }
-    return `<div class="more-cont"><span>${str}</span></div>`;
+    return `<div class="more-cont"><span>${istr}</span></div>`;
 }
+pageSet = $(".tabTitle th[key]").map((i,it)=>{
+    return {
+        val:$(it).attr('key'),
+        status:1,
+    }
+});
 function renderTab(data,hisId){
     let str = ``,colName = '';
     let hasSelectAll = true;
-    if(data.length===0){
-        $('.tbody').html(emptyBox(null,showNum+2))
+    if((!data)||data.length===0){
+        $('.tbody').html(emptyBox(null,showNum))
         //   initScroll("qcList","YX",1)
         return;
     }
-    pageSet = $(".tabTitle th[key]").map((i,it)=>{
-       return {
-           val:$(it).attr('key'),
-           status:1,
-       }
-    });
     for(let i = 0; i < data.length; i++){
         const item = data[i]
-        if(!item.hasSelect){
+        /*if(!item.hasSelect){
             hasSelectAll = false
-        }
+        }*/
 
         str += `
             <tr  data-index=${i}>
@@ -356,17 +357,17 @@ function renderTab(data,hisId){
             if(pageSet[j].status === 1){
                 colName=pageSet[j].val;
                 if(colName === "level"){
-                    str +=  `<td class="textCenter"><span data-index=${i}>${item[colName] ===null? "未评分" :item[colName]}</span></td>`
+                    str +=  `<td class="textCenter"><span data-index=${i}>${item[colName]}</span></td>`
                 }else if(moreKeys.indexOf(colName)>-1){
-                    str +=  `<td class="textCenter">${get30Str(item[colName]||'')}</td>`
+                    str +=  `<td class="textCenter">${get30Str(item[colName])}</td>`
                 }else{
-                    str +=  `<td class="textCenter"><span data-index=${i} class="${colName==='name'?'patientNameSpan':'' } ">${item[colName] || "-"}</span></td>`
+                    str +=  `<td class="textCenter"><span data-index=${i} class="${colName==='name'?'patientNameSpan':'' } ">${item[colName]}</span></td>`
                 }
             }
         }
         str += "</tr>"
     }
-    if(data.length === 0){
+    /*if(data.length === 0){
         hasSelectAll = false
     }
     if(hasSelectAll){
@@ -375,7 +376,7 @@ function renderTab(data,hisId){
     }else{
         $('.scoreOpera img').attr("src" ,iconUnCheck)
         $('.scoreOpera').attr("data-selectall",false)
-    }
+    }*/
     $('.tbody').html(str)
     bindMoreBtnEvent();
     bindScoreOperaItem()
@@ -1168,7 +1169,7 @@ $((function($){
             "behospitalCode": behospitalCode,
             "deptName": deptName=="全部"?"":deptName||"",
             "deptId": deptId.trim(),
-            "radioCheck":radioCheck||1, //1:7天2:90天
+            //"radioCheck":2, //1:7天2:90天
             //"doctorCode":doctorNum,
             "doctorName": doctorName,
             "asc":data_asc,     //升序
@@ -1190,10 +1191,15 @@ $((function($){
             //"mrTimeStart": fpCheckDateStart.replace(/\//g,'-'), //首页核查起始时间
             //"mrTimeEnd": fpCheckDateEnd.replace(/\//g,'-'), //首页核查截止时间
         }
-        $.alerModal({type:"radio",time:'1000',isFather: true, fatherWrapper: $("#mainBox", parent.document)});
-        closeRadio()
-        radioSelect()
-        bindSaveColPort(param)
+        let time = exportTimeLimit.defectTime
+        if((new Date(behosDateEnd) - new Date(behosDateStart))/24/60/60/1000 > time){
+            $.alerModal({"message":`最多只能导出${time}天`,type:"tip",time:'1000',isFather: true, fatherWrapper: $("#mainBox", parent.document)});
+            return
+        }
+        expJson(api.qualityControlExport,param).then(res =>{
+            $(".divModal",parent.document).html("")
+            downloadExportedData(res.data, behosDateStart.slice(0,10).replace(/-/g,"")+"-"+behosDateEnd.slice(0,10).replace(/-/g,"")+"抽查住院病历质量情况.xls")
+        })
     })
 })($));
 function closeRadio(){
@@ -1216,7 +1222,7 @@ function bindSaveColPort(param){
             return
         }
         param.radioCheck = radioCheck||1
-        expJson(api.exportQcList,param).then(res =>{
+        expJson(api.qualityControlExport,param).then(res =>{
             $(".divModal",parent.document).html("")
             downloadExportedData(res.data, behosDateStart.slice(0,10).replace(/-/g,"")+"-"+behosDateEnd.slice(0,10).replace(/-/g,"")+"抽查住院病历质量情况.xls")
         })