|
|
@@ -7,15 +7,17 @@
|
|
|
<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-group>
|
|
|
<el-button style="margin-left: 50px" type="primary" icon="Refresh" @click="fetchDataByLabel">刷新数据</el-button>
|
|
|
</template>
|
|
|
<template #main>
|
|
|
- <el-row>
|
|
|
- <el-col :span="9">
|
|
|
- <el-input prefix-icon="Search" placeholder="输入拼音、编码或名称以进行检索" v-model="hisInput" clearable></el-input>
|
|
|
- <div style="height: 8px"></div>
|
|
|
- <el-table :data="filterHisList" height="500" highlight-current-row stripe @row-click="handleClickHisRow">
|
|
|
+ <div style="display: flex; height: 100%; width: 100%">
|
|
|
+ <div style="height: 100%; width: 45%">
|
|
|
+ <el-input prefix-icon="Search" placeholder="输入拼音、编码或名称以进行检索" v-model="hisInput"
|
|
|
+ clearable></el-input>
|
|
|
+ <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>
|
|
|
@@ -25,54 +27,69 @@
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
</el-table>
|
|
|
- </el-col>
|
|
|
- <el-col :span="3">
|
|
|
- <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 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>
|
|
|
+ <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 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>
|
|
|
</div>
|
|
|
- </el-col>
|
|
|
- <el-col :span="8">
|
|
|
- <el-input prefix-icon="Search" placeholder="输入拼音、编码或名称以进行检索" v-model="wjwInput" clearable></el-input>
|
|
|
- <div style="margin-top: 8px" class="m-wjwlist-box">
|
|
|
- <el-table
|
|
|
- ref="wjwTableRef"
|
|
|
- :data="filterWjwList"
|
|
|
- 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>
|
|
|
- </div>
|
|
|
- </el-col>
|
|
|
- </el-row>
|
|
|
+ </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">
|
|
|
-import { selectMatchableDataByLabel, executeMatchAction, fetchSimilarities } from '@/api/dictionary/his-wjw-match'
|
|
|
-import { ElMessage } from 'element-plus'
|
|
|
+import {selectMatchableDataByLabel, executeMatchAction, fetchSimilarities} from '@/api/dictionary/his-wjw-match'
|
|
|
+import {ElMessage} from 'element-plus'
|
|
|
import PageLayer from "@/layout/PageLayer";
|
|
|
|
|
|
let wjwTableRef = $ref(null)
|
|
|
@@ -95,6 +112,9 @@ const hisMatchTextNote = computed(() => {
|
|
|
return hisLabel.indexOf(hisWjwMatchEntity.label) !== -1 ? '当前HIS编码' : '当前国临编码'
|
|
|
})
|
|
|
const wjwMatchTextNote = computed(() => {
|
|
|
+ if (hisWjwMatchEntity.label === 'surgery_chargeCode') {
|
|
|
+ return '当前收费编码'
|
|
|
+ }
|
|
|
return hisLabel.indexOf(hisWjwMatchEntity.label) !== -1 ? '当前卫健委编码' : '当前医保编码'
|
|
|
})
|
|
|
|
|
|
@@ -108,6 +128,15 @@ const filterHisList = computed(() => {
|
|
|
})
|
|
|
})
|
|
|
|
|
|
+const hisCurrentPage = ref(1)
|
|
|
+const wjwCurrentPage = ref(1)
|
|
|
+const handleHisPageChange = (val) => {
|
|
|
+ hisCurrentPage.value = val
|
|
|
+}
|
|
|
+const handleWjwPageChange = (val) => {
|
|
|
+ wjwCurrentPage.value = val
|
|
|
+}
|
|
|
+
|
|
|
const filterWjwList = computed(() => {
|
|
|
return wjwList.filter((item) => {
|
|
|
return item.code.indexOf(wjwInput) > -1 || item.name.indexOf(wjwInput) > -1 || item.pyCode.indexOf(wjwInput.toUpperCase()) > -1
|
|
|
@@ -143,7 +172,7 @@ const handleClickHisRow = (row) => {
|
|
|
} else {
|
|
|
if (hisWjwMatchEntity.label === 'department' || hisWjwMatchEntity.label === 'anaesthesia') {
|
|
|
wjwInput = row.name.length > 3 ? row.name.substring(0, 2) : row.name.substring(0, 1)
|
|
|
- } else {
|
|
|
+ } else if (hisWjwMatchEntity.label === 'diagnose' || hisWjwMatchEntity.label === 'surgery') {
|
|
|
if (row.code !== currentSimilaratyKey) {
|
|
|
currentSimilaratyKey = row.code
|
|
|
const key = '%' + row.code.split('.')[0].replace('*', '') + '%'
|
|
|
@@ -172,10 +201,13 @@ const manageMatchState = computed(() => {
|
|
|
const executeMatch = () => {
|
|
|
if (hisWjwMatchEntity.label === 'department' || hisWjwMatchEntity.label === 'anaesthesia') {
|
|
|
hisWjwMatchEntity.targetCodeColumn = 'wjw_code'
|
|
|
- } else {
|
|
|
+ } else if (hisWjwMatchEntity.label === 'surgery_chargeCode') {
|
|
|
+ hisWjwMatchEntity.targetCodeColumn = 'charge_code'
|
|
|
+ }else {
|
|
|
hisWjwMatchEntity.targetCodeColumn = 'yb_code'
|
|
|
hisWjwMatchEntity.targetNameColumn = 'yb_name'
|
|
|
}
|
|
|
+ console.log(hisWjwMatchEntity)
|
|
|
executeMatchAction(hisWjwMatchEntity).then((res) => {
|
|
|
currentHisRow.wjwCode = hisWjwMatchEntity.wjwCode
|
|
|
ElMessage({
|
|
|
@@ -192,6 +224,8 @@ const revokeMatch = () => {
|
|
|
hisWjwMatchEntity.wjwName = null
|
|
|
if (hisWjwMatchEntity.label === 'department' || hisWjwMatchEntity.label === 'anaesthesia') {
|
|
|
hisWjwMatchEntity.targetCodeColumn = 'wjw_code'
|
|
|
+ } else if (hisWjwMatchEntity.label === 'surgery_chargeCode') {
|
|
|
+ hisWjwMatchEntity.targetCodeColumn = 'charge_code'
|
|
|
} else {
|
|
|
hisWjwMatchEntity.targetCodeColumn = 'yb_code'
|
|
|
hisWjwMatchEntity.targetNameColumn = 'yb_name'
|
|
|
@@ -219,16 +253,19 @@ onMounted(() => {
|
|
|
display: flex;
|
|
|
align-items: center;
|
|
|
justify-content: center;
|
|
|
+
|
|
|
.his {
|
|
|
color: green;
|
|
|
padding-bottom: 6px;
|
|
|
}
|
|
|
+
|
|
|
.wjw {
|
|
|
color: blue;
|
|
|
padding-top: 7px;
|
|
|
border-top: 1px solid gray;
|
|
|
margin-bottom: 12px;
|
|
|
}
|
|
|
+
|
|
|
.code {
|
|
|
font-weight: bold;
|
|
|
font-size: 14px;
|