/
Anonymising client records, aka ForgetMe

Anonymising client records, aka ForgetMe

Safeguarding patient/client privacy and anonymising client records in FHIR

Many of the activities that PSI captures on their information systems include PII (Personal Identifiable Information), including names, phone numbers, location (descriptive or coordinates), date of birth, family details, and much more. PSI must offers across all its tools the option for the client to ‘forget me’, which should remove all identifiable data, effectively anonymising the record. We describe on this article the exact steps that we take on the FHIR-based systems to anonymise client’s records.

Usage

A generic service for anonymising ANY client, regardless of project. We do NOT contemplate exemptions on what to remove on a per-project basis.

Definitions

 

 

 

 

Client

In this document it refers to either the Patient resource of the Practitioner resource.

Patient

the FHIR resource normally used to keep personal information about a final consumer

Practitioner

the FHIR resource normally used to represent health workers, which at PSI are normally referred as IPC or Providers

Out of scope

Non FHIR-based implementations.

Anonymisation process

As of March 2023, there is a service implemented as a mediator in OpenHIM that when requested it performs the following operations to anonymise a client. This service can be accessed as a API request by any application requiring a record to be anonymised, by simply providing the ID of the Patient or Practitioner to be executed.

1. Patient/Practitioner resource operations

Implemented for v1.0

Property
(patient/practitioner resource)

Action

Notes

Property
(patient/practitioner resource)

Action

Notes

identifier(s)

set to ‘REDACTED’ each value.

Includes social network logins, national identifiers,

 

active

set to “false”

 

name

set text to 'REDACTED'

 

telecom

set ‘N/A’ each value
Period end date set. (pending)
(includes mobile, email, social networks)

 

gender

KEPT

 

birthDate

only the YEAR is retained (day and month, is present, are removed)

 

address

for all addresses (home, work, other…)

  • text: set to ‘REDACTED’

  • line: set to ‘REDACTED’

  • city/(town): set to ‘REDACTED’

  • district/(county): set to ‘REDACTED’

  • state: KEPT

  • postal code: set to ‘REDACTED’

  • country: KEPT

 

photo

removed

 

contact(s)*

Apply same logic than a Patient or Practicioner.

Relationship: 'U’ (unknown code). Need discussion

 

link*

KEPT

 

qualification**

KEPT

 

communication

KEPT

 

Notes: *applies to patient resource | **applies to practitioner resource

2. QuestionnaireResponse

In most implementations, PII is collected via a series of questions on a registration form, which means that PII data will be saved on an associated QuestionnaireResponse resource. For the “forget me” script being able to remove PII data from the QuestionnaireResponse items that contain such data, the original Questionnaire resource must identify

Property (QResponse resource)

Action

Notes

Property (QResponse resource)

Action

Notes

Item associated to a PII Question

removed

The question is a PII questions, as defined on the questionnaire resource (see questionnaire resource, next table)

Property (Questionnaire resource)

Action

Notes

Property (Questionnaire resource)

Action

Notes

item/????

contains PII??? TBC

a tag that identifies the question as collecting PII, which must be removed during anonymisation process

3. Communications

Sent or received communications are stored on the communication resource. These communications can be via SMS, social media or email.

Property (Communication resource)

Action

Notes

Property (Communication resource)

Action

Notes

payload/content

removed

May contain the client name of other PII. Example: “Dear %client_name% you next appointment for…”

4. CommunicationRequests

PSI uses CommRequest to queue scheduled messages

Property (C.Request resource)

Action

Notes

Property (C.Request resource)

Action

Notes

status

if “active” (meaning scheduled), change to “revoke”

 

payload/content

removed

May contain the client name or other PII. Example: “Dear %client_name% you next appointment for…”

5. Other resources

As of February 2023, we have not yet identified other resources that need to be part of the forget me/ anonymised process.

Resource history

Submitting an updated version of the resource without the PII information will only affect the latest version of a resource: FHIR servers maintains a versioned evolution of each resource, creating a new one every time there is an update. So to truly remove all PII from the server, we will need to expunge all history. But the expunge process affects ALL resources, not the individual resource id. To address this gap, we plan to use the “Update with History Rewrite”, a hapiFHIR implementation process that allow to re-write previous versions, allowing us to truly remove all data from the resource.

Shared profile across projects

Most implementations are responsible for avoiding the recreation of a client profile if it already exist, hence a single patient can be used by more than one implementation (sometimes referred as projects). When the operation forget me is invoked, the patient (or practitioner) record will be anonymized as detailed above. hence all other projects will also lose such registration, and the patient will need to be re-registered. Hence, the implementer must notify the client that he/she will also loose access to the other projects.

Special case - clients sharing a phone number

Phone numbers can be shared across various clients, for which we create various profiles using a combination of phone+secret. This is stored as an identifier in the patient resource.

Case 1: A user that shares a phone number identified with its secret word: only the specific patient is affected

Case 2: we get a request from the phone number, without specifying what specific phone+secret the request is for: we anonymised ALL associated patients to that phone number

Data Backups

Previous versions of the resources will be kept on the backups of PSI by the retentions periods. They cannot be updated. This could result in the rate occasion of a restore of a backup copy, on a client record repairing.

To properly address this loop hole, we will need to keep a log of all IDs that has been requested to be anonymised, and in the event of a restore, rerun the anonymisation request between the date of the backup an the present. Backups are normally kept for a minimum of 12 months.

Related content