Remova a identificação dos dados DICOM com DicomTagConfig

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:

Esta página também explica como aplicar filtros ao remover a identificação dos dados ao nível do armazenamento DICOM.

Pode configurar operações de desidentificação DICOM através do objeto DicomConfig v1 antigo ou do objeto DicomTagConfig v1beta1. Recomendamos vivamente que use DicomTagConfig.

Se já usa o DicomConfig para as suas operações de desidentificação, recomendamos que migre para a utilização do DicomTagConfig. Para ver um resumo das novas funcionalidades, consulte o artigo Novas opções de configuração no DicomTagConfig. Para ver instruções sobre como migrar, consulte o artigo Migre pedidos e respostas para usar DicomTagConfig.

Novas opções de configuração no DicomTagConfig

Desidentifique texto com a desidentificação contextual

Pode configurar o objeto DicomTagConfig.Options.CleanDescriptorsOption para ativar a desidentificação contextual do texto de metadados não estruturados. Esta opção baseia-se na opção de descritores limpos. Quando especifica DicomTagConfig.Options.CleanDescriptorsOption, é usado um infoType adicional durante a inspeção, o que pode afetar os custos de faturação.

A utilização da opção DicomTagConfig.Options.CleanDescriptorsOption transforma qualquer texto de metadados não estruturado que corresponda a etiquetas removidas e, ao fazê-lo, melhora a qualidade da desidentificação. Por exemplo, suponhamos que está a remover a identificação de uma radiografia e que o paciente da radiografia tem um apelido que também é um substantivo, como Wall. Se quaisquer metadados na instância, como o texto em StudyDescription, contiverem a palavra Wall, o texto é transformado.

A opção CleanDescriptorsOption oculta frases contextuais que correspondam a quaisquer etiquetas marcadas para remoção no perfil base DICOM desde que as etiquetas correspondam a um dos seguintes códigos de ação:

  • D
  • Z
  • X
  • U

As expressões contextuais correspondentes são substituídas pelo token [CTX].

Pode configurar as etiquetas que são ocultadas especificando o seguinte:

  • Uma enumeração no objeto ProfileType. Não é necessário especificar uma enumeração.
  • O CleanTextTag filtro para etiquetas específicas.

No entanto, não é possível alterar as etiquetas usadas no perfil base DICOM.

Oculte texto incorporado com desidentificação contextual

Pode especificar a enumeração TextRedactionMode.REDACT_SENSITIVE_TEXT_CLEAN_DESCRIPTORS para ativar a desidentificação contextual de texto incorporado numa imagem. Esta opção baseia-se na opção de descritores limpos. Quando especifica o TextRedactionMode.REDACT_SENSITIVE_TEXT_CLEAN_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:

A opção TextRedactionMode.REDACT_SENSITIVE_TEXT_CLEAN_DESCRIPTORS oculta texto incorporado que corresponda a quaisquer etiquetas marcadas para remoção no perfil base DICOM desde que as etiquetas correspondam a um dos seguintes códigos de ação:

  • D
  • Z
  • X
  • U

Não existe configuração adicional para a desidentificação contextual de texto incorporado, além de a ativar ou desativar através de uma enumeração no objeto ProfileType. Não é necessário especificar uma enumeração.

InfoTypes adicionais na desidentificação de imagens

Pode usar tipos de informações (infoTypes) para especificar os dados a analisar quando realizar a desidentificação em etiquetas. Um infoType é um tipo de dados confidenciais, como o nome de um paciente, um endereço de email, um número de telefone, um número de identificação ou um número de cartão de crédito.

Pode configurar os seguintes campos no objeto DicomTagConfig.Options.ImageConfig para determinar que infoTypes usar durante a desidentificação de imagens DICOM:

Estes campos só entram em vigor se DicomTagConfig.Options.ImageConfig.TextRedactionMode estiver definido como um dos seguintes valores:

Migre pedidos e respostas para usar DicomTagConfig

Pode configurar a desidentificação de DICOM através da DicomTagConfig, que está disponível na API Cloud Healthcare v1beta1 e é uma alternativa à utilização da DicomConfig antiga. Quando envia um pedido, não pode incluir DicomConfig e DicomTagConfig.

As secções seguintes descrevem as configurações no DicomConfig e como as migrar para o DicomTagConfig.

TagFilterProfile a ProfileType

Substitua o objeto DicomConfig TagFilterProfile pelo objeto DicomTagConfig ProfileType. Os mesmos quatro perfis no TagFilterProfileType estão disponíveis no ProfileType.

O exemplo seguinte mostra como migrar um pedido da utilização de TagFilterProfile para a utilização de ProfileType:

DicomConfigDicomTagConfig
"config": {
  "dicom": {
    "filterProfile": enum(TagFilterProfile)
  }
}
"config": {
  "dicomTagConfig": {
    "profileType": enum(ProfileType)
  }
}

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.

DicomConfigDicomTagConfig
"config": {
  "dicom": {
    "keepList": {
      "tags": [
        "PatientID"
      ]
    }
  }
}
"config": {
  "dicomTagConfig": {
    "actions": [
      {
        "queries": [
          "PatientID"
        ],
        "keepTag": {}
      }
    ]
  }
}

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 a PrimaryIdsOption. A predefinição é a opção especificada em ProfileType.
  • 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:

DicomConfigDicomTagConfig
"config": {
  "dicom": {
    "skipIdRedaction": true
  }
}
"config": {
  "dicomTagConfig": {
    "options": {
      "primaryIds": "KEEP"
    }
  }
}

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.imageDeidentifyConfig.DicomTagConfig.Options.cleanImage
"config": {
  "image": {
    "textRedactionMode": "REDACT_ALL_TEXT"
  }
}
"config": {
  "dicomTagConfig": {
    "options": {
      "cleanImage": {
        "textRedactionMode": "REDACT_ALL_TEXT"
      }
    }
  }
}

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:

xray_original

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

  1. Desidentifique o conjunto de dados.

    Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:

    • PROJECT_ID: o ID do seu Google Cloud projeto
    • SOURCE_DATASET_LOCATION: a localização do conjunto de dados de origem
    • SOURCE_DATASET_ID: o ID do conjunto de dados que contém os dados a desidentificar
    • DESTINATION_DATASET_ID: o ID do conjunto de dados de destino onde os dados anonimizados são escritos

    Corpo JSON do pedido:

    {
      "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID",
      "config": {
        "dicomTagConfig": {
          "options": {
            "cleanImage": {
              "textRedactionMode": "REDACT_ALL_TEXT"
            }
          }
        }
      }
    }
    

    Para enviar o seu pedido, escolha uma destas opções:

    curl

    Guarde o corpo do pedido num ficheiro denominado request.json. Execute o seguinte comando no terminal para criar ou substituir este ficheiro no diretório atual:

    cat > request.json << 'EOF'
    {
      "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID",
      "config": {
        "dicomTagConfig": {
          "options": {
            "cleanImage": {
              "textRedactionMode": "REDACT_ALL_TEXT"
            }
          }
        }
      }
    }
    EOF

    Em seguida, execute o seguinte comando para enviar o seu pedido REST:

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID:deidentify"

    PowerShell

    Guarde o corpo do pedido num ficheiro denominado request.json. Execute o seguinte comando no terminal para criar ou substituir este ficheiro no diretório atual:

    @'
    {
      "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID",
      "config": {
        "dicomTagConfig": {
          "options": {
            "cleanImage": {
              "textRedactionMode": "REDACT_ALL_TEXT"
            }
          }
        }
      }
    }
    '@  | Out-File -FilePath request.json -Encoding utf8

    Em seguida, execute o seguinte comando para enviar o seu pedido REST:

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method POST `
    -Headers $headers `
    -ContentType: "application/json; charset=utf-8" `
    -InFile request.json `
    -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID:deidentify" | Select-Object -Expand Content
    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 de OPERATION_ID. Precisa deste valor no passo seguinte.

  2. Use o método projects.locations.datasets.operations.get para obter o estado da operação de execução longa.

    Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:

    • PROJECT_ID: o ID do seu Google Cloud projeto
    • SOURCE_DATASET_LOCATION: a localização do conjunto de dados de origem
    • SOURCE_DATASET_ID: o ID do conjunto de dados que contém os dados a desidentificar
    • OPERATION_ID: o ID devolvido pela operação de longa duração

    Para enviar o seu pedido, escolha uma destas opções:

    curl

    Execute o seguinte comando:

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID/operations/OPERATION_ID"

    PowerShell

    Execute o seguinte comando:

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method GET `
    -Headers $headers `
    -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand Content

    Explorador 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.

    O resultado é o seguinte. Quando a resposta contém "done": true, a operação de longa duração terminou.

  3. 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 Content

    Deve receber uma resposta JSON semelhante à seguinte:

    A tabela seguinte mostra como o UID dos estudos, o UID das séries e o UID das instâncias foram alterados:
      Metadados da instância original Metadados de instâncias anonimizados
    UID dos estudos (0020000D) 2.25.70541616638819138568043293671559322355 1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763
    UID da série (0020000E) 1.2.276.0.7230010.3.1.3.8323329.78.1531234558.523694 1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710
    UID das instâncias (00080018) 1.2.276.0.7230010.3.1.4.8323329.78.1539083058.523695 1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029
  4. Com os novos valores, obtenha os metadados da instância.

    Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:

    • PROJECT_ID: o ID do seu Google Cloud projeto
    • DESTINATION_DATASET_ID: o ID do conjunto de dados de destino onde os dados anonimizados são escritos
    • SOURCE_DATASET_LOCATION: a localização do conjunto de dados de origem
    • DESTINATION_DICOM_STORE_ID: o ID do armazenamento DICOM no conjunto de dados de destino. Este é o mesmo que o ID do arquivo DICOM no conjunto de dados de origem.

    Para enviar o seu pedido, escolha uma destas opções:

    curl

    Execute o seguinte comando:

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763/series/1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710/instances/1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029/metadata"

    PowerShell

    Execute o seguinte comando:

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method GET `
    -Headers $headers `
    -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763/series/1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710/instances/1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029/metadata" | Select-Object -Expand Content

    Explorador 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.

    A saída contém os novos metadados. Pode comparar os novos metadados com os metadados originais para ver o efeito da transformação.

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.

