Browse Source

上传日志,解决一些问题

lihong 2 years ago
parent
commit
a23026e793

+ 24 - 0
src/api/medical-insurance/si-setl-upload.js

@@ -236,4 +236,28 @@ export function querySetlModifyReq(patNo,times) {
         method: 'get',
         params: {patNo, times}
     })
+}
+
+/**
+ *查询上传日志记录
+ * @returns {AxiosPromise}
+ */
+export function queryUploadInfo(data) {
+    return request({
+        url: '/setlListUpld/queryUploadInfo',
+        method: 'post',
+        data
+    })
+}
+
+/**
+ *病案首页检查
+ * @returns {AxiosPromise}
+ */
+export function sheetVerification(data) {
+    return request({
+        url: '/setlListUpld/sheetVerification',
+        method: 'post',
+        data
+    })
 }

+ 144 - 36
src/components/si-sheet-upload/ExportAutoUploadInfo.vue

@@ -1,63 +1,171 @@
 <template>
-  <el-dialog v-model="dialog" title="自动上传信息" @closed="emit('close')">
-    <el-form label-width="120px">
-      <el-form-item label="日期">
-        <el-date-picker
-            v-model="dateRange"
-            type="daterange"
-            format="YYYY-MM-DD"
-            placeholder="开始日期"
-            range-separator="至"
-            start-placeholder="开始日期"
-            end-placeholder="结束日期"
-            :shortcuts="shortcuts"
-            style="width: 120px"
-            value-format="YYYY-MM-DD"
-        />
-      </el-form-item>
-    </el-form>
-
-    <template #footer>
-      <el-button type="primary" @click="ExportToExcel">导出Excel</el-button>
+    <page-layer>
+    <template #header>
+          <el-input v-model="queryuploadTerm.patNo" clearable placeholder="住院号"
+                    @blur="patNo = $event.target.value.trim()" @keyup.enter="queryPage" style="width: 110px"></el-input>
+        <el-input v-model="queryuploadTerm.times" clearable placeholder="住院次数"
+                  @blur="times = $event.target.value.trim()"  style="width: 80px"></el-input>
+          <el-select v-model="queryuploadTerm.typeFlag" placeholder="上传类型" style="width: 110px">
+            <el-option label="全部" value="0" />
+            <el-option label="自动上传" value="1" />
+            <el-option label="手动上传" value="2" />
+          </el-select>
+          <el-select v-model="queryuploadTerm.flag" placeholder="上传结果标识" style="width: 110px" >
+            <el-option label="全部" value="0" />
+            <el-option label="上传成功" value="1" />
+            <el-option label="上传失败" value="2" />
+          </el-select>
+            <span>上传时间</span>
+          <el-date-picker
+                  v-model="queryuploadTerm.uploadDateRange"
+                  type="daterange"
+                  format="YYYY-MM-DD"
+                  placeholder="上传开始日期"
+                  range-separator="至"
+                  start-placeholder="上传开始日期"
+                  end-placeholder="上传结束日期"
+                  :shortcuts="clockinShortcuts"
+                  style="width: 180px"
+                  value-format="YYYY-MM-DD"
+          />
+        <span>结算时间</span>
+          <el-date-picker
+                  v-model="queryuploadTerm.setlDateRange"
+                  type="daterange"
+                  format="YYYY-MM-DD"
+                  placeholder="结算开始日期"
+                  range-separator="至"
+                  start-placeholder="结算开始日期"
+                  end-placeholder="结算结束日期"
+                  :shortcuts="clockinShortcuts"
+                  style="width: 180px"
+                  value-format="YYYY-MM-DD"
+          />
+          <el-button icon="Search"  type="primary" @click="queryPage">查询</el-button>
+          <el-button type="primary" @click="ExportToExcel">导出Excel</el-button>
     </template>
