A resposta de Ominus aborda sua primeira pergunta. A resposta para a segunda pergunta pode exigir mais detalhes sobre seu aplicativo.
Outra abordagem com segurança ainda maior se os pacientes precisarem acessar o banco de dados pode ser ter um banco de dados separado para cada usuário. Nesta abordagem, você pode usar uma estrutura que fornece funcionalidade de vários inquilinos e vários bancos de dados. O problema, porém, é que, se você tiver usuários de aplicativos separados e usuários de banco de dados, a sincronização desses usuários será incrivelmente difícil. Eu acho que os pacientes não precisam acessar seu banco de dados. Se eles precisarem, pode ser mais seguro ter uma chave por usuário.
Além dos requisitos legais ou contratuais, algumas outras razões pelas quais posso pensar em ter bancos de dados separados são: percepção do cliente sobre aumento da segurança, facilitando as vendas, preocupações com quebra de criptografia e preocupações com comprometimento da (s) chave (s).
Em relação à parte da resposta de Briddmus, onde ele afirma "que você precisa criptografar mais do que apenas as informações médicas": isso só é válido se todos no banco de dados tiverem uma condição médica. (Eu acho que esse é o caso).
Nota: partes desta resposta seriam mais adequadas como comentários, mas ainda não tenho representante suficiente para postar comentários aqui.