Figura 1. A instância DICOM após a anulação da identificação usando 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

  1. Desidentifique o conjunto de dados.

    Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:

    • PROJECT_ID: o ID do seu Google Cloud projeto
    • SOURCE_DATASET_LOCATION: a localização do conjunto de dados de origem
    • SOURCE_DATASET_ID: o ID do conjunto de dados que contém os dados a desidentificar
    • DESTINATION_DATASET_ID: o ID do conjunto de dados de destino onde os dados anonimizados são escritos

    Corpo JSON do pedido:

    {
      "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID",
      "config": {
        "dicomTagConfig": {
          "options": {
            "cleanImage": {
              "textRedactionMode": "REDACT_SENSITIVE_TEXT_CLEAN_DESCRIPTORS"
            }
          }
        }
      }
    }
    

    Para enviar o seu pedido, escolha uma destas opções:

    curl

    Guarde o corpo do pedido num ficheiro denominado request.json. Execute o seguinte comando no terminal para criar ou substituir este ficheiro no diretório atual:

    cat > request.json << 'EOF'
    {
      "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID",
      "config": {
        "dicomTagConfig": {
          "options": {
            "cleanImage": {
              "textRedactionMode": "REDACT_SENSITIVE_TEXT_CLEAN_DESCRIPTORS"
            }
          }
        }
      }
    }
    EOF

    Em seguida, execute o seguinte comando para enviar o seu pedido REST:

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID:deidentify"

    PowerShell

    Guarde o corpo do pedido num ficheiro denominado request.json. Execute o seguinte comando no terminal para criar ou substituir este ficheiro no diretório atual:

    @'
    {
      "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID",
      "config": {
        "dicomTagConfig": {
          "options": {
            "cleanImage": {
              "textRedactionMode": "REDACT_SENSITIVE_TEXT_CLEAN_DESCRIPTORS"
            }
          }
        }
      }
    }
    '@  | Out-File -FilePath request.json -Encoding utf8

    Em seguida, execute o seguinte comando para enviar o seu pedido REST:

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method POST `
    -Headers $headers `
    -ContentType: "application/json; charset=utf-8" `
    -InFile request.json `
    -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID:deidentify" | Select-Object -Expand Content
    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 de OPERATION_ID. Precisa deste valor no passo seguinte.

  2. Use o método projects.locations.datasets.operations.get para obter o estado da operação de execução longa.

    Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:

    • PROJECT_ID: o ID do seu Google Cloud projeto
    • SOURCE_DATASET_LOCATION: a localização do conjunto de dados de origem
    • SOURCE_DATASET_ID: o ID do conjunto de dados que contém os dados a desidentificar
    • OPERATION_ID: o ID devolvido pela operação de longa duração

    Para enviar o seu pedido, escolha uma destas opções:

    curl

    Execute o seguinte comando:

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID/operations/OPERATION_ID"

    PowerShell

    Execute o seguinte comando:

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method GET `
    -Headers $headers `
    -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand Content

    Explorador 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.

    O resultado é o seguinte. Quando a resposta contém "done": true, a operação de longa duração terminou.

  3. 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 Content

    Deve receber uma resposta JSON semelhante à seguinte:

    A tabela seguinte mostra como o UID dos estudos, o UID das séries e o UID das instâncias foram alterados:
      Metadados da instância original Metadados de instâncias anonimizados
    UID dos estudos (0020000D) 2.25.70541616638819138568043293671559322355 1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763
    UID da série (0020000E) 1.2.276.0.7230010.3.1.3.8323329.78.1531234558.523694 1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710
    UID das instâncias (00080018) 1.2.276.0.7230010.3.1.4.8323329.78.1539083058.523695 1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029
  4. Com os novos valores, obtenha os metadados da instância.

    Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:

    • PROJECT_ID: o ID do seu Google Cloud projeto
    • DESTINATION_DATASET_ID: o ID do conjunto de dados de destino onde os dados anonimizados são escritos
    • SOURCE_DATASET_LOCATION: a localização do conjunto de dados de origem
    • DESTINATION_DICOM_STORE_ID: o ID do armazenamento DICOM no conjunto de dados de destino. Este é o mesmo que o ID do arquivo DICOM no conjunto de dados de origem.

    Para enviar o seu pedido, escolha uma destas opções:

    curl

    Execute o seguinte comando:

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763/series/1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710/instances/1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029/metadata"

    PowerShell

    Execute o seguinte comando:

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method GET `
    -Headers $headers `
    -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763/series/1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710/instances/1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029/metadata" | Select-Object -Expand Content

    Explorador 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.

    A saída contém os novos metadados. Pode comparar os novos metadados com os metadados originais para ver o efeito da transformação.

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.

Figura 2. A instância DICOM após a anulação da identificação usando REDACT_SENSITIVE_TEXT_CLEAN_DESCRIPTORS.

Desidentifique etiquetas DICOM

Pode remover a identificação das instâncias DICOM com base em palavras-chave de etiquetas nos metadados DICOM.

Os seguintes métodos de filtragem de etiquetas estão disponíveis no objeto DicomTagConfig Action:

Especifica cada opção Action como uma lista de IDs, nomes ou representações de valores (VRs) de etiquetas DICOM e, em seguida, a opção executa uma ação nas etiquetas na lista. Não pode especificar mais de uma opção Action numa lista de etiquetas.

Cada objeto Action fornece uma lista queries[] onde especifica uma lista de etiquetas. São suportados os seguintes formatos de etiquetas:

  • IDs de etiquetas, como "00100010"
  • Nomes de etiquetas, como "PatientName"
  • Representações de valores (VRs), como "PN"

Não existe limite para o número de etiquetas que podem ser fornecidas na lista queries[]. No entanto, cada etiqueta só pode ter uma única opção Action executada. Para especificar diferentes etiquetas com diferentes opções Action executadas nas mesmas, tem de especificar vários objetos Action.

Mantenha as etiquetas

Pode impedir que os valores das etiquetas sejam ocultados especificando as etiquetas num objeto KeepTag no objeto DicomTagConfig.

Para produzir um objeto DICOM válido enquanto usa um objeto KeepTag, especifique os valores MINIMAL_KEEP_LIST_PROFILE ou DEIDENTIFY_TAG_CONTENTS no objeto ProfileType.

Se especificar qualquer um destes perfis, as seguintes etiquetas são mantidas automaticamente, o que garante que a instância DICOM anónima é um DICOM válido:

  • StudyInstanceUID
  • SeriesInstanceUID
  • SOPInstanceUID
  • TransferSyntaxUID
  • MediaStorageSOPInstanceUID
  • MediaStorageSOPClassUID
  • PixelData
  • Rows
  • Columns
  • SamplesPerPixel
  • BitsAllocated
  • BitsStored
  • Highbit
  • PhotometricInterpretation
  • PixelRepresentation
  • NumberOfFrames
  • PlanarConfiguration
  • PixelAspectRatio
  • SmallestImagePixelValue
  • LargestImagePixelValue
  • RedPaletteColorLookupTableDescriptor
  • GreenPaletteColorLookupTableDescriptor
  • BluePaletteColorLookupTableDescriptor
  • RedPaletteColorLookupTableData
  • GreenPaletteColorLookupTableData
  • BluePaletteColorLookupTableData
  • ICCProfile
  • ColorSpace
  • WindowCenter
  • WindowWidth
  • VOILUTFunction

