do you need to show the older diagnosis? If not, you could create a stored procedure that would show the top 1 for each patient (group by patient), or a stored proc that has a column for most recent date and suppress all records that are not for that date (don't really like this as you are retrieving much more data than you need)
I really favor stored procedures as they give you way more flexibility in creating your data. Crystal is really pretty simple in this regard.
You could also sort the patient data by appt date, that should bring the newest the top.
HTH