Your application is very similar to a CRM (customer relationship management) with which I am pretty familiar.
First, the master key is the patient ID, without it, you have only a confusion in relationships. Then this patient ID is linked to its personal medical records and after that the visit(s) are linked to the patient ID and all required information.
I am pretty sure there was a patient table, this one is going to be your master source. You have multiple unique patient coming to the office maybe multiple times. The patient is recorded once at first visit and then information is added to its "file", whenever he/she comes back or whoever during the visit handles the patient, so why are there name, middle name and first name in OPD_visit_record?
Regarding the summary form, I would rather use whether a grid or a report to display everything at once as this multitude of tiny tiny boxes is confusing at most, then there would be an option with other forms should you need to add more information. For the amount of information required, I wold design it as a wizard like an install wizard ( showing information, next, next, next...) and maybe I would add a dockable form to be able to return super quickly to wherever I need.
Creating reports is feasible, yet challenging, people here could help you with that.