Szybki start: biblioteka klienta anonimizacji danych w usłudze Azure Health dla platformy .NET

Rozpocznij pracę z biblioteką klienta deidentyfikowania usługi Azure Health dla platformy .NET, aby usunąć identyfikację danych kondycji. Wykonaj następujące kroki, aby zainstalować pakiet i wypróbować przykładowy kod dla podstawowych zadań.

Dokumentacja referencyjna interfejsu | APIKod | Pakiet (NuGet) | Więcej przykładów w usłudze GitHub

Wymagania wstępne

  • Konto platformy Azure z aktywną subskrypcją. Utwórz konto bezpłatnie.
  • Konto usługi Azure Storage (tylko dla przepływu pracy zadania).

Konfigurowanie

Utwórz usługę anonimizacji

Usługa usuwania identyfikacji udostępnia adres URL punktu końcowego. Ten adres URL punktu końcowego może być używany jako interfejs API REST lub zestaw SDK.

  1. Instalowanie interfejsu wiersza polecenia platformy Azure

  2. Tworzenie zasobu usługi usuwania identyfikacji

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

Przypisywanie ról RBAC do usługi anonimizacji

Musimy przypisać rolę do naszej usługi anonimizacji danych, żeby uzyskać uprawnienia do wykonywania działań w tym przewodniku szybkiego startu.

Ponieważ używamy punktów końcowych czasu rzeczywistego i zadań, przypisujemy role DeID Data Owner.

Aby dowiedzieć się, jak przypisać tę rolę do usługi dekonidentyfikacji, zapoznaj się z tematem Zarządzanie dostępem do usługi dekonidentyfikacji za pomocą kontroli dostępu opartej na rolach (RBAC) platformy Azure w usługach Azure Health Data Services

Tworzenie konta usługi Azure Storage

  1. Instalowanie interfejsu wiersza polecenia platformy Azure

  2. Tworzenie konta usługi Azure Storage

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

Autoryzowanie usługi usuwania identyfikacji na koncie usługi Azure Storage

  • Przyznaj usłudze deidentyfikacji dostęp do konta magazynowego

     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
    

Instalowanie pakietu

Biblioteka klienta jest dostępna w NuGet jako pakiet Azure.Health.Deidentification.

  1. Instalowanie pakietu

    dotnet add package Azure.Health.Deidentification
    
  2. Ponadto zainstaluj pakiet tożsamości platformy Azure, jeśli nie został jeszcze zainstalowany.

    dotnet add package Azure.Identity
    

Model obiektów

  • DeidentificationClient jest odpowiedzialny za komunikację między zestawem SDK a naszym punktem końcowym usługi deidentyfikacyjnej.
  • DeidentificationContent służy do dekonfidentyfikacji ciągów.
  • Funkcja DeidentificationJob służy do tworzenia zadań w celu anulowania identyfikowania dokumentów na koncie usługi Azure Storage.
  • PhiEntity to zakres i kategoria pojedynczej jednostki PHI wykrytej za pośrednictwem tagu OperationType.

Przykłady kodu

Tworzenie klienta anonimizacji

Przed utworzeniem klienta należy znaleźć adres URL punktu końcowego usługi usuwania identyfikacji.

Adres URL punktu końcowego można znaleźć za pomocą interfejsu wiersza polecenia platformy Azure:

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

Następnie możesz utworzyć klienta przy użyciu tej wartości.

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

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

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

Anulowanie identyfikowania ciągu

Ta funkcja umożliwia odidentyfikowanie dowolnego ciągu, który jest w pamięci.

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

Tagowanie ciągu

Tagowanie można wykonać w taki sam sposób i anonimizować, zmieniając OperationType.

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

DeidentificationResult result = await client.DeidentifyAsync(content);

Utwórz zadanie anonimizacji

Ta funkcja umożliwia anulowanie identyfikowania wszystkich plików filtrowanych za pomocą prefiksu na koncie usługi Azure Blob Storage.

Aby utworzyć zadanie, potrzebujemy adresu URL do punktu końcowego obiektu blob konta usługi Azure Storage.

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

Teraz możemy utworzyć pracę. W tym przykładzie użyto folder1/ jako prefiksu. Zadanie usuwa wszystkie dokumenty zgodne z tym prefiksem i zapisują zdeidentyfikową wersję z prefiksem 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;

Pobierz stan zadania deidentyfikacji

Po utworzeniu zadania można wyświetlić stan i inne szczegóły zadania.

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

Uruchamianie kodu

Po zaktualizowaniu kodu w projekcie możesz go uruchomić przy użyciu:

dotnet run

Czyszczenie zasobów

Usuń usługę anonimizacji

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

Usuwanie konta usługi Azure Storage

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

Usunięcie przypisania roli

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

Rozwiązywanie problemów

Nie można uzyskać dostępu do magazynu źródłowego lub docelowego

Upewnij się, że podano uprawnienia, a tożsamość zarządzana dla usługi usuwania identyfikacji jest poprawnie skonfigurowana.

Zobacz Autoryzacja usługi usuwania identyfikacji na koncie usługi Azure Storage

Zadanie nie powiodło się ze stanem PartialFailed

Możesz użyć funkcji GetJobDocuments na DeidentificationClient, aby wyświetlać komunikaty o błędach dla każdego pliku.

Zobacz przykład

Następne kroki

W tym szybkim instruktażu nauczyłeś się:

  • Jak utworzyć usługę deidentyfikacji i przypisać rolę na koncie magazynowym.
  • Jak utworzyć klienta dezydentyfikacji
  • Jak anonimizować ciągi i tworzyć zadania dotyczące dokumentów na koncie magazynowym.