Configures de-id options specific to different types of content. Each submessage customizes the handling of an https://tools.ietf.org/html/rfc6838 media type or subtype. Configs are applied in a nested manner at runtime.
JSON representation | |
---|---|
{ "dicom": { object( |
Fields | |
---|---|
dicom |
Configures de-id of application/DICOM content. |
fhir |
Configures de-id of application/FHIR content. |
image |
Configures de-identification of image pixels wherever they are found in the sourceDataset. |
text |
Configures de-identification of text wherever it is found in the sourceDataset. |
DicomConfig
Specifies the parameters needed for de-identification of DICOM stores.
JSON representation | |
---|---|
{ "skipIdRedaction": boolean, // Union field |
Fields | ||
---|---|---|
skipIdRedaction |
If true, skip replacing StudyInstanceUID, SeriesInstanceUID, SOPInstanceUID, and MediaStorageSOPInstanceUID and leave them untouched. The Cloud Healthcare API regenerates these UIDs by default based on the DICOM Standard's reasoning: "Whilst these UIDs cannot be mapped directly to an individual out of context, given access to the original images, or to a database of the original images containing the UIDs, it would be possible to recover the individual's identity." http://dicom.nema.org/medical/dicom/current/output/chtml/part15/sect_E.3.9.html |
|
Union field tag_filter . Determines tag filtering method (meaning which tags to keep/remove). tag_filter can be only one of the following: |
||
keepList |
List of tags to keep. Remove all other tags. |
|
removeList |
List of tags to remove. Keep all other tags. |
|
filterProfile |
Tag filtering profile that determines which tags to keep/remove. |
TagFilterList
List of tags to be filtered.
JSON representation | |
---|---|
{ "tags": [ string ] } |
Fields | |
---|---|
tags[] |
Tags to be filtered. Tags must be DICOM Data Elements, File Meta Elements, or Directory Structuring Elements, as defined at: http://dicom.nema.org/medical/dicom/current/output/html/part06.html#table_6-1,. They may be provided by "Keyword" or "Tag". For example "PatientID", "00100010". |
TagFilterProfile
Profile that determines which tags to keep/remove.
Enums | |
---|---|
TAG_FILTER_PROFILE_UNSPECIFIED |
No tag filtration profile provided. Same as KEEP_ALL_PROFILE. |
MINIMAL_KEEP_LIST_PROFILE |
Keep only tags required to produce valid DICOM. |
ATTRIBUTE_CONFIDENTIALITY_BASIC_PROFILE |
Remove tags based on DICOM Standard's Attribute Confidentiality Basic Profile (DICOM Standard Edition 2018e) http://dicom.nema.org/medical/dicom/2018e/output/chtml/part15/chapter_E.html. |
KEEP_ALL_PROFILE |
Keep all tags. |
DEIDENTIFY_TAG_CONTENTS |
Inspects within tag contents and replaces sensitive text. The process can be configured using the TextConfig. Applies to all tags with the following Value Representation names: AE, LO, LT, PN, SH, ST, UC, UT, DA, DT, AS |
FhirConfig
Specifies how to handle de-identification of a FHIR store.
JSON representation | |
---|---|
{
"fieldMetadataList": [
{
object( |
Fields | |
---|---|
fieldMetadataList[] |
Specifies FHIR paths to match and how to transform them. Any field that is not matched by a FieldMetadata is passed through to the output dataset unmodified. All extensions are removed in the output. |
FieldMetadata
Specifies FHIR paths to match, and how to handle de-identification of matching fields.
JSON representation | |
---|---|
{
"paths": [
string
],
"action": enum( |
Fields | |
---|---|
paths[] |
List of paths to FHIR fields to be redacted. Each path is a period-separated list where each component is either a field name or FHIR type name, for example: Patient, HumanName. For "choice" types (those defined in the FHIR spec with the form: field[x]) we use two separate components. For example, "deceasedAge.unit" is matched by "Deceased.Age.unit". Supported types are: AdministrativeGenderCode, Code, Date, DateTime, Decimal, HumanName, Id, LanguageCode, Markdown, Oid, String, Uri, Uuid, Xhtml. Base64Binary is also supported, but may only be kept as-is or have all the content removed. |
action |
Deidentify action for one field. |
Action
Whether or not to redact this field, or whether to inspect it for PHI.
Enums | |
---|---|
ACTION_UNSPECIFIED |
No action specified. |
TRANSFORM |
Transform the entire field. |
INSPECT_AND_TRANSFORM |
Inspect and transform any found PHI. |
DO_NOT_TRANSFORM |
Do not transform. |
ImageConfig
Specifies how to handle de-identification of image pixels.
JSON representation | |
---|---|
{
"textRedactionMode": enum( |
Fields | |
---|---|
textRedactionMode |
Determines how to redact text from image. |
TextRedactionMode
How to redact text found in images (if at all).
Enums | |
---|---|
TEXT_REDACTION_MODE_UNSPECIFIED |
No text redaction specified. Same as REDACT_NO_TEXT. |
REDACT_ALL_TEXT |
Redact all text. |
REDACT_SENSITIVE_TEXT |
Redact sensitive text. |
REDACT_NO_TEXT |
Do not redact text. |
TextConfig
JSON representation | |
---|---|
{
"transformations": [
{
object( |
Fields | |
---|---|
transformations[] |
The transformations to apply to the detected data. |
InfoTypeTransformation
A transformation to apply to text that is identified as a specific infoType.
JSON representation | |
---|---|
{ "infoTypes": [ string ], // Union field |
Fields | ||
---|---|---|
infoTypes[] |
InfoTypes to apply this transformation to. If this is not specified, the transformation applies to any infoType. |
|
Union field
|
||
redactConfig |
Config for text redaction. |
|
characterMaskConfig |
Config for character mask. |
|
dateShiftConfig |
Config for date shift. |
|
cryptoHashConfig |
Config for crypto hash. |
|
replaceWithInfoTypeConfig |
Config for replace with InfoType. |
RedactConfig
Define how to redact sensitive values. Default behaviour is erase. For example, "My name is Jane." becomes "My name is ."
CharacterMaskConfig
Mask a string by replacing its characters with a fixed character.
JSON representation | |
---|---|
{ "maskingCharacter": string } |
Fields | |
---|---|
maskingCharacter |
Character to mask the sensitive values. If not supplied, defaults to "*". |
DateShiftConfig
Shift a date forward or backward in time by a random amount which is consistent for a given patient and crypto key combination.
JSON representation | |
---|---|
{ "cryptoKey": string } |
Fields | |
---|---|
cryptoKey |
An AES 128/192/256 bit key. Causes the shift to be computed based on this key and the patient ID. A default key is generated for each Deidentify operation and is used wherever cryptoKey is not specified. A base64-encoded string. |
CryptoHashConfig
Pseudonymization method that generates surrogates via cryptographic hashing. Uses SHA-256. Outputs a base64-encoded representation of the hashed output (for example, L7k0BHmF1ha5U3NfGykjro4xWi1MPVQPjhMAZbSV9mM=
).
JSON representation | |
---|---|
{ "cryptoKey": string } |
Fields | |
---|---|
cryptoKey |
An AES 128/192/256 bit key. Causes the hash to be computed based on this key. A default key is generated for each Deidentify operation and is used wherever cryptoKey is not specified. A base64-encoded string. |
ReplaceWithInfoTypeConfig
When using the INSPECT_AND_TRANSFORM
action, each match is replaced with the name of the infoType. For example, "My name is Jane" becomes "My name is [PERSON_NAME]." The TRANSFORM
action is equivalent to redacting.