Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Certains scénarios nécessitent une réindexation des paramètres de recherche dans le service FHIR® dans Services de données de santé Azure. Ce scénario est pertinent lorsque vous définissez vos propres paramètres de recherche personnalisée. Tant qu’un paramètre de recherche n’est pas indexé, vous ne pouvez pas l’utiliser en production dynamique. Cet article explique comment exécuter un travail de réindexation pour indexer les paramètres de recherche personnalisés dans votre base de données de service FHIR.
Avertissement
Lisez l’intégralité de cet article avant de commencer. Une tâche de réindexation peut être très gourmande en performances. Cet article traite des options pour limiter et contrôler une tâche de réindexation.
Guide pratique pour exécuter un travail de réindexation
Vous pouvez exécuter une tâche de réindexation sur une base de données de service FHIR entière ou sur des paramètres de recherche personnalisés spécifiques.
Exécuter un travail de réindexation sur l’ensemble de la base de données de service FHIR
Pour exécuter un travail de réindexation, utilisez l’appel suivant POST avec la ressource au format Parameters JSON dans le corps de la requête.
POST {{FHIR_URL}}/$reindex
content-type: application/fhir+json
{
"resourceType": "Parameters",
"parameter": []
}
Si vous n’avez pas besoin d’ajuster les ressources allouées au travail de réindexation, laissez le "parameter": [] champ vide (comme indiqué).
Si la demande réussit, vous recevez un code d’état 201 créé en plus d’une Parameters ressource dans la réponse.
HTTP/1.1 201 Created
Content-Location: https://{{FHIR URL}}/_operations/reindex/560c7c61-2c70-4c54-b86d-c53a9d29495e
{
"resourceType": "Parameters",
"id": "560c7c61-2c70-4c54-b86d-c53a9d29495e",
"meta": {
"versionId": "138035"
},
"parameter": [
{
"name": "id",
"valueString": "560c7c61-2c70-4c54-b86d-c53a9d29495e"
},
{
"name": "lastModified",
"valueDateTime": "2023-06-08T04:52:44.0974408+00:00"
},
{
"name": "queuedTime",
"valueDateTime": "2023-06-08T04:52:44.0974406+00:00"
},
{
"name": "totalResourcesToReindex",
"valueDecimal": 0.0
},
{
"name": "resourcesSuccessfullyReindexed",
"valueDecimal": 0.0
},
{
"name": "progress",
"valueDecimal": 0.0
},
{
"name": "status",
"valueString": "Queued"
},
{
"name": "maximumNumberOfResourcesPerQuery",
"valueDecimal": 100.0
},
{
"name": "maximumNumberOfResourcesPerWrite",
"valueDecimal": 100.0
}
]
}
Exécuter un travail de réindexation sur un paramètre de recherche personnalisé spécifique
Pour exécuter une tâche de réindexation sur un paramètre de recherche personnalisé spécifique, utilisez l’appel suivant POST avec la ressource au format Parameters JSON dans le corps de la requête.
POST {{FHIR_URL}}/$reindex
content-type: application/fhir+json
{
"resourceType": "Parameters",
"parameter": [
{
"name": "targetSearchParameterTypes",
"valueString": "{url of custom search parameter. In case of multiple custom search parameters, url list can be comma separated.}"
}
]
}
Remarque
Pour vérifier l’état ou l’annulation d’un travail de réindexation, vous avez besoin de l’ID de réindexation. L’ID de réindexation correspond à "id", figurant dans la valeur "parameter" de la réponse. Dans l’exemple précédent, l’ID du travail de réindexation est 560c7c61-2c70-4c54-b86d-c53a9d29495e.
Comment vérifier l’état d’un travail de réindexation
Après avoir démarré une tâche de réindexation, vérifiez l’état à l’aide de l’appel suivant.
GET {{FHIR_URL}}/_operations/reindex/{{reindexJobId}}
Voici un exemple de réponse.
{
"resourceType": "Parameters",
"id": "560c7c61-2c70-4c54-b86d-c53a9d29495e",
"meta": {
"versionId": "138087"
},
"parameter": [
{
"name": "id",
"valueString": "560c7c61-2c70-4c54-b86d-c53a9d29495e"
},
{
"name": "startTime",
"valueDateTime": "2023-06-08T04:54:53.2943069+00:00"
},
{
"name": "endTime",
"valueDateTime": "2023-06-08T04:54:54.4052272+00:00"
},
{
"name": "lastModified",
"valueDateTime": "2023-06-08T04:54:54.4053002+00:00"
},
{
"name": "queuedTime",
"valueDateTime": "2023-06-08T04:52:44.0974406+00:00"
},
{
"name": "totalResourcesToReindex",
"valueDecimal": 2.0
},
{
"name": "resourcesSuccessfullyReindexed",
"valueDecimal": 2.0
},
{
"name": "progress",
"valueDecimal": 100.0
},
{
"name": "status",
"valueString": "Completed"
},
{
"name": "resources",
"valueString": "{{LIST_OF_IMPACTED_RESOURCES}}"
},
{
"name": "resourceReindexProgressByResource (CountReindexed of Count)",
"valueString": "{{RESOURCE_TYPE:REINDEXED_COUNT OF TOTAL_COUNT}}"
},
{
"name": "searchParams",
"valueString": "{{LIST_OF_SEARCHPARAM_URLS}}"
},
{
"name": "maximumNumberOfResourcesPerQuery",
"valueDecimal": 100.0
},
{
"name": "maximumNumberOfResourcesPerWrite",
"valueDecimal": 100.0
}
]
}
La réponse précédente affiche les informations suivantes :
| Paramètre | Description |
|---|---|
totalResourcesToReindex |
Nombre total de ressources que le travail réindexe. |
resourcesSuccessfullyReindexed |
Nombre total de ressources que la tâche réindexe. |
progress |
Pourcentage d’avancement de l’opération de réindexation. Égal à resourcesSuccessfullyReindexed divisé par totalResourcesToReindex, multiplié par 100. |
status |
État du travail de réindexation. Elle peut être en attente, en cours d’exécution, terminée, échouée ou annulée. |
resources |
Tous les types de ressources affectés par la tâche de réindexation. |
resourceReindexProgressByResource (CountReindexed of Count) |
Nombre réindexé du nombre total, par type de ressource. Si la réindexation d’un type de ressource spécifique est en attente, seul Count est fourni. |
searchParams |
URL des paramètres de recherche impactés par le travail de réindexation. |
Annuler un travail de réindexation
Pour annuler une tâche de réindexation, utilisez un DELETE appel et spécifiez l’ID de travail de réindexation.
DELETE {{FHIR URL}}/_operations/reindex/{{reindexJobId}}
Considérations relatives aux performances
Une tâche de réindexation peut être très gourmande en performances. Le service FHIR offre des mécanismes de limitation pour vous aider à contrôler l’exécution d’un travail de réindexation sur votre base de données. Utilisez le MaximumResourcesPerQuery paramètre pour accélérer le processus (utiliser plus de calcul) ou ralentir le processus (utilisez moins de calcul). Le MaximumResourcesPerQuery paramètre définit le nombre maximal de ressources incluses dans le lot à réindexer. La valeur par défaut est 100 et vous pouvez définir la valeur comprise entre 1 et 5 000.
Exemple de requête avec le paramètre :
POST {{FHIR_URL}}/$reindex
content-type: application/fhir+json
{
"resourceType": "Parameters",
"parameter": [
{
"name": "maximumNumberOfResourcesPerQuery",
"valueInteger": "1"
}
]
}
Remarque
Il n’est pas rare qu’un travail de réindexation sur des jeux de données volumineux s’exécute pendant des jours.
Étapes suivantes
Dans cet article, vous avez appris à effectuer une tâche de réindexation dans votre service FHIR. Pour savoir comment définir des paramètres de recherche personnalisés, consultez
Remarque
FHIR® est une marque déposée de HL7 utilisé avec l’autorisation de HL7.