-  </el-dialog>
+    <template #main>
+      <el-table ref="uploadTableRef" :data="queryuploadTerm.list" :height="tableHeight"   border highlight-current-row >
+        <el-table-column prop="patNo" label="住院号" width="80"></el-table-column>
+        <el-table-column prop="times" label="住院次数" width="80"></el-table-column>
+        <el-table-column prop="ledgerSn" label="账页号" width="80"></el-table-column>
+        <el-table-column prop="typeFlagName" label="上传类型" width="80"></el-table-column>
+        <el-table-column prop="flagName" label="上传结果标识" width="90"></el-table-column>
+        <el-table-column prop="createdDate" label="上传时间" width="130"></el-table-column>
+        <el-table-column prop="setlTime" label="患者结算时间" width="130"></el-table-column>
+        <el-table-column prop="logText" label="日志" ></el-table-column>
+      </el-table>
+      <el-pagination
+              :current-page="queryuploadTerm.currentPage"
+              :page-size="queryuploadTerm.pageSize"
+              :page-sizes="[10, 20, 30, 40, 50, 100]"
+              :total="queryuploadTerm.total"
+              layout="total, sizes, prev, pager, next, jumper"
+              @size-change="handleSizeChange"
+              @current-change="handleCurrentChange"
+      ></el-pagination>
+    </template>
+    </page-layer>
 </template>
 
 <script setup name='ExportAutoUploadInfo'>
-import {shortcuts} from '@/data/shortcuts'
-import {onMounted} from "vue";
+import {clockinShortcuts} from '@/data/shortcuts'
+import {onMounted,ref,onActivated} from "vue";
 import {getServerDateApi} from "@/api/public-api";
 import moment from "moment";
-import {getFormatDatetime} from "@/utils/date";
+import {getDateRangeFormatDate} from "@/utils/date";
 import {downloadExcel} from "@/utils/excel";
-
+import PageLayer from "@/layout/PageLayer";
+import store from '@/store';
+import router from "@/router";
+import sleep from "@/utils/sleep";
+import {
+  queryUploadInfo
+} from '@/api/medical-insurance/si-setl-upload';
+const windowSize = store.state.app.windowSize;
+const tableHeight = ref(windowSize.h - 70)
 const emit = defineEmits(['close'])
 
 const dialog = ref(true)
-let dateRange = $ref([])
+const uploadInfoData = ref([])
+const  queryuploadTerm = ref({
+  patNo:"",
+  times:null,
+  ledgerSn:null,
+  typeFlag:'0',
+  flag:'0',
+  updateStartTime:"",
+  updateEndTime:"",
+  setlStartTime:"",
+  setlEndTime:"",
+  uploadDateRange:[clockinShortcuts[0].value[0], clockinShortcuts[0].value[1]],
+  setlDateRange:[],
+  currentPage:1,
+  pageSize:40,
+  list:[],
+  total: 0
+})
 
 const ExportToExcel = async () => {
-  if (!dateRange) return
+    createQuery()
   const data = {
-    param: {startTime: dateRange[0], endTime: dateRange[1]},
+    param: queryuploadTerm.value,
     url: '/setlListUpld/exportAutoUploadInfo',
-    fileName: `${dateRange[0]}至${dateRange[1]}.xlsx`,
+    fileName: '上传日志.xlsx',
   }
   setTimeout(() => {
     downloadExcel(data)
   }, 500)
 }
 
