同一患者保存病历后判断逻辑问题

This commit is contained in:
qk123
2025-11-24 15:13:18 +08:00
parent dcfa13f239
commit 262ea97824

View File

@@ -313,16 +313,6 @@ function checkPatientHistory(patient) {
return; return;
} }
// // 如果当前就诊已经有明确的初复诊标识,则使用该标识
// if (patient.visitType) {
// visitType.value = patient.visitType;
// // 如果是已完诊的记录,禁用修改
// if (patient.statusEnum && patient.statusEnum !== 2) { // 假设2是就诊中状态
// visitTypeDisabled.value = true;
// }
// return;
// }
// 查询患者历史就诊记录 // 查询患者历史就诊记录
const params = { const params = {
patientId: patient.patientId, patientId: patient.patientId,
@@ -332,14 +322,17 @@ function checkPatientHistory(patient) {
getEmrHistoryList(params).then(res => { getEmrHistoryList(params).then(res => {
if (res.code === 200) { if (res.code === 200) {
const records = res.data?.records || []; const records = res.data?.records || [];
// 如果有历史记录,则为复诊 // 过滤掉当前正在进行的就诊记录排除相同encounterId的记录
if (res.data && res.data.total > 0) { const historyRecords = records.filter(record => record.encounterId !== patient.encounterId);
// 如果有历史记录(排除当前就诊),则为复诊
if (historyRecords.length > 0) {
visitType.value = 'FOLLOW_UP'; visitType.value = 'FOLLOW_UP';
// 计算最早一次病历创建时间作为初诊日期 // 计算最早一次病历创建时间作为初诊日期
const earliest = records.reduce((min, cur) => { const earliest = historyRecords.reduce((min, cur) => {
const ct = new Date(cur.createTime).getTime(); const ct = new Date(cur.createTime).getTime();
return ct < min ? ct : min; return ct < min ? ct : min;
}, new Date(records[0].createTime).getTime()); }, new Date(historyRecords[0].createTime).getTime());
// 使用统一格式化 // 使用统一格式化
firstVisitDate.value = formatDate(earliest); firstVisitDate.value = formatDate(earliest);
} else { } else {
@@ -429,9 +422,9 @@ function handleCardClick(item, index) {
// 已完诊的记录禁用修改 // 已完诊的记录禁用修改
visitTypeDisabled.value = item.statusEnum !== 2; visitTypeDisabled.value = item.statusEnum !== 2;
// 如果有初诊日期也从数据库获取 // 如果有初诊日期也从数据库获取
if (item.firstVisitDate) { // if (item.firstVisitDate) {
firstVisitDate.value = item.firstVisitDate; // firstVisitDate.value = item.firstVisitDate;
} // }
} else { } else {
// 对于没有初复诊记录的患者,才使用原有的判断逻辑 // 对于没有初复诊记录的患者,才使用原有的判断逻辑
checkPatientHistory(item); checkPatientHistory(item);