fix: case-insensitive voornaam zoeken door capitalize toe te passen
Voornaam zoeken werkte niet omdat name_given array case-sensitive is. Capitalize nu de zoekterm (eerste letter hoofdletter) voordat deze wordt gebruikt in de array search, zodat 'jan' matcht met 'Jan'. Aangepast in beide search endpoints: - /api/patients/search - /api/cortex/patients/search
This commit is contained in:
@@ -52,13 +52,18 @@ export async function GET(request: NextRequest) {
|
||||
|
||||
const query = validation.data.q.trim();
|
||||
|
||||
// Capitalize first letter, lowercase rest (matches Dutch name format)
|
||||
const capitalizedQuery = query.charAt(0).toUpperCase() +
|
||||
query.slice(1).toLowerCase();
|
||||
|
||||
// Fuzzy search on patient names
|
||||
// Search in both name_family and name_given fields
|
||||
// name_family uses ilike (case-insensitive), name_given uses cs with capitalized query
|
||||
const { data: patients, error: searchError } = await supabase
|
||||
.from('patients')
|
||||
.select('id, name_family, name_given, birth_date, identifier_bsn')
|
||||
.or(
|
||||
`name_family.ilike.%${query}%,name_given.cs.{"${query}"}`
|
||||
`name_family.ilike.%${query}%,name_given.cs.{"${capitalizedQuery}"}`
|
||||
)
|
||||
.limit(10)
|
||||
.order('name_family', { ascending: true });
|
||||
|
||||
@@ -129,9 +129,14 @@ export async function GET(request: NextRequest) {
|
||||
`identifier_bsn.ilike.%${searchQuery}%,identifier_client_number.ilike.%${searchQuery}%`
|
||||
);
|
||||
} else {
|
||||
// Capitalize first letter, lowercase rest (matches Dutch name format)
|
||||
const capitalizedQuery = searchQuery.charAt(0).toUpperCase() +
|
||||
searchQuery.slice(1).toLowerCase();
|
||||
|
||||
// Search name fields (family name and given names)
|
||||
// name_family uses ilike (case-insensitive), name_given uses cs with capitalized query
|
||||
dbQuery = dbQuery.or(
|
||||
`name_family.ilike.%${searchQuery}%,name_given.cs.{${searchQuery}}`
|
||||
`name_family.ilike.%${searchQuery}%,name_given.cs.{${capitalizedQuery}}`
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user