Menjalankan pekerjaan indeks ulang
Ada skenario di mana Anda mungkin memiliki parameter pencarian dalam layanan FHIR di Azure Health Data Services yang belum diindeks. Skenario ini relevan saat Anda menentukan parameter pencarian kustom Anda sendiri. Hingga parameter pencarian diindeks, parameter tidak dapat digunakan dalam produksi langsung. Artikel ini membahas cara menjalankan pekerjaan indeks ulang untuk mengindeks parameter pencarian kustom apa pun yang belum diindeks dalam database layanan FHIR Anda.
Peringatan
Penting bagi Anda untuk membaca seluruh artikel ini sebelum memulai. Pekerjaan reindex bisa sangat intensif performa. Artikel ini membahas opsi tentang cara membatasi dan mengontrol pekerjaan pengindeksan ulang.
Cara menjalankan pekerjaan reindex
Pekerjaan indeks ulang dapat dijalankan terhadap seluruh database layanan FHIR dan terhadap parameter pencarian kustom tertentu.
Menjalankan pekerjaan indeks ulang pada seluruh database layanan FHIR
Untuk menjalankan pekerjaan indeks ulang, gunakan panggilan berikut POST
dengan sumber daya berformat Parameters
JSON di isi permintaan:
POST {{FHIR_URL}}/$reindex
content-type: application/fhir+json
{
"resourceType": "Parameters",
"parameter": []
}
Biarkan bidang kosong (seperti yang "parameter": []
ditunjukkan) jika Anda tidak perlu mengubah sumber daya yang dialokasikan ke pekerjaan indeks ulang.
Jika permintaan berhasil, Anda menerima kode status 201 Dibuat selain Parameters
sumber daya dalam respons.
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
}
]
}
Menjalankan pekerjaan pengindeksian ulang terhadap parameter pencarian kustom tertentu
Untuk menjalankan pekerjaan indeks ulang terhadap parameter pencarian kustom tertentu, gunakan panggilan berikut POST
dengan sumber daya berformat Parameters
JSON di isi permintaan:
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.}"
}
]
}
Catatan
Untuk memeriksa status pekerjaan reindex atau membatalkan pekerjaan, Anda memerlukan ID indeks ulang. Ini adalah yang "id"
dibawa dalam nilai yang "parameter"
dikembalikan dalam respons. Dalam contoh di atas, ID untuk pekerjaan indeks ulang adalah 560c7c61-2c70-4c54-b86d-c53a9d29495e
.
Cara memeriksa status pekerjaan indeks ulang
Setelah memulai pekerjaan indeks ulang, Anda dapat memeriksa status pekerjaan menggunakan panggilan berikut:
GET {{FHIR_URL}}/_operations/reindex/{{reindexJobId}}
Contoh respons:
{
"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
}
]
}
Informasi berikut diperlihatkan dalam respons di atas:
totalResourcesToReindex
: Mencakup jumlah total sumber daya yang sedang diindeks ulang dalam pekerjaan ini.resourcesSuccessfullyReindexed
: Jumlah total sumber daya yang telah diindeks ulang dalam pekerjaan ini.progress
: Mengindeks ulang persentase pekerjaan selesai.resourcesSuccessfullyReindexed
/totalResourcesToReindex
Sama dengan x 100.status
: Menyatakan jika pekerjaan indeks ulang diantrekan, berjalan, selesai, gagal, atau dibatalkan.resources
: Mencantumkan semua jenis sumber daya yang terpengaruh oleh pekerjaan reindex.'resourceReindexProgressByResource (CountReindexed of Count)': Menyediakan jumlah total yang diindeks ulang, per jenis sumber daya. Dalam kasus di mana pengindeksan ulang untuk jenis sumber daya tertentu diantrekan, hanya Hitungan yang disediakan.
'searchParams': Mencantumkan url parameter pencarian yang terpengaruh oleh pekerjaan reindex.
Menghapus pekerjaan indeks ulang
Jika Anda perlu membatalkan pekerjaan indeks ulang, gunakan DELETE
panggilan dan tentukan ID pekerjaan indeks ulang:
DELETE {{FHIR URL}}/_operations/reindex/{{reindexJobId}}
Pertimbangan performa
Pekerjaan reindex bisa sangat intensif performa. Layanan FHIR menawarkan beberapa kontrol pembatasan untuk membantu Anda mengelola bagaimana pekerjaan pengindeksan ulang berjalan pada database Anda.
Catatan
Tidak jarang pada himpunan data besar agar pekerjaan reindex berjalan selama berhari-hari.
Di bawah ini adalah tabel yang menguraikan parameter, default, dan rentang yang direkomendasikan yang tersedia untuk mengontrol sumber daya komputasi pekerjaan pengindeksan ulang. Anda dapat menggunakan parameter ini untuk mempercepat proses (gunakan lebih banyak komputasi) atau memperlambat proses (gunakan lebih sedikit komputasi).
Parameter | Deskripsi | Default | Rentang yang Tersedia |
---|---|---|---|
QueryDelayIntervalInMilliseconds |
Penundaan antara setiap batch sumber daya yang dimulai selama pekerjaan indeks ulang. Angka yang lebih kecil mempercepat pekerjaan sementara angka yang lebih besar memperlambatnya. | 500 MS (,5 detik) | 50 hingga 500000 |
MaximumResourcesPerQuery |
Jumlah maksimum sumber daya yang disertakan dalam batch sumber daya yang akan diindeks ulang. | 100 | 1-5000 |
MaximumConcurrency |
Jumlah batch yang dilakukan pada satu waktu. | 1 | 1-10 |
Jika Anda ingin menggunakan salah satu parameter di atas, Anda dapat meneruskannya ke Parameters
sumber daya saat mengirim permintaan awal POST
untuk memulai pekerjaan indeks ulang.
POST {{FHIR_URL}}/$reindex
content-type: application/fhir+json
{
"resourceType": "Parameters",
"parameter": [
{
"name": "maximumConcurrency",
"valueInteger": "3"
},
{
"name": "queryDelayIntervalInMilliseconds",
"valueInteger": "1000"
},
{
"name": "maximumNumberOfResourcesPerQuery",
"valueInteger": "1"
}
]
}
Langkah berikutnya
Dalam artikel ini, Anda telah mempelajari cara melakukan pekerjaan indeks ulang di layanan FHIR Anda. Untuk mempelajari cara menentukan parameter pencarian kustom, lihat
FHIR® adalah merek dagang terdaftar HL7 dan digunakan dengan izin HL7.