Task #94360
openFeature #93822: HUMS Security FAT
Task #93830: Data Protection/Verify encryption of sensitive data
Medcare Patient Demographic Encryption
0%
Description
- Search Patient Name field is not encrypted in Mongodb ( Kunal/Daniyal)
Make sure all Patient demographic data is encrypted in all tables.
Mongo, Postgres everywhere in Medcare.
Updated by Kunal Yelne 4 months ago
- Assignee changed from Kunal Yelne to Rushikesh Salunkhe
Hi Rushikesh,
This is an R&D task.
In our database, the ExtendedPatient table contains the searchPatientName field. This field is specifically used to support full and partial patient name searches.
The reason we store this field separately is that the actual patient name is encrypted, and encrypted data cannot be searched using partial matches (e.g., LIKE '%name%').
To overcome this limitation, we introduced the searchPatientName field, which stores searchable data and enables partial name searches while keeping the original patient name encrypted.
Please review how this field has been implemented and used for partial searching with encrypted patient data. Once you understand the approach, we can apply the same solution wherever required.
Updated by Rushikesh Salunkhe 3 months ago
- Status changed from Assigned to Coded
Partial search directly on encrypted data — not feasible
Standard encryption (AES with a random IV, which is the secure/correct way to encrypt) produces completely different ciphertext every time, even for the same input. For example, encrypting "AHMAD" today and encrypting "AHMAD" tomorrow will produce two totally different-looking encrypted strings.
Because of this:
There's no pattern or relationship between the encrypted value and the original text.
Database operations like LIKE '%AHMAD%' or partial regex match cannot work on encrypted fields — the ciphertext is effectively random noise from the database's point of view.
Even exact match isn't reliable with random-IV encryption, since the same plaintext won't produce the same ciphertext twice.
Updated by Shweta Sandip Waghmare 3 months ago
- Assignee changed from Rushikesh Salunkhe to Mangesh Pangrekar