修复了门诊医生站重新调入该患者的本次就诊记录,点击中医诊断发现诊断详情是空的问题
This commit is contained in:
@@ -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('请选择证候');
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user