Jelajahi Sumber

不合格数1.4.6

morphone1995 4 tahun lalu
induk
melakukan
8998cb2d27

+ 5 - 0
src/css/partDetailControl.less

@@ -352,3 +352,8 @@
 .abnormalClear {
     top: 2px !important;
 }
+
+.goHomeDetail1 {
+  color: #00A1F0;
+  cursor: pointer;
+}

+ 401 - 0
src/css/qcListCopyUnqualified.less

@@ -0,0 +1,401 @@
+@import "./reset.less";
+.container{
+    width: 100%;
+    height: 100%;
+    overflow: auto;
+    background: #fff;
+    border-bottom: 10px @disColor solid;
+    box-sizing: border-box;
+}
+ul,li{
+    list-style: none;
+}
+h2{
+    .h2;
+    border-bottom: 10px @disColor solid;
+    position: fixed;
+    top: 0;
+}
+.partTitle{
+    border-bottom: 10px @disColor solid;
+    height: 54px;
+}
+.main-body{
+    .main-body-com;
+    border: none;
+    // border:10px @disColor solid;
+    border-left:10px @disColor solid;
+    margin: 44px 0 0;
+    min-width: 1090px;
+    min-height: calc(100% - 84px);
+    // overflow: auto;
+    height:  calc(100% - 44px);
+    padding-top: 30px;
+    .selectDefect{
+        background-color: #EFF1F6;
+        min-width: 120px;
+        width: auto;
+        display: inline-block;
+        position: relative;
+        padding: 0 10px;
+        height:32px;
+        border-radius:4px;
+        border: 1px solid #E2E5EF;
+        box-sizing: border-box;
+        cursor: default;
+    }
+}
+.qctable{
+    .table;
+    min-width: 1090px;
+    th,td{
+        padding:5px 10px;
+    }
+    th{
+        white-space: nowrap;
+    }
+    th[code]{
+        cursor: pointer;
+        &:after{
+            content:"";
+            display:inline-block;
+            width: 11px;
+            height: 14px;
+            margin-left: 4px;
+            vertical-align: middle;
+            background-size: 100%;
+            background-image: url("../images/grey.png");
+        }
+        &.asc:after{
+            background: url("../images/up_blue.png");
+            background-size: 100%;
+        }
+        &.desc:after{
+            background: url("../images/down_blue.png");
+            background-size: 100%;
+        }
+    }
+    td{
+        white-space: nowrap;
+    }
+    .moduleNumber{
+        text-align: center;
+    }
+    .scoreOperaItem{
+        width: 50px;
+        cursor: pointer;
+    }
+    .tabTitle   {
+        background: #EFF0F9 !important;
+      }
+    
+}
+.tabFoot{
+    height: 40px;
+    background: none;
+    /*border: 1px solid #E2E5EF;
+    border-top: none;
+    box-sizing: border-box;*/
+}
+.scoreOpera{
+    height: 50px;
+    line-height: 50px;
+    margin: 0 20px 0 0;
+    cursor: pointer;
+    img{
+        margin: 0 10px 0 0;
+        vertical-align: middle;
+    }
+}
+
+.recordScoreOperaBtn{
+    cursor: pointer;
+    color: @activeColor;
+}
+.recordScoreBtn{
+    cursor: pointer;
+    display: inline-block;
+    width:68px;
+    height:30px;
+    line-height: 30px;
+    text-align: center;
+    border-radius:4px;
+    box-sizing: border-box;
+    border: 1px solid @activeColor;
+    color: #fff;
+    background: @activeColor;
+}
+.filterBox{
+    position: relative;
+}
+.overAuto{
+    display: table;
+    padding-right: 20px;
+    width: 100%;
+}
+.toggle-item{
+    display: none;
+}
+.filter-toggler{
+    position: absolute;
+    left: 1048px;
+    top: 8px;
+    color: #777;
+    white-space: nowrap;
+    font-size: 14px;
+    background: url("../images/arrow_down.png") 60px center no-repeat;
+    padding-right: 15px;
+    background-size: 10px 6px;
+    &.up{
+        background: url("../images/arrow_up.png") 60px center no-repeat;
+        background-size: 10px 6px;
+    }
+}
+.filterItem{
+    position: relative;
+    display: inline-block;
+    float: left;
+    height: 40px;
+    line-height: 40px;
+    margin: 0 20px 20px 0;
+    span{
+        display: inline-block;
+        line-height: 32px;
+        position: relative;
+    }
+    input{
+        width:120px;
+        height:32px;
+        border-radius:4px;
+        border: 1px solid #E2E5EF;
+        outline: none;
+        margin-right: 10px;
+        padding: 0 10px;
+        box-sizing: border-box;
+    }
+    input:focus{
+        border: 1px solid @activeColor ;
+        outline: 0;
+        -webkit-box-shadow:@activeColor  0px 0px 2px;
+        -moz-box-shadow: @activeColor  0px 0px 2px;
+        box-shadow: @activeColor  0px 0px 2px;
+    }
+}
+
+.filterDropList{
+    position: absolute;
+    right: 0;
+    max-height: 200px;
+    overflow-y: auto;
+    background: #fff;
+    display: none;
+    border: 1px solid #e4e7ed;
+    box-shadow: 0 2px 12px 0 #e4e7ed;
+    z-index: 2;
+    li{
+        padding: 0 10px;
+    }
+}
+.deptList{
+    width: 160px;
+    max-height: 400px;
+}
+.levelList,.checkList{
+    width: 120px;
+    // height: 200px;
+    li:hover{
+        background-color: #EEF4FF;
+        cursor: pointer;
+    }
+}
+.selectLevel,.selectDept,.fpSelectCheck,.qcSelectCheck{
+    display: inline-block;
+    position: relative;
+    width:120px;
+    padding: 0 10px;
+    height:32px;
+    border-radius:4px;
+    border: 1px solid #E2E5EF;
+    box-sizing: border-box;
+    cursor: pointer;
+}
+.selectDept{
+    width: 160px;
+}
+
+.filter,.reset,.export{
+    display: inline-block;
+    width:60px;
+    height:32px;
+    background:@activeColor;
+    border-radius:4px;
+    color: #fff;
+    text-align: center;
+    line-height: 32px;
+    position: relative;
+    top: 2px;
+    cursor: pointer;
+    float: left;
+    margin: 0 0px 22px 0;
+}
+.export{
+    height:34px;
+    background: #fff;
+    border-radius: 4px;
+    color: #777;
+    border: 1px solid #777;
+    box-sizing: border-box;
+    cursor: pointer;
+    margin-left: 10px;
+    float: left;
+    top: 0px;
+}
+.arrow{
+    position: absolute;
+    width: 10px;
+    top: 12px;
+    right: 10px;
+}
+.iconCheck{
+    width: 14px;
+}
+.fl{
+    float: left;
+}
+.clearfix:after {
+    content: '';
+    height: 0;
+    line-height: 0;
+    display: block;
+    visibility: hidden;
+    clear: both;
+}
+.clearfix{
+    zoom:1
+}
+.divide{
+    margin: 0 10px;
+}
+.datapickerBox{
+    position: relative;
+    display: inline-block;
+    width: 120px;
+    height: 32px;
+    input{
+        position: absolute;
+    }
+}
+.setCol{
+    color: #777;
+    cursor: pointer;
+    display: inline-block;
+    // margin: 10px 0 0  0px;
+    margin: 0 0 0  50px;
+}
+.iconSetting{
+    width: 18px;
+    position: relative;
+    top: 3px;
+    margin: 0 3px 0 0;
+}
+.iconCalen{
+    position: absolute;
+    width: 15px;
+    top: 10px;
+    right: 10px;
+}
+.textCenter{
+    text-align: center;
+}
+.patientNameSpan{
+    color: @activeColor;
+    cursor: pointer;
+}
+
+.deptItem:hover{
+    background-color: #EEF4FF;
+    cursor: pointer;
+}
+.ellipsis{
+    overflow: hidden;
+    text-overflow:ellipsis;
+    white-space: nowrap;
+}
+.unSelect{
+    color: #cfccd6
+ }
+
+
+.pagination{
+    margin: 35px 0 20px 0  ;
+    text-align: right;
+}
+.totalSum{
+    font-size:12px;
+    line-height:17px;
+    color: #777777;
+    margin-right: 20px;
+}
+.pageNum,.prePage,.nextPage, .more{
+    display: inline-block;
+    width: 20px;
+    cursor: pointer;
+    margin: 0 20px 0 0;
+    text-align: center;
+    color: #777;
+}
+.prePage,.nextPage{
+    img{
+        position: relative;
+        top: 0px   ;
+    }
+}
+ .more{
+    cursor: not-allowed;
+}
+.arrowPage{
+    width: 6px;
+}
+.activePage{
+    color: @activeColor;
+}
+.tipIcon{
+  color: #777;
+  cursor: pointer;
+  display: inline-block;
+  margin-left: 6px;
+  margin-right: 2px;
+}
+.toolTipIcon{
+    width: 18px;
+    position: relative;
+    top: 3px;
+}
+
+.tooltip{
+    visibility: hidden;
+    position: relative;
+    padding: 7px 10px;
+    border-radius: 4px;
+    margin: 100px auto;
+    background-color: #4D4D4D;
+    text-align: center;
+    color: #fff;
+    font-size: 14px;
+}
+.tooltip:before{
+    content: '';
+    display: block;
+    position: absolute;
+    bottom: 9px;
+    left: -12px;
+    border-bottom: 6px solid transparent;
+    border-top: 6px solid transparent;
+    border-left: 6px solid transparent;
+    border-right: 6px solid #4D4D4D;
+}
+
+
+
+
+

