Cette page explique comment activer l'API Healthcare Natural Language, configurer
des autorisations et appeler la analyzeEntities
méthode 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 et britanniques seulement)
- 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 |
|---|---|
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 Google Cloud projet. 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 :
- Connectez-vous à votre Google Cloud compte. 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 sans frais pour exécuter, tester et déployer des charges de travail.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
Create a service account:
-
Ensure that you have the Create Service Accounts IAM role
(
roles/iam.serviceAccountCreator) and the Project IAM Admin role (roles/resourcemanager.projectIamAdmin). Learn how to grant roles. -
In the Google Cloud console, go to the Create service account page.
Go to Create service account - Select your project.
-
In the Service account name field, enter a name. The Google Cloud console fills in the Service account ID field based on this name.
In the Service account description field, enter a description. For example,
Service account for quickstart. - Click Create and continue.
-
Grant the Project > Owner role to the service account.
To grant the role, find the Select a role list, then select Project > Owner.
- Click Continue.
-
Click Done to finish creating the service account.
Do not close your browser window. You will use it in the next step.
-
Ensure that you have the Create Service Accounts IAM role
(
-
Create a service account key:
- In the Google Cloud console, click the email address for the service account that you created.
- Click Keys.
- Click Add key, and then click Create new key.
- Click Create. A JSON key file is downloaded to your computer.
- Click Close.
-
Set the environment variable
GOOGLE_APPLICATION_CREDENTIALSto the path of the JSON file that contains your credentials. This variable applies only to your current shell session, so if you open a new session, set the variable again. -
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
Create a service account:
-
Ensure that you have the Create Service Accounts IAM role
(
roles/iam.serviceAccountCreator) and the Project IAM Admin role (roles/resourcemanager.projectIamAdmin). Learn how to grant roles. -
In the Google Cloud console, go to the Create service account page.
Go to Create service account - Select your project.
-
In the Service account name field, enter a name. The Google Cloud console fills in the Service account ID field based on this name.
In the Service account description field, enter a description. For example,
Service account for quickstart. - Click Create and continue.
-
Grant the Project > Owner role to the service account.
To grant the role, find the Select a role list, then select Project > Owner.
- Click Continue.
-
Click Done to finish creating the service account.
Do not close your browser window. You will use it in the next step.
-
Ensure that you have the Create Service Accounts IAM role
(
-
Create a service account key:
- In the Google Cloud console, click the email address for the service account that you created.
- Click Keys.
- Click Add key, and then click Create new key.
- Click Create. A JSON key file is downloaded to your computer.
- Click Close.
-
Set the environment variable
GOOGLE_APPLICATION_CREDENTIALSto the path of the JSON file that contains your credentials. This variable applies only to your current shell session, so if you open a new session, set the variable again. Activez l'API Cloud Healthcare.
Rôles requis pour activer les API
Pour activer les API, vous avez besoin du rôle IAM Administrateur d'utilisation du service (
roles/serviceusage.serviceUsageAdmin), qui contient l'autorisationserviceusage.services.enable. Découvrez comment attribuer des rôles.-
Installez la Google Cloud CLI.
-
Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.
-
Pour initialiser la gcloud CLI, 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
gcloud projects add-iam-policy-binding
commande :
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
projects.locations.services.nlp.analyzeEntities
méthode.
Pour inclure le vocabulaire sous licence SNOMED CT dans vos mentions d'entités, consultez Inclure des vocabulaires sous licence.
Pour extraire des insights médicaux d'un texte médical à l'aide de l'API Healthcare Natural Language, envoyez une POST requête et spécifiez le texte cible dans
le
documentContent
champ. 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 insights médicaux du texte médical "Insulin regimen 5 units IV will be administered for diabetes.".
REST
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
PROJECT_ID: ID de votre Google Cloud projetLOCATION: 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."
}
EOFExé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 utf8Exé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 compatibles, consultez les fonctionnalités de l'API Healthcare Natural Language.
La réponse suivante identifie "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
analyzeEntities
documentation.
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 SNOMEDCT_US (SNOMED Clinical Terms, US Version) dans la réponse si votre requête répond aux exigences suivantes :
- La requête API provient des États-Unis.
- Le champ
licensedVocabulariesdu corps de la requête a la valeurSNOMEDCT_US.
Si vous n'avez pas besoin du vocabulaire SNOMED CT, aucune de ces restrictions ne s'applique.
L'exemple suivant montre comment inclure le vocabulaire sous licence SNOMED CT dans l'
LicensedVocabularies
objet pour extraire des
insights médicaux du texte médical "Insulin regimen 5 units IV will be
administered for diabetes.".
REST
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
PROJECT_ID: ID de votre Google Cloud projetLOCATION: 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"
]
}
EOFExé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 utf8Exé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
SNOMEDCT_US et ICD10CM. La sortie est la suivante et les codes de vocabulaire sous licence demandés sont en gras :
Extraire la sortie sous forme de groupe FHIR R4
Vous pouvez extraire des entités à partir de texte et les mapper à des ressources et des éléments FHIR R4. Le groupe FHIR R4 obtenu inclut toutes les entités, les mentions d'entités et les 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
Sortie de l'API Healthcare Natural Language sous forme de groupe FHIR.
Les exemples suivants montrent comment extraire des insights médicaux du texte médical "Insulin regimen 5 units IV will be administered for diabetes." dans un groupe FHIR R4.
Pour en savoir plus, consultez
AlternativeOutputFormat
objet.
REST
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
PROJECT_ID: ID de votre Google Cloud projetLOCATION: 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"
}
EOFExé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 utf8Exé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
- Les mentions d'entités reconnues avec les entités et leurs relations dans un format semblable à la sortie de la section Extraire des entités, des relations et des attributs contextuels.
- Une clé
fhirBundlecontenant une ressource de groupe FHIR au format chaîne. Le groupe FHIR inclut toutes les entités, les mentions d'entités et les relations au format JSON.