|
@@ -1,127 +1,127 @@
|
|
|
<template>
|
|
|
- <page-layer>
|
|
|
- <template #header>
|
|
|
- 数据源:
|
|
|
- <el-radio-group v-model="hisWjwMatchEntity.label" @change="fetchDataByLabel">
|
|
|
- <el-radio label="department">科别</el-radio>
|
|
|
- <el-radio label="anaesthesia">麻醉方式</el-radio>
|
|
|
- <el-radio label="diagnose">国临诊断</el-radio>
|
|
|
- <el-radio label="surgery">国临手术操作</el-radio>
|
|
|
- <el-radio label="surgery_chargeCode">手术收费项目</el-radio>
|
|
|
- <el-radio label="si_diag">医保诊断</el-radio>
|
|
|
- <el-radio label="si_surgery">医保手术</el-radio>
|
|
|
- </el-radio-group>
|
|
|
- <el-button style="margin-left: 50px" type="primary" icon="Refresh" @click="fetchDataByLabel">刷新数据
|
|
|
- </el-button>
|
|
|
- </template>
|
|
|
- <template #main>
|
|
|
- <div style="display: flex; height: 100%; width: 100%">
|
|
|
- <div style="height: 100%; width: 45%">
|
|
|
- <div style="display: flex">
|
|
|
- <el-input prefix-icon="Search" placeholder="输入拼音、编码或名称以进行检索" v-model="hisInput"
|
|
|
- clearable></el-input>
|
|
|
- <el-select v-if="hisWjwMatchEntity.label === 'surgery_chargeCode'" v-model="currentStatus">
|
|
|
- <el-option :value="0" label="未匹配"></el-option>
|
|
|
- <el-option :value="1" label="已匹配"></el-option>
|
|
|
- <el-option :value="2" label="全部"></el-option>
|
|
|
- </el-select>
|
|
|
- </div>
|
|
|
- <el-table :data="filterHisList.slice((hisCurrentPage - 1) * 30, hisCurrentPage * 30)"
|
|
|
- height="500" highlight-current-row stripe @row-click="handleClickHisRow">
|
|
|
- <el-table-column type="index" label="序号"></el-table-column>
|
|
|
- <el-table-column prop="code" label="编码" width="90"></el-table-column>
|
|
|
- <el-table-column prop="name" label="名称"></el-table-column>
|
|
|
- <el-table-column label="状态" width="100">
|
|
|
- <template #default="scope">
|
|
|
- <span v-html="makeMatchStatus(scope.row.wjwCode, scope.row.chargeCode)"></span>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- </el-table>
|
|
|
- <el-pagination
|
|
|
- @current-change="handleHisPageChange"
|
|
|
- :current-page="hisCurrentPage"
|
|
|
- :page-size="30"
|
|
|
- layout="total, prev, pager, next"
|
|
|
- :total="filterHisList.length"
|
|
|
- style="margin-top: 5px"
|
|
|
- ></el-pagination>
|
|
|
- </div>
|
|
|
- <div class="match-info-box">
|
|
|
- <div>
|
|
|
- <div class="his">
|
|
|
- <div>{{ hisMatchTextNote }}:</div>
|
|
|
- <div class="code">{{ hisWjwMatchEntity.code }}</div>
|
|
|
- </div>
|
|
|
- <div class="wjw">
|
|
|
- <div>{{ wjwMatchTextNote }}:</div>
|
|
|
- <div v-if="hisWjwMatchEntity.label === 'surgery_chargeCode'">
|
|
|
- <div v-for="(item,index) in hisWjwMatchEntity.chargeCode" :key="index"
|
|
|
- style="display: flex; align-items: center; padding: 2px 0">
|
|
|
- <div :title="hisWjwMatchEntity.chargeName[index]" style="margin-right: 4px">{{
|
|
|
- item
|
|
|
- }}
|
|
|
- </div>
|
|
|
- <div>
|
|
|
- <el-button type="danger" icon="Delete" plain title="删除" circle
|
|
|
- @click="deleteMatchItem(index)"></el-button>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div v-else class="code">{{ hisWjwMatchEntity.wjwCode }}</div>
|
|
|
- </div>
|
|
|
- <el-button
|
|
|
- v-if="currentHisRow.wjwCode || (currentHisRow.chargeCode && currentHisRow.chargeCode.length > 0)"
|
|
|
- icon="Close" type="danger"
|
|
|
- @click="revokeMatch">
|
|
|
- 撤销匹配
|
|
|
- </el-button>
|
|
|
- <div style="margin-top: 4px"></div>
|
|
|
- <el-button v-if="!currentHisRow.wjwCode" icon="Check" type="success" @click="executeMatch"
|
|
|
- :disabled="manageMatchState">
|
|
|
- 匹配
|
|
|
- </el-button>
|
|
|
- <div style="margin-top: 4px"></div>
|
|
|
- <el-button v-if="hisWjwMatchEntity.label === 'surgery_chargeCode' && currentStatus === 1"
|
|
|
- icon="Download" type="warning" @click="exportExcel">
|
|
|
- 导出
|
|
|
- </el-button>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div style="height: 100%; width: 45%">
|
|
|
- <el-input prefix-icon="Search" placeholder="输入拼音、编码或名称以进行检索" v-model="wjwInput"
|
|
|
- clearable></el-input>
|
|
|
- <el-table
|
|
|
- ref="wjwTableRef"
|
|
|
- :data="filterWjwList.slice((wjwCurrentPage - 1) * 30, wjwCurrentPage * 30)"
|
|
|
- highlight-current-row
|
|
|
- stripe
|
|
|
- height="500"
|
|
|
- @row-click="handleClickWjwRow"
|
|
|
- v-loading="disableWjwTable"
|
|
|
- element-loading-background="rgba(0, 0, 0, 0.1)"
|
|
|
- element-loading-text="如需重新匹配,请先【撤销匹配】"
|
|
|
- element-loading-spinner="null"
|
|
|
- element-loading-custom-class="m-loading-text"
|
|
|
- >
|
|
|
- <el-table-column type="index" label="序号"></el-table-column>
|
|
|
- <el-table-column prop="code" label="编码" width="90"></el-table-column>
|
|
|
- <el-table-column prop="name" label="名称"></el-table-column>
|
|
|
- <el-table-column
|
|
|
- v-if="hisWjwMatchEntity.label === 'diagnose' || hisWjwMatchEntity.label === 'surgery'"
|
|
|
- prop="similarity" label="目标相似度"></el-table-column>
|
|
|
- </el-table>
|
|
|
- <el-pagination
|
|
|
- @current-change="handleWjwPageChange"
|
|
|
- :current-page="hisCurrentPage"
|
|
|
- :page-size="30"
|
|
|
- layout="total, prev, pager, next"
|
|
|
- :total="filterWjwList.length"
|
|
|
- style="margin-top: 5px"
|
|
|
- ></el-pagination>
|
|
|
+ <page-layer>
|
|
|
+ <template #header>
|
|
|
+ 数据源:
|
|
|
+ <el-radio-group v-model="hisWjwMatchEntity.label" @change="fetchDataByLabel">
|
|
|
+ <el-radio label="department">科别</el-radio>
|
|
|
+ <el-radio label="anaesthesia">麻醉方式</el-radio>
|
|
|
+ <el-radio label="diagnose">国临诊断</el-radio>
|
|
|
+ <el-radio label="surgery">国临手术操作</el-radio>
|
|
|
+ <el-radio label="surgery_chargeCode">手术收费项目</el-radio>
|
|
|
+ <el-radio label="si_diag">医保诊断</el-radio>
|
|
|
+ <el-radio label="si_surgery">医保手术</el-radio>
|
|
|
+ </el-radio-group>
|
|
|
+ <el-button style="margin-left: 50px" type="primary" icon="Refresh" @click="fetchDataByLabel">刷新数据
|
|
|
+ </el-button>
|
|
|
+ </template>
|
|
|
+ <template #main>
|
|
|
+ <div style="display: flex; height: 100%; width: 100%">
|
|
|
+ <div style="height: 100%; width: 45%">
|
|
|
+ <div style="display: flex">
|
|
|
+ <el-input prefix-icon="Search" placeholder="输入拼音、编码或名称以进行检索" v-model="hisInput"
|
|
|
+ clearable></el-input>
|
|
|
+ <el-select v-if="hisWjwMatchEntity.label === 'surgery_chargeCode'" v-model="currentStatus">
|
|
|
+ <el-option :value="0" label="未匹配"></el-option>
|
|
|
+ <el-option :value="1" label="已匹配"></el-option>
|
|
|
+ <el-option :value="2" label="全部"></el-option>
|
|
|
+ </el-select>
|
|
|
+ </div>
|
|
|
+ <el-table :data="filterHisList.slice((hisCurrentPage - 1) * 30, hisCurrentPage * 30)"
|
|
|
+ height="500" highlight-current-row stripe @row-click="handleClickHisRow">
|
|
|
+ <el-table-column type="index" label="序号"></el-table-column>
|
|
|
+ <el-table-column prop="code" label="编码" width="90"></el-table-column>
|
|
|
+ <el-table-column prop="name" label="名称"></el-table-column>
|
|
|
+ <el-table-column label="状态" width="100">
|
|
|
+ <template #default="scope">
|
|
|
+ <span v-html="makeMatchStatus(scope.row.wjwCode, scope.row.chargeCode)"></span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ </el-table>
|
|
|
+ <el-pagination
|
|
|
+ @current-change="handleHisPageChange"
|
|
|
+ :current-page="hisCurrentPage"
|
|
|
+ :page-size="30"
|
|
|
+ layout="total, prev, pager, next"
|
|
|
+ :total="filterHisList.length"
|
|
|
+ style="margin-top: 5px"
|
|
|
+ ></el-pagination>
|
|
|
+ </div>
|
|
|
+ <div class="match-info-box">
|
|
|
+ <div>
|
|
|
+ <div class="his">
|
|
|
+ <div>{{ hisMatchTextNote }}:</div>
|
|
|
+ <div class="code">{{ hisWjwMatchEntity.code }}</div>
|
|
|
+ </div>
|
|
|
+ <div class="wjw">
|
|
|
+ <div>{{ wjwMatchTextNote }}:</div>
|
|
|
+ <div v-if="hisWjwMatchEntity.label === 'surgery_chargeCode'">
|
|
|
+ <div v-for="(item,index) in hisWjwMatchEntity.chargeCode" :key="index"
|
|
|
+ style="display: flex; align-items: center; padding: 2px 0">
|
|
|
+ <div :title="hisWjwMatchEntity.chargeName[index]" style="margin-right: 4px">{{
|
|
|
+ item
|
|
|
+ }}
|
|
|
+ </div>
|
|
|
+ <div>
|
|
|
+ <el-button type="danger" icon="Delete" plain title="删除" circle
|
|
|
+ @click="deleteMatchItem(index)"></el-button>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
+ </div>
|
|
|
+ <div v-else class="code">{{ hisWjwMatchEntity.wjwCode }}</div>
|
|
|
</div>
|
|
|
- </template>
|
|
|
- </page-layer>
|
|
|
+ <el-button
|
|
|
+ v-if="currentHisRow.wjwCode || (currentHisRow.chargeCode && currentHisRow.chargeCode.length > 0)"
|
|
|
+ icon="Close" type="danger"
|
|
|
+ @click="revokeMatch">
|
|
|
+ 撤销匹配
|
|
|
+ </el-button>
|
|
|
+ <div style="margin-top: 4px"></div>
|
|
|
+ <el-button v-if="!currentHisRow.wjwCode" icon="Check" type="success" @click="executeMatch"
|
|
|
+ :disabled="manageMatchState">
|
|
|
+ 匹配
|
|
|
+ </el-button>
|
|
|
+ <div style="margin-top: 4px"></div>
|
|
|
+ <el-button v-if="hisWjwMatchEntity.label === 'surgery_chargeCode' && currentStatus === 1"
|
|
|
+ icon="Download" type="warning" @click="exportExcel">
|
|
|
+ 导出
|
|
|
+ </el-button>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div style="height: 100%; width: 45%">
|
|
|
+ <el-input prefix-icon="Search" placeholder="输入拼音、编码或名称以进行检索" v-model="wjwInput"
|
|
|
+ clearable></el-input>
|
|
|
+ <el-table
|
|
|
+ ref="wjwTableRef"
|
|
|
+ :data="filterWjwList.slice((wjwCurrentPage - 1) * 30, wjwCurrentPage * 30)"
|
|
|
+ highlight-current-row
|
|
|
+ stripe
|
|
|
+ height="500"
|
|
|
+ @row-click="handleClickWjwRow"
|
|
|
+ v-loading="disableWjwTable"
|
|
|
+ element-loading-background="rgba(0, 0, 0, 0.1)"
|
|
|
+ element-loading-text="如需重新匹配,请先【撤销匹配】"
|
|
|
+ element-loading-spinner="null"
|
|
|
+ element-loading-custom-class="m-loading-text"
|
|
|
+ >
|
|
|
+ <el-table-column type="index" label="序号"></el-table-column>
|
|
|
+ <el-table-column prop="code" label="编码" width="90"></el-table-column>
|
|
|
+ <el-table-column prop="name" label="名称"></el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ v-if="hisWjwMatchEntity.label === 'diagnose' || hisWjwMatchEntity.label === 'surgery'"
|
|
|
+ prop="similarity" label="目标相似度"></el-table-column>
|
|
|
+ </el-table>
|
|
|
+ <el-pagination
|
|
|
+ @current-change="handleWjwPageChange"
|
|
|
+ :current-page="hisCurrentPage"
|
|
|
+ :page-size="30"
|
|
|
+ layout="total, prev, pager, next"
|
|
|
+ :total="filterWjwList.length"
|
|
|
+ style="margin-top: 5px"
|
|
|
+ ></el-pagination>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ </page-layer>
|
|
|
</template>
|
|
|
|
|
|
<script setup name="HisWjwMatch">
|
|
@@ -141,196 +141,196 @@ const wjwList = ref([])
|
|
|
const currentHisRow = ref({})
|
|
|
const currentStatus = ref(0)
|
|
|
const hisWjwMatchEntity = reactive({
|
|
|
- code: null,
|
|
|
- wjwCode: null,
|
|
|
- chargeCode: [],
|
|
|
- chargeName: [],
|
|
|
- label: 'department',
|
|
|
+ code: null,
|
|
|
+ wjwCode: null,
|
|
|
+ chargeCode: [],
|
|
|
+ chargeName: [],
|
|
|
+ label: 'department',
|
|
|
})
|
|
|
|
|
|
const hisLabel = ['department', 'anaesthesia']
|
|
|
const hisMatchTextNote = computed(() => {
|
|
|
- return hisLabel.indexOf(hisWjwMatchEntity.label) !== -1 ? '当前HIS编码' : '当前国临编码'
|
|
|
+ return hisLabel.indexOf(hisWjwMatchEntity.label) !== -1 ? '当前HIS编码' : '当前国临编码'
|
|
|
})
|
|
|
const wjwMatchTextNote = computed(() => {
|
|
|
- if (hisWjwMatchEntity.label === 'surgery_chargeCode') {
|
|
|
- return '当前收费编码'
|
|
|
- }
|
|
|
- return hisLabel.indexOf(hisWjwMatchEntity.label) !== -1 ? '当前卫健委编码' : '当前医保编码'
|
|
|
+ if (hisWjwMatchEntity.label === 'surgery_chargeCode') {
|
|
|
+ return '当前收费编码'
|
|
|
+ }
|
|
|
+ return hisLabel.indexOf(hisWjwMatchEntity.label) !== -1 ? '当前卫健委编码' : '当前医保编码'
|
|
|
})
|
|
|
|
|
|
const disableWjwTable = computed(() => {
|
|
|
- return currentHisRow.value.wjwCode !== null && currentHisRow.value.wjwCode !== undefined
|
|
|
+ return currentHisRow.value.wjwCode !== null && currentHisRow.value.wjwCode !== undefined
|
|
|
})
|
|
|
|
|
|
const filterHisList = computed(() => {
|
|
|
- return hisList.value.filter((item) => {
|
|
|
- if (currentStatus.value === 0) {
|
|
|
- return (!item.chargeCode || item.chargeCode.length === 0) &&
|
|
|
- (item.code.indexOf(hisInput.value) > -1 || item.name.indexOf(hisInput.value) > -1 || item.pyCode.indexOf(hisInput.value.toUpperCase()) > -1)
|
|
|
- } else if (currentStatus.value === 1) {
|
|
|
- return (item.chargeCode && item.chargeCode.length > 0) &&
|
|
|
- (item.code.indexOf(hisInput.value) > -1 || item.name.indexOf(hisInput.value) > -1 || item.pyCode.indexOf(hisInput.value.toUpperCase()) > -1)
|
|
|
- } else {
|
|
|
- return item.code.indexOf(hisInput.value) > -1 || item.name.indexOf(hisInput.value) > -1 || item.pyCode.indexOf(hisInput.value.toUpperCase()) > -1
|
|
|
- }
|
|
|
- })
|
|
|
+ return hisList.value.filter((item) => {
|
|
|
+ if (currentStatus.value === 0) {
|
|
|
+ return (!item.chargeCode || item.chargeCode.length === 0) &&
|
|
|
+ (item.code.indexOf(hisInput.value) > -1 || item.name.indexOf(hisInput.value) > -1 || item.pyCode.indexOf(hisInput.value.toUpperCase()) > -1)
|
|
|
+ } else if (currentStatus.value === 1) {
|
|
|
+ return (item.chargeCode && item.chargeCode.length > 0) &&
|
|
|
+ (item.code.indexOf(hisInput.value) > -1 || item.name.indexOf(hisInput.value) > -1 || item.pyCode.indexOf(hisInput.value.toUpperCase()) > -1)
|
|
|
+ } else {
|
|
|
+ return item.code.indexOf(hisInput.value) > -1 || item.name.indexOf(hisInput.value) > -1 || item.pyCode.indexOf(hisInput.value.toUpperCase()) > -1
|
|
|
+ }
|
|
|
+ })
|
|
|
})
|
|
|
|
|
|
const hisCurrentPage = ref(1)
|
|
|
const wjwCurrentPage = ref(1)
|
|
|
const handleHisPageChange = (val) => {
|
|
|
- hisCurrentPage.value = val
|
|
|
+ hisCurrentPage.value = val
|
|
|
}
|
|
|
const handleWjwPageChange = (val) => {
|
|
|
- wjwCurrentPage.value = val
|
|
|
+ wjwCurrentPage.value = val
|
|
|
}
|
|
|
|
|
|
const filterWjwList = computed(() => {
|
|
|
- return wjwList.value.filter((item) => {
|
|
|
- return item.code.indexOf(wjwInput.value) > -1 || item.name.indexOf(wjwInput.value) > -1 || item.pyCode.indexOf(wjwInput.value.toUpperCase()) > -1
|
|
|
- })
|
|
|
+ return wjwList.value.filter((item) => {
|
|
|
+ return item.code.indexOf(wjwInput.value) > -1 || item.name.indexOf(wjwInput.value) > -1 || item.pyCode.indexOf(wjwInput.value.toUpperCase()) > -1
|
|
|
+ })
|
|
|
})
|
|
|
|
|
|
const fetchDataByLabel = () => {
|
|
|
- selectMatchableDataByLabel(hisWjwMatchEntity.label).then((res) => {
|
|
|
- hisList.value = res.hisList
|
|
|
- wjwList.value = res.wjwList
|
|
|
- currentHisRow.value = {}
|
|
|
- currentSimilarityKey.value = null
|
|
|
- hisWjwMatchEntity.code = null
|
|
|
- hisWjwMatchEntity.wjwCode = null
|
|
|
- hisWjwMatchEntity.chargeCode = []
|
|
|
- hisWjwMatchEntity.chargeName = []
|
|
|
- })
|
|
|
+ selectMatchableDataByLabel(hisWjwMatchEntity.label).then((res) => {
|
|
|
+ hisList.value = res.hisList
|
|
|
+ wjwList.value = res.wjwList
|
|
|
+ currentHisRow.value = {}
|
|
|
+ currentSimilarityKey.value = null
|
|
|
+ hisWjwMatchEntity.code = null
|
|
|
+ hisWjwMatchEntity.wjwCode = null
|
|
|
+ hisWjwMatchEntity.chargeCode = []
|
|
|
+ hisWjwMatchEntity.chargeName = []
|
|
|
+ })
|
|
|
}
|
|
|
|
|
|
const currentSimilarityKey = ref(null)
|
|
|
const handleClickHisRow = (row) => {
|
|
|
- if (row.code !== currentHisRow.value.code) {
|
|
|
- hisWjwMatchEntity.wjwCode = null
|
|
|
- hisWjwMatchEntity.chargeCode = []
|
|
|
- hisWjwMatchEntity.chargeName = []
|
|
|
- hisWjwMatchEntity.code = row.code
|
|
|
- currentHisRow.value = row
|
|
|
- if (row.wjwCode) {
|
|
|
- hisWjwMatchEntity.wjwCode = row.wjwCode
|
|
|
- for (let i = 0; i < wjwList.value.length; i++) {
|
|
|
- if (wjwList.value[i].code === row.wjwCode) {
|
|
|
- wjwInput.value = wjwList.value[i].name
|
|
|
- wjwTableRef.value.setCurrentRow(wjwList.value[i])
|
|
|
- break
|
|
|
- }
|
|
|
- }
|
|
|
- } else if (row.chargeCode) {
|
|
|
- hisWjwMatchEntity.chargeCode = row.chargeCode
|
|
|
- hisWjwMatchEntity.chargeName = row.chargeName
|
|
|
- } else {
|
|
|
- if (hisWjwMatchEntity.label === 'department' || hisWjwMatchEntity.label === 'anaesthesia') {
|
|
|
- wjwInput.value = row.name.length > 3 ? row.name.substring(0, 2) : row.name.substring(0, 1)
|
|
|
- } else if (hisWjwMatchEntity.label === 'diagnose' || hisWjwMatchEntity.label === 'surgery') {
|
|
|
- if (row.code !== currentSimilarityKey.value) {
|
|
|
- currentSimilarityKey.value = row.code
|
|
|
- const key = '%' + row.code.split('.')[0].replace('*', '') + '%'
|
|
|
- fetchSimilarities(hisWjwMatchEntity.label, row.name, key).then((res) => {
|
|
|
- wjwList.value = res
|
|
|
- })
|
|
|
- }
|
|
|
- }
|
|
|
+ if (row.code !== currentHisRow.value.code) {
|
|
|
+ hisWjwMatchEntity.wjwCode = null
|
|
|
+ hisWjwMatchEntity.chargeCode = []
|
|
|
+ hisWjwMatchEntity.chargeName = []
|
|
|
+ hisWjwMatchEntity.code = row.code
|
|
|
+ currentHisRow.value = row
|
|
|
+ if (row.wjwCode) {
|
|
|
+ hisWjwMatchEntity.wjwCode = row.wjwCode
|
|
|
+ for (let i = 0; i < wjwList.value.length; i++) {
|
|
|
+ if (wjwList.value[i].code === row.wjwCode) {
|
|
|
+ wjwInput.value = wjwList.value[i].name
|
|
|
+ wjwTableRef.value.setCurrentRow(wjwList.value[i])
|
|
|
+ break
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else if (row.chargeCode) {
|
|
|
+ hisWjwMatchEntity.chargeCode = row.chargeCode
|
|
|
+ hisWjwMatchEntity.chargeName = row.chargeName
|
|
|
+ } else {
|
|
|
+ if (hisWjwMatchEntity.label === 'department' || hisWjwMatchEntity.label === 'anaesthesia') {
|
|
|
+ wjwInput.value = row.name.length > 3 ? row.name.substring(0, 2) : row.name.substring(0, 1)
|
|
|
+ } else if (hisWjwMatchEntity.label === 'diagnose' || hisWjwMatchEntity.label === 'surgery') {
|
|
|
+ if (row.code !== currentSimilarityKey.value) {
|
|
|
+ currentSimilarityKey.value = row.code
|
|
|
+ const key = '%' + row.code.split('.')[0].replace('*', '') + '%'
|
|
|
+ fetchSimilarities(hisWjwMatchEntity.label, row.name, key).then((res) => {
|
|
|
+ wjwList.value = res
|
|
|
+ })
|
|
|
}
|
|
|
+ }
|
|
|
}
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
const handleClickWjwRow = (row) => {
|
|
|
- if (hisWjwMatchEntity.label === 'surgery_chargeCode') {
|
|
|
- if (hisWjwMatchEntity.chargeCode.indexOf(row.code) === -1) {
|
|
|
- hisWjwMatchEntity.chargeCode.push(row.code)
|
|
|
- hisWjwMatchEntity.chargeName.push(row.name)
|
|
|
- }
|
|
|
- } else {
|
|
|
- hisWjwMatchEntity.wjwCode = row.code
|
|
|
- hisWjwMatchEntity.wjwName = row.name
|
|
|
+ if (hisWjwMatchEntity.label === 'surgery_chargeCode') {
|
|
|
+ if (hisWjwMatchEntity.chargeCode.indexOf(row.code) === -1) {
|
|
|
+ hisWjwMatchEntity.chargeCode.push(row.code)
|
|
|
+ hisWjwMatchEntity.chargeName.push(row.name)
|
|
|
}
|
|
|
+ } else {
|
|
|
+ hisWjwMatchEntity.wjwCode = row.code
|
|
|
+ hisWjwMatchEntity.wjwName = row.name
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
const deleteMatchItem = (index) => {
|
|
|
- hisWjwMatchEntity.chargeCode.splice(index, 1)
|
|
|
- hisWjwMatchEntity.chargeName.splice(index, 1)
|
|
|
+ hisWjwMatchEntity.chargeCode.splice(index, 1)
|
|
|
+ hisWjwMatchEntity.chargeName.splice(index, 1)
|
|
|
}
|
|
|
|
|
|
const makeMatchStatus = (wjwCode, chargeCode) => {
|
|
|
- return (wjwCode || (chargeCode && chargeCode.length > 0)) ? '<span style="color:green">已匹配</span>' : '<span style="color:red">未匹配</span>'
|
|
|
+ return (wjwCode || (chargeCode && chargeCode.length > 0)) ? '<span style="color:green">已匹配</span>' : '<span style="color:red">未匹配</span>'
|
|
|
}
|
|
|
|
|
|
const manageMatchState = computed(() => {
|
|
|
- return hisWjwMatchEntity.wjwCode === null && hisWjwMatchEntity.chargeCode.length === 0
|
|
|
+ return hisWjwMatchEntity.wjwCode === null && hisWjwMatchEntity.chargeCode.length === 0
|
|
|
})
|
|
|
|
|
|
const executeMatch = () => {
|
|
|
- if (hisWjwMatchEntity.label === 'department' || hisWjwMatchEntity.label === 'anaesthesia') {
|
|
|
- hisWjwMatchEntity.targetCodeColumn = 'wjw_code'
|
|
|
- hisWjwMatchEntity.targetNameColumn = null
|
|
|
- } else if (hisWjwMatchEntity.label === 'surgery_chargeCode') {
|
|
|
- hisWjwMatchEntity.targetCodeColumn = 'charge_code'
|
|
|
- hisWjwMatchEntity.targetNameColumn = 'charge_name'
|
|
|
- } else {
|
|
|
- hisWjwMatchEntity.targetCodeColumn = 'yb_code'
|
|
|
- hisWjwMatchEntity.targetNameColumn = 'yb_name'
|
|
|
- }
|
|
|
- executeMatchAction(hisWjwMatchEntity).then((res) => {
|
|
|
- currentHisRow.value.wjwCode = hisWjwMatchEntity.wjwCode
|
|
|
- currentHisRow.value.chargeCode = hisWjwMatchEntity.chargeCode
|
|
|
- currentHisRow.value.chargeName = hisWjwMatchEntity.chargeName
|
|
|
- ElMessage({
|
|
|
- message: res,
|
|
|
- type: 'success',
|
|
|
- duration: 2500,
|
|
|
- showClose: true,
|
|
|
- })
|
|
|
+ if (hisWjwMatchEntity.label === 'department' || hisWjwMatchEntity.label === 'anaesthesia') {
|
|
|
+ hisWjwMatchEntity.targetCodeColumn = 'wjw_code'
|
|
|
+ hisWjwMatchEntity.targetNameColumn = null
|
|
|
+ } else if (hisWjwMatchEntity.label === 'surgery_chargeCode') {
|
|
|
+ hisWjwMatchEntity.targetCodeColumn = 'charge_code'
|
|
|
+ hisWjwMatchEntity.targetNameColumn = 'charge_name'
|
|
|
+ } else {
|
|
|
+ hisWjwMatchEntity.targetCodeColumn = 'yb_code'
|
|
|
+ hisWjwMatchEntity.targetNameColumn = 'yb_name'
|
|
|
+ }
|
|
|
+ executeMatchAction(hisWjwMatchEntity).then((res) => {
|
|
|
+ currentHisRow.value.wjwCode = hisWjwMatchEntity.wjwCode
|
|
|
+ currentHisRow.value.chargeCode = hisWjwMatchEntity.chargeCode
|
|
|
+ currentHisRow.value.chargeName = hisWjwMatchEntity.chargeName
|
|
|
+ ElMessage({
|
|
|
+ message: res,
|
|
|
+ type: 'success',
|
|
|
+ duration: 2500,
|
|
|
+ showClose: true,
|
|
|
})
|
|
|
+ })
|
|
|
}
|
|
|
|
|
|
const revokeMatch = () => {
|
|
|
- hisWjwMatchEntity.wjwCode = null
|
|
|
- hisWjwMatchEntity.wjwName = null
|
|
|
- if (hisWjwMatchEntity.label === 'department' || hisWjwMatchEntity.label === 'anaesthesia') {
|
|
|
- hisWjwMatchEntity.targetCodeColumn = 'wjw_code'
|
|
|
- hisWjwMatchEntity.targetNameColumn = null
|
|
|
- } else if (hisWjwMatchEntity.label === 'surgery_chargeCode') {
|
|
|
- hisWjwMatchEntity.chargeCode = []
|
|
|
- hisWjwMatchEntity.chargeName = []
|
|
|
- hisWjwMatchEntity.targetCodeColumn = 'charge_code'
|
|
|
- hisWjwMatchEntity.targetNameColumn = 'charge_name'
|
|
|
- } else {
|
|
|
- hisWjwMatchEntity.targetCodeColumn = 'yb_code'
|
|
|
- hisWjwMatchEntity.targetNameColumn = 'yb_name'
|
|
|
- }
|
|
|
- executeMatchAction(hisWjwMatchEntity).then((res) => {
|
|
|
- currentHisRow.value.wjwCode = null
|
|
|
- currentHisRow.value.chargeCode = []
|
|
|
- currentHisRow.value.chargeName = []
|
|
|
- wjwTableRef.value.setCurrentRow(null)
|
|
|
- ElMessage({
|
|
|
- message: res,
|
|
|
- type: 'success',
|
|
|
- duration: 2500,
|
|
|
- showClose: true,
|
|
|
- })
|
|
|
+ hisWjwMatchEntity.wjwCode = null
|
|
|
+ hisWjwMatchEntity.wjwName = null
|
|
|
+ if (hisWjwMatchEntity.label === 'department' || hisWjwMatchEntity.label === 'anaesthesia') {
|
|
|
+ hisWjwMatchEntity.targetCodeColumn = 'wjw_code'
|
|
|
+ hisWjwMatchEntity.targetNameColumn = null
|
|
|
+ } else if (hisWjwMatchEntity.label === 'surgery_chargeCode') {
|
|
|
+ hisWjwMatchEntity.chargeCode = []
|
|
|
+ hisWjwMatchEntity.chargeName = []
|
|
|
+ hisWjwMatchEntity.targetCodeColumn = 'charge_code'
|
|
|
+ hisWjwMatchEntity.targetNameColumn = 'charge_name'
|
|
|
+ } else {
|
|
|
+ hisWjwMatchEntity.targetCodeColumn = 'yb_code'
|
|
|
+ hisWjwMatchEntity.targetNameColumn = 'yb_name'
|
|
|
+ }
|
|
|
+ executeMatchAction(hisWjwMatchEntity).then((res) => {
|
|
|
+ currentHisRow.value.wjwCode = null
|
|
|
+ currentHisRow.value.chargeCode = []
|
|
|
+ currentHisRow.value.chargeName = []
|
|
|
+ wjwTableRef.value.setCurrentRow(null)
|
|
|
+ ElMessage({
|
|
|
+ message: res,
|
|
|
+ type: 'success',
|
|
|
+ duration: 2500,
|
|
|
+ showClose: true,
|
|
|
})
|
|
|
+ })
|
|
|
}
|
|
|
|
|
|
const exportExcel = () => {
|
|
|
- const fields = {
|
|
|
- code: '手术操作编码',
|
|
|
- name: '手术操作名称',
|
|
|
- chargeCodeString: '匹配收费编码',
|
|
|
- chargeNameString: '匹配收费名称',
|
|
|
- }
|
|
|
- Export(filterHisList.value, fields, '已匹配数据')
|
|
|
+ const fields = {
|
|
|
+ code: '手术操作编码',
|
|
|
+ name: '手术操作名称',
|
|
|
+ chargeCodeString: '匹配收费编码',
|
|
|
+ chargeNameString: '匹配收费名称',
|
|
|
+ }
|
|
|
+ Export(filterHisList.value, fields, '已匹配数据')
|
|
|
}
|
|
|
|
|
|
onMounted(() => {
|
|
|
- fetchDataByLabel()
|
|
|
+ fetchDataByLabel()
|
|
|
})
|
|
|
</script>
|
|
|
|