소스 검색

修改内容

xiaoran 1 년 전
부모
커밋
1a59c30b18
5개의 변경된 파일199개의 추가작업 그리고 61개의 파일을 삭제
  1. 19 0
      src/api/excel.js
  2. 1 1
      src/views/allcase/report/checkout.vue
  3. 42 3
      src/views/allcase/reviewIndicatorsList.vue
  4. 20 10
      src/views/data/query/adviceSearch.vue
  5. 117 47
      src/views/data/query/index.vue

+ 19 - 0
src/api/excel.js

@@ -39,3 +39,22 @@ export function outHospitalExport(data) {
     data
   })
 }
+
+// 病按首页导出
+export function medicalRecordExport(data) {
+  return request_blob({
+    url: `/api/qualityList`,
+    method: 'post',
+    responseType: 'blob',
+    data
+  })
+}
+// 病按首页导出
+export function doctorAdviceExport(data) {
+  return request_blob({
+    url: `/bass/yz/serachExport`,
+    method: 'post',
+    responseType: 'blob',
+    data
+  })
+}

+ 1 - 1
src/views/allcase/report/checkout.vue

@@ -103,7 +103,7 @@
       </div>
       <div class="checkout-cont-sign">
         <span class="checkout-cont-sign-bolb">报告时间:</span>
-        <span class="checkout-cont-sign-cont">{{ dataObj.BJSJ }}</span>
+        <span class="checkout-cont-sign-cont">{{ dataObj.BGSJ }}</span>
         <span class="checkout-cont-sign-bolb">检 验 者:</span>
         <span class="checkout-cont-sign-cont">{{ dataObj.JYY }}</span>
         <span class="checkout-cont-sign-bolb">审 核 者:</span>

+ 42 - 3
src/views/allcase/reviewIndicatorsList.vue

@@ -63,10 +63,15 @@
           </template>
         </el-table-column>
         <el-table-column prop="AAA01" label="患者姓名" width="120"></el-table-column>
-        <el-table-column prop="fbsj" label="发病时间" width="120"></el-table-column>
+        <el-table-column prop="" label="发病时间" width="120">
+          <template slot-scope="scope">
+            <span v-if="scope.row.fbsj != '' && scope.row.fbsj != null">{{ scope.row.fbsj }}</span>
+            <i v-else style="font-size: 20px" @click="goEdit(scope.row)" class="el-icon-edit"></i>
+          </template>
+        </el-table-column>
         <el-table-column prop="AAB01" label="入院时间" sortable width="160"></el-table-column>
-        <el-table-column prop="zhusu" label="主诉内容" sortable width="160"></el-table-column>
-        <el-table-column prop="" label="手术时间" sortable width="160"></el-table-column>
+        <el-table-column prop="zhusu" label="主诉内容" width="160"></el-table-column>
+        <el-table-column prop="sssj" label="手术时间" width="160"></el-table-column>
         <el-table-column prop="AAC01" label="出院时间" sortable width="160"></el-table-column>
 
         <el-table-column prop="AAC11N" label="出院科室"></el-table-column>
@@ -98,6 +103,15 @@
         layout="total, sizes, prev, pager, next, jumper"
       ></el-pagination>
     </div>
+    <!-- 手工录入 -->
+    <el-dialog title="手工录入" :visible.sync="visible" width="400px">
+      <span style="line-height: 40px">请输入发病时间</span>
+      <el-date-picker v-model="editTime" class="mgl5" type="datetime" value-format="yyyy-MM-dd HH:mm:ss" placeholder="选择日期时间"></el-date-picker>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="visible = false">取 消</el-button>
+        <el-button type="primary" @click="saveEidt">确 定</el-button>
+      </span>
+    </el-dialog>
   </div>
 </template>
 
@@ -131,6 +145,9 @@ export default {
         pageSize: 10,
       },
       departmentList: [],
+      visible: false,
+      editData: {},
+      editTime: '',
     };
   },
   watch: {
@@ -277,6 +294,25 @@ export default {
         console.log(res);
       });
     },
