|
@@ -1,257 +0,0 @@
|
|
|
-<template>
|
|
|
- <el-container>
|
|
|
- <el-header height="30px">
|
|
|
- <el-tag>患者姓名: {{ patient.name }}</el-tag>
|
|
|
- <el-tag>住院号: {{ patient.inpatientNo }}</el-tag>
|
|
|
- <el-tag>床号: {{ patient.bedNo }}</el-tag>
|
|
|
- <el-tag>住院次数: {{ patient.admissTimes }}</el-tag>
|
|
|
- <el-tag>性别: {{ cptSex(patient.sex) }}</el-tag>
|
|
|
- <br /><br />
|
|
|
- 医嘱号:
|
|
|
- <el-input style="width: 120px" v-model="actOrderNo"></el-input>
|
|
|
- 医嘱名称:
|
|
|
- <el-select v-model="orderCode" remote filterable clearable :remote-method="remoteMethodOrderCode">
|
|
|
- <el-option v-for="item in orderCodeNameData" :key="item.code" :label="item.name" :value="item.code">
|
|
|
- <span style="color: #8492a6; font-size: 12px">{{ item.code }}</span>
|
|
|
- <el-divider direction="vertical"></el-divider>
|
|
|
- <span>{{ item.name }}</span>
|
|
|
- </el-option>
|
|
|
- </el-select>
|
|
|
- 医嘱时间:
|
|
|
- <el-date-picker
|
|
|
- v-model="dateRange"
|
|
|
- type="daterange"
|
|
|
- range-separator="至"
|
|
|
- start-placeholder="开始日期"
|
|
|
- end-placeholder="结束日期"
|
|
|
- :shortcuts="shortcuts"
|
|
|
- style="width: 260px"
|
|
|
- ></el-date-picker>
|
|
|
- <el-button style="margin-left: 10px" type="primary" icon="Search" @click="queryActOrder">搜索</el-button>
|
|
|
- <el-button style="margin-left: 10px" type="danger" icon="Delete" @click="yiZhuTuiFeiClick">医嘱退费 </el-button>
|
|
|
- <el-button style="margin-left: 10px" type="warning" icon="Close" @click="closeDialog">关闭</el-button>
|
|
|
- </el-header>
|
|
|
- <el-main style="margin-top: 50px">
|
|
|
- <el-table :data="yzActOrderData" :height="tableHeight - 20" stripe highlight-current-row @selection-change="selectionTuiFeiYiZhu">
|
|
|
- <el-table-column type="selection"></el-table-column>
|
|
|
- <el-table-column prop="actOrderNo" label="医嘱号"></el-table-column>
|
|
|
- <el-table-column prop="orderCode" label="医嘱编码"></el-table-column>
|
|
|
- <el-table-column prop="orderName" label="医嘱名称"></el-table-column>
|
|
|
- <el-table-column prop="drugQuan" label="执行用量"></el-table-column>
|
|
|
- <el-table-column prop="supplyCodeName" label="给药方式"></el-table-column>
|
|
|
- <el-table-column prop="frequCode" label="频次"></el-table-column>
|
|
|
- <el-table-column prop="physicianName" label="医生"></el-table-column>
|
|
|
- <el-table-column prop="startTime" label="开始时间" width="80px"></el-table-column>
|
|
|
- <el-table-column prop="endTime" label="结束时间" width="80px"></el-table-column>
|
|
|
- <el-table-column prop="dose" label="计量"></el-table-column>
|
|
|
- <el-table-column prop="doseUnit" label="计量单位"></el-table-column>
|
|
|
- <el-table-column prop="groupNo" label="药房号"></el-table-column>
|
|
|
- <el-table-column prop="drugFlagName" label="医嘱类型"></el-table-column>
|
|
|
- <el-table-column prop="discription" label="描述"></el-table-column>
|
|
|
- <el-table-column prop="tfFlag" label="是否退费">
|
|
|
- <template #default="scope">
|
|
|
- <span v-html="tfFlag(scope.row.tfFlag)"></span>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- </el-table>
|
|
|
- <el-pagination
|
|
|
- @size-change="handleSizeChange"
|
|
|
- @current-change="handleCurrentChange"
|
|
|
- :current-page="currentPage"
|
|
|
- :page-sizes="[20, 30, 40, 50, 100]"
|
|
|
- :page-size="pageSize"
|
|
|
- layout="total, sizes, prev, pager, next, jumper"
|
|
|
- :total="total"
|
|
|
- style="margin-top: 5px"
|
|
|
- ></el-pagination>
|
|
|
- </el-main>
|
|
|
- </el-container>
|
|
|
-</template>
|
|
|
-
|
|
|
-<script>
|
|
|
-import { onMounted, ref, watch } from '@vue/runtime-core'
|
|
|
-import store from '@/store'
|
|
|
-import { getChargeCode } from '@/api/inpatient/xiang-mu-lu-ru'
|
|
|
-import { cptSex } from '@/utils/computed'
|
|
|
-import { shortcuts } from '@/data/shortcuts'
|
|
|
-import { getDateRangeFormatDate } from '@/utils/date'
|
|
|
-import { getOrderList, yiZhuTuiFei } from '@/api/inpatient/yi-zhu-tui-fei'
|
|
|
-import { ElMessage, ElMessageBox } from 'element-plus'
|
|
|
-import { baseinfo } from '@/data/inpatient'
|
|
|
-import { computed } from 'vue'
|
|
|
-
|
|
|
-export default {
|
|
|
- props: {
|
|
|
- initYiZhu: {
|
|
|
- type: Number,
|
|
|
- },
|
|
|
- },
|
|
|
- setup(props, cxt) {
|
|
|
- const windowSize = store.state.app.windowSize
|
|
|
- const tableHeight = windowSize.h - 120
|
|
|
-
|
|
|
- const actOrderNo = ref('')
|
|
|
- const orderCode = ref('')
|
|
|
- // 根据医嘱名称来查询
|
|
|
- const orderCodeNameData = ref([])
|
|
|
- const dateRange = ref(null)
|
|
|
- // 退费编码
|
|
|
- const tuiFeiCode = ref(3)
|
|
|
-
|
|
|
- const currentPage = ref(1)
|
|
|
- const pageSize = ref(20)
|
|
|
- const total = ref(0)
|
|
|
-
|
|
|
- const patient = computed(() => {
|
|
|
- return baseinfo()
|
|
|
- })
|
|
|
-
|
|
|
- const yzActOrderData = ref([])
|
|
|
-
|
|
|
- const handleSizeChange = (val) => {
|
|
|
- pageSize.value = val
|
|
|
- queryActOrder()
|
|
|
- }
|
|
|
-
|
|
|
- const handleCurrentChange = (val) => {
|
|
|
- currentPage.value = val
|
|
|
- queryActOrder()
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 远程搜索
|
|
|
- */
|
|
|
- const remoteMethodOrderCode = (val) => {
|
|
|
- if (val.length >= 2) {
|
|
|
- getChargeCode(val).then((res) => {
|
|
|
- orderCodeNameData.value = res
|
|
|
- })
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- const closeDialog = () => {
|
|
|
- cxt.emit('closeYiZhuTuiFei')
|
|
|
- }
|
|
|
-
|
|
|
- watch(
|
|
|
- () => props.initYiZhu,
|
|
|
- () => {
|
|
|
- orderCode.value = ''
|
|
|
- actOrderNo.value = ''
|
|
|
- dateRange.value = null
|
|
|
- currentPage.value = 1
|
|
|
- pageSize.value = 20
|
|
|
- queryActOrder()
|
|
|
- }
|
|
|
- )
|
|
|
-
|
|
|
- onMounted(() => {
|
|
|
- queryActOrder()
|
|
|
- })
|
|
|
-
|
|
|
- const queryActOrder = () => {
|
|
|
- let date = getDateRangeFormatDate(dateRange.value)
|
|
|
- let queryTerm = {
|
|
|
- queryStartTime: date.startTime,
|
|
|
- queryEndTime: date.endTime,
|
|
|
- orderCode: orderCode.value,
|
|
|
- actOrderNo: actOrderNo.value,
|
|
|
- inpatientNo: patient.value.inpatientNo,
|
|
|
- admissTimes: patient.value.admissTimes,
|
|
|
- currentPage: currentPage.value,
|
|
|
- pageSize: pageSize.value,
|
|
|
- tfFlag: tuiFeiCode.value,
|
|
|
- }
|
|
|
- getOrderList(queryTerm)
|
|
|
- .then((res) => {
|
|
|
- total.value = res.total
|
|
|
- yzActOrderData.value = res.records
|
|
|
- })
|
|
|
- .catch(() => {
|
|
|
- total.value = 0
|
|
|
- yzActOrderData.value = []
|
|
|
- })
|
|
|
- }
|
|
|
-
|
|
|
- // 获取退费医嘱
|
|
|
- const tuiFaiYiZhu = ref([])
|
|
|
-
|
|
|
- const selectionTuiFeiYiZhu = (val) => {
|
|
|
- tuiFaiYiZhu.value = val
|
|
|
- }
|
|
|
-
|
|
|
- // 开始退费
|
|
|
- const yiZhuTuiFeiClick = () => {
|
|
|
- if (tuiFaiYiZhu.value.length <= 0) {
|
|
|
- return ElMessage.error({
|
|
|
- message: '请先选择需要退费的数据',
|
|
|
- showClose: true,
|
|
|
- })
|
|
|
- }
|
|
|
-
|
|
|
- ElMessageBox.confirm(`共${tuiFaiYiZhu.value.length}条数据退费,请认真审核。`, '提示', {
|
|
|
- type: 'warning',
|
|
|
- })
|
|
|
- .then(() => {
|
|
|
- let tuiFei = {
|
|
|
- inpatientNo: patient.inpatientNo,
|
|
|
- admissTimes: patient.admissTimes,
|
|
|
- tuiFeiList: tuiFaiYiZhu.value,
|
|
|
- }
|
|
|
- yiZhuTuiFei(tuiFei).then((res) => {
|
|
|
- queryActOrder()
|
|
|
- })
|
|
|
- })
|
|
|
- .catch(() => {})
|
|
|
- }
|
|
|
-
|
|
|
- // 监听如果选择的退费类型 那么就要从第一页开始 不然会有bug
|
|
|
- watch(
|
|
|
- () => tuiFeiCode.value,
|
|
|
- () => {
|
|
|
- currentPage.value = 1
|
|
|
- queryActOrder()
|
|
|
- }
|
|
|
- )
|
|
|
-
|
|
|
- return {
|
|
|
- actOrderNo,
|
|
|
- orderCode,
|
|
|
- orderCodeNameData,
|
|
|
- remoteMethodOrderCode,
|
|
|
- closeDialog,
|
|
|
- patient,
|
|
|
- cptSex,
|
|
|
- dateRange,
|
|
|
- shortcuts,
|
|
|
- queryActOrder,
|
|
|
- total,
|
|
|
- yzActOrderData,
|
|
|
- tableHeight,
|
|
|
- currentPage,
|
|
|
- pageSize,
|
|
|
- handleCurrentChange,
|
|
|
- handleSizeChange,
|
|
|
- selectionTuiFeiYiZhu,
|
|
|
- yiZhuTuiFeiClick,
|
|
|
- tfFlag,
|
|
|
- tuiFeiCode,
|
|
|
- }
|
|
|
- },
|
|
|
-}
|
|
|
-
|
|
|
-function tfFlag(val) {
|
|
|
- switch (val) {
|
|
|
- case 0:
|
|
|
- return `<span style="color: #67C23A">未退费</span>`
|
|
|
- case 1:
|
|
|
- return `<span style="color: #F56C6C">已退费</span>`
|
|
|
- case 2:
|
|
|
- return `<span style="color: #F56C6C">退费数据</span>`
|
|
|
- default:
|
|
|
- return `<span style="color: #909399">未知</span>`
|
|
|
- }
|
|
|
-}
|
|
|
-</script>
|
|
|
-
|
|
|
-<style></style>
|