Sdílet prostřednictvím


Rychlý start: Klientská knihovna pro deidentifikaci služby Azure Health pro .NET

Začněte s klientskou knihovnou pro deidentifikaci služby Azure Health pro .NET, která umožňuje deidentifikovat data o stavu. Pomocí těchto kroků nainstalujte balíček a vyzkoušejte si ukázkový kód pro základní úlohy.

Referenční dokumentace | k rozhraní APIZdrojový kód | knihovnyBalíček (NuGet) | Další ukázky na GitHubu

Požadavky

  • Účet Azure s aktivním předplatným. Vytvoření účtu zdarma
  • Účet služby Azure Storage (pouze pro pracovní postup úlohy).

Instalace

Vytvoření služby pro anonimizaci

Služba de-identifikace poskytuje adresu URL koncového bodu. Tuto adresu URL koncového bodu je možné využít jako rozhraní REST API nebo se sadou SDK.

  1. Instalace Azure CLI

  2. Vytvoření prostředku služby deidentifikace

    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\"}"
    

Přiřazení rolí RBAC ke službě deidentifikací

Potřebujeme přiřadit roli naší službě pro de-identifikaci, abychom měli oprávnění k provádění akcí v tomto rychlém průvodci.

Vzhledem k tomu, že používáme koncové body v reálném čase a koncové body úloh, přiřadíme DeID Data Owner role.

Informace o tom, jak přiřadit tuto roli vaší službě pro deidentifikaci, naleznete v tématu: Správa přístupu ke službě pro deidentifikaci pomocí řízení přístupu na základě role Azure (RBAC) ve službě Azure Health Data Services

Vytvoření účtu služby Azure Storage

  1. Instalace Azure CLI

  2. Vytvoření účtu služby Azure Storage

    STORAGE_ACCOUNT_NAME="<NewStorageAccountName>"
    az storage account create --name $STORAGE_ACCOUNT_NAME --resource-group $RESOURCE_GROUP_NAME --location $REGION
    

Autorizace deidentifikací služby v účtu Azure Storage

  • Poskytněte službě de-identifikace přístup k vašemu účtu úložiště

     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
    

Nainstalujte balíček .

Klientská knihovna je k dispozici prostřednictvím Balíčku NuGet Azure.Health.Deidentification .

  1. Instalace balíčku

    dotnet add package Azure.Health.Deidentification
    
  2. Pokud ještě není nainstalovaný, nainstalujte balíček Azure Identity.

    dotnet add package Azure.Identity
    

Objektový model

  • DeidentificationClient zodpovídá za komunikaci mezi sadou SDK a koncovým bodem služby deidentifikace.
  • DeidentificationContent se používá k deidentifikaci řetězce.
  • DeidentificationJob se používá k vytváření úloh pro deidentifikování dokumentů v účtu úložiště Azure.
  • PhiEntity je rozsah a kategorie jedné entity PHI zjištěná prostřednictvím tag OperationType.

Příklady kódu

Vytvořte klienta pro deidentifikaci

Než budete moct vytvořit klienta, musíte najít adresu URL koncového bodu deidentifikované služby.

Adresu URL koncového bodu najdete pomocí Azure CLI:

az resource show -n $DEID_SERVICE_NAME -g $RESOURCE_GROUP_NAME  --resource-type microsoft.healthdataaiservices/deidservices --query properties.serviceUrl --output tsv

Pak můžete klienta vytvořit pomocí této hodnoty.

using Azure.Identity;
using Azure.Health.Deidentification;

string serviceEndpoint = "https://example123.api.deid.azure.com";

DeidentificationClient client = new(
    new Uri(serviceEndpoint),
    new DefaultAzureCredential()
);

Anonymizovat řetězec

Tato funkce umožňuje zrušit identifikaci libovolného řetězce, který máte v paměti.

DeidentificationContent content = new("SSN: 123-04-5678");
DeidentificationResult result = await client.DeidentifyAsync(content);

Označit řetězec

Značkování lze provést stejným způsobem a zrušením identifikace změnou .OperationType

DeidentificationContent content = new("SSN: 123-04-5678");
content.Operation = OperationType.Tag;

DeidentificationResult result = await client.DeidentifyAsync(content);

Vytvořit úlohu pro deidentifikaci

Tato funkce umožňuje deidentifikovat všechny soubory filtrované prostřednictvím předpony v rámci účtu služby Azure Blob Storage.

K vytvoření úlohy potřebujeme URL adresu koncového bodu blob účtu úložiště Azure.

az resource show -n $STORAGE_ACCOUNT_NAME -g $RESOURCE_GROUP_NAME  --resource-type Microsoft.Storage/storageAccounts --query properties.primaryEndpoints.blob --output tsv

Teď můžeme vytvořit úlohu. Tento příklad používá folder1/ jako předponu. Úloha deidentifikuje jakýkoli dokument, který odpovídá této předponě, a zapíše jeho deidentifikovanou verzi s předponou 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;

Získání stavu úlohy deidentifikace

Po vytvoření úlohy můžete zobrazit stav a další podrobnosti úlohy.

DeidentificationJob job = client.GetJob("my-job-1").Value;

Spuštění kódu

Po aktualizaci kódu v projektu ho můžete spustit takto:

dotnet run

Upravte zdroje

Smazat službu deidentifikace

az resource delete -n $DEID_SERVICE_NAME -g $RESOURCE_GROUP_NAME  --resource-type microsoft.healthdataaiservices/deidservices

Odstranění účtu služby Azure Storage

az resource show -n $STORAGE_ACCOUNT_NAME -g $RESOURCE_GROUP_NAME  --resource-type Microsoft.Storage/storageAccounts

Odstranit přiřazení role

az role assignment delete --assignee $DEID_SERVICE_PRINCIPAL_ID --role "Storage Blob Data Contributor" --scope $STORAGE_ACCOUNT_ID

Řešení problémů

Nejde získat přístup ke zdrojovému nebo cílovému úložišti

Ujistěte se, že jsou oprávnění udělena a spravovaná identita pro deidentifikační službu je správně nastavená.

Přečtěte si téma Autorizace deidentifikací služby v účtu Azure Storage.

Úloha selhala se stavem PartialFailed

Funkci GetJobDocuments na DeidentificationClient můžete využít k zobrazení chybových zpráv jednotlivých souborů.

Viz ukázka

Další kroky

V tomto rychlém průvodci jste se naučili:

  • Jak vytvořit službu pro anonymizaci dat a přiřadit roli účtu úložiště.
  • Jak vytvořit klienta pro anonimizaci dat
  • Jak deidentifikovat řetězce a vytvářet úlohy v dokumentech v rámci účtu úložiště