Sdílet prostřednictvím


Rychlý start: Použití klientské knihovny a rozhraní REST API pro analýzu textu v oblasti zdraví

Tento článek obsahuje rychlé návody na analýzu textu pro zdravotnictví, které pomáhají s používáním podporovaných klientských knihoven, jako jsou C#, Java, NodeJS a Python, a rozhraní REST API.

Příspěvek

Microsoft Foundry můžete použít k vyzkoušení sumarizace, aniž byste museli psát kód.

Referenční dokumentace | Další ukázkové balíčky | (NuGet) | Zdrojový kód knihovny

Pomocí tohoto rychlého startu vytvoříte aplikaci Text Analytics pro zdravotnictví s klientskou knihovnou pro .NET. V následujícím příkladu vytvoříte programovací aplikaci C#, která dokáže identifikovat zdravotnické entity, vztahy a asercí, které se objevují v textu.

Požadavky

  • Předplatné Azure: Můžete si ho vytvořit zdarma.
  • Integrované vývojové prostředí (IDE) sady Visual Studio
  • Jakmile budete mít předplatné Azure, vytvořte prostředek Foundry.
    • K připojení aplikace k rozhraní API potřebujete klíč a koncový bod z prostředku, který vytvoříte. Klíč a koncový bod vložíte do kódu později v rychlém startu.
    • K vyzkoušení služby (poskytující 5 000 textových záznamů, každý s 1 000 znaky) můžete použít cenovou úroveň zdarma (Free F0) a později přejít na cenovou úroveň Standard S pro produkční prostředí. Můžete také začít s úrovní Standard S cenového plánu a získat stejnou počáteční kvótu zdarma (5000 textových záznamů), než vám budou účtovány poplatky. Další informace o cenách najdete v tématu Ceny jazyka.

Nastavení

Vytvořit proměnné prostředí

Aby vaše aplikace odesílala požadavky rozhraní API, musí být ověřená. V produkčním prostředí použijte bezpečný způsob ukládání a přístupu k vašim přihlašovacím údajům. V tomto příkladu zapíšete přihlašovací údaje do proměnných prostředí na místním počítači, na kterém běží aplikace.

Pokud chcete nastavit proměnnou prostředí pro klíč prostředku jazyka, otevřete konzolové okno a postupujte podle pokynů pro operační systém a vývojové prostředí.

  • Pokud chcete nastavit proměnnou LANGUAGE_KEY prostředí, nahraďte your-key jedním z klíčů pro váš prostředek.
  • Pokud chcete nastavit proměnnou LANGUAGE_ENDPOINT prostředí, nahraďte your-endpoint koncovým bodem vašeho prostředku.

Důležité

Doporučujeme ověřování Microsoft Entra ID se spravovanými identitami pro prostředky Azure, abyste se vyhnuli ukládání přihlašovacích údajů s aplikacemi, které běží v cloudu.

Používejte klíče rozhraní API s opatrností. Nezahrnujte klíč rozhraní API bezprostředně do kódu a nikdy ho nezveřejňujte veřejně. Pokud používáte klíče rozhraní API, bezpečně je uložte ve službě Azure Key Vault, pravidelně je obměňujte a omezte přístup ke službě Azure Key Vault pomocí řízení přístupu na základě rolí a omezení přístupu k síti. Další informace o bezpečném používání klíčů ROZHRANÍ API ve vašich aplikacích najdete v tématu Klíče rozhraní API se službou Azure Key Vault.

Další informace o zabezpečení služeb AI najdete v tématu Ověřování požadavků na služby Azure AI.

setx LANGUAGE_KEY your-key
setx LANGUAGE_ENDPOINT your-endpoint

Poznámka:

Pokud potřebujete přístup pouze k proměnným prostředí v aktuální spuštěné konzole, můžete nastavit proměnnou set prostředí namísto setx.

Po přidání proměnných prostředí budete možná muset restartovat všechny spuštěné programy, které budou muset číst proměnné prostředí, včetně okna konzoly. Pokud například jako editor používáte Sadu Visual Studio, restartujte sadu Visual Studio před spuštěním příkladu.

Vytvoření nové aplikace .NET Core

Pomocí integrovaného vývojového prostředí (IDE) sady Visual Studio vytvořte novou aplikaci konzoly .NET Core. Tato akce vytvoří projekt Hello World s jedním zdrojovým souborem jazyka C#: program.cs.

Nainstalujte klientskou knihovnu tak, že v Průzkumníku řešení kliknete pravým tlačítkem na řešení a vyberete Spravovat balíčky NuGet. Ve správci balíčků, který se otevře, vyberte Procházet a vyhledejte Azure.AI.TextAnalytics. Vyberte verzi 5.2.0 a pak vyberte Nainstalovat. Můžete použít také konzolu správce balíčků.

Příklad kódu

Do souboru program.cs zkopírujte následující kód. Potom kód spusťte.

Důležité

Přejděte na Azure Portal. Pokud byl prostředek jazyka Azure, který jste vytvořili v části Požadavky, úspěšně nasazen, klikněte v části Další kroky na tlačítko Přejít k prostředku. Klíč a koncový bod najdete tak, že přejdete na stránku Klíče a koncový bod vašeho prostředku v části Správa prostředků.

Důležité

Nezapomeňte klíč z kódu odebrat, až to budete hotovi, a nikdy ho veřejně neposílejte. V produkčním prostředí použijte bezpečný způsob ukládání přihlašovacích údajů a přístupu k vašim přihlašovacím údajům, jako je Azure Key Vault. Další informace najdete v článku zabezpečení Foundry Tools.

using Azure;
using System;
using Azure.AI.TextAnalytics;
using System.Collections.Generic;
using System.Threading.Tasks;

namespace Example
{
    class Program
    {
        // This example requires environment variables named "LANGUAGE_KEY" and "LANGUAGE_ENDPOINT"
        private static readonly AzureKeyCredential credentials = new (Environment.GetEnvironmentVariable("LANGUAGE_KEY"));
        private static readonly Uri endpoint = new (Environment.GetEnvironmentVariable("LANGUAGE_ENDPOINT"));
        
        // Example method for extracting information from healthcare-related text 
        static async Task healthExample(TextAnalyticsClient client)
        {
            string document = "Prescribed 100mg ibuprofen, taken twice daily.";

            List<string> batchInput = new List<string>()
            {
                document
            };
            AnalyzeHealthcareEntitiesOperation healthOperation = await client.StartAnalyzeHealthcareEntitiesAsync(batchInput);
            await healthOperation.WaitForCompletionAsync();

            await foreach (AnalyzeHealthcareEntitiesResultCollection documentsInPage in healthOperation.Value)
            {
                Console.WriteLine($"Results of Azure Text Analytics for health async model, version: \"{documentsInPage.ModelVersion}\"");
                Console.WriteLine("");

                foreach (AnalyzeHealthcareEntitiesResult entitiesInDoc in documentsInPage)
                {
                    if (!entitiesInDoc.HasError)
                    {
                        foreach (var entity in entitiesInDoc.Entities)
                        {
                            // view recognized healthcare entities
                            Console.WriteLine($"  Entity: {entity.Text}");
                            Console.WriteLine($"  Category: {entity.Category}");
                            Console.WriteLine($"  Offset: {entity.Offset}");
                            Console.WriteLine($"  Length: {entity.Length}");
                            Console.WriteLine($"  NormalizedText: {entity.NormalizedText}");
                        }
                        Console.WriteLine($"  Found {entitiesInDoc.EntityRelations.Count} relations in the current document:");
                        Console.WriteLine("");

                        // view recognized healthcare relations
                        foreach (HealthcareEntityRelation relations in entitiesInDoc.EntityRelations)
                        {
                            Console.WriteLine($"    Relation: {relations.RelationType}");
                            Console.WriteLine($"    For this relation there are {relations.Roles.Count} roles");

                            // view relation roles
                            foreach (HealthcareEntityRelationRole role in relations.Roles)
                            {
                                Console.WriteLine($"      Role Name: {role.Name}");

                                Console.WriteLine($"      Associated Entity Text: {role.Entity.Text}");
                                Console.WriteLine($"      Associated Entity Category: {role.Entity.Category}");
                                Console.WriteLine("");
                            }
                            Console.WriteLine("");
                        }
                    }
                    else
                    {
                        Console.WriteLine("  Error!");
                        Console.WriteLine($"  Document error code: {entitiesInDoc.Error.ErrorCode}.");
                        Console.WriteLine($"  Message: {entitiesInDoc.Error.Message}");
                    }
                    Console.WriteLine("");
                }
            }
        }

