Ok well your making it harder than it needs to be, have you looked at the annotation based approach to delclaritive transactions?
Take a look at the Spring reference
doc here
http://static.springsource.org/spring/docs/3.1.x/spring-framework-reference/html/transaction.html#transaction-declarative-annotations
You will want an interface for every service and repository (this is good practice anyway). This is because by default Spring uses an interface based JDK dynamic proxy (no proxy no transaction) This is interface restriction is also applicable to the XML based declarative transactions you are using currently.
Use the @Transactional on the concrete class method but only on methods exposed by the interface. Also be sure to access the class by the interface. I would read that section of the docs I linked and give it a try. It is much simpler.
A little sampling your transaction configuration in your xml becomes this:
That's it your done. Now on any method that is transactional in one of your beans you simply add the annotation.
So for your example you have this bean
I am going to change it because it looks like you are not using interfaces. I am going to wire up the implementation instead.
Now your your class might look something like this
You also probably have another bean we will call it PatientService when you declare your dao in there make sure to reference it by the interface like this
You may also want to consider moving your @Transactionals to the Service class (in my example put it on the method in PatientServiceImpl). This allows you to group multiple db operations together within a single transaction that will rollback together on exceptions.