From 0b2ae6ccc1755dfd8166919d1c2396010a8f416d Mon Sep 17 00:00:00 2001 From: DevSoftTech Server Date: Mon, 13 Apr 2026 13:04:01 +0530 Subject: [PATCH] Broaden consult search candidates for phonetic medicine matches --- app/Controllers/Opd_prescription.php | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/app/Controllers/Opd_prescription.php b/app/Controllers/Opd_prescription.php index ec09e46..2684007 100644 --- a/app/Controllers/Opd_prescription.php +++ b/app/Controllers/Opd_prescription.php @@ -5047,6 +5047,16 @@ class Opd_prescription extends BaseController $builder->orLike($nameField, $qFirstToken, 'after'); } + // Phonetic candidates can differ by one letter (e.g. CETLAY/CETLEY), + // so include an alpha-prefix fallback to widen SQL fetch before PHP ranking. + if ($qAlpha !== '') { + if (mb_strlen($qAlpha) >= 3) { + $builder->orLike($nameField, substr($qAlpha, 0, 3), 'after'); + } elseif (mb_strlen($qAlpha) >= 2) { + $builder->orLike($nameField, substr($qAlpha, 0, 2), 'after'); + } + } + // Normalize separators so variants like "utor", "u-tor", "u tor" match each other. if ($qNormalized !== '') { $qNormalizedSql = str_replace("'", "''", strtoupper($qNormalized));