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 les concepts 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, MeSH et SNOMED CT (utilisateurs américains seulement)
  • Dégager des insights médicaux à partir de texte et les intégrer aux produits d'analyse de données dans Google Cloud

Emplacements disponibles

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

Nom du lieu Description de l'emplacement
asia-south1 Mumbai, Inde
australia-southeast1 Sydney, Australie
europe-west2 Londres, Royaume-Uni
europe-west4 Pays-Bas
northamerica-northeast1 Montréal, Canada
us-central1 Iowa, États-Unis

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 Cloud. Si vous débutez sur Google Cloud, créez un compte pour évaluer les performances de nos produits en conditions réelles. Les nouveaux clients bénéficient également de 300 $ de crédits gratuits pour exécuter, tester et déployer des charges de travail.
  2. Dans Google Cloud Console, sur la page de sélection du projet, sélectionnez ou créez un projet Google Cloud.

    Accéder au sélecteur de projet

  3. Vérifiez que la facturation est activée pour votre projet Google Cloud.

  4. Créez un compte de service :

    1. Dans la console Google Cloud, accédez à la page Créer un compte de service.

      Accéder à la page "Créer un compte de service"
    2. Sélectionnez votre projet.
    3. Dans le champ Nom du compte de service, saisissez un nom. La console Google Cloud remplit le champ ID du compte de service en fonction de ce nom.

      Dans le champ Description du compte de service, saisissez une description. Exemple : Service account for quickstart.

    4. Cliquez sur Créer et continuer.
    5. Attribuez le rôle Project > Owner au compte de service.

      Pour accorder le rôle, trouvez la liste Sélectionner un rôle, puis sélectionnez Project > Owner.

    6. Cliquez sur Continuer.
    7. Cliquez sur OK pour terminer la création du compte de service.

      Ne fermez pas la fenêtre de votre navigateur. Vous en aurez besoin lors de la tâche suivante.

  5. Créez une clé de compte de service :

    1. Dans la console Google Cloud, cliquez sur l'adresse e-mail du compte de service que vous avez créé.
    2. Cliquez sur Keys (Clés).
    3. Cliquez sur Ajouter une clé, puis sur Créer une clé.
    4. Cliquez sur Create (Créer). Un fichier de clé JSON est téléchargé sur votre ordinateur.
    5. Cliquez sur Close (Fermer).
  6. Définissez la variable d'environnement GOOGLE_APPLICATION_CREDENTIALS sur le chemin d'accès du fichier JSON contenant vos identifiants. 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.

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

    Accéder au sélecteur de projet

  8. Vérifiez que la facturation est activée pour votre projet Google Cloud.

  9. Créez un compte de service :

    1. Dans la console Google Cloud, accédez à la page Créer un compte de service.

      Accéder à la page "Créer un compte de service"
    2. Sélectionnez votre projet.
    3. Dans le champ Nom du compte de service, saisissez un nom. La console Google Cloud remplit le champ ID du compte de service en fonction de ce nom.

      Dans le champ Description du compte de service, saisissez une description. Exemple : Service account for quickstart.

    4. Cliquez sur Créer et continuer.
    5. Attribuez le rôle Project > Owner au compte de service.

      Pour accorder le rôle, trouvez la liste Sélectionner un rôle, puis sélectionnez Project > Owner.

    6. Cliquez sur Continuer.
    7. Cliquez sur OK pour terminer la création du compte de service.

      Ne fermez pas la fenêtre de votre navigateur. Vous en aurez besoin lors de la tâche suivante.

  10. Créez une clé de compte de service :

    1. Dans la console Google Cloud, cliquez sur l'adresse e-mail du compte de service que vous avez créé.
    2. Cliquez sur Keys (Clés).
    3. Cliquez sur Ajouter une clé, puis sur Créer une clé.
    4. Cliquez sur Create (Créer). Un fichier de clé JSON est téléchargé sur votre ordinateur.
    5. Cliquez sur Close (Fermer).
  11. Définissez la variable d'environnement GOOGLE_APPLICATION_CREDENTIALS sur le chemin d'accès du fichier JSON contenant vos identifiants. 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.

  12. Activez Cloud Healthcare API.

    Activer l'API

  13. Installez Google Cloud CLI.
  14. Pour initialiser gcloudCLI, exécutez la commande suivante :

    gcloud init

