En esta página se explica cómo usar la configuración de la versión 1 DicomConfig
para desidentificar los datos sensibles de las instancias DICOM en los siguientes niveles:
- A nivel del conjunto de datos mediante
datasets.deidentify
- A nivel de almacén DICOM mediante
dicomStores.deidentify
En esta página también se explica cómo aplicar filtros al desidentificar datos a nivel de almacén DICOM.
Descripción general de la desidentificación
Desidentificación a nivel de conjunto de datos
Para desidentificar datos DICOM a nivel del conjunto de datos, llama a la operación
datasets.deidentify
. La llamada a la API de anonimización tiene los siguientes componentes:
- El conjunto de datos de origen: un conjunto de datos con almacenes DICOM que contienen una o más instancias, las cuales, a su vez, incluyen datos sensibles. Al llamar a la operación
deidentify
, se desidentifican todas las instancias de los almacenes DICOM del conjunto de datos. - El conjunto de datos de destino: la desidentificación no afecta al conjunto de datos original ni a sus datos. sino que las copias desidentificadas de los datos originales se escriben en un nuevo conjunto de datos, denominado conjunto de datos de destino.
- Qué desidentificar: parámetros de configuración que especifican cómo procesar el conjunto de datos. Puedes configurar la desidentificación DICOM para desidentificar los metadatos de instancias DICOM (mediante palabras clave de etiquetas) o el texto insertado en imágenes DICOM especificando estos parámetros en un objeto
DeidentifyConfig
y haciendo lo siguiente:- Definir el campo
config
del cuerpo de la solicitud - Almacenándolo en Cloud Storage en formato JSON y especificando la ubicación del archivo en el segmento mediante el campo
gcsConfigUri
del cuerpo de la solicitud
- Definir el campo
La mayoría de los ejemplos de esta guía muestran cómo desidentificar datos DICOM a nivel de conjunto de datos.
Desidentificación a nivel de almacén DICOM
Desidentificar datos DICOM a nivel de almacén DICOM te permite tener más control sobre qué datos se desidentifican. Por ejemplo, si tienes un conjunto de datos con varios almacenes DICOM, puedes desidentificar cada almacén DICOM según el tipo de datos que contenga.
Para desidentificar datos DICOM en un almacén DICOM, llama al método dicomStores.deidentify
. La llamada a la API de desidentificación consta de los siguientes componentes:
- El almacén DICOM de origen: un almacén DICOM que contiene una o más instancias con datos sensibles. Al llamar a la operación
deidentify
, se desidentifican todas las instancias del almacén DICOM. - El almacén DICOM de destino: la desidentificación no afecta al almacén DICOM original ni a sus datos. sino que las copias desidentificadas de los datos originales se escriben en el almacén DICOM de destino. El almacén DICOM de destino ya debe existir.
- Qué desidentificar: parámetros de configuración que especifican cómo procesar el almacén DICOM. Puedes configurar la desidentificación DICOM para desidentificar los metadatos de instancias DICOM (mediante palabras clave de etiquetas) o el texto insertado en imágenes DICOM. Para ello, especifica estos parámetros en un objeto
DeidentifyConfig
y pásalo de una de las siguientes formas:- Definir el campo
config
del cuerpo de la solicitud - Almacenándolo en Cloud Storage en formato JSON y especificando la ubicación del archivo en el segmento mediante el campo
gcsConfigUri
del cuerpo de la solicitud
- Definir el campo
Para ver un ejemplo de cómo desidentificar datos DICOM a nivel de almacén DICOM, consulta Desidentificar datos a nivel de almacén DICOM.
Filtros
Puedes desidentificar un subconjunto de datos de un almacén DICOM configurando un archivo de filtro y especificándolo en la solicitud dicomStores.deidentify
. Para ver un ejemplo, consulta Desidentificar un subconjunto de un almacén DICOM.
Descripción general de las muestras
En los ejemplos de esta guía se utiliza una sola instancia DICOM, pero también puedes desidentificar varias instancias.
En cada una de las siguientes secciones se proporcionan ejemplos de cómo desidentificar datos DICOM mediante varios métodos. Con cada muestra se proporciona una salida de la imagen anonimizada. En cada ejemplo se usa la siguiente imagen original como entrada:
Puedes comparar la imagen de salida de cada operación de anonimización con la imagen original para ver los efectos de la operación.
Desidentificar etiquetas DICOM
Puedes desidentificar instancias DICOM en función de las palabras clave de las etiquetas de los metadatos DICOM. Los siguientes métodos de filtrado de etiquetas están disponibles en el objeto DicomConfig
:
keepList
: lista de etiquetas que se conservarán. Elimina todas las demás etiquetas.removeList
: lista de etiquetas que se van a quitar. Se mantienen todas las demás etiquetas.filterProfile
: un perfil de filtrado de etiquetas que se usa para determinar qué etiquetas se deben conservar o eliminar.
En cada ejemplo de esta sección, se proporciona el resultado de los metadatos modificados de la instancia DICOM. A continuación, se muestran los metadatos originales de la instancia que se han usado como entrada para cada ejemplo:
[
{
"00020002":{"vr":"UI","Value":["1.2.840.10008.5.1.4.1.1.7"]},
"00020003":{"vr":"UI","Value":["1.2.276.0.7230010.3.1.4.8323329.78.1539083058.523695"]},
"00020010":{"vr":"UI","Value":["1.2.840.10008.1.2.4.50"]},
"00020012":{"vr":"UI","Value":["1.2.276.0.7230010.3.0.3.6.1"]},
"00020013":{"vr":"SH","Value":["OFFIS_DCMTK_361"]},
"00080005":{"vr":"CS","Value":["ISO_IR 100"]},
"00080016":{"vr":"UI","Value":["1.2.840.10008.5.1.4.1.1.7"]},
"00080018":{"vr":"UI","Value":["1.2.276.0.7230010.3.1.4.8323329.78.1539083058.523695"]},
"00080020":{"vr":"DA","Value":["20110909"]},
"00080030":{"vr":"TM","Value":["110032"]},
"00080050":{"vr":"SH"},
"00080064":{"vr":"CS","Value":["WSD"]},
"00080070":{"vr":"LO","Value":["Manufacturer"]},
"00080090":{"vr":"PN","Value":[{"Alphabetic":"John Doe"}]},
"00081090":{"vr":"LO","Value":["ABC1"]},
"00100010":{"vr":"PN","Value":[{"Alphabetic":"Ann Johnson"}]},
"00100020":{"vr":"LO","Value":["S1214223-1"]},
"00100030":{"vr":"DA","Value":["19880812"]},
"00100040":{"vr":"CS","Value":["F"]},
"0020000D":{"vr":"UI","Value":["2.25.70541616638819138568043293671559322355"]},
"0020000E":{"vr":"UI","Value":["1.2.276.0.7230010.3.1.3.8323329.78.1531234558.523694"]},
"00200010":{"vr":"SH"},
"00200011":{"vr":"IS"},
"00200013":{"vr":"IS"},
"00200020":{"vr":"CS"},
"00280002":{"vr":"US","Value":[3]},
"00280004":{"vr":"CS","Value":["YBR_FULL_422"]},
"00280006":{"vr":"US","Value":[0]},
"00280010":{"vr":"US","Value":[1024]},
"00280011":{"vr":"US","Value":[1024]},
"00280100":{"vr":"US","Value":[8]},
"00280101":{"vr":"US","Value":[8]},
"00280102":{"vr":"US","Value":[7]},
"00280103":{"vr":"US","Value":[0]},
"00282110":{"vr":"CS","Value":["01"]},
"00282114":{"vr":"CS","Value":["ISO_10918_1"]}
}
]
Desidentificación mediante etiquetas de lista de elementos que se conservan
Cuando especificas una etiqueta de lista de elementos permitidos en el objeto DicomConfig
, se añaden las siguientes etiquetas de forma predeterminada:
StudyInstanceUID
SeriesInstanceUID
SOPInstanceUID
TransferSyntaxUID
MediaStorageSOPInstanceUID
MediaStorageSOPClassUID
PixelData
Rows
Columns
SamplesPerPixel
BitsAllocated
BitsStored
Highbit
PhotometricInterpretation
PixelRepresentation
NumberOfFrames
PlanarConfiguration
PixelAspectRatio
SmallestImagePixelValue
LargestImagePixelValue
RedPaletteColorLookupTableDescriptor
GreenPaletteColorLookupTableDescriptor
BluePaletteColorLookupTableDescriptor
RedPaletteColorLookupTableData
GreenPaletteColorLookupTableData
BluePaletteColorLookupTableData
ICCProfile
ColorSpace
WindowCenter
WindowWidth
VOILUTFunction
La operación deidentify
no oculta las etiquetas anteriores. Sin embargo, los valores de algunas de las etiquetas se regeneran, lo que significa que se sustituyen por un valor diferente mediante una transformación determinista.
Para obtener más información, consulta la opción para conservar los UIDs de la norma DICOM. Para conservar los valores originales de las etiquetas anteriores, usa la opción
SkipIdRedaction
.
Si no se proporcionan etiquetas de lista de conservación, no se ocultarán las etiquetas DICOM del conjunto de datos.
En los siguientes ejemplos se muestra cómo desidentificar un conjunto de datos que contiene almacenes DICOM y datos DICOM, al mismo tiempo que se dejan algunas etiquetas sin modificar.
Después de enviar la imagen a la API Cloud Healthcare, la imagen aparece de la siguiente manera. Aunque se han ocultado los metadatos que aparecen en las esquinas superiores de la imagen, la información médica protegida (PHI) que aparece en la parte inferior de la imagen no se ha modificado. Para quitar el texto insertado, consulta Ocultar el texto insertado de las imágenes.
REST
Desidentifica el conjunto de datos.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: el ID de tu Google Cloud proyecto
- LOCATION: la ubicación del conjunto de datos
- SOURCE_DATASET_ID: el ID del conjunto de datos que contiene los datos que se van a desidentificar
- DESTINATION_DATASET_ID: ID del conjunto de datos de destino en el que se escriben los datos desidentificados.
Cuerpo JSON de la solicitud:
{ "destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "keepList": { "tags": [ "PatientID" ] } } } }
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado
request.json
. Ejecuta el siguiente comando en el terminal para crear o sobrescribir este archivo en el directorio actual:cat > request.json << 'EOF' { "destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "keepList": { "tags": [ "PatientID" ] } } } } EOF
A continuación, ejecuta el siguiente comando para enviar tu solicitud REST:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/SOURCE_DATASET_ID:deidentify"PowerShell
Guarda el cuerpo de la solicitud en un archivo llamado
request.json
. Ejecuta el siguiente comando en el terminal para crear o sobrescribir este archivo en el directorio actual:@' { "destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "keepList": { "tags": [ "PatientID" ] } } } } '@ | Out-File -FilePath request.json -Encoding utf8
A continuación, ejecuta el siguiente comando para enviar tu solicitud REST:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/SOURCE_DATASET_ID:deidentify" | Select-Object -Expand Content- Usa el método
projects.locations.datasets.operations.get
para obtener el estado de la operación de larga duración.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: el ID de tu Google Cloud proyecto
- DATASET_ID: el ID del conjunto de datos
- LOCATION: la ubicación del conjunto de datos
- OPERATION_ID: el ID devuelto por la operación de larga duración
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el comando siguiente:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID"PowerShell
Ejecuta el comando siguiente:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand ContentExplorador de APIs
Abre la página de referencia del método. El panel Explorador de APIs se abre en la parte derecha de la página. Puedes interactuar con esta herramienta para enviar solicitudes. Rellena los campos obligatorios y haz clic en Ejecutar.
"done": true
, la operación de larga duración ha finalizado. - Una vez que se haya anonimizado correctamente, puede recuperar los metadatos de la instancia anonimizada para ver cómo ha cambiado. La instancia desidentificada tiene un nuevo UID de estudios, un nuevo UID de series y un nuevo UID de instancias, por lo que primero debe buscar la instancia desidentificada en el nuevo conjunto de datos.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: el ID de tu Google Cloud proyecto
- SOURCE_DATASET_LOCATION: la ubicación del conjunto de datos de origen
- DESTINATION_DATASET_ID: ID del conjunto de datos de destino en el que se escriben los datos desidentificados.
- DESTINATION_DICOM_STORE_ID: el ID del almacén DICOM del conjunto de datos de destino. Es el mismo que el ID del almacén DICOM del conjunto de datos de origen.
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el comando siguiente:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances"PowerShell
Ejecuta el comando siguiente:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances" | Select-Object -Expand ContentExplorador de APIs
Abre la página de referencia del método. El panel Explorador de APIs se abre en la parte derecha de la página. Puedes interactuar con esta herramienta para enviar solicitudes. Rellena los campos obligatorios y haz clic en Ejecutar.
Deberías recibir una respuesta JSON similar a la siguiente:
En la siguiente tabla se muestra cómo han cambiado los UIDs de los estudios, las series y las instancias:Metadatos de instancia originales Metadatos de instancias desidentificados UID de estudios ( 0020000D
)2.25.70541616638819138568043293671559322355
1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763
UID de serie ( 0020000E
)1.2.276.0.7230010.3.1.3.8323329.78.1531234558.523694
1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710
UID de instancias ( 00080018
)1.2.276.0.7230010.3.1.4.8323329.78.1539083058.523695
1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029
Con los nuevos valores, recupera los metadatos de la instancia.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: el ID de tu Google Cloud proyecto
- LOCATION: la ubicación del conjunto de datos
- DESTINATION_DATASET_ID: ID del conjunto de datos de destino en el que se escriben los datos desidentificados.
- DESTINATION_DICOM_STORE_ID: el ID del almacén DICOM del conjunto de datos de destino. Es el mismo que el ID del almacén DICOM del conjunto de datos de origen.
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el comando siguiente:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763/series/1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710/instances/1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029/metadata"PowerShell
Ejecuta el comando siguiente:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763/series/1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710/instances/1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029/metadata" | Select-Object -Expand ContentExplorador de APIs
Abre la página de referencia del método. El panel Explorador de APIs se abre en la parte derecha de la página. Puedes interactuar con esta herramienta para enviar solicitudes. Rellena los campos obligatorios y haz clic en Ejecutar.
Go
Java
Node.js
Python
Desidentificación mediante etiquetas de lista de elementos que se deben eliminar
Puedes especificar una lista de elementos que se van a eliminar en el objeto DicomConfig
. La operación deidentify
solo ocultará las etiquetas especificadas en la lista. Si no se proporcionan etiquetas de lista de elementos que se van a quitar, la operación de desidentificación se lleva a cabo con normalidad, pero no se ocultan las etiquetas DICOM del conjunto de datos de destino.
Cuando especifica una lista de elementos que se deben eliminar, la etiqueta OverlayData
se añade de forma predeterminada porque los datos de superposición pueden contener información personal sensible.
Las etiquetas que se añaden de forma predeterminada a una lista de conservación no se pueden añadir a una lista de eliminación.
En los siguientes ejemplos se muestra cómo desidentificar un conjunto de datos que contiene almacenes DICOM y datos DICOM eliminando todas las etiquetas de la lista de elementos que se van a eliminar. Las etiquetas que no están en la lista de elementos que se van a quitar no cambian.
Después de enviar la imagen a la API Cloud Healthcare, la imagen aparece de la siguiente manera. De las etiquetas proporcionadas en removelist, solo se elimina PatientBirthDate
de la imagen, ya que es la única etiqueta de removelist que
corresponde a metadatos visibles en la imagen.
Aunque el PatientBirthDate
de la esquina superior de la imagen se ha ocultado de acuerdo con la configuración de la lista de elementos que se deben eliminar, la información sanitaria personal (ISP) grabada en la parte inferior de la imagen permanece. Para quitar el texto insertado, consulta Ocultar el texto insertado de las imágenes.
REST
Desidentifica el conjunto de datos.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: el ID de tu Google Cloud proyecto
- LOCATION: la ubicación del conjunto de datos
- SOURCE_DATASET_ID: el ID del conjunto de datos que contiene los datos que se van a desidentificar
- DESTINATION_DATASET_ID: ID del conjunto de datos de destino en el que se escriben los datos desidentificados.
Cuerpo JSON de la solicitud:
{ "destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "removeList": { "tags": [ "PatientBirthName", "PatientBirthDate", "PatientAge", "PatientSize", "PatientWeight", "PatientAddress", "PatientMotherBirthName" ] } } } }
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado
request.json
. Ejecuta el siguiente comando en el terminal para crear o sobrescribir este archivo en el directorio actual:cat > request.json << 'EOF' { "destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "removeList": { "tags": [ "PatientBirthName", "PatientBirthDate", "PatientAge", "PatientSize", "PatientWeight", "PatientAddress", "PatientMotherBirthName" ] } } } } EOF
A continuación, ejecuta el siguiente comando para enviar tu solicitud REST:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/SOURCE_DATASET_ID:deidentify"PowerShell
Guarda el cuerpo de la solicitud en un archivo llamado
request.json
. Ejecuta el siguiente comando en el terminal para crear o sobrescribir este archivo en el directorio actual:@' { "destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "removeList": { "tags": [ "PatientBirthName", "PatientBirthDate", "PatientAge", "PatientSize", "PatientWeight", "PatientAddress", "PatientMotherBirthName" ] } } } } '@ | Out-File -FilePath request.json -Encoding utf8
A continuación, ejecuta el siguiente comando para enviar tu solicitud REST:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/SOURCE_DATASET_ID:deidentify" | Select-Object -Expand Content- Usa el método
projects.locations.datasets.operations.get
para obtener el estado de la operación de larga duración.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: el ID de tu Google Cloud proyecto
- DATASET_ID: el ID del conjunto de datos
- LOCATION: la ubicación del conjunto de datos
- OPERATION_ID: el ID devuelto por la operación de larga duración
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el comando siguiente:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID"PowerShell
Ejecuta el comando siguiente:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand ContentExplorador de APIs
Abre la página de referencia del método. El panel Explorador de APIs se abre en la parte derecha de la página. Puedes interactuar con esta herramienta para enviar solicitudes. Rellena los campos obligatorios y haz clic en Ejecutar.
"done": true
, la operación de larga duración ha finalizado. - Una vez que se haya anonimizado correctamente, puede recuperar los metadatos de la instancia anonimizada para ver cómo ha cambiado. La instancia desidentificada tiene un nuevo UID de estudios, un nuevo UID de series y un nuevo UID de instancias, por lo que primero debe buscar la instancia desidentificada en el nuevo conjunto de datos.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: el ID de tu Google Cloud proyecto
- SOURCE_DATASET_LOCATION: la ubicación del conjunto de datos de origen
- DESTINATION_DATASET_ID: ID del conjunto de datos de destino en el que se escriben los datos desidentificados.
- DESTINATION_DICOM_STORE_ID: el ID del almacén DICOM del conjunto de datos de destino. Es el mismo que el ID del almacén DICOM del conjunto de datos de origen.
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el comando siguiente:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances"PowerShell
Ejecuta el comando siguiente:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances" | Select-Object -Expand ContentExplorador de APIs
Abre la página de referencia del método. El panel Explorador de APIs se abre en la parte derecha de la página. Puedes interactuar con esta herramienta para enviar solicitudes. Rellena los campos obligatorios y haz clic en Ejecutar.
Deberías recibir una respuesta JSON similar a la siguiente:
En la siguiente tabla se muestra cómo han cambiado los UIDs de los estudios, las series y las instancias:Metadatos de instancia originales Metadatos de instancias desidentificados UID de estudios ( 0020000D
)2.25.70541616638819138568043293671559322355
1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763
UID de serie ( 0020000E
)1.2.276.0.7230010.3.1.3.8323329.78.1531234558.523694
1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710
UID de instancias ( 00080018
)1.2.276.0.7230010.3.1.4.8323329.78.1539083058.523695
1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029
Con los nuevos valores, recupera los metadatos de la instancia.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: el ID de tu Google Cloud proyecto
- LOCATION: la ubicación del conjunto de datos
- DESTINATION_DATASET_ID: ID del conjunto de datos de destino en el que se escriben los datos desidentificados.
- DESTINATION_DICOM_STORE_ID: el ID del almacén DICOM del conjunto de datos de destino. Es el mismo que el ID del almacén DICOM del conjunto de datos de origen.
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el comando siguiente:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763/series/1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710/instances/1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029/metadata"PowerShell
Ejecuta el comando siguiente:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763/series/1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710/instances/1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029/metadata" | Select-Object -Expand ContentExplorador de APIs
Abre la página de referencia del método. El panel Explorador de APIs se abre en la parte derecha de la página. Puedes interactuar con esta herramienta para enviar solicitudes. Rellena los campos obligatorios y haz clic en Ejecutar.
Desidentificación mediante un perfil de filtro de etiquetas
En lugar de especificar qué etiquetas quieres conservar o quitar, puedes configurar un TagFilterProfile
en el objeto DicomConfig
. Un perfil de filtro de etiquetas es un perfil predefinido que determina qué etiquetas se deben conservar, eliminar o transformar. Consulta la TagFilterProfile
documentación para ver los perfiles disponibles.
En los siguientes ejemplos se muestra cómo desidentificar un conjunto de datos que contiene almacenes DICOM y datos DICOM mediante el perfil de filtro de etiquetas ATTRIBUTE_CONFIDENTIALITY_BASIC_PROFILE
.
Este perfil de filtro de etiquetas elimina las etiquetas basadas en el perfil básico de confidencialidad en los atributos del estándar DICOM.
La API Cloud Healthcare no cumple por completo el perfil básico de confidencialidad de los atributos. Por ejemplo, la API Cloud Healthcare no comprueba las restricciones de Information Object Definition (IOD) al seleccionar una acción para una etiqueta.
Después de enviar la imagen a la API Cloud Healthcare mediante el perfil de filtro de etiquetas ATTRIBUTE_CONFIDENTIALITY_BASIC_PROFILE
, la imagen aparece de la siguiente manera. Aunque los metadatos que se muestran en las esquinas superiores de la imagen se han ocultado, la información personal protegida que aparece en la parte inferior de la imagen sigue ahí.
Para eliminar también el texto insertado, consulta el artículo Ocultar el texto insertado de las imágenes.
REST
Desidentifica el conjunto de datos.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: el ID de tu Google Cloud proyecto
- LOCATION: la ubicación del conjunto de datos
- SOURCE_DATASET_ID: el ID del conjunto de datos que contiene los datos que se van a desidentificar
- DESTINATION_DATASET_ID: ID del conjunto de datos de destino en el que se escriben los datos desidentificados.
Cuerpo JSON de la solicitud:
{ "destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "filterProfile": "ATTRIBUTE_CONFIDENTIALITY_BASIC_PROFILE" } } }
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado
request.json
. Ejecuta el siguiente comando en el terminal para crear o sobrescribir este archivo en el directorio actual:cat > request.json << 'EOF' { "destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "filterProfile": "ATTRIBUTE_CONFIDENTIALITY_BASIC_PROFILE" } } } EOF
A continuación, ejecuta el siguiente comando para enviar tu solicitud REST:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/SOURCE_DATASET_ID:deidentify"PowerShell
Guarda el cuerpo de la solicitud en un archivo llamado
request.json
. Ejecuta el siguiente comando en el terminal para crear o sobrescribir este archivo en el directorio actual:@' { "destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "filterProfile": "ATTRIBUTE_CONFIDENTIALITY_BASIC_PROFILE" } } } '@ | Out-File -FilePath request.json -Encoding utf8
A continuación, ejecuta el siguiente comando para enviar tu solicitud REST:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/SOURCE_DATASET_ID:deidentify" | Select-Object -Expand Content- Usa el método
projects.locations.datasets.operations.get
para obtener el estado de la operación de larga duración.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: el ID de tu Google Cloud proyecto
- DATASET_ID: el ID del conjunto de datos
- LOCATION: la ubicación del conjunto de datos
- OPERATION_ID: el ID devuelto por la operación de larga duración
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el comando siguiente:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID"PowerShell
Ejecuta el comando siguiente:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand ContentExplorador de APIs
Abre la página de referencia del método. El panel Explorador de APIs se abre en la parte derecha de la página. Puedes interactuar con esta herramienta para enviar solicitudes. Rellena los campos obligatorios y haz clic en Ejecutar.
"done": true
, la operación de larga duración ha finalizado. - Una vez que se haya anonimizado correctamente, puede recuperar los metadatos de la instancia anonimizada para ver cómo ha cambiado. La instancia desidentificada tiene un nuevo UID de estudios, un nuevo UID de series y un nuevo UID de instancias, por lo que primero debe buscar la instancia desidentificada en el nuevo conjunto de datos.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: el ID de tu Google Cloud proyecto
- SOURCE_DATASET_LOCATION: la ubicación del conjunto de datos de origen
- DESTINATION_DATASET_ID: ID del conjunto de datos de destino en el que se escriben los datos desidentificados.
- DESTINATION_DICOM_STORE_ID: el ID del almacén DICOM del conjunto de datos de destino. Es el mismo que el ID del almacén DICOM del conjunto de datos de origen.
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el comando siguiente:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances"PowerShell
Ejecuta el comando siguiente:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances" | Select-Object -Expand ContentExplorador de APIs
Abre la página de referencia del método. El panel Explorador de APIs se abre en la parte derecha de la página. Puedes interactuar con esta herramienta para enviar solicitudes. Rellena los campos obligatorios y haz clic en Ejecutar.
Deberías recibir una respuesta JSON similar a la siguiente:
En la siguiente tabla se muestra cómo han cambiado los UIDs de los estudios, las series y las instancias:Metadatos de instancia originales Metadatos de instancias desidentificados UID de estudios ( 0020000D
)2.25.70541616638819138568043293671559322355
1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763
UID de serie ( 0020000E
)1.2.276.0.7230010.3.1.3.8323329.78.1531234558.523694
1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710
UID de instancias ( 00080018
)1.2.276.0.7230010.3.1.4.8323329.78.1539083058.523695
1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029
Con los nuevos valores, recupera los metadatos de la instancia.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: el ID de tu Google Cloud proyecto
- LOCATION: la ubicación del conjunto de datos
- DESTINATION_DATASET_ID: ID del conjunto de datos de destino en el que se escriben los datos desidentificados.
- DESTINATION_DICOM_STORE_ID: el ID del almacén DICOM del conjunto de datos de destino. Es el mismo que el ID del almacén DICOM del conjunto de datos de origen.
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el comando siguiente:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763/series/1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710/instances/1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029/metadata"PowerShell
Ejecuta el comando siguiente:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763/series/1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710/instances/1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029/metadata" | Select-Object -Expand ContentExplorador de APIs
Abre la página de referencia del método. El panel Explorador de APIs se abre en la parte derecha de la página. Puedes interactuar con esta herramienta para enviar solicitudes. Rellena los campos obligatorios y haz clic en Ejecutar.
Desidentificar datos en la Google Cloud consola
Para anonimizar los datos en la consola de Google Cloud , sigue estos pasos:
En la Google Cloud consola, ve a la página Conjuntos de datos.
En la lista Acciones del conjunto de datos que quieres anonimizar, selecciona Anonimizar.
Se mostrará la página Desidentificar conjunto de datos.
Selecciona Definir conjunto de datos de destino e introduce un nombre para el nuevo conjunto de datos en el que se almacenarán los datos desidentificados.
Selecciona Desidentificación de etiquetas DICOM para elegir el perfil de los datos que se van a desidentificar. Los datos se pueden desidentificar de la siguiente manera:
KEEP_ALL_PROFILE
: conserva todas las etiquetas meta DICOM.DEIDENTIFY_TAG_CONTENTS
: desidentifica los datos de las metaetiquetas.ATTRIBUTE_CONFIDENTIALITY_BASIC_PROFILE
: elimina las metaetiquetas según el perfil básico del estándar DICOM.MINIMAL_KEEP_LIST_PROFILE
: se mantienen solo las etiquetas meta necesarias para un objeto DICOM válido.- Saltar ocultación de ID: regenera los campos UID según lo determinado por el estándar DICOM.
Seleccione Ocultamiento de texto DICOM insertado para configurar cómo se realiza el ocultamiento de imágenes durante la desidentificación. Puedes configurar la ocultación de imágenes de la siguiente manera:
REDACT_NO_TEXT
- No ocultar texto en imágenesREDACT_SENSITIVE_TEXT
: oculta solo el texto sensible de las imágenesREDACT_ALL_TEXT
: oculta todo el texto de las imágenes.
Haz clic en Desidentificar para desidentificar los datos del conjunto de datos.
Ocultar el texto insertado de las imágenes
La API Cloud Healthcare puede ocultar texto insertado sensible de las imágenes. La API detecta los datos sensibles, como la información médica protegida, y los oculta con un rectángulo opaco. La API devuelve las mismas imágenes DICOM que le proporcionaste en el mismo formato, pero se oculta el texto que se haya identificado como información sensible según tus criterios.
Para ocultar el texto insertado de las imágenes, especifica la opción TextRedactionMode
dentro de un objeto ImageConfig
. Consulta los posibles valores en la TextRedactionMode
documentación.
Ocultar todo el texto insertado de una imagen
En los siguientes ejemplos se muestra cómo ocultar todo el texto insertado de las imágenes DICOM en un conjunto de datos. Para ello, especifica REDACT_ALL_TEXT
en el campo TextRedactionMode
.
Después de enviar la imagen a la API Cloud Healthcare mediante la opción REDACT_ALL_TEXT
, la imagen se muestra de la siguiente manera. Aunque se ha eliminado el texto quemado en la parte inferior de la imagen, los metadatos de las esquinas superiores de la imagen permanecen. Para eliminar también los metadatos, consulta Desidentificar etiquetas DICOM.
REST
Desidentifica el conjunto de datos.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: el ID de tu Google Cloud proyecto
- LOCATION: la ubicación del conjunto de datos
- SOURCE_DATASET_ID: el ID del conjunto de datos que contiene los datos que se van a desidentificar
- DESTINATION_DATASET_ID: ID del conjunto de datos de destino en el que se escriben los datos desidentificados.
Cuerpo JSON de la solicitud:
{ "destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": {}, "image": { "textRedactionMode": "REDACT_ALL_TEXT" } } }
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado
request.json
. Ejecuta el siguiente comando en el terminal para crear o sobrescribir este archivo en el directorio actual:cat > request.json << 'EOF' { "destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": {}, "image": { "textRedactionMode": "REDACT_ALL_TEXT" } } } EOF
A continuación, ejecuta el siguiente comando para enviar tu solicitud REST:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/SOURCE_DATASET_ID:deidentify"PowerShell
Guarda el cuerpo de la solicitud en un archivo llamado
request.json
. Ejecuta el siguiente comando en el terminal para crear o sobrescribir este archivo en el directorio actual:@' { "destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": {}, "image": { "textRedactionMode": "REDACT_ALL_TEXT" } } } '@ | Out-File -FilePath request.json -Encoding utf8
A continuación, ejecuta el siguiente comando para enviar tu solicitud REST:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/SOURCE_DATASET_ID:deidentify" | Select-Object -Expand Content- Usa el método
projects.locations.datasets.operations.get
para obtener el estado de la operación de larga duración.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: el ID de tu Google Cloud proyecto
- DATASET_ID: el ID del conjunto de datos
- LOCATION: la ubicación del conjunto de datos
- OPERATION_ID: el ID devuelto por la operación de larga duración
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el comando siguiente:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID"PowerShell
Ejecuta el comando siguiente:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand ContentExplorador de APIs
Abre la página de referencia del método. El panel Explorador de APIs se abre en la parte derecha de la página. Puedes interactuar con esta herramienta para enviar solicitudes. Rellena los campos obligatorios y haz clic en Ejecutar.
"done": true
, la operación de larga duración ha finalizado. - Una vez que se haya anonimizado correctamente, puede recuperar los metadatos de la instancia anonimizada para ver cómo ha cambiado. La instancia desidentificada tiene un nuevo UID de estudios, un nuevo UID de series y un nuevo UID de instancias, por lo que primero debe buscar la instancia desidentificada en el nuevo conjunto de datos.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: el ID de tu Google Cloud proyecto
- SOURCE_DATASET_LOCATION: la ubicación del conjunto de datos de origen
- DESTINATION_DATASET_ID: ID del conjunto de datos de destino en el que se escriben los datos desidentificados.
- DESTINATION_DICOM_STORE_ID: el ID del almacén DICOM del conjunto de datos de destino. Es el mismo que el ID del almacén DICOM del conjunto de datos de origen.
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el comando siguiente:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances"PowerShell
Ejecuta el comando siguiente:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances" | Select-Object -Expand ContentExplorador de APIs
Abre la página de referencia del método. El panel Explorador de APIs se abre en la parte derecha de la página. Puedes interactuar con esta herramienta para enviar solicitudes. Rellena los campos obligatorios y haz clic en Ejecutar.
Deberías recibir una respuesta JSON similar a la siguiente:
En la siguiente tabla se muestra cómo han cambiado los UIDs de los estudios, las series y las instancias:Metadatos de instancia originales Metadatos de instancias desidentificados UID de estudios ( 0020000D
)2.25.70541616638819138568043293671559322355
1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763
UID de serie ( 0020000E
)1.2.276.0.7230010.3.1.3.8323329.78.1531234558.523694
1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710
UID de instancias ( 00080018
)1.2.276.0.7230010.3.1.4.8323329.78.1539083058.523695
1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029
Ocultar solo el texto insertado sensible de una imagen
En los siguientes ejemplos se muestra cómo ocultar texto insertado sensible de imágenes DICOM en un conjunto de datos. Para ello, especifica REDACT_SENSITIVE_TEXT
en el campo TextRedactionMode
.
Los infoTypes especificados en los infoTypes DICOM predeterminados se ocultan cuando se especifica REDACT_SENSITIVE_TEXT
. También se aplica un customInfoType adicional para los identificadores de pacientes, como los números de historial médico, y se ocultan los identificadores de pacientes.
En la siguiente imagen se muestra una radiografía de un paciente sin censurar:
Después de enviar la imagen a la API Cloud Healthcare mediante la opción REDACT_SENSITIVE_TEXT
, la imagen se muestra de la siguiente manera:
Puedes ver que ha ocurrido lo siguiente:
- El
PERSON_NAME
de la parte inferior izquierda de la imagen se ha ocultado - El
DATE
de la parte inferior izquierda de la imagen se ha ocultado
El sexo del paciente no se ha ocultado porque no se considera texto sensible según los infoTipos DICOM predeterminados.
REST
Desidentifica el conjunto de datos.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: el ID de tu Google Cloud proyecto
- LOCATION: la ubicación del conjunto de datos
- SOURCE_DATASET_ID: el ID del conjunto de datos que contiene los datos que se van a desidentificar
- DESTINATION_DATASET_ID: ID del conjunto de datos de destino en el que se escriben los datos desidentificados.
Cuerpo JSON de la solicitud:
{ "destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": {}, "image": { "textRedactionMode": "REDACT_SENSITIVE_TEXT" } } }
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado
request.json
. Ejecuta el siguiente comando en el terminal para crear o sobrescribir este archivo en el directorio actual:cat > request.json << 'EOF' { "destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": {}, "image": { "textRedactionMode": "REDACT_SENSITIVE_TEXT" } } } EOF
A continuación, ejecuta el siguiente comando para enviar tu solicitud REST:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/SOURCE_DATASET_ID:deidentify"PowerShell
Guarda el cuerpo de la solicitud en un archivo llamado
request.json
. Ejecuta el siguiente comando en el terminal para crear o sobrescribir este archivo en el directorio actual:@' { "destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": {}, "image": { "textRedactionMode": "REDACT_SENSITIVE_TEXT" } } } '@ | Out-File -FilePath request.json -Encoding utf8
A continuación, ejecuta el siguiente comando para enviar tu solicitud REST:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/SOURCE_DATASET_ID:deidentify" | Select-Object -Expand Content- Usa el método
projects.locations.datasets.operations.get
para obtener el estado de la operación de larga duración.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: el ID de tu Google Cloud proyecto
- DATASET_ID: el ID del conjunto de datos
- LOCATION: la ubicación del conjunto de datos
- OPERATION_ID: el ID devuelto por la operación de larga duración
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el comando siguiente:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID"PowerShell
Ejecuta el comando siguiente:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand ContentExplorador de APIs
Abre la página de referencia del método. El panel Explorador de APIs se abre en la parte derecha de la página. Puedes interactuar con esta herramienta para enviar solicitudes. Rellena los campos obligatorios y haz clic en Ejecutar.
"done": true
, la operación de larga duración ha finalizado. - Una vez que se haya anonimizado correctamente, puede recuperar los metadatos de la instancia anonimizada para ver cómo ha cambiado. La instancia desidentificada tiene un nuevo UID de estudios, un nuevo UID de series y un nuevo UID de instancias, por lo que primero debe buscar la instancia desidentificada en el nuevo conjunto de datos.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: el ID de tu Google Cloud proyecto
- SOURCE_DATASET_LOCATION: la ubicación del conjunto de datos de origen
- DESTINATION_DATASET_ID: ID del conjunto de datos de destino en el que se escriben los datos desidentificados.
- DESTINATION_DICOM_STORE_ID: el ID del almacén DICOM del conjunto de datos de destino. Es el mismo que el ID del almacén DICOM del conjunto de datos de origen.
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el comando siguiente:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances"PowerShell
Ejecuta el comando siguiente:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances" | Select-Object -Expand ContentExplorador de APIs
Abre la página de referencia del método. El panel Explorador de APIs se abre en la parte derecha de la página. Puedes interactuar con esta herramienta para enviar solicitudes. Rellena los campos obligatorios y haz clic en Ejecutar.
Deberías recibir una respuesta JSON similar a la siguiente:
En la siguiente tabla se muestra cómo han cambiado los UIDs de los estudios, las series y las instancias:Metadatos de instancia originales Metadatos de instancias desidentificados UID de estudios ( 0020000D
)2.25.70541616638819138568043293671559322355
1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763
UID de serie ( 0020000E
)1.2.276.0.7230010.3.1.3.8323329.78.1531234558.523694
1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710
UID de instancias ( 00080018
)1.2.276.0.7230010.3.1.4.8323329.78.1539083058.523695
1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029
Combinar la desidentificación de etiquetas y el ocultamiento de texto insertado
Puedes combinar la desidentificación mediante etiquetas con la redacción del texto insertado en las imágenes para desidentificar las instancias DICOM con un nivel de detalle mayor. Por ejemplo, si combinas REDACT_ALL_TEXT
en el campo TextRedactionMode
con DEIDENTIFY_TAG_CONTENTS
en el campo TagFilterProfile
, puedes hacer lo siguiente:
REDACT_ALL_TEXT
: oculta todo el texto insertado de la imagen.DEIDENTIFY_TAG_CONTENTS
: inspecciona el contenido de las etiquetas y transforma el texto sensible. Para obtener más información sobre el comportamiento deDEIDENTIFY_TAG_CONTENTS
, consulta Configuración predeterminada.
Después de enviar la imagen a la API Cloud Healthcare mediante las opciones REDACT_ALL_TEXT
y DEIDENTIFY_TAG_CONTENTS
, la imagen aparece de la siguiente manera. Observa los siguientes cambios:
- Los nombres de las esquinas superior izquierda y superior derecha de la imagen se han transformado
con una
CryptoHashConfig
. - Las fechas de las esquinas superior izquierda y superior derecha de la imagen se han transformado
con una
DateShiftConfig
. - El texto insertado en la parte inferior de la imagen se oculta
REST
Desidentifica el conjunto de datos.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: el ID de tu Google Cloud proyecto
- LOCATION: la ubicación del conjunto de datos
- SOURCE_DATASET_ID: el ID del conjunto de datos que contiene los datos que se van a desidentificar
- DESTINATION_DATASET_ID: ID del conjunto de datos de destino en el que se escriben los datos desidentificados.
Cuerpo JSON de la solicitud:
{ "destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "filterProfile": "DEIDENTIFY_TAG_CONTENTS" }, "image": { "textRedactionMode": "REDACT_ALL_TEXT" } } }
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado
request.json
. Ejecuta el siguiente comando en el terminal para crear o sobrescribir este archivo en el directorio actual:cat > request.json << 'EOF' { "destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "filterProfile": "DEIDENTIFY_TAG_CONTENTS" }, "image": { "textRedactionMode": "REDACT_ALL_TEXT" } } } EOF
A continuación, ejecuta el siguiente comando para enviar tu solicitud REST:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/SOURCE_DATASET_ID:deidentify"PowerShell
Guarda el cuerpo de la solicitud en un archivo llamado
request.json
. Ejecuta el siguiente comando en el terminal para crear o sobrescribir este archivo en el directorio actual:@' { "destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "filterProfile": "DEIDENTIFY_TAG_CONTENTS" }, "image": { "textRedactionMode": "REDACT_ALL_TEXT" } } } '@ | Out-File -FilePath request.json -Encoding utf8
A continuación, ejecuta el siguiente comando para enviar tu solicitud REST:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/SOURCE_DATASET_ID:deidentify" | Select-Object -Expand Content- Usa el método
projects.locations.datasets.operations.get
para obtener el estado de la operación de larga duración.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: el ID de tu Google Cloud proyecto
- DATASET_ID: el ID del conjunto de datos
- LOCATION: la ubicación del conjunto de datos
- OPERATION_ID: el ID devuelto por la operación de larga duración
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el comando siguiente:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID"PowerShell
Ejecuta el comando siguiente:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand ContentExplorador de APIs
Abre la página de referencia del método. El panel Explorador de APIs se abre en la parte derecha de la página. Puedes interactuar con esta herramienta para enviar solicitudes. Rellena los campos obligatorios y haz clic en Ejecutar.
"done": true
, la operación de larga duración ha finalizado. - Una vez que se haya anonimizado correctamente, puede recuperar los metadatos de la instancia anonimizada para ver cómo ha cambiado. La instancia desidentificada tiene un nuevo UID de estudios, un nuevo UID de series y un nuevo UID de instancias, por lo que primero debe buscar la instancia desidentificada en el nuevo conjunto de datos.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: el ID de tu Google Cloud proyecto
- SOURCE_DATASET_LOCATION: la ubicación del conjunto de datos de origen
- DESTINATION_DATASET_ID: ID del conjunto de datos de destino en el que se escriben los datos desidentificados.
- DESTINATION_DICOM_STORE_ID: el ID del almacén DICOM del conjunto de datos de destino. Es el mismo que el ID del almacén DICOM del conjunto de datos de origen.
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el comando siguiente:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances"PowerShell
Ejecuta el comando siguiente:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances" | Select-Object -Expand ContentExplorador de APIs
Abre la página de referencia del método. El panel Explorador de APIs se abre en la parte derecha de la página. Puedes interactuar con esta herramienta para enviar solicitudes. Rellena los campos obligatorios y haz clic en Ejecutar.
Deberías recibir una respuesta JSON similar a la siguiente:
Con los nuevos valores, recupera los metadatos de la instancia.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: el ID de tu Google Cloud proyecto
- LOCATION: la ubicación del conjunto de datos
- DESTINATION_DATASET_ID: ID del conjunto de datos de destino en el que se escriben los datos desidentificados.
- DESTINATION_DICOM_STORE_ID: el ID del almacén DICOM del conjunto de datos de destino. Es el mismo que el ID del almacén DICOM del conjunto de datos de origen.
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el comando siguiente:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763/series/1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710/instances/1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029/metadata"PowerShell
Ejecuta el comando siguiente:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763/series/1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710/instances/1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029/metadata" | Select-Object -Expand ContentExplorador de APIs
Abre la página de referencia del método. El panel Explorador de APIs se abre en la parte derecha de la página. Puedes interactuar con esta herramienta para enviar solicitudes. Rellena los campos obligatorios y haz clic en Ejecutar.
Usar infoTypes y transformaciones primitivas con etiquetas DICOM
La API Cloud Healthcare puede usar tipos de información (infoTypes) para definir qué datos busca al desidentificar etiquetas. Un infoType es un tipo de dato sensible, como el nombre de un paciente, una dirección de correo electrónico, un número de teléfono, un número de identificación o un número de tarjeta de crédito.
Las transformaciones primitivas son reglas que se usan para transformar un valor de entrada. Puede personalizar la forma en que se desidentifican las etiquetas DICOM aplicando una transformación primitiva al infoType de cada etiqueta. Por ejemplo, puede desidentificar el apellido de un paciente y sustituirlo por una serie de asteriscos especificando el infoType LAST_NAME
con la transformación primitiva CharacterMaskConfig
.
infoTypes DICOM predeterminados
Los infoTypes DICOM predeterminados que se usan al desidentificar metadatos son los siguientes:
AGE
CREDIT_CARD_NUMBER
DATE
EMAIL_ADDRESS
IP_ADDRESS
LOCATION
MAC_ADDRESS
PASSPORT
PERSON_NAME
PHONE_NUMBER
SWIFT_CODE
US_DRIVERS_LICENSE_NUMBER
US_SOCIAL_SECURITY_NUMBER
US_VEHICLE_IDENTIFICATION_NUMBER
US_INDIVIDUAL_TAXPAYER_IDENTIFICATION_NUMBER
Cuando desidentificas texto sensible en imágenes con REDACT_SENSITIVE_TEXT
, la API Cloud Healthcare usa los infoTypes anteriores, pero también se aplica un infoType personalizado adicional para los identificadores de pacientes, como los números de historial médico, al texto sensible de la imagen.
Opciones de transformación primitiva
Las opciones de transformación primitivas de la API Cloud Healthcare incluyen las siguientes:
RedactConfig
: oculta un valor eliminándolo.CharacterMaskConfig
: enmascara una cadena total o parcialmente sustituyendo los caracteres de entrada por un carácter fijo especificado.DateShiftConfig
: cambia las fechas en un número aleatorio de días, con la opción de mantener la coherencia en el mismo contexto.CryptoHashConfig
: usa SHA-256 para sustituir los valores de entrada por una representación codificada en base64 de una cadena de salida cifrada con hash generada mediante una clave de cifrado de datos determinada.ReplaceWithInfoTypeConfig
: sustituye un valor de entrada por el nombre de su infoType.
Especificar configuraciones en TextConfig
Los infoTypes y las transformaciones primitivas se especifican en un InfoTypeTransformation
, que es un objeto dentro de TextConfig
.
Los InfoTypes se introducen en la matriz infoTypes
como valores separados por comas.
Especificar un infoType es opcional. Si no especificas al menos un infoType, la transformación se aplicará a los infoTypes de DICOM predeterminados que se encuentran en la API Cloud Healthcare.
Si especifica algún infoType en InfoTypeTransformation
, debe especificar al menos una transformación primitiva.
Solo puedes aplicar un InfoTypeTransformation
al perfil DEIDENTIFY_TAG_CONTENTS
.
No se puede aplicar un InfoTypeTransformation
a los otros perfiles que se indican en TagFilterProfile
.
En las siguientes secciones se muestra cómo usar las transformaciones primitivas disponibles en InfoTypeTransformation
junto con los infoTypes para personalizar la forma en que se desidentifican las etiquetas DICOM. En los ejemplos se usa la imagen de muestra proporcionada en Descripción general de los ejemplos y los metadatos de muestra proporcionados en Desidentificar etiquetas DICOM.
Configuración predeterminada
De forma predeterminada, cuando se define el perfil DEIDENTIFY_TAG_CONTENTS
sin proporcionar ninguna configuración en el objeto TextConfig
, la API Cloud Healthcare sustituye los datos sensibles con los infoTypes de DICOM predeterminados.
Sin embargo, el comportamiento de los DATE
y PERSON_NAME
infoTypes es diferente, como se muestra a continuación:
- Se aplica un
DateShiftConfig
al texto que se clasifica como un infoTypeDATE
. ElDateShiftConfig
usa una técnica de desplazamiento de fechas con una diferencia de 100 días. - Se aplica un
CryptoHashConfig
al texto que se clasifica como un infoTypePERSON_NAME
. ElCryptoHashConfig
realiza la tokenización generando un valor sustituto mediante un cifrado hash criptográfico.
También se aplica lo siguiente:
- Las edades de los pacientes que tengan un valor igual o superior a 90 se convertirán en 90.
- Si no se puede aplicar una transformación debido a las restricciones del formato DICOM, se proporciona un valor de marcador de posición que corresponde a la representación del valor (VR) de la etiqueta.
- Cualquier otro valor que corresponda a uno de los infoTypes de DICOM predeterminados de la API Cloud Healthcare se sustituye por su infoType. Por ejemplo, si la etiqueta
PatientComments
contenía la cadena "Ann Johnson went to Anytown Hospital,", "Anytown" se sustituiría por elLOCATION
infoType.
En los siguientes ejemplos se muestra el resultado de usar el DEIDENTIFY_TAG_CONTENTS
perfil predeterminado en un conjunto de datos que contiene almacenes DICOM y datos DICOM. Puedes comparar esta salida predeterminada con las salidas al usar las distintas transformaciones primitivas con combinaciones de infoType. En los ejemplos se utiliza una sola instancia DICOM, pero puedes desidentificar varias instancias.
Después de enviar la imagen a la API Cloud Healthcare mediante el perfil DEIDENTIFY_TAG_CONTENTS
, la imagen se muestra de la siguiente manera.
Observa los siguientes cambios:
- Los nombres de las esquinas superior izquierda y superior derecha de la imagen se han transformado
con una
CryptoHashConfig
. - Las fechas de las esquinas superior izquierda y superior derecha de la imagen se han transformado
con una
DateShiftConfig
.
REST
Desidentifica el conjunto de datos.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: el ID de tu Google Cloud proyecto
- LOCATION: la ubicación del conjunto de datos
- SOURCE_DATASET_ID: el ID del conjunto de datos que contiene los datos que se van a desidentificar
- DESTINATION_DATASET_ID: ID del conjunto de datos de destino en el que se escriben los datos desidentificados.
Cuerpo JSON de la solicitud:
{ "destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "filterProfile": "DEIDENTIFY_TAG_CONTENTS" } } }
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado
request.json
. Ejecuta el siguiente comando en el terminal para crear o sobrescribir este archivo en el directorio actual:cat > request.json << 'EOF' { "destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "filterProfile": "DEIDENTIFY_TAG_CONTENTS" } } } EOF
A continuación, ejecuta el siguiente comando para enviar tu solicitud REST:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/SOURCE_DATASET_ID:deidentify"PowerShell
Guarda el cuerpo de la solicitud en un archivo llamado
request.json
. Ejecuta el siguiente comando en el terminal para crear o sobrescribir este archivo en el directorio actual:@' { "destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "filterProfile": "DEIDENTIFY_TAG_CONTENTS" } } } '@ | Out-File -FilePath request.json -Encoding utf8
A continuación, ejecuta el siguiente comando para enviar tu solicitud REST:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/SOURCE_DATASET_ID:deidentify" | Select-Object -Expand Content- Usa el método
projects.locations.datasets.operations.get
para obtener el estado de la operación de larga duración.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: el ID de tu Google Cloud proyecto
- DATASET_ID: el ID del conjunto de datos
- LOCATION: la ubicación del conjunto de datos
- OPERATION_ID: el ID devuelto por la operación de larga duración
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el comando siguiente:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID"PowerShell
Ejecuta el comando siguiente:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand ContentExplorador de APIs
Abre la página de referencia del método. El panel Explorador de APIs se abre en la parte derecha de la página. Puedes interactuar con esta herramienta para enviar solicitudes. Rellena los campos obligatorios y haz clic en Ejecutar.
"done": true
, la operación de larga duración ha finalizado. - Una vez que se haya anonimizado correctamente, puede recuperar los metadatos de la instancia anonimizada para ver cómo ha cambiado. La instancia desidentificada tiene un nuevo UID de estudios, un nuevo UID de series y un nuevo UID de instancias, por lo que primero debe buscar la instancia desidentificada en el nuevo conjunto de datos.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: el ID de tu Google Cloud proyecto
- SOURCE_DATASET_LOCATION: la ubicación del conjunto de datos de origen
- DESTINATION_DATASET_ID: ID del conjunto de datos de destino en el que se escriben los datos desidentificados.
- DESTINATION_DICOM_STORE_ID: el ID del almacén DICOM del conjunto de datos de destino. Es el mismo que el ID del almacén DICOM del conjunto de datos de origen.
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el comando siguiente:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances"PowerShell
Ejecuta el comando siguiente:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances" | Select-Object -Expand ContentExplorador de APIs
Abre la página de referencia del método. El panel Explorador de APIs se abre en la parte derecha de la página. Puedes interactuar con esta herramienta para enviar solicitudes. Rellena los campos obligatorios y haz clic en Ejecutar.
Deberías recibir una respuesta JSON similar a la siguiente:
Con los nuevos valores, recupera los metadatos de la instancia.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: el ID de tu Google Cloud proyecto
- LOCATION: la ubicación del conjunto de datos
- DESTINATION_DATASET_ID: ID del conjunto de datos de destino en el que se escriben los datos desidentificados.
- DESTINATION_DICOM_STORE_ID: el ID del almacén DICOM del conjunto de datos de destino. Es el mismo que el ID del almacén DICOM del conjunto de datos de origen.
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el comando siguiente:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763/series/1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710/instances/1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029/metadata"PowerShell
Ejecuta el comando siguiente:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763/series/1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710/instances/1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029/metadata" | Select-Object -Expand ContentExplorador de APIs
Abre la página de referencia del método. El panel Explorador de APIs se abre en la parte derecha de la página. Puedes interactuar con esta herramienta para enviar solicitudes. Rellena los campos obligatorios y haz clic en Ejecutar.
RedactConfig
Si se especifica redactConfig
, se oculta un valor determinado eliminándolo por completo.
El mensaje redactConfig
no tiene argumentos. Si lo especificas, se habilita la transformación.
Los siguientes ejemplos amplían la configuración predeterminada, pero ahora incluyen la definición del PERSON_NAME
infoType con la transformación redactConfig
. Al enviar esta solicitud, se ocultan todos los nombres de la instancia DICOM.
Después de enviar la imagen a la API Cloud Healthcare mediante la transformación redactConfig
, la imagen se muestra de la siguiente manera:
REST
Desidentifica el conjunto de datos.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: el ID de tu Google Cloud proyecto
- LOCATION: la ubicación del conjunto de datos
- SOURCE_DATASET_ID: el ID del conjunto de datos que contiene los datos que se van a desidentificar
- DESTINATION_DATASET_ID: ID del conjunto de datos de destino en el que se escriben los datos desidentificados.
Cuerpo JSON de la solicitud:
{ "destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "filterProfile": "DEIDENTIFY_TAG_CONTENTS" }, "text": { "transformations": [ { "infoTypes": [ "PERSON_NAME" ], "redactConfig": {} } ] } } }
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado
request.json
. Ejecuta el siguiente comando en el terminal para crear o sobrescribir este archivo en el directorio actual:cat > request.json << 'EOF' { "destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "filterProfile": "DEIDENTIFY_TAG_CONTENTS" }, "text": { "transformations": [ { "infoTypes": [ "PERSON_NAME" ], "redactConfig": {} } ] } } } EOF
A continuación, ejecuta el siguiente comando para enviar tu solicitud REST:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/SOURCE_DATASET_ID:deidentify"PowerShell
Guarda el cuerpo de la solicitud en un archivo llamado
request.json
. Ejecuta el siguiente comando en el terminal para crear o sobrescribir este archivo en el directorio actual:@' { "destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "filterProfile": "DEIDENTIFY_TAG_CONTENTS" }, "text": { "transformations": [ { "infoTypes": [ "PERSON_NAME" ], "redactConfig": {} } ] } } } '@ | Out-File -FilePath request.json -Encoding utf8
A continuación, ejecuta el siguiente comando para enviar tu solicitud REST:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/SOURCE_DATASET_ID:deidentify" | Select-Object -Expand Content- Usa el método
projects.locations.datasets.operations.get
para obtener el estado de la operación de larga duración.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: el ID de tu Google Cloud proyecto
- DATASET_ID: el ID del conjunto de datos
- LOCATION: la ubicación del conjunto de datos
- OPERATION_ID: el ID devuelto por la operación de larga duración
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el comando siguiente:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID"PowerShell
Ejecuta el comando siguiente:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand ContentExplorador de APIs
Abre la página de referencia del método. El panel Explorador de APIs se abre en la parte derecha de la página. Puedes interactuar con esta herramienta para enviar solicitudes. Rellena los campos obligatorios y haz clic en Ejecutar.
"done": true
, la operación de larga duración ha finalizado. - Una vez que se haya anonimizado correctamente, puede recuperar los metadatos de la instancia anonimizada para ver cómo ha cambiado. La instancia desidentificada tiene un nuevo UID de estudios, un nuevo UID de series y un nuevo UID de instancias, por lo que primero debe buscar la instancia desidentificada en el nuevo conjunto de datos.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: el ID de tu Google Cloud proyecto
- SOURCE_DATASET_LOCATION: la ubicación del conjunto de datos de origen
- DESTINATION_DATASET_ID: ID del conjunto de datos de destino en el que se escriben los datos desidentificados.
- DESTINATION_DICOM_STORE_ID: el ID del almacén DICOM del conjunto de datos de destino. Es el mismo que el ID del almacén DICOM del conjunto de datos de origen.
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el comando siguiente:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances"PowerShell
Ejecuta el comando siguiente:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances" | Select-Object -Expand ContentExplorador de APIs
Abre la página de referencia del método. El panel Explorador de APIs se abre en la parte derecha de la página. Puedes interactuar con esta herramienta para enviar solicitudes. Rellena los campos obligatorios y haz clic en Ejecutar.
Deberías recibir una respuesta JSON similar a la siguiente:
Con los nuevos valores, recupera los metadatos de la instancia.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: el ID de tu Google Cloud proyecto
- LOCATION: la ubicación del conjunto de datos
- DESTINATION_DATASET_ID: ID del conjunto de datos de destino en el que se escriben los datos desidentificados.
- DESTINATION_DICOM_STORE_ID: el ID del almacén DICOM del conjunto de datos de destino. Es el mismo que el ID del almacén DICOM del conjunto de datos de origen.
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el comando siguiente:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763/series/1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710/instances/1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029/metadata"PowerShell
Ejecuta el comando siguiente:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763/series/1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710/instances/1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029/metadata" | Select-Object -Expand ContentExplorador de APIs
Abre la página de referencia del método. El panel Explorador de APIs se abre en la parte derecha de la página. Puedes interactuar con esta herramienta para enviar solicitudes. Rellena los campos obligatorios y haz clic en Ejecutar.
En el resultado se muestra que se han quitado los valores de ReferringPhysicianName
(00080090
) y PatientName
(00100010
). Esto contrasta con el ejemplo de la configuración predeterminada, donde estos valores se transformaron mediante un cifrado hash criptográfico.
CharacterMaskConfig
Si se especifica characterMaskConfig
, se sustituyen las cadenas que corresponden a los infoTypes indicados por un carácter fijo especificado. Por ejemplo, en lugar de ocultar el nombre de un paciente o transformarlo mediante un cifrado hash, puedes sustituirlo por una serie de asteriscos (*
). Puedes especificar el carácter fijo como valor del campo maskingCharacter
.
Los siguientes ejemplos amplían la configuración predeterminada, pero ahora incluyen la definición del LAST_NAME
infoType con la transformación characterMaskConfig
. No se proporciona ningún carácter fijo, por lo que la máscara usa asteriscos de forma predeterminada.
En los ejemplos se utiliza una sola instancia DICOM, pero puedes desidentificar varias instancias.
Después de enviar la imagen a la API Cloud Healthcare mediante la transformación characterMaskConfig
, la imagen se muestra de la siguiente manera:
REST
Desidentifica el conjunto de datos.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: el ID de tu Google Cloud proyecto
- LOCATION: la ubicación del conjunto de datos
- SOURCE_DATASET_ID: el ID del conjunto de datos que contiene los datos que se van a desidentificar
- DESTINATION_DATASET_ID: ID del conjunto de datos de destino en el que se escriben los datos desidentificados.
Cuerpo JSON de la solicitud:
{ "destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "filterProfile": "DEIDENTIFY_TAG_CONTENTS" }, "text": { "transformations": [ { "infoTypes": [ "PERSON_NAME" ], "characterMaskConfig": { "maskingCharacter": "" } } ] } } }
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado
request.json
. Ejecuta el siguiente comando en el terminal para crear o sobrescribir este archivo en el directorio actual:cat > request.json << 'EOF' { "destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "filterProfile": "DEIDENTIFY_TAG_CONTENTS" }, "text": { "transformations": [ { "infoTypes": [ "PERSON_NAME" ], "characterMaskConfig": { "maskingCharacter": "" } } ] } } } EOF
A continuación, ejecuta el siguiente comando para enviar tu solicitud REST:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/SOURCE_DATASET_ID:deidentify"PowerShell
Guarda el cuerpo de la solicitud en un archivo llamado
request.json
. Ejecuta el siguiente comando en el terminal para crear o sobrescribir este archivo en el directorio actual:@' { "destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "filterProfile": "DEIDENTIFY_TAG_CONTENTS" }, "text": { "transformations": [ { "infoTypes": [ "PERSON_NAME" ], "characterMaskConfig": { "maskingCharacter": "" } } ] } } } '@ | Out-File -FilePath request.json -Encoding utf8
A continuación, ejecuta el siguiente comando para enviar tu solicitud REST:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/SOURCE_DATASET_ID:deidentify" | Select-Object -Expand Content- Usa el método
projects.locations.datasets.operations.get
para obtener el estado de la operación de larga duración.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: el ID de tu Google Cloud proyecto
- DATASET_ID: el ID del conjunto de datos
- LOCATION: la ubicación del conjunto de datos
- OPERATION_ID: el ID devuelto por la operación de larga duración
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el comando siguiente:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID"PowerShell
Ejecuta el comando siguiente:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand ContentExplorador de APIs
Abre la página de referencia del método. El panel Explorador de APIs se abre en la parte derecha de la página. Puedes interactuar con esta herramienta para enviar solicitudes. Rellena los campos obligatorios y haz clic en Ejecutar.
"done": true
, la operación de larga duración ha finalizado. - Una vez que se haya anonimizado correctamente, puede recuperar los metadatos de la instancia anonimizada para ver cómo ha cambiado. La instancia desidentificada tiene un nuevo UID de estudios, un nuevo UID de series y un nuevo UID de instancias, por lo que primero debe buscar la instancia desidentificada en el nuevo conjunto de datos.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: el ID de tu Google Cloud proyecto
- SOURCE_DATASET_LOCATION: la ubicación del conjunto de datos de origen
- DESTINATION_DATASET_ID: ID del conjunto de datos de destino en el que se escriben los datos desidentificados.
- DESTINATION_DICOM_STORE_ID: el ID del almacén DICOM del conjunto de datos de destino. Es el mismo que el ID del almacén DICOM del conjunto de datos de origen.
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el comando siguiente:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances"PowerShell
Ejecuta el comando siguiente:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances" | Select-Object -Expand ContentExplorador de APIs
Abre la página de referencia del método. El panel Explorador de APIs se abre en la parte derecha de la página. Puedes interactuar con esta herramienta para enviar solicitudes. Rellena los campos obligatorios y haz clic en Ejecutar.
Deberías recibir una respuesta JSON similar a la siguiente:
Con los nuevos valores, recupera los metadatos de la instancia.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: el ID de tu Google Cloud proyecto
- LOCATION: la ubicación del conjunto de datos
- DESTINATION_DATASET_ID: ID del conjunto de datos de destino en el que se escriben los datos desidentificados.
- DESTINATION_DICOM_STORE_ID: el ID del almacén DICOM del conjunto de datos de destino. Es el mismo que el ID del almacén DICOM del conjunto de datos de origen.
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el comando siguiente:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763/series/1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710/instances/1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029/metadata"PowerShell
Ejecuta el comando siguiente:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763/series/1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710/instances/1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029/metadata" | Select-Object -Expand ContentExplorador de APIs
Abre la página de referencia del método. El panel Explorador de APIs se abre en la parte derecha de la página. Puedes interactuar con esta herramienta para enviar solicitudes. Rellena los campos obligatorios y haz clic en Ejecutar.
En la salida se muestra que los apellidos de ReferringPhysicianName
(00080090
) y PatientName
(00100010
) se han sustituido por asteriscos. Esto contrasta con el ejemplo de la configuración predeterminada, donde estos valores se transformaron mediante el cifrado hash criptográfico.
DateShiftConfig
La API de Cloud Healthcare puede transformar las fechas desplazándolas dentro de un intervalo predefinido. Para que las transformaciones de fechas sean coherentes en todas las ejecuciones de anonimización, usa DateShiftConfig
con una de las siguientes opciones:
- Obsoleto: una clave sin formato de 128, 192 o 256 bits de AES codificada en Base64.
- (Recomendado) Una clave encapsulada de Cloud Key Management Service (Cloud KMS). Consulta Desidentificar y reidentificar texto sensible para ver un ejemplo de cómo usar claves envueltas de Cloud KMS.
Debes asignar un rol con el permiso cloudkms.cryptoKeyVersions.useToDecrypt
a la cuenta de servicio del agente de servicio de Cloud Healthcare para descifrar la clave envuelta de Cloud KMS. Te recomendamos que uses el rol Encargado de desencriptar claves de CryptoKey de Cloud KMS (roles/cloudkms.cryptoKeyDecrypter
).
Cuando usas Cloud KMS para operaciones criptográficas, se aplican cargos. Consulta la página de precios de Cloud Key Management Service para obtener más información.
La API Cloud Healthcare usa esta clave para calcular la cantidad en la que se desplazan las fechas, como la fecha de nacimiento de un paciente, en un diferencial de 100 días.
Si no proporcionas ninguna clave, la API Cloud Healthcare generará una cada vez que se ejecute la operación de desidentificación en los valores de fecha. Esto puede provocar que las fechas de salida sean incoherentes entre ejecuciones.
En los siguientes ejemplos se muestra cómo definir los infoTipos DATE
y DATE_OF_BIRTH
con la transformación DateShiftConfig
en una instancia DICOM. Después de enviar la solicitud de desidentificación a la API Cloud Healthcare, los valores de fecha de la instancia se desplazarán entre más o menos 100 días de sus valores originales.
La clave criptográfica proporcionada, U2FsdGVkX19bS2oZsdbK9X5zi2utBn22uY+I2Vo0zOU=
, es una clave sin formato de 256 bits cifrada con AES y codificada en base64 que se ha generado con el siguiente comando. Cuando se te pida, se proporcionará una contraseña vacía al comando:
echo -n "test" | openssl enc -e -aes-256-ofb -a -salt
Después de enviar la imagen a la API Cloud Healthcare mediante la transformación dateShiftConfig
, la imagen se muestra de la siguiente manera:
REST
Desidentifica el conjunto de datos.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: el ID de tu Google Cloud proyecto
- LOCATION: la ubicación del conjunto de datos
- SOURCE_DATASET_ID: el ID del conjunto de datos que contiene los datos que se van a desidentificar
- DESTINATION_DATASET_ID: ID del conjunto de datos de destino en el que se escriben los datos desidentificados.
Cuerpo JSON de la solicitud:
{ "destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "filterProfile": "DEIDENTIFY_TAG_CONTENTS" }, "text": { "transformations": [ { "infoTypes": [ "DATE", "DATE_OF_BIRTH" ], "dateShiftConfig": { "cryptoKey": "U2FsdGVkX19bS2oZsdbK9X5zi2utBn22uY+I2Vo0zOU=" } } ] } } }
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado
request.json
. Ejecuta el siguiente comando en el terminal para crear o sobrescribir este archivo en el directorio actual:cat > request.json << 'EOF' { "destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "filterProfile": "DEIDENTIFY_TAG_CONTENTS" }, "text": { "transformations": [ { "infoTypes": [ "DATE", "DATE_OF_BIRTH" ], "dateShiftConfig": { "cryptoKey": "U2FsdGVkX19bS2oZsdbK9X5zi2utBn22uY+I2Vo0zOU=" } } ] } } } EOF
A continuación, ejecuta el siguiente comando para enviar tu solicitud REST:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/SOURCE_DATASET_ID:deidentify"PowerShell
Guarda el cuerpo de la solicitud en un archivo llamado
request.json
. Ejecuta el siguiente comando en el terminal para crear o sobrescribir este archivo en el directorio actual:@' { "destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "filterProfile": "DEIDENTIFY_TAG_CONTENTS" }, "text": { "transformations": [ { "infoTypes": [ "DATE", "DATE_OF_BIRTH" ], "dateShiftConfig": { "cryptoKey": "U2FsdGVkX19bS2oZsdbK9X5zi2utBn22uY+I2Vo0zOU=" } } ] } } } '@ | Out-File -FilePath request.json -Encoding utf8
A continuación, ejecuta el siguiente comando para enviar tu solicitud REST:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/SOURCE_DATASET_ID:deidentify" | Select-Object -Expand Content- Usa el método
projects.locations.datasets.operations.get
para obtener el estado de la operación de larga duración.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: el ID de tu Google Cloud proyecto
- DATASET_ID: el ID del conjunto de datos
- LOCATION: la ubicación del conjunto de datos
- OPERATION_ID: el ID devuelto por la operación de larga duración
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el comando siguiente:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID"PowerShell
Ejecuta el comando siguiente:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand ContentExplorador de APIs
Abre la página de referencia del método. El panel Explorador de APIs se abre en la parte derecha de la página. Puedes interactuar con esta herramienta para enviar solicitudes. Rellena los campos obligatorios y haz clic en Ejecutar.
"done": true
, la operación de larga duración ha finalizado. - Una vez que se haya anonimizado correctamente, puede recuperar los metadatos de la instancia anonimizada para ver cómo ha cambiado. La instancia desidentificada tiene un nuevo UID de estudios, un nuevo UID de series y un nuevo UID de instancias, por lo que primero debe buscar la instancia desidentificada en el nuevo conjunto de datos.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: el ID de tu Google Cloud proyecto
- SOURCE_DATASET_LOCATION: la ubicación del conjunto de datos de origen
- DESTINATION_DATASET_ID: ID del conjunto de datos de destino en el que se escriben los datos desidentificados.
- DESTINATION_DICOM_STORE_ID: el ID del almacén DICOM del conjunto de datos de destino. Es el mismo que el ID del almacén DICOM del conjunto de datos de origen.
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el comando siguiente:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances"PowerShell
Ejecuta el comando siguiente:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances" | Select-Object -Expand ContentExplorador de APIs
Abre la página de referencia del método. El panel Explorador de APIs se abre en la parte derecha de la página. Puedes interactuar con esta herramienta para enviar solicitudes. Rellena los campos obligatorios y haz clic en Ejecutar.
Deberías recibir una respuesta JSON similar a la siguiente:
Con los nuevos valores, recupera los metadatos de la instancia.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: el ID de tu Google Cloud proyecto
- LOCATION: la ubicación del conjunto de datos
- DESTINATION_DATASET_ID: ID del conjunto de datos de destino en el que se escriben los datos desidentificados.
- DESTINATION_DICOM_STORE_ID: el ID del almacén DICOM del conjunto de datos de destino. Es el mismo que el ID del almacén DICOM del conjunto de datos de origen.
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el comando siguiente:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763/series/1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710/instances/1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029/metadata"PowerShell
Ejecuta el comando siguiente:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763/series/1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710/instances/1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029/metadata" | Select-Object -Expand ContentExplorador de APIs
Abre la página de referencia del método. El panel Explorador de APIs se abre en la parte derecha de la página. Puedes interactuar con esta herramienta para enviar solicitudes. Rellena los campos obligatorios y haz clic en Ejecutar.
En el resultado se muestra que StudyDate
(00080020
) y PatientBirthDate
(00100030
) tienen nuevos valores. Estas transformaciones se han producido como resultado de combinar la diferencia de 100 días con el valor cryptoKey
proporcionado. Los nuevos valores de fecha de esta instancia son coherentes entre las ejecuciones de anonimización siempre que se proporcione el mismo cryptoKey
.
CryptoHashConfig
Puedes dejar el campo cryptoHashConfig
vacío o proporcionar uno de los siguientes elementos:
- Obsoleto: una clave sin formato de 128, 192 o 256 bits de AES codificada en Base64.
- (Recomendado) Una clave encapsulada de Cloud Key Management Service (Cloud KMS). Consulta Desidentificar y reidentificar texto sensible para ver un ejemplo de cómo usar claves envueltas de Cloud KMS.
Debes asignar un rol con el permiso cloudkms.cryptoKeyVersions.useToDecrypt
a la cuenta de servicio del agente de servicio de Cloud Healthcare para descifrar la clave envuelta de Cloud KMS. Te recomendamos que uses el rol Encargado de desencriptar claves de CryptoKey de Cloud KMS (roles/cloudkms.cryptoKeyDecrypter
).
Cuando usas Cloud KMS para operaciones criptográficas, se aplican cargos. Consulta la página de precios de Cloud Key Management Service para obtener más información.
La API Cloud Healthcare puede transformar datos sustituyendo valores por hashes criptográficos (también denominados valores sustitutos). Para ello, especifica un mensaje cryptoHashConfig
.
Si no proporcionas una clave, la API Cloud Healthcare generará una. La API Cloud Healthcare usa esta clave para generar valores sustitutos. Si proporcionas la misma clave en cada ejecución, la API Cloud Healthcare generará valores subrogados coherentes. Si no proporcionas una clave, la API Cloud Healthcare generará una nueva cada vez que se ejecute la operación. Si se usa otra clave, se obtienen valores subrogados diferentes.
En los siguientes ejemplos se muestra cómo aplicar una transformación cryptoHashConfig
a todos los infoTipos DICOM predeterminados admitidos en la API Cloud Healthcare. Después de enviar la solicitud de anonimización, los valores con un infoType de DICOM correspondiente en la API Cloud Healthcare se sustituyen por valores sustitutos.
En el ejemplo también se muestra cómo proporcionar una clave criptográfica para generar valores sustitutos coherentes entre las ejecuciones de desidentificación.
La clave criptográfica proporcionada, U2FsdGVkX19bS2oZsdbK9X5zi2utBn22uY+I2Vo0zOU=
, es una clave sin formato de 256 bits cifrada con AES y codificada en base64 que se ha generado con el siguiente comando. Cuando se te pida, se proporcionará una contraseña vacía al comando:
echo -n "test" | openssl enc -e -aes-256-ofb -a -salt
Después de enviar la imagen a la API Cloud Healthcare mediante la transformación cryptoHashConfig
, la imagen se muestra de la siguiente manera:
REST
Desidentifica el conjunto de datos.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: el ID de tu Google Cloud proyecto
- LOCATION: la ubicación del conjunto de datos
- SOURCE_DATASET_ID: el ID del conjunto de datos que contiene los datos que se van a desidentificar
- DESTINATION_DATASET_ID: ID del conjunto de datos de destino en el que se escriben los datos desidentificados.
Cuerpo JSON de la solicitud:
{ "destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "filterProfile": "DEIDENTIFY_TAG_CONTENTS" }, "text": { "transformations": [ { "infoTypes": [], "cryptoHashConfig": { "cryptoKey": "U2FsdGVkX19bS2oZsdbK9X5zi2utBn22uY+I2Vo0zOU=" } } ] } } }
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado
request.json
. Ejecuta el siguiente comando en el terminal para crear o sobrescribir este archivo en el directorio actual:cat > request.json << 'EOF' { "destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "filterProfile": "DEIDENTIFY_TAG_CONTENTS" }, "text": { "transformations": [ { "infoTypes": [], "cryptoHashConfig": { "cryptoKey": "U2FsdGVkX19bS2oZsdbK9X5zi2utBn22uY+I2Vo0zOU=" } } ] } } } EOF
A continuación, ejecuta el siguiente comando para enviar tu solicitud REST:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/SOURCE_DATASET_ID:deidentify"PowerShell
Guarda el cuerpo de la solicitud en un archivo llamado
request.json
. Ejecuta el siguiente comando en el terminal para crear o sobrescribir este archivo en el directorio actual:@' { "destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "filterProfile": "DEIDENTIFY_TAG_CONTENTS" }, "text": { "transformations": [ { "infoTypes": [], "cryptoHashConfig": { "cryptoKey": "U2FsdGVkX19bS2oZsdbK9X5zi2utBn22uY+I2Vo0zOU=" } } ] } } } '@ | Out-File -FilePath request.json -Encoding utf8
A continuación, ejecuta el siguiente comando para enviar tu solicitud REST:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/SOURCE_DATASET_ID:deidentify" | Select-Object -Expand Content- Usa el método
projects.locations.datasets.operations.get
para obtener el estado de la operación de larga duración.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: el ID de tu Google Cloud proyecto
- DATASET_ID: el ID del conjunto de datos
- LOCATION: la ubicación del conjunto de datos
- OPERATION_ID: el ID devuelto por la operación de larga duración
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el comando siguiente:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID"PowerShell
Ejecuta el comando siguiente:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand ContentExplorador de APIs
Abre la página de referencia del método. El panel Explorador de APIs se abre en la parte derecha de la página. Puedes interactuar con esta herramienta para enviar solicitudes. Rellena los campos obligatorios y haz clic en Ejecutar.
"done": true
, la operación de larga duración ha finalizado. - Una vez que se haya anonimizado correctamente, puede recuperar los metadatos de la instancia anonimizada para ver cómo ha cambiado. La instancia desidentificada tiene un nuevo UID de estudios, un nuevo UID de series y un nuevo UID de instancias, por lo que primero debe buscar la instancia desidentificada en el nuevo conjunto de datos.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: el ID de tu Google Cloud proyecto
- SOURCE_DATASET_LOCATION: la ubicación del conjunto de datos de origen
- DESTINATION_DATASET_ID: ID del conjunto de datos de destino en el que se escriben los datos desidentificados.
- DESTINATION_DICOM_STORE_ID: el ID del almacén DICOM del conjunto de datos de destino. Es el mismo que el ID del almacén DICOM del conjunto de datos de origen.
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el comando siguiente:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances"PowerShell
Ejecuta el comando siguiente:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances" | Select-Object -Expand ContentExplorador de APIs
Abre la página de referencia del método. El panel Explorador de APIs se abre en la parte derecha de la página. Puedes interactuar con esta herramienta para enviar solicitudes. Rellena los campos obligatorios y haz clic en Ejecutar.
Deberías recibir una respuesta JSON similar a la siguiente:
Con los nuevos valores, recupera los metadatos de la instancia.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: el ID de tu Google Cloud proyecto
- LOCATION: la ubicación del conjunto de datos
- DESTINATION_DATASET_ID: ID del conjunto de datos de destino en el que se escriben los datos desidentificados.
- DESTINATION_DICOM_STORE_ID: el ID del almacén DICOM del conjunto de datos de destino. Es el mismo que el ID del almacén DICOM del conjunto de datos de origen.
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el comando siguiente:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763/series/1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710/instances/1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029/metadata"PowerShell
Ejecuta el comando siguiente:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763/series/1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710/instances/1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029/metadata" | Select-Object -Expand ContentExplorador de APIs
Abre la página de referencia del método. El panel Explorador de APIs se abre en la parte derecha de la página. Puedes interactuar con esta herramienta para enviar solicitudes. Rellena los campos obligatorios y haz clic en Ejecutar.
Las transformaciones de la salida son coherentes en esta instancia entre las ejecuciones de desidentificación siempre que se proporcione el mismo cryptoKey
.
ReplaceWithInfoTypeConfig
Si se especifica replaceWithInfoTypeConfig
, los valores de entrada se sustituyen por el nombre del infoType del valor.
En los siguientes ejemplos se muestra cómo aplicar una replaceWithInfoTypeConfig
transformación a todos los infoTipos DICOM predeterminados admitidos en la API Cloud Healthcare.
El mensaje replaceWithInfoTypeConfig
no tiene argumentos. Si lo especificas, se habilita la transformación.
Después de enviar la imagen a la API Cloud Healthcare mediante la transformación replaceWithInfoTypeConfig
, la imagen se muestra de la siguiente manera:
REST
Desidentifica el conjunto de datos.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: el ID de tu Google Cloud proyecto
- LOCATION: la ubicación del conjunto de datos
- SOURCE_DATASET_ID: el ID del conjunto de datos que contiene los datos que se van a desidentificar
- DESTINATION_DATASET_ID: ID del conjunto de datos de destino en el que se escriben los datos desidentificados.
Cuerpo JSON de la solicitud:
{ "destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "filterProfile": "DEIDENTIFY_TAG_CONTENTS" }, "text": { "transformations": [ { "infoTypes": [], "replaceWithInfoTypeConfig": {} } ] } } }
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado
request.json
. Ejecuta el siguiente comando en el terminal para crear o sobrescribir este archivo en el directorio actual:cat > request.json << 'EOF' { "destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "filterProfile": "DEIDENTIFY_TAG_CONTENTS" }, "text": { "transformations": [ { "infoTypes": [], "replaceWithInfoTypeConfig": {} } ] } } } EOF
A continuación, ejecuta el siguiente comando para enviar tu solicitud REST:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/SOURCE_DATASET_ID:deidentify"PowerShell
Guarda el cuerpo de la solicitud en un archivo llamado
request.json
. Ejecuta el siguiente comando en el terminal para crear o sobrescribir este archivo en el directorio actual:@' { "destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "filterProfile": "DEIDENTIFY_TAG_CONTENTS" }, "text": { "transformations": [ { "infoTypes": [], "replaceWithInfoTypeConfig": {} } ] } } } '@ | Out-File -FilePath request.json -Encoding utf8
A continuación, ejecuta el siguiente comando para enviar tu solicitud REST:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/SOURCE_DATASET_ID:deidentify" | Select-Object -Expand Content- Usa el método
projects.locations.datasets.operations.get
para obtener el estado de la operación de larga duración.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: el ID de tu Google Cloud proyecto
- DATASET_ID: el ID del conjunto de datos
- LOCATION: la ubicación del conjunto de datos
- OPERATION_ID: el ID devuelto por la operación de larga duración
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el comando siguiente:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID"PowerShell
Ejecuta el comando siguiente:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand ContentExplorador de APIs
Abre la página de referencia del método. El panel Explorador de APIs se abre en la parte derecha de la página. Puedes interactuar con esta herramienta para enviar solicitudes. Rellena los campos obligatorios y haz clic en Ejecutar.
"done": true
, la operación de larga duración ha finalizado. - Una vez que se haya anonimizado correctamente, puede recuperar los metadatos de la instancia anonimizada para ver cómo ha cambiado. La instancia desidentificada tiene un nuevo UID de estudios, un nuevo UID de series y un nuevo UID de instancias, por lo que primero debe buscar la instancia desidentificada en el nuevo conjunto de datos.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: el ID de tu Google Cloud proyecto
- SOURCE_DATASET_LOCATION: la ubicación del conjunto de datos de origen
- DESTINATION_DATASET_ID: ID del conjunto de datos de destino en el que se escriben los datos desidentificados.
- DESTINATION_DICOM_STORE_ID: el ID del almacén DICOM del conjunto de datos de destino. Es el mismo que el ID del almacén DICOM del conjunto de datos de origen.
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el comando siguiente:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances"PowerShell
Ejecuta el comando siguiente:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances" | Select-Object -Expand ContentExplorador de APIs
Abre la página de referencia del método. El panel Explorador de APIs se abre en la parte derecha de la página. Puedes interactuar con esta herramienta para enviar solicitudes. Rellena los campos obligatorios y haz clic en Ejecutar.
Deberías recibir una respuesta JSON similar a la siguiente:
Con los nuevos valores, recupera los metadatos de la instancia.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: el ID de tu Google Cloud proyecto
- LOCATION: la ubicación del conjunto de datos
- DESTINATION_DATASET_ID: ID del conjunto de datos de destino en el que se escriben los datos desidentificados.
- DESTINATION_DICOM_STORE_ID: el ID del almacén DICOM del conjunto de datos de destino. Es el mismo que el ID del almacén DICOM del conjunto de datos de origen.
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el comando siguiente:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763/series/1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710/instances/1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029/metadata"PowerShell
Ejecuta el comando siguiente:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763/series/1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710/instances/1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029/metadata" | Select-Object -Expand ContentExplorador de APIs
Abre la página de referencia del método. El panel Explorador de APIs se abre en la parte derecha de la página. Puedes interactuar con esta herramienta para enviar solicitudes. Rellena los campos obligatorios y haz clic en Ejecutar.
Desidentificar datos a nivel de almacén DICOM
En los ejemplos anteriores se muestra cómo desidentificar datos DICOM a nivel de conjunto de datos. En esta sección se describe cómo desidentificar datos a nivel de almacén DICOM.
Para cambiar una solicitud de desidentificación de un conjunto de datos a una solicitud de desidentificación de un almacén DICOM, haz los siguientes cambios:
- Modifica el
destinationDataset
en el cuerpo de la solicitud adestinationStore
. - Añade
dicomStores/DESTINATION_DICOM_STORE_ID
al final del valor dedestinationStore
cuando especifiques el destino. - Añade
dicomStores/SOURCE_DICOM_STORE_ID
al especificar la ubicación de los datos de origen
Por ejemplo:
Desidentificación a nivel de conjunto de datos:
"destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID" ... "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/SOURCE_DATASET_ID:deidentify"
Desidentificación a nivel de almacén DICOM:
"destinationStore": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID" ... "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/SOURCE_DATASET_ID/dicomStores/SOURCE_DICOM_STORE_ID:deidentify"
En los siguientes ejemplos se amplía la información de la sección Combinar la desidentificación de etiquetas y la ocultación de texto insertado, pero la desidentificación se produce en un solo almacén DICOM y los datos desidentificados se copian en un nuevo almacén DICOM. Antes de ejecutar las muestras, debe existir el almacén DICOM al que hace referencia DESTINATION_DICOM_STORE_ID.
Consola
Para desidentificar datos en un almacén DICOM mediante la consola de Google Cloud , sigue estos pasos.
En la Google Cloud consola, ve a la página Conjuntos de datos.
Haga clic en el conjunto de datos que contenga los datos que quiera desidentificar.
En la lista de almacenes DICOM, elige Desidentificar en la lista Acciones del almacén DICOM que quieras desidentificar.
Se muestra la página Desidentificar almacén DICOM.
Seleccione Definir almacén de datos de destino y elija el conjunto de datos y el almacén DICOM en los que se guardarán los datos anonimizados.
Seleccione Desidentificación de etiquetas DICOM para configurar cómo se desidentifican los datos. Los datos se pueden anonimizar de la siguiente manera:
KEEP_ALL_PROFILE
: conservar todas las etiquetas meta DICOMDEIDENTIFY_TAG_CONTENTS
: desidentificar datos en metaetiquetasATTRIBUTE_CONFIDENTIALITY_BASIC_PROFILE
: elimina las metaetiquetas según el perfil básico del estándar DICOMMINIMAL_KEEP_LIST_PROFILE
: mantiene solo las etiquetas meta necesarias para un objeto DICOM válido.- Saltar ocultación de ID: regenera los campos UID según lo determinado por el estándar DICOM.
Seleccione Ocultamiento de texto DICOM insertado para configurar cómo se realiza el ocultamiento de imágenes durante la desidentificación. Puedes configurar la ocultación de imágenes de la siguiente manera:
REDACT_NO_TEXT
: no ocultar texto en imágenesREDACT_SENSITIVE_TEXT
: ocultar solo el texto sensible de las imágenesREDACT_ALL_TEXT
: ocultar todo el texto de las imágenes
Haz clic en Desidentificar para desidentificar los datos del almacén DICOM.
REST
Desidentifica el conjunto de datos.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: el ID de tu Google Cloud proyecto
- LOCATION: la ubicación del conjunto de datos
- SOURCE_DATASET_ID: el ID del conjunto de datos que contiene los datos que se van a desidentificar
- DESTINATION_DATASET_ID: ID del conjunto de datos de destino en el que se escriben los datos desidentificados.
- SOURCE_DICOM_STORE_ID: el ID del almacén DICOM que contiene los datos que se van a desidentificar
- DESTINATION_DICOM_STORE_ID: el ID del almacén DICOM del conjunto de datos de destino
Cuerpo JSON de la solicitud:
{ "destinationStore": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID", "config": { "dicom": { "filterProfile": "DEIDENTIFY_TAG_CONTENTS" }, "image": { "textRedactionMode": "REDACT_ALL_TEXT" } } }
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado
request.json
. Ejecuta el siguiente comando en el terminal para crear o sobrescribir este archivo en el directorio actual:cat > request.json << 'EOF' { "destinationStore": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID", "config": { "dicom": { "filterProfile": "DEIDENTIFY_TAG_CONTENTS" }, "image": { "textRedactionMode": "REDACT_ALL_TEXT" } } } EOF
A continuación, ejecuta el siguiente comando para enviar tu solicitud REST:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/SOURCE_DATASET_ID/dicomStores/SOURCE_DICOM_STORE_ID:deidentify"PowerShell
Guarda el cuerpo de la solicitud en un archivo llamado
request.json
. Ejecuta el siguiente comando en el terminal para crear o sobrescribir este archivo en el directorio actual:@' { "destinationStore": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID", "config": { "dicom": { "filterProfile": "DEIDENTIFY_TAG_CONTENTS" }, "image": { "textRedactionMode": "REDACT_ALL_TEXT" } } } '@ | Out-File -FilePath request.json -Encoding utf8
A continuación, ejecuta el siguiente comando para enviar tu solicitud REST:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/SOURCE_DATASET_ID/dicomStores/SOURCE_DICOM_STORE_ID:deidentify" | Select-Object -Expand Content- Usa el método
projects.locations.datasets.operations.get
para obtener el estado de la operación de larga duración.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: el ID de tu Google Cloud proyecto
- DATASET_ID: el ID del conjunto de datos
- LOCATION: la ubicación del conjunto de datos
- OPERATION_ID: el ID devuelto por la operación de larga duración
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el comando siguiente:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID"PowerShell
Ejecuta el comando siguiente:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand ContentExplorador de APIs
Abre la página de referencia del método. El panel Explorador de APIs se abre en la parte derecha de la página. Puedes interactuar con esta herramienta para enviar solicitudes. Rellena los campos obligatorios y haz clic en Ejecutar.
"done": true
, la operación de larga duración ha finalizado.
Desidentificar un subconjunto de un almacén DICOM
Puedes desidentificar un subconjunto de los datos de un almacén DICOM especificando un filtro.
El filtro tiene la forma de un archivo de filtro que se especifica como valor del campo resourcePathsGcsUri
del objeto DicomFilterConfig
. El archivo de filtro debe estar en un segmento de Cloud Storage. No puedes especificar un archivo de filtro que esté en tu máquina local ni en ninguna otra fuente. La ubicación del archivo debe tener el formato gs://BUCKET/PATH/TO/FILE
.
Crear un archivo de filtro
Un archivo de filtro define qué archivos DICOM se deben desidentificar. Puede filtrar archivos en los siguientes niveles:
- A nivel de estudio
- A nivel de serie
- A nivel de instancia
El archivo de filtro consta de una línea por cada estudio, serie o instancia que quieras anonimizar. Cada línea usa el formato /studies/STUDY_UID[/series/SERIES_UID[/instances/INSTANCE_UID]]
.
Al final de cada línea hay un carácter de salto de línea: \n
o \r\n
.
Si no se especifica un estudio, una serie o una instancia en el archivo de filtro que has enviado al llamar a la operación de desidentificación, ese estudio, serie o instancia no se desidentificará y no estará presente en el almacén DICOM de destino.
Solo es obligatoria la parte /studies/STUDY_UID
de la ruta. Esto significa que puedes anonimizar un estudio especificando /studies/STUDY_UID
o una serie especificando /studies/STUDY_UID/series/SERIES_UID
.
Veamos el siguiente archivo de filtro. El archivo de filtro provoca que se anonimicen un estudio, dos series y tres instancias individuales:
/studies/1.123.456.789
/studies/1.666.333.111/series/123.456\n
/studies/1.666.333.111/series/567.890\n
/studies/1.888.999.222/series/123.456/instances/111\n
/studies/1.888.999.222/series/123.456/instances/222\n
/studies/1.888.999.222/series/123.456/instances/333\n
Crear un archivo de filtro con BigQuery
Normalmente, se crea un archivo de filtro exportando los metadatos de un almacén DICOM a BigQuery. De esta forma, puedes usar BigQuery para ver los UIDs de los estudios, las series y las instancias de los datos DICOM de tu almacén DICOM. A continuación, puedes hacer lo siguiente:
Consulta los UIDs de los estudios, las series y las instancias que te interesen. Por ejemplo, después de exportar los metadatos a BigQuery, puede ejecutar la siguiente consulta para concatenar los UIDs de estudio, serie e instancia en un formato compatible con los requisitos del archivo de filtro:
SELECT CONCAT ('/studies/', StudyInstanceUID, '/series/', SeriesInstanceUID, '/instances/', SOPInstanceUID) FROM [PROJECT_ID:BIGQUERY_DATASET.BIGQUERY_TABLE]
Si la consulta devuelve un conjunto de resultados grande, puedes materializar una nueva tabla guardando los resultados de la consulta en una tabla de destino de BigQuery.
Después de guardar los resultados de la consulta en la tabla de destino, puede guardar el contenido de la tabla de destino en un archivo y exportarlo a Cloud Storage. Para saber cómo hacerlo, consulta el artículo Exportar datos de una tabla. El archivo exportado es el archivo de filtro. Usarás la ubicación del archivo de filtro en Cloud Storage al especificar el filtro en la operación de exportación.
Crear un archivo de filtro manualmente
Puedes crear un archivo de filtro con contenido personalizado y subirlo a un segmento de Cloud Storage.
Usarás la ubicación del archivo de filtro en Cloud Storage al especificar el filtro en la operación de desidentificación. En el siguiente ejemplo se muestra cómo subir un archivo de filtro a un segmento de Cloud Storage mediante el comando gcloud storage cp
:
gcloud storage cp PATH/TO/FILTER_FILE gs://BUCKET/DIRECTORY
Por ejemplo:
gcloud storage cp /home/user/Desktop/filters.txt gs://my-bucket/my-directory
Usar un filtro
Una vez que hayas configurado el archivo de filtro, puedes pasarlo como valor al campo resourcePathsGcsUri
del objeto filterConfig
.
En el siguiente ejemplo se amplía la información de la sección Desidentificar datos a nivel de almacén DICOM, pero se proporciona un archivo de filtro en Cloud Storage que determina qué recursos DICOM se desidentifican.
REST
Desidentifica el conjunto de datos.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: el ID de tu Google Cloud proyecto
- LOCATION: la ubicación del conjunto de datos
- SOURCE_DATASET_ID: el ID del conjunto de datos que contiene los datos que se van a desidentificar
- DESTINATION_DATASET_ID: ID del conjunto de datos de destino en el que se escriben los datos desidentificados.
- SOURCE_DICOM_STORE_ID: el ID del almacén DICOM que contiene los datos que se van a desidentificar
- DESTINATION_DICOM_STORE_ID: el ID del almacén DICOM del conjunto de datos de destino
- BUCKET/PATH/TO/FILE: la ubicación del archivo de filtro en un segmento de Cloud Storage
Cuerpo JSON de la solicitud:
{ "destinationStore": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID", "config": { "dicom": { "filterProfile": "DEIDENTIFY_TAG_CONTENTS" }, "image": { "textRedactionMode": "REDACT_ALL_TEXT" } }, "filterConfig": { "resourcePathGcsUri": "gs://BUCKET/PATH/TO/FILE" } }
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado
request.json
. Ejecuta el siguiente comando en el terminal para crear o sobrescribir este archivo en el directorio actual:cat > request.json << 'EOF' { "destinationStore": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID", "config": { "dicom": { "filterProfile": "DEIDENTIFY_TAG_CONTENTS" }, "image": { "textRedactionMode": "REDACT_ALL_TEXT" } }, "filterConfig": { "resourcePathGcsUri": "gs://BUCKET/PATH/TO/FILE" } } EOF
A continuación, ejecuta el siguiente comando para enviar tu solicitud REST:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/SOURCE_DATASET_ID/dicomStores/SOURCE_DICOM_STORE_ID:deidentify"PowerShell
Guarda el cuerpo de la solicitud en un archivo llamado
request.json
. Ejecuta el siguiente comando en el terminal para crear o sobrescribir este archivo en el directorio actual:@' { "destinationStore": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID", "config": { "dicom": { "filterProfile": "DEIDENTIFY_TAG_CONTENTS" }, "image": { "textRedactionMode": "REDACT_ALL_TEXT" } }, "filterConfig": { "resourcePathGcsUri": "gs://BUCKET/PATH/TO/FILE" } } '@ | Out-File -FilePath request.json -Encoding utf8
A continuación, ejecuta el siguiente comando para enviar tu solicitud REST:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/SOURCE_DATASET_ID/dicomStores/SOURCE_DICOM_STORE_ID:deidentify" | Select-Object -Expand Content- Usa el método
projects.locations.datasets.operations.get
para obtener el estado de la operación de larga duración.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: el ID de tu Google Cloud proyecto
- DATASET_ID: el ID del conjunto de datos
- LOCATION: la ubicación del conjunto de datos
- OPERATION_ID: el ID devuelto por la operación de larga duración
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el comando siguiente:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID"PowerShell
Ejecuta el comando siguiente:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand ContentExplorador de APIs
Abre la página de referencia del método. El panel Explorador de APIs se abre en la parte derecha de la página. Puedes interactuar con esta herramienta para enviar solicitudes. Rellena los campos obligatorios y haz clic en Ejecutar.
"done": true
, la operación de larga duración ha finalizado.
Solucionar problemas con las operaciones de desidentificación de DICOM
Si se producen errores durante una operación de desidentificación de DICOM, se registran en Cloud Logging. Para obtener más información, consulta Ver registros de errores en Cloud Logging.
Si toda la operación devuelve un error, consulta Solucionar problemas de operaciones de larga duración.