Os valores de algumas das etiquetas anteriores são regenerados, o que significa que os valores são substituídos por um valor diferente através de uma transformação determinística. Para mais informações, consulte a opção Retain UIDs na norma DICOM.

Os valores de StudyInstanceUID, SeriesInstanceUID, SOPInstanceUID e MediaStorageSOPInstanceUID são denominados "IDs principais". Para determinar como os IDs principais são transformados, especifique um valor em PrimaryIdsOption.

Os exemplos seguintes mostram como usar o objeto KeepTag para manter os valores de etiquetas específicas inalterados durante a anulação da identificação. A etiqueta PatientName é adicionada à lista queries[], pelo que o valor PatientName não é ocultado durante a desidentificação.

Uma vez que PrimaryIdsOption não está especificado no exemplo, o campo primaryIds tem como predefinição PRIMARY_IDS_OPTION_UNSPECIFIED, que tem como predefinição o valor em ProfileType. Uma vez que ProfileType também não está especificado, o campo profileType tem como predefinição PROFILE_TYPE_UNSPECIFIED, o que remove as etiquetas com base no perfil básico de confidencialidade dos atributos (DICOM Standard Edition 2018e).

REST

  1. Desidentifique o conjunto de dados.

    Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:

    • PROJECT_ID: o ID do seu Google Cloud projeto
    • SOURCE_DATASET_LOCATION: a localização do conjunto de dados de origem
    • SOURCE_DATASET_ID: o ID do conjunto de dados que contém os dados a desidentificar
    • DESTINATION_DATASET_ID: o ID do conjunto de dados de destino onde os dados anonimizados são escritos

    Corpo JSON do pedido:

    {
      "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID",
      "config": {
        "dicomTagConfig": {
          "actions": [
            {
              "queries": [
               "PatientName"
              ],
              "keepTag": {}
            }
          ]
        }
      }
    }
    

    Para enviar o seu pedido, escolha uma destas opções:

    curl

    Guarde o corpo do pedido num ficheiro denominado request.json. Execute o seguinte comando no terminal para criar ou substituir este ficheiro no diretório atual:

    cat > request.json << 'EOF'
    {
      "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID",
      "config": {
        "dicomTagConfig": {
          "actions": [
            {
              "queries": [
               "PatientName"
              ],
              "keepTag": {}
            }
          ]
        }
      }
    }
    EOF

    Em seguida, execute o seguinte comando para enviar o seu pedido REST:

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID:deidentify"

    PowerShell

    Guarde o corpo do pedido num ficheiro denominado request.json. Execute o seguinte comando no terminal para criar ou substituir este ficheiro no diretório atual:

    @'
    {
      "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID",
      "config": {
        "dicomTagConfig": {
          "actions": [
            {
              "queries": [
               "PatientName"
              ],
              "keepTag": {}
            }
          ]
        }
      }
    }
    '@  | Out-File -FilePath request.json -Encoding utf8

    Em seguida, execute o seguinte comando para enviar o seu pedido REST:

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method POST `
    -Headers $headers `
    -ContentType: "application/json; charset=utf-8" `
    -InFile request.json `
    -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID:deidentify" | Select-Object -Expand Content
    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 de OPERATION_ID. Precisa deste valor no passo seguinte.

  2. Use o método projects.locations.datasets.operations.get para obter o estado da operação de execução longa.

    Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:

    • PROJECT_ID: o ID do seu Google Cloud projeto
    • SOURCE_DATASET_LOCATION: a localização do conjunto de dados de origem
    • SOURCE_DATASET_ID: o ID do conjunto de dados que contém os dados a desidentificar
    • OPERATION_ID: o ID devolvido pela operação de longa duração

    Para enviar o seu pedido, escolha uma destas opções:

    curl

    Execute o seguinte comando:

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID/operations/OPERATION_ID"

    PowerShell

    Execute o seguinte comando:

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method GET `
    -Headers $headers `
    -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand Content

    Explorador 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.

    O resultado é o seguinte. Quando a resposta contém "done": true, a operação de longa duração terminou.

  3. 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 Content

    Deve receber uma resposta JSON semelhante à seguinte:

    A tabela seguinte mostra como o UID dos estudos, o UID das séries e o UID das instâncias foram alterados:
      Metadados da instância original Metadados de instâncias anonimizados
    UID dos estudos (0020000D) 2.25.70541616638819138568043293671559322355 1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763
    UID da série (0020000E) 1.2.276.0.7230010.3.1.3.8323329.78.1531234558.523694 1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710
    UID das instâncias (00080018) 1.2.276.0.7230010.3.1.4.8323329.78.1539083058.523695 1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029
  4. Com os novos valores, obtenha os metadados da instância.

    Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:

    • PROJECT_ID: o ID do seu Google Cloud projeto
    • DESTINATION_DATASET_ID: o ID do conjunto de dados de destino onde os dados anonimizados são escritos
    • SOURCE_DATASET_LOCATION: a localização do conjunto de dados de origem
    • DESTINATION_DICOM_STORE_ID: o ID do armazenamento DICOM no conjunto de dados de destino. Este é o mesmo que o ID do arquivo DICOM no conjunto de dados de origem.

    Para enviar o seu pedido, escolha uma destas opções:

    curl

    Execute o seguinte comando:

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763/series/1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710/instances/1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029/metadata"

    PowerShell

    Execute o seguinte comando:

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method GET `
    -Headers $headers `
    -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763/series/1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710/instances/1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029/metadata" | Select-Object -Expand Content

    Explorador 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.

    A saída contém os novos metadados. Pode comparar os novos metadados com os metadados originais para ver o efeito da transformação.

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

  1. Desidentifique o conjunto de dados.

    Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:

    • PROJECT_ID: o ID do seu Google Cloud projeto
    • SOURCE_DATASET_LOCATION: a localização do conjunto de dados de origem
    • SOURCE_DATASET_ID: o ID do conjunto de dados que contém os dados a desidentificar
    • DESTINATION_DATASET_ID: o ID do conjunto de dados de destino onde os dados anonimizados são escritos

    Corpo JSON do pedido:

    {
      "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID",
      "config": {
        "dicomTagConfig": {
          "actions": [
            {
              "queries": [
                 "PatientName"
              ],
              "removeTag": {}
            }
          ]
        }
      }
    }
    

    Para enviar o seu pedido, escolha uma destas opções:

    curl

    Guarde o corpo do pedido num ficheiro denominado request.json. Execute o seguinte comando no terminal para criar ou substituir este ficheiro no diretório atual:

    cat > request.json << 'EOF'
    {
      "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID",
      "config": {
        "dicomTagConfig": {
          "actions": [
            {
              "queries": [
                 "PatientName"
              ],
              "removeTag": {}
            }
          ]
        }
      }
    }
    EOF

    Em seguida, execute o seguinte comando para enviar o seu pedido REST:

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID:deidentify"

    PowerShell

    Guarde o corpo do pedido num ficheiro denominado request.json. Execute o seguinte comando no terminal para criar ou substituir este ficheiro no diretório atual:

    @'
    {
      "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID",
      "config": {
        "dicomTagConfig": {
          "actions": [
            {
              "queries": [
                 "PatientName"
              ],
              "removeTag": {}
            }
          ]
        }
      }
    }
    '@  | Out-File -FilePath request.json -Encoding utf8

    Em seguida, execute o seguinte comando para enviar o seu pedido REST:

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method POST `
    -Headers $headers `
    -ContentType: "application/json; charset=utf-8" `
    -InFile request.json `
    -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID:deidentify" | Select-Object -Expand Content
    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 de OPERATION_ID. Precisa deste valor no passo seguinte.

  2. Use o método projects.locations.datasets.operations.get para obter o estado da operação de execução longa.

    Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:

    • PROJECT_ID: o ID do seu Google Cloud projeto
    • SOURCE_DATASET_LOCATION: a localização do conjunto de dados de origem
    • SOURCE_DATASET_ID: o ID do conjunto de dados que contém os dados a desidentificar
    • OPERATION_ID: o ID devolvido pela operação de longa duração

    Para enviar o seu pedido, escolha uma destas opções:

    curl

    Execute o seguinte comando:

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID/operations/OPERATION_ID"

    PowerShell

    Execute o seguinte comando:

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method GET `
    -Headers $headers `
    -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand Content

    Explorador 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.

    O resultado é o seguinte. Quando a resposta contém "done": true, a operação de longa duração terminou.

  3. 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 Content

    Deve receber uma resposta JSON semelhante à seguinte:

    A tabela seguinte mostra como o UID dos estudos, o UID das séries e o UID das instâncias foram alterados:
      Metadados da instância original Metadados de instâncias anonimizados
    UID dos estudos (0020000D) 2.25.70541616638819138568043293671559322355 1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763
    UID da série (0020000E) 1.2.276.0.7230010.3.1.3.8323329.78.1531234558.523694 1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710
    UID das instâncias (00080018) 1.2.276.0.7230010.3.1.4.8323329.78.1539083058.523695 1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029
  4. Com os novos valores, obtenha os metadados da instância.

    Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:

    • PROJECT_ID: o ID do seu Google Cloud projeto
    • DESTINATION_DATASET_ID: o ID do conjunto de dados de destino onde os dados anonimizados são escritos
    • SOURCE_DATASET_LOCATION: a localização do conjunto de dados de origem
    • DESTINATION_DICOM_STORE_ID: o ID do armazenamento DICOM no conjunto de dados de destino. Este é o mesmo que o ID do arquivo DICOM no conjunto de dados de origem.

    Para enviar o seu pedido, escolha uma destas opções:

    curl

    Execute o seguinte comando:

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763/series/1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710/instances/1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029/metadata"

    PowerShell

    Execute o seguinte comando:

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method GET `
    -Headers $headers `
    -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763/series/1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710/instances/1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029/metadata" | Select-Object -Expand Content

    Explorador 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.

    A saída contém os novos metadados. Pode comparar os novos metadados com os metadados originais para ver o efeito da transformação.