-onMounted(async () => {
-  let res = await getServerDateApi()
-  let date = getFormatDatetime(res, 'YYYY-MM-DD')
-  let date1 = getFormatDatetime(moment(date).subtract(1, 'days')._d, 'YYYY-MM-DD')
-  dateRange[0] = date1
-  dateRange[1] = date1
+function createQuery() {
+    let uploadDates = getDateRangeFormatDate(queryuploadTerm.value.uploadDateRange)
+    let setlDates = getDateRangeFormatDate(queryuploadTerm.value.setlDateRange)
+    queryuploadTerm.value.updateStartTime =uploadDates.startTime
+    queryuploadTerm.value.updateEndTime =uploadDates.endTime
+
+    queryuploadTerm.value.setlStartTime =setlDates.startTime
+    queryuploadTerm.value.setlEndTime =setlDates.endTime
+}
+const queryPage=async () =>{
+    createQuery()
+    queryUploadInfo(queryuploadTerm.value).then((res) => {
+      queryuploadTerm.value.list = res.records?res.records:[]
+      queryuploadTerm.value.total =res.total
+    })
+
+}
+onActivated(async () => {
+    const params = router.currentRoute.value.query
+    if (params && params.patNo && params.times && params.ledgerSn) {
+        queryuploadTerm.value.times = params.times
+        queryuploadTerm.value.patNo = params.patNo
+        queryuploadTerm.value.ledgerSn = params.ledgerSn
+        queryuploadTerm.value.uploadDateRange = []
+        queryuploadTerm.value.setlDateRange = []
+        await sleep(300);
+    }
+    await queryPage()
 })
 
+onMounted( () => {
+
+})
+
+const handleSizeChange = (val) => {
+  queryuploadTerm.value.pageSize = val
+  queryPage()
+
+}
+const handleCurrentChange = (val) => {
+  queryuploadTerm.value.currentPage = val
+  queryPage()
+}
 </script>
 
 <style scoped>
-
+  .maxhight{
+    height: 950px;
+    overflow: auto;
+  }
 </style>

+ 3 - 6
src/components/si-sheet-upload/jie-suan-dan-xiu-gai/JieSuanDanXiangQing.vue

@@ -369,7 +369,8 @@ import {
   drgQualityTest,
   isInHospital,
 sendShenQingCheHui,
-    querySetlModifyReq
+    querySetlModifyReq,
+    sheetVerification
 } from '@/api/medical-insurance/si-setl-upload'
 import {formatDatetime} from '@/utils/date'
 import {listIsBlank, stringIsBlank, stringNotBlank} from '@/utils/blank-utils'
@@ -638,13 +639,9 @@ const baoCunXiuGai = () => {
     if (listIsBlank(oprninfo.value)) {
       return ElMessage.error('选择治疗类型为手术的,至少要有一个手术。')
     }
-  } else if (oprninfo.value.length > 7) {
-    return ElMessage.error('手术不能超过7个。')
   }
   if (listIsBlank(diseinfo.value)) {
-    return ElMessage.error('诊断不能为空切不能大于27个。')
-  } else if (diseinfo.value.length > 27) {
-    return ElMessage.error('诊断超过27个。')
+    return ElMessage.error('诊断不能为空。')
   }
   let changeData = ''
   let data = setlinfo.value

+ 6 - 0
src/router/modules/dashboard.js

@@ -143,6 +143,12 @@ const route = [
                 component: createNameComponent(() => import('@/views/medical-insurance/allpatient/SetSheetUpload.vue')),
                 meta: {title: '结算单上传'},
             },
+            {
+                path: 'qryManage/exportAutoUploadInfo',
+                name: 'ExportAutoUploadInfo',
+                component: createNameComponent(() => import('@/components/si-sheet-upload/ExportAutoUploadInfo.vue')),
+                meta: {title: '上传信息'},
+            },
             {
                 path: 'qryManage/setlStatistics',
                 component: createNameComponent(() => import('@/views/medical-insurance/allpatient/SetlStatistics.vue')),

+ 76 - 22
src/views/medical-insurance/allpatient/SetSheetUpload.vue

@@ -14,8 +14,7 @@
       </el-button>
       <el-button icon="RefreshLeft" type="primary" @click="queryCurrentPage">刷新数据</el-button>
       <el-button v-if="shenHeQuanXian()" type="success" @click="xianZhiShiJianClick">设置限制时间</el-button>
-      <el-button v-if="shenHeQuanXian()" type="success" @click="autoUploadDialog = true">导出自动上传信息</el-button>
-      <export-auto-upload-info @close="autoUploadDialog = false" v-if="autoUploadDialog"/>
+      <el-button  type="success" @click="toUploadInfo">上传日志</el-button>
       <xian-zhi-shi-jian ref="xianZhiShiJian"></xian-zhi-shi-jian>
     </template>
     <template #main>
@@ -29,8 +28,18 @@
             </el-button>
           </template>
         </el-table-column>
-        <el-table-column fixed label="审核状态" prop="auditFlagName"></el-table-column>
-        <el-table-column fixed label="上传截止日期" prop="uploadCutoffDate"></el-table-column>
+        <el-table-column fixed label="审核状态" prop="auditFlagName">
+        </el-table-column>
+        <el-table-column fixed label="质控提醒" prop="qualityReminder"  width="100">
+          <template #default="scope">
+            <span style="color: red">{{scope.row.qualityReminder}}</span>
+          </template>
+        </el-table-column>
+        <el-table-column fixed label="上传截止日期" prop="uploadCutoffDate"  width="100">
+          <template #default="scope">
+            <span style="color: red">{{scope.row.uploadCutoffDate}}</span>
+          </template>
+        </el-table-column>
         <el-table-column fixed label="上传状态" prop="uploadStatus"></el-table-column>
         <el-table-column label="出院科室" prop="outDeptName">
           <template #default="scope">
@@ -69,9 +78,10 @@
         <el-table-column label="参保地" prop="insuplcAdmdvsName"></el-table-column>
         <el-table-column label="转科室" prop="zhuanKeName"></el-table-column>
         <el-table-column label="申请备注" prop="reqRemark"></el-table-column>
-        <el-table-column v-if="shenHeQuanXian()" label="结算单" fixed="right">
+        <el-table-column v-if="shenHeQuanXian()" label="结算单" fixed="right" align="center" width="120">
           <template #default="scope">
-            <el-button @click="jieSuanDanClick(scope.row)">查看结算单</el-button>
+            <el-button  @click="jieSuanDanClick(scope.row)">查看结算单</el-button>
+            <el-button  @click="getUploadInfo(scope.row)">查看上传信息</el-button>
           </template>
         </el-table-column>
       </el-table>
@@ -380,6 +390,23 @@ export default {
     const tableRef = ref(null)
 
     const jieSuanDanDataDialog = ref(false)
+    //跳转上传日志
+    const toUploadInfo =() =>{
+      router.push({
+        name: 'ExportAutoUploadInfo'
+      })
+    }
+    //单个查询上传信息
+    const getUploadInfo = (row)=>{
+      router.push({
+        name: 'ExportAutoUploadInfo',
+        query:{
+          patNo:row.patNo,
+          times:row.times,
+          ledgerSn:row.ledgerSn
+        }
+      })
+    }
 
     const handleSelectionChange = (val) => {
       selections.value = val
@@ -502,6 +529,7 @@ export default {
         jieSuanDanData.value.decType = val.decType
         jieSuanDanData.value.upload = val
         jieSuanDanData.value.deptList = disDepts.value
+        jieSuanDanData.value.ledgerSn= val.ledgerSn
         jieSuanDanData.value.shenHeXinXi = {
           id: val.id,
           reqOpId: val.reqOpId,
@@ -519,28 +547,50 @@ export default {
     }
 
     const exportExcel = () => {
-      if (queryTerm.value.total > 0) {
+      if(selections.value.length>0){
         ElMessageBox.prompt('导出文件名字', '提示', {
           confirmButtonText: '确定',
           cancelButtonText: '取消',
           inputPattern: /\S/,
           inputErrorMessage: '文件名不能为空 (∩•̀ω•́)⊃-*⋆',
         })
-            .then(({value}) => {
-              const data = {
-                param: queryTerm.value,
-                url: '/setlListUpld/exportExcel',
-                fileName: `${value}.xlsx`,
-                jdt: true,
-              }
-              setTimeout(() => {
-                downloadExcel(data)
-              }, 500)
-            })
-            .catch((e) => {
-            })
-      } else {
-        ElMessage.error('请先查询出数据')
+                .then(({value}) => {
+                  const data = {
+                    param: {siSetlinfoTemps:selections.value},
+                    url: '/setlListUpld/exportExcel',
+                    fileName: `${value}.xlsx`,
+                    jdt: true,
+                  }
+                  setTimeout(() => {
+                    downloadExcel(data)
+                  }, 500)
+                })
+                .catch((e) => {
+                })
+      }else {
+        if (queryTerm.value.total > 0) {
+          ElMessageBox.prompt('导出文件名字', '提示', {
+            confirmButtonText: '确定',
+            cancelButtonText: '取消',
+            inputPattern: /\S/,
+            inputErrorMessage: '文件名不能为空 (∩•̀ω•́)⊃-*⋆',
+          })
+                  .then(({value}) => {
+                    const data = {
+                      param: queryTerm.value,
+                      url: '/setlListUpld/exportExcel',
+                      fileName: `${value}.xlsx`,
+                      jdt: true,
+                    }
+                    setTimeout(() => {
+                      downloadExcel(data)
+                    }, 500)
+                  })
+                  .catch((e) => {
+                  })
+        } else {
+          ElMessage.error('请先查询出数据')
+        }
       }
     }
 
@@ -694,6 +744,8 @@ export default {
       decTypes,
       zhongKongTiaoJian,
       daYingJieSuanDanRef,
+      toUploadInfo,
+      getUploadInfo,
       jieSuanDanClick,
       flags: ref([
         {code: 0, name: '全部'},
@@ -724,3 +776,5 @@ export default {
   },
 }
 </script>
+
+