Esta página explica como usar a configuração DicomTagConfig
v1beta1 na API Cloud Healthcare para desidentificar dados confidenciais em instâncias DICOM nos seguintes níveis:
- Ao nível do conjunto de dados, usando
datasets.deidentify
- Ao nível do armazenamento DICOM, através de
dicomStores.deidentify
Esta página também explica como aplicar filtros ao remover a identificação dos dados ao nível do armazenamento DICOM.
Pode configurar operações de desidentificação DICOM através do objeto DicomConfig
v1 antigo ou do objeto DicomTagConfig
v1beta1. Recomendamos vivamente que use DicomTagConfig
.
Se já usa o DicomConfig
para as suas operações de desidentificação, recomendamos que migre para a utilização do DicomTagConfig
. Para ver um resumo das novas funcionalidades, consulte o artigo Novas opções de configuração no DicomTagConfig
.
Para ver instruções sobre como migrar, consulte o artigo Migre pedidos e respostas para usar DicomTagConfig
.
Novas opções de configuração no DicomTagConfig
Desidentifique texto com a desidentificação contextual
Pode configurar o objeto DicomTagConfig.Options.CleanDescriptorsOption
para ativar a desidentificação contextual do texto de metadados não estruturados.
Esta opção baseia-se na opção de descritores limpos.
Quando especifica DicomTagConfig.Options.CleanDescriptorsOption
, é usado um infoType adicional durante a inspeção, o que pode afetar os custos de faturação.
A utilização da opção DicomTagConfig.Options.CleanDescriptorsOption
transforma qualquer texto de metadados não estruturado que corresponda a etiquetas removidas e, ao fazê-lo, melhora a qualidade da desidentificação. Por exemplo, suponhamos que está a remover a identificação de uma radiografia e que o paciente da radiografia tem um apelido que também é um substantivo, como Wall
. Se quaisquer metadados na instância, como o texto em StudyDescription
, contiverem a palavra Wall
, o texto é transformado.
A opção CleanDescriptorsOption
oculta frases contextuais que correspondam a quaisquer etiquetas
marcadas para remoção no perfil base DICOM
desde que as etiquetas correspondam a um dos seguintes códigos de ação:
D
Z
X
U
As expressões contextuais correspondentes são substituídas pelo token [CTX]
.
Pode configurar as etiquetas que são ocultadas especificando o seguinte:
- Uma enumeração no objeto
ProfileType
. Não é necessário especificar uma enumeração. - O
CleanTextTag
filtro para etiquetas específicas.
No entanto, não é possível alterar as etiquetas usadas no perfil base DICOM.
Oculte texto incorporado com desidentificação contextual
Pode especificar a enumeração TextRedactionMode.REDACT_SENSITIVE_TEXT_CLEAN_DESCRIPTORS
para ativar a desidentificação contextual de texto incorporado numa imagem.
Esta opção baseia-se na opção de descritores limpos.
Quando especifica o TextRedactionMode.REDACT_SENSITIVE_TEXT_CLEAN_DESCRIPTORS
enum, é usado um infoType adicional durante a inspeção, o que pode afetar os custos de faturação.
Pode especificar o TextRedactionMode.REDACT_SENSITIVE_TEXT_CLEAN_DESCRIPTORS
enum das seguintes formas:
Num objeto
Options.ImageConfig
comDicomTagConfig.Options.ImageConfig.TextRedactionMode
. Quando especifica esta opção, a etiquetaPixelData (7FE0,0010)
é adicionada automaticamente à lista de etiquetas a serem ocultadas.Num objeto
Action.CleanImageTag
comDicomTagConfig.Action.CleanImageTag.TextRedactionMode
. Quando especifica esta opção, tem de adicionar manualmente a etiquetaPixelData
ao conjuntoAction.queries[]
. A etiquetaPixelData
é a única etiqueta suportada quando usaAction.CleanImageTag
.
A opção TextRedactionMode.REDACT_SENSITIVE_TEXT_CLEAN_DESCRIPTORS
oculta
texto incorporado que corresponda a quaisquer etiquetas
marcadas para remoção no perfil base DICOM
desde que as etiquetas correspondam a um dos seguintes códigos de ação:
D
Z
X
U
Não existe configuração adicional para a desidentificação contextual de texto incorporado, além de a ativar ou desativar através de uma enumeração no objeto ProfileType
. Não é necessário especificar uma enumeração.
InfoTypes adicionais na desidentificação de imagens
Pode usar tipos de informações (infoTypes) para especificar os dados a analisar quando realizar a desidentificação em etiquetas. Um infoType é um tipo de dados confidenciais, como o nome de um paciente, um endereço de email, um número de telefone, um número de identificação ou um número de cartão de crédito.
Pode configurar os seguintes campos no objeto DicomTagConfig.Options.ImageConfig
para determinar que infoTypes usar durante a desidentificação de imagens DICOM:
Estes campos só entram em vigor se DicomTagConfig.Options.ImageConfig.TextRedactionMode
estiver definido como um dos seguintes valores:
Migre pedidos e respostas para usar DicomTagConfig
Pode configurar a desidentificação de DICOM através da DicomTagConfig
, que está disponível na API Cloud Healthcare v1beta1 e é uma alternativa à utilização da
DicomConfig
antiga.
Quando envia um pedido, não pode incluir DicomConfig
e DicomTagConfig
.
As secções seguintes descrevem as configurações no DicomConfig
e como as
migrar para o DicomTagConfig
.
TagFilterProfile
a ProfileType
Substitua o objeto DicomConfig
TagFilterProfile
pelo objeto DicomTagConfig
ProfileType
. Os mesmos quatro perfis no TagFilterProfileType
estão disponíveis no
ProfileType
.
O exemplo seguinte mostra como migrar um pedido da utilização de TagFilterProfile
para a utilização de ProfileType
:
DicomConfig | DicomTagConfig |
---|---|
|
|
keepList
e removeList
Os campos DicomConfig
keepList
e removeList
já não estão disponíveis em DicomTagConfig
. Se usou keepList
e removeList
para especificar as etiquetas a manter ou remover em vez de usar um perfil,
tem de migrar para o novo objeto Action
onde especifica o comportamento das etiquetas. O objeto Action
oferece opções adicionais para transformar etiquetas.
O exemplo seguinte mostra como migrar um pedido da utilização de keepList
para a utilização de Action.keepTag
. O pedido especifica que o valor da etiqueta PatientID
é mantido durante a operação de anulação da identificação.
DicomConfig | DicomTagConfig |
---|---|
|
|
Combine listas de manutenção, listas de remoção e perfis
No objeto DicomConfig
, pode determinar se pretende manter ou remover dados com base em listas de manutenção, listas de remoção e perfis. Estas opções são mutuamente exclusivas.
Quando usa o objeto DicomTagConfig
, pode combinar estas opções especificando que etiquetas manter e remover num objeto Action
, ao mesmo tempo que especifica um perfil em ProfileType
.
As opções configuradas no objeto Action
substituem as configuradas no perfil ProfileType
. As opções no objeto Action
aplicam-se pela ordem em que são fornecidas no pedido.
skipIdRedaction
a Objects.primaryIds
Substituir o campo skipIdRedaction
no objeto DicomConfig
pelo campo primaryIds
no objeto DicomTagConfig
. O campo primaryIds
, que se encontra no objeto Options
, contém um objeto PrimaryIdsOption
onde especifica uma das seguintes enumerações:
PRIMARY_IDS_OPTION_UNSPECIFIED
: comportamento predefinido quando não é fornecido nenhum valor aPrimaryIdsOption
. A predefinição é a opção especificada emProfileType
.KEEP
: deixe os IDs principais inalterados.REGEN
: regenerar os IDs principais.
O exemplo seguinte mostra como migrar um pedido da utilização de skipIdRedaction
para a utilização de Options.primaryIds
. O pedido especifica que os valores dos IDs principais são mantidos durante a operação de desidentificação:
DicomConfig | DicomTagConfig |
---|---|
|
|
DeidentifyConfig.ImageConfig
a DicomTagConfig.Options.ImageConfig
Substituir o objeto DeidentifyConfig.ImageConfig
pelo objeto DicomTagConfig.Options.ImageConfig
.
As opções no objeto ImageConfig
são as mesmas em ambas as versões.
O exemplo seguinte mostra como migrar um pedido da utilização de um ImageConfig
em DeidentifyConfig.image
para a utilização de um ImageConfig
em DeidentifyConfig.DicomTagConfig.Options.cleanImage
.
O pedido especifica que todo o texto numa imagem deve ser ocultado durante a operação de desidentificação:
DeidentifyConfig.image | DeidentifyConfig.DicomTagConfig.Options.cleanImage |
---|---|
|
|
Vista geral da desidentificação
Desidentificação ao nível do conjunto de dados
Para anular a identificação dos dados DICOM ao nível do conjunto de dados, chame o método
datasets.deidentify
. O método datasets.deidentify
tem os seguintes componentes:
- O conjunto de dados de origem: um conjunto de dados que contém arquivos DICOM com uma ou mais instâncias que têm dados confidenciais. Quando chama o método
datasets.deidentify
, todas as instâncias em todos os armazenamentos DICOM no conjunto de dados são anonimizadas. - O conjunto de dados de destino: a anulação da identificação não afeta o conjunto de dados original nem os respetivos dados. Em vez disso, são escritas cópias anonimizadas dos dados originais num novo conjunto de dados, denominado conjunto de dados de destino.
- O que desidentificar: parâmetros de configuração que especificam como processar os dados DICOM no conjunto de dados. Pode configurar a desidentificação de DICOM para desidentificar metadados de instâncias DICOM (através de palavras-chave de etiquetas) ou texto incorporado em imagens DICOM especificando estes parâmetros num objeto
DeidentifyConfig
.
A maioria dos exemplos neste guia mostra como anular a identificação dos dados DICOM ao nível do conjunto de dados.
Desidentificação ao nível do armazenamento DICOM
A remoção da identificação dos dados DICOM ao nível do armazenamento DICOM permite-lhe ter mais controlo sobre os dados cuja identificação é removida. Por exemplo, se tiver um conjunto de dados com várias lojas DICOM, pode remover a identificação de cada loja DICOM de acordo com o tipo de dados existente na loja.
Para remover a identificação dos dados DICOM num arquivo DICOM, chame o método
dicomStores.deidentify
. O método dicomStores.deidentify
tem os seguintes componentes:
- O arquivo DICOM de origem: um arquivo DICOM que contém uma ou mais instâncias com dados confidenciais. Quando chama a operação
dicomStores.deidentify
, todas as instâncias no arquivo DICOM são anonimizadas. - O armazenamento DICOM de destino: a anulação da identificação não afeta o armazenamento DICOM original nem os respetivos dados. Em alternativa, são escritas cópias desidentificadas dos dados originais no arquivo DICOM de destino. O arquivo DICOM de destino já tem de existir.
- O que desidentificar: parâmetros de configuração que especificam como processar o armazenamento DICOM. Pode configurar a desidentificação de DICOM para desidentificar
metadados de instâncias DICOM (através de palavras-chave de etiquetas) ou texto incorporado em imagens DICOM
especificando estes parâmetros num objeto
DeidentifyConfig
.
Para ver um exemplo de como remover a identificação dos dados DICOM ao nível do arquivo DICOM, consulte o artigo Remova a identificação dos dados ao nível do arquivo DICOM.
Filtros
Quando desidentifica dados DICOM ao nível do arquivo DICOM, pode desidentificar um subconjunto dos dados no arquivo DICOM configurando um ficheiro de filtro e especificando o ficheiro no pedido dicomStores.deidentify
. Por exemplo, consulte o artigo Remova a identificação de um subconjunto de um arquivo DICOM.
Vista geral dos samples
Os exemplos neste guia usam uma única instância DICOM denominada
dicom_deid_instance_sample.dcm
,
mas também pode anular a identificação de várias instâncias. Para usar a instância DICOM de exemplo nos exemplos desta página, transfira o ficheiro para o seu computador local e siga as instruções em Armazene dados DICOM para o armazenar num arquivo DICOM.
As secções seguintes mostram o aspeto da imagem na instância DICOM e os metadados na instância.
Imagem de exemplo
Alguns exemplos nesta página contêm uma saída da imagem desidentificada. Cada exemplo usa a seguinte imagem original como entrada. Pode comparar a imagem de saída de cada operação de desidentificação com esta imagem original para ver os efeitos da operação:
Exemplo de metadados
A maioria dos exemplos nesta página contém uma saída dos metadados alterados na instância DICOM. Cada exemplo usa os seguintes metadados originais como entrada. Pode comparar os metadados de saída de cada operação de desidentificação com estes metadados originais para ver os efeitos da desidentificação:
[
{
"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"
]
}
}
]
Ocure texto incorporado em imagens
Pode remover a identificação do texto incorporado em imagens DICOM através do objeto ImageConfig
dentro de um objeto Action
. Dentro de ImageConfig
, pode especificar os infoTypes a incluir ou excluir e como ocultar texto através do objeto TextRedactionMode
.
Oculte todo o texto
Os exemplos seguintes mostram como anular a identificação de uma instância DICOM definindo
TextRedactionMode
como REDACT_ALL_TEXT
.
Esta configuração oculta todo o texto incorporado na imagem.
REST
Desidentifique o conjunto de dados.
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: o ID do seu Google Cloud projeto
- SOURCE_DATASET_LOCATION: a localização do conjunto de dados de origem
- SOURCE_DATASET_ID: o ID do conjunto de dados que contém os dados a desidentificar
- DESTINATION_DATASET_ID: o ID do conjunto de dados de destino onde os dados anonimizados são escritos
Corpo JSON do pedido:
{ "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicomTagConfig": { "options": { "cleanImage": { "textRedactionMode": "REDACT_ALL_TEXT" } } } } }
Para enviar o seu pedido, escolha uma destas opções:
curl
Guarde o corpo do pedido num ficheiro denominado
request.json
. Execute o seguinte comando no terminal para criar ou substituir este ficheiro no diretório atual: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
Em seguida, execute o seguinte comando para enviar o seu pedido 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
Guarde o corpo do pedido num ficheiro denominado
request.json
. Execute o seguinte comando no terminal para criar ou substituir este ficheiro no diretório atual:@' { "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
Em seguida, execute o seguinte comando para enviar o seu pedido 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
. Precisa deste valor no passo seguinte.Use o método
projects.locations.datasets.operations.get
para obter o estado da operação de execução longa.Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: o ID do seu Google Cloud projeto
- SOURCE_DATASET_LOCATION: a localização do conjunto de dados de origem
- SOURCE_DATASET_ID: o ID do conjunto de dados que contém os dados a desidentificar
- OPERATION_ID: o ID devolvido pela operação de longa duração
Para enviar o seu pedido, escolha uma destas opções:
curl
Execute o seguinte 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
Execute o seguinte 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 APIs
Abra a página de referência do método. O painel APIs Explorer é aberto no lado direito da página. Pode interagir com esta ferramenta para enviar pedidos. Preencha todos os campos obrigatórios e clique em Executar.
"done": true
, a operação de longa duração terminou.Depois de a anulação da identificação ser bem-sucedida, pode obter os metadados da instância com anulação da identificação para ver como mudaram. A instância anonimizada tem um novo UID de estudos, UID de séries e UID de instâncias, pelo que tem de pesquisar primeiro a instância anonimizada no novo conjunto de dados.
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: o ID do seu Google Cloud projeto
- DESTINATION_DATASET_ID: o ID do conjunto de dados de destino onde os dados anonimizados são escritos
- SOURCE_DATASET_LOCATION: a localização do conjunto de dados de origem
- DESTINATION_DICOM_STORE_ID: o ID do armazenamento DICOM no conjunto de dados de destino. Este é o mesmo que o ID do arquivo DICOM no conjunto de dados de origem.
Para enviar o seu pedido, escolha uma destas opções:
curl
Execute o seguinte 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
Execute o seguinte 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 ContentDeve receber uma resposta JSON semelhante à seguinte:
A tabela seguinte mostra como o UID dos estudos, o UID das séries e o UID das instâncias foram alterados:Metadados da instância original Metadados de instâncias anonimizados UID dos estudos ( 0020000D
)2.25.70541616638819138568043293671559322355
1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763
UID da série ( 0020000E
)1.2.276.0.7230010.3.1.3.8323329.78.1531234558.523694
1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710
UID das instâncias ( 00080018
)1.2.276.0.7230010.3.1.4.8323329.78.1539083058.523695
1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029
Com os novos valores, obtenha os metadados da instância.
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: o ID do seu Google Cloud projeto
- DESTINATION_DATASET_ID: o ID do conjunto de dados de destino onde os dados anonimizados são escritos
- SOURCE_DATASET_LOCATION: a localização do conjunto de dados de origem
- DESTINATION_DICOM_STORE_ID: o ID do armazenamento DICOM no conjunto de dados de destino. Este é o mesmo que o ID do arquivo DICOM no conjunto de dados de origem.
Para enviar o seu pedido, escolha uma destas opções:
curl
Execute o seguinte 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
Execute o seguinte 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 APIs
Abra a página de referência do método. O painel APIs Explorer é aberto no lado direito da página. Pode interagir com esta ferramenta para enviar pedidos. Preencha todos os campos obrigatórios e clique em Executar.
Depois de remover a identificação da imagem com REDACT_ALL_TEXT
, a imagem
tem o seguinte aspeto. Repare que todo o texto incorporado na parte inferior da imagem foi ocultado.