Configurer les autorisations

Pour utiliser les fonctionnalités de ce guide, vous devez disposer de l'autorisation healthcare.nlpservice.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 les entités, les relations et les 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 inclure le vocabulaire sous licence SNOMED CT dans les mentions de votre entité, consultez Inclure les vocabulaires sous licence.

Pour extraire des insights médicaux d'un texte médical à l'aide de l'API Healthcare Natural Language, exécutez une requête POST et spécifiez le texte cible dans le champ documentContent. La taille maximale du texte médical est de 20 000 caractères Unicode.

Les exemples suivants montrent comment utiliser la méthode analyzeEntities pour extraire des informations médicales du texte médical "Régime d'insuline 5 unités IV sera administré pour le diabète".

REST

Avant d'utiliser les données de requête, effectuez les remplacements suivants:

  • PROJECT_ID : ID de votre projet Google Cloud
  • LOCATION : emplacement de l'ensemble de données

Corps JSON de la requête :

{
  "documentContent": "Insulin regimen 5 units IV will be administered for diabetes."
}

Pour envoyer votre requête, choisissez l'une des options suivantes :

curl

Enregistrez le corps de la requête dans un fichier nommé request.json. Exécutez la commande suivante dans le terminal pour créer ou écraser ce fichier dans le répertoire actuel :

cat > request.json << 'EOF'
{
  "documentContent": "Insulin regimen 5 units IV will be administered for diabetes."
}
EOF

Exécutez ensuite la commande suivante pour envoyer votre requête REST :

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d @request.json \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/services/nlp:analyzeEntities"

PowerShell

Enregistrez le corps de la requête dans un fichier nommé request.json. Exécutez la commande suivante dans le terminal pour créer ou écraser ce fichier dans le répertoire actuel :

@'
{
  "documentContent": "Insulin regimen 5 units IV will be administered for diabetes."
}
'@  | Out-File -FilePath request.json -Encoding utf8