+ 1 - 0
src/html/partDetailControl.html

@@ -52,6 +52,7 @@
                         <th class="moduleName" style="width: 65px;">序号</th>
                         <th class="beHospitalId textCenter" code="deptName">科室名称</th>
                         <th class="beHospitalId textCenter" code="entryNum">缺陷总数</th>
+                        <th class="beHospitalId textCenter" code="entryNum">不合格数</th>
                         <th class="beHospitalId textCenter" code="firstLevelPercent">合格率</th>
                         <th class="beHospitalId textCenter" code="emptyNum">空项数</th>
                         <th class="beHospitalId textCenter" code="emptyPercent">完整率</th>

+ 175 - 0
src/html/qcListCopyUnqualified.html

@@ -0,0 +1,175 @@
+<!DOCTYPE html>
+<html lang="en">
+
+<head>
+    <meta charset="UTF-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <meta http-equiv="X-UA-Compatible" content="ie=edge">
+    <title>病历质控评分</title>
+    
+</head>
+
+<body>
+    <div class="container qcListCopy">
+        <!-- <h2>质控评分</h2>控制台 / 条目缺陷占比 / 缺陷详情 -->
+        <div class="partTitle">
+            <p class="titlePic"></p>
+          </div>
+        <div class="main-body">
+            <div class="filterBox">
+                <div class="clearfix">
+                    <span class="filterItem typeFilter deptListWrap">
+                        <span>科室:</span>
+                        <span class="selectDept">
+                            全部
+                        </span>
+
+                        <ul class="deptList filterDropList"></ul>
+                    </span>
+                    <span class="filterItem typeFilter clearfix" >
+                        <span class="fl">出院日期:</span>
+                        <span class="datapickerBox fl"><input type="text" placeholder="请选择时间" id="datepicker" autocomplete="off" readonly /></span>
+                        <span  class="divide fl">-</span>
+                        <span class="datapickerBox fl"><input type="text" placeholder="请选择时间" id="datepicker2"  autocomplete="off" readonly/></span>
+                    </span>
+                    <span class="filterItem">
+                        <span>病历等级:</span>
+                        <span class="selectLevel">全部</span>
+                        <ul class="levelList filterDropList">
+                            <Li class="levelItem" data-name="全部" data-id="全部">全部</Li>
+                            <Li class="levelItem" data-name="未评分" data-id="未评分">未评分</Li>
+                            <Li class="levelItem" data-name="甲" data-id="甲">甲</Li>
+                            <li class="levelItem" data-name="乙" data-id=乙>乙</li>
+                            <li class="levelItem" data-name="丙" data-id=丙>丙</li>
+                        </ul>
+                    </span>
+                    <span class="filter">查询</span>
+                    <span class="filterclear abnormalClear filterclearT">重置</span>
+                    <span class="export">导出</span>
+                </div>
+                <a href="javascript:void(0);" class="filter-toggler" id="filterToggler">展开筛选</a>
+                <div class="toggle-item clearfix">
+                    <span class="filterItem typeFilter">
+                        <span>病人姓名:</span>
+                        <input class="patientNameInp" type="text" placeholder="请输入病人姓名">
+                    </span>
+                    <span class="filterItem typeFilter">
+                        <span>病人住院序号:</span>
+                        <input class="patientNumInp" style="width: 148px;" type="text" placeholder="请输入病人住院序号">
+                    </span>
+                    <span class="filterItem doctorFilter">
+                        <span>医生姓名:</span>
+                        <input class="doctorInp" type="text" placeholder="请输入医生姓名">
+                    </span>
+                    <span class="filterItem doctorFilter">
+                        <span>医生工号:</span>
+                        <input class="doctorNumInp" type="text" placeholder="请输入医生工号">
+                    </span>
+                    <span class="filterItem fpFilterItem">
+                        <span>病案首页核查状态:</span>
+                        <span class="fpSelectCheck">全部</span>
+                        <ul class="checkList filterDropList fpCheckList">
+                            <Li class="fpCheckItem" data-name="全部" data-id="">全部</Li>
+                            <Li class="fpCheckItem" data-name="未核查" data-id="0">未核查</Li>
+                            <Li class="fpCheckItem" data-name="已核查" data-id="1">已核查</Li>
+                        </ul>
+                    </span>
+                    <span class="filterItem doctorFilter fpFilterItem">
+                        <span>病案首页核查人:</span>
+                        <input class="fpCheckPeople" type="text" placeholder="请输入核查人">
+                    </span>
+                    <span class="filterItem typeFilter clearfix" >
+                        <span class="fl">病案首页核查时间:</span>
+                        <span class="datapickerBox fl"><input type="text" placeholder="请选择时间" id="datepickerFp1" autocomplete="off" readonly /></span>
+                        <span  class="divide fl">-</span>
+                        <span class="datapickerBox fl"><input type="text" placeholder="请选择时间" id="datepickerFp2"  autocomplete="off" readonly/></span>
+                    </span>
+                    <span class="filterItem qcFiliterItem">
+                        <span>病历核查状态:</span>
+                        <span class="qcSelectCheck">全部</span>
+                        <ul class="checkList filterDropList qcCheckList">
+                            <Li class="qcCheckItem" data-name="全部" data-id="">全部</Li>
+                            <Li class="qcCheckItem" data-name="未核查" data-id="0">未核查</Li>
+                            <Li class="qcCheckItem" data-name="已核查" data-id="1">已核查</Li>
+                        </ul>
+                    </span>
+                    <span class="filterItem doctorFilter qcFiliterItem">
+                        <span>病历核查人:</span>
+                        <input class="qcCheckPeople" type="text" placeholder="请输入核查人">
+                    </span>
+                    <span class="filterItem typeFilter clearfix qcFiliterItem" >
+                        <span class="fl">病历核查时间:</span>
+                        <span class="datapickerBox fl"><input type="text" placeholder="请选择时间" id="datepickerQc1" autocomplete="off" readonly /></span>
+                        <span  class="divide fl">-</span>
+                        <span class="datapickerBox fl"><input type="text" placeholder="请选择时间" id="datepickerQc2"  autocomplete="off" readonly/></span>
+                    </span>
+                    <span class="filterItem doctorFilter defectItem">
+                        <span>缺陷名称:</span>
+                        <span class="selectDefect"> 
+                        
+                        </span>
+                        <!-- <input class="doctorInp" type="text" placeholder="请输入医生姓名"> -->
+                    </span>
+                    
+                </div>
+            </div>
+            <div class="overAuto">
+                <table class="qctable">
+                    <thead>
+                    <tr class="tabOpera">
+                        <!-- <td colspan="18" style="background: #fff">
+                            <div class="tabFoot">
+                                <span class="scoreOpera" data-selectAll=false><img class="iconCheck" src="../images/icon_unchecked.png" alt="checkbox">全选</span>
+                                <span class="recordScoreBtn">评分</span>
+                            </div>
+                        </td> -->
+                    </tr>
+                    <tr class="tabTitle">
+                        <!-- <th class="textCenter" ></th>
+                        <th class="recordScoreOpera textCenter" style="width: 65px;">操作</th>
+                        <th class="beHospitalId textCenter" code="behospital_code">病人住院序号</th>
+                        <th class="patientNo textCenter" code="file_code">病案号</th>
+                        <th class="patientName textCenter" code="name" style="width: 100px;">病人姓名</th>
+                        <th class="patientSex textCenter" code="sex">性别</th>
+                        <th class="patientage textCenter" code="age">年龄</th>
+                        <th class="bedNum textCenter" code="bed_code">床号</th>
+                        <th class="inHospitalDate textCenter" code="behospital_date">入院日期</th>
+                        <th class="outHospitalDate textCenter desc" code="leave_hospital_date">出院日期</th>
+                        <th class="diagnose textCenter" code="diagnose">主诊断</th>
+                        <th class="doctorName textCenter" code="beh_doctor_name">住院医生</th>
+                        <th class="doctorName textCenter" code="doctor_name">主管医生</th>
+                        <th class="doctorName textCenter" code="director_doctor_name">主任医生</th>
+                        <th class="deptName textCenter" code="beh_dept_name">科室</th>
+                        <th class="recordLevel textCenter" code="level">病历等级</th>
+                        <th class="recordScore textCenter" code="score_res">病历得分</th>
+                        <th class="scoreTime textCenter" code="grade_time">评分时间</th> -->
+                    </tr>
+                    </thead>
+                    <tbody class="tbody">
+
+                    </tbody>
+                    <tfoot>
+                        <!-- <tr>
+                            <td colspan="17">
+                                <div class="tabFoot">
+                                    <span class="scoreOpera" data-selectAll=false><img class="iconCheck" src="../images/icon_unchecked.png" alt="checkbox">全选</span>
+                                    <span class="recordScoreBtn">评分</span>
+                                </div>
+                            </td>
+                        </tr> -->
+                    </tfoot>
+                </table>
+            </div>
+
+            <!--<div class="tabFoot">
+                <span class="scoreOpera" data-selectAll=false><img class="iconCheck" src="" alt="checkbox">全选</span>
+                <span class="recordScoreBtn">评分</span>
+            </div>-->
+
+            <div class="pagination"></div>
+        </div>
+
+    </div>
+</body>
+
+</html>

