Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Attività iniziali con la libreria client di de-identificazione di Azure Health per .NET per deidentificare i dati sulla salute. Seguire questa procedura per installare il pacchetto e provare il codice di esempio per le attività di base.
Documentazione | Codice sorgente | della libreriaPacchetto (NuGet) | Altri esempi su GitHub
Prerequisiti
- Un account Azure con una sottoscrizione attiva. Creare un account gratuito.
- Un account di archiviazione di Azure (solo per il flusso di lavoro dell'attività).
Configurazione
Creare un servizio di de-identificazione
Un servizio di de-identificazione ti fornisce un URL di endpoint. Questo URL dell'endpoint può essere usato come API REST o con un SDK.
Installare l' interfaccia della riga di comando di Azure
Creare una risorsa del servizio di de-identificazione
REGION="<Region>" RESOURCE_GROUP_NAME="<ResourceGroupName>" DEID_SERVICE_NAME="<NewDeidServiceName>" az resource create -g $RESOURCE_GROUP_NAME -n $DEID_SERVICE_NAME --resource-type microsoft.healthdataaiservices/deidservices --is-full-object -p "{\"identity\":{\"type\":\"SystemAssigned\"},\"properties\":{},\"location\":\"$REGION\"}"
Assegnare i ruoli RBAC al servizio di deidentificazione
È necessario assegnare un ruolo al servizio di de-identificazione in modo da avere le autorizzazioni necessarie per eseguire le azioni di questa guida rapida.
Poiché usiamo endpoint in tempo reale e di processo, vengono assegnati i ruoli DeID Data Owner.
Per informazioni su come assegnare questo ruolo al servizio di de-identificazione, vedere Gestire l'accesso al servizio di de-identificazione con il controllo degli accessi in base al ruolo di Azure (RBAC) in Azure Health Data Services
Creare un account di archiviazione di Azure
Installare l' interfaccia della riga di comando di Azure
Creare un account di archiviazione di Azure
STORAGE_ACCOUNT_NAME="<NewStorageAccountName>" az storage account create --name $STORAGE_ACCOUNT_NAME --resource-group $RESOURCE_GROUP_NAME --location $REGION
Autorizzare il servizio di de-identificazione nell'account di archiviazione di Azure
Concedere al servizio di de-identificazione l'accesso all'account di archiviazione
STORAGE_ACCOUNT_ID=$(az storage account show --name $STORAGE_ACCOUNT_NAME --resource-group $RESOURCE_GROUP_NAME --query id --output tsv) DEID_SERVICE_PRINCIPAL_ID=$(az resource show -n $DEID_SERVICE_NAME -g $RESOURCE_GROUP_NAME --resource-type microsoft.healthdataaiservices/deidservices --query identity.principalId --output tsv) az role assignment create --assignee $DEID_SERVICE_PRINCIPAL_ID --role "Storage Blob Data Contributor" --scope $STORAGE_ACCOUNT_ID
Installare il pacchetto
La libreria client è disponibile tramite NuGet, come Azure.Health.Deidentification pacchetto.
Installare il pacchetto
dotnet add package Azure.Health.DeidentificationInstallare anche il pacchetto Azure Identity se non è già installato.
dotnet add package Azure.Identity
Modello a oggetti
- DeidentificationClient è responsabile della comunicazione tra l'SDK e l'endpoint del servizio di de-identificazione.
- DeidentificationContent viene usato per la de-identificazione delle stringhe.
- DeidentificationJob viene usato per creare processi per deidentificare i documenti in un account di archiviazione di Azure.
- PhiEntity è l'intervallo e la categoria di una singola entità PHI rilevata tramite un tag OperationType.
Esempi di codice
- Creare un client di de-identificazione
- De-identificare una stringa
- Contrassegna una stringa
- Creare un processo di deidentificazione
- Ottenere lo stato di un processo di deidentificazione
Creare un client di de-identificazione
Prima di poter creare il client, è necessario trovare l'URL dell'endpoint del servizio di anonimizzazione.
È possibile trovare l'URL dell'endpoint con l'interfaccia della riga di comando di Azure:
az resource show -n $DEID_SERVICE_NAME -g $RESOURCE_GROUP_NAME --resource-type microsoft.healthdataaiservices/deidservices --query properties.serviceUrl --output tsv
È quindi possibile creare il client usando tale valore.
using Azure.Identity;
using Azure.Health.Deidentification;
string serviceEndpoint = "https://example123.api.deid.azure.com";
DeidentificationClient client = new(
new Uri(serviceEndpoint),
new DefaultAzureCredential()
);
De-identificare una stringa
Questa funzione consente di deidentifichire qualsiasi stringa disponibile in memoria.
DeidentificationContent content = new("SSN: 123-04-5678");
DeidentificationResult result = await client.DeidentifyAsync(content);
Contrassegna una stringa
L'assegnazione di tag può essere eseguita nello stesso modo e la de-identificazione avviene modificando il OperationType.
DeidentificationContent content = new("SSN: 123-04-5678");
content.Operation = OperationType.Tag;
DeidentificationResult result = await client.DeidentifyAsync(content);
Creare un processo di deidentificazione
Questa funzione consente di de-identificare tutti i file, filtrati tramite prefisso, all'interno di un account di archiviazione BLOB di Azure.
Per creare il processo, ci serve l'URL dell'endpoint del BLOB di un account di Archiviazione di Azure.
az resource show -n $STORAGE_ACCOUNT_NAME -g $RESOURCE_GROUP_NAME --resource-type Microsoft.Storage/storageAccounts --query properties.primaryEndpoints.blob --output tsv
Adesso possiamo creare il lavoro. In questo esempio viene folder1/ usato come prefisso. Il processo deidentifica qualsiasi documento che corrisponda a questo prefisso e scrive la versione deidentificata con il prefisso output_files/.
using Azure;
Uri storageAccountContainerUri = new("https://exampleStorageAccount.blob.core.windows.net/containerName");
DeidentificationJob job = new(
new SourceStorageLocation(storageAccountContainerUri, "folder1/"),
new TargetStorageLocation(storageAccountContainerUri, "output_files/")
);
job = client.CreateJob(WaitUntil.Started, "my-job-1", job).Value;
Ottenere lo stato di un processo di de-identificazione
Dopo aver creato un'attività, è possibile visualizzare lo stato e altri dettagli dell'attività.
DeidentificationJob job = client.GetJob("my-job-1").Value;
Eseguire il codice
Dopo aver aggiornato il codice nel progetto, è possibile eseguirlo usando:
dotnet run
Pulire le risorse
Eliminare il servizio di de-identificazione
az resource delete -n $DEID_SERVICE_NAME -g $RESOURCE_GROUP_NAME --resource-type microsoft.healthdataaiservices/deidservices
Eliminare l'account di archiviazione di Azure
az resource show -n $STORAGE_ACCOUNT_NAME -g $RESOURCE_GROUP_NAME --resource-type Microsoft.Storage/storageAccounts
Eliminare l'assegnazione di ruolo
az role assignment delete --assignee $DEID_SERVICE_PRINCIPAL_ID --role "Storage Blob Data Contributor" --scope $STORAGE_ACCOUNT_ID
Risoluzione dei problemi
Impossibile accedere all'archiviazione di origine o di destinazione
Verificare che le autorizzazioni siano concesse e che l'identità gestita per il servizio di de-identificazione sia configurata correttamente.
Vedere Autorizzare il servizio di de-identificazione nell'account di archiviazione di Azure
Operazione fallita con stato Parzialmente fallito
È possibile utilizzare la GetJobDocuments funzione in DeidentificationClient per visualizzare i messaggi di errore per ogni file.
Vedere l'esempio
Passaggi successivi
Con questo avvio rapido sarà possibile:
- Come creare un servizio di de-identificazione e assegnare un ruolo in un account di archiviazione.
- Come creare un client di de-identificazione
- Come de-identificare le stringhe e creare processi nei documenti all'interno di un account di archiviazione.