Een herindextaak uitvoeren
Er zijn scenario's waarin u mogelijk zoekparameters hebt in de FHIR-service® in Azure Health Data Services die nog moeten worden geïndexeerd. Dit scenario is relevant wanneer u uw eigen aangepaste zoekparameters definieert. Totdat een zoekparameter is geïndexeerd, kan deze niet worden gebruikt in liveproductie. In dit artikel wordt beschreven hoe u een taak voor opnieuw indexeren uitvoert om aangepaste zoekparameters in uw FHIR-servicedatabase te indexeren.
Waarschuwing
Het is belangrijk dat u dit hele artikel leest voordat u aan de slag gaat. Een herindextaak kan zeer prestatieintensief zijn. In dit artikel worden opties besproken voor het beperken en beheren van een herindextaak.
Een herindextaak uitvoeren
Een herindextaak kan worden uitgevoerd op een volledige FHIR-servicedatabase en op basis van specifieke aangepaste zoekparameters.
Een taak opnieuw indexeren uitvoeren op de volledige FHIR-servicedatabase
Als u een herindextaak wilt uitvoeren, gebruikt u de volgende POST
aanroep met de met JSON opgemaakte Parameters
resource in de aanvraagbody.
POST {{FHIR_URL}}/$reindex
content-type: application/fhir+json
{
"resourceType": "Parameters",
"parameter": []
}
Laat het "parameter": []
veld leeg (zoals weergegeven) als u de resources die zijn toegewezen aan de herindextaak niet hoeft aan te passen.
Als de aanvraag is geslaagd, ontvangt u een statuscode voor 201 gemaakt naast een Parameters
resource in het antwoord.
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": "maximumConcurrency",
"valueDecimal": 3.0
},
{
"name": "queryDelayIntervalInMilliseconds",
"valueDecimal": 500.0
},
{
"name": "maximumNumberOfResourcesPerQuery",
"valueDecimal": 100.0
}
]
}
Een taak opnieuw indexeren op basis van een specifieke aangepaste zoekparameter
Als u een herindextaak wilt uitvoeren op basis van een specifieke aangepaste zoekparameter, gebruikt u de volgende POST
aanroep met de met JSON opgemaakte Parameters
resource in de aanvraagbody.
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.}"
}
]
}
Notitie
Als u de status van een herindextaak wilt controleren of annuleren, hebt u de herindex-id nodig. Dit is de "id"
waarde "parameter"
van het antwoord. In het voorgaande voorbeeld is 560c7c61-2c70-4c54-b86d-c53a9d29495e
de id voor de herindextaak.
De status van een taak opnieuw indexeren
Wanneer u een taak opnieuw indexeren start, kunt u de status van de taak controleren met behulp van de volgende aanroep.
GET {{FHIR_URL}}/_operations/reindex/{{reindexJobId}}
Hieronder volgt een voorbeeld van een antwoord.
{
"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": "maximumConcurrency",
"valueDecimal": 3.0
},
{
"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": "queryDelayIntervalInMilliseconds",
"valueDecimal": 500.0
},
{
"name": "maximumNumberOfResourcesPerQuery",
"valueDecimal": 100.0
}
]
}
De volgende informatie wordt weergegeven in het voorgaande antwoord:
totalResourcesToReindex
: Bevat het totale aantal resources dat opnieuw wordt geïndexeerd in deze taak.resourcesSuccessfullyReindexed
: Het totale aantal resources dat al opnieuw is geïndexeerd in deze taak.progress
: Indexeren van taakpercentage voltooid.resourcesSuccessfullyReindexed
/totalResourcesToReindex
Is gelijk aan x 100.status
: Geeft aan of de taak opnieuw wordt geïndexeerd, uitgevoerd, voltooid, mislukt of geannuleerd.resources
: geeft een lijst weer van alle resourcetypen die worden beïnvloed door de herindextaak.'resourceReindexProgressByResource (CountReindexed of Count)': biedt een opnieuw geïndexeerd aantal van het totale aantal per resourcetype. In gevallen waarin opnieuw indexeren voor een specifiek resourcetype in de wachtrij wordt geplaatst, wordt alleen Aantal opgegeven.
'searchParams': een lijst met url's van de zoekparameters die worden beïnvloed door de taak voor opnieuw indexeren.
Een taak opnieuw indexeren verwijderen
Als u een herindextaak wilt annuleren, gebruikt u een DELETE
aanroep en geeft u de taak-id opnieuw indexeren op.
DELETE {{FHIR URL}}/_operations/reindex/{{reindexJobId}}
Prestatieoverwegingen
Een herindextaak kan behoorlijk prestatie-intensief zijn. De FHIR-service biedt beperkingen om te beheren hoe een herindexeringstaak wordt uitgevoerd op uw database.
Notitie
Het is niet ongebruikelijk dat grote gegevenssets een taak opnieuw indexeren voor dagen.
Hieronder ziet u een tabel met de beschikbare parameters, standaardwaarden en aanbevolen bereiken voor het beheren van rekenresources voor opnieuw indexeren van taken. U kunt deze parameters gebruiken om het proces te versnellen (meer rekenkracht gebruiken) of het proces te vertragen (minder rekenkracht gebruiken).
Parameter | Beschrijving | Standaard | Beschikbaar bereik |
---|---|---|---|
QueryDelayIntervalInMilliseconds |
De vertraging tussen elke batch resources die wordt gestart tijdens het opnieuw indexeren van de taak. Een kleiner getal versnelt de taak terwijl een groter getal dit vertraagt. | 500 MS (,5 seconden) | 50 tot 500000 |
MaximumResourcesPerQuery |
Het maximum aantal resources dat in de batch is opgenomen om opnieuw te worden geïndexeerd. | 100 | 1-5000 |
MaximumConcurrency |
Het aantal batches dat tegelijk wordt uitgevoerd. | 1 | 1-10 |
Als u een van de voorgaande parameters wilt gebruiken, kunt u deze doorgeven aan de Parameters
resource wanneer u de eerste POST
aanvraag verzendt om een herindexeertaak te starten.
POST {{FHIR_URL}}/$reindex
content-type: application/fhir+json
{
"resourceType": "Parameters",
"parameter": [
{
"name": "maximumConcurrency",
"valueInteger": "3"
},
{
"name": "queryDelayIntervalInMilliseconds",
"valueInteger": "1000"
},
{
"name": "maximumNumberOfResourcesPerQuery",
"valueInteger": "1"
}
]
}
Volgende stappen
In dit artikel hebt u geleerd hoe u een herindextaak uitvoert in uw FHIR-service. Zie voor meer informatie over het definiëren van aangepaste zoekparameters
Notitie
FHIR® is een geregistreerd handelsmerk van HL7 en wordt gebruikt met de machtiging HL7.