En esta página, se explica cómo usar la configuración de DicomTagConfig
v1beta1 en la API de Cloud Healthcare para desidentificar datos sensibles en instancias de DICOM en los siguientes niveles:
- A nivel del conjunto de datos mediante
datasets.deidentify
- En el nivel del almacén DICOM con
dicomStores.deidentify
En esta página, también se explica cómo aplicar filtros cuando se desidentifican datos en el nivel del almacén DICOM.
Puedes configurar operaciones de desidentificación de DICOM con el objeto DicomConfig
de la versión heredada v1 o el objeto DicomTagConfig
de la versión v1beta1. Te recomendamos que uses DicomTagConfig
.
Si ya usas DicomConfig
para tus operaciones de anonimización, te recomendamos que realices la migración a DicomTagConfig
. Para obtener un resumen de las funciones nuevas, consulta Nuevas opciones de configuración en DicomTagConfig
.
Si deseas obtener instrucciones para migrar, consulta Migra solicitudes y respuestas para usar DicomTagConfig
.
Nuevas opciones de configuración en DicomTagConfig
Desidentifica texto con desidentificación contextual
Puedes configurar el DicomTagConfig.Options.CleanDescriptorsOption
para habilitar la desidentificación contextual de texto de metadatos no estructurado.
Esta opción se basa en el
Opción de Descriptores limpios.
Cuando especificas DicomTagConfig.Options.CleanDescriptorsOption
, se agrega
El Infotipo se usa durante la inspección, lo que puede afectar los costos de facturación.
El uso de la opción DicomTagConfig.Options.CleanDescriptorsOption
transforma cualquier texto de metadatos no estructurado que coincida con las etiquetas quitadas y, de esta manera, mejora la calidad de la desidentificación. Por ejemplo, supongamos que desidentificas una radiografía y el paciente de la radiografía tiene un apellido que también es un sustantivo, como Wall
. Si algún metadato en la instancia, como el texto en
StudyDescription
, contiene la palabra Wall
y se transformará el texto.
La opción CleanDescriptorsOption
oculta las frases contextuales que coinciden con cualquier etiqueta marcada para quitar en el perfil base de DICOM, siempre que las etiquetas coincidan con uno de los siguientes códigos de acción:
D
Z
X
U
Las frases contextuales coincidentes se reemplazan por el token [CTX]
.
Para configurar qué etiquetas se ocultan, especifica lo siguiente:
- Una enumeración en el objeto
ProfileType
. No es necesario especificar una enum. - El filtro
CleanTextTag
se aplica a etiquetas específicas.
Sin embargo, no se pueden cambiar las etiquetas que se usan en el perfil base de DICOM.
Oculta el texto quemado con la desidentificación contextual
Puedes especificar la enumeración TextRedactionMode.REDACT_SENSITIVE_TEXT_CLEAN_DESCRIPTORS
para habilitar la desidentificación contextual del texto grabado en una imagen.
Esta opción se basa en el
Opción de Descriptores limpios.
Cuando especificas la enumeración TextRedactionMode.REDACT_SENSITIVE_TEXT_CLEAN_DESCRIPTORS
, se usa un infoType adicional durante la inspección, lo que puede afectar los costos de facturación.
Puedes especificar el TextRedactionMode.REDACT_SENSITIVE_TEXT_CLEAN_DESCRIPTORS
enum de las siguientes maneras:
En un objeto
Options.ImageConfig
conDicomTagConfig.Options.ImageConfig.TextRedactionMode
. Si especificas esta opción, la etiquetaPixelData (7FE0,0010)
se agrega a la lista de etiquetas que se ocultarán.En un objeto
Action.CleanImageTag
conDicomTagConfig.Action.CleanImageTag.TextRedactionMode
. Cuando especificas esta opción, debes agregar elPixelData
etiqueta manualmenteAction.queries[]
. La etiquetaPixelData
es la única compatible cuando se usaAction.CleanImageTag
.
La opción TextRedactionMode.REDACT_SENSITIVE_TEXT_CLEAN_DESCRIPTORS
oculta
texto grabado que coincide con cualquier etiqueta
Se marcó para su eliminación en el Perfil base de DICOM
siempre que las etiquetas coincidan con uno de los siguientes códigos de acción:
D
Z
X
U
No hay configuración adicional para la desidentificación contextual de
texto grabado que no sea habilitarlo o inhabilitarlo mediante una enumeración en el ProfileType
. No es necesario especificar una enum.
Infotipos adicionales en la desidentificación de imágenes
Puedes usar tipos de información (infotipos) para especificar qué datos analizar cuando se realiza la desidentificación en las etiquetas. Un Infotipo es un tipo de datos sensibles, como el nombre de un paciente, dirección de correo electrónico, número de teléfono, número de identificación o número de tarjeta de crédito.
Puedes configurar los siguientes campos en el DicomTagConfig.Options.ImageConfig
para determinar qué Infotipos usar durante la desidentificación de imágenes de DICOM:
Estos campos solo tendrán efecto si DicomTagConfig.Options.ImageConfig.TextRedactionMode
se establece en uno de los siguientes valores:
Migra solicitudes y respuestas para usar DicomTagConfig
Puedes configurar la desidentificación de DICOM con DicomTagConfig
, que está disponible en la versión v1beta1 de la API de Cloud Healthcare y es una alternativa al uso de las
DicomConfig
heredado.
Cuando envías una solicitud, no puedes incluir DicomConfig
y DicomTagConfig
a la vez.
En las siguientes secciones, se describen las configuraciones de DicomConfig
y cómo
migrarlas a DicomTagConfig
.
De TagFilterProfile
a ProfileType
Reemplaza DicomConfig
TagFilterProfile
.
objeto con el DicomTagConfig
ProfileType
. Los mismos cuatro perfiles de TagFilterProfileType
están disponibles en ProfileType
.
En el siguiente ejemplo, se muestra cómo migrar una solicitud para que no use TagFilterProfile
para usar ProfileType
:
DicomConfig | DicomTagConfig |
---|---|
|
|
keepList
y removeList
El DicomConfig
keepList
y removeList
campos ya no están disponibles en DicomTagConfig
. Si usaste keepList
y removeList
para especificar etiquetas que se conservarán o quitarán en lugar de usar un perfil, debes migrar al nuevo objeto Action
en el que especificas el comportamiento de las etiquetas. El objeto Action
proporciona datos
para transformar etiquetas.
En el siguiente ejemplo, se muestra cómo migrar una solicitud para que no use
keepList
para usar Action.keepTag
. La solicitud especifica que el valor del
La etiqueta PatientID
se conserva durante la operación de desidentificación.
DicomConfig | DicomTagConfig |
---|---|
|
|
Cómo combinar listas de seguimiento, listas de eliminación y perfiles
En el objeto DicomConfig
, puedes determinar si conservar o quitar datos.
según listas de seguimiento,
listas de eliminación y perfiles. Estas opciones son mutuamente excluyentes.
Cuando usas el objeto DicomTagConfig
, puedes combinar estas opciones especificando
qué etiquetas conservar y quitar en una Action
y, al mismo tiempo, especificar un perfil en ProfileType
.
Las opciones configuradas en el objeto Action
anulan las configuradas en
Perfil de ProfileType
. Las opciones del objeto Action
se aplican en el orden.
en los que se proporcionan en la solicitud.
De skipIdRedaction
a Objects.primaryIds
Reemplaza el elemento skipIdRedaction
.
en el objeto DicomConfig
con el campo primaryIds
en el objeto DicomTagConfig
. El campo primaryIds
, que
está en Options
objeto, contiene un PrimaryIdsOption
objeto en el que especificas una de las siguientes enumeraciones:
PRIMARY_IDS_OPTION_UNSPECIFIED
: Es el comportamiento predeterminado cuando no se proporciona un valor aPrimaryIdsOption
El valor predeterminado es la opción especificada enProfileType
.KEEP
: Deja los IDs principales sin modificar.REGEN
: Vuelve a generar los IDs principales.
En el siguiente ejemplo, se muestra cómo migrar una solicitud para que no use
skipIdRedaction
para usar Options.primaryIds
. La solicitud especifica que
Los valores de los IDs principales se conservan durante la operación de desidentificación:
DicomConfig | DicomTagConfig |
---|---|
|
|
De DeidentifyConfig.ImageConfig
a DicomTagConfig.Options.ImageConfig
Reemplaza el objeto DeidentifyConfig.ImageConfig
por el
objeto DicomTagConfig.Options.ImageConfig
.
Las opciones del objeto ImageConfig
son las mismas en ambas versiones.
En el siguiente ejemplo, se muestra cómo migrar una solicitud para que no use un ImageConfig
en DeidentifyConfig.image
hasta el uso de ImageConfig
en DeidentifyConfig.DicomTagConfig.Options.cleanImage
.
La solicitud especifica que se debe ocultar todo el texto de una imagen durante la operación de desidentificación:
DeidentifyConfig.image | DeidentifyConfig.DicomTagConfig.Options.cleanImage |
---|---|
|
|
Descripción general de la desidentificación
Desidentificación a nivel de conjunto de datos
Para desidentificar datos de DICOM a nivel del conjunto de datos, llama al
datasets.deidentify
. El método datasets.deidentify
tiene los siguientes componentes:
- El conjunto de datos de origen: Un conjunto de datos que contiene almacenes de DICOM con una o más instancias que tienen datos sensibles. Cuando llamas al método
datasets.deidentify
, se desidentifican todas las instancias en todos los almacenes de DICOM del conjunto de datos. - El conjunto de datos de destino: la desidentificación no afectan al conjunto de datos original o a sus datos. En cambio, las copias desidentificadas de los datos originales se escriben en un conjunto de datos nuevo, denominado conjunto de datos de destino.
- Qué desidentificar: Parámetros de configuración que especifican cómo procesar
los datos de DICOM
del conjunto de datos. Puedes configurar la desidentificación de DICOM para desidentificarla.
metadatos de instancia (con palabras clave de etiqueta) o texto grabado en imágenes de DICOM
especificar estos parámetros en una
DeidentifyConfig
.
En la mayoría de los ejemplos de esta guía, se muestra cómo desidentificar datos DICOM a nivel de conjunto de datos.
Desidentificación a nivel del almacén de DICOM
Desidentificar los datos de DICOM a nivel del almacén de DICOM te permite tener más control sobre qué datos se desidentifican. Por ejemplo, si tienes un conjunto de datos con varios almacenes de DICOM, puedes desidentificar cada almacén DICOM según el tipo de datos que exista en el almacén.
Para desidentificar los datos de DICOM en un almacén de DICOM, llama al método dicomStores.deidentify
. El método dicomStores.deidentify
tiene los siguientes componentes:
- Almacén de DICOM de origen: Un almacén DICOM que contiene una o más instancias que tienen datos sensibles. Cuando llamas a la operación
dicomStores.deidentify
, se desidentifican todas las instancias en el almacén de DICOM. - El almacén de DICOM de destino: La desidentificación no afecte al almacén de DICOM original o a sus datos. En cambio, las copias desidentificadas de los datos originales se escriben en el almacén DICOM de destino. El almacén de DICOM de destino ya debe existir.
- Qué desidentificar: Parámetros de configuración que especifican cómo procesar
en el almacén de DICOM. Puedes configurar la desidentificación de DICOM para desidentificar
Metadatos de instancias de DICOM (con palabras clave de etiquetas) o texto grabado en imágenes de DICOM
si especificas estos parámetros en una
DeidentifyConfig
.
Por ejemplo de cómo desidentificar datos de DICOM a nivel de almacén de DICOM, consulta Desidentificar datos a nivel del almacén de DICOM.
Filtros
Cuando desidentificas los datos de DICOM a nivel del almacén, puedes hacerlo
un subconjunto de los datos en el almacén de DICOM mediante la configuración de un filtro
y especifica el archivo en la solicitud dicomStores.deidentify
. Para un
ejemplo, consulta
Desidentifica un subconjunto de un almacén de DICOM.
Descripción general de muestras
En las muestras de esta guía, se usa una sola instancia de DICOM llamada dicom_deid_instance_sample.dcm
, pero también puedes desidentificar varias instancias. Para usar las DICOM de muestra
en los ejemplos de esta página, descargue el archivo en su máquina local
y sigue las instrucciones que se indican en Almacena datos de DICOM.
para almacenarlos
en un almacén de DICOM.
En las siguientes secciones, se muestra lo que en la instancia de DICOM y los metadatos en la instancia.
Imagen de muestra
Algunas muestras de esta página contienen un resultado de la imagen desidentificada. En cada muestra, se usa la siguiente imagen original como entrada. Puedes comparar la imagen de salida de cada operación de desidentificación con esta imagen original para ver los efectos de la operación:
Metadatos de muestra
La mayoría de las muestras de esta página contienen un resultado de los metadatos modificados en el de la instancia de DICOM. Cada ejemplo usa los siguientes metadatos originales como su entrada. Puedes comparar los metadatos de salida de cada desidentificación a estos metadatos originales para ver los efectos de la desidentificación:
[
{
"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"
]
}
}
]
Oculta el texto grabado de las imágenes
Puedes desidentificar el texto grabado en las imágenes de DICOM con el
ImageConfig
objeto dentro de un Action
. En ImageConfig
, puedes especificar qué infotipos incluir o
excluir texto y cómo ocultar texto con la función TextRedactionMode
.
Ocultar todo el texto
En los siguientes ejemplos, se muestra cómo desidentificar una instancia de DICOM mediante la configuración
TextRedactionMode
para REDACT_ALL_TEXT
.
Esta configuración oculta todo el texto grabado de la imagen.
REST
Desidentifica el conjunto de datos.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_IDEl ID de tu proyecto de Google Cloud.
- SOURCE_DATASET_LOCATION: La ubicación del conjunto de datos de origen
- SOURCE_DATASET_ID: Es el ID del conjunto de datos que contiene los datos que se desidentificarán.
- DESTINATION_DATASET_ID: Es el 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/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicomTagConfig": { "options": { "cleanImage": { "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 comando siguiente en la terminal para crear o reemplazar este archivo en el directorio actual:cat > request.json << 'EOF' { "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicomTagConfig": { "options": { "cleanImage": { "textRedactionMode": "REDACT_ALL_TEXT" } } } } } EOF
Luego, ejecuta el siguiente comando para enviar tu solicitud de 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/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID:deidentify"PowerShell
Guarda el cuerpo de la solicitud en un archivo llamado
request.json
. Ejecuta el comando siguiente en la terminal para crear o reemplazar este archivo en el directorio actual:@' { "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicomTagConfig": { "options": { "cleanImage": { "textRedactionMode": "REDACT_ALL_TEXT" } } } } } '@ | Out-File -FilePath request.json -Encoding utf8
Luego, ejecuta el siguiente comando para enviar tu solicitud de 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/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID:deidentify" | Select-Object -Expand ContentOPERATION_ID
. Necesitarás este valor en el paso siguiente.Usa el método
projects.locations.datasets.operations.get
para obtener el estado de la operación de larga duración.Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_IDEl ID de tu proyecto de Google Cloud.
- SOURCE_DATASET_LOCATION: La ubicación del conjunto de datos de origen
- SOURCE_DATASET_ID: Es el ID del conjunto de datos que contiene los datos que se desidentificarán.
- OPERATION_ID: Es el ID que muestra la operación de larga duración.
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el siguiente comando:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID/operations/OPERATION_ID"PowerShell
Ejecuta el siguiente comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand ContentExplorador de API
Abre el página de referencia del método. El panel del Explorador de API se abre en la parte derecha de la página. Puedes interactuar con esta herramienta para enviar solicitudes. Completa los campos obligatorios y haz clic en Ejecutar.
"done": true
, significa que la operación de larga duración finalizó.Después de que la desidentificación se realice correctamente, puedes recuperar los metadatos del una instancia desidentificada para ver cómo cambió. La instancia desidentificada tiene un UID de estudios nuevo, un UID de serie y un UID de instancias, por lo que primero debes buscar la instancia desidentificada en el conjunto de datos nuevo.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_IDEl ID de tu proyecto de Google Cloud.
- DESTINATION_DATASET_ID: Es el ID del conjunto de datos de destino en el que se escriben los datos desidentificados.
- SOURCE_DATASET_LOCATION: La ubicación del conjunto de datos de origen
- DESTINATION_DICOM_STORE_ID: Es el ID del almacén de DICOM en el conjunto de datos de destino. Es el mismo que el ID del almacén de DICOM en el conjunto de datos de origen.
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el siguiente comando:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances"PowerShell
Ejecuta el siguiente comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances" | Select-Object -Expand ContentDeberías recibir una respuesta JSON similar a la que se muestra a continuación:
En la siguiente tabla, se muestra cómo cambiaron el UID de los estudios, el UID de la serie y el UID de las instancias:Metadatos de la instancia original Metadatos de instancia 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 valores nuevos, recupera los metadatos para la instancia.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_IDEl ID de tu proyecto de Google Cloud.
- DESTINATION_DATASET_ID: Es el ID del conjunto de datos de destino en el que se escriben los datos desidentificados.
- SOURCE_DATASET_LOCATION: La ubicación del conjunto de datos de origen
- DESTINATION_DICOM_STORE_ID: Es el ID del almacén de DICOM en el conjunto de datos de destino. Es el mismo que el ID del almacén de DICOM en el conjunto de datos de origen.
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el siguiente comando:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_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 siguiente comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_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 API
Abre el página de referencia del método. El panel del Explorador de API se abre en la parte derecha de la página. Puedes interactuar con esta herramienta para enviar solicitudes. Completa los campos obligatorios y haz clic en Ejecutar.
Después de desidentificar la imagen con REDACT_ALL_TEXT
, esta
se ve así. Observa que todo el texto grabado en la parte inferior de
se ocultó la imagen.
Oculta texto sensible con la opción Limpiar descriptores
En los siguientes ejemplos, se muestra cómo desidentificar una instancia de DICOM mediante la configuración
TextRedactionMode
para REDACT_SENSITIVE_TEXT_CLEAN_DESCRIPTORS
.
Para obtener más información sobre la opción CleanDescriptorsOption
, consulta Cómo desidentificar texto con la desidentificación contextual.
REST
Desidentifica el conjunto de datos.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_IDEl ID de tu proyecto de Google Cloud.
- SOURCE_DATASET_LOCATION: La ubicación del conjunto de datos de origen
- SOURCE_DATASET_ID: Es el ID del conjunto de datos que contiene los datos que se desidentificarán.
- DESTINATION_DATASET_ID: Es el 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/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicomTagConfig": { "options": { "cleanImage": { "textRedactionMode": "REDACT_SENSITIVE_TEXT_CLEAN_DESCRIPTORS" } } } } }
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado
request.json
. Ejecuta el comando siguiente en la terminal para crear o reemplazar este archivo en el directorio actual:cat > request.json << 'EOF' { "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicomTagConfig": { "options": { "cleanImage": { "textRedactionMode": "REDACT_SENSITIVE_TEXT_CLEAN_DESCRIPTORS" } } } } } EOF
Luego, ejecuta el siguiente comando para enviar tu solicitud de 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/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID:deidentify"PowerShell
Guarda el cuerpo de la solicitud en un archivo llamado
request.json
. Ejecuta el comando siguiente en la terminal para crear o reemplazar este archivo en el directorio actual:@' { "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicomTagConfig": { "options": { "cleanImage": { "textRedactionMode": "REDACT_SENSITIVE_TEXT_CLEAN_DESCRIPTORS" } } } } } '@ | Out-File -FilePath request.json -Encoding utf8
Luego, ejecuta el siguiente comando para enviar tu solicitud de 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/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID:deidentify" | Select-Object -Expand ContentOPERATION_ID
. Necesitarás este valor en el paso siguiente.Usa el método
projects.locations.datasets.operations.get
para obtener el estado de la operación de larga duración.Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_IDEl ID de tu proyecto de Google Cloud.
- SOURCE_DATASET_LOCATION: La ubicación del conjunto de datos de origen
- SOURCE_DATASET_ID: Es el ID del conjunto de datos que contiene los datos que se desidentificarán.
- OPERATION_ID: Es el ID que muestra la operación de larga duración.
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el siguiente comando:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID/operations/OPERATION_ID"PowerShell
Ejecuta el siguiente comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand ContentExplorador de API
Abre el página de referencia del método. El panel del Explorador de API se abre en la parte derecha de la página. Puedes interactuar con esta herramienta para enviar solicitudes. Completa los campos obligatorios y haz clic en Ejecutar.
"done": true
, significa que la operación de larga duración finalizó.Después de que la desidentificación se realice correctamente, puedes recuperar los metadatos del una instancia desidentificada para ver cómo cambió. La instancia desidentificada tiene un UID de estudios nuevo, un UID de serie y un UID de instancias, por lo que primero debes buscar la instancia desidentificada en el conjunto de datos nuevo.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_IDEl ID de tu proyecto de Google Cloud.
- DESTINATION_DATASET_ID: Es el ID del conjunto de datos de destino en el que se escriben los datos desidentificados.
- SOURCE_DATASET_LOCATION: La ubicación del conjunto de datos de origen
- DESTINATION_DICOM_STORE_ID: Es el ID del almacén de DICOM en el conjunto de datos de destino. Es el mismo que el ID del almacén de DICOM en el conjunto de datos de origen.
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el siguiente comando:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances"PowerShell
Ejecuta el siguiente comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances" | Select-Object -Expand ContentDeberías recibir una respuesta JSON similar a la que se muestra a continuación:
En la siguiente tabla, se muestra cómo cambiaron el UID de los estudios, el UID de la serie y el UID de las instancias:Metadatos de la instancia original Metadatos de instancia 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 valores nuevos, recupera los metadatos para la instancia.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_IDEl ID de tu proyecto de Google Cloud.
- DESTINATION_DATASET_ID: Es el ID del conjunto de datos de destino en el que se escriben los datos desidentificados.
- SOURCE_DATASET_LOCATION: La ubicación del conjunto de datos de origen
- DESTINATION_DICOM_STORE_ID: Es el ID del almacén de DICOM en el conjunto de datos de destino. Es el mismo que el ID del almacén de DICOM en el conjunto de datos de origen.
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el siguiente comando:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_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 siguiente comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_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 API
Abre el página de referencia del método. El panel del Explorador de API se abre en la parte derecha de la página. Puedes interactuar con esta herramienta para enviar solicitudes. Completa los campos obligatorios y haz clic en Ejecutar.
Después de desidentificar la imagen con REDACT_SENSITIVE_TEXT_CLEAN_DESCRIPTORS
, esta se ve de la siguiente manera. Observa que no todo el texto grabado en la parte inferior
se ocultó la imagen. El texto Female
se sigue mostrando porque
PatientSex (0010,0040)
no es uno de los Infotipos de DICOM predeterminados.
Desidentifica etiquetas de DICOM
Puedes desidentificar las instancias de DICOM según las palabras clave de etiquetas. en los metadatos de DICOM.
Los siguientes métodos de filtrado de etiquetas están disponibles en la
DicomTagConfig
Action
objeto:
Especificas cada opción Action
como una lista de IDs, nombres o Representación de valores (RV) de etiquetas de DICOM y, luego, la opción realiza una acción en las etiquetas de la lista. No puedes especificar más de una opción Action
en una lista de etiquetas.
Cada objeto Action
proporciona una lista de queries[]
en la que especificas una lista.
de etiquetas. Se admiten los siguientes formatos de etiquetas:
- Los IDs de etiqueta, como
"00100010"
- Nombres de etiquetas, como
"PatientName"
- Representaciones de valores (VR), como
"PN"
No hay límite para la cantidad de etiquetas que se pueden proporcionar en la lista de queries[]
.
Sin embargo, cada etiqueta solo puede tener una opción Action
.
Para especificar diferentes etiquetas que tengan diferentes opciones de Action
realizadas, haz lo siguiente:
debes especificar varios objetos Action
.
Mantener las etiquetas
Para evitar que se oculten los valores de las etiquetas, especifica los
Etiquetas en un objeto KeepTag
en DicomTagConfig
.
Para producir un objeto DICOM válido mientras usas un objeto KeepTag
, especifica los valores MINIMAL_KEEP_LIST_PROFILE
o DEIDENTIFY_TAG_CONTENTS
en el objeto ProfileType
.
Cuando especificas cualquiera de estos perfiles, se conservan automáticamente las siguientes etiquetas, lo que garantiza que la instancia de DICOM desidentificada sea un DICOM válido:
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
Los valores para algunas de las etiquetas anteriores se vuelven a generar, lo que significa que los valores con un valor diferente a través de una transformación determinista. Para obtener más información, consulta Retén la opción UID en el estándar de DICOM.
Los valores de StudyInstanceUID
, SeriesInstanceUID
, SOPInstanceUID
y MediaStorageSOPInstanceUID
se denominan "IDs principales". Para determinar
cómo se transforman los IDs principales, especifica un valor en
PrimaryIdsOption
En los siguientes ejemplos, se muestra cómo usar el objeto KeepTag
para mantener los valores de
las etiquetas específicas
sin modificar durante la desidentificación.
La etiqueta PatientName
se agrega a la lista queries[]
, por lo que PatientName
no se oculte durante la desidentificación.
Debido a que PrimaryIdsOption
no se especifica en la muestra,
El valor predeterminado del campo primaryIds
es PRIMARY_IDS_OPTION_UNSPECIFIED
, que
al valor en ProfileType
. Como tampoco se especifica ProfileType
,
El valor predeterminado del campo profileType
es PROFILE_TYPE_UNSPECIFIED
, lo que quita
Etiquetas basadas en el Perfil básico de confidencialidad de los atributos (DICOM Standard Edition 2018e).
REST
Desidentifica el conjunto de datos.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_IDEl ID de tu proyecto de Google Cloud.
- SOURCE_DATASET_LOCATION: La ubicación del conjunto de datos de origen
- SOURCE_DATASET_ID: Es el ID del conjunto de datos que contiene los datos que se desidentificarán.
- DESTINATION_DATASET_ID: Es el 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/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicomTagConfig": { "actions": [ { "queries": [ "PatientName" ], "keepTag": {} } ] } } }
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado
request.json
. Ejecuta el comando siguiente en la terminal para crear o reemplazar este archivo en el directorio actual:cat > request.json << 'EOF' { "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicomTagConfig": { "actions": [ { "queries": [ "PatientName" ], "keepTag": {} } ] } } } EOF
Luego, ejecuta el siguiente comando para enviar tu solicitud de 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/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID:deidentify"PowerShell
Guarda el cuerpo de la solicitud en un archivo llamado
request.json
. Ejecuta el comando siguiente en la terminal para crear o reemplazar este archivo en el directorio actual:@' { "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicomTagConfig": { "actions": [ { "queries": [ "PatientName" ], "keepTag": {} } ] } } } '@ | Out-File -FilePath request.json -Encoding utf8
Luego, ejecuta el siguiente comando para enviar tu solicitud de 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/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID:deidentify" | Select-Object -Expand ContentOPERATION_ID
. Necesitarás este valor en el paso siguiente.Usa el método
projects.locations.datasets.operations.get
para obtener el estado de la operación de larga duración.Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_IDEl ID de tu proyecto de Google Cloud.
- SOURCE_DATASET_LOCATION: La ubicación del conjunto de datos de origen
- SOURCE_DATASET_ID: Es el ID del conjunto de datos que contiene los datos que se desidentificarán.
- OPERATION_ID: Es el ID que muestra la operación de larga duración.
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el siguiente comando:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID/operations/OPERATION_ID"PowerShell
Ejecuta el siguiente comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand ContentExplorador de API
Abre el página de referencia del método. El panel del Explorador de API se abre en la parte derecha de la página. Puedes interactuar con esta herramienta para enviar solicitudes. Completa los campos obligatorios y haz clic en Ejecutar.
"done": true
, significa que la operación de larga duración finalizó.Después de que la desidentificación se realice correctamente, puedes recuperar los metadatos del una instancia desidentificada para ver cómo cambió. La instancia desidentificada tiene un UID de estudios nuevo, un UID de serie y un UID de instancias, por lo que primero debes buscar la instancia desidentificada en el conjunto de datos nuevo.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_IDEl ID de tu proyecto de Google Cloud.
- DESTINATION_DATASET_ID: Es el ID del conjunto de datos de destino en el que se escriben los datos desidentificados.
- SOURCE_DATASET_LOCATION: La ubicación del conjunto de datos de origen
- DESTINATION_DICOM_STORE_ID: Es el ID del almacén de DICOM en el conjunto de datos de destino. Es el mismo que el ID del almacén de DICOM en el conjunto de datos de origen.
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el siguiente comando:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances"PowerShell
Ejecuta el siguiente comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances" | Select-Object -Expand ContentDeberías recibir una respuesta JSON similar a la que se muestra a continuación:
En la siguiente tabla, se muestra cómo cambiaron el UID de los estudios, el UID de la serie y el UID de las instancias:Metadatos de la instancia original Metadatos de instancia 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 valores nuevos, recupera los metadatos para la instancia.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_IDEl ID de tu proyecto de Google Cloud.
- DESTINATION_DATASET_ID: Es el ID del conjunto de datos de destino en el que se escriben los datos desidentificados.
- SOURCE_DATASET_LOCATION: La ubicación del conjunto de datos de origen
- DESTINATION_DICOM_STORE_ID: Es el ID del almacén de DICOM en el conjunto de datos de destino. Es el mismo que el ID del almacén de DICOM en el conjunto de datos de origen.
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el siguiente comando:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_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 siguiente comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_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 API
Abre la página de referencia del método. El panel del Explorador de API se abre en la parte derecha de la página. Puedes interactuar con esta herramienta para enviar solicitudes. Completa los campos obligatorios y haz clic en Ejecutar.
Quitar las etiquetas
En los siguientes ejemplos, se muestra cómo usar el objeto RemoveTag
para quitar
los valores de etiquetas específicas durante la desidentificación. Una etiqueta eliminada es
reemplazarse por un valor vacío.
En los siguientes ejemplos, se agrega la etiqueta PatientName
a la lista queries[]
, por lo que su valor se reemplaza por un valor vacío durante la desidentificación.
REST
Desidentifica el conjunto de datos.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_IDEl ID de tu proyecto de Google Cloud.
- SOURCE_DATASET_LOCATION: La ubicación del conjunto de datos de origen
- SOURCE_DATASET_ID: Es el ID del conjunto de datos que contiene los datos que se desidentificarán.
- DESTINATION_DATASET_ID: Es el 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/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicomTagConfig": { "actions": [ { "queries": [ "PatientName" ], "removeTag": {} } ] } } }
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado
request.json
. Ejecuta el comando siguiente en la terminal para crear o reemplazar este archivo en el directorio actual:cat > request.json << 'EOF' { "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicomTagConfig": { "actions": [ { "queries": [ "PatientName" ], "removeTag": {} } ] } } } EOF
Luego, ejecuta el siguiente comando para enviar tu solicitud de 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/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID:deidentify"PowerShell
Guarda el cuerpo de la solicitud en un archivo llamado
request.json
. Ejecuta el comando siguiente en la terminal para crear o reemplazar este archivo en el directorio actual:@' { "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicomTagConfig": { "actions": [ { "queries": [ "PatientName" ], "removeTag": {} } ] } } } '@ | Out-File -FilePath request.json -Encoding utf8
Luego, ejecuta el siguiente comando para enviar tu solicitud de 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/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID:deidentify" | Select-Object -Expand ContentOPERATION_ID
. Necesitarás este valor en el paso siguiente.Usa el método
projects.locations.datasets.operations.get
para obtener el estado de la operación de larga duración.Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_IDEl ID de tu proyecto de Google Cloud.
- SOURCE_DATASET_LOCATION: La ubicación del conjunto de datos de origen
- SOURCE_DATASET_ID: Es el ID del conjunto de datos que contiene los datos que se desidentificarán.
- OPERATION_ID: Es el ID que muestra la operación de larga duración.
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el siguiente comando:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID/operations/OPERATION_ID"PowerShell
Ejecuta el siguiente comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand ContentExplorador de API
Abre el página de referencia del método. El panel del Explorador de API se abre en la parte derecha de la página. Puedes interactuar con esta herramienta para enviar solicitudes. Completa los campos obligatorios y haz clic en Ejecutar.
"done": true
, significa que la operación de larga duración finalizó.Después de que la desidentificación se realice correctamente, puedes recuperar los metadatos del una instancia desidentificada para ver cómo cambió. La instancia desidentificada tiene un UID de estudios nuevo, un UID de serie y un UID de instancias, por lo que primero debes buscar la instancia desidentificada en el conjunto de datos nuevo.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_IDEl ID de tu proyecto de Google Cloud.
- DESTINATION_DATASET_ID: Es el ID del conjunto de datos de destino en el que se escriben los datos desidentificados.
- SOURCE_DATASET_LOCATION: La ubicación del conjunto de datos de origen
- DESTINATION_DICOM_STORE_ID: Es el ID del almacén de DICOM en el conjunto de datos de destino. Es el mismo que el ID del almacén de DICOM en el conjunto de datos de origen.
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el siguiente comando:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances"PowerShell
Ejecuta el siguiente comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances" | Select-Object -Expand ContentDeberías recibir una respuesta JSON similar a la que se muestra a continuación:
En la siguiente tabla, se muestra cómo cambiaron el UID de los estudios, el UID de la serie y el UID de las instancias:Metadatos de la instancia original Metadatos de instancia 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 valores nuevos, recupera los metadatos para la instancia.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_IDEl ID de tu proyecto de Google Cloud.
- DESTINATION_DATASET_ID: Es el ID del conjunto de datos de destino en el que se escriben los datos desidentificados.
- SOURCE_DATASET_LOCATION: La ubicación del conjunto de datos de origen
- DESTINATION_DICOM_STORE_ID: Es el ID del almacén de DICOM en el conjunto de datos de destino. Es el mismo que el ID del almacén de DICOM en el conjunto de datos de origen.
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el siguiente comando:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_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 siguiente comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_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 API
Abre el página de referencia del método. El panel del Explorador de API se abre en la parte derecha de la página. Puedes interactuar con esta herramienta para enviar solicitudes. Completa los campos obligatorios y haz clic en Ejecutar.
Borrar etiquetas
En los siguientes ejemplos, se muestra cómo usar el objeto DeleteTag
para borrar etiquetas específicas durante la desidentificación.
REST
Desidentifica el conjunto de datos.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_IDEl ID de tu proyecto de Google Cloud.
- SOURCE_DATASET_LOCATION: La ubicación del conjunto de datos de origen
- SOURCE_DATASET_ID: Es el ID del conjunto de datos que contiene los datos que se desidentificarán.
- DESTINATION_DATASET_ID: Es el 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/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicomTagConfig": { "actions": [ { "queries": [ "PatientName" ], "deleteTag": {} } ] } } }
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado
request.json
. Ejecuta el comando siguiente en la terminal para crear o reemplazar este archivo en el directorio actual:cat > request.json << 'EOF' { "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicomTagConfig": { "actions": [ { "queries": [ "PatientName" ], "deleteTag": {} } ] } } } EOF
Luego, ejecuta el siguiente comando para enviar tu solicitud de 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/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID:deidentify"PowerShell
Guarda el cuerpo de la solicitud en un archivo llamado
request.json
. Ejecuta el comando siguiente en la terminal para crear o reemplazar este archivo en el directorio actual:@' { "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicomTagConfig": { "actions": [ { "queries": [ "PatientName" ], "deleteTag": {} } ] } } } '@ | Out-File -FilePath request.json -Encoding utf8
Luego, ejecuta el siguiente comando para enviar tu solicitud de 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/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID:deidentify" | Select-Object -Expand ContentOPERATION_ID
. Necesitarás este valor en el paso siguiente.Usa el método
projects.locations.datasets.operations.get
para obtener el estado de la operación de larga duración.Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_IDEl ID de tu proyecto de Google Cloud.
- SOURCE_DATASET_LOCATION: La ubicación del conjunto de datos de origen
- SOURCE_DATASET_ID: Es el ID del conjunto de datos que contiene los datos que se desidentificarán.
- OPERATION_ID: Es el ID que muestra la operación de larga duración.
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el siguiente comando:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID/operations/OPERATION_ID"PowerShell
Ejecuta el siguiente comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand ContentExplorador de API
Abre el página de referencia del método. El panel del Explorador de API se abre en la parte derecha de la página. Puedes interactuar con esta herramienta para enviar solicitudes. Completa los campos obligatorios y haz clic en Ejecutar.
"done": true
, significa que la operación de larga duración finalizó.Después de que la desidentificación se realice correctamente, puedes recuperar los metadatos del una instancia desidentificada para ver cómo cambió. La instancia desidentificada tiene un UID de estudios nuevo, un UID de serie y un UID de instancias, por lo que primero debes buscar la instancia desidentificada en el conjunto de datos nuevo.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_IDEl ID de tu proyecto de Google Cloud.
- DESTINATION_DATASET_ID: Es el ID del conjunto de datos de destino en el que se escriben los datos desidentificados.
- SOURCE_DATASET_LOCATION: La ubicación del conjunto de datos de origen
- DESTINATION_DICOM_STORE_ID: Es el ID del almacén de DICOM en el conjunto de datos de destino. Es el mismo que el ID del almacén de DICOM en el conjunto de datos de origen.
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el siguiente comando:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances"PowerShell
Ejecuta el siguiente comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances" | Select-Object -Expand ContentDeberías recibir una respuesta JSON similar a la que se muestra a continuación:
En la siguiente tabla, se muestra cómo cambiaron el UID de los estudios, el UID de la serie y el UID de las instancias:Metadatos de la instancia original Metadatos de instancia 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 valores nuevos, recupera los metadatos para la instancia.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_IDEl ID de tu proyecto de Google Cloud.
- DESTINATION_DATASET_ID: Es el ID del conjunto de datos de destino en el que se escriben los datos desidentificados.
- SOURCE_DATASET_LOCATION: La ubicación del conjunto de datos de origen
- DESTINATION_DICOM_STORE_ID: Es el ID del almacén de DICOM en el conjunto de datos de destino. Es el mismo que el ID del almacén de DICOM en el conjunto de datos de origen.
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el siguiente comando:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_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 siguiente comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_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 API
Abre el página de referencia del método. El panel del Explorador de API se abre en la parte derecha de la página. Puedes interactuar con esta herramienta para enviar solicitudes. Completa los campos obligatorios y haz clic en Ejecutar.
Restablecer las etiquetas a un valor de marcador de posición
En los siguientes ejemplos, se muestra cómo usar el objeto ResetTag
para configurar
el valor de las etiquetas en la cadena PLACEHOLDER
durante la desidentificación
REST
Desidentifica el conjunto de datos.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_IDEl ID de tu proyecto de Google Cloud.
- SOURCE_DATASET_LOCATION: La ubicación del conjunto de datos de origen
- SOURCE_DATASET_ID: Es el ID del conjunto de datos que contiene los datos que se desidentificarán.
- DESTINATION_DATASET_ID: Es el 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/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicomTagConfig": { "actions": [ { "queries": [ "PatientName" ], "resetTag": {} } ] } } }
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado
request.json
. Ejecuta el comando siguiente en la terminal para crear o reemplazar este archivo en el directorio actual:cat > request.json << 'EOF' { "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicomTagConfig": { "actions": [ { "queries": [ "PatientName" ], "resetTag": {} } ] } } } EOF
Luego, ejecuta el siguiente comando para enviar tu solicitud de 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/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID:deidentify"PowerShell
Guarda el cuerpo de la solicitud en un archivo llamado
request.json
. Ejecuta el comando siguiente en la terminal para crear o reemplazar este archivo en el directorio actual:@' { "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicomTagConfig": { "actions": [ { "queries": [ "PatientName" ], "resetTag": {} } ] } } } '@ | Out-File -FilePath request.json -Encoding utf8
Luego, ejecuta el siguiente comando para enviar tu solicitud de 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/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID:deidentify" | Select-Object -Expand ContentOPERATION_ID
. Necesitarás este valor en el paso siguiente.Usa el método
projects.locations.datasets.operations.get
para obtener el estado de la operación de larga duración.Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_IDEl ID de tu proyecto de Google Cloud.
- SOURCE_DATASET_LOCATION: La ubicación del conjunto de datos de origen
- SOURCE_DATASET_ID: Es el ID del conjunto de datos que contiene los datos que se desidentificarán.
- OPERATION_ID: Es el ID que muestra la operación de larga duración.
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el siguiente comando:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID/operations/OPERATION_ID"PowerShell
Ejecuta el siguiente comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand ContentExplorador de API
Abre el página de referencia del método. El panel del Explorador de API se abre en la parte derecha de la página. Puedes interactuar con esta herramienta para enviar solicitudes. Completa los campos obligatorios y haz clic en Ejecutar.
"done": true
, significa que la operación de larga duración finalizó.Después de que la desidentificación se realice correctamente, puedes recuperar los metadatos del una instancia desidentificada para ver cómo cambió. La instancia desidentificada tiene un UID de estudios nuevo, un UID de serie y un UID de instancias, por lo que primero debes buscar la instancia desidentificada en el conjunto de datos nuevo.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_IDEl ID de tu proyecto de Google Cloud.
- DESTINATION_DATASET_ID: Es el ID del conjunto de datos de destino en el que se escriben los datos desidentificados.
- SOURCE_DATASET_LOCATION: La ubicación del conjunto de datos de origen
- DESTINATION_DICOM_STORE_ID: Es el ID del almacén de DICOM en el conjunto de datos de destino. Es el mismo que el ID del almacén de DICOM en el conjunto de datos de origen.
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el siguiente comando:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances"PowerShell
Ejecuta el siguiente comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances" | Select-Object -Expand ContentDeberías recibir una respuesta JSON similar a la que se muestra a continuación:
En la siguiente tabla, se muestra cómo cambiaron el UID de los estudios, el UID de la serie y el UID de las instancias:Metadatos de la instancia original Metadatos de instancia 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 valores nuevos, recupera los metadatos para la instancia.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_IDEl ID de tu proyecto de Google Cloud.
- DESTINATION_DATASET_ID: Es el ID del conjunto de datos de destino en el que se escriben los datos desidentificados.
- SOURCE_DATASET_LOCATION: La ubicación del conjunto de datos de origen
- DESTINATION_DICOM_STORE_ID: Es el ID del almacén de DICOM en el conjunto de datos de destino. Es el mismo que el ID del almacén de DICOM en el conjunto de datos de origen.
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el siguiente comando:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_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 siguiente comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_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 API
Abre el página de referencia del método. El panel del Explorador de API se abre en la parte derecha de la página. Puedes interactuar con esta herramienta para enviar solicitudes. Completa los campos obligatorios y haz clic en Ejecutar.
En particular, observa que el valor de la etiqueta
PatientName
se establece enPLACEHOLDER
:Original metadata
Metadatos después de ejecutar ResetTag
"00100010": { "vr": "PN", "Value": [ { "Alphabetic": "Ann Johnson" } ] }
"00100010": { "vr": "PN", "Value": [ { "Alphabetic": "PLACEHOLDER" } ] }
Inspecciona y transforma el texto sensible en etiquetas
En los siguientes ejemplos, se muestra cómo usar el objeto CleanTextTag
para inspeccionar etiquetas
y transformar los valores de las etiquetas según la configuración
TextConfig
.
En estos ejemplos, se establecen las siguientes opciones en el objeto Actions
:
- Un objeto
CleanTextTag
. - Una lista
queries[]
que contiene la etiqueta de DICOMPatientName
.
Las siguientes opciones se establecen en el objeto TextConfig
:
- Un objeto
InfoTypeTransformation
que transforma el texto que coincide con un infotipo en particular. - Un objeto
ReplaceWithInfoTypeConfig
que reemplaza cualquier texto coincidente con el nombre del Infotipo. - Una lista
infoTypes[]
que contiene el infotipoPERSON_NAME
.
Con estas configuraciones establecidas, la operación de desidentificación inspecciona la etiqueta PatientName
, la hace coincidir con el infotipo PERSON_NAME
y reemplaza el valor de la etiqueta por el infotipo PERSON_NAME
.
La etiqueta PatientName
tiene una representación de valor (VR) de PN
, que es una de las VR admitidas en el objeto CleanTextTag
.
REST
Desidentifica el conjunto de datos.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_IDEl ID de tu proyecto de Google Cloud.
- SOURCE_DATASET_LOCATION: La ubicación del conjunto de datos de origen
- SOURCE_DATASET_ID: Es el ID del conjunto de datos que contiene los datos que se desidentificarán.
- DESTINATION_DATASET_ID: Es el 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/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicomTagConfig": { "actions": [ { "queries": [ "PatientName" ], "cleanTextTag": {} } ] }, "text": { "additionalTransformations": [ { "infoTypes": [ "PERSON_NAME" ], "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 comando siguiente en la terminal para crear o reemplazar este archivo en el directorio actual:cat > request.json << 'EOF' { "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicomTagConfig": { "actions": [ { "queries": [ "PatientName" ], "cleanTextTag": {} } ] }, "text": { "additionalTransformations": [ { "infoTypes": [ "PERSON_NAME" ], "replaceWithInfoTypeConfig": {} } ] } } } EOF
Luego, ejecuta el siguiente comando para enviar tu solicitud de 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/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID:deidentify"PowerShell
Guarda el cuerpo de la solicitud en un archivo llamado
request.json
. Ejecuta el comando siguiente en la terminal para crear o reemplazar este archivo en el directorio actual:@' { "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicomTagConfig": { "actions": [ { "queries": [ "PatientName" ], "cleanTextTag": {} } ] }, "text": { "additionalTransformations": [ { "infoTypes": [ "PERSON_NAME" ], "replaceWithInfoTypeConfig": {} } ] } } } '@ | Out-File -FilePath request.json -Encoding utf8
Luego, ejecuta el siguiente comando para enviar tu solicitud de 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/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID:deidentify" | Select-Object -Expand ContentOPERATION_ID
. Necesitarás este valor en el paso siguiente.Usa el método
projects.locations.datasets.operations.get
para obtener el estado de la operación de larga duración.Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_IDEl ID de tu proyecto de Google Cloud.
- SOURCE_DATASET_LOCATION: La ubicación del conjunto de datos de origen
- SOURCE_DATASET_ID: Es el ID del conjunto de datos que contiene los datos que se desidentificarán.
- OPERATION_ID: Es el ID que muestra la operación de larga duración.
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el siguiente comando:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID/operations/OPERATION_ID"PowerShell
Ejecuta el siguiente comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand ContentExplorador de API
Abre el página de referencia del método. El panel del Explorador de API se abre en la parte derecha de la página. Puedes interactuar con esta herramienta para enviar solicitudes. Completa los campos obligatorios y haz clic en Ejecutar.
"done": true
, significa que la operación de larga duración finalizó.Después de que la desidentificación se realice correctamente, puedes recuperar los metadatos del una instancia desidentificada para ver cómo cambió. La instancia desidentificada tiene un UID de estudios nuevo, un UID de serie y un UID de instancias, por lo que primero debes buscar la instancia desidentificada en el conjunto de datos nuevo.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_IDEl ID de tu proyecto de Google Cloud.
- DESTINATION_DATASET_ID: Es el ID del conjunto de datos de destino en el que se escriben los datos desidentificados.
- SOURCE_DATASET_LOCATION: La ubicación del conjunto de datos de origen
- DESTINATION_DICOM_STORE_ID: Es el ID del almacén de DICOM en el conjunto de datos de destino. Es el mismo que el ID del almacén de DICOM en el conjunto de datos de origen.
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el siguiente comando:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances"PowerShell
Ejecuta el siguiente comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances" | Select-Object -Expand ContentDeberías recibir una respuesta JSON similar a la que se muestra a continuación:
En la siguiente tabla, se muestra cómo cambiaron el UID de los estudios, el UID de la serie y el UID de las instancias:Metadatos de la instancia original Metadatos de instancia 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 valores nuevos, recupera los metadatos para la instancia.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_IDEl ID de tu proyecto de Google Cloud.
- DESTINATION_DATASET_ID: Es el ID del conjunto de datos de destino en el que se escriben los datos desidentificados.
- SOURCE_DATASET_LOCATION: La ubicación del conjunto de datos de origen
- DESTINATION_DICOM_STORE_ID: Es el ID del almacén de DICOM en el conjunto de datos de destino. Es el mismo que el ID del almacén de DICOM en el conjunto de datos de origen.
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el siguiente comando:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_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 siguiente comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_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 API
Abre el página de referencia del método. El panel del Explorador de API se abre en la parte derecha de la página. Puedes interactuar con esta herramienta para enviar solicitudes. Completa los campos obligatorios y haz clic en Ejecutar.
En particular, observa que el valor de la etiqueta
PatientName
se establece en[PERSON_NAME]
:Original metadata
Metadatos después de ejecutar CleanTextTag
"00100010": { "vr": "PN", "Value": [ { "Alphabetic": "Ann Johnson" } ] }
"00100010": { "vr": "PN", "Value": [ { "Alphabetic": "[PERSON_NAME]" } ] }
Cómo reemplazar un UID por uno generado
En los siguientes ejemplos, se muestra cómo usar el objeto RegenUidTag
para reemplazar un
UID con un UID recién generado. La única RV que tiene el objeto RegenUidTag
admite es UI
.
De forma predeterminada, cada etiqueta de los metadatos de muestra con un VR
de UI
se generó su UID durante la desidentificación. Para mostrar cómo generar
un UID para una etiqueta específica, se establecen las siguientes opciones
en la muestra:
ProfileType
se estableció enKEEP_ALL
enum, que evita que se desidentifiquen los metadatos de DICOM.PrimaryIdsOption
se establece enKEEP
enum, lo que deja los IDs principales (StudyInstanceUID
,SeriesInstanceUID
,SOPInstanceUID
yMediaStorageSOPInstanceUID
) sin cambios.
Cuando se establecen estas opciones, no se reemplaza ninguno de los UID de ID principal en los datos de muestra
con los valores recién generados. Sin embargo, si agregas SOPInstanceUID
al array Action.queries[]
, puedes generar un UID nuevo específicamente para la etiqueta SOPInstanceUID
.
REST
Desidentifica el conjunto de datos.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_IDEl ID de tu proyecto de Google Cloud.
- SOURCE_DATASET_LOCATION: La ubicación del conjunto de datos de origen
- SOURCE_DATASET_ID: Es el ID del conjunto de datos que contiene los datos que se desidentificarán.
- DESTINATION_DATASET_ID: Es el 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/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicomTagConfig": { "options": { "primaryIds": "KEEP" }, "actions": [ { "queries": [ "00080018" ], "regenUidTag": {} } ], "profileType": "KEEP_ALL_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 comando siguiente en la terminal para crear o reemplazar este archivo en el directorio actual:cat > request.json << 'EOF' { "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicomTagConfig": { "options": { "primaryIds": "KEEP" }, "actions": [ { "queries": [ "00080018" ], "regenUidTag": {} } ], "profileType": "KEEP_ALL_PROFILE" } } } EOF
Luego, ejecuta el siguiente comando para enviar tu solicitud de 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/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID:deidentify"PowerShell
Guarda el cuerpo de la solicitud en un archivo llamado
request.json
. Ejecuta el comando siguiente en la terminal para crear o reemplazar este archivo en el directorio actual:@' { "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicomTagConfig": { "options": { "primaryIds": "KEEP" }, "actions": [ { "queries": [ "00080018" ], "regenUidTag": {} } ], "profileType": "KEEP_ALL_PROFILE" } } } '@ | Out-File -FilePath request.json -Encoding utf8
Luego, ejecuta el siguiente comando para enviar tu solicitud de 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/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID:deidentify" | Select-Object -Expand ContentOPERATION_ID
. Necesitarás este valor en el paso siguiente.Usa el método
projects.locations.datasets.operations.get
para obtener el estado de la operación de larga duración.Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_IDEl ID de tu proyecto de Google Cloud.
- SOURCE_DATASET_LOCATION: La ubicación del conjunto de datos de origen
- SOURCE_DATASET_ID: Es el ID del conjunto de datos que contiene los datos que se desidentificarán.
- OPERATION_ID: Es el ID que muestra la operación de larga duración.
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el siguiente comando:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID/operations/OPERATION_ID"PowerShell
Ejecuta el siguiente comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand ContentExplorador de API
Abre el página de referencia del método. El panel del Explorador de API se abre en la parte derecha de la página. Puedes interactuar con esta herramienta para enviar solicitudes. Completa los campos obligatorios y haz clic en Ejecutar.
"done": true
, significa que la operación de larga duración finalizó.Después de que la desidentificación se realice correctamente, puedes recuperar los metadatos del una instancia desidentificada para ver cómo cambió. La instancia desidentificada tiene un nuevo UID de instancias porque especificaste la etiqueta
SOPInstanceUID
en el arrayAction.queries[]
, por lo que primero debes buscar en el nuevo conjunto de datos la instancia desidentificada.Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_IDEl ID de tu proyecto de Google Cloud.
- DESTINATION_DATASET_ID: Es el ID del conjunto de datos de destino en el que se escriben los datos desidentificados.
- SOURCE_DATASET_LOCATION: La ubicación del conjunto de datos de origen
- DESTINATION_DICOM_STORE_ID: Es el ID del almacén de DICOM en el conjunto de datos de destino. Es el mismo que el ID del almacén de DICOM en el conjunto de datos de origen.
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el siguiente comando:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances"PowerShell
Ejecuta el siguiente comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances" | Select-Object -Expand ContentDeberías recibir una respuesta JSON similar a la que se muestra a continuación:
En la siguiente tabla, se muestra cómo cambió el UID de las instancias:
Metadatos de la instancia original Metadatos de instancia desidentificados 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 el valor nuevo, recupera los metadatos de la instancia.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_IDEl ID de tu proyecto de Google Cloud.
- DESTINATION_DATASET_ID: Es el ID del conjunto de datos de destino en el que se escriben los datos desidentificados.
- SOURCE_DATASET_LOCATION: La ubicación del conjunto de datos de origen
- DESTINATION_DICOM_STORE_ID: Es el ID del almacén de DICOM en el conjunto de datos de destino. Es el mismo que el ID del almacén de DICOM en el conjunto de datos de origen.
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el siguiente comando:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/2.25.70541616638819138568043293671559322355/series/1.2.276.0.7230010.3.1.3.8323329.78.1531234558.523694/instances/1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029/metadata"PowerShell
Ejecuta el siguiente comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/2.25.70541616638819138568043293671559322355/series/1.2.276.0.7230010.3.1.3.8323329.78.1531234558.523694/instances/1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029/metadata" | Select-Object -Expand ContentExplorador de API
Abre el página de referencia del método. El panel del Explorador de API se abre en la parte derecha de la página. Puedes interactuar con esta herramienta para enviar solicitudes. Completa los campos obligatorios y haz clic en Ejecutar.
Ten en cuenta que, de los IDs principales, solo
SOPInstanceUID
tiene un UID recién generado.
Desidentifica recursivamente las etiquetas en un Sequence
anidado
En los siguientes ejemplos, se muestra cómo usar el objeto RecurseTag
para desidentificar de forma recursiva las etiquetas de DICOM anidadas en un Sequence
.
El objeto RecurseTag
solo admite la RV SQ
, que es la RV para
un objeto Sequence
.
Para obtener información sobre la RV de SQ
, consulta 7.5 Anidación de conjuntos de datos.
La instancia de muestra de DICOM
que se proporcionó en esta página no contiene ninguna etiqueta de DICOM que tenga una RV de SQ
.
Puedes crear y almacenar una instancia de DICOM con datos falsos que contengan la VR SQ
Completando los siguientes pasos, que se basan en las instrucciones de
Crear instancias de DICOM a partir de metadatos JSON y archivos JPEG.
La instancia de DICOM que creas en los siguientes pasos usa datos falsos y solo tiene como objetivo ilustrar el comportamiento deRecurseTag
.
Guarda los siguientes metadatos DICOM en un archivo JSON llamado
instance.json
. Los metadatos contienen una etiquetaPhysiciansReadingStudyIdentificationSequence
(00081062
). La etiqueta tiene una RVSQ
y contiene dos etiquetasPersonIdentificationCodeSequence
(00401101
) anidadas. Las etiquetas anidadas también tienen una RVSQ
y cada una contiene las siguientes etiquetas anidadas:CodeValue
(00080100
)CodingSchemeDesignator
(00080102
)
[{ "00020010": { "vr": "UI", "Value": [ "1.2.840.10008.1.2.4.50" ] }, "00080005": { "vr": "CS", "Value": [ "ISO_IR 192" ] }, "00080016": { "vr": "UI", "Value": [ "1111111" ] }, "00080018": { "vr": "UI", "Value": [ "2222222" ] }, "0020000D": { "vr": "UI", "Value": [ "3333333" ] }, "0020000E": { "vr": "UI", "Value": [ "4444444" ] }, "00280002": { "vr": "US", "Value": [ 3 ] }, "00280004": { "vr": "CS", "Value": [ "YBR_FULL_422" ] }, "00280006": { "vr": "US", "Value": [ 0 ] }, "00280008": { "vr": "IS", "Value": [ 1 ] }, "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 ] }, "7FE00010": { "vr": "OB", "BulkDataURI": "jpeg-image" }, "00081062": { "vr": "SQ", "Value": [ { "00401101": { "vr": "SQ", "Value": [ { "00080100": { "vr": "SH", "Value": [ "CodeValue1" ] }, "00080102": { "vr": "SH", "Value": [ "CodingSchemeDesignator1" ] } } ] } }, { "00401101": { "vr": "SQ", "Value": [ { "00080100": { "vr": "SH", "Value": [ "CodeValue2" ] }, "00080102": { "vr": "SH", "Value": [ "CodingSchemeDesignator2" ] } } ] } } ] } }]
Descarga el archivo
google.jpg
. a tu máquina local. La API de DICOMweb de la API de Cloud Healthcare acepta cualquier archivo JPEG sincronizada con metadatos JSON, siempre y cuando los metadatos sean válidos.Ejecuta los siguientes comandos para crear una apertura (para los metadatos JSON), una imagen central (para el JPEG) y límites de cierre en la imagen:
echo -ne "--DICOMwebBoundary\r\nContent-Type: application/dicom+json\r\n\r\n" > opening.file echo -ne "\r\n--DICOMwebBoundary\r\nContent-Location: jpeg-image\r\nContent-Type: image/jpeg; transfer-syntax=1.2.840.10008.1.2.4.50\r\n\r\n" > middle.file echo -ne "\r\n--DICOMwebBoundary--" > closing.file
Une la imagen
google.jpg
entre los límites centrales y de cierre. El resultado que envías a la API de Cloud Healthcare, se llamamultipart-request.file
:cat opening.file instance.json middle.file google.jpg closing.file > multipart-request.file
Almacena el archivo
multipart-request.file
:REST
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_IDEl ID de tu proyecto de Google Cloud.
- SOURCE_DATASET_ID: El ID del conjunto de datos que contiene los datos que se desidentificarán
- SOURCE_DATASET_LOCATION: La ubicación del conjunto de datos de origen
- SOURCE_DICOM_STORE_ID: Es el ID del almacén de DICOM dentro del conjunto de datos de origen.
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el siguiente comando:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: multipart/related; type=\"application/dicom+json\"; boundary=DICOMwebBoundary" \
--data-binary @multipart-request.file \
"https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID/dicomStores/SOURCE_DICOM_STORE_ID/dicomWeb/studies"PowerShell
Ejecuta el siguiente comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-InFile multipart-request.file `
-Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID/dicomStores/SOURCE_DICOM_STORE_ID/dicomWeb/studies" | Select-Object -Expand ContentDeberías recibir una respuesta JSON similar a la que se muestra a continuación:
Completa los siguientes pasos para desidentificar la instancia de DICOM que almacenaste.
REST
Desidentifica el conjunto de datos.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_IDEl ID de tu proyecto de Google Cloud.
- SOURCE_DATASET_LOCATION: La ubicación del conjunto de datos de origen
- SOURCE_DATASET_ID: Es el ID del conjunto de datos que contiene los datos que se desidentificarán.
- DESTINATION_DATASET_ID: Es el 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/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicomTagConfig": { "actions": [ { "queries": [ "PhysiciansReadingStudyIdentificationSequence" ], "recurseTag": {} } ] } } }
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado
request.json
. Ejecuta el comando siguiente en la terminal para crear o reemplazar este archivo en el directorio actual:cat > request.json << 'EOF' { "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicomTagConfig": { "actions": [ { "queries": [ "PhysiciansReadingStudyIdentificationSequence" ], "recurseTag": {} } ] } } } EOF
Luego, ejecuta el siguiente comando para enviar tu solicitud de 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/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID:deidentify"PowerShell
Guarda el cuerpo de la solicitud en un archivo llamado
request.json
. Ejecuta el comando siguiente en la terminal para crear o reemplazar este archivo en el directorio actual:@' { "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicomTagConfig": { "actions": [ { "queries": [ "PhysiciansReadingStudyIdentificationSequence" ], "recurseTag": {} } ] } } } '@ | Out-File -FilePath request.json -Encoding utf8
Luego, ejecuta el siguiente comando para enviar tu solicitud de 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/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID:deidentify" | Select-Object -Expand ContentOPERATION_ID
. Necesitarás este valor en el paso siguiente.Usa el método
projects.locations.datasets.operations.get
para obtener el estado de la operación de larga duración.Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_IDEl ID de tu proyecto de Google Cloud.
- SOURCE_DATASET_LOCATION: La ubicación del conjunto de datos de origen
- SOURCE_DATASET_ID: Es el ID del conjunto de datos que contiene los datos que se desidentificarán.
- OPERATION_ID: Es el ID que muestra la operación de larga duración.
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el siguiente comando:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID/operations/OPERATION_ID"PowerShell
Ejecuta el siguiente comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand ContentExplorador de API
Abre el página de referencia del método. El panel del Explorador de API se abre en la parte derecha de la página. Puedes interactuar con esta herramienta para enviar solicitudes. Completa los campos obligatorios y haz clic en Ejecutar.
"done": true
, significa que la operación de larga duración finalizó.Después de que la desidentificación se realice correctamente, puedes recuperar los metadatos del una instancia desidentificada para ver cómo cambió. La instancia desidentificada tiene un UID de estudios nuevo, un UID de serie y un UID de instancias, por lo que primero debes buscar la instancia desidentificada en el conjunto de datos nuevo.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_IDEl ID de tu proyecto de Google Cloud.
- DESTINATION_DATASET_ID: Es el ID del conjunto de datos de destino en el que se escriben los datos desidentificados.
- SOURCE_DATASET_LOCATION: La ubicación del conjunto de datos de origen
- DESTINATION_DICOM_STORE_ID: Es el ID del almacén de DICOM en el conjunto de datos de destino. Es el mismo que el ID del almacén de DICOM en el conjunto de datos de origen.
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el siguiente comando:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances"PowerShell
Ejecuta el siguiente comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances" | Select-Object -Expand ContentDeberías recibir una respuesta JSON similar a la que se muestra a continuación:
En la siguiente tabla, se muestra cómo los UID de los estudios, los UID de la serie y los UID de instancias cambió:
Metadatos de la instancia original Metadatos de instancia desidentificados UID de estudios ( 0020000D
)3333333
1.3.6.1.4.1.11129.5.1.222168347996079463826250565085126257314
UID de serie ( 0020000E
)4444444
1.3.6.1.4.1.11129.5.1.25205702030237830896398173746777399347
UID de instancias ( 00080018
)2222222
1.3.6.1.4.1.11129.5.1.286710307126045768765142714621897494633
Con los valores nuevos, recupera los metadatos para la instancia.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_IDEl ID de tu proyecto de Google Cloud.
- DESTINATION_DATASET_ID: Es el ID del conjunto de datos de destino en el que se escriben los datos desidentificados.
- SOURCE_DATASET_LOCATION: La ubicación del conjunto de datos de origen
- DESTINATION_DICOM_STORE_ID: Es el ID del almacén de DICOM en el conjunto de datos de destino. Es el mismo que el ID del almacén de DICOM en el conjunto de datos de origen.
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el siguiente comando:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.1.222168347996079463826250565085126257314/series/1.3.6.1.4.1.11129.5.1.25205702030237830896398173746777399347/instances/1.3.6.1.4.1.11129.5.1.286710307126045768765142714621897494633/metadata"PowerShell
Ejecuta el siguiente comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.1.222168347996079463826250565085126257314/series/1.3.6.1.4.1.11129.5.1.25205702030237830896398173746777399347/instances/1.3.6.1.4.1.11129.5.1.286710307126045768765142714621897494633/metadata" | Select-Object -Expand ContentExplorador de API
Abre el página de referencia del método. El panel del Explorador de API se abre en la parte derecha de la página. Puedes interactuar con esta herramienta para enviar solicitudes. Completa los campos obligatorios y haz clic en Ejecutar.
En particular, observa que los valores de los objetos
CodeValue
yCodingSchemaDesignator
anidados Las etiquetas se configuran enPLACEHOLDER
:Original metadata
Metadatos después de ejecutar RecurseTag
{ "00081062": { "vr": "SQ", "Value": [ { "00401101": { "vr": "SQ", "Value": [ { "00080100": { "vr": "SH", "Value": [ "CodeValue1" ] }, "00080102": { "vr": "SH", "Value": [ "CodingSchemeDesignator1" ] } } ] } }, { "00401101": { "vr": "SQ", "Value": [ { "00080100": { "vr": "SH", "Value": [
"CodeValue2"
] }, "00080102": { "vr": "SH", "Value": ["CodingSchemeDesignator2"
] } } ] } } ] } }{ "00081062": { "vr": "SQ", "Value": [ { "00401101": { "vr": "SQ", "Value": [ { "00080100": { "vr": "SH", "Value": [ "PLACEHOLDER" ] }, "00080102": { "vr": "SH", "Value": [ "PLACEHOLDER" ] } } ] } }, { "00401101": { "vr": "SQ", "Value": [ { "00080100": { "vr": "SH", "Value": [ "PLACEHOLDER" ] }, "00080102": { "vr": "SH", "Value": [ "PLACEHOLDER" ] } } ] } } ] } }
Desidentificar datos a nivel del almacén de DICOM
Las muestras anteriores muestran cómo desidentificar datos de DICOM a nivel de conjunto de datos. En esta sección, se describe cómo desidentificar datos a nivel del almacén de DICOM.
Para cambiar una solicitud de desidentificación de conjunto de datos a una solicitud de desidentificación de almacén de DICOM, realiza los siguientes cambios:
- Reemplaza
destinationDataset
en el cuerpo de la solicitud pordestinationStore
. - Agrega
dicomStores/DESTINATION_DICOM_STORE_ID
al final del valor endestinationStore
cuando especifiques el destino. - Agrega
dicomStores/SOURCE_DICOM_STORE_ID
cuando especifiques la ubicación de los datos de origen.
En los siguientes ejemplos, se muestra una solicitud de desidentificación a nivel de conjunto de datos y cómo Modifica la solicitud de desidentificación a nivel de almacén de DICOM:
Desidentificación a nivel de conjunto de datos:
"destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID" ... "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/SOURCE_DATASET_ID:deidentify"
Desidentificación a nivel del almacén DICOM:
"destinationStore": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID" ... "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/SOURCE_DATASET_ID/dicomStores/SOURCE_DICOM_STORE_ID:deidentify"
En los siguientes ejemplos, se muestra cómo desidentificar una instancia de DICOM en un almacén de DICOM y escribir los datos desidentificados en un nuevo almacén de DICOM. Antes de ejecutar las muestras, el ID del almacén de DICOM de destino ya debe existir.
REST
Desidentifica el conjunto de datos.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_IDEl ID de tu proyecto de Google Cloud.
- SOURCE_DATASET_LOCATION: La ubicación del conjunto de datos de origen
- SOURCE_DATASET_ID: Es el ID del conjunto de datos que contiene los datos que se desidentificarán.
- DESTINATION_DATASET_ID: Es el ID del conjunto de datos de destino en el que se escriben los datos desidentificados. Ya debe existir antes de ejecutar la operación de desidentificación.
- DESTINATION_DICOM_STORE_ID: Es el almacén de DICOM en el conjunto de datos de destino. Ya debe existir antes de ejecutar la operación de desidentificación.
Cuerpo JSON de la solicitud:
{ "destinationStore": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID", "config": { "dicomTagConfig": { "actions": [ { "queries": [ "PatientName" ], "keepTag": {} } ] } } }
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado
request.json
. Ejecuta el comando siguiente en la terminal para crear o reemplazar este archivo en el directorio actual:cat > request.json << 'EOF' { "destinationStore": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID", "config": { "dicomTagConfig": { "actions": [ { "queries": [ "PatientName" ], "keepTag": {} } ] } } } EOF
Luego, ejecuta el siguiente comando para enviar tu solicitud de 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/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID:deidentify"PowerShell
Guarda el cuerpo de la solicitud en un archivo llamado
request.json
. Ejecuta el comando siguiente en la terminal para crear o reemplazar este archivo en el directorio actual:@' { "destinationStore": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID", "config": { "dicomTagConfig": { "actions": [ { "queries": [ "PatientName" ], "keepTag": {} } ] } } } '@ | Out-File -FilePath request.json -Encoding utf8
Luego, ejecuta el siguiente comando para enviar tu solicitud de 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/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID:deidentify" | Select-Object -Expand ContentOPERATION_ID
. Necesitarás este valor en el paso siguiente.Usa el método
projects.locations.datasets.operations.get
para obtener el estado de la operación de larga duración.Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_IDEl ID de tu proyecto de Google Cloud.
- SOURCE_DATASET_LOCATION: La ubicación del conjunto de datos de origen
- SOURCE_DATASET_ID: Es el ID del conjunto de datos que contiene los datos que se desidentificarán.
- OPERATION_ID: Es el ID que muestra la operación de larga duración.
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el siguiente comando:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID/operations/OPERATION_ID"PowerShell
Ejecuta el siguiente comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand ContentExplorador de API
Abre el página de referencia del método. El panel del Explorador de API se abre en la parte derecha de la página. Puedes interactuar con esta herramienta para enviar solicitudes. Completa los campos obligatorios y haz clic en Ejecutar.
"done": true
, significa que la operación de larga duración finalizó.Después de que la desidentificación se realice correctamente, puedes recuperar los metadatos del una instancia desidentificada para ver cómo cambió. La instancia desidentificada tiene un UID de estudios nuevo, un UID de serie y un UID de instancias, por lo que primero debes buscar la instancia desidentificada en el conjunto de datos nuevo.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_IDEl ID de tu proyecto de Google Cloud.
- DESTINATION_DATASET_ID: Es el ID del conjunto de datos de destino en el que se escriben los datos desidentificados.
- SOURCE_DATASET_LOCATION: La ubicación del conjunto de datos de origen
- DESTINATION_DICOM_STORE_ID: Es el ID del almacén de DICOM en el conjunto de datos de destino. Es el mismo que el ID del almacén de DICOM en el conjunto de datos de origen.
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el siguiente comando:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances"PowerShell
Ejecuta el siguiente comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances" | Select-Object -Expand ContentDeberías recibir una respuesta JSON similar a la que se muestra a continuación:
En la siguiente tabla, se muestra cómo cambiaron el UID de los estudios, el UID de la serie y el UID de las instancias:Metadatos de la instancia original Metadatos de instancia 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 valores nuevos, recupera los metadatos para la instancia.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_IDEl ID de tu proyecto de Google Cloud.
- DESTINATION_DATASET_ID: Es el ID del conjunto de datos de destino en el que se escriben los datos desidentificados.
- SOURCE_DATASET_LOCATION: La ubicación del conjunto de datos de origen
- DESTINATION_DICOM_STORE_ID: Es el ID del almacén de DICOM en el conjunto de datos de destino. Es el mismo que el ID del almacén de DICOM en el conjunto de datos de origen.
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el siguiente comando:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_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 siguiente comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_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 API
Abre el página de referencia del método. El panel del Explorador de API se abre en la parte derecha de la página. Puedes interactuar con esta herramienta para enviar solicitudes. Completa los campos obligatorios y haz clic en Ejecutar.
Desidentificar un subconjunto de un almacén de DICOM
Puedes desidentificar un subconjunto de los datos en un almacén DICOM si especificas un filtro.
El filtro toma la forma de un archivo de filtro que especificas como un valor para el campo resourcePathsGcsUri
en el objeto DicomFilterConfig
. El archivo de filtro debe existir en un bucket de Cloud Storage. No puedes especificar un archivo de filtro que exista en tu máquina local o en cualquier otra fuente. La ubicación del archivo debe estar en formato gs://BUCKET/PATH/TO/FILE
.
Crea un archivo de filtro
Un archivo de filtro define qué archivos DICOM que desidentificar. Puede filtrar archivos en los siguientes niveles:
- A nivel del estudio
- En el nivel de la serie
- En el nivel de la instancia
El archivo de filtro está compuesto por una línea por estudio, serie o instancia que deseas desidentificar. 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 pasaste cuando se llama a la operación de desidentificación, ese estudio, serie o instancia no se se desidentifican y no estarán presentes en el almacén de DICOM de destino.
Solo se requiere la parte /studies/STUDY_UID
de la ruta de acceso. Esto significa que puedes desidentificar un estudio si especificas /studies/STUDY_UID
o puedes desidentificar una serie si especificas /studies/STUDY_UID/series/SERIES_UID
.
Considera el siguiente archivo de filtro. El archivo de filtro hace que se desidentifique 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
Crea un archivo de filtro con BigQuery
Por lo general, para crear un archivo de filtro, primero debes exportar los metadatos de un almacén de DICOM a BigQuery. Esto te permite usar BigQuery para ver los UID del estudio, serie y de las instancias de los datos de DICOM en tu almacén de DICOM. A continuación, puedes hacer lo siguiente:
Consulta los UID del estudio, la serie y la instancia que te interesan. Por ejemplo, después de exportar los metadatos a BigQuery, puedes ejecutar la siguiente consulta para concatenar los UID del estudio, la serie y la 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 muestra un conjunto de resultados grande, puedes materializar una tabla nueva si guardas los resultados de las consultas en una tabla de destino en BigQuery.
Después de guardar los resultados de las consultas en la tabla de destino, puedes guardar el contenido de la tabla de destino en un archivo y exportarlo a Cloud Storage. Si quieres obtener los pasos para hacerlo, consulta Exporta datos de tablas. El archivo exportado es tu archivo de filtro. Usarás la ubicación del archivo de filtro en Cloud Storage cuando especifiques el filtro en la operación de exportación.
Crea un archivo de filtro de forma manual
Puedes crear un archivo de filtro con contenido personalizado y subirlo a un depósito de Cloud Storage.
Usarás la ubicación del archivo de filtro en Cloud Storage cuando especifiques el filtro en la operación de desidentificación. En el siguiente ejemplo, se muestra cómo subir un archivo de filtro a un depósito de Cloud Storage con 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
Usa un filtro
Después de configurar el archivo de filtro, puedes pasarlo como un valor al campo resourcePathsGcsUri
en el objeto filterConfig
.
En el siguiente ejemplo, se amplía Desidentificar datos a nivel del almacén de DICOM, pero se proporciona un archivo de filtro en Cloud Storage para determinar qué Los recursos de DICOM se desidentifican.
REST
Desidentifica el conjunto de datos.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_IDEl ID de tu proyecto de Google Cloud.
- LOCATION: La ubicación del conjunto de datos
- SOURCE_DATASET_ID: Es el ID del conjunto de datos que contiene los datos que se desidentificarán.
- DESTINATION_DATASET_ID: Es el ID del conjunto de datos de destino en el que se escriben los datos desidentificados.
- SOURCE_DICOM_STORE_ID: Es el ID del almacén de DICOM que contiene los datos que se desidentificarán.
- DESTINATION_DICOM_STORE_ID: Es el ID del almacén de DICOM en el conjunto de datos de destino.
- BUCKET/PATH/TO/FILE: La ubicación del archivo de filtro en un bucket 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 comando siguiente en la terminal para crear o reemplazar 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
Luego, ejecuta el siguiente comando para enviar tu solicitud de 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 comando siguiente en la terminal para crear o reemplazar 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
Luego, ejecuta el siguiente comando para enviar tu solicitud de 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 ContentUsa el método
projects.locations.datasets.operations.get
para obtener el estado de la operación de larga duración.Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_IDEl ID de tu proyecto de Google Cloud.
- SOURCE_DATASET_LOCATION: La ubicación del conjunto de datos de origen
- SOURCE_DATASET_ID: Es el ID del conjunto de datos que contiene los datos que se desidentificarán.
- OPERATION_ID: Es el ID que muestra la operación de larga duración.
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el siguiente comando:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID/operations/OPERATION_ID"PowerShell
Ejecuta el siguiente comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand ContentExplorador de API
Abre el página de referencia del método. El panel del Explorador de API se abre en la parte derecha de la página. Puedes interactuar con esta herramienta para enviar solicitudes. Completa los campos obligatorios y haz clic en Ejecutar.
"done": true
, significa que la operación de larga duración finalizó.Después de que la desidentificación se realice correctamente, puedes recuperar los metadatos del una instancia desidentificada para ver cómo cambió. La instancia desidentificada tiene un UID de estudios nuevo, un UID de serie y un UID de instancias, por lo que primero debes buscar la instancia desidentificada en el conjunto de datos nuevo.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_IDEl ID de tu proyecto de Google Cloud.
- DESTINATION_DATASET_ID: Es el ID del conjunto de datos de destino en el que se escriben los datos desidentificados.
- SOURCE_DATASET_LOCATION: La ubicación del conjunto de datos de origen
- DESTINATION_DICOM_STORE_ID: Es el ID del almacén de DICOM en el conjunto de datos de destino. Es el mismo que el ID del almacén de DICOM en el conjunto de datos de origen.
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el siguiente comando:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances"PowerShell
Ejecuta el siguiente comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances" | Select-Object -Expand ContentDeberías recibir una respuesta JSON similar a la que se muestra a continuación:
En la siguiente tabla, se muestra cómo cambiaron el UID de los estudios, el UID de la serie y el UID de las instancias:Metadatos de la instancia original Metadatos de instancia 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 valores nuevos, recupera los metadatos para la instancia.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_IDEl ID de tu proyecto de Google Cloud.
- DESTINATION_DATASET_ID: Es el ID del conjunto de datos de destino en el que se escriben los datos desidentificados.
- SOURCE_DATASET_LOCATION: La ubicación del conjunto de datos de origen
- DESTINATION_DICOM_STORE_ID: Es el ID del almacén de DICOM en el conjunto de datos de destino. Es el mismo que el ID del almacén de DICOM en el conjunto de datos de origen.
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el siguiente comando:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_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 siguiente comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_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 API
Abre la página de referencia del método. El panel del Explorador de API se abre en la parte derecha de la página. Puedes interactuar con esta herramienta para enviar solicitudes. Completa los campos obligatorios y haz clic en Ejecutar.
Solucionar problemas de operaciones de desidentificación de DICOM
Si se producen errores durante una operación de desidentificación de DICOM, estos se registran en Cloud Logging. Para obtener más información, consulta Visualiza los registros de errores en Cloud Logging.
Si toda la operación muestra un error, consulta Solución de problemas de operaciones de larga duración.