Bagikan melalui


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.