You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
For deployment in Kubernetes see <https://github.com/miracum/charts/tree/master/charts/fhir-gateway> for a Helm Chart using the FHIR Pseudonymizer as one of its components.
22
+
For deployment in Kubernetes see <https://github.com/miracum/charts/tree/master/charts/fhir-pseudonymizer> for a Helm Chart deploying the FHIR Pseudonymizer.
23
23
24
24
### API Endpoints
25
25
@@ -29,11 +29,11 @@ An OpenAPI definition for the FHIR operation endpoints is available at `/swagger
29
29
30
30
#### `$de-identify`
31
31
32
-
The server provides a `/fhir/$de-identify` operation to de-identfiy received FHIR resources according to the configuration in the [anonymization.yaml](src/FhirPseudonymizer/anonymization.yaml) rules. See <https://github.com/microsoft/FHIR-Tools-for-Anonymization/> for more details on the anonymization rule configuration.
32
+
The server provides a `/fhir/$de-identify` operation to de-identfiy received FHIR resources according to the configuration in the [anonymization.yaml](src/FhirPseudonymizer/anonymization.yaml) rules. See [Tools for Health Data Anonymization](https://github.com/microsoft/Tools-for-Health-Data-Anonymization) for more details on the anonymization rule configuration.
33
33
34
34
The service comes with a sample configuration file to help meet the requirements of HIPAA Safe Harbor Method (2)(i): [hipaa-anonymization.yaml](src/FhirPseudonymizer/hipaa-anonymization.yaml).This configuration can be used by setting `ANONYMIZATIONENGINECONFIGPATH=/etc/hipaa-anonymization.yaml`.
35
35
36
-
A new `pseudonymize` method was added to the default list of anonymization methods linked above. It uses [gPAS](https://www.ths-greifswald.de/en/researchers-general-public/gpas/) to create pseudonyms and replace the values in the resource with them.
36
+
A new `pseudonymize` method was added to the default list of anonymization methods linked above. It uses either [gPAS](https://www.ths-greifswald.de/en/researchers-general-public/gpas/) or [Vfps](https://github.com/chgl/vfps) to create pseudonyms and replace the values in the resource with them.
37
37
For example, the following rule replaces all identifiers of type `http://terminology.hl7.org/CodeSystem/v2-0203|MR` with a pseudonym generated in the `PATIENT` domain.
38
38
39
39
```yaml
@@ -45,7 +45,10 @@ fhirPathRules:
45
45
46
46
Note that if the `domain` setting is omitted, and an ID or reference is pseudonymized, then the resource name is used as the pseudonym domain. For example, pseudonymizing `"reference": "Patient/123"` will try to create a pseudonym for `123` in the `Patient` domain.
47
47
48
-
Note that all methods defined in [FHIR-Tools-for-Anonymization](https://github.com/microsoft/FHIR-Tools-for-Anonymization/) are supported. For example, to clamp a patient's birthdate if they were born before January 1st 1931 to 01/01/1930, use:
48
+
When using [Vfps](https://github.com/chgl/vfps), the `domain` setting can instead also be set as `namespace`.
49
+
50
+
Note that all methods defined in [Tools for Health Data Anonymization](https://github.com/microsoft/Tools-for-Health-Data-Anonymization) are supported.
51
+
For example, to clamp a patient's birthdate if they were born before January 1st 1931 to 01/01/1930, use:
49
52
50
53
```yaml
51
54
fhirPathRules:
@@ -77,16 +80,35 @@ Additionally, there are some optional configuration values that can be set as en
| `gPAS__Url` | The gPAS TTP FHIR Gateway URL. Only required if any of the anonymization.yaml rules use the `pseudonymize` method. | `""` |
81
-
| `gPAS__Auth__Basic__Username` | The HTTP basic auth username to connect to gPAS | `""` |
82
-
| `gPAS__Auth__Basic__Password` | The HTTP basic auth password to connect to gPAS | `""` |
83
83
| `AnonymizationEngineConfigPath` | Path to the `anonymization.yaml` that contains the rules to transform the resources. | `"/etc/anonymization.yaml"` |
84
84
| `ApiKey` | Key that must be set in the `X-Api-Key` header to allow requests to protected endpoints. | `""` |
85
-
| `gPAS__Version` | Version of gPAS to support. There were breaking changes to the FHIR API in 1.10.2 and 1.10.3, so explicitely set this value if you are using a later version than 1.10.1. | `"1.10.1"` |
86
85
| `UseSystemTextJsonFhirSerializer` | Enable the new `System.Text.Json`-based FHIR serializer to significantly [improve throughput and latencies](#usesystemtextjsonfhirserializer). See <https://github.com/FirelyTeam/firely-net-sdk/releases/tag/v4.0.0-r4> | `false` |
86
+
| `PseudonymizationService` | The type of pseudonymization service to use. Can be one of `gPAS`, `Vfps`, `None` | `"gPAS"` |
87
87
88
88
See [appsettings.json](src/FhirPseudonymizer/appsettings.json) for additional options.
89
89
90
+
The application supports pseudonymization using either [gPAS](https://www.ths-greifswald.de/forscher/gpas/) or [Vfps](https://github.com/chgl/vfps) which can be configured via the `PseudonymizationService` setting.
91
+
Service-specific configuration settings are listed below.
| `gPAS__Url` | The gPAS TTP FHIR Gateway URL. Only required if any of the anonymization.yaml rules use the `pseudonymize` method. | `""` |
98
+
| `gPAS__Auth__Basic__Username` | The HTTP basic auth username to connect to gPAS | `""` |
99
+
| `gPAS__Auth__Basic__Password` | The HTTP basic auth password to connect to gPAS | `""` |
100
+
| `gPAS__Version` | Version of gPAS to support. There were breaking changes to the FHIR API in 1.10.2 and 1.10.3, so explicitely set this value if you are using a later version than 1.10.1. | `"1.10.1"` |
| `Vfps__Address` | The Vfps service address. Use `dns:///` scheme for client-side load-balancing. | `""` |
107
+
| `Vfps__UnsafeUseInsecureChannelCallCredentials` | If set to `true`, `CallCredentials` are applied to gRPC calls made by an insecure channel. Sending authentication headers over an insecure connection has security implications and shouldn't be done in production environments. | `true` |
108
+
| `Vfps__UseTls` | If set to `true`, creates client-side SSL credentials loaded from disk file pointed to by the `GRPC_DEFAULT_SSL_ROOTS_FILE_PATH` environment variable. If that fails, gets the roots certificates from a well known place on disk. | `false` |
109
+
| `Vfps__Auth__Basic__Username` | The HTTP basic auth username to connect to the Vfps service. Used in the `Authorization: Basic` metadata header value for the gRPC calls. | `""` |
110
+
| `Vfps__Auth__Basic__Password` | The HTTP basic auth password to connect to the Vfps service. | `""` |
111
+
90
112
## Dynamic rule settings
91
113
92
114
Anonymization and pseudonymization rules in the `anonymization.yaml` config file can be overridden and/or extended on a per request basis.
0 commit comments