The indexes were a challenge. I was using some argon2d key derivation algorithm to hash the values to use in some indexes. For example if you want to get all the records with the value "toto" in a field, you derive toto (with some common salt), and then you can look in the index all the documents that have the same derived value.
It did leaks some information and some values couldn't be indexed like this because that would leak too much. So sometimes, we had to fetch all the documents from the database and filter on the application level. We also sometimes didn't encrypt the datetimes so we could do efficient queries on specific time ranges.
To be honest, I did that mostly for fun. I know that some people are content with the managed encryption from their favourite cloud provider.
You aim to encrypt the fields you can, without hampering usability too much.
Anything you need to be able to search for (name, ssn) to find patients, or filter on for reports, is generally plaintext.
More sensitive things such as "that patient has aids" you'll have to decide if you want to encrypt it, or do a massive select from the DB anytime you need statistics on it. (Or better yet, encrypt it, but store an anonymized tracker elsewhere. But this is less useful for cureable diseases)
Is it okay if everything is plaintext but the name? In that case you have a row of sensitive data without anything to link to the actual patient if it leaks.
* Health data
* Financial data
Ethnicity
Sexual orientation
Political party affiliation
> Art. 9 GDPR Processing of special categories of personal data
> Processing of personal data revealing racial or ethnic origin, political opinions, religious or philosophical beliefs, or trade union membership, and the processing of genetic data, biometric data for the purpose of uniquely identifying a natural person, data concerning health or data concerning a natural person’s sex life or sexual orientation shall be prohibited.
Encryption is one tool for protecting data - it's not immediately obvious that encryption is always a useful tool.