+ 2 - 0
src/js/api.js

@@ -101,6 +101,7 @@ const api = {
     qcCheckMRPage: '/console/qcCheckMRPage', //质控核查质控评分页(内页)
     hmImproveMRPage: '/console/hmImproveMRPage',  //病案首页改善率质控评分页(内页)
     getDefaultPageSet: '/sys/user/pageset/getDefaultPageSet', //获取默认列设置
+    getBadLevelPage: '/console/badLevelPage', //病案首页不合格数病历详情
 
 
 
@@ -123,6 +124,7 @@ const api = {
     reHos31DaysPageExport:'/console/export/reHos31DaysPageExport', //31天再入院统计导出
     qcCheckMRPageExport:'/console/export/qcCheckMRPageExport',  //质控核查质控评分页导出
     hmImproveMRPageExport:'/console/export/hmImproveMRPageExport',//病案首页改善率质控评分页导出
+    badLevelPagePageExport: '/console/export/badLevelPagePageExport',//病案首页不合格数病历详情页导出
 
 
     casesEntryStatisticsById:'/console/casesEntryStatisticsById', //入院记录24小时未完成

+ 11 - 2
src/js/partDetailControl.js

@@ -179,6 +179,7 @@ function renderTab(data,hisId,activePage){
                 <td  class="textCenter">${(activePage-1)*15 + i+1}</td>
                 <td >${item.deptName || "-"}</td>
                 <td class="goHomeDetail" data-ruleType="" data-dept="${item.deptName || ""}">${item.entryNum || "-"}</td>
+                <td class="goHomeDetail1" data-dept="${item.deptName || ""}">${item.secondLevelNum}</td>
                 <td >${item.firstLevelPercentStr || "-"}</td>
                 <td class="goHomeDetail" data-ruleType="1" data-dept="${item.deptName || ""}">${item.emptyNum+'' || "-"}</td>
                 <td >${item.emptyPercentStr+'' || "-"}</td>
@@ -195,11 +196,19 @@ function renderTab(data,hisId,activePage){
         let index =  $(this).parent().attr("data-index")
         let deptName = $(this).attr("data-dept")
         let ruleType = $(this).attr("data-ruleType")
-        let deptId = data[index].deptId
-    
+        let deptId = data[index].deptId   
         $(parent.document).find("#contentIframe").attr("src","quexianDetailControlHome.html?deptName="+deptName+"&deptId="+deptId+"&from=1&casesId=243"+"&shijian=3"+"&ruleType="+ruleType+"&startDateParam="+startDateParam+"&endDateParam="+endDateParam)
     })
+    // 不合格数跳转至 病历列表详情页
+    $(".goHomeDetail1").click(function () {
+        let index = $(this).parent().attr("data-index")
+        let deptName = $(this).attr("data-dept")
+        // let ruleType = $(this).attr("data-ruleType")
+        let deptId = data[index].deptId
+        // $(parent.document).find("#contentIframe").attr("src", "qcListCopy.html?deptName=" + deptName + "&deptId=" + deptId + "&from=4&casesId=243" + "&shijian=3" + "&ruleType=" + ruleType + "&startDate=" + startDateParam + "&endDate=" + endDateParam + "&defectName=" + defectName)
+        $(parent.document).find("#contentIframe").attr("src", "qcListCopyUnqualified.html?deptName=" + deptName + "&deptId=" + deptId + "&from=4&casesId=243" + "&shijian=3" +  "&startDate=" + startDateParam + "&endDate=" + endDateParam )
 
+    })
     // initScroll("partDetailControl","YX",1)
 }
 

File diff ditekan karena terlalu besar
+ 1278 - 0
src/js/qcListCopyUnqualified.js


+ 1 - 1
src/js/utils.js

@@ -3,7 +3,7 @@ const $ = require("jquery");
 const axios = require("axios")
 var Utils = require('./rePromise');
 require('./scrollBar.js');
-const baseUrl = "http://192.168.2.241:5858"
+const baseUrl = "http://192.168.2.236:5858"
 //页面映射
 const pageMap={
   'YH-KZT':'console.html',

+ 16 - 2
webpack.config.js

@@ -6,8 +6,8 @@ const MiniCssExtractPlugin = require('mini-css-extract-plugin');
 const CopyWebpackPlugin = require('copy-webpack-plugin');
 const UglifyJsPlugin = require('uglifyjs-webpack-plugin');
 const webpack = require('webpack');
-// const proxyHost = "http://192.168.2.236:5858";
-const proxyHost = "http://192.168.2.241:5858";
+const proxyHost = "http://192.168.2.236:5858";
+// const proxyHost = "http://192.168.2.241:5858";
 // const proxyHost = "http://192.168.3.117:5858";//铁钢
 // const proxyHost = "http://192.168.3.113:5858";//王峰
 module.exports = {
@@ -48,6 +48,7 @@ module.exports = {
     itemDefectDetail:path.resolve(__dirname, 'src/js', 'itemDefectDetail.js'),
     keyItemFlawControl:path.resolve(__dirname, 'src/js', 'keyItemFlawControl.js'),
     qcListCopy:path.resolve(__dirname, 'src/js', 'qcListCopy.js'),
+    qcListCopyUnqualified: path.resolve(__dirname, 'src/js', 'qcListCopyUnqualified.js'),
     qcListOutHospital:path.resolve(__dirname, 'src/js', 'qcListOutHospital.js'),
     checkControl:path.resolve(__dirname, 'src/js', 'checkControl.js'),
     advice:path.resolve(__dirname, 'src/js', 'advice.js'),
@@ -499,6 +500,19 @@ module.exports = {
         collapseWhitespace: true //删除空白符与换行符
       }
     }),
+    new HtmlWebpackPlugin({
+      title: 'qcListCopyUnqualified.html',
+      template: path.resolve(__dirname, 'src/html', 'qcListCopyUnqualified.html'),
+      filename: 'qcListCopyUnqualified.html',
+      chunks: ['qcListCopyUnqualified', 'vendor', 'common'],
+      hash: true, //防止缓存
+      inject: true,
+      minify: {
+        removeAttributeQuotes: true, //压缩 去掉引号
+        removeComments: true, //移除HTML中的注释
+        collapseWhitespace: true //删除空白符与换行符
+      }
+    }),
     new HtmlWebpackPlugin({
       title: 'qcListOutHospital.html',
       template: path.resolve(__dirname, 'src/html', 'qcListOutHospital.html'),