I agree with the others: this is bad practice, from every POV, including design, audit, recovery, security, performance. The list goes on.
If a hacker gets into the database, the game is over. It doesn't matter if you obfuscated data, it will be a matter of time before that can be de-obfuscated.
RDBMS these days allow column-based permissions, and so, using real keys to join to other tables will allow standard SQL queries to be used, without the overhead to de-obfuscate. Moreover, your auditors will appreciate the attention to ability to scale, upgrade, troubleshoot, and still maintain integrity and security.
Having said that, some vendors, like Microsoft and Oracle, maybe others, have stepped up and allowed very focused encryption. Keys are stored in a separate system, and access to columns are protected. Microsoft SQL Server, for example, uses TDE (transparent data encryption) and extensible key management (EKM) to do just this. Therefore, your table structures don't change, and you don't compromise the overhead of joins with obfuscation, et al. So, while you might have a doctor and a patient, you won't necessarily know the names or other details of either, since TDE can allow encryption of these fields.
RDBMS systems also allow for encryption of the entire database, to handle instances where the database itself is stolen.
In short, don't obfuscate the keys to the data. Rather, encrypt the data that is sensitive. You can look at like this: Don't obfuscate the metadata; rather, only encrypt the data. Think of the keys and foreign keys as metadata.
Be careful, too, not to fall victim to the practice of placing strong security on the front door, all the while leaving the back door unlocked: your transaction logs, error logs, application, application logs, backup systems, and people who are trusted to have access to this data and applications are all sources for leaks, so, shore up permissions, and be careful what you log, and what you do with those logs.
Once you apply these principles, it becomes less important to obfuscate keys.