+    // 点击编辑时间
+    goEdit(obj) {
+      this.visible = true;
+      this.editData = obj;
+      console.log(this.editData);
+    },
+    saveEidt() {
+      const { ruleId } = this.$route.query;
+      const params = {
+        type: ruleId,
+        blbh: ruleId == 60 ? this.editData.NG_BLBH : this.editData.XG_BLBH,
+        time: this.editTime,
+      };
+      console.log(params);
+      this.$axios2.post('/up_zb_fbsj', params).then(res => {
+        this.visible = false;
+        this.getList();
+      });
+    },
   },
 };
 </script>
@@ -318,4 +354,7 @@ export default {
 ::v-deep.el-table .el-table__header tr th:nth-child(3) {
   border-radius: 0px 5px 5px 0px;
 }
+.mgl5 {
+  margin-left: 5px;
+}
 </style>

+ 20 - 10
src/views/data/query/adviceSearch.vue

@@ -196,6 +196,7 @@ import { downloadFile } from '@/httpFile';
 import Title from '@/components/Title';
 import { mapGetters } from 'vuex';
 import mPagination from '@/components/m-pagination';
+import { doctorAdviceExport } from '@/api/excel';
 
 export default {
   name: 'adviceSearch',
@@ -463,18 +464,27 @@ export default {
         pramse.AAA04_end = { type: ageType2, value: this.formData1.AAA04_end };
       }
 
-      let fileName = '医嘱列表';
-      let httpUrl = '/bass/yz/serachExport';
-
-      this.funExeclPost(fileName, pramse, httpUrl, 'xlsx');
-    },
-    funExeclPost(fileName, pramse, httpUrl, format) {
-      //导出
-      let httpUrls = httpUrl;
-      downloadFile(httpUrls, pramse, format, fileName).then(res => {
-        console.error('111', res);
+      doctorAdviceExport(pramse).then(res => {
+        const content = res.data; // 后台返回二进制数据
+        const blob = new Blob([content]);
+        const fileName = `病案医嘱列表.csv`;
+        if ('download' in document.createElement('a')) {
+          // 非IE下载
+          const elink = document.createElement('a');
+          elink.download = fileName;
+          elink.style.display = 'none';
+          elink.href = URL.createObjectURL(blob);
+          document.body.appendChild(elink);
+          elink.click();
+          URL.revokeObjectURL(elink.href); // 释放URL 对象
+          document.body.removeChild(elink);
+        } else {
+          // IE10+下载
+          navigator.msSaveBlob(blob, fileName);
+        }
       });
     },
+
     ageTypeChange1() {
       this.formData1.ageType2 = this.formData1.ageType1;
     },

+ 117 - 47
src/views/data/query/index.vue

@@ -110,7 +110,7 @@
             <span class="pind10"></span>
             <!-- 中间选择输入框开始 -->
             <span v-if="keyList.includes(item.key)">
-              <el-select class="width150" filterable  v-model="item.value" placeholder="请选择">
+              <el-select class="width150" filterable v-model="item.value" placeholder="请选择">
                 <el-option v-for="(itemo, indexo) in item.selectList" :key="indexo" :label="itemo.label" :value="itemo.id"></el-option>
               </el-select>
             </span>
@@ -135,7 +135,6 @@
               <!-- <el-button type="primary" @click="funRead">重置</el-button> -->
             </span>
             <!-- 增减重置选项按钮结束 -->
-
           </el-form-item>
           <el-form-item label="患者年龄">
             <div class="zkSelect">
@@ -201,7 +200,7 @@
       </div>
     </div>
     <div class="tableBox">
-      <div class="flextab" style="margin: 0;margin-bottom:15px;">
+      <div class="flextab" style="margin: 0; margin-bottom: 15px">
         <div class="flextabtitle-box">
           <!-- <Title :title="'病案列表'" /> -->
           <div class="h-title">
@@ -209,10 +208,26 @@
             <span class="text">病案列表</span>
           </div>
           <div class="flextab-item">
-            <div>平均住院日: <span class="s-1">{{ ARG_STAY }}</span><span class="s-2"> 天</span></div>
-            <div>平均费用: <span class="s-1">{{ ARG_F_D }}</span><span class="s-2"> 元;</span></div>
-            <div>例数: <span class="s-1">{{paginationData.total?paginationData.total:0}}</span><span class="s-2"> 例</span></div>
-            <div>死亡例数: <span class="s-1">{{AEM01C?AEM01C:0}}</span><span class="s-2"> 例</span></div>
+            <div>
+              平均住院日:
+              <span class="s-1">{{ ARG_STAY }}</span>
+              <span class="s-2">天</span>
+            </div>
+            <div>
+              平均费用:
+              <span class="s-1">{{ ARG_F_D }}</span>
+              <span class="s-2">元;</span>
+            </div>
+            <div>
+              例数:
+              <span class="s-1">{{ paginationData.total ? paginationData.total : 0 }}</span>
+              <span class="s-2">例</span>
+            </div>
+            <div>
+              死亡例数:
+              <span class="s-1">{{ AEM01C ? AEM01C : 0 }}</span>
+              <span class="s-2">例</span>
+            </div>
             <div>
               总费用:
               <span class="s-1">{{ SUM_ARG_F_D ? SUM_ARG_F_D : 0 }}</span>
@@ -225,7 +240,7 @@
             </div>
           </div>
         </div>
-        
+
         <el-button class="btn1" type="primary" icon="el-icon-download" @click="funExport('质控列表', '/qualityList')">导出execl</el-button>
       </div>
 
@@ -242,7 +257,7 @@
         <el-table-column prop="AAA04" label="年龄"></el-table-column>
 
         <template v-for="(item, ind) in formData1.seniorList">
-          <el-table-column  :key="ind" v-if=" tabKeyList.includes(item.key) " :label="funkdef(item.key)" :prop="item.key"></el-table-column>
+          <el-table-column :key="ind" v-if="tabKeyList.includes(item.key)" :label="funkdef(item.key)" :prop="item.key"></el-table-column>
         </template>
         <el-table-column prop="ABC01N" label="主诊断名称"></el-table-column>
         <el-table-column prop="ABC01C" label="主诊断编码"></el-table-column>
@@ -294,6 +309,7 @@ import Title from '@/components/Title';
 import { mapGetters } from 'vuex';
 import mPagination from '@/components/m-pagination';
 // import { json } from 'stream/consumers';
+import { medicalRecordExport } from '@/api/excel';
 
 export default {
   name: 'Dashboard',
@@ -362,8 +378,24 @@ export default {
       value1: '',
       selectList: [],
       labelText: '',
-      keyList: ['OPE_LEVEL', 'SSPB', 'ABC03C','RYQK', 'AAA02C', 'RJSS', 'AEM01C', 'AAC11N', 'LNSSQ', 'LNSSH', 'AEL01'],
-      tabKeyList: ['ICD10_ID1_first', 'ICD10_NAME_first', 'ICD10_ID1', 'ICD10_NAME','ICD9_ID1', 'ICD9_NAME', 'ABC03C','RYQK', 'OPE_LEVEL', 'ABA01N', 'ABA01C', 'AEL01', 'RJSS','LNSSQ','LNSSH'], // 表头key动态展示
+      keyList: ['OPE_LEVEL', 'SSPB', 'ABC03C', 'RYQK', 'AAA02C', 'RJSS', 'AEM01C', 'AAC11N', 'LNSSQ', 'LNSSH', 'AEL01'],
+      tabKeyList: [
+        'ICD10_ID1_first',
+        'ICD10_NAME_first',
+        'ICD10_ID1',
+        'ICD10_NAME',
+        'ICD9_ID1',
+        'ICD9_NAME',
+        'ABC03C',
+        'RYQK',
+        'OPE_LEVEL',
+        'ABA01N',
+        'ABA01C',
+        'AEL01',
+        'RJSS',
+        'LNSSQ',
+        'LNSSH',
+      ], // 表头key动态展示
       tableData: [],
       payList: [], //支付方式
       departmentList: [], //出院科室
@@ -380,14 +412,12 @@ export default {
       },
       ARG_F_D: '',
       ARG_STAY: '',
-      AEM01C:'',
+      AEM01C: '',
       SUM_ARG_STAY: '',
-      SUM_ARG_F_D: ''
+      SUM_ARG_F_D: '',
     };
   },
-  mounted() {
-
-  },
+  mounted() {},
   created() {
     this.funQuery(1);
     this.selectInfo();
@@ -405,7 +435,7 @@ export default {
      * @param {val} 选中当前
      */
     getOneCleck(val, index) {
-      this.$set(this.formData1.seniorList[index], 'value', '')
+      this.$set(this.formData1.seniorList[index], 'value', '');
       var that = this;
       this.labelText = val.key;
       var text = this.fieldList.filter(item => val.key == item.id);
@@ -582,14 +612,14 @@ export default {
           },
         ];
       } else if (val.key == 'AAC11N') {
-        console.log('vvvvvvvvvvvvvvvvv')
-        let selectArr = []
+        console.log('vvvvvvvvvvvvvvvvv');
+        let selectArr = [];
         for (let item in this.departmentList) {
           this.departmentList[item];
           selectArr.push({
             label: this.departmentList[item].name,
             id: this.departmentList[item].id,
-          });  
+          });
         }
         val.selectList = selectArr;
       } else if (val.key == 'LNSSQ' || val.key == 'LNSSH') {
@@ -653,9 +683,9 @@ export default {
         };
       } else {
         pramse = {
-          AAC04: `${min?min:0}-${max?max:0}`,
-          AAC0401:`${min?min:0}`,
-          AAC0402:`${max?max:0}`,
+          AAC04: `${min ? min : 0}-${max ? max : 0}`,
+          AAC0401: `${min ? min : 0}`,
+          AAC0402: `${max ? max : 0}`,
           AAA04: this.formData1.ageyear || null, //年龄
           AAA40: this.formData1.ageday || null, //不足一周岁年龄
           age_start_type: this.formData1.age_start_type || null,
@@ -669,7 +699,25 @@ export default {
         };
       }
       console.error('pramse', pramse);
-      this.funExeclPost(fileName, pramse, httpUrl, 'xlsx');
+      medicalRecordExport(pramse).then(res => {
+        const content = res.data; // 后台返回二进制数据
+        const blob = new Blob([content]);
+        const fileName = `病案列表.csv`;
+        if ('download' in document.createElement('a')) {
+          // 非IE下载
+          const elink = document.createElement('a');
+          elink.download = fileName;
+          elink.style.display = 'none';
+          elink.href = URL.createObjectURL(blob);
+          document.body.appendChild(elink);
+          elink.click();
+          URL.revokeObjectURL(elink.href); // 释放URL 对象
+          document.body.removeChild(elink);
+        } else {
+          // IE10+下载
+          navigator.msSaveBlob(blob, fileName);
+        }
+      });
     },
     funExeclPost(fileName, pramse, httpUrl, format) {
       //导出
@@ -678,18 +726,40 @@ export default {
         console.error('111', res);
       });
     },
+
+    // 导出
+    onExport() {
+      medicalRecordExport(params).then(res => {
+        const content = res.data; // 后台返回二进制数据
+        const blob = new Blob([content]);
+        const fileName = `门诊病例.csv`;
+        if ('download' in document.createElement('a')) {
+          // 非IE下载
+          const elink = document.createElement('a');
+          elink.download = fileName;
+          elink.style.display = 'none';
+          elink.href = URL.createObjectURL(blob);
+          document.body.appendChild(elink);
+          elink.click();
+          URL.revokeObjectURL(elink.href); // 释放URL 对象
+          document.body.removeChild(elink);
+        } else {
+          // IE10+下载
+          navigator.msSaveBlob(blob, fileName);
+        }
+      });
+    },
     funGoto(val) {
       this.storageSet('getData', val);
-      const { path } = this.$route
-      let toPath
+      const { path } = this.$route;
+      let toPath;
       if (path === '/hospital-search') {
-        toPath = '/hospital-details'
+        toPath = '/hospital-details';
       } else {
-        toPath = '/details'
+        toPath = '/details';
       }
       // status = 1 代表不能复制文本
-      this.$router.push({ path: toPath })
-
+      this.$router.push({ path: toPath });
     },
     funBlur() {
       if (this.formData1.ageday > 356) {
@@ -710,11 +780,11 @@ export default {
     },
     funDel(i) {
       let index = i;
-      if(index == 0){
-          return
+      if (index == 0) {
+        return;
       }
       let list = this.formData1.seniorList;
-      list.splice(index,1);
+      list.splice(index, 1);
       this.formData1.seniorList = list;
     },
     funAdd() {
@@ -770,7 +840,7 @@ export default {
           AAC01_end_date: this.formData0.endTime || '',
           coder_id: this.formData0.Coder || null, //编码员ID
           ORG_STATE: this.formData0.medicalRecord || null, //全部病案
-          page:num == 1? num: this.paginationData.currentPage, //页码
+          page: num == 1 ? num : this.paginationData.currentPage, //页码
           limit: this.paginationData.pageSize, //条数
         };
         sessionStorage.setItem('Zkpramse', JSON.stringify(pramse));
@@ -778,9 +848,9 @@ export default {
         this.getinfo(pramse);
       } else {
         let pramse = {
-          AAC04: `${min?min:0}-${max?max:0}`,
-          AAC0401:`${min?min:0}`,
-          AAC0402:`${max?max:0}`,
+          AAC04: `${min ? min : 0}-${max ? max : 0}`,
+          AAC0401: `${min ? min : 0}`,
+          AAC0402: `${max ? max : 0}`,
           AAA04: this.formData1.ageyear || null, //年龄
           AAA40: this.formData1.ageday || null, //不足一周岁年龄
           age_start_type: this.formData1.age_start_type || null,
@@ -788,26 +858,26 @@ export default {
           AAC01_start_date: this.formData1.startTime || '',
           AAC01_end_date: this.formData1.endTime || '',
           field: this.formData1.seniorList || null, //字段条件
-          page: num == 1? num: this.paginationData.currentPage, //页码
+          page: num == 1 ? num : this.paginationData.currentPage, //页码
           limit: this.paginationData.pageSize, //条数
         };
         sessionStorage.setItem('Zkpramse', JSON.stringify(pramse));
         sessionStorage.setItem('ZkChoice', this.choice);
-        if (num == 1) { 
+        if (num == 1) {
           this.paginationData.currentPage = 1;
         }
         this.getinfo(pramse);
       }
     },
-    getinfo(p){
+    getinfo(p) {
       this.$axios.post('/qualityList', p).then(res => {
         this.paginationData.total = res.data.count;
         this.tableData = res.data.list;
         this.ARG_F_D = res.data.ARG_F_D;
         this.ARG_STAY = res.data.ARG_STAY;
         this.AEM01C = res.data.AEM01C;
-        this.SUM_ARG_STAY = res.data.SUM_ARG_STAY
-        this.SUM_ARG_F_D = res.data.SUM_ARG_F_D
+        this.SUM_ARG_STAY = res.data.SUM_ARG_STAY;
+        this.SUM_ARG_F_D = res.data.SUM_ARG_F_D;
       });
     },
     reset() {
@@ -945,23 +1015,23 @@ export default {
     margin: 0 0 0 14px;
   }
 }
-.flextabtitle-box{
+.flextabtitle-box {
   display: flex;
   align-items: center;
 }
-.flextab-item{
+.flextab-item {
   display: flex;
   align-items: center;
   margin-left: 20px;
 }
-.flextab-item>div {
+.flextab-item > div {
   font-size: 15px;
   margin-right: 15px;
 }
-.flextab-item>div span.s-1{
+.flextab-item > div span.s-1 {
   color: #185da6;
 }
-.flextab-item>div span.s-2{
+.flextab-item > div span.s-2 {
   font-weight: bold;
 }
 </style>