REDACT_ALL_TEXT
.Ocure texto sensível com a opção Limpar descritores
Os exemplos seguintes mostram como anular a identificação de uma instância DICOM definindo
TextRedactionMode
como REDACT_SENSITIVE_TEXT_CLEAN_DESCRIPTORS
.
Para mais
informações sobre a opção CleanDescriptorsOption
, consulte
Desidentifique o texto com a desidentificação contextual.
REST
Desidentifique o conjunto de dados.
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: o ID do seu Google Cloud projeto
- SOURCE_DATASET_LOCATION: a localização do conjunto de dados de origem
- SOURCE_DATASET_ID: o ID do conjunto de dados que contém os dados a desidentificar
- DESTINATION_DATASET_ID: o ID do conjunto de dados de destino onde os dados anonimizados são escritos
Corpo JSON do pedido:
{ "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicomTagConfig": { "options": { "cleanImage": { "textRedactionMode": "REDACT_SENSITIVE_TEXT_CLEAN_DESCRIPTORS" } } } } }
Para enviar o seu pedido, escolha uma destas opções:
curl
Guarde o corpo do pedido num ficheiro denominado
request.json
. Execute o seguinte comando no terminal para criar ou substituir este ficheiro no diretório atual: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
Em seguida, execute o seguinte comando para enviar o seu pedido 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
Guarde o corpo do pedido num ficheiro denominado
request.json
. Execute o seguinte comando no terminal para criar ou substituir este ficheiro no diretório atual:@' { "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
Em seguida, execute o seguinte comando para enviar o seu pedido 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
. Precisa deste valor no passo seguinte.Use o método
projects.locations.datasets.operations.get
para obter o estado da operação de execução longa.Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: o ID do seu Google Cloud projeto
- SOURCE_DATASET_LOCATION: a localização do conjunto de dados de origem
- SOURCE_DATASET_ID: o ID do conjunto de dados que contém os dados a desidentificar
- OPERATION_ID: o ID devolvido pela operação de longa duração
Para enviar o seu pedido, escolha uma destas opções:
curl
Execute o seguinte 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
Execute o seguinte 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 APIs
Abra a página de referência do método. O painel APIs Explorer é aberto no lado direito da página. Pode interagir com esta ferramenta para enviar pedidos. Preencha todos os campos obrigatórios e clique em Executar.
"done": true
, a operação de longa duração terminou.Depois de a anulação da identificação ser bem-sucedida, pode obter os metadados da instância com anulação da identificação para ver como mudaram. A instância anonimizada tem um novo UID de estudos, UID de séries e UID de instâncias, pelo que tem de pesquisar primeiro a instância anonimizada no novo conjunto de dados.
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: o ID do seu Google Cloud projeto
- DESTINATION_DATASET_ID: o ID do conjunto de dados de destino onde os dados anonimizados são escritos
- SOURCE_DATASET_LOCATION: a localização do conjunto de dados de origem
- DESTINATION_DICOM_STORE_ID: o ID do armazenamento DICOM no conjunto de dados de destino. Este é o mesmo que o ID do arquivo DICOM no conjunto de dados de origem.
Para enviar o seu pedido, escolha uma destas opções:
curl
Execute o seguinte 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
Execute o seguinte 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 ContentDeve receber uma resposta JSON semelhante à seguinte:
A tabela seguinte mostra como o UID dos estudos, o UID das séries e o UID das instâncias foram alterados:Metadados da instância original Metadados de instâncias anonimizados UID dos estudos ( 0020000D
)2.25.70541616638819138568043293671559322355
1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763
UID da série ( 0020000E
)1.2.276.0.7230010.3.1.3.8323329.78.1531234558.523694
1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710
UID das instâncias ( 00080018
)1.2.276.0.7230010.3.1.4.8323329.78.1539083058.523695
1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029
Com os novos valores, obtenha os metadados da instância.
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: o ID do seu Google Cloud projeto
- DESTINATION_DATASET_ID: o ID do conjunto de dados de destino onde os dados anonimizados são escritos
- SOURCE_DATASET_LOCATION: a localização do conjunto de dados de origem
- DESTINATION_DICOM_STORE_ID: o ID do armazenamento DICOM no conjunto de dados de destino. Este é o mesmo que o ID do arquivo DICOM no conjunto de dados de origem.
Para enviar o seu pedido, escolha uma destas opções:
curl
Execute o seguinte 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
Execute o seguinte 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 APIs
Abra a página de referência do método. O painel APIs Explorer é aberto no lado direito da página. Pode interagir com esta ferramenta para enviar pedidos. Preencha todos os campos obrigatórios e clique em Executar.
Depois de remover a identificação da imagem com REDACT_SENSITIVE_TEXT_CLEAN_DESCRIPTORS
, a imagem
tem o seguinte aspeto. Repare que nem todo o texto incorporado na parte inferior da imagem foi ocultado. O texto Female
continua a ser apresentado porque PatientSex (0010,0040)
não é um dos infoTypes DICOM predefinidos.

