Cette page a été traduite par l'API Cloud Translation.
Switch to English

Utiliser l'API Healthcare Natural Language

Cette page explique comment activer l'API Healthcare Natural Language, configurer des autorisations et appeler la méthode analyzeEntities pour extraire des insights médicaux du texte médical.

Présentation

L'API Healthcare Natural Language fournit des solutions de machine learning permettant de recueillir des informations utiles à partir de texte médical. L'API Healthcare Natural Language fait partie de l'API Cloud Healthcare. Pour une présentation de l'API Healthcare Natural Language, consultez la documentation sur le concept de l'API Healthcare Natural Language.

L'API Healthcare Natural Language analyse du texte médical non structuré, tel que des dossiers médicaux ou des déclarations d'assurance. Elle génère ensuite une représentation des données structurées des entités de connaissances médicales stockées dans ces sources de données pour une analyse et une automatisation en aval. Par exemple, vous pouvez :

  • Extraire des informations sur des concepts médicaux comme les maladies, les médicaments, les dispositifs médicaux, les procédures et leurs attributs pertinents sur le plan médical
  • Mapper des concepts médicaux à des vocabulaires médicaux standards tels que RxNorm, ICD-10 et MeSH
  • Dégager des insights médicaux à partir de texte et les intégrer aux produits d'analyse de données dans Google Cloud

Régions acceptées

L'API Healthcare Natural Language est disponible dans les emplacements suivants :

Nom du lieu Description de l'emplacement
us-central1 Iowa, États-Unis
europe-west4 Pays-Bas

Activer l'API Healthcare Natural Language

Avant de commencer à utiliser l'API Healthcare Natural Language, vous devez l'activer pour votre projet Google Cloud. Vous pouvez utiliser l'API Healthcare Natural Language sans activer ni utiliser les fonctionnalités de l'API Cloud Healthcare.

Pour activer l'API, procédez comme suit :

  1. Connectez-vous à votre compte Google.

    Si vous n'en possédez pas déjà un, vous devez en créer un.

  2. Dans Google Cloud Console, sur la page de sélection du projet, sélectionnez ou créez un projet Google Cloud.

    Accéder à la page de sélection du projet

  3. Assurez-vous que la facturation est activée pour votre projet Cloud. Découvrez comment vérifier que la facturation est activée pour votre projet.

  4. Configurer l'authentification :
    1. Dans Cloud Console, accédez à la page Créer une clé de compte de service.

      Accéder à la page "Créer une clé de compte de service"
    2. Dans la liste Compte de service, sélectionnez Nouveau compte de service.
    3. Dans le champ Nom du compte de service, saisissez un nom.
    4. Dans la liste Rôle, sélectionnez Projet > Propriétaire

    5. Cliquez sur Créer. Un fichier JSON contenant votre clé est téléchargé sur votre ordinateur.
  5. Définissez la variable d'environnement GOOGLE_APPLICATION_CREDENTIALS pour qu'elle pointe vers le chemin du fichier JSON contenant la clé de votre compte de service. Cette variable ne s'applique qu'à la session de shell actuelle. Par conséquent, si vous ouvrez une nouvelle session, vous devez de nouveau la définir.

  6. Activez Cloud Healthcare API.

    Activer l'API

  7. Installez et initialisez le SDK Cloud.

Configurer les autorisations

Pour utiliser les fonctionnalités de ce guide, vous devez disposer de l'autorisation healthcare.nlpservce.analyzeEntities, incluse dans le rôle healthcare.nlpServiceViewer.

Pour attribuer ce rôle, exécutez la commande gcloud projects add-iam-policy-binding :

gcloud projects add-iam-policy-binding PROJECT_ID \
    --member serviceAccount:SERVICE_ACCOUNT_ID \
    --role roles/healthcare.nlpServiceViewer

Extraire des entités, des relations et des attributs contextuels

L'API Healthcare Natural Language utilise des modèles contextuels pour extraire des entités médicales, des relations et des attributs contextuels. Chaque entité de texte est extraite dans une entrée de dictionnaire médical. Pour extraire des insights médicaux de ce niveau à partir de texte médical, utilisez la méthode projects.locations.services.nlp.analyzeEntities.

Pour extraire des insights médicaux d'un texte médical à l'aide de l'API Healthcare Natural Language, envoyez une requête POST et spécifiez les informations suivantes dans la requête :

  • Le nom du service parent, y compris l'ID et l'emplacement du projet.
  • Le texte cible. La taille maximale est de 10 000 caractères Unicode.

curl

L'exemple suivant montre une requête POST utilisant curl :

curl -X POST \
   -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
   -H "Content-Type:application/json" \
   --data "{
    'nlpService':'projects/PROJECT_ID/locations/LOCATION/services/nlp',
    'documentContent':'Insulin regimen human 5 units IV administered.'
   }" \
   "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/services/nlp:analyzeEntities"

PowerShell

L'exemple suivant montre une requête POST utilisant Windows PowerShell :