        static async Task Main(string[] args)
        {
            var client = new TextAnalyticsClient(endpoint, credentials);
            await healthExample(client);
        }

    }
}

Výstup

Results of Azure Text Analytics for health async model, version: "2022-03-01"

  Entity: 100mg
  Category: Dosage
  Offset: 11
  Length: 5
  NormalizedText:
  Entity: ibuprofen
  Category: MedicationName
  Offset: 17
  Length: 9
  NormalizedText: ibuprofen
  Entity: twice daily
  Category: Frequency
  Offset: 34
  Length: 11
  NormalizedText:
  Found 2 relations in the current document:

    Relation: DosageOfMedication
    For this relation there are 2 roles
      Role Name: Dosage
      Associated Entity Text: 100mg
      Associated Entity Category: Dosage

      Role Name: Medication
      Associated Entity Text: ibuprofen
      Associated Entity Category: MedicationName


    Relation: FrequencyOfMedication
    For this relation there are 2 roles
      Role Name: Medication
      Associated Entity Text: ibuprofen
      Associated Entity Category: MedicationName

      Role Name: Frequency
      Associated Entity Text: twice daily
      Associated Entity Category: Frequency

Příspěvek

Strukturování prostředků FHIR (Fast Healthcare Interoperability Resources) je k dispozici pomocí rozhraní REST API jazyka Azure. Klientské knihovny se v současné době nepodporují. Přečtěte si další informace o používání struktury FHIR ve volání rozhraní API.

Referenční dokumentace | Další ukázkové balíčky | (Maven) | Zdrojový kód knihovny

V tomto rychlém startu vytvoříte Analýzu textu pro aplikaci zdraví pomocí klientské knihovny pro Javu. V následujícím příkladu vytvoříte aplikaci v Javě, která dokáže identifikovat zdravotnické entity, vztahy a tvrzení, které se objevují v textu.

Požadavky

  • Předplatné Azure: Můžete si ho vytvořit zdarma.
  • Java Development Kit (JDK) verze 8 nebo novější
  • Jakmile budete mít předplatné Azure, vytvořte prostředek Foundry.
    • K připojení aplikace k rozhraní API potřebujete klíč a koncový bod z prostředku, který vytvoříte. Klíč a koncový bod vložíte do kódu později v rychlém startu.
    • K vyzkoušení služby (poskytující 5 000 textových záznamů, každý s 1 000 znaky) můžete použít cenovou úroveň zdarma (Free F0) a později přejít na cenovou úroveň Standard S pro produkční prostředí. Můžete také začít s Standard S cenovou úrovní a získat stejnou počáteční kvótu zdarma (5 000 textových záznamů) před účtováním poplatků. Další informace o cenách najdete v tématu Ceny jazyka.

Nastavení

Vytvořit proměnné prostředí

Aby vaše aplikace odesílala požadavky rozhraní API, musí být ověřená. V produkčním prostředí použijte bezpečný způsob ukládání a přístupu k vašim přihlašovacím údajům. V tomto příkladu zapíšete přihlašovací údaje do proměnných prostředí na místním počítači, na kterém běží aplikace.

Pokud chcete nastavit proměnnou prostředí pro klíč prostředku jazyka, otevřete konzolové okno a postupujte podle pokynů pro operační systém a vývojové prostředí.

  • Pokud chcete nastavit proměnnou LANGUAGE_KEY prostředí, nahraďte your-key jedním z klíčů pro váš prostředek.
  • Pokud chcete nastavit proměnnou LANGUAGE_ENDPOINT prostředí, nahraďte your-endpoint koncovým bodem vašeho prostředku.

Důležité

Doporučujeme ověřování Microsoft Entra ID se spravovanými identitami pro prostředky Azure, abyste se vyhnuli ukládání přihlašovacích údajů s aplikacemi, které běží v cloudu.

Používejte klíče rozhraní API s opatrností. Nezahrnujte klíč rozhraní API bezprostředně do kódu a nikdy ho nezveřejňujte veřejně. Pokud používáte klíče rozhraní API, bezpečně je uložte ve službě Azure Key Vault, pravidelně je obměňujte a omezte přístup ke službě Azure Key Vault pomocí řízení přístupu na základě rolí a omezení přístupu k síti. Další informace o bezpečném používání klíčů ROZHRANÍ API ve vašich aplikacích najdete v tématu Klíče rozhraní API se službou Azure Key Vault.

Další informace o zabezpečení služeb AI najdete v tématu Ověřování požadavků na služby Azure AI.

setx LANGUAGE_KEY your-key
setx LANGUAGE_ENDPOINT your-endpoint

Poznámka:

Pokud potřebujete přístup pouze k proměnným prostředí v aktuální spuštěné konzole, můžete nastavit proměnnou set prostředí namísto setx.

Po přidání proměnných prostředí budete možná muset restartovat všechny spuštěné programy, které budou muset číst proměnné prostředí, včetně okna konzoly. Pokud například jako editor používáte Sadu Visual Studio, restartujte sadu Visual Studio před spuštěním příkladu.

Přidání klientské knihovny

V oblíbeném vývojovém prostředí nebo integrovaném vývojovém prostředí (IDE) vytvořte projekt Maven. Pak do souboru pom.xml projektu přidejte následující závislost. Syntaxi pro implementaci pro další nástroje pro sestavování najdete online.

<dependencies>
     <dependency>
        <groupId>com.azure</groupId>
        <artifactId>azure-ai-textanalytics</artifactId>
        <version>5.2.0</version>
    </dependency>
</dependencies>

Příklad kódu

Vytvořte soubor Java s názvem EntityLinking.java. Otevřete soubor a zkopírujte následující kód. Potom kód spusťte.

Důležité

Přejděte na Azure Portal. Pokud byl prostředek jazyka Azure, který jste vytvořili v části Požadavky, úspěšně nasazen, klikněte v části Další kroky na tlačítko Přejít k prostředku. Klíč a koncový bod najdete tak, že přejdete na stránku Klíče a koncový bod vašeho prostředku v části Správa prostředků.

Důležité

Nezapomeňte klíč z kódu odebrat, až to budete hotovi, a nikdy ho veřejně neposílejte. V produkčním prostředí použijte bezpečný způsob ukládání přihlašovacích údajů a přístupu k vašim přihlašovacím údajům, jako je Azure Key Vault. Další informace najdete v článku zabezpečení Foundry Tools.

import com.azure.core.credential.AzureKeyCredential;
import com.azure.ai.textanalytics.models.*;
import com.azure.ai.textanalytics.TextAnalyticsClientBuilder;
import com.azure.ai.textanalytics.TextAnalyticsClient;

import java.util.List;
import java.util.Arrays;
import com.azure.core.util.Context;
import com.azure.core.util.polling.SyncPoller;

import com.azure.ai.textanalytics.util.*;


public class Example {

