Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Этот пакет содержит клиентскую библиотеку для службы деидентификации в Azure Health Data Services, которая позволяет пользователям помечать, редактировать или заменять медицинские данные, содержащие защищенную медицинскую информацию (PHI).
Используйте клиентскую библиотеку для службы деидентификации, чтобы:
- Обнаружение PHI в неструктурированном тексте
- Замена PHI в неструктурированном тексте значениями-заполнителями
- Замена PHI в неструктурированном тексте реалистичными суррогатными значениями
- Управление асинхронными заданиями для отмены идентификации документов в службе хранилища Azure
Пожалуйста, в значительной степени полагайтесь на нашу документацию по клиенту REST для использования этой библиотеки.
Используйте клиентскую библиотеку для службы деидентификации, чтобы:
- Обнаружение PHI в неструктурированном тексте
- Замена PHI в неструктурированном тексте значениями-заполнителями
- Замена PHI в неструктурированном тексте реалистичными суррогатными значениями
- Управление асинхронными заданиями для отмены идентификации документов в службе хранилища Azure
Ключевые ссылки:
- исходный код.
- пакета
(NPM) - Справочная документация по API
- [Документация по продукту][product_documentation]
Начало работы
Поддерживаемые в настоящее время среды
- Версии Node.js LTS
- Последние версии Safari, Chrome, Edge и Firefox.
Предпосылки
- Для использования этого пакета требуется подписка Azure .
- Разверните службу отмены идентификации.
- Настройте управление доступом на основе ролей Azure (RBAC) для операций, которые вы будете выполнять.
Установите пакет @azure-rest/health-deidentification.
Установите библиотеку с помощью npm:
npm install @azure-rest/health-deidentification
Создание и проверка подлинности DeidentificationClient
Вы можете пройти проверку подлинности с помощью идентификатора Microsoft Entra с помощью [библиотеки удостоверений Azure][azure_identity]. Чтобы использовать показанный ниже поставщик [DefaultAzureCredential][defaultazurecredential] или другие поставщики учетных данных, предоставляемые с пакетом Azure SDK, установите пакет:@azure/identity
npm install @azure/identity
После установки можно выбрать тип учетных данных из @azure/identity использования.
Например, DefaultAzureCredential можно использовать для проверки подлинности клиента.
Задайте значения идентификатора клиента, идентификатора клиента и секрета клиента приложения AAD в качестве переменных среды: AZURE_CLIENT_ID, AZURE_TENANT_ID, AZURE_CLIENT_SECRET.
Для создания экземпляра клиентского объекта потребуется URL службы . URL-адрес службы для конкретного ресурса можно найти на портале Azure или с помощью Azure CLI. Ниже приведен пример установки переменной среды в Bash с помощью Azure CLI:
# 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")
Создайте клиент с конечной точкой и учетными данными:
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);
Основные понятия
Операции по обезличиванию:
Получив входной текст, служба деидентификации может выполнить три основные операции:
-
Tagвозвращает категорию и расположение в тексте обнаруженных объектов PHI. -
Redactвозвращает текст вывода, в котором обнаруженные объекты PHI заменяются текстом-заполнителем. НапримерJohn, заменено на[name]. -
Surrogateвозвращает текст вывода, в котором обнаруженные объекты PHI заменяются реалистичными значениями замены. Например,My name is John Smithможет статьMy name is Tom Jones.
доступные конечные точки;
Существует два способа взаимодействия с сервисом деидентификации. Вы можете отправлять текст напрямую или создавать задания для обезличивания документов в службе хранилища Azure.
Вы можете обезличить текст напрямую с помощью команды 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!
Чтобы обезличить документы в службе хранилища Azure, вам потребуется учетная запись хранения с контейнером, для которого службе обезличивания была предоставлена соответствующая роль.
Ознакомьтесь с учебным пособием: Настройка службы хранилища Azure для отмены идентификации документов для предварительных требований и параметров конфигурации. Вы можете загрузить файлы в [папка тестовых данных][test_data] в виде больших двоичных объектов, например: https://<storageaccount>.blob.core.windows.net/<container>/example_patient_1/doctor_dictation.txt.
Вы можете создавать задания для обезличивания документов в исходной учетной записи хранения Azure и контейнере с необязательным входным префиксом. Если входной префикс отсутствует, все большие двоичные объекты в контейнере будут обезличены. Большие двоичные объекты службы хранилища Azure могут использоваться / в имени большого двоичного объекта для эмуляции макета папки или каталога. Дополнительные сведения об именовании BLOB-объектов см. в разделе [Именование контейнеров, BLOB-объектов и метаданных][blob_names]. Загруженные вами файлы можно обезличить, указав example_patient_1 в качестве входного префикса:
<container>/
├── example_patient_1/
└──doctor_dictation.txt
└──row-2-data.txt
└──visit-summary.txt
Целевая учетная запись хранения Azure и контейнер, в который будут записываться документы, могут совпадать с исходной учетной записью или другой учетной записью или контейнером. В приведенных ниже примерах исходный и целевой аккаунт и контейнер совпадают. Можно указать префикс вывода, указывающий, куда должны быть записаны выходные документы задания (по умолчанию )._output Каждый документ, обрабатываемый заданием, будет иметь одно и то же относительное имя большого двоичного объекта, при этом входной префикс заменен на выходной:
<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
Задайте следующие переменные среды, обновив учетную запись хранения и контейнер реальными значениями:
export AZURE_STORAGE_ACCOUNT_LOCATION="https://<storageaccount>.blob.core.windows.net/<container>"
export INPUT_PREFIX="example_patient_1"
export OUTPUT_PREFIX="_output"
Вы можете создавать и просматривать статус задания с помощью клиента:
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);
Дальнейшие шаги
Нашли ошибку или оставили отзыв? Сообщите о проблеме с меткой Деидентификация здоровья .
Устранение неполадок
-
Не удается получить доступ к исходному или целевому хранилищу
- Убедитесь, что вы создаете службу deid с управляемой идентификацией, назначаемой системой
- Убедитесь, что ваша учетная запись хранения предоставила разрешения для этого управляемого удостоверения
Лесозаготовка
Включение ведения журнала может помочь выявить полезные сведения о сбоях. Чтобы просмотреть журнал HTTP-запросов и ответов, задайте для переменной среды AZURE_LOG_LEVEL значение info. В альтернативном порядке, логирование можно включить во время выполнения, вызвав setLogLevel в @azure/logger:
import { setLogLevel } from "@azure/logger";
setLogLevel("info");
Дополнительные инструкции по включению журналов см. в документации по пакету @azure/loger.
Azure SDK for JavaScript