Memvalidasi sumber daya FHIR terhadap profil di Azure Health Data Services

Di profil toko di artikel layanan FHIR , Anda menelusuri dasar-dasar profil FHIR dan menyimpannya. Layanan FHIR di Azure Health Data Services (dengan ini disebut layanan FHIR) memungkinkan validasi sumber daya terhadap profil untuk melihat apakah sumber daya sesuai dengan profil. Artikel ini akan memandu Anda melalui cara menggunakan $validate untuk memvalidasi sumber daya terhadap profil.

$validate adalah operasi dalam Fast Healthcare Interoperability Resources (FHIR®) yang memungkinkan Anda memastikan bahwa sumber daya FHIR sesuai dengan persyaratan sumber daya dasar atau profil tertentu. Operasi ini memastikan bahwa data dalam layanan FHIR memiliki atribut dan nilai yang diharapkan. Untuk informasi tentang operasi validasi, kunjungi Spesifikasi HL7 FHIR. Per spesifikasi, Mode dapat ditentukan dengan $validate, seperti membuat dan memperbarui:

  • create: Azure API untuk FHIR memeriksa bahwa konten profil unik dari sumber daya yang ada dan dapat diterima untuk dibuat sebagai sumber daya baru.
  • update: Memeriksa bahwa profil adalah pembaruan terhadap sumber daya yang ada yang ditunjuk (itu tidak ada perubahan yang dilakukan pada bidang yang tidak dapat diubah).

Ada berbagai cara yang disediakan bagi Anda untuk memvalidasi sumber daya:

  • Opsi 1: Validasi sumber daya yang ada dengan operasi validasi.
  • Opsi 2: Validasi sumber daya baru dengan operasi validasi.
  • Opsi 3: Validasi pada sumber daya CREATE/UPDATE menggunakan header .

Pada validasi yang berhasil dari sumber daya yang ada/ baru dengan operasi validasi, sumber daya tidak dipertahankan ke dalam layanan FHIR. Gunakan Opsi 3: Validasi pada sumber daya CREATE/UPDATE menggunakan header , untuk mempertahankan sumber daya yang berhasil divalidasi ke layanan FHIR.

Layanan FHIR akan selalu mengembalikan OperationOutcome sebagai hasil validasi untuk operasi $validate. Layanan FHIR melakukan validasi dua langkah, setelah sumber daya diteruskan ke titik akhir $validate - langkah pertama adalah validasi dasar untuk memastikan sumber daya dapat diurai. Selama penguraian sumber daya, kesalahan individual perlu diperbaiki sebelum melanjutkan ke langkah berikutnya. Setelah sumber daya berhasil diurai, validasi penuh dilakukan sebagai langkah kedua.

Catatan

Setiap set nilai yang akan digunakan untuk validasi harus diunggah ke server FHIR. Ini termasuk setiap Valueset yang merupakan bagian dari spesifikasi FHIR, serta ValueSet apa pun yang ditentukan dalam Panduan Implementasi. Hanya Valueset yang diperluas sepenuhnya yang berisi daftar lengkap semua kode yang didukung. Definisi ValueSet apa pun yang mereferensikan sumber eksternal tidak didukung.

Opsi 1: Memvalidasi sumber daya yang ada

Untuk memvalidasi sumber daya yang ada, gunakan $validate dalam GET permintaan:

GET http://<your FHIR service base URL>/{resource}/{resource ID}/$validate

Contohnya:

GET https://myworkspace-myfhirserver.fhir.azurehealthcareapis.com/Patient/a6e11662-def8-4dde-9ebc-4429e68d130e/$validate

Dalam contoh ini, Anda memvalidasi sumber daya a6e11662-def8-4dde-9ebc-4429e68d130e Pasien yang ada terhadap sumber daya Pasien dasar. Jika valid, Anda akan mendapatkan OperationOutcome seperti contoh kode berikut:

{
    "resourceType": "OperationOutcome",
    "issue": [
        {
            "severity": "information",
            "code": "informational",
            "diagnostics": "All OK"
        }
    ]
}

Jika sumber daya tidak valid, Anda akan mendapatkan kode kesalahan dan pesan kesalahan dengan detail tentang mengapa sumber daya tidak valid. Contoh OperationOutcome dikembalikan dengan pesan kesalahan dan bisa terlihat seperti contoh kode berikut:

{
    "resourceType": "OperationOutcome",
    "issue": [
        {
            "severity": "error",
            "code": "invalid",
            "details": {
                "coding": [
                    {
                        "system": "http://hl7.org/fhir/dotnet-api-operation-outcome",
                        "code": "1028"
                    }
                ],
                "text": "Instance count for 'Patient.identifier.value' is 0, which is not within the specified cardinality of 1..1"
            },
            "location": [
                "Patient.identifier[1]"
            ]
        },
        {
            "severity": "error",
            "code": "invalid",
            "details": {
                "coding": [
                    {
                        "system": "http://hl7.org/fhir/dotnet-api-operation-outcome",
                        "code": "1028"
                    }
                ],
                "text": "Instance count for 'Patient.gender' is 0, which is not within the specified cardinality of 1..1"
            },
            "location": [
                "Patient"
            ]
        }
    ]
}

Dalam contoh ini, sumber daya tidak sesuai dengan profil Pasien yang disediakan, yang memerlukan nilai pengidentifikasi pasien dan jenis kelamin.

Jika Anda ingin menentukan profil sebagai parameter, Anda dapat menentukan URL kanonis untuk profil yang akan divalidasi, seperti contoh berikut untuk profil dasar HL7 untuk heartrate:

GET https://myworkspace-myfhirserver.fhir.azurehealthcareapis.com/Observation/12345678/$validate?profile=http://hl7.org/fhir/StructureDefinition/heartrate

Opsi 2: Memvalidasi sumber daya baru

Jika Anda ingin memvalidasi sumber daya baru yang Anda unggah ke server, Anda dapat melakukan POST permintaan:

POST http://<your FHIR service base URL>/{Resource}/$validate

Contohnya:

POST https://myworkspace-myfhirserver.fhir.azurehealthcareapis.com/Patient/$validate

Permintaan ini akan terlebih dahulu memvalidasi sumber daya. Sumber daya baru yang Anda tentukan dalam permintaan akan dibuat setelah validasi. Server akan selalu mengembalikan OperationOutcome sebagai hasilnya.

Opsi 3: Memvalidasi sumber daya CREATE/UPDATE menggunakan header

Anda dapat memilih kapan Anda ingin memvalidasi sumber daya Anda, seperti pada sumber daya CREATE atau UPDATE. Secara default, layanan FHIR dikonfigurasi untuk menolak validasi pada sumber daya Create/Update. Kemampuan ini memungkinkan untuk memvalidasi pada Create/Update, menggunakan x-ms-profile-validation header . Atur 'x-ms-profile-validation' ke true untuk validasi.

Catatan

Di layanan FHIR sumber terbuka, Anda dapat mengubah pengaturan konfigurasi server, di bawah CoreFeatures.

{
   "FhirServer": {
      "CoreFeatures": {
            "ProfileValidationOnCreate": true,
            "ProfileValidationOnUpdate": false
        }
}

Untuk mengaktifkan validasi yang ketat, gunakan header 'Prefer: handling' dengan nilai yang ketat. Dengan mengatur header ini, peringatan validasi akan dilaporkan sebagai kesalahan.

Langkah berikutnya

Dalam artikel ini, Anda mempelajari cara memvalidasi sumber daya terhadap profil menggunakan $validate. Untuk mempelajari tentang fitur yang didukung layanan FHIR lainnya, lihat

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