门诊换卡优化
This commit is contained in:
@@ -252,12 +252,10 @@ public class GenController extends BaseController {
|
|||||||
InputStream is = file.getInputStream();
|
InputStream is = file.getInputStream();
|
||||||
Workbook wb = WorkbookFactory.create(is);
|
Workbook wb = WorkbookFactory.create(is);
|
||||||
StringBuilder sb = new StringBuilder();
|
StringBuilder sb = new StringBuilder();
|
||||||
|
|
||||||
// 遍历每个sheet页(每个表)
|
// 遍历每个sheet页(每个表)
|
||||||
for (int i = 0; i < wb.getNumberOfSheets(); i++) {
|
for (int i = 0; i < wb.getNumberOfSheets(); i++) {
|
||||||
sb.append("-- ----------------------------------------------------------------------------------\n");
|
sb.append("-- ----------------------------------------------------------------------------------\n");
|
||||||
Sheet st = wb.getSheetAt(i);
|
Sheet st = wb.getSheetAt(i);
|
||||||
|
|
||||||
// 从第一行读取表名表注释
|
// 从第一行读取表名表注释
|
||||||
Row row0 = st.getRow(0);// 表名
|
Row row0 = st.getRow(0);// 表名
|
||||||
String tableName = row0.getCell(4).toString();// 表名
|
String tableName = row0.getCell(4).toString();// 表名
|
||||||
|
|||||||
@@ -310,7 +310,7 @@ const handleCurrentChange = (newPage) => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 查询患者信息
|
// 查询患者信息
|
||||||
const handlePatientSearch = async () => {
|
const handlePatientSearch = async () => {
|
||||||
// 检查是否至少填写了一个查询条件
|
// 检查是否至少填写了一个查询条件
|
||||||
if (!searchForm.patientName && !searchForm.idCard && !searchForm.phoneNumber) {
|
if (!searchForm.patientName && !searchForm.idCard && !searchForm.phoneNumber) {
|
||||||
ElMessage.warning('请至少输入一个查询条件')
|
ElMessage.warning('请至少输入一个查询条件')
|
||||||
@@ -338,7 +338,7 @@ const handleCurrentChange = (newPage) => {
|
|||||||
total.value = response.data.total || 0
|
total.value = response.data.total || 0
|
||||||
selectedPatient.value = null // 查询时重置选中状态
|
selectedPatient.value = null // 查询时重置选中状态
|
||||||
|
|
||||||
// 如果只有一条记录且是第一页,自动选中
|
// 如果只有一条记录且是第一页,自动显示患者信息
|
||||||
if (response.data.records.length === 1 && currentPage.value === 1) {
|
if (response.data.records.length === 1 && currentPage.value === 1) {
|
||||||
const patient = response.data.records[0]
|
const patient = response.data.records[0]
|
||||||
// 确保patient对象中同时包含id和patientId字段
|
// 确保patient对象中同时包含id和patientId字段
|
||||||
@@ -346,9 +346,21 @@ const handleCurrentChange = (newPage) => {
|
|||||||
patient.patientId = patient.id;
|
patient.patientId = patient.id;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 设置为选中状态,但不自动确认
|
// 直接构建并设置患者信息,无需用户手动确认
|
||||||
selectedPatient.value = patient
|
const outpatientNo = patient.identifierNo || patient.cardNo || patient.card_number || patient.就诊卡号 || patient.outpatientNumber || patient.outpatientNo || patient.门诊号码 || patient.卡号 || patient.card || patient.patientNo || patient.patient_id;
|
||||||
ElMessage.warning('已自动选中唯一患者,请点击确定')
|
const gender = patient.genderEnum_enumText || patient.gender || patient.sex || patient.性别 || patient.xb || patient.sexCode || patient.GENDER || patient.SEX;
|
||||||
|
|
||||||
|
patientInfo.value = {
|
||||||
|
outpatientNo: outpatientNo,
|
||||||
|
patientName: patient.patientName || patient.name,
|
||||||
|
idCard: patient.idCard || patient.id_card || patient.idNo,
|
||||||
|
phoneNumber: patient.phoneNumber || patient.phone || patient.mobile || patient.mobilePhone,
|
||||||
|
gender: gender,
|
||||||
|
age: patient.age,
|
||||||
|
patientId: patient.patientId || patient.id || outpatientNo
|
||||||
|
}
|
||||||
|
|
||||||
|
ElMessage.success('已自动选中唯一患者')
|
||||||
} else {
|
} else {
|
||||||
// 如果有多条记录或不是第一页,显示患者列表供选择
|
// 如果有多条记录或不是第一页,显示患者列表供选择
|
||||||
// 确保每条患者记录都包含patientId字段,优先使用id字段
|
// 确保每条患者记录都包含patientId字段,优先使用id字段
|
||||||
@@ -359,7 +371,7 @@ const handleCurrentChange = (newPage) => {
|
|||||||
showPatientList.value = true
|
showPatientList.value = true
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// 无数据时重置总条数
|
// 无数据时重置总条数
|
||||||
total.value = 0
|
total.value = 0
|
||||||
ElMessage.warning('未查询到患者信息')
|
ElMessage.warning('未查询到患者信息')
|
||||||
}
|
}
|
||||||
@@ -368,9 +380,8 @@ const handleCurrentChange = (newPage) => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
// 使用公共错误处理函数处理错误信息
|
// 错误处理
|
||||||
const errorMessage = processErrorMessage(error, '查询失败,请稍后重试');
|
ElMessage.error('查询失败,请稍后重试');
|
||||||
ElMessage.error(errorMessage);
|
|
||||||
// 可以在这里添加错误监控或日志记录
|
// 可以在这里添加错误监控或日志记录
|
||||||
console.error('患者查询错误:', error);
|
console.error('患者查询错误:', error);
|
||||||
} finally {
|
} finally {
|
||||||
@@ -493,15 +504,7 @@ onMounted(() => {
|
|||||||
document.addEventListener('keydown', handleKeydown)
|
document.addEventListener('keydown', handleKeydown)
|
||||||
|
|
||||||
// 设置默认患者数据,方便用户直接进行换卡操作
|
// 设置默认患者数据,方便用户直接进行换卡操作
|
||||||
patientInfo.value = {
|
|
||||||
outpatientNo: '20231001001',
|
|
||||||
patientName: '张三',
|
|
||||||
idCard: '110101199001011234',
|
|
||||||
phoneNumber: '13800138000',
|
|
||||||
gender: '男',
|
|
||||||
age: '33岁',
|
|
||||||
patientId: '1001'
|
|
||||||
}
|
|
||||||
})
|
})
|
||||||
|
|
||||||
// 组件卸载时移除键盘事件监听
|
// 组件卸载时移除键盘事件监听
|
||||||
@@ -511,7 +514,7 @@ onUnmounted(() => {
|
|||||||
|
|
||||||
// 移除了调试功能
|
// 移除了调试功能
|
||||||
|
|
||||||
// 选择患者(仅设置选中状态)
|
// 选择患者(仅设置选中状态)
|
||||||
const selectPatient = (row) => {
|
const selectPatient = (row) => {
|
||||||
selectedPatient.value = row
|
selectedPatient.value = row
|
||||||
ElMessage.warning('已选择患者,请点击确定')
|
ElMessage.warning('已选择患者,请点击确定')
|
||||||
@@ -547,7 +550,7 @@ const confirmSelectPatient = () => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 重置表单
|
// 重置表单
|
||||||
const resetForm = () => {
|
const resetForm = () => {
|
||||||
searchForm.patientName = ''
|
searchForm.patientName = ''
|
||||||
searchForm.idCard = ''
|
searchForm.idCard = ''
|
||||||
searchForm.phoneNumber = ''
|
searchForm.phoneNumber = ''
|
||||||
@@ -562,8 +565,8 @@ const confirmSelectPatient = () => {
|
|||||||
total.value = 0
|
total.value = 0
|
||||||
}
|
}
|
||||||
|
|
||||||
// 格式化日期为YYYY-MM-DD格式
|
// 格式化日期为YYYY-MM-DD格式
|
||||||
const formatDate = (date) => {
|
const formatDate = (date) => {
|
||||||
if (!date) return ''
|
if (!date) return ''
|
||||||
// 如果已经是YYYY-MM-DD格式,直接返回
|
// 如果已经是YYYY-MM-DD格式,直接返回
|
||||||
if (typeof date === 'string' && /^\d{4}-\d{2}-\d{2}$/.test(date)) {
|
if (typeof date === 'string' && /^\d{4}-\d{2}-\d{2}$/.test(date)) {
|
||||||
|
|||||||
@@ -1207,7 +1207,7 @@ function getListInfo(addNewRow) {
|
|||||||
: 0);
|
: 0);
|
||||||
// 从后端获取数据时,将后端的耗材类型(2)转换为前端显示的耗材类型(4)
|
// 从后端获取数据时,将后端的耗材类型(2)转换为前端显示的耗材类型(4)
|
||||||
// 后端接口中:1=药品, 2=耗材, 3=诊疗
|
// 后端接口中:1=药品, 2=耗材, 3=诊疗
|
||||||
// 前端显示中:1=西药, 2=中成药, 3=诊疗, 4=耗材
|
// 前端显示中:1=西药, 2=中成药, 3=诊疗, 4=耗材
|
||||||
let displayAdviceType = parsedContent.adviceType !== undefined ? Number(parsedContent.adviceType) : (item.adviceType !== undefined ? Number(item.adviceType) : undefined);
|
let displayAdviceType = parsedContent.adviceType !== undefined ? Number(parsedContent.adviceType) : (item.adviceType !== undefined ? Number(item.adviceType) : undefined);
|
||||||
if (displayAdviceType === 2 && (parsedContent.deviceId || parsedContent.deviceName || item.deviceId || item.deviceName)) {
|
if (displayAdviceType === 2 && (parsedContent.deviceId || parsedContent.deviceName || item.deviceId || item.deviceName)) {
|
||||||
// 如果是耗材(adviceType=2 且有deviceId或deviceName),转换为前端显示的4
|
// 如果是耗材(adviceType=2 且有deviceId或deviceName),转换为前端显示的4
|
||||||
|
|||||||
Reference in New Issue
Block a user