Краткое руководство: Клиентская библиотека деидентификации Azure Health для .NET

Начните работу с клиентской библиотекой деидентификации данных о здоровье Azure для .NET, чтобы деидентифицировать ваши медицинские данные. Выполните приведенные здесь действия, чтобы установить пакет и протестировать пример кода для выполнения базовых задач.

Справочная документация по | APIИсходный код | библиотекиПакет (NuGet) | Дополнительные примеры на GitHub

Предпосылки

Настройка

Создание службы отмены идентификации

Служба деидентификации предоставляет URL-адрес конечной точки. Этот URL-адрес конечной точки можно использовать в качестве REST API или с пакетом SDK.

  1. Установка интерфейса командной строки Azure

  2. Создать ресурс службы деидентификации

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

Назначение ролей RBAC для службы деидентификации

Нам нужно назначить роль нашей службе деидентификации, чтобы у нас были разрешения на выполнение действий в этом базовом руководстве.

Поскольку мы используем конечные точки в режиме реального времени и задания, мы назначаем роли DeID Data Owner.

Чтобы узнать, как назначить эту роль для службы отмены идентификации, ознакомьтесь с материалом: «Управление доступом к службе отмены идентификации с помощью управления доступом на основе ролей Azure (RBAC) в службах данных Azure Health Data Services»

Создание учетной записи хранения Azure

  1. Установка интерфейса командной строки Azure

  2. Создание учетной записи хранения Azure

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

Авторизация службы отмены идентификации в учетной записи хранения Azure

  • Предоставьте службе де-идентификации доступ к вашему аккаунту хранения

     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
    

Установите пакет

Клиентская библиотека доступна через NuGet в качестве Azure.Health.Deidentification пакета.

  1. Установка пакета

    dotnet add package Azure.Health.Deidentification
    
  2. Кроме того, установите пакет удостоверений Azure, если он еще не установлен.

    dotnet add package Azure.Identity
    

Объектная модель

Примеры кода

Создание клиента отмены идентификации

Прежде чем создать клиент, необходимо найти URL-адрес конечной точки службы отмены идентификации.

URL-адрес конечной точки можно найти с помощью Azure CLI:

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

Затем можно создать клиент с помощью этого значения.

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

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

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

Отмена идентификации строки

Эта функция позволяет деидентифицировать любую строку, которая имеется в памяти.

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

Тег строки

Маркировку можно осуществлять таким же образом, а деперсонификацию — изменением OperationType.

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

DeidentificationResult result = await client.DeidentifyAsync(content);

Задание по обезличиванию данных

Эта функция позволяет деидентифицировать все файлы, отфильтрованные с помощью префикса, в учетной записи хранения BLOB-объектов Azure.

Чтобы создать задание, нам нужен URL-адрес конечной точки BLOB-объекта учетной записи хранения Azure.

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

Теперь можно создать задание. В этом примере используется folder1/ префикс. Задание дедентифицирует любой документ, соответствующий этому префиксу, и записывает деидентированную версию с 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;

Получение состояния задания отмены идентификации

После создания задания можно просмотреть состояние и другие сведения о задании.

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

Выполнение кода

После обновления кода в проекте его можно запустить с помощью:

dotnet run

Очистите ресурсы

Удаление службы деидентификации

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

Удаление учетной записи хранения Azure

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

Удаление назначения роли

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

Устранение неполадок

Не удается получить доступ к источнику или целевому хранилищу

Убедитесь, что предоставлены разрешения, а управляемая идентичность для службы деидентификации правильно настроена.

См. статью "Авторизация службы отмены идентификации" в учетной записи хранения Azure

Сбой задания с состоянием PartialFailed

Вы можете использовать функцию GetJobDocuments на DeidentificationClient для просмотра сообщений об ошибках по каждому файлу.

См . пример

Дальнейшие действия

В этом вводном руководстве вы узнали:

  • Как создать службу отмены идентификации и назначить роль в учетной записи хранения.
  • Как создать клиента для деидентификации
  • Как обезличивать строки и создавать задачи для обработки документов в хранилище.