public interface IPatientService
{
    Task<Patient> RegisterAsync(RegisterPatientRequest req);
    Task<PagedResult<Patient>> ListAsync(string? q, int page, int pageSize);
    Task<Patient> GetByIdAsync(Guid id);
    Task<Encounter> OpenEncounterAsync(Guid patientId, OpenEncounterRequest req);
    Task<Patient> UpdateAsync(Guid id, UpdatePatientRequest req);
    Task<Patient> RegisterOrUpdateByIdentifierAsync(FhirPatientUpsertRequest req);
}