Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este pacote contém uma biblioteca de clientes para o serviço de desidentificação nos Serviços de Dados de Integridade do Azure que permite aos usuários marcar, redigir ou substituir dados de saúde contendo PHI (Informações de Saúde Protegidas).
Use a biblioteca de cliente para o serviço de desidentificação para:
- Descubra PHI em texto não estruturado
- Substitua PHI em texto não estruturado por valores de espaço reservado
- Substitua PHI em texto não estruturado por valores substitutos realistas
- Gerenciar trabalhos assíncronos para desidentificar documentos no Armazenamento do Azure
Por favor, confie muito em nossos documentos do cliente REST para usar esta biblioteca.
Use a biblioteca de cliente para o serviço de desidentificação para:
- Descubra PHI em texto não estruturado
- Substitua PHI em texto não estruturado por valores de espaço reservado
- Substitua PHI em texto não estruturado por valores substitutos realistas
- Gerenciar trabalhos assíncronos para desidentificar documentos no Armazenamento do Azure
Links de chave:
- código-fonte
- do NPM (pacote
) - Documentação de referência da API
- [Documentação do produto][product_documentation]
Como começar
Ambientes com suporte no momento
- Versões LTS do Node.js
- Versões mais recentes do Safari, Chrome, Edge e Firefox.
Pré-requisitos
- Você precisa de uma assinatura do Azure para usar esse pacote.
- Implantar o serviço de desidentificação.
- Configure o RBAC (controle de acesso baseado em função) do Azure para as operações que você executará.
Instalar o pacote @azure-rest/health-deidentification
Instalar a biblioteca com npm:
npm install @azure-rest/health-deidentification
Criar e autenticar um DeidentificationClient
Você pode autenticar com a ID do Microsoft Entra usando a [Biblioteca de Identidades do Azure][azure_identity]. Para usar o provedor [DefaultAzureCredential][defaultazurecredential] mostrado abaixo ou outros provedores de credenciais fornecidos com o SDK do Azure, instale o @azure/identity pacote:
npm install @azure/identity
Após a instalação, você pode escolher qual tipo de de credencial
Defina os valores da ID do cliente, da ID do locatário e do segredo do cliente do aplicativo AAD como variáveis de ambiente: AZURE_CLIENT_ID, AZURE_TENANT_ID, AZURE_CLIENT_SECRET.
Você precisará de uma URL de serviço para instanciar um objeto de cliente. Você pode encontrar a URL de serviço de um recurso específico no portal do Azure ou usando a CLI. Aqui está um exemplo de configuração de uma variável de ambiente no Bash usando a CLI do Azure:
# Get the service URL for the resource
export DEID_SERVICE_ENDPOINT=$(az deidservice show --name "<resource-name>" --resource-group "<resource-group-name>" --query "properties.serviceUrl")
Crie um cliente com o endpoint e a credencial:
import { DefaultAzureCredential } from "@azure/identity";
import DeidentificationClient from "@azure-rest/health-deidentification";
const credential = new DefaultAzureCredential();
const serviceEndpoint = process.env.DEID_SERVICE_ENDPOINT || "https://example.api.deid.azure.com";
const client = DeidentificationClient(serviceEndpoint, credential);
Conceitos principais
Operações de desidentificação:
Dado um texto de entrada, o serviço de desidentificação pode executar três operações principais:
-
Tagretorna a categoria e o local dentro do texto das entidades PHI detectadas. -
Redactretorna o texto de saída em que as entidades PHI detectadas são substituídas por texto de espaço reservado. Por exemplo,Johnsubstituído por[name]. -
Surrogateretorna o texto de saída em que as entidades PHI detectadas são substituídas por valores de substituição realistas. Por exemplo,My name is John Smithpode se tornarMy name is Tom Jones.
Pontos de extremidade disponíveis
Existem duas maneiras de interagir com o serviço de desidentificação. Você pode enviar texto diretamente ou criar trabalhos para desidentificar documentos no Armazenamento do Azure.
Você pode desidentificar o texto diretamente usando o DeidentificationClient:
import { DefaultAzureCredential } from "@azure/identity";
import DeidentificationClient, {
DeidentificationContent,
isUnexpected,
} from "@azure-rest/health-deidentification";
const credential = new DefaultAzureCredential();
const serviceEndpoint = process.env.DEID_SERVICE_ENDPOINT || "https://example.api.deid.azure.com";
const client = DeidentificationClient(serviceEndpoint, credential);
const content: DeidentificationContent = {
inputText: "Hello John!",
};
const response = await client.path("/deid").post({ body: content });
if (isUnexpected(response)) {
throw response.body.error;
}
console.log(response.body.outputText); // Hello, Tom!
Para desidentificar documentos no Armazenamento do Azure, você precisará de uma conta de armazenamento com um contêiner para o qual o serviço de desidentificação tenha recebido uma função apropriada. Consulte Tutorial: Configurar o Armazenamento do Azure para desidentificar documentos para pré-requisitos e opções de configuração. Você pode carregar os arquivos na [pasta de dados de teste][test_data] como blobs, como: https://<storageaccount>.blob.core.windows.net/<container>/example_patient_1/doctor_dictation.txt.
Você pode criar trabalhos para desidentificar documentos na conta de armazenamento do Azure de origem e no contêiner com um prefixo de entrada opcional. Se não houver nenhum prefixo de entrada, todos os blobs no contêiner serão desidentificados. Os blobs do Armazenamento do Azure podem ser usados / no nome do blob para emular um layout de pasta ou diretório. Para obter mais informações sobre nomenclatura de blob, consulte [Nomeando e referenciando contêineres, blobs e metadados][blob_names]. Os arquivos que você carregou podem ser desidentificados fornecendo example_patient_1 como prefixo de entrada:
<container>/
├── example_patient_1/
└──doctor_dictation.txt
└──row-2-data.txt
└──visit-summary.txt
Sua conta de Armazenamento do Azure de destino e o contêiner em que os documentos serão gravados podem ser os mesmos da origem ou de uma conta ou contêiner diferente. Nos exemplos abaixo, a conta de origem e de destino e o contêiner são os mesmos. Você pode especificar um prefixo de saída para indicar onde os documentos de saída do trabalho devem ser gravados (o padrão é _output). Cada documento processado pelo trabalho terá o mesmo nome de blob relativo com o prefixo de entrada substituído pelo prefixo de saída:
<container>/
├── example_patient_1/
└──doctor_dictation.txt
└──row-2-data.txt
└──visit-summary.txt
├── _output/
└──doctor_dictation.txt
└──row-2-data.txt
└──visit-summary.txt
Defina as seguintes variáveis de ambiente, atualizando a conta de armazenamento e o contêiner com valores reais:
export AZURE_STORAGE_ACCOUNT_LOCATION="https://<storageaccount>.blob.core.windows.net/<container>"
export INPUT_PREFIX="example_patient_1"
export OUTPUT_PREFIX="_output"
Você pode criar e visualizar o status do trabalho usando o cliente:
import { DefaultAzureCredential } from "@azure/identity";
import DeidentificationClient, {
DeidentificationJob,
DeidentifyDocumentsDefaultResponse,
isUnexpected,
getLongRunningPoller,
} from "@azure-rest/health-deidentification";
const credential = new DefaultAzureCredential();
const serviceEndpoint =
process.env["DEID_SERVICE_ENDPOINT"] || "https://example.api.deid.azure.com";
const storageLocation = `https://${process.env["STORAGE_ACCOUNT_NAME"]}.blob.core.windows.net/${process.env["STORAGE_CONTAINER_NAME"]}`;
const inputPrefix = "example_patient_1";
const outputPrefix = process.env["OUTPUT_PREFIX"] || "_output";
const client = DeidentificationClient(serviceEndpoint, credential);
const jobName = "sample-job-" + new Date().getTime().toString().slice(-8);
const job: DeidentificationJob = {
operation: "Surrogate",
sourceLocation: { location: storageLocation, prefix: inputPrefix },
targetLocation: { location: storageLocation, prefix: outputPrefix },
};
const response = (await client
.path("/jobs/{name}", jobName)
.put({ body: job })) as DeidentifyDocumentsDefaultResponse;
if (isUnexpected(response)) {
throw response.body.error;
}
const poller = await getLongRunningPoller(client, response);
const finalOutput = await poller.pollUntilDone();
console.log(finalOutput.body);
Próximas etapas
Encontrou um bug ou tem feedback? Levante um problema com o rótulo de Desidentificação de Saúde .
Resolução de problemas
-
Não é possível acessar o armazenamento de origem ou de destino
- Certifique-se de criar seu serviço deid com uma identidade gerenciada atribuída pelo sistema
- Verifique se sua conta de armazenamento concedeu permissões a essa identidade gerenciada
Registro
Habilitar o registro em log pode ajudar a descobrir informações úteis sobre falhas. Para ver um log de solicitações e respostas HTTP, defina a variável de ambiente AZURE_LOG_LEVEL como info. Como alternativa, o registro em log pode ser habilitado em runtime chamando setLogLevel no @azure/logger:
import { setLogLevel } from "@azure/logger";
setLogLevel("info");
Para obter instruções mais detalhadas sobre como habilitar logs, você pode examinar os documentos do pacote @azure/agente.
Azure SDK for JavaScript