    // This example requires environment variables named "LANGUAGE_KEY" and "LANGUAGE_ENDPOINT"
    private static String KEY = System.getenv("LANGUAGE_KEY");
    private static String ENDPOINT = System.getenv("LANGUAGE_ENDPOINT");

    public static void main(String[] args) {
        TextAnalyticsClient client = authenticateClient(languageKey, languageEndpoint);
        healthExample(client);
    }

    // Method to authenticate the client object with your key and endpoint
    static TextAnalyticsClient authenticateClient(String key, String endpoint) {
        return new TextAnalyticsClientBuilder()
                .credential(new AzureKeyCredential(key))
                .endpoint(endpoint)
                .buildClient();
    }

    // Example method for extracting information from healthcare-related text 
    static void healthExample(TextAnalyticsClient client){
        List<TextDocumentInput> documents = Arrays.asList(
                new TextDocumentInput("0",
                        "Prescribed 100mg ibuprofen, taken twice daily."));

        AnalyzeHealthcareEntitiesOptions options = new AnalyzeHealthcareEntitiesOptions().setIncludeStatistics(true);

        SyncPoller<AnalyzeHealthcareEntitiesOperationDetail, AnalyzeHealthcareEntitiesPagedIterable>
                syncPoller = client.beginAnalyzeHealthcareEntities(documents, options, Context.NONE);

        System.out.printf("Poller status: %s.%n", syncPoller.poll().getStatus());
        syncPoller.waitForCompletion();

        // Task operation statistics
        AnalyzeHealthcareEntitiesOperationDetail operationResult = syncPoller.poll().getValue();
        System.out.printf("Operation created time: %s, expiration time: %s.%n",
                operationResult.getCreatedAt(), operationResult.getExpiresAt());
        System.out.printf("Poller status: %s.%n", syncPoller.poll().getStatus());

        for (AnalyzeHealthcareEntitiesResultCollection resultCollection : syncPoller.getFinalResult()) {
            // Model version
            System.out.printf(
                    "Results of Azure Text Analytics for health entities\" Model, version: %s%n",
                    resultCollection.getModelVersion());

            for (AnalyzeHealthcareEntitiesResult healthcareEntitiesResult : resultCollection) {
                System.out.println("Document ID = " + healthcareEntitiesResult.getId());
                System.out.println("Document entities: ");
                // Recognized healthcare entities
                for (HealthcareEntity entity : healthcareEntitiesResult.getEntities()) {
                    System.out.printf(
                            "\tText: %s, normalized name: %s, category: %s, subcategory: %s, confidence score: %f.%n",
                            entity.getText(), entity.getNormalizedText(), entity.getCategory(),
                            entity.getSubcategory(), entity.getConfidenceScore());
                }
                // Recognized healthcare entity relation groups
                for (HealthcareEntityRelation entityRelation : healthcareEntitiesResult.getEntityRelations()) {
                    System.out.printf("Relation type: %s.%n", entityRelation.getRelationType());
                    for (HealthcareEntityRelationRole role : entityRelation.getRoles()) {
                        HealthcareEntity entity = role.getEntity();
                        System.out.printf("\tEntity text: %s, category: %s, role: %s.%n",
                                entity.getText(), entity.getCategory(), role.getName());
                    }
                }
            }
        }
    }
}

Výstup

Poller status: IN_PROGRESS.
Operation created time: 2022-09-15T19:06:11Z, expiration time: 2022-09-16T19:06:11Z.
Poller status: SUCCESSFULLY_COMPLETED.
Results of Azure Text Analytics for health entities" Model, version: 2022-03-01
Document ID = 0
Document entities: 
	Text: 100mg, normalized name: null, category: Dosage, subcategory: null, confidence score: 0.980000.
	Text: ibuprofen, normalized name: ibuprofen, category: MedicationName, subcategory: null, confidence score: 1.000000.
	Text: twice daily, normalized name: null, category: Frequency, subcategory: null, confidence score: 1.000000.
Relation type: DosageOfMedication.
	Entity text: 100mg, category: Dosage, role: Dosage.
	Entity text: ibuprofen, category: MedicationName, role: Medication.
Relation type: FrequencyOfMedication.
	Entity text: ibuprofen, category: MedicationName, role: Medication.
	Entity text: twice daily, category: Frequency, role: Frequency.

Příspěvek

Strukturování prostředků FHIR (Fast Healthcare Interoperability Resources) je k dispozici pomocí rozhraní REST API jazyka Azure. Klientské knihovny se v současné době nepodporují. Přečtěte si další informace o používání struktury FHIR ve volání rozhraní API.

Referenční dokumentace | Další ukázkové balíčky | (npm) | Zdrojový kód knihovny

Pomocí tohoto rychlého průvodce vytvoříte Textovou analýzu pro zdravotnické aplikace s klientskou knihovnou pro Node.js. V následujícím příkladu vytvoříte javascriptovou aplikaci, která dokáže identifikovat zdravotnické entity, vztahy a tvrzení, které se vyskytují v textu.

Požadavky

  • Předplatné Azure: Můžete si ho vytvořit zdarma.
  • Node.js verze 14 LTS nebo novější
  • Jakmile budete mít předplatné Azure, vytvořte prostředek Foundry.
    • K připojení aplikace k rozhraní API potřebujete klíč a koncový bod z prostředku, který vytvoříte. Klíč a koncový bod vložíte do kódu později v rychlém startu.
    • K vyzkoušení služby (poskytující 5 000 textových záznamů, každý s 1 000 znaky) můžete použít cenovou úroveň zdarma (Free F0) a později přejít na cenovou úroveň Standard S pro produkční prostředí. Můžete také začít s Standard S cenovou úrovní a získat stejnou počáteční kvótu zdarma (5 000 textových záznamů) před účtováním poplatků. Další informace o cenách najdete v tématu Ceny jazyka.

Nastavení

Vytvořit proměnné prostředí

Aby vaše aplikace odesílala požadavky rozhraní API, musí být ověřená. V produkčním prostředí použijte bezpečný způsob ukládání a přístupu k vašim přihlašovacím údajům. V tomto příkladu zapíšete přihlašovací údaje do proměnných prostředí na místním počítači, na kterém běží aplikace.

Pokud chcete nastavit proměnnou prostředí pro klíč prostředku jazyka, otevřete konzolové okno a postupujte podle pokynů pro operační systém a vývojové prostředí.

  • Pokud chcete nastavit proměnnou LANGUAGE_KEY prostředí, nahraďte your-key jedním z klíčů pro váš prostředek.
  • Pokud chcete nastavit proměnnou LANGUAGE_ENDPOINT prostředí, nahraďte your-endpoint koncovým bodem vašeho prostředku.

Důležité

Doporučujeme ověřování Microsoft Entra ID se spravovanými identitami pro prostředky Azure, abyste se vyhnuli ukládání přihlašovacích údajů s aplikacemi, které běží v cloudu.

Používejte klíče rozhraní API s opatrností. Nezahrnujte klíč rozhraní API bezprostředně do kódu a nikdy ho nezveřejňujte veřejně. Pokud používáte klíče rozhraní API, bezpečně je uložte ve službě Azure Key Vault, pravidelně je obměňujte a omezte přístup ke službě Azure Key Vault pomocí řízení přístupu na základě rolí a omezení přístupu k síti. Další informace o bezpečném používání klíčů ROZHRANÍ API ve vašich aplikacích najdete v tématu Klíče rozhraní API se službou Azure Key Vault.

Další informace o zabezpečení služeb AI najdete v tématu Ověřování požadavků na služby Azure AI.

setx LANGUAGE_KEY your-key
setx LANGUAGE_ENDPOINT your-endpoint

Poznámka:

Pokud potřebujete přístup pouze k proměnným prostředí v aktuální spuštěné konzole, můžete nastavit proměnnou set prostředí namísto setx.

