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:
DZXU
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
CleanTextTagfiltro 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_DESCRIPTORSenum, é 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.ImageConfigcomDicomTagConfig.Options.ImageConfig.TextRedactionMode. Quando especifica esta opção, a etiquetaPixelData (7FE0,0010)é adicionada automaticamente à lista de etiquetas a serem ocultadas.Num objeto
Action.CleanImageTagcomDicomTagConfig.Action.CleanImageTag.TextRedactionMode. Quando especifica esta opção, tem de adicionar manualmente a etiquetaPixelDataao 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:
DZXU
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:
O resultado é o seguinte. A resposta contém um identificador para uma operação de longa duração (LRO). As operações de longa duração são devolvidas quando as chamadas de métodos podem demorar mais tempo a serem concluídas. Repare no valor decurl
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" } } } } } EOFEm 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 utf8Em 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.getpara 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:
O resultado é o seguinte. Quando a resposta contémcurl
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.705416166388191385680432936715593223551.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763UID da série ( 0020000E)1.2.276.0.7230010.3.1.3.8323329.78.1531234558.5236941.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710UID das instâncias ( 00080018)1.2.276.0.7230010.3.1.4.8323329.78.1539083058.5236951.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029Com 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:
A saída contém os novos metadados. Pode comparar os novos metadados com os metadados originais para ver o efeito da transformação.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:
O resultado é o seguinte. A resposta contém um identificador para uma operação de longa duração (LRO). As operações de longa duração são devolvidas quando as chamadas de métodos podem demorar mais tempo a serem concluídas. Repare no valor decurl
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" } } } } } EOFEm 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 utf8Em 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.getpara 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:
O resultado é o seguinte. Quando a resposta contémcurl
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.705416166388191385680432936715593223551.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763UID da série ( 0020000E)1.2.276.0.7230010.3.1.3.8323329.78.1531234558.5236941.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710UID das instâncias ( 00080018)1.2.276.0.7230010.3.1.4.8323329.78.1539083058.5236951.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029Com 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:
A saída contém os novos metadados. Pode comparar os novos metadados com os metadados originais para ver o efeito da transformação.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:
StudyInstanceUIDSeriesInstanceUIDSOPInstanceUIDTransferSyntaxUIDMediaStorageSOPInstanceUIDMediaStorageSOPClassUIDPixelDataRowsColumnsSamplesPerPixelBitsAllocatedBitsStoredHighbitPhotometricInterpretationPixelRepresentationNumberOfFramesPlanarConfigurationPixelAspectRatioSmallestImagePixelValueLargestImagePixelValueRedPaletteColorLookupTableDescriptorGreenPaletteColorLookupTableDescriptorBluePaletteColorLookupTableDescriptorRedPaletteColorLookupTableDataGreenPaletteColorLookupTableDataBluePaletteColorLookupTableDataICCProfileColorSpaceWindowCenterWindowWidthVOILUTFunction
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:
O resultado é o seguinte. A resposta contém um identificador para uma operação de longa duração (LRO). As operações de longa duração são devolvidas quando as chamadas de métodos podem demorar mais tempo a serem concluídas. Repare no valor decurl
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": {} } ] } } } EOFEm 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 utf8Em 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.getpara 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:
O resultado é o seguinte. Quando a resposta contémcurl
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.705416166388191385680432936715593223551.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763UID da série ( 0020000E)1.2.276.0.7230010.3.1.3.8323329.78.1531234558.5236941.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710UID das instâncias ( 00080018)1.2.276.0.7230010.3.1.4.8323329.78.1539083058.5236951.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029Com 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:
A saída contém os novos metadados. Pode comparar os novos metadados com os metadados originais para ver o efeito da transformação.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:
O resultado é o seguinte. A resposta contém um identificador para uma operação de longa duração (LRO). As operações de longa duração são devolvidas quando as chamadas de métodos podem demorar mais tempo a serem concluídas. Repare no valor decurl
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": {} } ] } } } EOFEm 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 utf8Em 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.getpara 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:
O resultado é o seguinte. Quando a resposta contémcurl
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.705416166388191385680432936715593223551.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763UID da série ( 0020000E)1.2.276.0.7230010.3.1.3.8323329.78.1531234558.5236941.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710UID das instâncias ( 00080018)1.2.276.0.7230010.3.1.4.8323329.78.1539083058.5236951.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029Com 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:
A saída contém os novos metadados. Pode comparar os novos metadados com os metadados originais para ver o efeito da transformação.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:
O resultado é o seguinte. A resposta contém um identificador para uma operação de longa duração (LRO). As operações de longa duração são devolvidas quando as chamadas de métodos podem demorar mais tempo a serem concluídas. Repare no valor decurl
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": {} } ] } } } EOFEm 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 utf8Em 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.getpara 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:
O resultado é o seguinte. Quando a resposta contémcurl
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.705416166388191385680432936715593223551.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763UID da série ( 0020000E)1.2.276.0.7230010.3.1.3.8323329.78.1531234558.5236941.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710UID das instâncias ( 00080018)1.2.276.0.7230010.3.1.4.8323329.78.1539083058.5236951.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029Com 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:
A saída contém os novos metadados. Pode comparar os novos metadados com os metadados originais para ver o efeito da transformação.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:
O resultado é o seguinte. A resposta contém um identificador para uma operação de longa duração (LRO). As operações de longa duração são devolvidas quando as chamadas de métodos podem demorar mais tempo a serem concluídas. Repare no valor decurl
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": {} } ] } } } EOFEm 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 utf8Em 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.getpara 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:
O resultado é o seguinte. Quando a resposta contémcurl
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.705416166388191385680432936715593223551.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763UID da série ( 0020000E)1.2.276.0.7230010.3.1.3.8323329.78.1531234558.5236941.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710UID das instâncias ( 00080018)1.2.276.0.7230010.3.1.4.8323329.78.1539083058.5236951.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029Com 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:
A saída contém os novos metadados. Pode comparar os novos metadados com os metadados originais para ver o efeito da transformação.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
PatientNameestá definido comoPLACEHOLDER:Original metadataMetadados 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 etiquetaPatientNameDICOM.
As seguintes opções são definidas no objeto TextConfig:
- Um objeto
InfoTypeTransformationque transforma texto que corresponde a um infoType específico. - Um objeto
ReplaceWithInfoTypeConfigque substitui qualquer texto correspondente pelo nome do infoType. - Uma lista
infoTypes[]que contém oPERSON_NAMEinfoType.
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:
O resultado é o seguinte. A resposta contém um identificador para uma operação de longa duração (LRO). As operações de longa duração são devolvidas quando as chamadas de métodos podem demorar mais tempo a serem concluídas. Repare no valor decurl
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": {} } ] } } } EOFEm 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 utf8Em 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.getpara 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:
O resultado é o seguinte. Quando a resposta contémcurl
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.705416166388191385680432936715593223551.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763UID da série ( 0020000E)1.2.276.0.7230010.3.1.3.8323329.78.1531234558.5236941.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710UID das instâncias ( 00080018)1.2.276.0.7230010.3.1.4.8323329.78.1539083058.5236951.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029Com 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:
A saída contém os novos metadados. Pode comparar os novos metadados com os metadados originais para ver o efeito da transformação.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
PatientNameestá definido como[PERSON_NAME]:Original metadataMetadados 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:
ProfileTypeestá definido como a enumeraçãoKEEP_ALL, o que impede a anonimização de quaisquer metadados DICOM.PrimaryIdsOptionestá definido como a enumeraçãoKEEP, que deixa os IDs principais (StudyInstanceUID,SeriesInstanceUID,SOPInstanceUIDeMediaStorageSOPInstanceUID) 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:
O resultado é o seguinte. A resposta contém um identificador para uma operação de longa duração (LRO). As operações de longa duração são devolvidas quando as chamadas de métodos podem demorar mais tempo a serem concluídas. Repare no valor decurl
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" } } } EOFEm 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 utf8Em 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.getpara 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:
O resultado é o seguinte. Quando a resposta contémcurl
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
SOPInstanceUIDna 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.5236951.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029Com 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:
A saída contém os novos metadados. Pode comparar os novos metadados com os metadados originais para ver o efeito da transformação.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
SOPInstanceUIDtem 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 SQVR
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 umSQVR e contém duas etiquetasPersonIdentificationCodeSequence(00401101) aninhadas. As etiquetas aninhadas também têm umSQVR 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.jpgpara 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.fileEnvolva a imagem
google.jpgdentro 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.fileArmazene 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:
O resultado é o seguinte. A resposta contém um identificador para uma operação de longa duração (LRO). As operações de longa duração são devolvidas quando as chamadas de métodos podem demorar mais tempo a serem concluídas. Repare no valor decurl
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": {} } ] } } } EOFEm 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 utf8Em 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.getpara 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:
O resultado é o seguinte. Quando a resposta contémcurl
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)33333331.3.6.1.4.1.11129.5.1.222168347996079463826250565085126257314UID da série ( 0020000E)44444441.3.6.1.4.1.11129.5.1.25205702030237830896398173746777399347UID das instâncias ( 00080018)22222221.3.6.1.4.1.11129.5.1.286710307126045768765142714621897494633Com 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:
A saída contém os novos metadados. Pode comparar os novos metadados com os metadados originais no passo 1 para ver o efeito da transformação.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
CodeValueeCodingSchemaDesignatoraninhadas estão definidos comoPLACEHOLDER:Original metadataMetadados 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
destinationDatasetno corpo do pedido pordestinationStore - Adicione
dicomStores/DESTINATION_DICOM_STORE_IDno final do valor emdestinationStorequando especificar o destino - Adicione
dicomStores/SOURCE_DICOM_STORE_IDquando 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:
O resultado é o seguinte. A resposta contém um identificador para uma operação de longa duração (LRO). As operações de longa duração são devolvidas quando as chamadas de métodos podem demorar mais tempo a serem concluídas. Repare no valor decurl
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": {} } ] } } } EOFEm 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 utf8Em 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.getpara 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:
O resultado é o seguinte. Quando a resposta contémcurl
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.705416166388191385680432936715593223551.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763UID da série ( 0020000E)1.2.276.0.7230010.3.1.3.8323329.78.1531234558.5236941.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710UID das instâncias ( 00080018)1.2.276.0.7230010.3.1.4.8323329.78.1539083058.5236951.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029Com 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:
A saída contém os novos metadados. Pode comparar os novos metadados com os metadados originais para ver o efeito da transformação.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:
O resultado é o seguinte. A resposta contém um identificador para uma operação de longa duração. As operações de longa duração são devolvidas quando as chamadas de métodos podem demorar um período considerável a serem concluídas. Repare no valor de OPERATION_ID. Precisa deste valor no passo seguinte.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" } } EOFEm 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 utf8Em 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.getpara 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:
O resultado é o seguinte. Quando a resposta contémcurl
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.705416166388191385680432936715593223551.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763UID da série ( 0020000E)1.2.276.0.7230010.3.1.3.8323329.78.1531234558.5236941.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710UID das instâncias ( 00080018)1.2.276.0.7230010.3.1.4.8323329.78.1539083058.5236951.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029Com 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:
A saída contém os novos metadados. Pode comparar os novos metadados com os metadados originais para ver o efeito da transformação.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.