С row_number()
оконной функцией:
select *,
row_number() over (partition by patient_id order by appointment_date) [order]
from tablename
order by patient_id, appointment_date
Но вам придется изменить формат ваших дат на YYYY-MM-DD hh:mm
, чтобы они были сопоставимы.