|
@@ -1,98 +1,98 @@
|
|
|
<template>
|
|
|
- <div>
|
|
|
- <el-button type="success" @click="feeDtle">费用明细</el-button>
|
|
|
- <el-button type="success" @click="preCalculateCost">医保试算</el-button>
|
|
|
- <el-button type="success" @click="uploadFees">费用上传</el-button>
|
|
|
- <el-button type="warning" :disabled="!isAdmin" @click="cancelFees">取消上传</el-button>
|
|
|
- <el-button type="primary" @click="weiGuiTuiFeiFenXiDialogOpen(true)">违规费用分析</el-button>
|
|
|
- <el-popover placement="left" width="730" trigger="click">
|
|
|
- <template #reference>
|
|
|
- <el-button type="warning" icon="CircleClose" plain>错误信息 ({{ errorMessages.length }})</el-button>
|
|
|
- </template>
|
|
|
- <el-tag type="info">错误信息</el-tag>
|
|
|
- <el-divider direction="vertical"></el-divider>
|
|
|
- <el-button type="warning" @click="clearErrorMessages">清除内容</el-button>
|
|
|
- <el-table width="700" max-height="300" class="errTable" :data="errorMessages">
|
|
|
- <el-table-column width="80" property="patNo" label="住院号"></el-table-column>
|
|
|
- <el-table-column width="80" property="patName" label="姓名"></el-table-column>
|
|
|
- <el-table-column width="450" property="message" label="错误详情"></el-table-column>
|
|
|
- </el-table>
|
|
|
- </el-popover>
|
|
|
-
|
|
|
- <el-tag type="info" size="small">
|
|
|
- <span style="color: black">¥ {{ patient.totalCharge }}</span>
|
|
|
- <span style="color: orangered">¥ {{ patient.chargeYb }}</span>
|
|
|
- </el-tag>
|
|
|
- </div>
|
|
|
- <div style="margin-top: 4px">
|
|
|
- <el-tag type="info">治疗明细</el-tag>
|
|
|
- <el-tag>合计:¥ {{ fees.xmSum }}</el-tag>
|
|
|
- <el-table :data="fees.xm" stripe :height="feeTableHeight">
|
|
|
- <el-table-column prop="detailSn" label="流水号" width="80"></el-table-column>
|
|
|
- <el-table-column prop="chargeCodeMx" label="院内码" width="100"></el-table-column>
|
|
|
- <el-table-column prop="chargeAmount" label="数量" sortable width="80"></el-table-column>
|
|
|
- <el-table-column prop="chargeFee" label="金额" width="80"></el-table-column>
|
|
|
- <el-table-column prop="chargeDate" label="收费日期"></el-table-column>
|
|
|
- <el-table-column prop="ybCode" label="医保码"></el-table-column>
|
|
|
- <el-table-column prop="chargeName" label="项目名称"></el-table-column>
|
|
|
- <el-table-column prop="ybSelfFlag" label="是否报销" width="80"></el-table-column>
|
|
|
- </el-table>
|
|
|
- <el-pagination
|
|
|
- @size-change="handleXmSizeChange"
|
|
|
- @current-change="handleCurrentXmChange"
|
|
|
- :current-page="page.xmPage"
|
|
|
- :page-sizes="[10, 30, 50, 70, 100, 300]"
|
|
|
- :page-size="page.xmPageSize"
|
|
|
- layout="total, sizes, prev, pager, next"
|
|
|
- :total="fees.xmTotal"
|
|
|
- >
|
|
|
- </el-pagination>
|
|
|
- <div style="height: 5px"></div>
|
|
|
- <el-tag type="info">药品明细</el-tag>
|
|
|
- <el-tag>合计:¥ {{ fees.ypSum }}</el-tag>
|
|
|
- <el-table :data="fees.yp" stripe :height="feeTableHeight">
|
|
|
- <el-table-column prop="detailSn" label="流水号" width="80"></el-table-column>
|
|
|
- <el-table-column prop="chargeCodeMx" label="院内码" width="100"></el-table-column>
|
|
|
- <el-table-column prop="chargeAmount" label="数量" sortable width="80"></el-table-column>
|
|
|
- <el-table-column prop="chargeFee" label="金额" width="80"></el-table-column>
|
|
|
- <el-table-column prop="chargeDate" label="收费日期"></el-table-column>
|
|
|
- <el-table-column prop="ybCode" label="医保码"></el-table-column>
|
|
|
- <el-table-column prop="chargeName" label="项目名称"></el-table-column>
|
|
|
- <el-table-column prop="ybSelfFlag" label="是否报销" width="80"></el-table-column>
|
|
|
+ <div>
|
|
|
+ <el-button type="success" @click="feeDtle">费用明细</el-button>
|
|
|
+ <el-button type="success" @click="preCalculateCost">医保试算</el-button>
|
|
|
+ <el-button type="success" @click="uploadFees">费用上传</el-button>
|
|
|
+ <el-button type="warning" :disabled="!isAdmin" @click="cancelFees">取消上传</el-button>
|
|
|
+ <el-button type="primary" @click="weiGuiTuiFeiFenXiDialogOpen(true)">违规费用分析</el-button>
|
|
|
+ <el-popover placement="left" width="730" trigger="click">
|
|
|
+ <template #reference>
|
|
|
+ <el-button type="warning" icon="CircleClose" plain>错误信息 ({{ errorMessages.length }})</el-button>
|
|
|
+ </template>
|
|
|
+ <el-tag type="info">错误信息</el-tag>
|
|
|
+ <el-divider direction="vertical"></el-divider>
|
|
|
+ <el-button type="warning" @click="clearErrorMessages">清除内容</el-button>
|
|
|
+ <el-table width="700" max-height="300" class="errTable" :data="errorMessages">
|
|
|
+ <el-table-column width="80" property="patNo" label="住院号"></el-table-column>
|
|
|
+ <el-table-column width="80" property="patName" label="姓名"></el-table-column>
|
|
|
+ <el-table-column width="450" property="message" label="错误详情"></el-table-column>
|
|
|
</el-table>
|
|
|
- <el-pagination
|
|
|
- @size-change="handleYpSizeChange"
|
|
|
- @current-change="handleCurrentYpChange"
|
|
|
- :current-page="page.ypPage"
|
|
|
- :page-sizes="[10, 30, 50, 70, 100, 300]"
|
|
|
- :page-size="page.ypPageSize"
|
|
|
- layout="total, sizes, prev, pager, next"
|
|
|
- :total="fees.ypTotal"
|
|
|
- >
|
|
|
- </el-pagination>
|
|
|
- <div class="m-wrapper" v-show="showProgress">
|
|
|
- <div class="dj-center-box-wrapper">
|
|
|
- <div class="el-message-box" style="font-size: 13px">
|
|
|
- <div style="background: #409eff; color: white; padding: 7px 10px; font-weight: bold">
|
|
|
- <i class="el-icon-loading"></i>
|
|
|
- 上传进度
|
|
|
- </div>
|
|
|
- <div style="padding: 10px">
|
|
|
- <div style="margin-bottom: 10px">{{ uploadIndexText }} ...</div>
|
|
|
- <div style="margin-bottom: 10px" v-show="percentage === 100">上传结束,正在进行费用计算 ...</div>
|
|
|
- <el-progress :text-inside="true" :stroke-width="22" :percentage="percentage"
|
|
|
- status="success"></el-progress>
|
|
|
- <div style="height: 5px"></div>
|
|
|
- </div>
|
|
|
+ </el-popover>
|
|
|
+
|
|
|
+ <el-tag type="info" size="small">
|
|
|
+ <span style="color: black">¥ {{ patient.totalCharge }}</span>
|
|
|
+ <span style="color: orangered">¥ {{ patient.chargeYb }}</span>
|
|
|
+ </el-tag>
|
|
|
+ </div>
|
|
|
+ <div style="margin-top: 4px">
|
|
|
+ <el-tag type="info">治疗明细</el-tag>
|
|
|
+ <el-tag>合计:¥ {{ fees.xmSum }}</el-tag>
|
|
|
+ <el-table :data="fees.xm" stripe :height="feeTableHeight">
|
|
|
+ <el-table-column prop="detailSn" label="流水号" width="80"></el-table-column>
|
|
|
+ <el-table-column prop="chargeCodeMx" label="院内码" width="100"></el-table-column>
|
|
|
+ <el-table-column prop="chargeAmount" label="数量" sortable width="80"></el-table-column>
|
|
|
+ <el-table-column prop="chargeFee" label="金额" width="80"></el-table-column>
|
|
|
+ <el-table-column prop="chargeDate" label="收费日期"></el-table-column>
|
|
|
+ <el-table-column prop="ybCode" label="医保码"></el-table-column>
|
|
|
+ <el-table-column prop="chargeName" label="项目名称"></el-table-column>
|
|
|
+ <el-table-column prop="ybSelfFlag" label="是否报销" width="80"></el-table-column>
|
|
|
+ </el-table>
|
|
|
+ <el-pagination
|
|
|
+ @size-change="handleXmSizeChange"
|
|
|
+ @current-change="handleCurrentXmChange"
|
|
|
+ :current-page="page.xmPage"
|
|
|
+ :page-sizes="[10, 30, 50, 70, 100, 300]"
|
|
|
+ :page-size="page.xmPageSize"
|
|
|
+ layout="total, sizes, prev, pager, next"
|
|
|
+ :total="fees.xmTotal"
|
|
|
+ >
|
|
|
+ </el-pagination>
|
|
|
+ <div style="height: 5px"></div>
|
|
|
+ <el-tag type="info">药品明细</el-tag>
|
|
|
+ <el-tag>合计:¥ {{ fees.ypSum }}</el-tag>
|
|
|
+ <el-table :data="fees.yp" stripe :height="feeTableHeight">
|
|
|
+ <el-table-column prop="detailSn" label="流水号" width="80"></el-table-column>
|
|
|
+ <el-table-column prop="chargeCodeMx" label="院内码" width="100"></el-table-column>
|
|
|
+ <el-table-column prop="chargeAmount" label="数量" sortable width="80"></el-table-column>
|
|
|
+ <el-table-column prop="chargeFee" label="金额" width="80"></el-table-column>
|
|
|
+ <el-table-column prop="chargeDate" label="收费日期"></el-table-column>
|
|
|
+ <el-table-column prop="ybCode" label="医保码"></el-table-column>
|
|
|
+ <el-table-column prop="chargeName" label="项目名称"></el-table-column>
|
|
|
+ <el-table-column prop="ybSelfFlag" label="是否报销" width="80"></el-table-column>
|
|
|
+ </el-table>
|
|
|
+ <el-pagination
|
|
|
+ @size-change="handleYpSizeChange"
|
|
|
+ @current-change="handleCurrentYpChange"
|
|
|
+ :current-page="page.ypPage"
|
|
|
+ :page-sizes="[10, 30, 50, 70, 100, 300]"
|
|
|
+ :page-size="page.ypPageSize"
|
|
|
+ layout="total, sizes, prev, pager, next"
|
|
|
+ :total="fees.ypTotal"
|
|
|
+ >
|
|
|
+ </el-pagination>
|
|
|
+ <div class="m-wrapper" v-show="showProgress">
|
|
|
+ <div class="dj-center-box-wrapper">
|
|
|
+ <div class="el-message-box" style="font-size: 13px">
|
|
|
+ <div style="background: #409eff; color: white; padding: 7px 10px; font-weight: bold">
|
|
|
+ <i class="el-icon-loading"></i>
|
|
|
+ 上传进度
|
|
|
+ </div>
|
|
|
+ <div style="padding: 10px">
|
|
|
+ <div style="margin-bottom: 10px">{{ uploadIndexText }} ...</div>
|
|
|
+ <div style="margin-bottom: 10px" v-show="percentage === 100">上传结束,正在进行费用计算 ...</div>
|
|
|
+ <el-progress :text-inside="true" :stroke-width="22" :percentage="percentage"
|
|
|
+ status="success"></el-progress>
|
|
|
+ <div style="height: 5px"></div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
- <el-dialog v-model="weiGuiTuiFeiFenXiDialog" title="违规费用分析" :fullscreen="true">
|
|
|
- <wei-gui-fei-yong-fen-xi :init="weiGuiTuiFeiInit" @open="weiGuiTuiFeiOpenDialog" ref="weiGui"
|
|
|
- :patient="weiGuiJiBenXinXi"></wei-gui-fei-yong-fen-xi>
|
|
|
- </el-dialog>
|
|
|
- <MedfeeAnalyse v-if="showFeeDetl" type="unsettled" :mdtrt-id="patient.mdtrtId" @close="showFeeDetl = false"/>
|
|
|
+ </div>
|
|
|
+ <el-dialog v-model="weiGuiTuiFeiFenXiDialog" title="违规费用分析" :fullscreen="true">
|
|
|
+ <wei-gui-fei-yong-fen-xi :init="weiGuiTuiFeiInit" @open="weiGuiTuiFeiOpenDialog" ref="weiGui"
|
|
|
+ :patient="weiGuiJiBenXinXi"></wei-gui-fei-yong-fen-xi>
|
|
|
+ </el-dialog>
|
|
|
+ <MedfeeAnalyse v-if="showFeeDetl" type="unsettled" :mdtrt-id="patient.mdtrtId" @close="showFeeDetl = false"/>
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
@@ -101,14 +101,14 @@ import {computed, onActivated, onDeactivated, onMounted, reactive, ref, watch} f
|
|
|
import {fetchNotUploadedFees} from '@/api/inpatient/patient'
|
|
|
import {ElMessage, ElMessageBox, ElNotification} from 'element-plus'
|
|
|
import {nullPatient} from '@/utils/validate'
|
|
|
-import {multipleUpload} from '@/api/inpatient/yibao'
|
|
|
-import {hospitalizationPreSettlement, uploadFeeDetail, revokeUploadFees} from '@/api/medical-insurance/si-inpatient'
|
|
|
-import {uploadInjuryFees, cancelInjuryFee, injuryPrecal} from '@/api/medical-insurance/si-injury'
|
|
|
+import {hospitalizationPreSettlement, revokeUploadFees, uploadFeeDetail, multipleUpload} from '@/api/medical-insurance/si-inpatient'
|
|
|
+import {cancelInjuryFee, injuryPrecal, uploadInjuryFees} from '@/api/medical-insurance/si-injury'
|
|
|
import {setCallback} from '@/utils/websocket'
|
|
|
import {getGreatestRole} from '@/utils/permission'
|
|
|
import {baseinfo} from '@/data/inpatient'
|
|
|
import WeiGuiFeiYongFenXi from '@/components/inpatient/WeiGuiFeiYongFenXi.vue'
|
|
|
import MedfeeAnalyse from '../../../components/medical-insurance/medfee-analyse/Index.vue'
|
|
|
+import {clone} from "@/utils/clone";
|
|
|
|
|
|
export default {
|
|
|
components: {WeiGuiFeiYongFenXi, MedfeeAnalyse},
|
|
@@ -242,58 +242,43 @@ export default {
|
|
|
})
|
|
|
|
|
|
const uploadFees = () => {
|
|
|
- if (selections.value.length === 0) {
|
|
|
- if (nullPatient()) return
|
|
|
- }
|
|
|
- showProgress.value = true
|
|
|
- if (injuryMode.value) {
|
|
|
- const sid = store.getters['user/sid']
|
|
|
- patient.value.sid = sid
|
|
|
- uploadInjuryFees(patient.value)
|
|
|
- .then((res) => {
|
|
|
- fetchProjectFees()
|
|
|
- fetchMedicineFees()
|
|
|
- showProgress.value = false
|
|
|
- percentage.value = 0
|
|
|
- patient.value.chargeYb = res.fundPay
|
|
|
- ElMessageBox.alert(res, '成功', {
|
|
|
- type: 'success',
|
|
|
- confirmButtonText: '确定',
|
|
|
- })
|
|
|
- })
|
|
|
- .catch(() => {
|
|
|
- showProgress.value = false
|
|
|
- percentage.value = 0
|
|
|
- fetchProjectFees()
|
|
|
- fetchMedicineFees()
|
|
|
- })
|
|
|
+ if (selections.value.length > 0) {
|
|
|
+ showProgress.value = true
|
|
|
+ doMultipleUpload()
|
|
|
} else {
|
|
|
- doSingleUpload()
|
|
|
+ if (nullPatient()) return
|
|
|
+ showProgress.value = true
|
|
|
+ if (injuryMode.value) {
|
|
|
+ doSingleInjuryUpload()
|
|
|
+ } else {
|
|
|
+ doSingleNormalUpload()
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- const doMultipleUpload = () => {
|
|
|
- selections.value.forEach((item) => {
|
|
|
- item.sid = store.getters['user/sid']
|
|
|
- })
|
|
|
- multipleUpload(selections.value)
|
|
|
+ const doSingleInjuryUpload = () => {
|
|
|
+ patient.value.sid = store.getters['user/sid']
|
|
|
+ uploadInjuryFees(patient.value)
|
|
|
.then((res) => {
|
|
|
- ElMessage({
|
|
|
- message: '处理完成。',
|
|
|
- type: 'success',
|
|
|
- duration: 2500,
|
|
|
- showClose: true,
|
|
|
- })
|
|
|
+ fetchProjectFees()
|
|
|
+ fetchMedicineFees()
|
|
|
showProgress.value = false
|
|
|
percentage.value = 0
|
|
|
+ patient.value.chargeYb = res.fundPay
|
|
|
+ ElMessageBox.alert(res, '成功', {
|
|
|
+ type: 'success',
|
|
|
+ confirmButtonText: '确定',
|
|
|
+ })
|
|
|
})
|
|
|
.catch(() => {
|
|
|
showProgress.value = false
|
|
|
percentage.value = 0
|
|
|
+ fetchProjectFees()
|
|
|
+ fetchMedicineFees()
|
|
|
})
|
|
|
}
|
|
|
|
|
|
- const doSingleUpload = () => {
|
|
|
+ const doSingleNormalUpload = () => {
|
|
|
const param = {
|
|
|
inpatientNo: patient.value.inpatientNo,
|
|
|
admissTimes: patient.value.admissTimes,
|
|
@@ -320,6 +305,26 @@ export default {
|
|
|
})
|
|
|
}
|
|
|
|
|
|
+ const doMultipleUpload = () => {
|
|
|
+ let list = clone(selections.value)
|
|
|
+ list.forEach((item) => {
|
|
|
+ item.sid = store.getters['user/sid']
|
|
|
+ })
|
|
|
+ multipleUpload(list).then((res) => {
|
|
|
+ ElMessage({
|
|
|
+ message: '处理完成。',
|
|
|
+ type: 'success',
|
|
|
+ duration: 2500,
|
|
|
+ showClose: true,
|
|
|
+ })
|
|
|
+ showProgress.value = false
|
|
|
+ percentage.value = 0
|
|
|
+ }).catch(() => {
|
|
|
+ showProgress.value = false
|
|
|
+ percentage.value = 0
|
|
|
+ })
|
|
|
+ }
|
|
|
+
|
|
|
const socketCallback = (data) => {
|
|
|
if (typeof data === 'string') {
|
|
|
data = JSON.parse(data)
|
|
@@ -329,7 +334,7 @@ export default {
|
|
|
errorMessages.value.push(data)
|
|
|
break
|
|
|
case 'updatePatientIndex':
|
|
|
- patientIndex.value = data.val
|
|
|
+ patientIndex.value = data.patientIndex
|
|
|
percentage.value = 0
|
|
|
break
|
|
|
case 'updateProgress':
|