Elimine etiquetas

Os exemplos seguintes mostram como usar o objeto DeleteTag para eliminar etiquetas específicas durante a anulação da identificação.

REST

  1. Desidentifique o conjunto de dados.

    Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:

    • PROJECT_ID: o ID do seu Google Cloud projeto
    • SOURCE_DATASET_LOCATION: a localização do conjunto de dados de origem
    • SOURCE_DATASET_ID: o ID do conjunto de dados que contém os dados a desidentificar
    • DESTINATION_DATASET_ID: o ID do conjunto de dados de destino onde os dados anonimizados são escritos

    Corpo JSON do pedido:

    {
      "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID",
      "config": {
        "dicomTagConfig": {
          "actions": [
            {
              "queries": [
               "PatientName"
              ],
              "deleteTag": {}
            }
          ]
        }
      }
    }
    

    Para enviar o seu pedido, escolha uma destas opções:

    curl

    Guarde o corpo do pedido num ficheiro denominado request.json. Execute o seguinte comando no terminal para criar ou substituir este ficheiro no diretório atual:

    cat > request.json << 'EOF'
    {
      "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID",
      "config": {
        "dicomTagConfig": {
          "actions": [
            {
              "queries": [
               "PatientName"
              ],
              "deleteTag": {}
            }
          ]
        }
      }
    }
    EOF

    Em seguida, execute o seguinte comando para enviar o seu pedido REST:

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID:deidentify"

    PowerShell

    Guarde o corpo do pedido num ficheiro denominado request.json. Execute o seguinte comando no terminal para criar ou substituir este ficheiro no diretório atual:

    @'
    {
      "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID",
      "config": {
        "dicomTagConfig": {
          "actions": [
            {
              "queries": [
               "PatientName"
              ],
              "deleteTag": {}
            }
          ]
        }
      }
    }
    '@  | Out-File -FilePath request.json -Encoding utf8

    Em seguida, execute o seguinte comando para enviar o seu pedido REST:

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method POST `
    -Headers $headers `
    -ContentType: "application/json; charset=utf-8" `
    -InFile request.json `
    -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID:deidentify" | Select-Object -Expand Content
    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 de OPERATION_ID. Precisa deste valor no passo seguinte.

  2. Use o método projects.locations.datasets.operations.get para obter o estado da operação de execução longa.

    Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:

    • PROJECT_ID: o ID do seu Google Cloud projeto
    • SOURCE_DATASET_LOCATION: a localização do conjunto de dados de origem
    • SOURCE_DATASET_ID: o ID do conjunto de dados que contém os dados a desidentificar
    • OPERATION_ID: o ID devolvido pela operação de longa duração

    Para enviar o seu pedido, escolha uma destas opções:

    curl

    Execute o seguinte comando:

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID/operations/OPERATION_ID"

    PowerShell

    Execute o seguinte comando:

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method GET `
    -Headers $headers `
    -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand Content

    Explorador 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.

    O resultado é o seguinte. Quando a resposta contém "done": true, a operação de longa duração terminou.

  3. 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 Content

    Deve receber uma resposta JSON semelhante à seguinte:

    A tabela seguinte mostra como o UID dos estudos, o UID das séries e o UID das instâncias foram alterados:
      Metadados da instância original Metadados de instâncias anonimizados
    UID dos estudos (0020000D) 2.25.70541616638819138568043293671559322355 1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763
    UID da série (0020000E) 1.2.276.0.7230010.3.1.3.8323329.78.1531234558.523694 1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710
    UID das instâncias (00080018) 1.2.276.0.7230010.3.1.4.8323329.78.1539083058.523695 1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029
  4. Com os novos valores, obtenha os metadados da instância.

    Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:

    • PROJECT_ID: o ID do seu Google Cloud projeto
    • DESTINATION_DATASET_ID: o ID do conjunto de dados de destino onde os dados anonimizados são escritos
    • SOURCE_DATASET_LOCATION: a localização do conjunto de dados de origem
    • DESTINATION_DICOM_STORE_ID: o ID do armazenamento DICOM no conjunto de dados de destino. Este é o mesmo que o ID do arquivo DICOM no conjunto de dados de origem.

    Para enviar o seu pedido, escolha uma destas opções:

    curl

    Execute o seguinte comando:

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763/series/1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710/instances/1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029/metadata"

    PowerShell

    Execute o seguinte comando:

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method GET `
    -Headers $headers `
    -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763/series/1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710/instances/1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029/metadata" | Select-Object -Expand Content

    Explorador 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.

    A saída contém os novos metadados. Pode comparar os novos metadados com os metadados originais para ver o efeito da transformação.

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

  1. Desidentifique o conjunto de dados.

    Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:

    • PROJECT_ID: o ID do seu Google Cloud projeto
    • SOURCE_DATASET_LOCATION: a localização do conjunto de dados de origem
    • SOURCE_DATASET_ID: o ID do conjunto de dados que contém os dados a desidentificar
    • DESTINATION_DATASET_ID: o ID do conjunto de dados de destino onde os dados anonimizados são escritos

    Corpo JSON do pedido:

    {
      "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID",
      "config": {
        "dicomTagConfig": {
          "actions": [
            {
              "queries": [
               "PatientName"
              ],
              "resetTag": {}
            }
          ]
        }
      }
    }
    

    Para enviar o seu pedido, escolha uma destas opções:

    curl

    Guarde o corpo do pedido num ficheiro denominado request.json. Execute o seguinte comando no terminal para criar ou substituir este ficheiro no diretório atual:

    cat > request.json << 'EOF'
    {
      "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID",
      "config": {
        "dicomTagConfig": {
          "actions": [
            {
              "queries": [
               "PatientName"
              ],
              "resetTag": {}
            }
          ]
        }
      }
    }
    EOF

    Em seguida, execute o seguinte comando para enviar o seu pedido REST:

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID:deidentify"

    PowerShell

    Guarde o corpo do pedido num ficheiro denominado request.json. Execute o seguinte comando no terminal para criar ou substituir este ficheiro no diretório atual:

    @'
    {
      "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID",
      "config": {
        "dicomTagConfig": {
          "actions": [
            {
              "queries": [
               "PatientName"
              ],
              "resetTag": {}
            }
          ]
        }
      }
    }
    '@  | Out-File -FilePath request.json -Encoding utf8

    Em seguida, execute o seguinte comando para enviar o seu pedido REST:

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method POST `
    -Headers $headers `
    -ContentType: "application/json; charset=utf-8" `
    -InFile request.json `
    -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID:deidentify" | Select-Object -Expand Content
    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 de OPERATION_ID. Precisa deste valor no passo seguinte.

  2. Use o método projects.locations.datasets.operations.get para obter o estado da operação de execução longa.

    Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:

    • PROJECT_ID: o ID do seu Google Cloud projeto
    • SOURCE_DATASET_LOCATION: a localização do conjunto de dados de origem
    • SOURCE_DATASET_ID: o ID do conjunto de dados que contém os dados a desidentificar
    • OPERATION_ID: o ID devolvido pela operação de longa duração

    Para enviar o seu pedido, escolha uma destas opções:

    curl

    Execute o seguinte comando:

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID/operations/OPERATION_ID"

    PowerShell

    Execute o seguinte comando:

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method GET `
    -Headers $headers `
    -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand Content

    Explorador 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.

    O resultado é o seguinte. Quando a resposta contém "done": true, a operação de longa duração terminou.

  3. 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 Content

    Deve receber uma resposta JSON semelhante à seguinte:

    A tabela seguinte mostra como o UID dos estudos, o UID das séries e o UID das instâncias foram alterados:
      Metadados da instância original Metadados de instâncias anonimizados
    UID dos estudos (0020000D) 2.25.70541616638819138568043293671559322355 1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763
    UID da série (0020000E) 1.2.276.0.7230010.3.1.3.8323329.78.1531234558.523694 1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710
    UID das instâncias (00080018) 1.2.276.0.7230010.3.1.4.8323329.78.1539083058.523695 1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029
  4. Com os novos valores, obtenha os metadados da instância.

    Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:

    • PROJECT_ID: o ID do seu Google Cloud projeto
    • DESTINATION_DATASET_ID: o ID do conjunto de dados de destino onde os dados anonimizados são escritos
    • SOURCE_DATASET_LOCATION: a localização do conjunto de dados de origem
    • DESTINATION_DICOM_STORE_ID: o ID do armazenamento DICOM no conjunto de dados de destino. Este é o mesmo que o ID do arquivo DICOM no conjunto de dados de origem.

    Para enviar o seu pedido, escolha uma destas opções:

    curl

    Execute o seguinte comando:

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763/series/1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710/instances/1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029/metadata"

    PowerShell

    Execute o seguinte comando:

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method GET `
    -Headers $headers `
    -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763/series/1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710/instances/1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029/metadata" | Select-Object -Expand Content

    Explorador 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.

    A saída contém os novos metadados. Pode comparar os novos metadados com os metadados originais para ver o efeito da transformação.

    Em particular, repare que o valor da etiqueta PatientName está definido como PLACEHOLDER:

    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.
  • Umaqueries[] lista que contém a etiqueta PatientName DICOM.