Exécutez ensuite la commande suivante pour envoyer votre requête REST :

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

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json" `
-InFile request.json `
-Uri "https://healthcare.googleapis.com/v1/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 acceptés, consultez la page Fonctionnalités de l'API Healthcare Natural Language.

La réponse suivante identifie l'insuline thérapeutique, l'entité ayant le code C581 dans le système terminologique NCI, comme 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.

Inclure des vocabulaires sous licence

Par défaut, les réponses de l'API Healthcare Natural Language incluent les vocabulaires médicaux compatibles.

Vous pouvez inclure le vocabulaire SNOMED Clinical Terms, US Version (SNOMEDCT_US) dans la réponse si votre requête répond aux exigences suivantes:

  • La requête API provient des États-Unis.
  • Le champ licensedVocabularies dans le corps de la requête a la valeur SNOMEDCT_US.

Si vous n'avez pas besoin du vocabulaire CT SNOMED, aucune de ces restrictions ne s'applique.

L'exemple suivant montre comment inclure le vocabulaire sous licence SNOMED CT dans l'objet LicensedVocabularies afin d'extraire des informations médicales du texte médical "Insulin regimen 5 Units IV sera administré pour le diabète".

REST

Avant d'utiliser les données de requête, effectuez les remplacements suivants:

  • PROJECT_ID : ID de votre projet Google Cloud
  • LOCATION : emplacement de l'ensemble de données

Corps JSON de la requête :

{
  "documentContent": "Insulin regimen 5 units IV will be administered for diabetes.",
  "licensedVocabularies": [
    "SNOMEDCT_US",
    "ICD10CM"
  ]
}

Pour envoyer votre requête, choisissez l'une des options suivantes :

curl

Enregistrez le corps de la requête dans un fichier nommé request.json. Exécutez la commande suivante dans le terminal pour créer ou écraser ce fichier dans le répertoire actuel :

cat > request.json << 'EOF'
{
  "documentContent": "Insulin regimen 5 units IV will be administered for diabetes.",
  "licensedVocabularies": [
    "SNOMEDCT_US",
    "ICD10CM"
  ]
}
EOF

Exécutez ensuite la commande suivante pour envoyer votre requête REST :

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d @request.json \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/services/nlp:analyzeEntities"

PowerShell

Enregistrez le corps de la requête dans un fichier nommé request.json. Exécutez la commande suivante dans le terminal pour créer ou écraser ce fichier dans le répertoire actuel :

@'
{
  "documentContent": "Insulin regimen 5 units IV will be administered for diabetes.",
  "licensedVocabularies": [
    "SNOMEDCT_US",
    "ICD10CM"
  ]
}
'@  | Out-File -FilePath request.json -Encoding utf8

Exécutez ensuite la commande suivante pour envoyer votre requête REST :

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

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json" `
-InFile request.json `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/services/nlp:analyzeEntities" | Select-Object -Expand Content
Si la requête aboutit, la réponse inclut des codes de vocabulaire des vocabulaires sous licence SNOMEDCT_US et ICD10CM. Le résultat est le suivant, et les codes de vocabulaire sous licence demandés sont en gras :

Extraire la sortie en tant que bundle FHIR R4

Vous pouvez extraire des entités d'un texte et les mapper à des ressources et éléments FHIR R4. Le bundle FHIR R4 obtenu inclut toutes les entités, mentions d'entités et relations au format JSON. Par exemple, l'API Healthcare Natural Language mappe l'entité de base PROBLEM à la ressource FHIR R4 Condition et l'entité PROBLEM.ANATOMICAL_STRUCTURE à l'élément FHIR Condition.bodySite. Pour obtenir la liste des autres mappages, consultez la sortie de l'API Healthcare Natural Language en tant que bundle FHIR.

Les exemples suivants montrent comment extraire des informations médicales du texte médical "Insulin regimen 5 Units IV sera administré pour le diabète" dans un pack FHIR R4. Pour en savoir plus, consultez la section concernant l'objet AlternativeOutputFormat.

REST

Avant d'utiliser les données de requête, effectuez les remplacements suivants:

  • PROJECT_ID : ID de votre projet Google Cloud
  • LOCATION : emplacement de l'ensemble de données

Corps JSON de la requête :

{
  "documentContent": "Insulin regimen 5 units IV will be administered for diabetes.",
  "alternativeOutputFormat": "FHIR_BUNDLE"
}

Pour envoyer votre requête, choisissez l'une des options suivantes :

curl

Enregistrez le corps de la requête dans un fichier nommé request.json. Exécutez la commande suivante dans le terminal pour créer ou écraser ce fichier dans le répertoire actuel :

cat > request.json << 'EOF'
{
  "documentContent": "Insulin regimen 5 units IV will be administered for diabetes.",
  "alternativeOutputFormat": "FHIR_BUNDLE"
}
EOF

Exécutez ensuite la commande suivante pour envoyer votre requête REST :

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d @request.json \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/services/nlp:analyzeEntities"

PowerShell

Enregistrez le corps de la requête dans un fichier nommé request.json. Exécutez la commande suivante dans le terminal pour créer ou écraser ce fichier dans le répertoire actuel :

@'
{
  "documentContent": "Insulin regimen 5 units IV will be administered for diabetes.",
  "alternativeOutputFormat": "FHIR_BUNDLE"
}
'@  | Out-File -FilePath request.json -Encoding utf8

Exécutez ensuite la commande suivante pour envoyer votre requête REST :

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

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json" `
-InFile request.json `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/services/nlp:analyzeEntities" | Select-Object -Expand Content
Si la requête aboutit, la réponse contient un objet JSON avec les entrées suivantes :
  • L'entité reconnue mentionne les entités et leurs relations dans un format semblable à la sortie présentée dans la section Extraire les entités, les relations et les attributs contextuels.
  • Une clé fhirBundle contenant une ressource de bundle FHIR au format chaîne. Le bundle FHIR comprend toutes les entités, les entités mentionnées et les relations au format JSON.