mirror of
https://dev.azure.com/globalhealthx/EMR/_git/helix-engage-server
synced 2026-05-18 20:08:19 +00:00
fix: stop auto-creating Unknown leads on caller resolve
Return empty IDs for unrecognized numbers instead of creating lead+patient. Per PRD: 'System will not identify the patient — no summary shown.' Records are created when agent books appointment or logs enquiry. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -23,7 +23,12 @@ export class CallerResolutionService {
|
|||||||
private readonly cache: SessionService,
|
private readonly cache: SessionService,
|
||||||
) {}
|
) {}
|
||||||
|
|
||||||
// Resolve a caller by phone number. Always returns a paired lead + patient.
|
// Resolve a caller by phone number.
|
||||||
|
// Looks up existing lead + patient by phone. If neither exists, returns
|
||||||
|
// isNew: true with no IDs — records are NOT created automatically.
|
||||||
|
// Record creation happens when the agent explicitly books an appointment
|
||||||
|
// or logs an enquiry (per PRD: "System will not identify the patient —
|
||||||
|
// no summary shown" for unregistered numbers).
|
||||||
async resolve(phone: string, auth: string): Promise<ResolvedCaller> {
|
async resolve(phone: string, auth: string): Promise<ResolvedCaller> {
|
||||||
const normalized = phone.replace(/\D/g, '').slice(-10);
|
const normalized = phone.replace(/\D/g, '').slice(-10);
|
||||||
if (normalized.length < 10) {
|
if (normalized.length < 10) {
|
||||||
@@ -85,13 +90,12 @@ export class CallerResolutionService {
|
|||||||
isNew: false,
|
isNew: false,
|
||||||
};
|
};
|
||||||
} else {
|
} else {
|
||||||
// Neither exists — create both
|
// Neither exists — return empty result, don't create records.
|
||||||
const newPatient = await this.createPatient('', '', normalized, auth);
|
// Agent will create records when they book an appointment or log an enquiry.
|
||||||
const newLead = await this.createLead('', '', normalized, newPatient.id, auth);
|
this.logger.log(`[RESOLVE] No existing records for ${normalized} — returning unresolved`);
|
||||||
this.logger.log(`[RESOLVE] Created new lead ${newLead.id} + patient ${newPatient.id} for ${normalized}`);
|
|
||||||
result = {
|
result = {
|
||||||
leadId: newLead.id,
|
leadId: '',
|
||||||
patientId: newPatient.id,
|
patientId: '',
|
||||||
firstName: '',
|
firstName: '',
|
||||||
lastName: '',
|
lastName: '',
|
||||||
phone: normalized,
|
phone: normalized,
|
||||||
|
|||||||
Reference in New Issue
Block a user