As seguintes opções são definidas no objeto TextConfig:

  • Um objeto InfoTypeTransformation que transforma texto que corresponde a um infoType específico.
  • Um objeto ReplaceWithInfoTypeConfig que substitui qualquer texto correspondente pelo nome do infoType.
  • Uma lista infoTypes[] que contém o PERSON_NAME infoType.

Com estas configurações definidas, a operação de desidentificação inspeciona a etiqueta PatientName, faz corresponder a etiqueta ao infoType PERSON_NAME e substitui o valor da etiqueta pelo infoType PERSON_NAME. A etiqueta PatientName tem uma representação de valor (VR) de PN, que é uma das VRs suportadas no objeto CleanTextTag.

REST

  1. Desidentifique o conjunto de dados.

    Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:

    • PROJECT_ID: o ID do seu Google Cloud projeto
    • SOURCE_DATASET_LOCATION: a localização do conjunto de dados de origem
    • SOURCE_DATASET_ID: o ID do conjunto de dados que contém os dados a desidentificar
    • DESTINATION_DATASET_ID: o ID do conjunto de dados de destino onde os dados anonimizados são escritos

    Corpo JSON do pedido:

    {
      "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID",
      "config": {
        "dicomTagConfig": {
          "actions": [
            {
              "queries": [
                "PatientName"
              ],
              "cleanTextTag": {}
            }
          ]
        },
        "text": {
          "additionalTransformations": [
            {
              "infoTypes": [
                "PERSON_NAME"
              ],
              "replaceWithInfoTypeConfig": {}
            }
          ]
        }
      }
    }
    

    Para enviar o seu pedido, escolha uma destas opções:

    curl

    Guarde o corpo do pedido num ficheiro denominado request.json. Execute o seguinte comando no terminal para criar ou substituir este ficheiro no diretório atual:

    cat > request.json << 'EOF'
    {
      "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID",
      "config": {
        "dicomTagConfig": {
          "actions": [
            {
              "queries": [
                "PatientName"
              ],
              "cleanTextTag": {}
            }
          ]
        },
        "text": {
          "additionalTransformations": [
            {
              "infoTypes": [
                "PERSON_NAME"
              ],
              "replaceWithInfoTypeConfig": {}
            }
          ]
        }
      }
    }
    EOF

    Em seguida, execute o seguinte comando para enviar o seu pedido REST:

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID:deidentify"

    PowerShell

    Guarde o corpo do pedido num ficheiro denominado request.json. Execute o seguinte comando no terminal para criar ou substituir este ficheiro no diretório atual:

    @'
    {
      "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID",
      "config": {
        "dicomTagConfig": {
          "actions": [
            {
              "queries": [
                "PatientName"
              ],
              "cleanTextTag": {}
            }
          ]
        },
        "text": {
          "additionalTransformations": [
            {
              "infoTypes": [
                "PERSON_NAME"
              ],
              "replaceWithInfoTypeConfig": {}
            }
          ]
        }
      }
    }
    '@  | Out-File -FilePath request.json -Encoding utf8

    Em seguida, execute o seguinte comando para enviar o seu pedido REST:

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method POST `
    -Headers $headers `
    -ContentType: "application/json; charset=utf-8" `
    -InFile request.json `
    -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID:deidentify" | Select-Object -Expand Content
    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 de OPERATION_ID. Precisa deste valor no passo seguinte.

  2. Use o método projects.locations.datasets.operations.get para obter o estado da operação de execução longa.

    Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:

    • PROJECT_ID: o ID do seu Google Cloud projeto
    • SOURCE_DATASET_LOCATION: a localização do conjunto de dados de origem
    • SOURCE_DATASET_ID: o ID do conjunto de dados que contém os dados a desidentificar
    • OPERATION_ID: o ID devolvido pela operação de longa duração

    Para enviar o seu pedido, escolha uma destas opções:

    curl

    Execute o seguinte comando:

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID/operations/OPERATION_ID"

    PowerShell

    Execute o seguinte comando:

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method GET `
    -Headers $headers `
    -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand Content

    Explorador 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.

    O resultado é o seguinte. Quando a resposta contém "done": true, a operação de longa duração terminou.

  3. 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 Content

    Deve receber uma resposta JSON semelhante à seguinte:

    A tabela seguinte mostra como o UID dos estudos, o UID das séries e o UID das instâncias foram alterados:
      Metadados da instância original Metadados de instâncias anonimizados
    UID dos estudos (0020000D) 2.25.70541616638819138568043293671559322355 1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763
    UID da série (0020000E) 1.2.276.0.7230010.3.1.3.8323329.78.1531234558.523694 1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710
    UID das instâncias (00080018) 1.2.276.0.7230010.3.1.4.8323329.78.1539083058.523695 1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029
  4. Com os novos valores, obtenha os metadados da instância.

    Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:

    • PROJECT_ID: o ID do seu Google Cloud projeto
    • DESTINATION_DATASET_ID: o ID do conjunto de dados de destino onde os dados anonimizados são escritos
    • SOURCE_DATASET_LOCATION: a localização do conjunto de dados de origem
    • DESTINATION_DICOM_STORE_ID: o ID do armazenamento DICOM no conjunto de dados de destino. Este é o mesmo que o ID do arquivo DICOM no conjunto de dados de origem.

    Para enviar o seu pedido, escolha uma destas opções:

    curl

    Execute o seguinte comando:

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763/series/1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710/instances/1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029/metadata"

    PowerShell

    Execute o seguinte comando:

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method GET `
    -Headers $headers `
    -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763/series/1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710/instances/1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029/metadata" | Select-Object -Expand Content

    Explorador 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.

    A saída contém os novos metadados. Pode comparar os novos metadados com os metadados originais para ver o efeito da transformação.

    Em particular, repare que o valor da etiqueta PatientName está 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:

  • ProfileType está definido como a enumeração KEEP_ALL, o que impede a anonimização de quaisquer metadados DICOM.

  • PrimaryIdsOption está definido como a enumeração KEEP , que deixa os IDs principais (StudyInstanceUID, SeriesInstanceUID, SOPInstanceUID e MediaStorageSOPInstanceUID) 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

  1. Desidentifique o conjunto de dados.

    Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:

    • PROJECT_ID: o ID do seu Google Cloud projeto
    • SOURCE_DATASET_LOCATION: a localização do conjunto de dados de origem
    • SOURCE_DATASET_ID: o ID do conjunto de dados que contém os dados a desidentificar
    • DESTINATION_DATASET_ID: o ID do conjunto de dados de destino onde os dados anonimizados são escritos

    Corpo JSON do pedido:

    {
      "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID",
      "config": {
        "dicomTagConfig": {
          "options": {
            "primaryIds": "KEEP"
          },
          "actions": [
            {
              "queries": [
                "00080018"
              ],
              "regenUidTag": {}
            }
          ],
          "profileType": "KEEP_ALL_PROFILE"
        }
      }
    }
    

    Para enviar o seu pedido, escolha uma destas opções:

    curl

    Guarde o corpo do pedido num ficheiro denominado request.json. Execute o seguinte comando no terminal para criar ou substituir este ficheiro no diretório atual:

    cat > request.json << 'EOF'
    {
      "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID",
      "config": {
        "dicomTagConfig": {
          "options": {
            "primaryIds": "KEEP"
          },
          "actions": [
            {
              "queries": [
                "00080018"
              ],
              "regenUidTag": {}
            }
          ],
          "profileType": "KEEP_ALL_PROFILE"
        }
      }
    }
    EOF

    Em seguida, execute o seguinte comando para enviar o seu pedido REST:

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID:deidentify"

    PowerShell

    Guarde o corpo do pedido num ficheiro denominado request.json. Execute o seguinte comando no terminal para criar ou substituir este ficheiro no diretório atual:

    @'
    {
      "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID",
      "config": {
        "dicomTagConfig": {
          "options": {
            "primaryIds": "KEEP"
          },
          "actions": [
            {
              "queries": [
                "00080018"
              ],
              "regenUidTag": {}
            }
          ],
          "profileType": "KEEP_ALL_PROFILE"
        }
      }
    }
    '@  | Out-File -FilePath request.json -Encoding utf8

    Em seguida, execute o seguinte comando para enviar o seu pedido REST:

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method POST `
    -Headers $headers `
    -ContentType: "application/json; charset=utf-8" `
    -InFile request.json `
    -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID:deidentify" | Select-Object -Expand Content
    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 de OPERATION_ID. Precisa deste valor no passo seguinte.

  2. Use o método projects.locations.datasets.operations.get para obter o estado da operação de execução longa.

    Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:

    • PROJECT_ID: o ID do seu Google Cloud projeto
    • SOURCE_DATASET_LOCATION: a localização do conjunto de dados de origem
    • SOURCE_DATASET_ID: o ID do conjunto de dados que contém os dados a desidentificar
    • OPERATION_ID: o ID devolvido pela operação de longa duração

    Para enviar o seu pedido, escolha uma destas opções:

    curl

    Execute o seguinte comando:

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID/operations/OPERATION_ID"

    PowerShell

    Execute o seguinte comando:

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method GET `
    -Headers $headers `
    -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand Content

    Explorador 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.

    O resultado é o seguinte. Quando a resposta contém "done": true, a operação de longa duração terminou.

  3. Depois de a anulação da identificação ser bem-sucedida, pode obter os metadados da instância com anulação da identificação para ver como mudaram. A instância anonimizada tem um novo UID de instâncias porque especificou a etiqueta SOPInstanceUID na matriz Action.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 Content

    Deve receber uma resposta JSON semelhante à seguinte:

    A tabela seguinte mostra como o UID das instâncias foi alterado:

      Metadados da instância original Metadados de instâncias anonimizados
    UID das instâncias (00080018) 1.2.276.0.7230010.3.1.4.8323329.78.1539083058.523695 1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029
  4. Com o novo valor, obtenha os metadados da instância.

    Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:

    • PROJECT_ID: o ID do seu Google Cloud projeto
    • DESTINATION_DATASET_ID: o ID do conjunto de dados de destino onde os dados anonimizados são escritos
    • SOURCE_DATASET_LOCATION: a localização do conjunto de dados de origem
    • DESTINATION_DICOM_STORE_ID: o ID do armazenamento DICOM no conjunto de dados de destino. Este é o mesmo que o ID do arquivo DICOM no conjunto de dados de origem.

    Para enviar o seu pedido, escolha uma destas opções:

    curl

    Execute o seguinte comando:

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/2.25.70541616638819138568043293671559322355/series/1.2.276.0.7230010.3.1.3.8323329.78.1531234558.523694/instances/1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029/metadata"

    PowerShell

    Execute o seguinte comando:

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method GET `
    -Headers $headers `
    -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/2.25.70541616638819138568043293671559322355/series/1.2.276.0.7230010.3.1.3.8323329.78.1531234558.523694/instances/1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029/metadata" | Select-Object -Expand Content

    Explorador 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.

    A saída contém os novos metadados. Pode comparar os novos metadados com os metadados originais para ver o efeito da transformação.

    Tenha em atenção que, dos IDs principais, apenas o SOPInstanceUID tem um UID gerado recentemente.

