feat: 病历模块优化、AI辅助问诊

This commit is contained in:
李琦
2026-08-06 10:08:02 +08:00
parent dc9f9c5c13
commit c1bc234509
6 changed files with 189 additions and 26 deletions

View File

@@ -92,6 +92,8 @@ export function splitHighlight(
}
let cachedRankMode: DictSearchRankMode | null = null;
/** 多气泡实例共享同一请求,避免进页 N 次 get-by-keys */
let rankModeFetchPromise: Promise<DictSearchRankMode> | null = null;
/** 写入缓存(从系统配置或接口响应读取后调用) */
export function setDictSearchRankMode(mode: string | undefined | null) {
@@ -102,6 +104,32 @@ export function getDictSearchRankMode(): DictSearchRankMode {
return cachedRankMode || 'backend';
}
export function isDictSearchRankModeLoaded(): boolean {
return cachedRankMode != null;
}
/**
* 确保已加载匹配度模式:已缓存则跳过;并发调用共享同一 Promise
* @param loader 真正打网取配置的函数,返回 frontend|backend
*/
export async function ensureDictSearchRankMode(
loader: () => Promise<string | undefined | null>,
): Promise<DictSearchRankMode> {
if (cachedRankMode != null) return cachedRankMode;
if (!rankModeFetchPromise) {
rankModeFetchPromise = (async () => {
try {
const mode = await loader();
setDictSearchRankMode(mode);
} catch {
setDictSearchRankMode('backend');
}
return cachedRankMode || 'backend';
})();
}
return rankModeFetchPromise;
}
/**
* 按当前模式决定是否前端重排;有关键字时保证按匹配度降序,并尽量带上可展示的 match_score
*/