修复了门诊医生站重新调入该患者的本次就诊记录,点击中医诊断发现诊断详情是空的问题

This commit is contained in:
April
2026-01-09 15:08:19 +08:00
parent a48308dcbf
commit 3753a916f5
2 changed files with 142 additions and 123 deletions

View File

@@ -92,6 +92,7 @@ import {
getTcmSyndrome,
saveTcmDiagnosis,
updateTcmDiagnosis,
getTcmDiagnosis,
} from '@/views/doctorstation/components/api';
const props = defineProps({
@@ -120,141 +121,144 @@ const { proxy } = getCurrentInstance();
const emit = defineEmits(['close']);
function handleOpen() {
// 获取诊断列表
getTcmCondition().then((res) => {
conditionList.value = res.data.records;
});
tcmDiagonsisSaveList.value=[];
tcmDiagonsisList.value=[];
debugger;
if (props.updateZy.length>0) {
// 清空数据
tcmDiagonsisSaveList.value = [];
tcmDiagonsisList.value = [];
syndromeSelected.value = true; // 设置为true允许添加新的诊断
// 如果是修改模式,加载传入的诊断数据
if (props.updateZy.length > 0) {
props.updateZy.forEach((item) => {
let updateIds=item.updateId.split("-");
let name=item.name.split("-");
tcmDiagonsisSaveList.value.push({
let updateIds = item.updateId.split("-");
let name = item.name.split("-");
tcmDiagonsisSaveList.value.push(
{
conditionId: updateIds[0],
definitionId: item.illnessDefinitionId,
ybNo: item.ybNo,
syndromeGroupNo: item.syndromeGroupNo,
verificationStatusEnum: 4,
medTypeCode: '11',
diagSrtNo:item.diagSrtNo,
});
tcmDiagonsisList.value.push({
conditionName: name[0],
syndromeGroupNo: item.syndromeGroupNo,
});
tcmDiagonsisSaveList.value.push({
diagSrtNo: item.diagSrtNo,
isExisting: true // 标记为已存在
},
{
conditionId: updateIds[1],
definitionId: item.symptomDefinitionId,
ybNo: item.symptomYbNo,
syndromeGroupNo: item.syndromeGroupNo,
diagSrtNo:item.diagSrtNo,
diagSrtNo: item.diagSrtNo,
isExisting: true // 标记为已存在
}
);
tcmDiagonsisList.value.push({
conditionName: name[0],
syndromeName: name[1],
syndromeGroupNo: item.syndromeGroupNo,
isExisting: true // 标记为已存在
});
tcmDiagonsisList.value[tcmDiagonsisList.value.length - 1].syndromeName = name[1];
console.log("这是修改时带入的数据");
console.log(tcmDiagonsisList.value);
console.log(tcmDiagonsisSaveList.value);
syndromeSelected.value = true;
syndromeSelected.value = true;
});
} else {
// 不是修改模式,加载已保存的中医诊断
if (props.patientInfo && props.patientInfo.encounterId) {
getTcmDiagnosis({ encounterId: props.patientInfo.encounterId }).then((res) => {
if (res.code === 200 && res.data.illness && res.data.illness.length > 0) {
res.data.illness.forEach((item, index) => {
const symptom = res.data.symptom[index];
if (symptom) {
// 添加到显示列表
tcmDiagonsisList.value.push({
conditionName: item.name,
syndromeName: symptom.name,
syndromeGroupNo: item.syndromeGroupNo,
isExisting: true // 标记为已存在
});
// 添加到保存列表
tcmDiagonsisSaveList.value.push(
{
conditionId: item.conditionId,
definitionId: item.definitionId,
ybNo: item.ybNo,
syndromeGroupNo: item.syndromeGroupNo,
verificationStatusEnum: item.verificationStatusEnum || 4,
medTypeCode: item.medTypeCode || '11',
diagSrtNo: item.diagSrtNo,
isExisting: true // 标记为已存在
},
{
conditionId: symptom.conditionId,
definitionId: symptom.definitionId,
ybNo: symptom.ybNo,
syndromeGroupNo: item.syndromeGroupNo,
diagSrtNo: item.diagSrtNo,
isExisting: true // 标记为已存在
}
);
}
});
}
}).catch(err => {
console.error('加载已保存的中医诊断失败:', err);
});
}
}
}
// 点击诊断列表处理,点击以后才显示证候列表
function handleClickRow(row) {
if (syndromeSelected.value || tcmDiagonsisList.value.length == 0) {
syndromeSelected.value = false;
syndromeSelected.value = false;
selectedDisease.value = true;
timestamp.value = Date.now();
getTcmSyndrome().then((res) => {
syndromeList.value = res.data.records;
});
if (props.updateZy.length>0) {
props.updateZy.forEach((item) => {
let updateIds=item.updateId.split("-");
tcmDiagonsisSaveList.value.push({
updateId:updateIds[0],
conditionId: updateIds[0],
definitionId: row.id,
ybNo: row.ybNo,
syndromeGroupNo: timestamp.value,
verificationStatusEnum: 4,
medTypeCode: '11',
diagSrtNo:item.diagSrtNo,
});
debugger;
if(tcmDiagonsisList.value.length>0){
tcmDiagonsisList.value[tcmDiagonsisList.value.length - 1].conditionName = row.name;
}else{
tcmDiagonsisList.value.push({
conditionName: row.name,
syndromeGroupNo: timestamp.value,
});
}
});
}else{
tcmDiagonsisSaveList.value.push({
definitionId: row.id,
ybNo: row.ybNo,
syndromeGroupNo: timestamp.value,
verificationStatusEnum: 4,
medTypeCode: '11',
});
tcmDiagonsisList.value.push({
conditionName: row.name,
syndromeGroupNo: timestamp.value,
});
}
}
// tcmDiagonsisList.value.push({
// conditionName: row.name,
// syndromeGroupNo: timestamp.value,
// });
// 添加新的诊断
tcmDiagonsisSaveList.value.push({
definitionId: row.id,
ybNo: row.ybNo,
syndromeGroupNo: timestamp.value,
verificationStatusEnum: 4,
medTypeCode: '11',
isExisting: false // 标记为新增
});
tcmDiagonsisList.value.push({
conditionName: row.name,
syndromeGroupNo: timestamp.value,
isExisting: false // 标记为新增
});
}
}
function clickSyndromeRow(row) {
debugger;
let flag=true;
tcmDiagonsisList.value.forEach( item => {
if(tcmDiagonsisList.value[tcmDiagonsisList.value.length - 1].conditionName==item.conditionName){
if(item.syndromeName==row.name ){
proxy.$modal.msgWarning('不能存在完全相同的诊断和证侯');
flag=false;
}
// 检查是否已存在完全相同的诊断和证候
let flag = true;
const currentConditionName = tcmDiagonsisList.value[tcmDiagonsisList.value.length - 1].conditionName;
tcmDiagonsisList.value.forEach(item => {
if (item.conditionName === currentConditionName && item.syndromeName === row.name) {
proxy.$modal.msgWarning('不能存在完全相同的诊断和证候');
flag = false;
}
});
if(flag){
if(props.updateZy.length>0){
props.updateZy.forEach((item) => {
let updateIds=item.updateId.split("-");
tcmDiagonsisSaveList.value.push({
updateId:updateIds[1],
conditionId: updateIds[1],
definitionId: row.id,
ybNo: row.ybNo,
syndromeGroupNo: timestamp.value,
});
tcmDiagonsisList.value[tcmDiagonsisList.value.length - 1].syndromeName = row.name;
syndromeSelected.value = true;
});
}else{
tcmDiagonsisSaveList.value.push({
definitionId: row.id,
ybNo: row.ybNo,
syndromeGroupNo: timestamp.value,
});
tcmDiagonsisList.value[tcmDiagonsisList.value.length - 1].syndromeName = row.name;
syndromeSelected.value = true;
}
// tcmDiagonsisList.value[tcmDiagonsisList.value.length - 1].syndromeName = row.name;
// syndromeSelected.value = true;
if (flag) {
tcmDiagonsisSaveList.value.push({
definitionId: row.id,
ybNo: row.ybNo,
syndromeGroupNo: timestamp.value,
isExisting: false // 标记为新增
});
tcmDiagonsisList.value[tcmDiagonsisList.value.length - 1].syndromeName = row.name;
syndromeSelected.value = true;
}
}
@@ -268,38 +272,52 @@ function removeDiagnosis(row, index) {
}
function save() {
if(props.updateZy.length>0){
// 只保存新增的诊断,过滤掉已存在的
const newDiagnosisList = tcmDiagonsisSaveList.value.filter(item => !item.isExisting);
if (newDiagnosisList.length === 0) {
proxy.$modal.msgWarning('没有新增的诊断需要保存');
return;
}
if (props.updateZy.length > 0) {
// 修改模式
updateTcmDiagnosis({
patientId: props.patientInfo.patientId,
encounterId: props.patientInfo.encounterId,
diagnosisChildList: tcmDiagonsisSaveList.value,
}).then((res) => {
if (res.code == 200) {
emit('close');
proxy.$modal.msgSuccess('诊断已保存');
}
diagnosisChildList: newDiagnosisList,
}).then((res) => {
if (res.code == 200) {
emit('close');
proxy.$modal.msgSuccess('诊断已保存');
}
});
}else{
} else {
// 新增模式
saveTcmDiagnosis({
patientId: props.patientInfo.patientId,
encounterId: props.patientInfo.encounterId,
diagnosisChildList: tcmDiagonsisSaveList.value,
}).then((res) => {
if (res.code == 200) {
emit('close');
proxy.$modal.msgSuccess('诊断已保存');
}
diagnosisChildList: newDiagnosisList,
}).then((res) => {
if (res.code == 200) {
emit('close');
proxy.$modal.msgSuccess('诊断已保存');
}
});
}
}
function submit() {
debugger;
if (
tcmDiagonsisSaveList.value.length > 0 &&
(syndromeSelected.value || tcmDiagonsisSaveList.value.length % 2 == 0)
) {
// 检查是否有新增的诊断
const hasNewDiagnosis = tcmDiagonsisSaveList.value.some(item => !item.isExisting);
if (!hasNewDiagnosis) {
// 如果没有新增诊断,直接关闭
emit('close');
return;
}
if (syndromeSelected.value || tcmDiagonsisSaveList.value.length % 2 == 0) {
save();
} else {
proxy.$modal.msgWarning('请选择证候');

View File

@@ -252,7 +252,8 @@ function getList() {
getEncounterDiagnosis(props.patientInfo.encounterId)
.then((res) => {
if (res.code == 200) {
form.value.diagnosisList = res.data;
// 过滤掉中医诊断,只保留西医诊断
form.value.diagnosisList = res.data.filter(item => item.typeName !== '中医诊断');
emits('diagnosisSave', false);
}
maxNo = form.value.diagnosisList.length;