Bagikan melalui


Menjalankan pekerjaan pengindeksian ulang

Ada skenario di mana Anda mungkin memiliki parameter pencarian di 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 pengindeksan ulang untuk mengindeks parameter pencarian kustom apa pun di database layanan FHIR Anda.

Peringatan

Penting bahwa Anda membaca seluruh artikel ini sebelum memulai. Pekerjaan reindex bisa sangat intensif performa. Artikel ini membahas opsi tentang cara membatasi dan mengontrol pekerjaan reindex.

Cara menjalankan pekerjaan reindex

Pekerjaan reindex dapat dijalankan terhadap seluruh database layanan FHIR, dan terhadap parameter pencarian kustom tertentu.

Menjalankan pekerjaan reindex di seluruh database layanan FHIR

Untuk menjalankan pekerjaan reindex, 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 menyesuaikan 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 reindex terhadap parameter pencarian kustom tertentu

Untuk menjalankan pekerjaan reindex 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, atau membatalkan pekerjaan reindex, Anda memerlukan ID indeks ulang. Ini adalah yang "id" dibawa dalam "parameter" nilai respons. Dalam contoh sebelumnya, ID untuk pekerjaan reindex adalah 560c7c61-2c70-4c54-b86d-c53a9d29495e.

Cara memeriksa status pekerjaan reindex

Setelah memulai pekerjaan reindex, Anda dapat memeriksa status pekerjaan menggunakan panggilan berikut.

GET {{FHIR_URL}}/_operations/reindex/{{reindexJobId}}

Contoh respons adalah.

{
    "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 sebelumnya:

  • 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: Persentase pekerjaan reindex selesai. resourcesSuccessfullyReindexed/totalResourcesToReindex Sama dengan x 100.

  • status: Menyatakan jika pekerjaan pengindeksan 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 pengindeksian ulang

Jika Anda perlu membatalkan pekerjaan reindex, gunakan DELETE panggilan dan tentukan ID pekerjaan reindex.

DELETE {{FHIR URL}}/_operations/reindex/{{reindexJobId}}

Pertimbangan performa

Pekerjaan reindex bisa sangat intensif performa. Layanan FHIR menawarkan kontrol pembatasan untuk membantu mengelola bagaimana pekerjaan reindex berjalan pada database Anda.

Catatan

Tidak jarang pada himpunan data besar agar pekerjaan reindex berjalan selama ber hari.

Di bawah ini adalah tabel yang menguraikan parameter, default, dan rentang yang direkomendasikan yang tersedia untuk mengontrol sumber daya komputasi pekerjaan reindex. Anda dapat menggunakan parameter ini untuk mempercepat proses (menggunakan lebih banyak komputasi) atau memperlambat proses (gunakan lebih sedikit komputasi).

Parameter Keterangan Default Rentang yang Tersedia
QueryDelayIntervalInMilliseconds Penundaan antara setiap batch sumber daya yang dimulai selama pekerjaan indeks ulang. Jumlah yang lebih kecil mempercepat pekerjaan sementara jumlah yang lebih besar memperlambatnya. 500 MS (,5 detik) 50 hingga 500000
MaximumResourcesPerQuery Jumlah maksimum sumber daya yang disertakan dalam batch 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 sebelumnya, Anda dapat meneruskannya ke Parameters sumber daya saat mengirim permintaan awal POST untuk memulai pekerjaan pengindeksian 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 reindex di layanan FHIR Anda. Untuk mempelajari cara menentukan parameter pencarian kustom, lihat

Catatan

FHIR® adalah merek dagang terdaftar HL7 dan digunakan dengan izin HL7.