Po přidání proměnných prostředí budete možná muset restartovat všechny spuštěné programy, které budou muset číst proměnné prostředí, včetně okna konzoly. Pokud například jako editor používáte Sadu Visual Studio, restartujte sadu Visual Studio před spuštěním příkladu.

Vytvoření nové aplikace Node.js

V okně konzoly (například cmd, PowerShell nebo Bash) vytvořte pro vaši aplikaci nový adresář a přejděte do něj.

mkdir myapp 

cd myapp

Spuštěním příkazu npm init vytvoříte aplikaci uzlu se souborem package.json.

npm init

Instalace klientské knihovny

Nainstalujte balíček npm:

npm install @azure/ai-language-text

Příklad kódu

Otevřete soubor a zkopírujte následující kód. Potom kód spusťte.

Důležité

Přejděte na Azure Portal. Pokud byl prostředek jazyka Azure, který jste vytvořili v části Požadavky, úspěšně nasazen, klikněte v části Další kroky na tlačítko Přejít k prostředku. Klíč a koncový bod najdete tak, že přejdete na stránku Klíče a koncový bod vašeho prostředku v části Správa prostředků.

Důležité

Nezapomeňte klíč z kódu odebrat, až to budete hotovi, a nikdy ho veřejně neposílejte. V produkčním prostředí použijte bezpečný způsob ukládání přihlašovacích údajů a přístupu k vašim přihlašovacím údajům, jako je Azure Key Vault. Další informace najdete v článku zabezpečení Foundry Tools.

"use strict";

const { TextAnalyticsClient, AzureKeyCredential } = require("@azure/ai-text-analytics");
// This example requires environment variables named "LANGUAGE_KEY" and "LANGUAGE_ENDPOINT"
const key = process.env.LANGUAGE_KEY;
const endpoint = process.env.LANGUAGE_ENDPOINT;

const documents = ["Patient does not suffer from high blood pressure."];
  
  async function main() {
    console.log("== Text analytics for health sample ==");
  
    const client = new TextAnalysisClient(endpoint, new AzureKeyCredential(key));
    const actions = [
      {
        kind: "Healthcare",
      },
    ];
    const poller = await client.beginAnalyzeBatch(actions, documents, "en");
  
    poller.onProgress(() => {
      console.log(
        `Last time the operation was updated was on: ${poller.getOperationState().modifiedOn}`
      );
    });
    console.log(`The operation was created on ${poller.getOperationState().createdOn}`);
    console.log(`The operation results will expire on ${poller.getOperationState().expiresOn}`);
  
    const results = await poller.pollUntilDone();
  
    for await (const actionResult of results) {
      if (actionResult.kind !== "Healthcare") {
        throw new Error(`Expected a healthcare results but got: ${actionResult.kind}`);
      }
      if (actionResult.error) {
        const { code, message } = actionResult.error;
        throw new Error(`Unexpected error (${code}): ${message}`);
      }
      for (const result of actionResult.results) {
        console.log(`- Document ${result.id}`);
        if (result.error) {
          const { code, message } = result.error;
          throw new Error(`Unexpected error (${code}): ${message}`);
        }
        console.log("\tRecognized Entities:");
        for (const entity of result.entities) {
          console.log(`\t- Entity "${entity.text}" of type ${entity.category}`);
          if (entity.dataSources.length > 0) {
            console.log("\t and it can be referenced in the following data sources:");
            for (const ds of entity.dataSources) {
              console.log(`\t\t- ${ds.name} with Entity ID: ${ds.entityId}`);
            }
          }
        }
        if (result.entityRelations.length > 0) {
          console.log(`\tRecognized relations between entities:`);
          for (const relation of result.entityRelations) {
            console.log(
              `\t\t- Relation of type ${relation.relationType} found between the following entities:`
            );
            for (const role of relation.roles) {
              console.log(`\t\t\t- "${role.entity.text}" with the role ${role.name}`);
            }
          }
        }
      }
    }
  }
  
  main().catch((err) => {
    console.error("The sample encountered an error:", err);
  });

Výstup

== Text analytics for health sample ==
The operation was created on Mon Feb 13 2023 13:12:10 GMT-0800 (Pacific Standard Time)
The operation results will expire on Tue Feb 14 2023 13:12:10 GMT-0800 (Pacific Standard Time)
Last time the operation was updated was on: Mon Feb 13 2023 13:12:10 GMT-0800 (Pacific Standard Time)
- Document 0
    Recognized Entities:
    - Entity "high blood pressure" of type SymptomOrSign
        and it can be referenced in the following data sources:
            - UMLS with Entity ID: C0020538
            - AOD with Entity ID: 0000023317
            - BI with Entity ID: BI00001
            - CCPSS with Entity ID: 1017493
            - CCS with Entity ID: 7.1
            - CHV with Entity ID: 0000015800
            - COSTAR with Entity ID: 397
            - CSP with Entity ID: 0571-5243
            - CST with Entity ID: HYPERTENS
            - DXP with Entity ID: U002034
            - HPO with Entity ID: HP:0000822
            - ICD10 with Entity ID: I10-I15.9
            - ICD10AM with Entity ID: I10-I15.9
            - ICD10CM with Entity ID: I10
            - ICD9CM with Entity ID: 997.91
            - ICPC2ICD10ENG with Entity ID: MTHU035456
            - ICPC2P with Entity ID: K85004
            - LCH with Entity ID: U002317
            - LCH_NW with Entity ID: sh85063723
            - LNC with Entity ID: LA14293-7
            - MDR with Entity ID: 10020772
            - MEDCIN with Entity ID: 33288
            - MEDLINEPLUS with Entity ID: 34
            - MSH with Entity ID: D006973
            - MTH with Entity ID: 005
            - MTHICD9 with Entity ID: 997.91
            - NANDA-I with Entity ID: 00905
            - NCI with Entity ID: C3117
            - NCI_CPTAC with Entity ID: C3117
            - NCI_CTCAE with Entity ID: E13785
            - NCI_CTRP with Entity ID: C3117
            - NCI_FDA with Entity ID: 1908
            - NCI_GDC with Entity ID: C3117
            - NCI_NCI-GLOSS with Entity ID: CDR0000458091
            - NCI_NICHD with Entity ID: C3117
            - NCI_caDSR with Entity ID: C3117
            - NOC with Entity ID: 060808
            - OMIM with Entity ID: MTHU002068
            - PCDS with Entity ID: PRB_11000.06
            - PDQ with Entity ID: CDR0000686951
            - PSY with Entity ID: 23830
            - RCD with Entity ID: XE0Ub
            - SNM with Entity ID: F-70700
            - SNMI with Entity ID: D3-02000
            - SNOMEDCT_US with Entity ID: 38341003
            - WHO with Entity ID: 0210

Příspěvek

Strukturování prostředků FHIR (Fast Healthcare Interoperability Resources) je k dispozici pomocí rozhraní REST API jazyka Azure. Klientské knihovny se v současné době nepodporují. Přečtěte si další informace o používání struktury FHIR ve volání rozhraní API.

Referenční dokumentace | Další ukázkové balíčky | (PyPi) | Zdrojový kód knihovny

V tomto rychlém startu vytvoříte Analýza textu pro aplikaci stavu pomocí klientské knihovny pro Python. V následujícím příkladu vytvoříte aplikaci Pythonu, která dokáže identifikovat zdravotnické entity, vztahy a kontrolní výrazy , které se zobrazují v textu.