Remova a identificação das etiquetas de forma recorrente num Sequence aninhado

Os exemplos seguintes mostram como usar o objeto RecurseTag para remover a identificação de forma recursiva de etiquetas DICOM aninhadas num Sequence. O objeto RecurseTag só suporta o SQ VR, que é o VR para um Sequence.

Para obter informações sobre o SQ VR, consulte a secção 7.5 Aninhamento de conjuntos de dados.

A instância de exemplo DICOM fornecida para esta página não contém etiquetas DICOM com um SQ VR. Pode criar e armazenar uma instância DICOM com dados falsos que contenham o 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.

  1. Guarde os seguintes metadados DICOM num ficheiro JSON denominado instance.json. Os metadados contêm uma etiqueta PhysiciansReadingStudyIdentificationSequence (00081062). A etiqueta tem um SQ VR e contém duas etiquetas PersonIdentificationCodeSequence (00401101) aninhadas. As etiquetas aninhadas também têm um SQ VR e cada uma contém as seguintes etiquetas aninhadas:

    • CodeValue (00080100)
    • CodingSchemeDesignator (00080102)
    [{
      "00020010": {
        "vr": "UI",
        "Value": [
          "1.2.840.10008.1.2.4.50"
        ]
      },
      "00080005": {
        "vr": "CS",
        "Value": [
          "ISO_IR 192"
        ]
      },
      "00080016": {
        "vr": "UI",
        "Value": [
          "1111111"
        ]
      },
      "00080018": {
        "vr": "UI",
        "Value": [
          "2222222"
        ]
      },
      "0020000D": {
        "vr": "UI",
        "Value": [
          "3333333"
        ]
      },
      "0020000E": {
        "vr": "UI",
        "Value": [
          "4444444"
        ]
      },
      "00280002": {
        "vr": "US",
        "Value": [
          3
        ]
      },
      "00280004": {
        "vr": "CS",
        "Value": [
          "YBR_FULL_422"
        ]
      },
      "00280006": {
        "vr": "US",
        "Value": [
          0
        ]
      },
      "00280008": {
        "vr": "IS",
        "Value": [
          1
        ]
      },
      "00280010": {
        "vr": "US",
        "Value": [
          1024
        ]
      },
      "00280011": {
        "vr": "US",
        "Value": [
          1024
        ]
      },
      "00280100": {
        "vr": "US",
        "Value": [
          8
        ]
      },
      "00280101": {
        "vr": "US",
        "Value": [
          8
        ]
      },
      "00280102": {
        "vr": "US",
        "Value": [
          7
        ]
      },
      "00280103": {
        "vr": "US",
        "Value": [
          0
        ]
      },
      "7FE00010": {
        "vr": "OB",
        "BulkDataURI": "jpeg-image"
      },
      "00081062": {
        "vr": "SQ",
        "Value": [
          {
            "00401101": {
              "vr": "SQ",
              "Value": [
                {
                  "00080100": {
                    "vr": "SH",
                    "Value": [
                      "CodeValue1"
                    ]
                  },
                  "00080102": {
                    "vr": "SH",
                    "Value": [
                      "CodingSchemeDesignator1"
                    ]
                  }
                }
              ]
            }
          },
          {
            "00401101": {
              "vr": "SQ",
              "Value": [
                {
                  "00080100": {
                    "vr": "SH",
                    "Value": [
                      "CodeValue2"
                    ]
                  },
                  "00080102": {
                    "vr": "SH",
                    "Value": [
                      "CodingSchemeDesignator2"
                    ]
                  }
                }
              ]
            }
          }
        ]
      }
    }]
    
  2. Transfira o ficheiro google.jpg para o seu computador local. A API DICOMweb da Cloud Healthcare API aceita qualquer imagem JPEG associada a metadados JSON, desde que os metadados sejam válidos.

  3. Execute os seguintes comandos para criar uma abertura (para os metadados JSON), uma imagem intermédia (para o JPEG) e limites de fecho na imagem:

    echo -ne "--DICOMwebBoundary\r\nContent-Type: application/dicom+json\r\n\r\n" > opening.file
    echo -ne "\r\n--DICOMwebBoundary\r\nContent-Location: jpeg-image\r\nContent-Type: image/jpeg; transfer-syntax=1.2.840.10008.1.2.4.50\r\n\r\n" > middle.file
    echo -ne "\r\n--DICOMwebBoundary--" > closing.file
    
  4. Envolva a imagem google.jpg dentro dos limites intermédios e de fecho. O ficheiro de saída, que envia para a Cloud Healthcare API, chama-se multipart-request.file:

    cat opening.file instance.json middle.file google.jpg closing.file > multipart-request.file
    
  5. Armazene o ficheiro multipart-request.file:

    REST

    Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:

    • PROJECT_ID: o ID do seu Google Cloud projeto
    • SOURCE_DATASET_ID: o ID do conjunto de dados que contém os dados a desidentificar
    • SOURCE_DATASET_LOCATION: a localização do conjunto de dados de origem
    • SOURCE_DICOM_STORE_ID: o ID do armazenamento DICOM no conjunto de dados de origem

    Para enviar o seu pedido, escolha uma destas opções:

    curl

    Execute o seguinte comando:

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: multipart/related; type=\"application/dicom+json\"; boundary=DICOMwebBoundary" \
    --data-binary @multipart-request.file \
    "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID/dicomStores/SOURCE_DICOM_STORE_ID/dicomWeb/studies"

    PowerShell

    Execute o seguinte comando:

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method POST `
    -Headers $headers `
    -InFile multipart-request.file `
    -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID/dicomStores/SOURCE_DICOM_STORE_ID/dicomWeb/studies" | Select-Object -Expand Content

    Deve receber uma resposta JSON semelhante à seguinte:

Conclua os passos seguintes para remover a identificação da instância DICOM que armazenou.

REST

  1. Desidentifique o conjunto de dados.

    Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:

    • PROJECT_ID: o ID do seu Google Cloud projeto
    • SOURCE_DATASET_LOCATION: a localização do conjunto de dados de origem
    • SOURCE_DATASET_ID: o ID do conjunto de dados que contém os dados a desidentificar
    • DESTINATION_DATASET_ID: o ID do conjunto de dados de destino onde os dados anonimizados são escritos

    Corpo JSON do pedido:

    {
      "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID",
      "config": {
        "dicomTagConfig": {
          "actions": [
            {
              "queries": [
               "PhysiciansReadingStudyIdentificationSequence"
              ],
              "recurseTag": {}
            }
          ]
        }
      }
    }
    

    Para enviar o seu pedido, escolha uma destas opções:

    curl

    Guarde o corpo do pedido num ficheiro denominado request.json. Execute o seguinte comando no terminal para criar ou substituir este ficheiro no diretório atual:

    cat > request.json << 'EOF'
    {
      "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID",
      "config": {
        "dicomTagConfig": {
          "actions": [
            {
              "queries": [
               "PhysiciansReadingStudyIdentificationSequence"
              ],
              "recurseTag": {}
            }
          ]
        }
      }
    }
    EOF

    Em seguida, execute o seguinte comando para enviar o seu pedido REST:

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID:deidentify"

    PowerShell

    Guarde o corpo do pedido num ficheiro denominado request.json. Execute o seguinte comando no terminal para criar ou substituir este ficheiro no diretório atual:

    @'
    {
      "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID",
      "config": {
        "dicomTagConfig": {
          "actions": [
            {
              "queries": [
               "PhysiciansReadingStudyIdentificationSequence"
              ],
              "recurseTag": {}
            }
          ]
        }
      }
    }
    '@  | Out-File -FilePath request.json -Encoding utf8

    Em seguida, execute o seguinte comando para enviar o seu pedido REST:

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method POST `
    -Headers $headers `
    -ContentType: "application/json; charset=utf-8" `
    -InFile request.json `
    -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID:deidentify" | Select-Object -Expand Content
    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 de OPERATION_ID. Precisa deste valor no passo seguinte.

  2. Use o método projects.locations.datasets.operations.get para obter o estado da operação de execução longa.

    Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:

    • PROJECT_ID: o ID do seu Google Cloud projeto
    • SOURCE_DATASET_LOCATION: a localização do conjunto de dados de origem
    • SOURCE_DATASET_ID: o ID do conjunto de dados que contém os dados a desidentificar
    • OPERATION_ID: o ID devolvido pela operação de longa duração

    Para enviar o seu pedido, escolha uma destas opções:

    curl

    Execute o seguinte comando:

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID/operations/OPERATION_ID"

    PowerShell

    Execute o seguinte comando:

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method GET `
    -Headers $headers `
    -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand Content

    Explorador 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.

    O resultado é o seguinte. Quando a resposta contém "done": true, a operação de longa duração terminou.

  3. 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 Content

    Deve receber uma resposta JSON semelhante à seguinte:

    A tabela seguinte mostra como o UID dos estudos, o UID das séries e o UID das instâncias foram alterados:

    Metadados da instância original Metadados de instâncias anonimizados
    UID dos estudos (0020000D) 3333333 1.3.6.1.4.1.11129.5.1.222168347996079463826250565085126257314
    UID da série (0020000E) 4444444 1.3.6.1.4.1.11129.5.1.25205702030237830896398173746777399347
    UID das instâncias (00080018) 2222222 1.3.6.1.4.1.11129.5.1.286710307126045768765142714621897494633
  4. Com os novos valores, obtenha os metadados da instância.

    Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:

    • PROJECT_ID: o ID do seu Google Cloud projeto
    • DESTINATION_DATASET_ID: o ID do conjunto de dados de destino onde os dados anonimizados são escritos
    • SOURCE_DATASET_LOCATION: a localização do conjunto de dados de origem
    • DESTINATION_DICOM_STORE_ID: o ID do armazenamento DICOM no conjunto de dados de destino. Este é o mesmo que o ID do arquivo DICOM no conjunto de dados de origem.

    Para enviar o seu pedido, escolha uma destas opções:

    curl

    Execute o seguinte comando:

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.1.222168347996079463826250565085126257314/series/1.3.6.1.4.1.11129.5.1.25205702030237830896398173746777399347/instances/1.3.6.1.4.1.11129.5.1.286710307126045768765142714621897494633/metadata"

    PowerShell

    Execute o seguinte comando:

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method GET `
    -Headers $headers `
    -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.1.222168347996079463826250565085126257314/series/1.3.6.1.4.1.11129.5.1.25205702030237830896398173746777399347/instances/1.3.6.1.4.1.11129.5.1.286710307126045768765142714621897494633/metadata" | Select-Object -Expand Content

    Explorador 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.

    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.

    Em particular, repare que os valores das etiquetas CodeValue e CodingSchemaDesignator aninhadas estão definidos como PLACEHOLDER:

    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 destinationDataset no corpo do pedido por destinationStore
  • Adicione dicomStores/DESTINATION_DICOM_STORE_ID no final do valor em destinationStore quando especificar o destino
  • Adicione dicomStores/SOURCE_DICOM_STORE_ID quando especificar a localização dos dados de origem

Os exemplos seguintes mostram um pedido de desidentificação ao nível do conjunto de dados e como modificar o pedido para uma desidentificação ao nível do armazenamento DICOM:

Anonimização ao nível do conjunto de dados:

"destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID"
...
"https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/SOURCE_DATASET_ID:deidentify"

Anonimização ao nível do armazenamento DICOM:

"destinationStore": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID"
...
"https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/SOURCE_DATASET_ID/dicomStores/SOURCE_DICOM_STORE_ID:deidentify"

Os exemplos seguintes mostram como remover a identificação de uma instância DICOM num arquivo DICOM e escrever os dados sem identificação num novo arquivo DICOM. Antes de executar os exemplos, o ID do arquivo DICOM de destino tem de existir.

REST

  1. Desidentifique o conjunto de dados.

    Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:

    • PROJECT_ID: o ID do seu Google Cloud projeto
    • SOURCE_DATASET_LOCATION: a localização do conjunto de dados de origem
    • SOURCE_DATASET_ID: o ID do conjunto de dados que contém os dados a desidentificar
    • DESTINATION_DATASET_ID: o ID do conjunto de dados de destino onde os dados anonimizados são escritos. Tem de existir antes de executar a operação de desidentificação.
    • DESTINATION_DICOM_STORE_ID: o armazenamento DICOM no conjunto de dados de destino. Tem de existir antes de executar a operação de desidentificação.

    Corpo JSON do pedido:

    {
      "destinationStore": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID",
      "config": {
        "dicomTagConfig": {
          "actions": [
            {
              "queries": [
               "PatientName"
              ],
              "keepTag": {}
            }
          ]
        }
      }
    }
    

    Para enviar o seu pedido, escolha uma destas opções:

    curl

    Guarde o corpo do pedido num ficheiro denominado request.json. Execute o seguinte comando no terminal para criar ou substituir este ficheiro no diretório atual:

    cat > request.json << 'EOF'
    {
      "destinationStore": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID",
      "config": {
        "dicomTagConfig": {
          "actions": [
            {
              "queries": [
               "PatientName"
              ],
              "keepTag": {}
            }
          ]
        }
      }
    }
    EOF

    Em seguida, execute o seguinte comando para enviar o seu pedido REST:

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID:deidentify"

    PowerShell

    Guarde o corpo do pedido num ficheiro denominado request.json. Execute o seguinte comando no terminal para criar ou substituir este ficheiro no diretório atual:

    @'
    {
      "destinationStore": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID",
      "config": {
        "dicomTagConfig": {
          "actions": [
            {
              "queries": [
               "PatientName"
              ],
              "keepTag": {}
            }
          ]
        }
      }
    }
    '@  | Out-File -FilePath request.json -Encoding utf8

    Em seguida, execute o seguinte comando para enviar o seu pedido REST:

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method POST `
    -Headers $headers `
    -ContentType: "application/json; charset=utf-8" `
    -InFile request.json `
    -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID:deidentify" | Select-Object -Expand Content
    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 de OPERATION_ID. Precisa deste valor no passo seguinte.

  2. Use o método projects.locations.datasets.operations.get para obter o estado da operação de execução longa.

    Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:

    • PROJECT_ID: o ID do seu Google Cloud projeto
    • SOURCE_DATASET_LOCATION: a localização do conjunto de dados de origem
    • SOURCE_DATASET_ID: o ID do conjunto de dados que contém os dados a desidentificar
    • OPERATION_ID: o ID devolvido pela operação de longa duração

    Para enviar o seu pedido, escolha uma destas opções:

    curl

    Execute o seguinte comando:

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID/operations/OPERATION_ID"

    PowerShell

    Execute o seguinte comando:

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method GET `
    -Headers $headers `
    -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand Content

    Explorador 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.

    O resultado é o seguinte. Quando a resposta contém "done": true, a operação de longa duração terminou.

  3. 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 Content

    Deve receber uma resposta JSON semelhante à seguinte:

    A tabela seguinte mostra como o UID dos estudos, o UID das séries e o UID das instâncias foram alterados:
      Metadados da instância original Metadados de instâncias anonimizados
    UID dos estudos (0020000D) 2.25.70541616638819138568043293671559322355 1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763
    UID da série (0020000E) 1.2.276.0.7230010.3.1.3.8323329.78.1531234558.523694 1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710
    UID das instâncias (00080018) 1.2.276.0.7230010.3.1.4.8323329.78.1539083058.523695 1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029
  4. Com os novos valores, obtenha os metadados da instância.

    Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:

    • PROJECT_ID: o ID do seu Google Cloud projeto
    • DESTINATION_DATASET_ID: o ID do conjunto de dados de destino onde os dados anonimizados são escritos
    • SOURCE_DATASET_LOCATION: a localização do conjunto de dados de origem
    • DESTINATION_DICOM_STORE_ID: o ID do armazenamento DICOM no conjunto de dados de destino. Este é o mesmo que o ID do arquivo DICOM no conjunto de dados de origem.

    Para enviar o seu pedido, escolha uma destas opções:

    curl

    Execute o seguinte comando:

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763/series/1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710/instances/1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029/metadata"

    PowerShell

    Execute o seguinte comando:

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method GET `
    -Headers $headers `
    -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763/series/1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710/instances/1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029/metadata" | Select-Object -Expand Content

    Explorador 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.

    A saída contém os novos metadados. Pode comparar os novos metadados com os metadados originais para ver o efeito da transformação.

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:

  1. 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]
  2. 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.

  3. 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

  1. Desidentifique o conjunto de dados.

    Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:

    • PROJECT_ID: o ID do seu Google Cloud projeto
    • LOCATION: a localização do conjunto de dados
    • SOURCE_DATASET_ID: o ID do conjunto de dados que contém os dados a desidentificar
    • DESTINATION_DATASET_ID: o ID do conjunto de dados de destino onde os dados anonimizados são escritos
    • SOURCE_DICOM_STORE_ID: o ID do armazenamento DICOM que contém os dados a desidentificar
    • DESTINATION_DICOM_STORE_ID: o ID do armazenamento DICOM no conjunto de dados de destino
    • BUCKET/PATH/TO/FILE: a localização do ficheiro de filtro num contentor do Cloud Storage

    Corpo JSON do pedido:

    {
      "destinationStore": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID",
      "config": {
        "dicom": {
          "filterProfile": "DEIDENTIFY_TAG_CONTENTS"
        },
        "image": {
          "textRedactionMode": "REDACT_ALL_TEXT"
        }
      },
      "filterConfig": {
        "resourcePathGcsUri": "gs://BUCKET/PATH/TO/FILE"
      }
    }
    

    Para enviar o seu pedido, escolha uma destas opções:

    curl

    Guarde o corpo do pedido num ficheiro denominado request.json. Execute o seguinte comando no terminal para criar ou substituir este ficheiro no diretório atual:

    cat > request.json << 'EOF'
    {
      "destinationStore": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID",
      "config": {
        "dicom": {
          "filterProfile": "DEIDENTIFY_TAG_CONTENTS"
        },
        "image": {
          "textRedactionMode": "REDACT_ALL_TEXT"
        }
      },
      "filterConfig": {
        "resourcePathGcsUri": "gs://BUCKET/PATH/TO/FILE"
      }
    }
    EOF

    Em seguida, execute o seguinte comando para enviar o seu pedido REST:

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/SOURCE_DATASET_ID/dicomStores/SOURCE_DICOM_STORE_ID:deidentify"

    PowerShell

    Guarde o corpo do pedido num ficheiro denominado request.json. Execute o seguinte comando no terminal para criar ou substituir este ficheiro no diretório atual:

    @'
    {
      "destinationStore": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID",
      "config": {
        "dicom": {
          "filterProfile": "DEIDENTIFY_TAG_CONTENTS"
        },
        "image": {
          "textRedactionMode": "REDACT_ALL_TEXT"
        }
      },
      "filterConfig": {
        "resourcePathGcsUri": "gs://BUCKET/PATH/TO/FILE"
      }
    }
    '@  | Out-File -FilePath request.json -Encoding utf8

    Em seguida, execute o seguinte comando para enviar o seu pedido REST:

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method POST `
    -Headers $headers `
    -ContentType: "application/json; charset=utf-8" `
    -InFile request.json `
    -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/SOURCE_DATASET_ID/dicomStores/SOURCE_DICOM_STORE_ID:deidentify" | Select-Object -Expand Content
    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.

  2. Use o método projects.locations.datasets.operations.get para obter o estado da operação de execução longa.

    Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:

    • PROJECT_ID: o ID do seu Google Cloud projeto
    • SOURCE_DATASET_LOCATION: a localização do conjunto de dados de origem
    • SOURCE_DATASET_ID: o ID do conjunto de dados que contém os dados a desidentificar
    • OPERATION_ID: o ID devolvido pela operação de longa duração

    Para enviar o seu pedido, escolha uma destas opções:

    curl

    Execute o seguinte comando:

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID/operations/OPERATION_ID"

    PowerShell

    Execute o seguinte comando:

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method GET `
    -Headers $headers `
    -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand Content

    Explorador 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.

    O resultado é o seguinte. Quando a resposta contém "done": true, a operação de longa duração terminou.

  3. 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 Content

    Deve receber uma resposta JSON semelhante à seguinte:

    A tabela seguinte mostra como o UID dos estudos, o UID das séries e o UID das instâncias foram alterados:
      Metadados da instância original Metadados de instâncias anonimizados
    UID dos estudos (0020000D) 2.25.70541616638819138568043293671559322355 1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763
    UID da série (0020000E) 1.2.276.0.7230010.3.1.3.8323329.78.1531234558.523694 1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710
    UID das instâncias (00080018) 1.2.276.0.7230010.3.1.4.8323329.78.1539083058.523695 1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029
  4. Com os novos valores, obtenha os metadados da instância.

    Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:

    • PROJECT_ID: o ID do seu Google Cloud projeto
    • DESTINATION_DATASET_ID: o ID do conjunto de dados de destino onde os dados anonimizados são escritos
    • SOURCE_DATASET_LOCATION: a localização do conjunto de dados de origem
    • DESTINATION_DICOM_STORE_ID: o ID do armazenamento DICOM no conjunto de dados de destino. Este é o mesmo que o ID do arquivo DICOM no conjunto de dados de origem.

    Para enviar o seu pedido, escolha uma destas opções:

    curl

    Execute o seguinte comando:

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763/series/1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710/instances/1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029/metadata"

    PowerShell

    Execute o seguinte comando:

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method GET `
    -Headers $headers `
    -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763/series/1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710/instances/1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029/metadata" | Select-Object -Expand Content

    Explorador 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.

    A saída contém os novos metadados. Pode comparar os novos metadados com os metadados originais para ver o efeito da transformação.

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.