Merge remote-tracking branch 'origin/develop' into develop
This commit is contained in:
@@ -224,6 +224,12 @@ public class RequestBaseDto {
|
|||||||
*/
|
*/
|
||||||
private Integer sortNumber;
|
private Integer sortNumber;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 账户id (费用性质/合同)
|
||||||
|
*/
|
||||||
|
@JsonSerialize(using = ToStringSerializer.class)
|
||||||
|
private Long accountId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 用药说明
|
* 用药说明
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -62,7 +62,8 @@
|
|||||||
T1.suffering_flag AS suffering_flag,
|
T1.suffering_flag AS suffering_flag,
|
||||||
T1.dosage_instruction AS dosage_instruction,
|
T1.dosage_instruction AS dosage_instruction,
|
||||||
T2.part_percent AS part_percent,
|
T2.part_percent AS part_percent,
|
||||||
ccd.name AS condition_definition_name
|
ccd.name AS condition_definition_name,
|
||||||
|
T4.account_id AS account_id
|
||||||
FROM med_medication_request AS T1
|
FROM med_medication_request AS T1
|
||||||
LEFT JOIN med_medication_definition AS T2 ON T2.ID = T1.medication_id
|
LEFT JOIN med_medication_definition AS T2 ON T2.ID = T1.medication_id
|
||||||
AND T2.delete_flag = '0'
|
AND T2.delete_flag = '0'
|
||||||
@@ -115,7 +116,8 @@
|
|||||||
T1.chinese_herbs_dose_quantity AS chinese_herbs_dose_quantity,
|
T1.chinese_herbs_dose_quantity AS chinese_herbs_dose_quantity,
|
||||||
T1.suffering_flag AS suffering_flag,
|
T1.suffering_flag AS suffering_flag,
|
||||||
T2.part_percent AS part_percent,
|
T2.part_percent AS part_percent,
|
||||||
ccd.name AS condition_definition_name
|
ccd.name AS condition_definition_name,
|
||||||
|
T4.account_id AS account_id
|
||||||
FROM med_medication_request AS T1
|
FROM med_medication_request AS T1
|
||||||
LEFT JOIN med_medication_definition AS T2 ON T2.ID = T1.medication_id
|
LEFT JOIN med_medication_definition AS T2 ON T2.ID = T1.medication_id
|
||||||
AND T2.delete_flag = '0'
|
AND T2.delete_flag = '0'
|
||||||
|
|||||||
@@ -169,24 +169,36 @@ const selectedDisease = ref(false);
|
|||||||
const { proxy } = getCurrentInstance();
|
const { proxy } = getCurrentInstance();
|
||||||
const emit = defineEmits(['close']);
|
const emit = defineEmits(['close']);
|
||||||
|
|
||||||
|
// 请求序列号,防止异步回调竞态导致数据重复
|
||||||
|
let openSeq = 0;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// 获取诊断类型字典
|
// 获取诊断类型字典
|
||||||
const { diag_type } = proxy.useDict('diag_type');
|
const { diag_type } = proxy.useDict('diag_type');
|
||||||
|
|
||||||
function handleOpen() {
|
function handleOpen() {
|
||||||
|
// 递增序列号,使之前未完成的异步回调失效
|
||||||
|
const currentSeq = ++openSeq;
|
||||||
|
console.log('[addDiagnosisDialog] handleOpen() 触发, seq=', currentSeq, 'updateZy长度=', props.updateZy.length);
|
||||||
|
|
||||||
// 获取诊断列表
|
// 获取诊断列表
|
||||||
getTcmCondition().then((res) => {
|
getTcmCondition().then((res) => {
|
||||||
|
// 仅当是最新请求时才更新数据
|
||||||
|
if (currentSeq !== openSeq) return;
|
||||||
conditionList.value = res.data.records;
|
conditionList.value = res.data.records;
|
||||||
|
console.log('[addDiagnosisDialog] 诊断列表加载完成, 条数=', res.data.records?.length);
|
||||||
});
|
});
|
||||||
|
|
||||||
// 清空数据
|
// 清空数据(同步清空,确保每次打开弹窗都是干净的状态)
|
||||||
tcmDiagonsisSaveList.value = [];
|
tcmDiagonsisSaveList.value = [];
|
||||||
tcmDiagonsisList.value = [];
|
tcmDiagonsisList.value = [];
|
||||||
syndromeSelected.value = true; // 设置为true,允许添加新的诊断
|
syndromeSelected.value = true; // 设置为true,允许添加新的诊断
|
||||||
|
console.log('[addDiagnosisDialog] 列表已清空, tcmDiagonsisList.length=', tcmDiagonsisList.value.length);
|
||||||
|
|
||||||
// 如果是修改模式,加载传入的诊断数据
|
// 如果是修改模式,加载传入的诊断数据
|
||||||
if (props.updateZy.length > 0) {
|
if (props.updateZy.length > 0) {
|
||||||
|
console.log('[addDiagnosisDialog] 编辑模式, 从updateZy加载数据:', JSON.stringify(props.updateZy));
|
||||||
props.updateZy.forEach((item) => {
|
props.updateZy.forEach((item) => {
|
||||||
let updateIds = item.updateId.split("-");
|
let updateIds = item.updateId.split("-");
|
||||||
let name = item.name.split("-");
|
let name = item.name.split("-");
|
||||||
@@ -218,14 +230,33 @@ function handleOpen() {
|
|||||||
});
|
});
|
||||||
syndromeSelected.value = true;
|
syndromeSelected.value = true;
|
||||||
});
|
});
|
||||||
|
console.log('[addDiagnosisDialog] 编辑模式加载完成, tcmDiagonsisList=', JSON.stringify(tcmDiagonsisList.value));
|
||||||
} else {
|
} else {
|
||||||
// 不是修改模式,加载已保存的中医诊断
|
// 不是修改模式,加载已保存的中医诊断
|
||||||
|
console.log('[addDiagnosisDialog] 新增模式, 从API加载已有诊断, encounterId=', props.patientInfo?.encounterId);
|
||||||
if (props.patientInfo && props.patientInfo.encounterId) {
|
if (props.patientInfo && props.patientInfo.encounterId) {
|
||||||
getTcmDiagnosis({ encounterId: props.patientInfo.encounterId }).then((res) => {
|
// 添加时间戳参数防止浏览器缓存,确保每次打开弹窗都获取最新数据
|
||||||
|
getTcmDiagnosis({ encounterId: props.patientInfo.encounterId, _t: Date.now() }).then((res) => {
|
||||||
|
// 仅当是最新请求时才更新数据,防止旧回调污染列表
|
||||||
|
if (currentSeq !== openSeq) {
|
||||||
|
console.log('[addDiagnosisDialog] API响应被丢弃(seq不匹配), currentSeq=', currentSeq, 'openSeq=', openSeq);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
console.log('[addDiagnosisDialog] API返回 getTcmDiagnosis, code=', res.code, 'illness条数=', res.data?.illness?.length);
|
||||||
if (res.code === 200 && res.data.illness && res.data.illness.length > 0) {
|
if (res.code === 200 && res.data.illness && res.data.illness.length > 0) {
|
||||||
|
// 用于去重的集合:疾病名+证候名
|
||||||
|
const seenPairs = new Set();
|
||||||
res.data.illness.forEach((item, index) => {
|
res.data.illness.forEach((item, index) => {
|
||||||
const symptom = res.data.symptom[index];
|
const symptom = res.data.symptom[index];
|
||||||
if (symptom) {
|
if (symptom) {
|
||||||
|
const pairKey = item.name + '|' + symptom.name;
|
||||||
|
// 如果已存在完全相同的疾病+证候组合,跳过(防止数据库中已有重复数据显示多次)
|
||||||
|
if (seenPairs.has(pairKey)) {
|
||||||
|
console.log('[addDiagnosisDialog] 跳过重复已有诊断: illness=', item.name, 'symptom=', symptom.name, 'syndromeGroupNo=', item.syndromeGroupNo);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
seenPairs.add(pairKey);
|
||||||
|
console.log('[addDiagnosisDialog] 添加已有诊断: illness=', item.name, 'symptom=', symptom.name, 'syndromeGroupNo=', item.syndromeGroupNo);
|
||||||
// 添加到显示列表
|
// 添加到显示列表
|
||||||
tcmDiagonsisList.value.push({
|
tcmDiagonsisList.value.push({
|
||||||
conditionName: item.name,
|
conditionName: item.name,
|
||||||
@@ -233,7 +264,7 @@ function handleOpen() {
|
|||||||
syndromeGroupNo: item.syndromeGroupNo,
|
syndromeGroupNo: item.syndromeGroupNo,
|
||||||
isExisting: true // 标记为已存在
|
isExisting: true // 标记为已存在
|
||||||
});
|
});
|
||||||
|
|
||||||
// 添加到保存列表
|
// 添加到保存列表
|
||||||
tcmDiagonsisSaveList.value.push(
|
tcmDiagonsisSaveList.value.push(
|
||||||
{
|
{
|
||||||
@@ -257,8 +288,13 @@ function handleOpen() {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
console.log('[addDiagnosisDialog] 加载完成, tcmDiagonsisList=', JSON.stringify(tcmDiagonsisList.value));
|
||||||
|
} else {
|
||||||
|
console.log('[addDiagnosisDialog] 没有已有诊断数据');
|
||||||
}
|
}
|
||||||
}).catch(err => {
|
}).catch(err => {
|
||||||
|
// 忽略过期请求的错误
|
||||||
|
if (currentSeq !== openSeq) return;
|
||||||
console.error('加载已保存的中医诊断失败:', err);
|
console.error('加载已保存的中医诊断失败:', err);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -268,14 +304,16 @@ function handleOpen() {
|
|||||||
// 点击诊断列表处理,点击以后才显示证候列表
|
// 点击诊断列表处理,点击以后才显示证候列表
|
||||||
// vxe-table v4 cell-click 事件参数为 { row, column, rowIndex, ... },需解构获取实际行数据
|
// vxe-table v4 cell-click 事件参数为 { row, column, rowIndex, ... },需解构获取实际行数据
|
||||||
function handleClickRow({ row }) {
|
function handleClickRow({ row }) {
|
||||||
|
console.log('[addDiagnosisDialog] handleClickRow 触发, row.name=', row.name, 'syndromeSelected=', syndromeSelected.value, 'listLength=', tcmDiagonsisList.value.length);
|
||||||
if (syndromeSelected.value || tcmDiagonsisList.value.length == 0) {
|
if (syndromeSelected.value || tcmDiagonsisList.value.length == 0) {
|
||||||
syndromeSelected.value = false;
|
syndromeSelected.value = false;
|
||||||
selectedDisease.value = true;
|
selectedDisease.value = true;
|
||||||
timestamp.value = Date.now();
|
timestamp.value = Date.now();
|
||||||
|
console.log('[addDiagnosisDialog] 添加新诊断: disease=', row.name, 'syndromeGroupNo=', timestamp.value);
|
||||||
getTcmSyndrome().then((res) => {
|
getTcmSyndrome().then((res) => {
|
||||||
syndromeList.value = res.data.records;
|
syndromeList.value = res.data.records;
|
||||||
});
|
});
|
||||||
|
|
||||||
// 添加新的诊断
|
// 添加新的诊断
|
||||||
tcmDiagonsisSaveList.value.push({
|
tcmDiagonsisSaveList.value.push({
|
||||||
definitionId: row.id,
|
definitionId: row.id,
|
||||||
@@ -290,22 +328,23 @@ function handleClickRow({ row }) {
|
|||||||
syndromeGroupNo: timestamp.value,
|
syndromeGroupNo: timestamp.value,
|
||||||
isExisting: false // 标记为新增
|
isExisting: false // 标记为新增
|
||||||
});
|
});
|
||||||
|
console.log('[addDiagnosisDialog] 添加后 tcmDiagonsisList=', JSON.stringify(tcmDiagonsisList.value));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// vxe-table v4 cell-click 事件参数为 { row, column, rowIndex, ... },需解构获取实际行数据
|
// vxe-table v4 cell-click 事件参数为 { row, column, rowIndex, ... },需解构获取实际行数据
|
||||||
function clickSyndromeRow({ row }) {
|
function clickSyndromeRow({ row }) {
|
||||||
// 检查是否已存在完全相同的诊断和证候
|
// 检查是否已存在完全相同的诊断和证候(包括已保存的和当前新增的)
|
||||||
let flag = true;
|
let flag = true;
|
||||||
const currentConditionName = tcmDiagonsisList.value[tcmDiagonsisList.value.length - 1].conditionName;
|
const currentConditionName = tcmDiagonsisList.value[tcmDiagonsisList.value.length - 1].conditionName;
|
||||||
|
|
||||||
tcmDiagonsisList.value.forEach(item => {
|
tcmDiagonsisList.value.forEach(item => {
|
||||||
if (item.conditionName === currentConditionName && item.syndromeName === row.name) {
|
if (item.conditionName === currentConditionName && item.syndromeName === row.name) {
|
||||||
proxy.$modal.msgWarning('不能存在完全相同的诊断和证候');
|
proxy.$modal.msgWarning('不能存在完全相同的诊断和证候');
|
||||||
flag = false;
|
flag = false;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
if (flag) {
|
if (flag) {
|
||||||
tcmDiagonsisSaveList.value.push({
|
tcmDiagonsisSaveList.value.push({
|
||||||
definitionId: row.id,
|
definitionId: row.id,
|
||||||
@@ -321,29 +360,33 @@ function clickSyndromeRow({ row }) {
|
|||||||
|
|
||||||
// 删除诊断
|
// 删除诊断
|
||||||
function removeDiagnosis(row, index) {
|
function removeDiagnosis(row, index) {
|
||||||
|
console.log('[addDiagnosisDialog] removeDiagnosis 触发, row=', JSON.stringify(row), 'index=', index);
|
||||||
tcmDiagonsisList.value.splice(index, 1);
|
tcmDiagonsisList.value.splice(index, 1);
|
||||||
tcmDiagonsisSaveList.value = tcmDiagonsisSaveList.value.filter((item) => {
|
tcmDiagonsisSaveList.value = tcmDiagonsisSaveList.value.filter((item) => {
|
||||||
return item.syndromeGroupNo !== row.syndromeGroupNo;
|
return item.syndromeGroupNo !== row.syndromeGroupNo;
|
||||||
});
|
});
|
||||||
|
console.log('[addDiagnosisDialog] 删除后 tcmDiagonsisList=', JSON.stringify(tcmDiagonsisList.value));
|
||||||
}
|
}
|
||||||
|
|
||||||
function save() {
|
function save() {
|
||||||
// 只保存新增的诊断,过滤掉已存在的
|
// 只保存新增的诊断,过滤掉已存在的
|
||||||
const newDiagnosisList = tcmDiagonsisSaveList.value.filter(item => !item.isExisting);
|
const newDiagnosisList = tcmDiagonsisSaveList.value.filter(item => !item.isExisting);
|
||||||
|
console.log('[addDiagnosisDialog] save() 触发, newDiagnosisList长度=', newDiagnosisList.length, 'updateZy长度=', props.updateZy.length);
|
||||||
|
|
||||||
if (newDiagnosisList.length === 0) {
|
if (newDiagnosisList.length === 0) {
|
||||||
proxy.$modal.msgWarning('没有新增的诊断需要保存');
|
proxy.$modal.msgWarning('没有新增的诊断需要保存');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (props.updateZy.length > 0) {
|
if (props.updateZy.length > 0) {
|
||||||
// 修改模式
|
// 修改模式
|
||||||
|
console.log('[addDiagnosisDialog] 调用 updateTcmDiagnosis');
|
||||||
updateTcmDiagnosis({
|
updateTcmDiagnosis({
|
||||||
patientId: props.patientInfo.patientId,
|
patientId: props.patientInfo.patientId,
|
||||||
encounterId: props.patientInfo.encounterId,
|
encounterId: props.patientInfo.encounterId,
|
||||||
diagnosisChildList: newDiagnosisList,
|
diagnosisChildList: newDiagnosisList,
|
||||||
}).then((res) => {
|
}).then((res) => {
|
||||||
|
console.log('[addDiagnosisDialog] updateTcmDiagnosis 响应, code=', res.code);
|
||||||
if (res.code == 200) {
|
if (res.code == 200) {
|
||||||
emit('close');
|
emit('close');
|
||||||
proxy.$modal.msgSuccess('诊断已保存');
|
proxy.$modal.msgSuccess('诊断已保存');
|
||||||
@@ -351,11 +394,13 @@ function save() {
|
|||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
// 新增模式
|
// 新增模式
|
||||||
|
console.log('[addDiagnosisDialog] 调用 saveTcmDiagnosis');
|
||||||
saveTcmDiagnosis({
|
saveTcmDiagnosis({
|
||||||
patientId: props.patientInfo.patientId,
|
patientId: props.patientInfo.patientId,
|
||||||
encounterId: props.patientInfo.encounterId,
|
encounterId: props.patientInfo.encounterId,
|
||||||
diagnosisChildList: newDiagnosisList,
|
diagnosisChildList: newDiagnosisList,
|
||||||
}).then((res) => {
|
}).then((res) => {
|
||||||
|
console.log('[addDiagnosisDialog] saveTcmDiagnosis 响应, code=', res.code);
|
||||||
if (res.code == 200) {
|
if (res.code == 200) {
|
||||||
emit('close');
|
emit('close');
|
||||||
proxy.$modal.msgSuccess('诊断已保存');
|
proxy.$modal.msgSuccess('诊断已保存');
|
||||||
@@ -367,13 +412,15 @@ function save() {
|
|||||||
function submit() {
|
function submit() {
|
||||||
// 检查是否有新增的诊断
|
// 检查是否有新增的诊断
|
||||||
const hasNewDiagnosis = tcmDiagonsisSaveList.value.some(item => !item.isExisting);
|
const hasNewDiagnosis = tcmDiagonsisSaveList.value.some(item => !item.isExisting);
|
||||||
|
console.log('[addDiagnosisDialog] submit() 触发, hasNewDiagnosis=', hasNewDiagnosis, 'syndromeSelected=', syndromeSelected.value);
|
||||||
|
|
||||||
if (!hasNewDiagnosis) {
|
if (!hasNewDiagnosis) {
|
||||||
// 如果没有新增诊断,直接关闭
|
// 如果没有新增诊断,直接关闭
|
||||||
|
console.log('[addDiagnosisDialog] 无新增诊断,直接关闭弹窗');
|
||||||
emit('close');
|
emit('close');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (syndromeSelected.value || tcmDiagonsisSaveList.value.length % 2 == 0) {
|
if (syndromeSelected.value || tcmDiagonsisSaveList.value.length % 2 == 0) {
|
||||||
save();
|
save();
|
||||||
} else {
|
} else {
|
||||||
@@ -381,6 +428,7 @@ function submit() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
function close() {
|
function close() {
|
||||||
|
console.log('[addDiagnosisDialog] close() 触发 (弹窗@close事件)');
|
||||||
emit('close');
|
emit('close');
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -539,17 +539,25 @@ async function getList() {
|
|||||||
});
|
});
|
||||||
emits('diagnosisSave', false);
|
emits('diagnosisSave', false);
|
||||||
}
|
}
|
||||||
// 获取现有诊断的排序号集合,用于判断是否重复
|
// 收集已有中医诊断的 syndromeGroupNo,用于去重
|
||||||
const existingDiagSrtNoSet = new Set(form.value.diagnosisList.map(item => item.diagSrtNo));
|
const existingTcmGroups = new Set(
|
||||||
|
form.value.diagnosisList
|
||||||
|
.filter(item => item.typeName === '中医诊断' && item.syndromeGroupNo)
|
||||||
|
.map(item => item.syndromeGroupNo)
|
||||||
|
);
|
||||||
|
|
||||||
const tcmRes = await getTcmDiagnosis({ encounterId: props.patientInfo.encounterId });
|
const tcmRes = await getTcmDiagnosis({ encounterId: props.patientInfo.encounterId });
|
||||||
|
console.log('[diagnosis] getList() getTcmDiagnosis 返回, code=', tcmRes.code, 'illness条数=', tcmRes.data?.illness?.length);
|
||||||
if (tcmRes.code == 200) {
|
if (tcmRes.code == 200) {
|
||||||
if (tcmRes.data.illness.length > 0) {
|
if (tcmRes.data.illness.length > 0) {
|
||||||
tcmRes.data.illness.forEach((item, index) => {
|
tcmRes.data.illness.forEach((item, index) => {
|
||||||
// 如果该排序号的诊断已存在,则跳过(避免重复添加)
|
// 使用 syndromeGroupNo 去重,避免与西医诊断的 diagSrtNo 冲突
|
||||||
if (existingDiagSrtNoSet.has(item.diagSrtNo)) {
|
if (existingTcmGroups.has(item.syndromeGroupNo)) {
|
||||||
|
console.log('[diagnosis] getList() 跳过重复中医诊断, syndromeGroupNo=', item.syndromeGroupNo, 'name=', item.name);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
existingTcmGroups.add(item.syndromeGroupNo);
|
||||||
|
console.log('[diagnosis] getList() 添加中医诊断到表格: illness=', item.name, 'symptom=', tcmRes.data.symptom[index]?.name, 'syndromeGroupNo=', item.syndromeGroupNo);
|
||||||
form.value.diagnosisList.push({
|
form.value.diagnosisList.push({
|
||||||
name: item.name + '-' + tcmRes.data.symptom[index].name,
|
name: item.name + '-' + tcmRes.data.symptom[index].name,
|
||||||
diagSrtNo: item.diagSrtNo,
|
diagSrtNo: item.diagSrtNo,
|
||||||
@@ -564,8 +572,6 @@ async function getList() {
|
|||||||
symptomDefinitionId : tcmRes.data.symptom[index].definitionId,
|
symptomDefinitionId : tcmRes.data.symptom[index].definitionId,
|
||||||
symptomYbNo: tcmRes.data.symptom[index].ybNo,
|
symptomYbNo: tcmRes.data.symptom[index].ybNo,
|
||||||
});
|
});
|
||||||
// 添加后更新集合
|
|
||||||
existingDiagSrtNoSet.add(item.diagSrtNo);
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
emits('diagnosisSave', false);
|
emits('diagnosisSave', false);
|
||||||
@@ -734,6 +740,7 @@ function handleAddDiagnosis() {
|
|||||||
|
|
||||||
// 添加中医诊断
|
// 添加中医诊断
|
||||||
function handleAddTcmDiagonsis() {
|
function handleAddTcmDiagonsis() {
|
||||||
|
console.log('[diagnosis] handleAddTcmDiagonsis() 触发, 清空updateZy并打开弹窗');
|
||||||
updateZy.value = [];
|
updateZy.value = [];
|
||||||
openAddDiagnosisDialog.value = true;
|
openAddDiagnosisDialog.value = true;
|
||||||
}
|
}
|
||||||
@@ -742,8 +749,10 @@ function handleAddTcmDiagonsis() {
|
|||||||
* 删除诊断
|
* 删除诊断
|
||||||
*/
|
*/
|
||||||
function handleDeleteDiagnosis(row, index) {
|
function handleDeleteDiagnosis(row, index) {
|
||||||
|
console.log('[diagnosis] handleDeleteDiagnosis 触发, row=', JSON.stringify({name: row.name, conditionId: row.conditionId, syndromeGroupNo: row.syndromeGroupNo, typeName: row.typeName}));
|
||||||
if (row.conditionId) {
|
if (row.conditionId) {
|
||||||
delEncounterDiagnosis(row.conditionId).then((res) => {
|
delEncounterDiagnosis(row.conditionId).then((res) => {
|
||||||
|
console.log('[diagnosis] delEncounterDiagnosis 响应, code=', res.code);
|
||||||
if (res.code == 200) {
|
if (res.code == 200) {
|
||||||
proxy.$modal.msgSuccess('删除成功');
|
proxy.$modal.msgSuccess('删除成功');
|
||||||
getList();
|
getList();
|
||||||
@@ -751,11 +760,21 @@ function handleDeleteDiagnosis(row, index) {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
} else if (row.syndromeGroupNo) {
|
} else if (row.syndromeGroupNo) {
|
||||||
deleteTcmDiagnosis(row.syndromeGroupNo).then(() => {
|
console.log('[diagnosis] 调用 deleteTcmDiagnosis, syndromeGroupNo=', row.syndromeGroupNo);
|
||||||
getList();
|
deleteTcmDiagnosis(row.syndromeGroupNo).then((res) => {
|
||||||
getTree();
|
console.log('[diagnosis] deleteTcmDiagnosis 响应, code=', res?.code, 'msg=', res?.msg);
|
||||||
|
if (res.code == 200) {
|
||||||
|
proxy.$modal.msgSuccess('删除成功');
|
||||||
|
getList();
|
||||||
|
getTree();
|
||||||
|
} else {
|
||||||
|
proxy.$modal.msgError(res?.msg || '删除失败,请稍后重试');
|
||||||
|
}
|
||||||
|
}).catch(() => {
|
||||||
|
proxy.$modal.msgError('删除请求失败,请检查网络');
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
|
console.log('[diagnosis] 本地删除(未保存的诊断), index=', index);
|
||||||
form.value.diagnosisList.splice(index, 1);
|
form.value.diagnosisList.splice(index, 1);
|
||||||
// 删除后不重新计算排序号,保持用户设置的排序不变
|
// 删除后不重新计算排序号,保持用户设置的排序不变
|
||||||
emits('diagnosisSave', false);
|
emits('diagnosisSave', false);
|
||||||
@@ -961,11 +980,20 @@ function handleInfectiousDiseaseReport() {
|
|||||||
* 关闭诊断弹窗
|
* 关闭诊断弹窗
|
||||||
*/
|
*/
|
||||||
function closeDiagnosisDialog(str) {
|
function closeDiagnosisDialog(str) {
|
||||||
|
console.log('[diagnosis] closeDiagnosisDialog 触发, str=', str, 'openAddDiagnosisDialog=', openAddDiagnosisDialog.value, 'openDiagnosis=', openDiagnosis.value);
|
||||||
if (str === 'success') {
|
if (str === 'success') {
|
||||||
proxy.$modal.msgSuccess('操作成功');
|
proxy.$modal.msgSuccess('操作成功');
|
||||||
}
|
}
|
||||||
|
// 防止重复调用导致并发 getList()
|
||||||
|
if (!openAddDiagnosisDialog.value && !openDiagnosis.value) {
|
||||||
|
console.log('[diagnosis] closeDiagnosisDialog 跳过(弹窗已关闭)');
|
||||||
|
return;
|
||||||
|
}
|
||||||
openAddDiagnosisDialog.value = false;
|
openAddDiagnosisDialog.value = false;
|
||||||
openDiagnosis.value = false;
|
openDiagnosis.value = false;
|
||||||
|
// 清理 updateZy,避免编辑模式数据残留
|
||||||
|
updateZy.value = [];
|
||||||
|
console.log('[diagnosis] 弹窗关闭, updateZy已清空, 开始刷新列表');
|
||||||
getList();
|
getList();
|
||||||
getTree();
|
getTree();
|
||||||
}
|
}
|
||||||
@@ -1010,6 +1038,7 @@ function closeDiagnosisPopover(row) {
|
|||||||
/**获取焦点时 打开列表 */
|
/**获取焦点时 打开列表 */
|
||||||
function handleFocus(row, index) {
|
function handleFocus(row, index) {
|
||||||
if(row.typeName==='中医诊断'){
|
if(row.typeName==='中医诊断'){
|
||||||
|
console.log('[diagnosis] handleFocus 触发(编辑中医诊断), row.name=', row.name, 'syndromeGroupNo=', row.syndromeGroupNo);
|
||||||
updateZy.value = [];
|
updateZy.value = [];
|
||||||
updateZy.value.push({
|
updateZy.value.push({
|
||||||
illnessDefinitionId: row.illnessDefinitionId,
|
illnessDefinitionId: row.illnessDefinitionId,
|
||||||
@@ -1021,6 +1050,7 @@ function handleFocus(row, index) {
|
|||||||
diagSrtNo: row.diagSrtNo,
|
diagSrtNo: row.diagSrtNo,
|
||||||
name:row.name,
|
name:row.name,
|
||||||
});
|
});
|
||||||
|
console.log('[diagnosis] updateZy 已设置, 打开编辑弹窗');
|
||||||
openAddDiagnosisDialog.value = true;
|
openAddDiagnosisDialog.value = true;
|
||||||
}else{
|
}else{
|
||||||
// 关闭其他行的弹窗
|
// 关闭其他行的弹窗
|
||||||
|
|||||||
@@ -130,7 +130,7 @@
|
|||||||
</el-select>
|
</el-select>
|
||||||
<span class="doctor-station"> 煎药方式: </span>
|
<span class="doctor-station"> 煎药方式: </span>
|
||||||
<el-select
|
<el-select
|
||||||
v-model="decoctionMethod"
|
v-model="prescription.dosageInstruction"
|
||||||
placeholder=""
|
placeholder=""
|
||||||
style="width: 120px"
|
style="width: 120px"
|
||||||
>
|
>
|
||||||
@@ -569,6 +569,7 @@ const tcmPrescriptionList = ref([
|
|||||||
rateCode: '',
|
rateCode: '',
|
||||||
dispensePerDuration: '',
|
dispensePerDuration: '',
|
||||||
chineseHerbsDoseQuantity: '',
|
chineseHerbsDoseQuantity: '',
|
||||||
|
dosageInstruction: '',
|
||||||
sufferingFlag: '0',
|
sufferingFlag: '0',
|
||||||
checkAll: false,
|
checkAll: false,
|
||||||
groupIndexList: [],
|
groupIndexList: [],
|
||||||
@@ -688,11 +689,12 @@ async function getListInfo(addNewRow) {
|
|||||||
id: generatePrescriptionId(),
|
id: generatePrescriptionId(),
|
||||||
prescriptionList: [],
|
prescriptionList: [],
|
||||||
conditionDefinitionId: '',
|
conditionDefinitionId: '',
|
||||||
accountId: contractList.value[0].accountId,
|
accountId: contractList.value?.[0]?.accountId || '',
|
||||||
methodCode: '',
|
methodCode: '',
|
||||||
rateCode: '',
|
rateCode: '',
|
||||||
dispensePerDuration: '',
|
dispensePerDuration: '',
|
||||||
chineseHerbsDoseQuantity: '',
|
chineseHerbsDoseQuantity: '',
|
||||||
|
dosageInstruction: '',
|
||||||
sufferingFlag: '0',
|
sufferingFlag: '0',
|
||||||
checkAll: false,
|
checkAll: false,
|
||||||
groupIndexList: [],
|
groupIndexList: [],
|
||||||
@@ -729,6 +731,9 @@ async function getListInfo(addNewRow) {
|
|||||||
if (firstItem.sufferingFlag !== undefined && firstItem.sufferingFlag !== null) {
|
if (firstItem.sufferingFlag !== undefined && firstItem.sufferingFlag !== null) {
|
||||||
prescription.sufferingFlag = firstItem.sufferingFlag;
|
prescription.sufferingFlag = firstItem.sufferingFlag;
|
||||||
}
|
}
|
||||||
|
if (firstItem.dosageInstruction !== undefined && firstItem.dosageInstruction !== null) {
|
||||||
|
prescription.dosageInstruction = firstItem.dosageInstruction;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return prescription;
|
return prescription;
|
||||||
@@ -740,11 +745,12 @@ async function getListInfo(addNewRow) {
|
|||||||
id: generatePrescriptionId(),
|
id: generatePrescriptionId(),
|
||||||
prescriptionList: [],
|
prescriptionList: [],
|
||||||
conditionDefinitionId: '',
|
conditionDefinitionId: '',
|
||||||
accountId: contractList.value[0].accountId,
|
accountId: contractList.value?.[0]?.accountId || '',
|
||||||
methodCode: '',
|
methodCode: '',
|
||||||
rateCode: '',
|
rateCode: '',
|
||||||
dispensePerDuration: '',
|
dispensePerDuration: '',
|
||||||
chineseHerbsDoseQuantity: '',
|
chineseHerbsDoseQuantity: '',
|
||||||
|
dosageInstruction: '',
|
||||||
sufferingFlag: '0',
|
sufferingFlag: '0',
|
||||||
checkAll: false,
|
checkAll: false,
|
||||||
groupIndexList: [],
|
groupIndexList: [],
|
||||||
@@ -754,7 +760,7 @@ async function getListInfo(addNewRow) {
|
|||||||
isAdding: false,
|
isAdding: false,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
tcmPrescriptionList.value.accountId = contractList.value[0].accountId;
|
tcmPrescriptionList.value.accountId = contractList.value?.[0]?.accountId || '';
|
||||||
if (props.activeTab == 'prescription' && addNewRow) {
|
if (props.activeTab == 'prescription' && addNewRow) {
|
||||||
handleAddMedicine(0);
|
handleAddMedicine(0);
|
||||||
}
|
}
|
||||||
@@ -898,6 +904,7 @@ function addNewPrescription() {
|
|||||||
rateCode: '',
|
rateCode: '',
|
||||||
dispensePerDuration: '',
|
dispensePerDuration: '',
|
||||||
chineseHerbsDoseQuantity: '',
|
chineseHerbsDoseQuantity: '',
|
||||||
|
dosageInstruction: '',
|
||||||
sufferingFlag: '0',
|
sufferingFlag: '0',
|
||||||
checkAll: false,
|
checkAll: false,
|
||||||
groupIndexList: [],
|
groupIndexList: [],
|
||||||
@@ -1160,7 +1167,7 @@ function handleSave(pIndex) {
|
|||||||
groupId: item.groupId,
|
groupId: item.groupId,
|
||||||
patientId: props.patientInfo.patientId,
|
patientId: props.patientInfo.patientId,
|
||||||
encounterId: props.patientInfo.encounterId,
|
encounterId: props.patientInfo.encounterId,
|
||||||
accountId: accountId.value,
|
accountId: prescription.accountId,
|
||||||
conditionId: prescription.conditionId,
|
conditionId: prescription.conditionId,
|
||||||
encounterDiagnosisId: prescription.encounterDiagnosisId,
|
encounterDiagnosisId: prescription.encounterDiagnosisId,
|
||||||
diagnosisName: prescription.diagnosisName,
|
diagnosisName: prescription.diagnosisName,
|
||||||
@@ -1237,7 +1244,7 @@ function handleSaveBatch(pIndex) {
|
|||||||
.map((item, index) => {
|
.map((item, index) => {
|
||||||
return {
|
return {
|
||||||
...item,
|
...item,
|
||||||
accountId: accountId.value,
|
accountId: prescription.accountId,
|
||||||
conditionId: prescription.conditionId,
|
conditionId: prescription.conditionId,
|
||||||
encounterDiagnosisId: prescription.encounterDiagnosisId,
|
encounterDiagnosisId: prescription.encounterDiagnosisId,
|
||||||
conditionDefinitionId: prescription.conditionDefinitionId,
|
conditionDefinitionId: prescription.conditionDefinitionId,
|
||||||
@@ -1249,6 +1256,7 @@ function handleSaveBatch(pIndex) {
|
|||||||
rateCode: prescription.rateCode,
|
rateCode: prescription.rateCode,
|
||||||
dispensePerDuration: prescription.dispensePerDuration,
|
dispensePerDuration: prescription.dispensePerDuration,
|
||||||
chineseHerbsDoseQuantity: prescription.chineseHerbsDoseQuantity,
|
chineseHerbsDoseQuantity: prescription.chineseHerbsDoseQuantity,
|
||||||
|
dosageInstruction: prescription.dosageInstruction,
|
||||||
dbOpType: item.requestId ? '2' : '1',
|
dbOpType: item.requestId ? '2' : '1',
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -159,7 +159,7 @@ const searchKey = ref('')
|
|||||||
const patientList = ref([])
|
const patientList = ref([])
|
||||||
const patientTotal = ref(0)
|
const patientTotal = ref(0)
|
||||||
const pageNo = ref(1)
|
const pageNo = ref(1)
|
||||||
const $110)
|
const pageSize = ref(10)
|
||||||
const currentPatient = ref(null)
|
const currentPatient = ref(null)
|
||||||
const feeItems = ref([])
|
const feeItems = ref([])
|
||||||
const feeLoading = ref(false)
|
const feeLoading = ref(false)
|
||||||
|
|||||||
@@ -300,7 +300,7 @@ const patientInfo = ref('');
|
|||||||
|
|
||||||
// 分页相关
|
// 分页相关
|
||||||
const currentPage = ref(1);
|
const currentPage = ref(1);
|
||||||
const $110);
|
const pageSize = ref(10)
|
||||||
const total = ref(0);
|
const total = ref(0);
|
||||||
|
|
||||||
// 打印相关
|
// 打印相关
|
||||||
|
|||||||
@@ -84,7 +84,7 @@ const loading = ref(false)
|
|||||||
const tableData = ref([])
|
const tableData = ref([])
|
||||||
const total = ref(0)
|
const total = ref(0)
|
||||||
const pageNo = ref(1)
|
const pageNo = ref(1)
|
||||||
const $110)
|
const pageSize = ref(10)
|
||||||
const keyword = ref('')
|
const keyword = ref('')
|
||||||
const showEdit = ref(false)
|
const showEdit = ref(false)
|
||||||
const showSteps = ref(false)
|
const showSteps = ref(false)
|
||||||
|
|||||||
@@ -82,7 +82,7 @@ const loading = ref(false)
|
|||||||
const tableData = ref([])
|
const tableData = ref([])
|
||||||
const total = ref(0)
|
const total = ref(0)
|
||||||
const pageNo = ref(1)
|
const pageNo = ref(1)
|
||||||
const $110)
|
const pageSize = ref(10)
|
||||||
const showForm = ref(false)
|
const showForm = ref(false)
|
||||||
|
|
||||||
const filters = ref({ sourceType: '', targetType: '', relationType: '' })
|
const filters = ref({ sourceType: '', targetType: '', relationType: '' })
|
||||||
|
|||||||
@@ -666,7 +666,7 @@ const tableData = ref([]);
|
|||||||
// 当前页码
|
// 当前页码
|
||||||
const pageNum = ref(1);
|
const pageNum = ref(1);
|
||||||
// 每页显示数据
|
// 每页显示数据
|
||||||
const $110);
|
const pageSize = ref(10)
|
||||||
const purchaseinventoryList = ref([]);
|
const purchaseinventoryList = ref([]);
|
||||||
const open = ref(false);
|
const open = ref(false);
|
||||||
const loading = ref(false);
|
const loading = ref(false);
|
||||||
|
|||||||
Reference in New Issue
Block a user