I think a better solution would be to give each doctor a smartcard, and to require some sort of threshold signature for certain operations (like sending patient data outside the hospital network) so that no single doctor has all the power. Attribute based encryption comes to mind here, since the ciphertext should only be stored once but should allow any doctor to decrypt; nurses might also need some amount of decryption capability (and would then need a smartcard of their own). Giving patients full control over their records sounds great on paper, but in practice people will forget their passwords and lose their tokens, and will probably not even realize the token is lost until they actually need medical care (and then it is too late).