Pseudonimisatie van gestructureerde data
CTcue maakt gebruik van pseudo IDs om de privacy van patiënten te waarborgen. Deze IDs worden gegenereerd met behulp van de patiënten nummers, en zijn onomkeerbaar. Deze techniek staat bekend als hashen. Wij maken gebruik van SHA-512 hashing algoritme.
Daar bovenop worden de hashes ook ge”salt”. Dit betekent dat de hash nog veiliger is en dat de Pseudo ID nooit teruggedraaid zal kunnen worden zonder toegang tot de CTcue database binnen het ziekenhuis.
Daarnaast worden in de bron patiënten-rijen zo nu en dan samengevoegd. Patiënt P1 en P2 zijn bijvoorbeeld initieel niet hetzelfde, maar na een wijziging in het bronsysteem kan er zijn besloten dat P2 (die bijvoorbeeld is binnengekomen op de spoedeisende hulp) eigenlijk hetzelfde is als P1 (die al langer stond ingeschreven in de bron). Dit zorgt ook bij CTcue voor een merge van de Pseudo IDs van die patiënten. De pseudo ID is dan een hash van de langst bestaande patiëntennummer van de set (in het voorbeeld een SHA-512 hash van P1).
Pseudonimisatie van teksten
Het pseudonimiseren van teksten is een taak die om een zorgvuldige benadering vraagt. Enerzijds geldt dat wanneer je te weinig persoonlijke gegevens verwijdert, de privacy van de patiënt in het geding komt, maar anderzijds is het zo dat als je teveel verwijdert, de kwaliteit van de medische informatie kan afnemen.
Voor het pseudonimiseren van teksten maken we gebruik van twee verschillende methodes: de eerste methode maakt gebruik van alle informatie die over een patiënt bekend is, en de tweede methode maakt gebruik van patroonherkenning om de nog onbekende informatie te detecteren.
In de database wordt voor elke patiënt informatie opgeslagen zoals de voornaam, achternaam, geboortedatum, enz. Bij de eerste methode gebruiken we de volgende informatie als input om de tekst mee te analyseren:
- patiëntnummer
- initialen,
- voornaam
- achternaam
- geboortedatum
- overlijdensdatum
- burgerservicenummer
- straatnaam
- huisnummer
- postcode
- woonplaats
- telefoonnummer
De hele geschiedenis van deze informatie wordt meegenomen - dus als een patiënt op meerdere adressen heeft gewoond, dan worden ook alle straatnamen gedetecteerd.
Voor elk type data zijn er verschillende zoekmethodes die worden toegepast. Zo is het bij namen bijvoorbeeld belangrijk om eerst te analyseren of de naam die bekend is wel daadwerkelijk een naam is; het komt bij spoedgevallen namelijk nogal eens voor dat er medische beschrijvingen in het naam-veld worden ingevoerd. Ook houden we rekening met spellingsfouten -of varianten. Een “ij” kan bijvoorbeeld ook als “y” worden opgeschreven, of “ea” wordt per ongeluk als “ae” opgeschreven. Al deze varianten worden vervangen, en vervolgens voeren we ook een fuzzy-match uit op de teksten. Dit houdt in dat woorden die niet een exacte match zijn, maar wel sterk op de naam lijken, ook vervangen worden. Hierbij wordt ook gecheckt of we daardoor niet per ongeluk een medische term verwijderen.
Voor telefoonnummers en emailadressen geldt dat we ze altijd verwijderen, omdat voor beide geldt dat ze een makkelijk te detecteren patroon hebben. Bij adressen verwijderen we sowieso de adressen die als input ingevoerd zijn, en daarnaast kijken we ook naar veel voorkomende varianten zoals “str” wat voor “straat” staat.
Geboorte- en overlijdensdatums worden zowel in de numerieke variant (‘02/03/1972’, ‘1-3-67’) als tekstuele variant (‘2 november 1965’, ‘3 okt `57’) verwijderd. Het geboortejaar en de leeftijd worden daarentegen niet verwijderd, omdat dit juist weer medisch relevant kan zijn.
Persoonlijke nummers zoals het Rijksregisternummer of een verzekeringsnummer worden verwijderd op basis van de geleverde input, waarbij ook varianten herkend worden die bijvoorbeeld voorloopnullen hebben. Daarnaast kijken we ook naar de context rondom nummers. Als er bijvoorbeeld “Rijksregisternummer” voor staat of tekst die aangeeft dat het om een verzekeringsnummer gaat, dan verwijderen we ook het nummer, zelfs als het niet als input geleverd is, of als het verkeerd geregistreerd was.
Het proces verloopt zo dat eerst alle bekende informatie vervangen wordt, en daarna beginnen de methodes die ook met de onbekende informatie om kunnen gaan, zoals buitenlandse adressen, verkeerd geregistreerde informatie, of namen van familieleden. Deze methodes baseren zich op bekende patronen en maken ook gebruik van eerdere pseudonimisaties die hebben plaatsgevonden op basis van de input.
Patiënt privacy en bescherming van persoonsgegevens zijn erg belangrijk. Doordat wij gegevens gepseudonimiseerd beschikbaar stellen aan gebruikers kunnen zij voldoen aan de door de AVG gestelde regels en wetgeving. Bij CTcue zijn wij continue aan het werk om onze methodes te verbeteren; op basis van de nieuwste ontwikkelingen, maar ook op basis van input van gebruikers en klanten.