Požadavky

  • Předplatné Azure: Můžete si ho vytvořit zdarma.
  • Python 3.8 nebo novější
  • Jakmile budete mít předplatné Azure, vytvořte prostředek Foundry.
    • K připojení aplikace k rozhraní API potřebujete klíč a koncový bod z prostředku, který vytvoříte. Klíč a koncový bod vložíte do kódu později v rychlém startu.
    • K vyzkoušení služby (poskytující 5 000 textových záznamů, každý s 1 000 znaky) můžete použít cenovou úroveň zdarma (Free F0) a později přejít na cenovou úroveň Standard S pro produkční prostředí. Můžete také začít s Standard S cenovou úrovní a získat stejnou počáteční kvótu zdarma (5 000 textových záznamů) před účtováním poplatků. Další informace o cenách najdete v tématu Ceny jazyka.

Nastavení

Vytvořit proměnné prostředí

Aby vaše aplikace odesílala požadavky rozhraní API, musí být ověřená. V produkčním prostředí použijte bezpečný způsob ukládání a přístupu k vašim přihlašovacím údajům. V tomto příkladu zapíšete přihlašovací údaje do proměnných prostředí na místním počítači, na kterém běží aplikace.

Pokud chcete nastavit proměnnou prostředí pro klíč prostředku jazyka, otevřete konzolové okno a postupujte podle pokynů pro operační systém a vývojové prostředí.

  • Pokud chcete nastavit proměnnou LANGUAGE_KEY prostředí, nahraďte your-key jedním z klíčů pro váš prostředek.
  • Pokud chcete nastavit proměnnou LANGUAGE_ENDPOINT prostředí, nahraďte your-endpoint koncovým bodem vašeho prostředku.

Důležité

Doporučujeme ověřování Microsoft Entra ID se spravovanými identitami pro prostředky Azure, abyste se vyhnuli ukládání přihlašovacích údajů s aplikacemi, které běží v cloudu.

Používejte klíče rozhraní API s opatrností. Nezahrnujte klíč rozhraní API bezprostředně do kódu a nikdy ho nezveřejňujte veřejně. Pokud používáte klíče rozhraní API, bezpečně je uložte ve službě Azure Key Vault, pravidelně je obměňujte a omezte přístup ke službě Azure Key Vault pomocí řízení přístupu na základě rolí a omezení přístupu k síti. Další informace o bezpečném používání klíčů ROZHRANÍ API ve vašich aplikacích najdete v tématu Klíče rozhraní API se službou Azure Key Vault.

Další informace o zabezpečení služeb AI najdete v tématu Ověřování požadavků na služby Azure AI.

setx LANGUAGE_KEY your-key
setx LANGUAGE_ENDPOINT your-endpoint

Poznámka:

Pokud potřebujete přístup pouze k proměnným prostředí v aktuální spuštěné konzole, můžete nastavit proměnnou set prostředí namísto setx.

Po přidání proměnných prostředí budete možná muset restartovat všechny spuštěné programy, které budou muset číst proměnné prostředí, včetně okna konzoly. Pokud například jako editor používáte Sadu Visual Studio, restartujte sadu Visual Studio před spuštěním příkladu.

Instalace klientské knihovny

Po instalaci Pythonu můžete nainstalovat klientskou knihovnu pomocí:

pip install azure-ai-textanalytics==5.2.0

Příklad kódu

Vytvořte nový soubor Pythonu a zkopírujte následující kód. Potom kód spusťte.

Důležité

Přejděte na Azure Portal. Pokud byl prostředek jazyka Azure, který jste vytvořili v části Požadavky, úspěšně nasazen, klikněte v části Další kroky na tlačítko Přejít k prostředku. Klíč a koncový bod najdete tak, že přejdete na stránku Klíče a koncový bod vašeho prostředku v části Správa prostředků.

Důležité

Nezapomeňte klíč z kódu odebrat, až to budete hotovi, a nikdy ho veřejně neposílejte. V produkčním prostředí použijte bezpečný způsob ukládání přihlašovacích údajů a přístupu k vašim přihlašovacím údajům, jako je Azure Key Vault. Další informace najdete v článku zabezpečení Foundry Tools.

# This example requires environment variables named "LANGUAGE_KEY" and "LANGUAGE_ENDPOINT"
key = os.environ.get('LANGUAGE_KEY')
endpoint = os.environ.get('LANGUAGE_ENDPOINT')

from azure.ai.textanalytics import TextAnalyticsClient
from azure.core.credentials import AzureKeyCredential

# Authenticate the client using your key and endpoint 
def authenticate_client():
    ta_credential = AzureKeyCredential(key)
    text_analytics_client = TextAnalyticsClient(
            endpoint=endpoint, 
            credential=ta_credential)
    return text_analytics_client

client = authenticate_client()

# Example function for extracting information from healthcare-related text 
def health_example(client):
    documents = [
        """
        Patient needs to take 50 mg of ibuprofen.
        """
    ]

    poller = client.begin_analyze_healthcare_entities(documents)
    result = poller.result()

    docs = [doc for doc in result if not doc.is_error]

    for idx, doc in enumerate(docs):
        for entity in doc.entities:
            print("Entity: {}".format(entity.text))
            print("...Normalized Text: {}".format(entity.normalized_text))
            print("...Category: {}".format(entity.category))
            print("...Subcategory: {}".format(entity.subcategory))
            print("...Offset: {}".format(entity.offset))
            print("...Confidence score: {}".format(entity.confidence_score))
        for relation in doc.entity_relations:
            print("Relation of type: {} has the following roles".format(relation.relation_type))
            for role in relation.roles:
                print("...Role '{}' with entity '{}'".format(role.name, role.entity.text))
        print("------------------------------------------")
health_example(client)

Výstup

Entity: 50 mg
...Normalized Text: None
...Category: Dosage
...Subcategory: None
...Offset: 31
...Confidence score: 1.0
Entity: ibuprofen
...Normalized Text: ibuprofen
...Category: MedicationName
...Subcategory: None
...Offset: 40
...Confidence score: 1.0
Relation of type: DosageOfMedication has the following roles
...Role 'Dosage' with entity '50 mg'
...Role 'Medication' with entity 'ibuprofen'

Příspěvek

Strukturování prostředků FHIR (Fast Healthcare Interoperability Resources) je k dispozici pomocí rozhraní REST API jazyka Azure. Klientské knihovny se v současné době nepodporují. Přečtěte si další informace o používání struktury FHIR ve volání rozhraní API.

Referenční dokumentace

Pomocí tohoto rychlého startu můžete odesílat požadavky na rozpoznávání jazyka pomocí rozhraní REST API. V následujícím příkladu použijete cURL k identifikaci lékařských entit, vztahů a tvrzení, které se objevují v textu.

Požadavky

  • Aktuální verze cURL
  • Předplatné Azure – vytvořte si ho zdarma
  • Jakmile budete mít předplatné Azure, vytvořte prostředek Foundry.
    • K připojení aplikace k rozhraní API potřebujete klíč a koncový bod z prostředku, který vytvoříte. Klíč a koncový bod vložíte do kódu později v rychlém startu.
    • K vyzkoušení služby (poskytující 5 000 textových záznamů, každý s 1 000 znaky) můžete použít cenovou úroveň zdarma (Free F0) a později přejít na cenovou úroveň Standard S pro produkční prostředí. Můžete také začít s Standard S cenovou úrovní a získat stejnou počáteční kvótu zdarma (5 000 textových záznamů) před účtováním poplatků. Další informace o cenách najdete v tématu Ceny jazyka.

Poznámka:

  • Následující příklady BASH používají \ znak pokračování řádku. Pokud konzola nebo terminál používá jiný znak pokračování řádku, použijte tento znak.
  • Ukázky specifické pro jazyk najdete na GitHubu.
  • Přejděte na portál Azure a vyhledejte klíč a koncový bod pro prostředek jazyka Azure, který jste vytvořili v předpokladech. Nachází se na stránce klíče a koncového bodu prostředku, v části správa prostředků. Potom nahraďte řetězce v následujícím kódu klíčem a koncovým bodem. K volání rozhraní API potřebujete následující informace:

Nastavení

Vytvořit proměnné prostředí

Aby vaše aplikace odesílala požadavky rozhraní API, musí být ověřená. V produkčním prostředí použijte bezpečný způsob ukládání a přístupu k vašim přihlašovacím údajům. V tomto příkladu zapíšete přihlašovací údaje do proměnných prostředí na místním počítači, na kterém běží aplikace.

Pokud chcete nastavit proměnnou prostředí pro klíč prostředku jazyka, otevřete konzolové okno a postupujte podle pokynů pro operační systém a vývojové prostředí.

  • Pokud chcete nastavit proměnnou LANGUAGE_KEY prostředí, nahraďte your-key jedním z klíčů pro váš prostředek.
  • Pokud chcete nastavit proměnnou LANGUAGE_ENDPOINT prostředí, nahraďte your-endpoint koncovým bodem vašeho prostředku.

Důležité

Doporučujeme ověřování Microsoft Entra ID se spravovanými identitami pro prostředky Azure, abyste se vyhnuli ukládání přihlašovacích údajů s aplikacemi, které běží v cloudu.

Používejte klíče rozhraní API s opatrností. Nezahrnujte klíč rozhraní API bezprostředně do kódu a nikdy ho nezveřejňujte veřejně. Pokud používáte klíče rozhraní API, bezpečně je uložte ve službě Azure Key Vault, pravidelně je obměňujte a omezte přístup ke službě Azure Key Vault pomocí řízení přístupu na základě rolí a omezení přístupu k síti. Další informace o bezpečném používání klíčů ROZHRANÍ API ve vašich aplikacích najdete v tématu Klíče rozhraní API se službou Azure Key Vault.

Další informace o zabezpečení služeb AI najdete v tématu Ověřování požadavků na služby Azure AI.

setx LANGUAGE_KEY your-key
setx LANGUAGE_ENDPOINT your-endpoint

Poznámka:

Pokud potřebujete přístup pouze k proměnným prostředí v aktuální spuštěné konzole, můžete nastavit proměnnou set prostředí namísto setx.

Po přidání proměnných prostředí budete možná muset restartovat všechny spuštěné programy, které budou muset číst proměnné prostředí, včetně okna konzoly. Pokud například jako editor používáte Sadu Visual Studio, restartujte sadu Visual Studio před spuštěním příkladu.

parametr Popis
-X POST <endpoint> Určuje koncový bod pro přístup k rozhraní API.
-H Content-Type: application/json Typ obsahu pro odesílání dat JSON.
-H "Ocp-Apim-Subscription-Key:<key> Určuje klíč pro přístup k rozhraní API.
-d <documents> JSON obsahující dokumenty, které chcete odeslat.

Následující příkazy cURL se spouští z prostředí BASH. Tyto příkazy můžete upravit pomocí vlastního názvu prostředku, klíče prostředku a hodnot JSON.

Analýza textu pro zdravotnictví

  1. Zkopírujte příkaz do textového editoru.
  2. V příkazu proveďte v případě potřeby následující změny:
    1. Nahraďte hodnotu <your-language-resource-key> klíčem.
    2. Nahraďte první část adresy URL požadavku adresou URL <your-language-resource-endpoint> koncového bodu.
  3. Otevřete okno příkazového řádku.
  4. Vložte příkaz z textového editoru do okna příkazového řádku a pak příkaz spusťte.
curl -i -X POST $LANGUAGE_ENDPOINT/language/analyze-text/jobs?api-version=2022-05-15-preview \
-H "Content-Type: application/json" \
-H "Ocp-Apim-Subscription-Key: $LANGUAGE_KEY" \
-d '{"analysisInput":{"documents": [{"text": "The doctor prescried 200mg Ibuprofen.","language": "en","id": "1"}]},"tasks":[{"taskId": "analyze 1","kind": "Healthcare","parameters": {"fhirVersion": "4.0.1"}}]}'

Získejte operation-location z hlavičky odpovědi. Hodnota bude vypadat podobně jako následující adresa URL:

https://your-resource.cognitiveservices.azure.com/language/analyze-text/jobs/{JOB-ID}?api-version=2022-05-15-preview

Pokud chcete získat výsledky požadavku, použijte následující příkaz cURL. Nezapomeňte nahradit {JOB-ID} číselnou hodnotou ID, kterou jste dostali z předchozí operation-location hlavičky odpovědi:

curl -X GET  $LANGUAGE_ENDPOINT/language/analyze-text/jobs/{JOB-ID}?api-version=2022-05-15-preview \
-H "Content-Type: application/json" \
-H "Ocp-Apim-Subscription-Key: $LANGUAGE_KEY"

Odpověď JSON

