Browse Source

结算单上传审核流程修改

lihong 2 years ago
parent
commit
9779ea9798

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

@@ -165,4 +165,28 @@ export function sendDrgGroupTest(data) {
         method: 'post',
         data
     })
+}
+
+/**
+ * 申请审核
+ * @returns {AxiosPromise}
+ */
+export function sendAudit(data) {
+    return request({
+        url: '/setlListUpld/sendAudit',
+        method: 'post',
+        data
+    })
+}
+
+/**
+ * 查询审核日志
+ * @returns {AxiosPromise}
+ */
+export function listSetlAuditLog(patNo,times) {
+    return request({
+        url: '/setlListUpld/listSetlAuditLog',
+        method: 'get',
+        params: {patNo, times}
+    })
 }

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

@@ -3,6 +3,8 @@
     <el-dialog v-model="huanZheXinXiDialog" fullscreen title="修改信息" @closed="emit('close')">
       <el-descriptions :column="4" border style="width: 100%" title="基本信息">
         <template #extra>
+          <el-button :disabled="shenHeSendFlag" size="small" type="primary" @click="fqsendAudit">申请审核</el-button>
+          <el-button size="small" type="primary" @click="querylistSetlAuditLog">审核历史记录</el-button>
           <el-button size="small" type="primary" @click="drgGroupTest">DRG分组测算</el-button>
           <el-button type="info" @click="shenHeClick">审核信息</el-button>
           <el-button size="small" type="primary" @click="shuJuDuiBi">数据对比</el-button>
@@ -67,10 +69,10 @@
             </el-option>
           </el-select>
         </el-descriptions-item>
-        <el-descriptions-item v-if="shenHeQuanXian()" label="审核">
-          <el-button :disabled="keFouShenHe" type="success" @click="shenHeTongGuoClick">审核通过</el-button>
-          <el-button :disabled="keFouShenHe" type="success" @click="shenHeTongGuoShangChuanClick">审核通过并上传
-          </el-button>
+        <el-descriptions-item v-if="auditQuanXian()" label="审核">
+          <el-button :disabled="shenHeTongGuoFlag" type="success" @click="shenHeTongGuoClick">审核通过</el-button>
+<!--          <el-button :disabled="keFouShenHe" type="success" @click="shenHeTongGuoShangChuanClick">审核通过并上传-->
+<!--          </el-button>-->
           <el-button :disabled="keFouShenHe" type="danger" @click="shenHeBoHuiClick">审核驳回</el-button>
         </el-descriptions-item>
       </el-descriptions>
@@ -286,6 +288,18 @@
         :oldYbZyDisDiag="props.data.ybZyDisDiag"
         @close="shuJuDuiBiDialogRef = false"
     ></ShuJuDuiBi>
+    <el-dialog v-model="setlAuditLogFlag"  title="审核历史记录" width="50%" class="maxhight">
+      <el-timeline>
+        <el-timeline-item v-for="item in setlAuditLogData" :data="setlAuditLogData" :timestamp="item.createTime" placement="top" color="red" >
+          <el-card>
+            <h4>{{item.auditTypeName}}</h4>
+            <p>审核状态: {{item.auditFlagName}} </p>
+            <p>{{item.auditTypeName+'人:'}} {{item.createName}}</p>
+            <p>备注: {{item.remark}} </p>
+          </el-card>
+        </el-timeline-item>
+      </el-timeline>
+    </el-dialog>
   </el-container>
 </template>
 
@@ -301,11 +315,13 @@ import {
   setlUploadAudit,
   shouShuBianMa,
   upldSetlList,
-  sendDrgGroupTest
+  sendDrgGroupTest,
+  sendAudit,
+  listSetlAuditLog
 } from '@/api/medical-insurance/si-setl-upload'
 import {formatDatetime} from '@/utils/date'
 import {listIsBlank, stringIsBlank, stringNotBlank} from '@/utils/blank-utils'
-import {getAdmissCond, getsiDiagTypeName, maZuiName, qieKouName, shenHeQuanXian} from '../jieSuanDanXiuGai'
+import {getAdmissCond, getsiDiagTypeName, maZuiName, qieKouName, shenHeQuanXian,auditQuanXian,auditBmzzQuanXian} from '../jieSuanDanXiuGai'
 import ShenHeXinXi from '../ShenHeXinXi.vue'
 import KeShiFeiYong from '../KeShiFeiYong.vue'
 import BeiZhu from '../BeiZhu.vue'
@@ -320,7 +336,7 @@ const props = defineProps({
   data: {},
 })
 
-const emit = defineEmits(['close'])
+const emit = defineEmits(['close','shuaXin'])
 
 // 基本信息
 const setlinfo = ref({})
@@ -332,6 +348,10 @@ const huanZheXinXiDialog = ref(true)
 
 const code = store.state.user.info.code
 const name = store.state.user.info.name
