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.