{
    "jobId": "{JOB-ID}",
    "lastUpdatedDateTime": "2022-06-27T22:04:39Z",
    "createdDateTime": "2022-06-27T22:04:38Z",
    "expirationDateTime": "2022-06-28T22:04:38Z",
    "status": "succeeded",
    "errors": [],
    "tasks": {
        "completed": 1,
        "failed": 0,
        "inProgress": 0,
        "total": 1,
        "items": [
            {
                "kind": "HealthcareLROResults",
                "lastUpdateDateTime": "2022-06-27T22:04:39.7086762Z",
                "status": "succeeded",
                "results": {
                    "documents": [
                        {
                            "id": "1",
                            "entities": [
                                {
                                    "offset": 4,
                                    "length": 6,
                                    "text": "doctor",
                                    "category": "HealthcareProfession",
                                    "confidenceScore": 0.76
                                },
                                {
                                    "offset": 21,
                                    "length": 5,
                                    "text": "200mg",
                                    "category": "Dosage",
                                    "confidenceScore": 0.99
                                },
                                {
                                    "offset": 27,
                                    "length": 9,
                                    "text": "Ibuprofen",
                                    "category": "MedicationName",
                                    "confidenceScore": 1.0,
                                    "name": "ibuprofen",
                                    "links": [
                                        {
                                            "dataSource": "UMLS",
                                            "id": "C0020740"
                                        },
                                        {
                                            "dataSource": "AOD",
                                            "id": "0000019879"
                                        },
                                        {
                                            "dataSource": "ATC",
                                            "id": "M01AE01"
                                        },
                                        {
                                            "dataSource": "CCPSS",
                                            "id": "0046165"
                                        },
                                        {
                                            "dataSource": "CHV",
                                            "id": "0000006519"
                                        },
                                        {
                                            "dataSource": "CSP",
                                            "id": "2270-2077"
                                        },
                                        {
                                            "dataSource": "DRUGBANK",
                                            "id": "DB01050"
                                        },
                                        {
                                            "dataSource": "GS",
                                            "id": "1611"
                                        },
                                        {
                                            "dataSource": "LCH_NW",
                                            "id": "sh97005926"
                                        },
                                        {
                                            "dataSource": "LNC",
                                            "id": "LP16165-0"
                                        },
                                        {
                                            "dataSource": "MEDCIN",
                                            "id": "40458"
                                        },
                                        {
                                            "dataSource": "MMSL",
                                            "id": "d00015"
                                        },
                                        {
                                            "dataSource": "MSH",
                                            "id": "D007052"
                                        },
                                        {
                                            "dataSource": "MTHSPL",
                                            "id": "WK2XYI10QM"
                                        },
                                        {
                                            "dataSource": "NCI",
                                            "id": "C561"
                                        },
                                        {
                                            "dataSource": "NCI_CTRP",
                                            "id": "C561"
                                        },
                                        {
                                            "dataSource": "NCI_DCP",
                                            "id": "00803"
                                        },
                                        {
                                            "dataSource": "NCI_DTP",
                                            "id": "NSC0256857"
                                        },
                                        {
                                            "dataSource": "NCI_FDA",
                                            "id": "WK2XYI10QM"
                                        },
                                        {
                                            "dataSource": "NCI_NCI-GLOSS",
                                            "id": "CDR0000613511"
                                        },
                                        {
                                            "dataSource": "NDDF",
                                            "id": "002377"
                                        },
                                        {
                                            "dataSource": "PDQ",
                                            "id": "CDR0000040475"
                                        },
                                        {
                                            "dataSource": "RCD",
                                            "id": "x02MO"
                                        },
                                        {
                                            "dataSource": "RXNORM",
                                            "id": "5640"
                                        },
                                        {
                                            "dataSource": "SNM",
                                            "id": "E-7772"
                                        },
                                        {
                                            "dataSource": "SNMI",
                                            "id": "C-603C0"
                                        },
                                        {
                                            "dataSource": "SNOMEDCT_US",
                                            "id": "387207008"
                                        },
                                        {
                                            "dataSource": "USP",
                                            "id": "m39860"
                                        },
                                        {
                                            "dataSource": "USPMG",
                                            "id": "MTHU000060"
                                        },
                                        {
                                            "dataSource": "VANDF",
                                            "id": "4017840"
                                        }
                                    ]
                                }
                            ],
                            "relations": [
                                {
                                    "relationType": "DosageOfMedication",
                                    "entities": [
                                        {
                                            "ref": "#/results/documents/0/entities/1",
                                            "role": "Dosage"
                                        },
                                        {
                                            "ref": "#/results/documents/0/entities/2",
                                            "role": "Medication"
                                        }
                                    ]
                                }
                            ],
                            "warnings": [],
                            "fhirBundle": {
                                "resourceType": "Bundle",
                                "id": "95d61191-402a-48c6-9657-a1e4efbda877",
                                "meta": {
                                    "profile": [
                                        "http://hl7.org/fhir/4.0.1/StructureDefinition/Bundle"
                                    ]
                                },
                                "identifier": {
                                    "system": "urn:ietf:rfc:3986",
                                    "value": "urn:uuid:95d61191-402a-48c6-9657-a1e4efbda877"
                                },
                                "type": "document",
                                "entry": [
                                    {
                                        "fullUrl": "Composition/34b666d3-45e7-474d-a398-d3b0329541ad",
                                        "resource": {
                                            "resourceType": "Composition",
                                            "id": "34b666d3-45e7-474d-a398-d3b0329541ad",
                                            "status": "final",
                                            "type": {
                                                "coding": [
                                                    {
                                                        "system": "http://loinc.org",
                                                        "code": "11526-1",
                                                        "display": "Pathology study"
                                                    }
                                                ],
                                                "text": "Pathology study"
                                            },
                                            "subject": {
                                                "reference": "Patient/68dd21ce-58ae-4e59-9445-8331f99899ed",
                                                "type": "Patient"
                                            },
                                            "encounter": {
                                                "reference": "Encounter/90c75fea-4526-4e94-82f8-8df3bc983a14",
                                                "type": "Encounter",
                                                "display": "unknown"
                                            },
                                            "date": "2022-06-27",
                                            "author": [
                                                {
                                                    "reference": "Practitioner/a8ef1526-d4ce-41df-96df-e9d03428c840",
                                                    "type": "Practitioner",
                                                    "display": "Unknown"
                                                }
                                            ],
                                            "title": "Pathology study",
                                            "section": [
                                                {
                                                    "title": "General",
                                                    "code": {
                                                        "coding": [
                                                            {
                                                                "system": "",
                                                                "display": "Unrecognized Section"
                                                            }
                                                        ],
                                                        "text": "General"
                                                    },
                                                    "text": {
                                                        "div": "<div>\r\n\t\t\t\t\t\t\t<h1>General</h1>\r\n\t\t\t\t\t\t\t<p>The doctor prescried 200mg Ibuprofen.</p>\r\n\t\t\t\t\t</div>"
                                                    },
                                                    "entry": [
                                                        {
                                                            "reference": "List/c8ca6757-1d7c-4c49-94e9-ef5263cb943c",
                                                            "type": "List",
                                                            "display": "General"
                                                        }
                                                    ]
                                                }
                                            ]
                                        }
                                    },
                                    {
                                        "fullUrl": "Practitioner/a8ef1526-d4ce-41df-96df-e9d03428c840",
                                        "resource": {
                                            "resourceType": "Practitioner",
                                            "id": "a8ef1526-d4ce-41df-96df-e9d03428c840",
                                            "extension": [
                                                {
                                                    "extension": [
                                                        {
                                                            "url": "offset",
                                                            "valueInteger": -1
                                                        },
                                                        {
                                                            "url": "length",
                                                            "valueInteger": 7
                                                        }
                                                    ],
                                                    "url": "http://hl7.org/fhir/StructureDefinition/derivation-reference"
                                                }
                                            ],
                                            "name": [
                                                {
                                                    "text": "Unknown",
                                                    "family": "Unknown"
                                                }
                                            ]
                                        }
                                    },
                                    {
                                        "fullUrl": "Patient/68dd21ce-58ae-4e59-9445-8331f99899ed",
                                        "resource": {
                                            "resourceType": "Patient",
                                            "id": "68dd21ce-58ae-4e59-9445-8331f99899ed",
                                            "gender": "unknown"
                                        }
                                    },
                                    {
                                        "fullUrl": "Encounter/90c75fea-4526-4e94-82f8-8df3bc983a14",
                                        "resource": {
                                            "resourceType": "Encounter",
                                            "id": "90c75fea-4526-4e94-82f8-8df3bc983a14",
                                            "meta": {
                                                "profile": [
                                                    "http://hl7.org/fhir/us/core/StructureDefinition/us-core-encounter"
                                                ]
                                            },
                                            "status": "finished",
                                            "class": {
                                                "system": "http://terminology.hl7.org/CodeSystem/v3-ActCode",
                                                "display": "unknown"
                                            },
                                            "subject": {
                                                "reference": "Patient/68dd21ce-58ae-4e59-9445-8331f99899ed",
                                                "type": "Patient"
                                            }
                                        }
                                    },
                                    {
                                        "fullUrl": "MedicationStatement/17aeee32-1189-47fc-9223-8abe174f1292",
                                        "resource": {
                                            "resourceType": "MedicationStatement",
                                            "id": "17aeee32-1189-47fc-9223-8abe174f1292",
                                            "extension": [
                                                {
                                                    "extension": [
                                                        {
                                                            "url": "offset",
                                                            "valueInteger": 27
                                                        },
                                                        {
                                                            "url": "length",
                                                            "valueInteger": 9
                                                        }
                                                    ],
                                                    "url": "http://hl7.org/fhir/StructureDefinition/derivation-reference"
                                                }
                                            ],
                                            "status": "active",
                                            "medicationCodeableConcept": {
                                                "coding": [
                                                    {
                                                        "system": "http://www.nlm.nih.gov/research/umls",
                                                        "code": "C0020740",
                                                        "display": "ibuprofen"
                                                    },
                                                    {
                                                        "system": "http://www.nlm.nih.gov/research/umls/aod",
                                                        "code": "0000019879"
                                                    },
                                                    {
                                                        "system": "http://www.whocc.no/atc",
                                                        "code": "M01AE01"
                                                    },
                                                    {
                                                        "system": "http://www.nlm.nih.gov/research/umls/ccpss",
                                                        "code": "0046165"
                                                    },
                                                    {
                                                        "system": "http://www.nlm.nih.gov/research/umls/chv",
                                                        "code": "0000006519"
                                                    },
                                                    {
                                                        "system": "http://www.nlm.nih.gov/research/umls/csp",
                                                        "code": "2270-2077"
                                                    },
                                                    {
                                                        "system": "http://www.nlm.nih.gov/research/umls/drugbank",
                                                        "code": "DB01050"
                                                    },
                                                    {
                                                        "system": "http://www.nlm.nih.gov/research/umls/gs",
                                                        "code": "1611"
                                                    },
                                                    {
                                                        "system": "http://www.nlm.nih.gov/research/umls/lch_nw",
                                                        "code": "sh97005926"
                                                    },
                                                    {
                                                        "system": "http://loinc.org",
                                                        "code": "LP16165-0"
                                                    },
                                                    {
                                                        "system": "http://www.nlm.nih.gov/research/umls/medcin",
                                                        "code": "40458"
                                                    },
                                                    {
                                                        "system": "http://www.nlm.nih.gov/research/umls/mmsl",
                                                        "code": "d00015"
                                                    },
                                                    {
                                                        "system": "http://www.nlm.nih.gov/research/umls/msh",
                                                        "code": "D007052"
                                                    },
                                                    {
                                                        "system": "http://www.nlm.nih.gov/research/umls/mthspl",
                                                        "code": "WK2XYI10QM"
                                                    },
                                                    {
                                                        "system": "http://ncimeta.nci.nih.gov",
                                                        "code": "C561"
                                                    },
                                                    {
                                                        "system": "http://www.nlm.nih.gov/research/umls/nci_ctrp",
                                                        "code": "C561"
                                                    },
                                                    {
                                                        "system": "http://www.nlm.nih.gov/research/umls/nci_dcp",
                                                        "code": "00803"
                                                    },
                                                    {
                                                        "system": "http://www.nlm.nih.gov/research/umls/nci_dtp",
                                                        "code": "NSC0256857"
                                                    },
                                                    {
                                                        "system": "http://www.nlm.nih.gov/research/umls/nci_fda",
                                                        "code": "WK2XYI10QM"
                                                    },
                                                    {
                                                        "system": "http://www.nlm.nih.gov/research/umls/nci_nci-gloss",
                                                        "code": "CDR0000613511"
                                                    },
                                                    {
                                                        "system": "http://www.nlm.nih.gov/research/umls/nddf",
                                                        "code": "002377"
                                                    },
                                                    {
                                                        "system": "http://www.nlm.nih.gov/research/umls/pdq",
                                                        "code": "CDR0000040475"
                                                    },
                                                    {
                                                        "system": "http://www.nlm.nih.gov/research/umls/rcd",
                                                        "code": "x02MO"
                                                    },
                                                    {
                                                        "system": "http://www.nlm.nih.gov/research/umls/rxnorm",
                                                        "code": "5640"
                                                    },
                                                    {
                                                        "system": "http://snomed.info/sct",
                                                        "code": "E-7772"
                                                    },
                                                    {
                                                        "system": "http://snomed.info/sct/900000000000207008",
                                                        "code": "C-603C0"
                                                    },
                                                    {
                                                        "system": "http://snomed.info/sct/731000124108",
                                                        "code": "387207008"
                                                    },
                                                    {
                                                        "system": "http://www.nlm.nih.gov/research/umls/usp",
                                                        "code": "m39860"
                                                    },
                                                    {
                                                        "system": "http://www.nlm.nih.gov/research/umls/uspmg",
                                                        "code": "MTHU000060"
                                                    },
                                                    {
                                                        "system": "http://hl7.org/fhir/ndfrt",
                                                        "code": "4017840"
                                                    }
                                                ],
                                                "text": "Ibuprofen"
                                            },
                                            "subject": {
                                                "reference": "Patient/68dd21ce-58ae-4e59-9445-8331f99899ed",
                                                "type": "Patient"
                                            },
                                            "context": {
                                                "reference": "Encounter/90c75fea-4526-4e94-82f8-8df3bc983a14",
                                                "type": "Encounter",
                                                "display": "unknown"
                                            },
                                            "dosage": [
                                                {
                                                    "text": "200mg",
                                                    "doseAndRate": [
                                                        {
                                                            "doseQuantity": {
                                                                "value": 200
                                                            }
                                                        }
                                                    ]
                                                }
                                            ]
                                        }
                                    },
                                    {
                                        "fullUrl": "List/c8ca6757-1d7c-4c49-94e9-ef5263cb943c",
                                        "resource": {
                                            "resourceType": "List",
                                            "id": "c8ca6757-1d7c-4c49-94e9-ef5263cb943c",
                                            "status": "current",
                                            "mode": "snapshot",
                                            "title": "General",
                                            "subject": {
                                                "reference": "Patient/68dd21ce-58ae-4e59-9445-8331f99899ed",
                                                "type": "Patient"
                                            },
                                            "encounter": {
                                                "reference": "Encounter/90c75fea-4526-4e94-82f8-8df3bc983a14",
                                                "type": "Encounter",
                                                "display": "unknown"
                                            },
                                            "entry": [
                                                {
                                                    "item": {
                                                        "reference": "MedicationStatement/17aeee32-1189-47fc-9223-8abe174f1292",
                                                        "type": "MedicationStatement",
                                                        "display": "Ibuprofen"
                                                    }
                                                }
                                            ]
                                        }
                                    }
                                ]
                            }
                        }
                    ],
                    "errors": [],
                    "modelVersion": "2022-03-01"
                }
            }
        ]
    }
}