REDACT_SENSITIVE_TEXT_CLEAN_DESCRIPTORS
.Desidentifique etiquetas DICOM
Pode remover a identificação das instâncias DICOM com base em palavras-chave de etiquetas nos metadados DICOM.
Os seguintes métodos de filtragem de etiquetas estão disponíveis no objeto
DicomTagConfig
Action
:
Especifica cada opção Action
como uma lista de IDs, nomes ou
representações de valores (VRs) de etiquetas DICOM e, em seguida, a opção executa uma ação nas
etiquetas na lista. Não pode especificar mais de uma opção Action
numa lista de etiquetas.
Cada objeto Action
fornece uma lista queries[]
onde especifica uma lista de etiquetas. São suportados os seguintes formatos de etiquetas:
- IDs de etiquetas, como
"00100010"
- Nomes de etiquetas, como
"PatientName"
- Representações de valores (VRs), como
"PN"
Não existe limite para o número de etiquetas que podem ser fornecidas na lista queries[]
.
No entanto, cada etiqueta só pode ter uma única opção Action
executada.
Para especificar diferentes etiquetas com diferentes opções Action
executadas nas mesmas, tem de especificar vários objetos Action
.
Mantenha as etiquetas
Pode impedir que os valores das etiquetas sejam ocultados especificando as etiquetas num objeto KeepTag
no objeto DicomTagConfig
.
Para produzir um objeto DICOM válido enquanto usa um objeto KeepTag
, especifique os valores MINIMAL_KEEP_LIST_PROFILE
ou DEIDENTIFY_TAG_CONTENTS
no objeto ProfileType
.
Se especificar qualquer um destes perfis, as seguintes etiquetas são mantidas automaticamente, o que garante que a instância DICOM anónima é um 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
Os valores de algumas das etiquetas anteriores são regenerados, o que significa que os valores são substituídos por um valor diferente através de uma transformação determinística. Para mais informações, consulte a opção Retain UIDs na norma DICOM.
Os valores de StudyInstanceUID
, SeriesInstanceUID
, SOPInstanceUID
e MediaStorageSOPInstanceUID
são denominados "IDs principais". Para determinar como os IDs principais são transformados, especifique um valor em PrimaryIdsOption
.
Os exemplos seguintes mostram como usar o objeto KeepTag
para manter os valores de etiquetas específicas inalterados durante a anulação da identificação.
A etiqueta PatientName
é adicionada à lista queries[]
, pelo que o valor PatientName
não é ocultado durante a desidentificação.
Uma vez que PrimaryIdsOption
não está especificado no exemplo,
o campo primaryIds
tem como predefinição PRIMARY_IDS_OPTION_UNSPECIFIED
, que tem como predefinição
o valor em ProfileType
. Uma vez que ProfileType
também não está especificado, o campo profileType
tem como predefinição PROFILE_TYPE_UNSPECIFIED
, o que remove as etiquetas com base no perfil básico de confidencialidade dos atributos (DICOM Standard Edition 2018e).
REST
Desidentifique o conjunto de dados.
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: o ID do seu Google Cloud projeto
- SOURCE_DATASET_LOCATION: a localização do conjunto de dados de origem
- SOURCE_DATASET_ID: o ID do conjunto de dados que contém os dados a desidentificar
- DESTINATION_DATASET_ID: o ID do conjunto de dados de destino onde os dados anonimizados são escritos
Corpo JSON do pedido:
{ "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicomTagConfig": { "actions": [ { "queries": [ "PatientName" ], "keepTag": {} } ] } } }
Para enviar o seu pedido, escolha uma destas opções:
curl
Guarde o corpo do pedido num ficheiro denominado
request.json
. Execute o seguinte comando no terminal para criar ou substituir este ficheiro no diretório atual:cat > request.json << 'EOF' { "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicomTagConfig": { "actions": [ { "queries": [ "PatientName" ], "keepTag": {} } ] } } } EOF
Em seguida, execute o seguinte comando para enviar o seu pedido 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
Guarde o corpo do pedido num ficheiro denominado
request.json
. Execute o seguinte comando no terminal para criar ou substituir este ficheiro no diretório atual:@' { "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
Em seguida, execute o seguinte comando para enviar o seu pedido 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
. Precisa deste valor no passo seguinte.Use o método
projects.locations.datasets.operations.get
para obter o estado da operação de execução longa.Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: o ID do seu Google Cloud projeto
- SOURCE_DATASET_LOCATION: a localização do conjunto de dados de origem
- SOURCE_DATASET_ID: o ID do conjunto de dados que contém os dados a desidentificar
- OPERATION_ID: o ID devolvido pela operação de longa duração
Para enviar o seu pedido, escolha uma destas opções:
curl
Execute o seguinte 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
Execute o seguinte 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 APIs
Abra a página de referência do método. O painel APIs Explorer é aberto no lado direito da página. Pode interagir com esta ferramenta para enviar pedidos. Preencha todos os campos obrigatórios e clique em Executar.
"done": true
, a operação de longa duração terminou.Depois de a anulação da identificação ser bem-sucedida, pode obter os metadados da instância com anulação da identificação para ver como mudaram. A instância anonimizada tem um novo UID de estudos, UID de séries e UID de instâncias, pelo que tem de pesquisar primeiro a instância anonimizada no novo conjunto de dados.
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: o ID do seu Google Cloud projeto
- DESTINATION_DATASET_ID: o ID do conjunto de dados de destino onde os dados anonimizados são escritos
- SOURCE_DATASET_LOCATION: a localização do conjunto de dados de origem
- DESTINATION_DICOM_STORE_ID: o ID do armazenamento DICOM no conjunto de dados de destino. Este é o mesmo que o ID do arquivo DICOM no conjunto de dados de origem.
Para enviar o seu pedido, escolha uma destas opções:
curl
Execute o seguinte 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
Execute o seguinte 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 ContentDeve receber uma resposta JSON semelhante à seguinte:
A tabela seguinte mostra como o UID dos estudos, o UID das séries e o UID das instâncias foram alterados:Metadados da instância original Metadados de instâncias anonimizados UID dos estudos ( 0020000D
)2.25.70541616638819138568043293671559322355
1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763
UID da série ( 0020000E
)1.2.276.0.7230010.3.1.3.8323329.78.1531234558.523694
1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710
UID das instâncias ( 00080018
)1.2.276.0.7230010.3.1.4.8323329.78.1539083058.523695
1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029
Com os novos valores, obtenha os metadados da instância.
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: o ID do seu Google Cloud projeto
- DESTINATION_DATASET_ID: o ID do conjunto de dados de destino onde os dados anonimizados são escritos
- SOURCE_DATASET_LOCATION: a localização do conjunto de dados de origem
- DESTINATION_DICOM_STORE_ID: o ID do armazenamento DICOM no conjunto de dados de destino. Este é o mesmo que o ID do arquivo DICOM no conjunto de dados de origem.
Para enviar o seu pedido, escolha uma destas opções:
curl
Execute o seguinte 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
Execute o seguinte 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 APIs
Abra a página de referência do método. O painel APIs Explorer é aberto no lado direito da página. Pode interagir com esta ferramenta para enviar pedidos. Preencha todos os campos obrigatórios e clique em Executar.
Remova as etiquetas
Os exemplos seguintes mostram como usar o objeto RemoveTag
para remover os valores de etiquetas específicas durante a desidentificação. Uma etiqueta removida é
substituída por um valor vazio.
Nos exemplos seguintes, a etiqueta PatientName
é adicionada à lista queries[]
, pelo que o respetivo valor é substituído por um valor vazio durante a anulação da identificação.
REST
Desidentifique o conjunto de dados.
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: o ID do seu Google Cloud projeto
- SOURCE_DATASET_LOCATION: a localização do conjunto de dados de origem
- SOURCE_DATASET_ID: o ID do conjunto de dados que contém os dados a desidentificar
- DESTINATION_DATASET_ID: o ID do conjunto de dados de destino onde os dados anonimizados são escritos
Corpo JSON do pedido:
{ "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicomTagConfig": { "actions": [ { "queries": [ "PatientName" ], "removeTag": {} } ] } } }
Para enviar o seu pedido, escolha uma destas opções:
curl
Guarde o corpo do pedido num ficheiro denominado
request.json
. Execute o seguinte comando no terminal para criar ou substituir este ficheiro no diretório atual:cat > request.json << 'EOF' { "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicomTagConfig": { "actions": [ { "queries": [ "PatientName" ], "removeTag": {} } ] } } } EOF
Em seguida, execute o seguinte comando para enviar o seu pedido 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
Guarde o corpo do pedido num ficheiro denominado
request.json
. Execute o seguinte comando no terminal para criar ou substituir este ficheiro no diretório atual:@' { "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
Em seguida, execute o seguinte comando para enviar o seu pedido 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
. Precisa deste valor no passo seguinte.Use o método
projects.locations.datasets.operations.get
para obter o estado da operação de execução longa.Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: o ID do seu Google Cloud projeto
- SOURCE_DATASET_LOCATION: a localização do conjunto de dados de origem
- SOURCE_DATASET_ID: o ID do conjunto de dados que contém os dados a desidentificar
- OPERATION_ID: o ID devolvido pela operação de longa duração
Para enviar o seu pedido, escolha uma destas opções:
curl
Execute o seguinte 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
Execute o seguinte 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 APIs
Abra a página de referência do método. O painel APIs Explorer é aberto no lado direito da página. Pode interagir com esta ferramenta para enviar pedidos. Preencha todos os campos obrigatórios e clique em Executar.
"done": true
, a operação de longa duração terminou.Depois de a anulação da identificação ser bem-sucedida, pode obter os metadados da instância com anulação da identificação para ver como mudaram. A instância anonimizada tem um novo UID de estudos, UID de séries e UID de instâncias, pelo que tem de pesquisar primeiro a instância anonimizada no novo conjunto de dados.
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: o ID do seu Google Cloud projeto
- DESTINATION_DATASET_ID: o ID do conjunto de dados de destino onde os dados anonimizados são escritos
- SOURCE_DATASET_LOCATION: a localização do conjunto de dados de origem
- DESTINATION_DICOM_STORE_ID: o ID do armazenamento DICOM no conjunto de dados de destino. Este é o mesmo que o ID do arquivo DICOM no conjunto de dados de origem.
Para enviar o seu pedido, escolha uma destas opções:
curl
Execute o seguinte 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
Execute o seguinte 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 ContentDeve receber uma resposta JSON semelhante à seguinte:
A tabela seguinte mostra como o UID dos estudos, o UID das séries e o UID das instâncias foram alterados:Metadados da instância original Metadados de instâncias anonimizados UID dos estudos ( 0020000D
)2.25.70541616638819138568043293671559322355
1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763
UID da série ( 0020000E
)1.2.276.0.7230010.3.1.3.8323329.78.1531234558.523694
1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710
UID das instâncias ( 00080018
)1.2.276.0.7230010.3.1.4.8323329.78.1539083058.523695
1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029
Com os novos valores, obtenha os metadados da instância.
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: o ID do seu Google Cloud projeto
- DESTINATION_DATASET_ID: o ID do conjunto de dados de destino onde os dados anonimizados são escritos
- SOURCE_DATASET_LOCATION: a localização do conjunto de dados de origem
- DESTINATION_DICOM_STORE_ID: o ID do armazenamento DICOM no conjunto de dados de destino. Este é o mesmo que o ID do arquivo DICOM no conjunto de dados de origem.
Para enviar o seu pedido, escolha uma destas opções:
curl
Execute o seguinte 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
Execute o seguinte 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 APIs
Abra a página de referência do método. O painel APIs Explorer é aberto no lado direito da página. Pode interagir com esta ferramenta para enviar pedidos. Preencha todos os campos obrigatórios e clique em Executar.
Elimine etiquetas
Os exemplos seguintes mostram como usar o objeto DeleteTag
para eliminar etiquetas específicas durante a anulação da identificação.
REST
Desidentifique o conjunto de dados.
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: o ID do seu Google Cloud projeto
- SOURCE_DATASET_LOCATION: a localização do conjunto de dados de origem
- SOURCE_DATASET_ID: o ID do conjunto de dados que contém os dados a desidentificar
- DESTINATION_DATASET_ID: o ID do conjunto de dados de destino onde os dados anonimizados são escritos
Corpo JSON do pedido:
{ "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicomTagConfig": { "actions": [ { "queries": [ "PatientName" ], "deleteTag": {} } ] } } }
Para enviar o seu pedido, escolha uma destas opções:
curl
Guarde o corpo do pedido num ficheiro denominado
request.json
. Execute o seguinte comando no terminal para criar ou substituir este ficheiro no diretório atual:cat > request.json << 'EOF' { "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicomTagConfig": { "actions": [ { "queries": [ "PatientName" ], "deleteTag": {} } ] } } } EOF
Em seguida, execute o seguinte comando para enviar o seu pedido 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
Guarde o corpo do pedido num ficheiro denominado
request.json
. Execute o seguinte comando no terminal para criar ou substituir este ficheiro no diretório atual:@' { "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
Em seguida, execute o seguinte comando para enviar o seu pedido 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
. Precisa deste valor no passo seguinte.Use o método
projects.locations.datasets.operations.get
para obter o estado da operação de execução longa.Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: o ID do seu Google Cloud projeto
- SOURCE_DATASET_LOCATION: a localização do conjunto de dados de origem
- SOURCE_DATASET_ID: o ID do conjunto de dados que contém os dados a desidentificar
- OPERATION_ID: o ID devolvido pela operação de longa duração
Para enviar o seu pedido, escolha uma destas opções:
curl
Execute o seguinte 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
Execute o seguinte 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 APIs
Abra a página de referência do método. O painel APIs Explorer é aberto no lado direito da página. Pode interagir com esta ferramenta para enviar pedidos. Preencha todos os campos obrigatórios e clique em Executar.
"done": true
, a operação de longa duração terminou.Depois de a anulação da identificação ser bem-sucedida, pode obter os metadados da instância com anulação da identificação para ver como mudaram. A instância anonimizada tem um novo UID de estudos, UID de séries e UID de instâncias, pelo que tem de pesquisar primeiro a instância anonimizada no novo conjunto de dados.
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: o ID do seu Google Cloud projeto
- DESTINATION_DATASET_ID: o ID do conjunto de dados de destino onde os dados anonimizados são escritos
- SOURCE_DATASET_LOCATION: a localização do conjunto de dados de origem
- DESTINATION_DICOM_STORE_ID: o ID do armazenamento DICOM no conjunto de dados de destino. Este é o mesmo que o ID do arquivo DICOM no conjunto de dados de origem.
Para enviar o seu pedido, escolha uma destas opções:
curl
Execute o seguinte 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
Execute o seguinte 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 ContentDeve receber uma resposta JSON semelhante à seguinte:
A tabela seguinte mostra como o UID dos estudos, o UID das séries e o UID das instâncias foram alterados:Metadados da instância original Metadados de instâncias anonimizados UID dos estudos ( 0020000D
)2.25.70541616638819138568043293671559322355
1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763
UID da série ( 0020000E
)1.2.276.0.7230010.3.1.3.8323329.78.1531234558.523694
1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710
UID das instâncias ( 00080018
)1.2.276.0.7230010.3.1.4.8323329.78.1539083058.523695
1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029
Com os novos valores, obtenha os metadados da instância.
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: o ID do seu Google Cloud projeto
- DESTINATION_DATASET_ID: o ID do conjunto de dados de destino onde os dados anonimizados são escritos
- SOURCE_DATASET_LOCATION: a localização do conjunto de dados de origem
- DESTINATION_DICOM_STORE_ID: o ID do armazenamento DICOM no conjunto de dados de destino. Este é o mesmo que o ID do arquivo DICOM no conjunto de dados de origem.
Para enviar o seu pedido, escolha uma destas opções:
curl
Execute o seguinte 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
Execute o seguinte 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 APIs
Abra a página de referência do método. O painel APIs Explorer é aberto no lado direito da página. Pode interagir com esta ferramenta para enviar pedidos. Preencha todos os campos obrigatórios e clique em Executar.
Reponha as etiquetas para um valor de marcador de posição
Os exemplos seguintes mostram como usar o objeto ResetTag
para definir o valor das etiquetas para a string PLACEHOLDER
durante a desidentificação.
REST
Desidentifique o conjunto de dados.
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: o ID do seu Google Cloud projeto
- SOURCE_DATASET_LOCATION: a localização do conjunto de dados de origem
- SOURCE_DATASET_ID: o ID do conjunto de dados que contém os dados a desidentificar
- DESTINATION_DATASET_ID: o ID do conjunto de dados de destino onde os dados anonimizados são escritos
Corpo JSON do pedido:
{ "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicomTagConfig": { "actions": [ { "queries": [ "PatientName" ], "resetTag": {} } ] } } }
Para enviar o seu pedido, escolha uma destas opções:
curl
Guarde o corpo do pedido num ficheiro denominado
request.json
. Execute o seguinte comando no terminal para criar ou substituir este ficheiro no diretório atual:cat > request.json << 'EOF' { "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicomTagConfig": { "actions": [ { "queries": [ "PatientName" ], "resetTag": {} } ] } } } EOF
Em seguida, execute o seguinte comando para enviar o seu pedido 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
Guarde o corpo do pedido num ficheiro denominado
request.json
. Execute o seguinte comando no terminal para criar ou substituir este ficheiro no diretório atual:@' { "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
Em seguida, execute o seguinte comando para enviar o seu pedido 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
. Precisa deste valor no passo seguinte.Use o método
projects.locations.datasets.operations.get
para obter o estado da operação de execução longa.Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: o ID do seu Google Cloud projeto
- SOURCE_DATASET_LOCATION: a localização do conjunto de dados de origem
- SOURCE_DATASET_ID: o ID do conjunto de dados que contém os dados a desidentificar
- OPERATION_ID: o ID devolvido pela operação de longa duração
Para enviar o seu pedido, escolha uma destas opções:
curl
Execute o seguinte 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
Execute o seguinte 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 APIs
Abra a página de referência do método. O painel APIs Explorer é aberto no lado direito da página. Pode interagir com esta ferramenta para enviar pedidos. Preencha todos os campos obrigatórios e clique em Executar.
"done": true
, a operação de longa duração terminou.Depois de a anulação da identificação ser bem-sucedida, pode obter os metadados da instância com anulação da identificação para ver como mudaram. A instância anonimizada tem um novo UID de estudos, UID de séries e UID de instâncias, pelo que tem de pesquisar primeiro a instância anonimizada no novo conjunto de dados.
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: o ID do seu Google Cloud projeto
- DESTINATION_DATASET_ID: o ID do conjunto de dados de destino onde os dados anonimizados são escritos
- SOURCE_DATASET_LOCATION: a localização do conjunto de dados de origem
- DESTINATION_DICOM_STORE_ID: o ID do armazenamento DICOM no conjunto de dados de destino. Este é o mesmo que o ID do arquivo DICOM no conjunto de dados de origem.
Para enviar o seu pedido, escolha uma destas opções:
curl
Execute o seguinte 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
Execute o seguinte 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 ContentDeve receber uma resposta JSON semelhante à seguinte:
A tabela seguinte mostra como o UID dos estudos, o UID das séries e o UID das instâncias foram alterados:Metadados da instância original Metadados de instâncias anonimizados UID dos estudos ( 0020000D
)2.25.70541616638819138568043293671559322355
1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763
UID da série ( 0020000E
)1.2.276.0.7230010.3.1.3.8323329.78.1531234558.523694
1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710
UID das instâncias ( 00080018
)1.2.276.0.7230010.3.1.4.8323329.78.1539083058.523695
1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029
Com os novos valores, obtenha os metadados da instância.
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: o ID do seu Google Cloud projeto
- DESTINATION_DATASET_ID: o ID do conjunto de dados de destino onde os dados anonimizados são escritos
- SOURCE_DATASET_LOCATION: a localização do conjunto de dados de origem
- DESTINATION_DICOM_STORE_ID: o ID do armazenamento DICOM no conjunto de dados de destino. Este é o mesmo que o ID do arquivo DICOM no conjunto de dados de origem.
Para enviar o seu pedido, escolha uma destas opções:
curl
Execute o seguinte 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
Execute o seguinte 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 APIs
Abra a página de referência do método. O painel APIs Explorer é aberto no lado direito da página. Pode interagir com esta ferramenta para enviar pedidos. Preencha todos os campos obrigatórios e clique em Executar.
Em particular, repare que o valor da etiqueta
PatientName
está definido comoPLACEHOLDER
:Original metadata
Metadados após a execução de ResetTag
"00100010": { "vr": "PN", "Value": [ { "Alphabetic": "Ann Johnson" } ] }
"00100010": { "vr": "PN", "Value": [ { "Alphabetic": "PLACEHOLDER" } ] }
Inspecione e transforme texto sensível em etiquetas
Os exemplos seguintes mostram como usar o objeto CleanTextTag
para inspecionar etiquetas
e transformar os valores das etiquetas de acordo com a configuração no objeto
TextConfig
.
Nestes exemplos, as seguintes opções são definidas no objeto Actions
:
- Um objeto
CleanTextTag
. - Uma
queries[]
lista que contém a etiquetaPatientName
DICOM.
As seguintes opções são definidas no objeto TextConfig
:
- Um objeto
InfoTypeTransformation
que transforma texto que corresponde a um infoType específico. - Um objeto
ReplaceWithInfoTypeConfig
que substitui qualquer texto correspondente pelo nome do infoType. - Uma lista
infoTypes[]
que contém oPERSON_NAME
infoType.
Com estas configurações definidas, a operação de desidentificação inspeciona a etiqueta PatientName
, faz corresponder a etiqueta ao infoType PERSON_NAME
e substitui o valor da etiqueta pelo infoType PERSON_NAME
.
A etiqueta PatientName
tem uma representação de valor (VR) de PN
, que é uma das VRs suportadas no objeto CleanTextTag
.
REST
Desidentifique o conjunto de dados.
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: o ID do seu Google Cloud projeto
- SOURCE_DATASET_LOCATION: a localização do conjunto de dados de origem
- SOURCE_DATASET_ID: o ID do conjunto de dados que contém os dados a desidentificar
- DESTINATION_DATASET_ID: o ID do conjunto de dados de destino onde os dados anonimizados são escritos
Corpo JSON do pedido:
{ "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 o seu pedido, escolha uma destas opções:
curl
Guarde o corpo do pedido num ficheiro denominado
request.json
. Execute o seguinte comando no terminal para criar ou substituir este ficheiro no diretório atual: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
Em seguida, execute o seguinte comando para enviar o seu pedido 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
Guarde o corpo do pedido num ficheiro denominado
request.json
. Execute o seguinte comando no terminal para criar ou substituir este ficheiro no diretório atual:@' { "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
Em seguida, execute o seguinte comando para enviar o seu pedido 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
. Precisa deste valor no passo seguinte.Use o método
projects.locations.datasets.operations.get
para obter o estado da operação de execução longa.Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: o ID do seu Google Cloud projeto
- SOURCE_DATASET_LOCATION: a localização do conjunto de dados de origem
- SOURCE_DATASET_ID: o ID do conjunto de dados que contém os dados a desidentificar
- OPERATION_ID: o ID devolvido pela operação de longa duração
Para enviar o seu pedido, escolha uma destas opções:
curl
Execute o seguinte 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
Execute o seguinte 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 APIs
Abra a página de referência do método. O painel APIs Explorer é aberto no lado direito da página. Pode interagir com esta ferramenta para enviar pedidos. Preencha todos os campos obrigatórios e clique em Executar.
"done": true
, a operação de longa duração terminou.Depois de a anulação da identificação ser bem-sucedida, pode obter os metadados da instância com anulação da identificação para ver como mudaram. A instância anonimizada tem um novo UID de estudos, UID de séries e UID de instâncias, pelo que tem de pesquisar primeiro a instância anonimizada no novo conjunto de dados.
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: o ID do seu Google Cloud projeto
- DESTINATION_DATASET_ID: o ID do conjunto de dados de destino onde os dados anonimizados são escritos
- SOURCE_DATASET_LOCATION: a localização do conjunto de dados de origem
- DESTINATION_DICOM_STORE_ID: o ID do armazenamento DICOM no conjunto de dados de destino. Este é o mesmo que o ID do arquivo DICOM no conjunto de dados de origem.
Para enviar o seu pedido, escolha uma destas opções:
curl
Execute o seguinte 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
Execute o seguinte 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 ContentDeve receber uma resposta JSON semelhante à seguinte:
A tabela seguinte mostra como o UID dos estudos, o UID das séries e o UID das instâncias foram alterados:Metadados da instância original Metadados de instâncias anonimizados UID dos estudos ( 0020000D
)2.25.70541616638819138568043293671559322355
1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763
UID da série ( 0020000E
)1.2.276.0.7230010.3.1.3.8323329.78.1531234558.523694
1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710
UID das instâncias ( 00080018
)1.2.276.0.7230010.3.1.4.8323329.78.1539083058.523695
1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029
Com os novos valores, obtenha os metadados da instância.
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: o ID do seu Google Cloud projeto
- DESTINATION_DATASET_ID: o ID do conjunto de dados de destino onde os dados anonimizados são escritos
- SOURCE_DATASET_LOCATION: a localização do conjunto de dados de origem
- DESTINATION_DICOM_STORE_ID: o ID do armazenamento DICOM no conjunto de dados de destino. Este é o mesmo que o ID do arquivo DICOM no conjunto de dados de origem.
Para enviar o seu pedido, escolha uma destas opções:
curl
Execute o seguinte 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
Execute o seguinte 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 APIs
Abra a página de referência do método. O painel APIs Explorer é aberto no lado direito da página. Pode interagir com esta ferramenta para enviar pedidos. Preencha todos os campos obrigatórios e clique em Executar.
Em particular, repare que o valor da etiqueta
PatientName
está definido como[PERSON_NAME]
:Original metadata
Metadados após a execução de CleanTextTag
"00100010": { "vr": "PN", "Value": [ { "Alphabetic": "Ann Johnson" } ] }
"00100010": { "vr": "PN", "Value": [ { "Alphabetic": "[PERSON_NAME]" } ] }
Substitua um UID por um UID gerado
Os exemplos seguintes mostram como usar o objeto RegenUidTag
para substituir um UID por um UID gerado recentemente. A única RV que o objeto RegenUidTag
suporta é UI
.
Por predefinição, todas as etiquetas nos metadados de exemplo com um VR de UI
têm o respetivo UID gerado durante a desidentificação. Para mostrar como gerar um UID para uma etiqueta específica, as seguintes opções são definidas no exemplo:
ProfileType
está definido como a enumeraçãoKEEP_ALL
, o que impede a anonimização de quaisquer metadados DICOM.PrimaryIdsOption
está definido como a enumeraçãoKEEP
, que deixa os IDs principais (StudyInstanceUID
,SeriesInstanceUID
,SOPInstanceUID
eMediaStorageSOPInstanceUID
) inalterados.
Quando estas opções estão definidas, nenhum dos UIDs de ID principal nos dados de amostra é substituído por valores gerados recentemente. No entanto, ao adicionar SOPInstanceUID
à matriz Action.queries[]
, pode gerar um novo UID especificamente para a etiqueta SOPInstanceUID
.
REST
Desidentifique o conjunto de dados.
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: o ID do seu Google Cloud projeto
- SOURCE_DATASET_LOCATION: a localização do conjunto de dados de origem
- SOURCE_DATASET_ID: o ID do conjunto de dados que contém os dados a desidentificar
- DESTINATION_DATASET_ID: o ID do conjunto de dados de destino onde os dados anonimizados são escritos
Corpo JSON do pedido:
{ "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 o seu pedido, escolha uma destas opções:
curl
Guarde o corpo do pedido num ficheiro denominado
request.json
. Execute o seguinte comando no terminal para criar ou substituir este ficheiro no diretório atual: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
Em seguida, execute o seguinte comando para enviar o seu pedido 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
Guarde o corpo do pedido num ficheiro denominado
request.json
. Execute o seguinte comando no terminal para criar ou substituir este ficheiro no diretório atual:@' { "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
Em seguida, execute o seguinte comando para enviar o seu pedido 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
. Precisa deste valor no passo seguinte.Use o método
projects.locations.datasets.operations.get
para obter o estado da operação de execução longa.Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: o ID do seu Google Cloud projeto
- SOURCE_DATASET_LOCATION: a localização do conjunto de dados de origem
- SOURCE_DATASET_ID: o ID do conjunto de dados que contém os dados a desidentificar
- OPERATION_ID: o ID devolvido pela operação de longa duração
Para enviar o seu pedido, escolha uma destas opções:
curl
Execute o seguinte 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
Execute o seguinte 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 APIs
Abra a página de referência do método. O painel APIs Explorer é aberto no lado direito da página. Pode interagir com esta ferramenta para enviar pedidos. Preencha todos os campos obrigatórios e clique em Executar.
"done": true
, a operação de longa duração terminou.Depois de a anulação da identificação ser bem-sucedida, pode obter os metadados da instância com anulação da identificação para ver como mudaram. A instância anonimizada tem um novo UID de instâncias porque especificou a etiqueta
SOPInstanceUID
na matrizAction.queries[]
. Por isso, primeiro, tem de pesquisar a instância anonimizada no novo conjunto de dados.Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: o ID do seu Google Cloud projeto
- DESTINATION_DATASET_ID: o ID do conjunto de dados de destino onde os dados anonimizados são escritos
- SOURCE_DATASET_LOCATION: a localização do conjunto de dados de origem
- DESTINATION_DICOM_STORE_ID: o ID do armazenamento DICOM no conjunto de dados de destino. Este é o mesmo que o ID do arquivo DICOM no conjunto de dados de origem.
Para enviar o seu pedido, escolha uma destas opções:
curl
Execute o seguinte 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
Execute o seguinte 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 ContentDeve receber uma resposta JSON semelhante à seguinte:
A tabela seguinte mostra como o UID das instâncias foi alterado:
Metadados da instância original Metadados de instâncias anonimizados UID das instâncias ( 00080018
)1.2.276.0.7230010.3.1.4.8323329.78.1539083058.523695
1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029
Com o novo valor, obtenha os metadados da instância.
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: o ID do seu Google Cloud projeto
- DESTINATION_DATASET_ID: o ID do conjunto de dados de destino onde os dados anonimizados são escritos
- SOURCE_DATASET_LOCATION: a localização do conjunto de dados de origem
- DESTINATION_DICOM_STORE_ID: o ID do armazenamento DICOM no conjunto de dados de destino. Este é o mesmo que o ID do arquivo DICOM no conjunto de dados de origem.
Para enviar o seu pedido, escolha uma destas opções:
curl
Execute o seguinte 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
Execute o seguinte 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 APIs
Abra a página de referência do método. O painel APIs Explorer é aberto no lado direito da página. Pode interagir com esta ferramenta para enviar pedidos. Preencha todos os campos obrigatórios e clique em Executar.
Tenha em atenção que, dos IDs principais, apenas o
SOPInstanceUID
tem um UID gerado recentemente.
Remova a identificação das etiquetas de forma recorrente num Sequence
aninhado
Os exemplos seguintes mostram como usar o objeto RecurseTag
para remover a identificação de forma recursiva
de etiquetas DICOM aninhadas num Sequence
.
O objeto RecurseTag
só suporta o SQ
VR, que é o VR para
um Sequence
.
Para obter informações sobre o SQ
VR, consulte a secção 7.5 Aninhamento de conjuntos de dados.
A instância de exemplo DICOM
fornecida para esta página não contém etiquetas DICOM com um SQ
VR.
Pode criar e armazenar uma instância DICOM com dados falsos que contenham o SQ
VR
concluindo os seguintes passos, que se baseiam nas instruções em
Crie instâncias DICOM a partir de metadados JSON e ficheiros JPEG.
A instância DICOM que criar nos passos seguintes usa dados falsos
e destina-se apenas a ilustrar o comportamento doRecurseTag
.
Guarde os seguintes metadados DICOM num ficheiro JSON denominado
instance.json
. Os metadados contêm uma etiquetaPhysiciansReadingStudyIdentificationSequence
(00081062
). A etiqueta tem umSQ
VR e contém duas etiquetasPersonIdentificationCodeSequence
(00401101
) aninhadas. As etiquetas aninhadas também têm umSQ
VR e cada uma contém as seguintes etiquetas aninhadas: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" ] } } ] } } ] } }]
Transfira o ficheiro
google.jpg
para o seu computador local. A API DICOMweb da Cloud Healthcare API aceita qualquer imagem JPEG associada a metadados JSON, desde que os metadados sejam válidos.Execute os seguintes comandos para criar uma abertura (para os metadados JSON), uma imagem intermédia (para o JPEG) e limites de fecho na imagem:
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
Envolva a imagem
google.jpg
dentro dos limites intermédios e de fecho. O ficheiro de saída, que envia para a Cloud Healthcare API, chama-semultipart-request.file
:cat opening.file instance.json middle.file google.jpg closing.file > multipart-request.file
Armazene o ficheiro
multipart-request.file
:REST
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: o ID do seu Google Cloud projeto
- SOURCE_DATASET_ID: o ID do conjunto de dados que contém os dados a desidentificar
- SOURCE_DATASET_LOCATION: a localização do conjunto de dados de origem
- SOURCE_DICOM_STORE_ID: o ID do armazenamento DICOM no conjunto de dados de origem
Para enviar o seu pedido, escolha uma destas opções:
curl
Execute o seguinte 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
Execute o seguinte 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 ContentDeve receber uma resposta JSON semelhante à seguinte:
Conclua os passos seguintes para remover a identificação da instância DICOM que armazenou.
REST
Desidentifique o conjunto de dados.
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: o ID do seu Google Cloud projeto
- SOURCE_DATASET_LOCATION: a localização do conjunto de dados de origem
- SOURCE_DATASET_ID: o ID do conjunto de dados que contém os dados a desidentificar
- DESTINATION_DATASET_ID: o ID do conjunto de dados de destino onde os dados anonimizados são escritos
Corpo JSON do pedido:
{ "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicomTagConfig": { "actions": [ { "queries": [ "PhysiciansReadingStudyIdentificationSequence" ], "recurseTag": {} } ] } } }
Para enviar o seu pedido, escolha uma destas opções:
curl
Guarde o corpo do pedido num ficheiro denominado
request.json
. Execute o seguinte comando no terminal para criar ou substituir este ficheiro no diretório atual:cat > request.json << 'EOF' { "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicomTagConfig": { "actions": [ { "queries": [ "PhysiciansReadingStudyIdentificationSequence" ], "recurseTag": {} } ] } } } EOF
Em seguida, execute o seguinte comando para enviar o seu pedido 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
Guarde o corpo do pedido num ficheiro denominado
request.json
. Execute o seguinte comando no terminal para criar ou substituir este ficheiro no diretório atual:@' { "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
Em seguida, execute o seguinte comando para enviar o seu pedido 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
. Precisa deste valor no passo seguinte.Use o método
projects.locations.datasets.operations.get
para obter o estado da operação de execução longa.Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: o ID do seu Google Cloud projeto
- SOURCE_DATASET_LOCATION: a localização do conjunto de dados de origem
- SOURCE_DATASET_ID: o ID do conjunto de dados que contém os dados a desidentificar
- OPERATION_ID: o ID devolvido pela operação de longa duração
Para enviar o seu pedido, escolha uma destas opções:
curl
Execute o seguinte 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
Execute o seguinte 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 APIs
Abra a página de referência do método. O painel APIs Explorer é aberto no lado direito da página. Pode interagir com esta ferramenta para enviar pedidos. Preencha todos os campos obrigatórios e clique em Executar.
"done": true
, a operação de longa duração terminou.Depois de a anulação da identificação ser bem-sucedida, pode obter os metadados da instância com anulação da identificação para ver como mudaram. A instância anonimizada tem um novo UID de estudos, UID de séries e UID de instâncias, pelo que tem de pesquisar primeiro a instância anonimizada no novo conjunto de dados.
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: o ID do seu Google Cloud projeto
- DESTINATION_DATASET_ID: o ID do conjunto de dados de destino onde os dados anonimizados são escritos
- SOURCE_DATASET_LOCATION: a localização do conjunto de dados de origem
- DESTINATION_DICOM_STORE_ID: o ID do armazenamento DICOM no conjunto de dados de destino. Este é o mesmo que o ID do arquivo DICOM no conjunto de dados de origem.
Para enviar o seu pedido, escolha uma destas opções:
curl
Execute o seguinte 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
Execute o seguinte 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 ContentDeve receber uma resposta JSON semelhante à seguinte:
A tabela seguinte mostra como o UID dos estudos, o UID das séries e o UID das instâncias foram alterados:
Metadados da instância original Metadados de instâncias anonimizados UID dos estudos ( 0020000D
)3333333
1.3.6.1.4.1.11129.5.1.222168347996079463826250565085126257314
UID da série ( 0020000E
)4444444
1.3.6.1.4.1.11129.5.1.25205702030237830896398173746777399347
UID das instâncias ( 00080018
)2222222
1.3.6.1.4.1.11129.5.1.286710307126045768765142714621897494633
Com os novos valores, obtenha os metadados da instância.
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: o ID do seu Google Cloud projeto
- DESTINATION_DATASET_ID: o ID do conjunto de dados de destino onde os dados anonimizados são escritos
- SOURCE_DATASET_LOCATION: a localização do conjunto de dados de origem
- DESTINATION_DICOM_STORE_ID: o ID do armazenamento DICOM no conjunto de dados de destino. Este é o mesmo que o ID do arquivo DICOM no conjunto de dados de origem.
Para enviar o seu pedido, escolha uma destas opções:
curl
Execute o seguinte 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
Execute o seguinte 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 APIs
Abra a página de referência do método. O painel APIs Explorer é aberto no lado direito da página. Pode interagir com esta ferramenta para enviar pedidos. Preencha todos os campos obrigatórios e clique em Executar.
Em particular, repare que os valores das etiquetas
CodeValue
eCodingSchemaDesignator
aninhadas estão definidos comoPLACEHOLDER
:Original metadata
Metadados após a execução de 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" ] } } ] } } ] } }
Remova a identificação dos dados ao nível do arquivo DICOM
Os exemplos anteriores mostram como anular a identificação dos dados DICOM ao nível do conjunto de dados. Esta secção descreve como desidentificar dados ao nível do arquivo DICOM.
Para alterar um pedido de desidentificação de um conjunto de dados para um pedido de desidentificação de uma loja DICOM, faça as seguintes alterações:
- Substitua o
destinationDataset
no corpo do pedido pordestinationStore
- Adicione
dicomStores/DESTINATION_DICOM_STORE_ID
no final do valor emdestinationStore
quando especificar o destino - Adicione
dicomStores/SOURCE_DICOM_STORE_ID
quando especificar a localização dos dados de origem
Os exemplos seguintes mostram um pedido de desidentificação ao nível do conjunto de dados e como modificar o pedido para uma desidentificação ao nível do armazenamento DICOM:
Anonimização ao nível do conjunto de dados:
"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"
Anonimização ao nível do armazenamento 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"
Os exemplos seguintes mostram como remover a identificação de uma instância DICOM num arquivo DICOM e escrever os dados sem identificação num novo arquivo DICOM. Antes de executar os exemplos, o ID do arquivo DICOM de destino tem de existir.
REST
Desidentifique o conjunto de dados.
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: o ID do seu Google Cloud projeto
- SOURCE_DATASET_LOCATION: a localização do conjunto de dados de origem
- SOURCE_DATASET_ID: o ID do conjunto de dados que contém os dados a desidentificar
- DESTINATION_DATASET_ID: o ID do conjunto de dados de destino onde os dados anonimizados são escritos. Tem de existir antes de executar a operação de desidentificação.
- DESTINATION_DICOM_STORE_ID: o armazenamento DICOM no conjunto de dados de destino. Tem de existir antes de executar a operação de desidentificação.
Corpo JSON do pedido:
{ "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 o seu pedido, escolha uma destas opções:
curl
Guarde o corpo do pedido num ficheiro denominado
request.json
. Execute o seguinte comando no terminal para criar ou substituir este ficheiro no diretório atual: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
Em seguida, execute o seguinte comando para enviar o seu pedido 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
Guarde o corpo do pedido num ficheiro denominado
request.json
. Execute o seguinte comando no terminal para criar ou substituir este ficheiro no diretório atual:@' { "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
Em seguida, execute o seguinte comando para enviar o seu pedido 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
. Precisa deste valor no passo seguinte.Use o método
projects.locations.datasets.operations.get
para obter o estado da operação de execução longa.Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: o ID do seu Google Cloud projeto
- SOURCE_DATASET_LOCATION: a localização do conjunto de dados de origem
- SOURCE_DATASET_ID: o ID do conjunto de dados que contém os dados a desidentificar
- OPERATION_ID: o ID devolvido pela operação de longa duração
Para enviar o seu pedido, escolha uma destas opções:
curl
Execute o seguinte 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
Execute o seguinte 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 APIs
Abra a página de referência do método. O painel APIs Explorer é aberto no lado direito da página. Pode interagir com esta ferramenta para enviar pedidos. Preencha todos os campos obrigatórios e clique em Executar.
"done": true
, a operação de longa duração terminou.Depois de a anulação da identificação ser bem-sucedida, pode obter os metadados da instância com anulação da identificação para ver como mudaram. A instância anonimizada tem um novo UID de estudos, UID de séries e UID de instâncias, pelo que tem de pesquisar primeiro a instância anonimizada no novo conjunto de dados.
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: o ID do seu Google Cloud projeto
- DESTINATION_DATASET_ID: o ID do conjunto de dados de destino onde os dados anonimizados são escritos
- SOURCE_DATASET_LOCATION: a localização do conjunto de dados de origem
- DESTINATION_DICOM_STORE_ID: o ID do armazenamento DICOM no conjunto de dados de destino. Este é o mesmo que o ID do arquivo DICOM no conjunto de dados de origem.
Para enviar o seu pedido, escolha uma destas opções:
curl
Execute o seguinte 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
Execute o seguinte 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 ContentDeve receber uma resposta JSON semelhante à seguinte:
A tabela seguinte mostra como o UID dos estudos, o UID das séries e o UID das instâncias foram alterados:Metadados da instância original Metadados de instâncias anonimizados UID dos estudos ( 0020000D
)2.25.70541616638819138568043293671559322355
1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763
UID da série ( 0020000E
)1.2.276.0.7230010.3.1.3.8323329.78.1531234558.523694
1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710
UID das instâncias ( 00080018
)1.2.276.0.7230010.3.1.4.8323329.78.1539083058.523695
1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029
Com os novos valores, obtenha os metadados da instância.
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: o ID do seu Google Cloud projeto
- DESTINATION_DATASET_ID: o ID do conjunto de dados de destino onde os dados anonimizados são escritos
- SOURCE_DATASET_LOCATION: a localização do conjunto de dados de origem
- DESTINATION_DICOM_STORE_ID: o ID do armazenamento DICOM no conjunto de dados de destino. Este é o mesmo que o ID do arquivo DICOM no conjunto de dados de origem.
Para enviar o seu pedido, escolha uma destas opções:
curl
Execute o seguinte 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
Execute o seguinte 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 APIs
Abra a página de referência do método. O painel APIs Explorer é aberto no lado direito da página. Pode interagir com esta ferramenta para enviar pedidos. Preencha todos os campos obrigatórios e clique em Executar.
Remova a identificação de um subconjunto de um arquivo DICOM
Pode remover a identificação de um subconjunto dos dados num armazenamento DICOM especificando um filtro.
O filtro assume a forma de um ficheiro de filtro que especifica como um valor para o campo resourcePathsGcsUri
no objeto DicomFilterConfig
. O ficheiro de filtro tem de existir num contentor do Cloud Storage. Não pode especificar um ficheiro de filtro que exista na sua máquina local ou noutra origem. A localização do ficheiro tem de estar no formato gs://BUCKET/PATH/TO/FILE
.
Crie um ficheiro de filtro
Um ficheiro de filtro define os ficheiros DICOM a desidentificar. Pode filtrar ficheiros nos seguintes níveis:
- Ao nível do estudo
- Ao nível da série
- Ao nível da instância
O ficheiro de filtros é composto por uma linha por estudo, série ou instância que quer
desidentificar. Cada linha usa o formato /studies/STUDY_UID[/series/SERIES_UID[/instances/INSTANCE_UID]]
.
No final de cada linha, encontra-se um caráter de nova linha: \n
ou \r\n
.
Se um estudo, uma série ou uma instância não for especificado no ficheiro de filtro que transmitiu quando chamou a operação de desidentificação, esse estudo, essa série ou essa instância não vai ser desidentificado e não vai estar presente no arquivo DICOM de destino.
Apenas a parte /studies/STUDY_UID
do caminho é
obrigatória. Isto significa que pode remover a identificação de um estudo especificando /studies/STUDY_UID
ou pode remover a identificação de uma série especificando /studies/STUDY_UID/series/SERIES_UID
.
Considere o seguinte ficheiro de filtros. O ficheiro de filtro faz com que um estudo, duas séries e três instâncias individuais sejam anonimizados:
/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
Crie um ficheiro de filtro com o BigQuery
Normalmente, cria um ficheiro de filtro exportando primeiro os metadados de um armazenamento DICOM para o BigQuery. Isto permite-lhe usar o BigQuery para ver os UIDs de estudo, série e instância dos dados DICOM no seu arquivo DICOM. Em seguida, pode fazer o seguinte:
Consulte os UIDs do estudo, da série e da instância nos quais tem interesse. Por exemplo, depois de exportar os metadados para o BigQuery, pode executar a seguinte consulta para concatenar os UIDs do estudo, da série e da instância num formato compatível com os requisitos do ficheiro de filtro:
SELECT CONCAT ('/studies/', StudyInstanceUID, '/series/', SeriesInstanceUID, '/instances/', SOPInstanceUID) FROM [PROJECT_ID:BIGQUERY_DATASET.BIGQUERY_TABLE]
Se a consulta devolver um conjunto de resultados grande, pode materializar uma nova tabela guardando os resultados da consulta numa tabela de destino no BigQuery.
Depois de guardar os resultados da consulta na tabela de destino, pode guardar o conteúdo da tabela de destino num ficheiro e exportá-lo para o Cloud Storage. Para ver os passos sobre como o fazer, consulte o artigo Exportar dados de tabelas. O ficheiro exportado é o ficheiro de filtro. Vai usar a localização do ficheiro de filtro no armazenamento na nuvem quando especificar o filtro na operação de exportação.
Crie um ficheiro de filtro manualmente
Pode criar um ficheiro de filtro com conteúdo personalizado e
carregá-lo para um contentor do Cloud Storage.
Vai usar a localização do ficheiro de filtro no Cloud Storage quando especificar o filtro na operação de desidentificação. O exemplo seguinte mostra como carregar um ficheiro de filtro para um contentor do Cloud Storage através do comando gcloud storage cp
:
gcloud storage cp PATH/TO/FILTER_FILE gs://BUCKET/DIRECTORY
Por exemplo:
gcloud storage cp /home/user/Desktop/filters.txt gs://my-bucket/my-directory
Use um filtro
Depois de configurar o ficheiro de filtro, pode transmiti-lo como um valor para o campo resourcePathsGcsUri
no objeto filterConfig
.
O exemplo seguinte expande a secção Desidentificar dados ao nível da loja DICOM, mas é fornecido um ficheiro de filtro no Cloud Storage para determinar que recursos DICOM são desidentificados.
REST
Desidentifique o conjunto de dados.
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: o ID do seu Google Cloud projeto
- LOCATION: a localização do conjunto de dados
- SOURCE_DATASET_ID: o ID do conjunto de dados que contém os dados a desidentificar
- DESTINATION_DATASET_ID: o ID do conjunto de dados de destino onde os dados anonimizados são escritos
- SOURCE_DICOM_STORE_ID: o ID do armazenamento DICOM que contém os dados a desidentificar
- DESTINATION_DICOM_STORE_ID: o ID do armazenamento DICOM no conjunto de dados de destino
- BUCKET/PATH/TO/FILE: a localização do ficheiro de filtro num contentor do Cloud Storage
Corpo JSON do pedido:
{ "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 o seu pedido, escolha uma destas opções:
curl
Guarde o corpo do pedido num ficheiro denominado
request.json
. Execute o seguinte comando no terminal para criar ou substituir este ficheiro no diretório atual: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
Em seguida, execute o seguinte comando para enviar o seu pedido 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
Guarde o corpo do pedido num ficheiro denominado
request.json
. Execute o seguinte comando no terminal para criar ou substituir este ficheiro no diretório atual:@' { "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
Em seguida, execute o seguinte comando para enviar o seu pedido 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 ContentUse o método
projects.locations.datasets.operations.get
para obter o estado da operação de execução longa.Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: o ID do seu Google Cloud projeto
- SOURCE_DATASET_LOCATION: a localização do conjunto de dados de origem
- SOURCE_DATASET_ID: o ID do conjunto de dados que contém os dados a desidentificar
- OPERATION_ID: o ID devolvido pela operação de longa duração
Para enviar o seu pedido, escolha uma destas opções:
curl
Execute o seguinte 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
Execute o seguinte 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 APIs
Abra a página de referência do método. O painel APIs Explorer é aberto no lado direito da página. Pode interagir com esta ferramenta para enviar pedidos. Preencha todos os campos obrigatórios e clique em Executar.
"done": true
, a operação de longa duração terminou.Depois de a anulação da identificação ser bem-sucedida, pode obter os metadados da instância com anulação da identificação para ver como mudaram. A instância anonimizada tem um novo UID de estudos, UID de séries e UID de instâncias, pelo que tem de pesquisar primeiro a instância anonimizada no novo conjunto de dados.
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: o ID do seu Google Cloud projeto
- DESTINATION_DATASET_ID: o ID do conjunto de dados de destino onde os dados anonimizados são escritos
- SOURCE_DATASET_LOCATION: a localização do conjunto de dados de origem
- DESTINATION_DICOM_STORE_ID: o ID do armazenamento DICOM no conjunto de dados de destino. Este é o mesmo que o ID do arquivo DICOM no conjunto de dados de origem.
Para enviar o seu pedido, escolha uma destas opções:
curl
Execute o seguinte 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
Execute o seguinte 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 ContentDeve receber uma resposta JSON semelhante à seguinte:
A tabela seguinte mostra como o UID dos estudos, o UID das séries e o UID das instâncias foram alterados:Metadados da instância original Metadados de instâncias anonimizados UID dos estudos ( 0020000D
)2.25.70541616638819138568043293671559322355
1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763
UID da série ( 0020000E
)1.2.276.0.7230010.3.1.3.8323329.78.1531234558.523694
1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710
UID das instâncias ( 00080018
)1.2.276.0.7230010.3.1.4.8323329.78.1539083058.523695
1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029
Com os novos valores, obtenha os metadados da instância.
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: o ID do seu Google Cloud projeto
- DESTINATION_DATASET_ID: o ID do conjunto de dados de destino onde os dados anonimizados são escritos
- SOURCE_DATASET_LOCATION: a localização do conjunto de dados de origem
- DESTINATION_DICOM_STORE_ID: o ID do armazenamento DICOM no conjunto de dados de destino. Este é o mesmo que o ID do arquivo DICOM no conjunto de dados de origem.
Para enviar o seu pedido, escolha uma destas opções:
curl
Execute o seguinte 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
Execute o seguinte 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 APIs
Abra a página de referência do método. O painel APIs Explorer é aberto no lado direito da página. Pode interagir com esta ferramenta para enviar pedidos. Preencha todos os campos obrigatórios e clique em Executar.
Resolva problemas de operações de desidentificação de DICOM
Se ocorrerem erros durante uma operação de desidentificação DICOM, os erros são registados no Cloud Logging. Para mais informações, consulte o artigo Ver registos de erros nos Registos na nuvem.
Se toda a operação devolver um erro, consulte o artigo Resolução de problemas de operações de longa duração.