门诊换卡优化
This commit is contained in:
@@ -252,12 +252,10 @@ public class GenController extends BaseController {
|
||||
InputStream is = file.getInputStream();
|
||||
Workbook wb = WorkbookFactory.create(is);
|
||||
StringBuilder sb = new StringBuilder();
|
||||
|
||||
// 遍历每个sheet页(每个表)
|
||||
for (int i = 0; i < wb.getNumberOfSheets(); i++) {
|
||||
sb.append("-- ----------------------------------------------------------------------------------\n");
|
||||
Sheet st = wb.getSheetAt(i);
|
||||
|
||||
// 从第一行读取表名表注释
|
||||
Row row0 = st.getRow(0);// 表名
|
||||
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) {
|
||||
ElMessage.warning('请至少输入一个查询条件')
|
||||
@@ -338,7 +338,7 @@ const handleCurrentChange = (newPage) => {
|
||||
total.value = response.data.total || 0
|
||||
selectedPatient.value = null // 查询时重置选中状态
|
||||
|
||||
// 如果只有一条记录且是第一页,自动选中
|
||||
// 如果只有一条记录且是第一页,自动显示患者信息
|
||||
if (response.data.records.length === 1 && currentPage.value === 1) {
|
||||
const patient = response.data.records[0]
|
||||
// 确保patient对象中同时包含id和patientId字段
|
||||
@@ -346,9 +346,21 @@ const handleCurrentChange = (newPage) => {
|
||||
patient.patientId = patient.id;
|
||||
}
|
||||
|
||||
// 设置为选中状态,但不自动确认
|
||||
selectedPatient.value = patient
|
||||
ElMessage.warning('已自动选中唯一患者,请点击确定')
|
||||
// 直接构建并设置患者信息,无需用户手动确认
|
||||
const outpatientNo = patient.identifierNo || patient.cardNo || patient.card_number || patient.就诊卡号 || patient.outpatientNumber || patient.outpatientNo || patient.门诊号码 || patient.卡号 || patient.card || patient.patientNo || patient.patient_id;
|
||||
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 {
|
||||
// 如果有多条记录或不是第一页,显示患者列表供选择
|
||||
// 确保每条患者记录都包含patientId字段,优先使用id字段
|
||||
@@ -359,7 +371,7 @@ const handleCurrentChange = (newPage) => {
|
||||
showPatientList.value = true
|
||||
}
|
||||
} else {
|
||||
// 无数据时重置总条数
|
||||
// 无数据时重置总条数
|
||||
total.value = 0
|
||||
ElMessage.warning('未查询到患者信息')
|
||||
}
|
||||
@@ -368,9 +380,8 @@ const handleCurrentChange = (newPage) => {
|
||||
}
|
||||
|
||||
} catch (error) {
|
||||
// 使用公共错误处理函数处理错误信息
|
||||
const errorMessage = processErrorMessage(error, '查询失败,请稍后重试');
|
||||
ElMessage.error(errorMessage);
|
||||
// 错误处理
|
||||
ElMessage.error('查询失败,请稍后重试');
|
||||
// 可以在这里添加错误监控或日志记录
|
||||
console.error('患者查询错误:', error);
|
||||
} finally {
|
||||
@@ -493,15 +504,7 @@ onMounted(() => {
|
||||
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) => {
|
||||
selectedPatient.value = row
|
||||
ElMessage.warning('已选择患者,请点击确定')
|
||||
@@ -547,7 +550,7 @@ const confirmSelectPatient = () => {
|
||||
}
|
||||
|
||||
// 重置表单
|
||||
const resetForm = () => {
|
||||
const resetForm = () => {
|
||||
searchForm.patientName = ''
|
||||
searchForm.idCard = ''
|
||||
searchForm.phoneNumber = ''
|
||||
@@ -562,8 +565,8 @@ const confirmSelectPatient = () => {
|
||||
total.value = 0
|
||||
}
|
||||
|
||||
// 格式化日期为YYYY-MM-DD格式
|
||||
const formatDate = (date) => {
|
||||
// 格式化日期为YYYY-MM-DD格式
|
||||
const formatDate = (date) => {
|
||||
if (!date) return ''
|
||||
// 如果已经是YYYY-MM-DD格式,直接返回
|
||||
if (typeof date === 'string' && /^\d{4}-\d{2}-\d{2}$/.test(date)) {
|
||||
|
||||
@@ -1207,7 +1207,7 @@ function getListInfo(addNewRow) {
|
||||
: 0);
|
||||
// 从后端获取数据时,将后端的耗材类型(2)转换为前端显示的耗材类型(4)
|
||||
// 后端接口中: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);
|
||||
if (displayAdviceType === 2 && (parsedContent.deviceId || parsedContent.deviceName || item.deviceId || item.deviceName)) {
|
||||
// 如果是耗材(adviceType=2 且有deviceId或deviceName),转换为前端显示的4
|
||||
|
||||
Reference in New Issue
Block a user