This commit is contained in:
Your Name
2026-10-08 14:12:44 +08:00
parent 5543f45850
commit 1c9b093e08
7 changed files with 268 additions and 54 deletions
@@ -53,6 +53,8 @@ class DiagnosisAiLogic extends BaseLogic
private const PERMISSION_ASSISTANT = 'tcm.diagnosis/aiassistant';
private const PERMISSION_GENERATE_PRESCRIPTION = 'tcm.diagnosis/aigenerateprescription';
private const PATIENT_OPTIONS_DEFAULT_PAGE_SIZE = 20;
private const PATIENT_OPTIONS_MAX_PAGE_SIZE = 50;
@@ -358,6 +360,17 @@ class DiagnosisAiLogic extends BaseLogic
array $adminInfo
): ?array {
self::$assistantErrorCode = 'AI_ASSISTANT_FAILED';
$task = strtolower(trim($task));
if (!isset(self::ASSISTANT_TASKS[$task])) {
self::setError('不支持的 AI 助手任务');
return null;
}
if ($task === 'prescription_generate'
&& !self::hasPermission($adminId, $adminInfo, self::PERMISSION_GENERATE_PRESCRIPTION)) {
self::setError('权限不足,无法使用 AI 生成处方');
return null;
}
$diagnosis = self::loadAuthorizedDiagnosis(
$diagnosisId,
$adminId,
@@ -369,11 +382,6 @@ class DiagnosisAiLogic extends BaseLogic
return null;
}
$task = strtolower(trim($task));
if (!isset(self::ASSISTANT_TASKS[$task])) {
self::setError('不支持的 AI 助手任务');
return null;
}
$prompt = self::cleanText($prompt, self::MAX_ASSISTANT_PROMPT_LENGTH, true);
if ($task === 'custom' && $prompt === '') {
self::setError('请输入要咨询的问题');