PatientSim: A Persona-Driven Simulator for Realistic Doctor-Patient Interactions