Příspěvek

Strukturování prostředků FHIR (Fast Healthcare Interoperability Resources) je k dispozici pomocí rozhraní REST API jazyka Azure. Klientské knihovny se v současné době nepodporují. Přečtěte si další informace o používání struktury FHIR ve volání rozhraní API.

Požadavky

V levém bočním podokně vyberte Dětské hřiště. Pak vyberte tlačítko Vyzkoušet Azure Language Playground .

Životní cyklus vývoje

Využít analýzu textu pro zdraví ve Foundry Playground

Jazykové hřiště se skládá ze čtyř částí:

  • Horní banner: Tady můžete vybrat některou z aktuálně dostupných jazyků.
  • Pravé podokno: V tomto podokně najdete možnosti konfigurace pro službu, jako je rozhraní API a verze modelu, spolu s funkcemi specifickými pro službu.
  • Prostřední podokno: V tomto podokně zadáte text ke zpracování. Po spuštění operace se tady zobrazí některé výsledky.
  • Pravé podokno: V tomto podokně jsou zobrazeny podrobnosti operace spuštění.

Tady můžete vybrat Analýzu textu pro zdravotnictví výběrem horního dlaždicového banneru, extrahovat informace o zdraví.

Použití extrakce zdravotních informací

Extrahování informací o stavu je určeno k identifikaci a extrahování informací o stavu v textu.

V konfiguraci jsou k dispozici následující možnosti:

Možnost Popis
Výběr verze rozhraní API Vyberte verzi rozhraní API, kterou chcete použít.
Výběr verze modelu Vyberte verzi modelu, kterou chcete použít.
Výběr jazyka textu Vyberte jazyk, ve kterém je jazyk vstupní.
Vrátit výstup ve struktuře FHIR Vrátí výstup ve struktuře FHIR (Fast Healthcare Interoperability Resources).

Po dokončení operace se typ entity zobrazí pod každou entitou v prostředním podokně a oddíl Podrobnosti obsahuje pro každou entitu následující pole:

Pole Popis
Entita Zjištěná entita.
Kategorie Typ zjištěné entity.
Spolehlivost Jak sebevědomý je model ve správnosti identifikace typu entity.

Snímek obrazovky s příkladem extrahování informací o stavu na portálu Foundry

Vyčištění prostředků

Pokud chcete vyčistit a odebrat prostředek Azure AI, můžete odstranit jednotlivé prostředky nebo celou skupinu prostředků. Pokud odstraníte skupinu prostředků, odstraní se také všechny prostředky obsažené v této skupině.

Další kroky