+//审核历史记录弹出框
+const setlAuditLogFlag = ref(false)
+//审核历史记录数据
+const setlAuditLogData =  ref([]);
 
 /*以下全部都是诊断  */
 const diagnosticQuery = ref({
@@ -516,8 +536,10 @@ const baoCunXiuGaiData = ref({})
 const beiZhuRef = ref(false)
 const baoCunHouGuanBi = () => {
   huanZheXinXiDialog.value = false
-  ctx.emit('shua-xin')
+  // ctx.emit('shua-xin')
+  emit('shuaXin')
 }
+
 const baoCunXiuGai = () => {
   let newData = {
     decType: setlinfo.value.decType,
@@ -597,6 +619,10 @@ function getDeclarationType(val) {
 const shenHeRef = ref(false)
 const keFouShenHe = ref(false)
 
+const shenHeTongGuoFlag = ref(true)
+
+const shenHeSendFlag = ref(true)
+
 const shenHeClick = () => {
   if (stringIsBlank(props.data.shenHeXinXi.id)) {
     return ElMessage.error('您还没有进行申请。')
@@ -681,7 +707,8 @@ const shenHeBoHuiClick = () => {
 
 function guanBi() {
   huanZheXinXiDialog.value = false
-  ctx.emit('shua-xin')
+  // ctx.emit('shua-xin')
+  emit('shuaXin')
 }
 
 /* 审核操作 */
@@ -707,6 +734,82 @@ const drgGroupTest = () => {
   })
 
 }
+
+/*申请审核*/
+
+const fqsendAudit = () => {
+
+  ElMessageBox.prompt('申请备注', '提示', {
+    type: 'warning',
+    confirmButtonText: '确定',
+    cancelButtonText: '取消',
+    inputPattern: /\S/,
+    inputErrorMessage: '申请备注 100 字 (∩•̀ω•́)⊃-*⋆',
+  }).then(({value}) => {
+            if (value.length > 100) {
+              return ElMessage.error('申请备注超过 100 字。')
+            }
+    let setlAuditlog = {
+      patNo: props.data.inpatientNo,
+      times: props.data.admissTimes,
+      createCode: code,
+      createName: name,
+      remark:value
+    }
+    sendAudit(setlAuditlog).then((res) => {
+      guanBi()
+    })
+        })
+          .catch((e) => {
+          })
+}
+
+/*查询审核历史记录*/
+const  querylistSetlAuditLog = () => {
+  if (stringIsBlank(props.data.shenHeXinXi.id)) {
+    return ElMessage.error('您还没有进行审核申请。')
+  }
+  refreshAuditLog()
+}
+
+//刷新审核信息
+function refreshAuditLog() {
+  listSetlAuditLog(props.data.inpatientNo,props.data.admissTimes).then((res) => {
+    if(res.length > 0){
+      setlAuditLogFlag.value=true
+      setlAuditLogData.value = []
+      for (let item of res){
+        let setAuditLog = {
+          id: '',
+          createName: '',
+          createCode: '',
+          createTime: '',
+          remark: '',
+          auditFlag: '',
+          auditType: '',
+          auditTypeName: '',
+          auditFlagName: ''
+        };
+        setAuditLog.id = item.id
+        setAuditLog.createName = item.createName
+        setAuditLog.createTime = item.createTime
+        setAuditLog.remark = item.remark
+        setAuditLog.auditFlag = item.auditFlag
+        setAuditLog.auditType = item.auditType
+        if(setAuditLog.auditType == 0){
+          setAuditLog.auditTypeName = '申请'
+        }else{
+          setAuditLog.auditTypeName = '审核'
+        }
+        setAuditLog.auditFlagName = getAduitFlagName(setAuditLog.auditFlag)
+        setlAuditLogData.value.push(setAuditLog)
+      }
+    }else {
+       ElMessage.info('没有审核历史记录。')
+    }
+  })
+}
+
 /* 数据对比结束 */
 
 /* 获取患者各个科室的费用 */
@@ -756,6 +859,19 @@ const init = () => {
   diagnosticQuery.value.medType = props.data.medType
 }
 
+function getAduitFlagName(val) {
+  switch (val) {
+    case 0:
+      return '申请审核'
+    case 1:
+      return '审核通过'
+    case 2:
+      return '驳回'
+    case 3:
+      return '正在审核'
+  }
+}
+
 /**
  * 诊断的拖拽
  */
@@ -833,6 +949,15 @@ const clickRemoveBloodTransfusion = (index, id) => {
 onMounted(() => {
   init()
   keFouShenHe.value = !(stringNotBlank(props.data.shenHeXinXi.id) && props.data.shenHeXinXi.auditFlag === 0)
+ if(auditBmzzQuanXian() && props.data.shenHeXinXi.auditFlag == 2 && !keFouShenHe.value){
+   //审核驳回才有审核通过按钮
+   shenHeTongGuoFlag.value = false
+ }else {
+   shenHeTongGuoFlag.value = keFouShenHe.value
+ }
+ if(!stringNotBlank(props.data.shenHeXinXi.id) || props.data.shenHeXinXi.auditFlag == 2){
+   shenHeSendFlag.value = false
+ }
 })
 
 const methods = [
@@ -855,4 +980,10 @@ const siDiagTypes = [
 ]
 </script>
 
-<style></style>
+<style>
+  .maxhight{
+    height: 700px;
+    overflow: auto;
+  }
+
+</style>

+ 12 - 0
src/components/si-sheet-upload/jieSuanDanXiuGai.js

@@ -11,6 +11,18 @@ export function shenHeQuanXian() {
     return getRoles.indexOf(1) > -1 || getRoles.indexOf(8) > -1
 }
 
+export function auditQuanXian() {
+    return getRoles.indexOf(1) > -1 || getRoles.indexOf(49) >-1 ||getRoles.indexOf(50)  > -1
+}
+//编码组长
+export function auditBmzzQuanXian() {
+    return getRoles.indexOf(50)  > -1 || getRoles.indexOf(1) > -1
+}
+//审核申请权限
+export function auditSendQuaXian() {
+    return getRoles.indexOf(48)   || getRoles.indexOf(1) > -1
+}
+
 /**
  * 获取医保诊断
  * @param val 诊断编码

+ 1 - 0
src/views/medical-insurance/allpatient/SetSheetUpload.vue

@@ -29,6 +29,7 @@
             </el-button>
           </template>
         </el-table-column>
+        <el-table-column fixed label="审核状态" prop="auditFlagName"></el-table-column>
         <el-table-column label="出院科室" prop="outDeptName">
           <template #default="scope">
             <el-button