mirror of
https://github.com/temetro/temetro.git
synced 2026-09-03 14:27:58 +00:00
backend: render patient card from searchPatients on a unique match
"Show me <name>'s medical record" relied on the model chaining
searchPatients → getPatient, but Gemini Flash often calls searchPatients
then emits the canned closing line ("Here's the record.") without the
second tool call, so no data-patientCard part is ever written and no card
renders. (The prior Gemini fix only covered the empty-schema list tools.)
searchPatients now writes the record card (data-patientCard, or
data-recordGraph in graph mode) and a source directly when EXACTLY ONE
patient matches — mirroring getPatient — so the common name-lookup flow no
longer depends on a second tool call. Multiple/zero matches keep returning
the disambiguation list. The tool description and system prompt tell the
model the card is already shown on a unique match so it doesn't double-render.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -107,7 +107,10 @@ function systemPrompt(
|
||||
"",
|
||||
"Display tools (read-only):",
|
||||
"- getPatient: when asked about a specific patient by file number / MRN.",
|
||||
"- searchPatients: when given a name; then getPatient on the match.",
|
||||
"- searchPatients: when given a name. If exactly one patient matches it",
|
||||
" already shows that patient's record card — don't call getPatient again,",
|
||||
" just confirm. Only call getPatient yourself for a direct file number / MRN,",
|
||||
" or to pick one of several matches it returns.",
|
||||
"- getPatientLabs: when asked about labs/results/trends.",
|
||||
"- listAppointments: when asked to see the schedule / upcoming visits.",
|
||||
"- listTasks: when asked to see open tasks / to-dos.",
|
||||
|
||||
Reference in New Issue
Block a user