Files
baya-monorepo/client/src/services/patients/hooks/usePatient.ts
T
2026-07-10 16:58:15 +03:30

20 lines
844 B
TypeScript

import { useQuery } from '@tanstack/react-query';
import { patientsApi } from '../apis';
import { patientKeys } from '../keys';
import { PATIENTS_STALE_TIME } from '../constants';
/**
* A single patient by id — the identity header for the E2 record viewer (name, age/gender, conditions).
* Keyed on `patientKeys.detail(id)` so it shares/warms the same cache the list primes. A missing/cross-tenant
* id `404`s (surfaced as the query error); the caller renders a not-found state. `enabled` lets the E2 viewer
* defer the fetch until the clinical-access check passes.
*/
export function usePatient(id: number, options?: { enabled?: boolean }) {
return useQuery({
queryKey: patientKeys.detail(id),
queryFn: () => patientsApi.get(id),
enabled: (options?.enabled ?? true) && id > 0,
staleTime: PATIENTS_STALE_TIME,
});
}