|
|
@@ -23,7 +23,7 @@
|
|
|
<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)"></span>
|
|
|
+ <span v-html="makeMatchStatus(scope.row.wjwCode, scope.row.chargeCode)"></span>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
</el-table>
|
|
|
@@ -44,10 +44,17 @@
|
|
|
</div>
|
|
|
<div class="wjw">
|
|
|
<div>{{ wjwMatchTextNote }}:</div>
|
|
|
- <div class="code">{{ hisWjwMatchEntity.wjwCode }}</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" icon="Close" type="danger" @click="revokeMatch">撤销匹配</el-button>
|
|
|
- <el-button v-else icon="Check" type="success" @click="executeMatch" :disabled="manageMatchState">匹配
|
|
|
+ <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>
|
|
|
</div>
|
|
|
@@ -104,6 +111,8 @@ let currentHisRow = $ref({})
|
|
|
const hisWjwMatchEntity = reactive({
|
|
|
code: null,
|
|
|
wjwCode: null,
|
|
|
+ chargeCode: [],
|
|
|
+ chargeName: [],
|
|
|
label: 'department',
|
|
|
})
|
|
|
|
|
|
@@ -148,18 +157,22 @@ const fetchDataByLabel = () => {
|
|
|
hisList = res.hisList
|
|
|
wjwList = res.wjwList
|
|
|
currentHisRow = {}
|
|
|
- currentSimilaratyKey = null
|
|
|
+ currentSimilarityKey = null
|
|
|
hisWjwMatchEntity.code = null
|
|
|
hisWjwMatchEntity.wjwCode = null
|
|
|
+ hisWjwMatchEntity.chargeCode = []
|
|
|
+ hisWjwMatchEntity.chargeName = []
|
|
|
})
|
|
|
}
|
|
|
|
|
|
-let currentSimilaratyKey = $ref(null)
|
|
|
+let currentSimilarityKey = $ref(null)
|
|
|
const handleClickHisRow = (row) => {
|
|
|
if (row.code !== currentHisRow.code) {
|
|
|
hisWjwMatchEntity.wjwCode = null
|
|
|
- currentHisRow = row
|
|
|
+ hisWjwMatchEntity.chargeCode = []
|
|
|
+ hisWjwMatchEntity.chargeName = []
|
|
|
hisWjwMatchEntity.code = row.code
|
|
|
+ currentHisRow = row
|
|
|
if (row.wjwCode) {
|
|
|
hisWjwMatchEntity.wjwCode = row.wjwCode
|
|
|
for (let i = 0; i < wjwList.length; i++) {
|
|
|
@@ -169,12 +182,15 @@ const handleClickHisRow = (row) => {
|
|
|
break
|
|
|
}
|
|
|
}
|
|
|
+ } else if (row.chargeCode) {
|
|
|
+ hisWjwMatchEntity.chargeCode = row.chargeCode
|
|
|
+ hisWjwMatchEntity.chargeName = row.chargeName
|
|
|
} else {
|
|
|
if (hisWjwMatchEntity.label === 'department' || hisWjwMatchEntity.label === 'anaesthesia') {
|
|
|
wjwInput = 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 !== currentSimilaratyKey) {
|
|
|
- currentSimilaratyKey = row.code
|
|
|
+ if (row.code !== currentSimilarityKey) {
|
|
|
+ currentSimilarityKey = row.code
|
|
|
const key = '%' + row.code.split('.')[0].replace('*', '') + '%'
|
|
|
fetchSimilarities(hisWjwMatchEntity.label, row.name, key).then((res) => {
|
|
|
wjwList = res
|
|
|
@@ -186,29 +202,43 @@ const handleClickHisRow = (row) => {
|
|
|
}
|
|
|
|
|
|
const handleClickWjwRow = (row) => {
|
|
|
- hisWjwMatchEntity.wjwCode = row.code
|
|
|
- hisWjwMatchEntity.wjwName = row.name
|
|
|
+ if (hisWjwMatchEntity.label === 'surgery_chargeCode') {
|
|
|
+ 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)
|
|
|
}
|
|
|
|
|
|
-const makeMatchStatus = (wjwCode) => {
|
|
|
- return null === wjwCode ? '<span style="color:red">未匹配</span>' : '<span style="color:green">已匹配</span>'
|
|
|
+const makeMatchStatus = (wjwCode, chargeCode) => {
|
|
|
+ return (wjwCode || (chargeCode && chargeCode.length > 0)) ? '<span style="color:green">已匹配</span>' : '<span style="color:red">未匹配</span>'
|
|
|
}
|
|
|
|
|
|
const manageMatchState = computed(() => {
|
|
|
- return hisWjwMatchEntity.code === null || hisWjwMatchEntity.wjwCode === null
|
|
|
+ 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.wjwCode = hisWjwMatchEntity.wjwCode
|
|
|
+ currentHisRow.chargeCode = hisWjwMatchEntity.chargeCode
|
|
|
+ currentHisRow.chargeName = hisWjwMatchEntity.chargeName
|
|
|
ElMessage({
|
|
|
message: res,
|
|
|
type: 'success',
|
|
|
@@ -223,14 +253,20 @@ const revokeMatch = () => {
|
|
|
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.wjwCode = null
|
|
|
+ currentHisRow.chargeCode = []
|
|
|
+ currentHisRow.chargeName = []
|
|
|
wjwTableRef.setCurrentRow(null)
|
|
|
ElMessage({
|
|
|
message: res,
|
|
|
@@ -268,6 +304,10 @@ onMounted(() => {
|
|
|
.code {
|
|
|
font-weight: bold;
|
|
|
font-size: 14px;
|
|
|
+ padding: 2px 0;
|
|
|
+ &:hover {
|
|
|
+ border: 1px solid green;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|