Merge branch 'master' of http://git.zhenyangtang.com.cn/ZYT/zyt
This commit is contained in:
@@ -952,6 +952,7 @@ class DiagnosisController extends BaseAdminController
|
||||
$control = null;
|
||||
$profile = '';
|
||||
$sseStartedAt = hrtime(true);
|
||||
$firstLiveUpdateMs = null;
|
||||
$disconnected = false;
|
||||
$shouldAbort = static function () use (&$control, &$disconnected, &$emit): bool {
|
||||
if (connection_aborted() === 1 && !$disconnected) {
|
||||
@@ -970,6 +971,9 @@ class DiagnosisController extends BaseAdminController
|
||||
};
|
||||
$options = [
|
||||
'should_abort' => $shouldAbort,
|
||||
// Only scene-validated call identity enters preparation; no caller source text/config.
|
||||
'call_record_id' => $params['call_record_id'] ?? null,
|
||||
'transcription_session_id' => $params['transcription_session_id'] ?? null,
|
||||
'upstream_user' => 'admin-diagnosis-assistant-' . $this->adminId,
|
||||
'on_authorized' => function (array $metadata) use (&$control, &$emit, &$profile, &$sseStartedAt, $requestId, $timing): bool {
|
||||
// prepareAssistant reaches this callback only after permission, task
|
||||
@@ -987,6 +991,15 @@ class DiagnosisController extends BaseAdminController
|
||||
'on_progress' => static function (array $progress) use (&$emit): void {
|
||||
if ($emit !== null) $emit('progress', $progress);
|
||||
},
|
||||
'on_live_update' => static function (array $payload) use (&$emit, $shouldAbort, $timing, &$sseStartedAt, &$firstLiveUpdateMs): bool {
|
||||
if ($emit === null || $shouldAbort()) return false;
|
||||
$accepted = $emit('live_update', $payload);
|
||||
if ($accepted && $firstLiveUpdateMs === null) {
|
||||
$firstLiveUpdateMs = AssistantSseTiming::elapsedMs($sseStartedAt);
|
||||
$timing->log('first_live_update', ['duration_ms' => $firstLiveUpdateMs, 'live_update_count' => 1]);
|
||||
}
|
||||
return $accepted;
|
||||
},
|
||||
'on_clinical_rejection' => static function (string $unit, array $issues) use ($timing): void {
|
||||
try {
|
||||
AssistantClinicalRejectDiagnostic::log($timing, $unit, $issues);
|
||||
|
||||
Reference in New Issue
Block a user