$cred = gcloud auth application-default print-access-token
$headers = @{ Authorization = "Bearer $cred" }

Invoke-WebRequest `
  -Method Post `
  -Headers $headers `
  -ContentType: "application/json; charset=utf-8" `
  -Body "{
    'nlpService':'projects/PROJECT_ID/locations/LOCATION/services/nlp',
    'documentContent':'Insulin regimen human 5 units IV administered.'
   }" `
   -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/services/nlp:analyzeEntities"  | Select-Object -Expand Content

Si la requête aboutit, la réponse inclut les informations suivantes :

  • Entités de connaissances médicales reconnues
  • Fonctionnalités fonctionnelles
  • Relations entre les entités reconnues
  • Attributs contextuels
  • Mappages des entités de connaissances médicales en termes standards

Pour obtenir la liste des types d'entités, d'attributs et de relations compatibles, consultez la documentation sur les concepts de l'API Healthcare Natural Language.

La réponse suivante tirée des exemples ci-dessus a identifié "Insuline Thérapeutique", l'entité avec le code C581 dans le système de terminologie NCI, en tant que médicament. La réponse inclut également l'indice de confiance attribué à la réponse. Pour en savoir plus sur les champs de réponse, consultez la documentation sur analyzeEntities.

{
  "entityMentions": [
    {
      "mentionId": "1",
      "type": "MEDICINE",
      "text": {
        "content": "Insulin regimen human"
      },
      "linkedEntities": [
        {
          "entityId": "UMLS/3537244"
        },
        {
          "entityId": "UMLS/3714501"
        },
        {
          "entityId": "UMLS/21641"
        },
        {
          "entityId": "UMLS/795635"
        },
        {
          "entityId": "UMLS/1533581"
        },
        {
          "entityId": "UMLS/4721402"
        }
      ],
      "temporalAssessment": {
        "value": "CURRENT",
        "confidence": 0.87631082534790039
      },
      "certaintyAssessment": {
        "value": "LIKELY",
        "confidence": 0.9999774694442749
      },
      "subject": {
        "value": "PATIENT",
        "confidence": 0.99999970197677612
      },
      "confidence": 0.41636556386947632
    },
    {
      "mentionId": "2",
      "type": "MED_DOSE",
      "text": {
        "content": "5 units",
        "beginOffset": 22
      },
      "confidence": 0.56910794973373413
    },
    {
      "mentionId": "3",
      "type": "MED_ROUTE",
      "text": {
        "content": "IV",
        "beginOffset": 30
      },
      "linkedEntities": [
        {
          "entityId": "UMLS/348016"
        }
      ],
      "confidence": 0.9180646538734436
    }
  ],
  "entities": [
    {
      "entityId": "UMLS/1533581",
      "preferredTerm": "Therapeutic Insulin",
      "vocabularyCodes": [
        "MTH/NOCODE",
        "NCI/C581"
      ]
    },
    {
      "entityId": "UMLS/21641",
      "preferredTerm": "Insulin",
      "vocabularyCodes": [
        "FMA/83365",
        "LNC/LA15805-7",
        "LNC/LP14676-8",
        "LNC/LP16325-0",
        "LNC/LP32542-0",
        "LNC/LP70329-5",
        "LNC/MTHU002108",
        "LNC/MTHU019392",
        "MSH/D007328",
        "MTH/NOCODE"
      ]
    },
    {
      "entityId": "UMLS/348016",
      "preferredTerm": "Intravenous",
      "vocabularyCodes": [
        "LNC/LA9437-0",
        "LNC/LP32453-0",
        "MTH/NOCODE",
        "NCI/C13346"
      ]
    },
    {
      "entityId": "UMLS/3537244",
      "preferredTerm": "Insulins",
      "vocabularyCodes": [
        "MSH/D061385",
        "MTH/NOCODE"
      ]
    },
    {
      "entityId": "UMLS/3714501",
      "preferredTerm": "Insulin Drug Class",
      "vocabularyCodes": [
        "MTH/NOCODE",
        "VANDF/4021631"
      ]
    },
    {
      "entityId": "UMLS/4721402",
      "preferredTerm": "INS protein, human",
      "vocabularyCodes": [
        "MTH/NOCODE",
        "NCI/C2271"
      ]
    },
    {
      "entityId": "UMLS/795635",
      "preferredTerm": "insulin, regular, human",
      "vocabularyCodes": [
        "LNC/LP17001-6",
        "MSH/D061386",
        "MTH/NOCODE",
        "NCI/C29125",
        "RXNORM/253182",
        "VANDF/4017559",
        "VANDF/4017569",
        "VANDF/4019786"
      ]
    }
  ],
  "relationships": [
    {
      "subjectId": "1",
      "objectId": "2",
      "confidence": 0.53775161504745483
    },
    {
      "subjectId": "1",
      "objectId": "3",
      "confidence": 0.95007365942001343
    }
  ]
}