Hi,
What means OPD Visit table? What is its purpose?
About your 2nd question, simply put another foreign key of Referring Doctor into the OPD table. What you have to do, when you will insert one or another? For that one which you want to insert an ID (which has to be higher then 0) simple put an integer, but the other put 0 (zero). This way you will know what kind of doctor it is. If the value is zero, you will know its not this type (but the other).
I hope you know what I mean.