refactor AppointmentView