Send a FHIR® resource to
/fhir/$de-identifyget it back anonymized and/or pseudonymized.
Based on the brilliant Tools for Health Data Anonymization.
📖 Documentation: https://miracum.github.io/fhir-pseudonymizer/docs/
docker run --rm -i -p 8080:8080 \
-e AnonymizationEngineConfigInline='
fhirVersion: R4
fhirPathRules:
- path: Resource.id
method: cryptoHash
- path: Patient.birthDate
method: redact
parameters:
cryptoHashKey: "a-secret-key-with-at-least-32-characters"
' \
ghcr.io/miracum/fhir-pseudonymizer:v3.1.2
curl -X POST -H "Content-Type:application/fhir+json" "http://localhost:8080/fhir/\$de-identify" \
-d '{"resourceType": "Patient", "id": "example", "birthDate": "1985-10-14", "gender": "female"}'There is no default anonymization config - the service fails to start without one. The example above crypto-hashes every Resource.id and redacts Patient.birthDate. See the documentation for how to write your own rules, pseudonymize with gPAS, Vfps, entici or an MII-compliant service, read from Kafka, and for the full configuration reference.
An example for deploying using (Docker) Compose can be found in the compose folder.
The recommended deployment is on Kubernetes. See https://github.com/miracum/fhir-pseudonymizer/tree/master/charts/fhir-pseudonymizer for a Helm Chart.
See CONTRIBUTING.md and DEVELOPMENT.md. How to build, run and test the project is described in the development guide.
All released container images are signed and ship with SLSA Level 3 provenance, see how to verify them. To report a vulnerability, see SECURITY.md.
The project follows SemVer, excluding metrics, traces, and the contents of the container image. See the documentation.