See an example database - Patients.odb
Your question regarding sub forms was answered by @frofa in which he said you need a sub form of the first sub form.
A Report has to be based on a single Table or Query as there is no equivalent of the sub form.
You need to base your Report on a Query as you need information from 3 Tables. As @PYS said in his reply you need to alter the Query that the Report is based on. The macro in my example does this. The button on the form runs the macro which first stores the PatientID of the selected record in a variable. The Query is then modified so the last WHERE clause on the PatientID is set to the value of the variable.