What you've got is what I would consider the 'correct' way to do it. If your are putting the results of this query into a report you might be able to artificially normalize your data and use subreports to show your diagnoses and procedures which might help your performance.
For instance to get an artificially normalized structure for your diagnoses you'd have something like (Assuming DMICSPELLID is the unique field in this)
Code:
SELECT DMICSpellID, [Diagnosis Primary (ICD)] FROM [FCE Output]
UNION ALL
SELECT DMICSpellID, [Diagnosis 1st Secondary (ICD)] FROM [FCE Output]
UNION ALL
SELECT DMICSpellID, [Diagnosis 2nd Secondary (ICD)] FROM [FCE Output]
UNION ALL
etc...
Then with this union query you'd only have to link your icd10 table one time but you would have to use subreports to show all the diagnosis codes related to a single person.