diff --git a/src/lib/clinical-search.ts b/src/lib/clinical-search.ts index 270739d5..0146c549 100644 --- a/src/lib/clinical-search.ts +++ b/src/lib/clinical-search.ts @@ -1276,7 +1276,10 @@ export function buildClinicalTextSearchQuery(query: string) { hasAgitationArousalContext && (agitationMedicationIntent.asksAmount || agitationMedicationIntent.asksRoute || - agitationMedicationIntent.asksFrequency); + agitationMedicationIntent.asksFrequency || + /\b(?:dose|dosing|route|oral|intramuscular|im|po|chart|table|options?|listed|management)\b/i.test( + correctedQueryText, + )); const wantsAgitationArousal = hasAgitationArousalContext && (wantsAgitationMedicationChart || @@ -1294,7 +1297,11 @@ export function buildClinicalTextSearchQuery(query: string) { normalizedTokens.splice(0, normalizedTokens.length, "clozapine", "monitoring"); } else if (wantsAgitationMedicationChart) { const requestedDoseRouteTerms = medicationDoseEvidenceSearchTerms(query); - normalizedTokens.splice(0, normalizedTokens.length, "agitation", "arousal", ...requestedDoseRouteTerms); + const medicationChartTokens = + requestedDoseRouteTerms.length > 0 + ? ["agitation", "arousal", ...requestedDoseRouteTerms] + : ["agitation", "arousal", "pharmacological", "management", "medication", "chart", "dose", "route", "im", "po"]; + normalizedTokens.splice(0, normalizedTokens.length, ...medicationChartTokens); } else if (wantsAgitationArousal) { normalizedTokens.splice(0, normalizedTokens.length, "agitation", "arousal", "pharmacological", "management"); } else if (/\badmission\b/i.test(query) && /\bcommunity patients?\b/i.test(query)) { diff --git a/src/lib/rag.ts b/src/lib/rag.ts index f9761d11..a3f79f66 100644 --- a/src/lib/rag.ts +++ b/src/lib/rag.ts @@ -917,7 +917,6 @@ function hasValidatedGenericLaiManagementExtractiveAnswer(args: { const genericLaiManagementQuery = /^\s*how (?:are|should) long[- ]acting injectables? (?:be )?managed\??\s*$/i.test( args.query, ); - if ( !genericLaiManagementQuery || args.queryClass !== "medication_dose_risk" ||