SMART diFHIR
Aplikasi Medis pengganti dan Teknologi yang Dapat Digunakan Kembali (SMART on FHIR) adalah standar layanan kesehatan di mana aplikasi dapat mengakses informasi klinis melalui penyimpanan data. Ini menambahkan lapisan keamanan berdasarkan standar terbuka termasuk OAuth2 dan OpenID Connect, ke antarmuka FHIR® untuk mengaktifkan integrasi dengan sistem EHR. Menggunakan SMART di FHIR memberikan setidaknya tiga manfaat penting:
- Aplikasi memiliki metode yang diketahui untuk mendapatkan autentikasi/otorisasi ke repositori FHIR.
- Pengguna yang mengakses repositori FHIR dengan SMART di FHIR dibatasi untuk sumber daya yang terkait dengan pengguna, daripada memiliki akses ke semua data di repositori.
- Pengguna memiliki kemampuan untuk memberikan akses aplikasi ke sekumpulan data mereka yang terbatas dengan menggunakan cakupan klinis SMART.
Tutorial berikut menyediakan langkah-langkah untuk mengaktifkan SMART pada aplikasi FHIR dengan Layanan FHIR.
Prasyarat
- Instans Layanan FHIR
- NET SDK 6.0
- Mengaktifkan berbagi sumber daya lintas asal (CORS)
-
Mendaftarkan aplikasi klien publik di ID Microsoft Entra
- Setelah mendaftarkan aplikasi, catat
applicationId
untuk aplikasi klien.
- Setelah mendaftarkan aplikasi, catat
- Pastikan Anda memiliki akses ke langganan Layanan FHIR Azure, untuk membuat sumber daya dan menambahkan penetapan peran.
SMART di FHIR menggunakan Sampel Azure Health Data Services (SMART di FHIR (Ditingkatkan))
Langkah 1: Menyiapkan peran pengguna FHIR SMART
Ikuti langkah-langkah yang tercantum di bagian Kelola Pengguna: Tetapkan Pengguna ke Peran. Setiap pengguna yang ditambahkan ke peran ini akan dapat mengakses Layanan FHIR, asalkan permintaan mereka mematuhi Panduan implementasi SMART on FHIR. Akses yang diberikan kepada pengguna dalam peran ini kemudian akan dibatasi oleh sumber daya yang terkait dengan kompartemen fhirUser mereka dan pembatasan dalam cakupan klinis.
Catatan
SMART pada Panduan Implementasi FHIR menentukan akses ke jenis sumber daya FHIR dengan cakupan. Cakupan ini berdampak pada akses aplikasi mungkin harus sumber daya FHIR. Pengguna dengan peran pengguna SMART memiliki akses untuk melakukan interaksi API baca pada layanan FHIR. Peran pengguna SMART tidak memberikan akses tulis ke layanan FHIR.
Langkah 2: Integrasi server FHIR dengan sampel
Klik tautan ini untuk menavigasi ke azure Health Data dan AI Samples sumber terbuka solution. Langkah-langkah yang tercantum dalam dokumen memungkinkan integrasi server FHIR dengan Layanan Azure lainnya (seperti APIM, fungsi Azure, dan lainnya).
Catatan
Sampel adalah kode sumber terbuka, dan Anda harus meninjau informasi dan ketentuan lisensi di GitHub sebelum menggunakannya. Mereka bukan bagian dari Azure Health Data Service dan tidak didukung oleh Dukungan Microsoft. Sampel ini digunakan untuk menunjukkan bagaimana Azure Health Data Services (AHDS) dan alat sumber terbuka lainnya dapat digunakan bersama-sama untuk menunjukkan API Standar §170.315(g)(10) untuk kepatuhan kriteria layanan pasien dan populasi, menggunakan ID Microsoft Entra sebagai alur kerja penyedia identitas.
SMART di Proksi FHIR
Klik untuk memperluas!
Catatan
Ini adalah opsi lain untuk SMART pada FHIR(Enhanced) menggunakan Sampel AHDS yang disebutkan sebelumnya. Kami menyarankan Anda untuk mengadopsi SMART pada FHIR(Enhanced). Opsi Smart on FHIR Proxy adalah opsi warisan. SMART on FHIR(Enhanced) menyediakan kemampuan tambahan ke SMART pada proksi FHIR. SMART on FHIR(Enhanced) memenuhi persyaratan dalam SMART pada Panduan Implementasi FHIR (v 1.0.0) dan §170.315(g)(10) STANDARDIZED API untuk kriteria layanan pasien dan populasi.
Langkah 1: Atur persetujuan admin untuk aplikasi klien Anda
Untuk menggunakan SMART di FHIR, Anda harus terlebih dahulu mengautentikasi dan mengotorisasi aplikasi. Saat pertama kali menggunakan SMART di FHIR, Anda juga harus mendapatkan persetujuan administratif untuk mengizinkan aplikasi mengakses sumber daya FHIR Anda.
Jika Anda tidak memiliki peran kepemilikan di aplikasi, hubungi pemilik aplikasi dan minta mereka untuk memberikan persetujuan admin untuk Anda di aplikasi.
Jika Anda memiliki hak administratif, selesaikan langkah-langkah berikut untuk memberikan persetujuan admin kepada diri Anda secara langsung. (Anda juga dapat memberikan persetujuan admin kepada diri Anda nanti ketika diminta di aplikasi.) Anda dapat menggunakan langkah-langkah yang sama ini untuk menambahkan pengguna lain sebagai pemilik, sehingga mereka dapat melihat dan mengedit pendaftaran aplikasi.
Untuk menambahkan diri Anda atau pengguna lain sebagai pemilik aplikasi:
- Di portal Azure, buka Microsoft Entra ID.
- Di menu sebelah kiri, pilih Pendaftaran Aplikasi.
- Cari pendaftaran aplikasi yang Anda buat, lalu pilih.
- Di menu sebelah kiri, di bawah Kelola, pilih Pemilik.
- Pilih Tambahkan pemilik, lalu tambahkan diri Anda atau pengguna yang ingin Anda setujui adminnya.
- Pilih Simpan
Langkah 2: Aktifkan proksi SMART on FHIR
SMART di FHIR mengharuskan Audience
URI pengidentifikasi memiliki URI yang sama dengan URI layanan FHIR. Konfigurasi standar layanan FHIR menggunakan Audience
nilai https://fhir.azurehealthcareapis.com
. Namun, Anda juga dapat menetapkan nilai yang cocok dengan URL tertentu dari layanan FHIR Anda (misalnya https://MYFHIRAPI.fhir.azurehealthcareapis.com
). Ini diperlukan saat bekerja dengan proksi SMART on FHIR.
Untuk mengaktifkan proksi SMART on FHIR di pengaturan Autentikasi untuk instans FHIR Anda, pilih kotak centang PROKSI SMART on FHIR.
Proksi SMART on FHIR bertindak sebagai perantara antara SMART di aplikasi FHIR dan ID Microsoft Entra. Balasan autentikasi (kode autentikasi) harus masuk ke proksi SMART di FHIR alih-alih aplikasi itu sendiri. Proksi kemudian meneruskan balasan ke aplikasi.
Karena relai dua langkah kode autentikasi ini, Anda perlu mengatur URL balasan (panggilan balik) untuk aplikasi klien Microsoft Entra Anda ke URL yang merupakan kombinasi URL balasan untuk proksi SMART on FHIR, dan URL balasan untuk aplikasi SMART di FHIR. URL balasan gabungan mengambil formulir berikut.
https://MYFHIRAPI.azurehealthcareapis.com/AadSmartOnFhirProxy/callback/aHR0cHM6Ly9sb2NhbGhvc3Q6NTAwMS9zYW1wbGVhcHAvaW5kZXguaHRtbA
Dalam balasan, aHR0cHM6Ly9sb2NhbGhvc3Q6NTAwMS9zYW1wbGVhcHAvaW5kZXguaHRtbA
adalah versi URL yang aman dan dikodekan dengan URL balasan base64 yang aman untuk SMART di aplikasi FHIR. Untuk peluncur aplikasi SMART on FHIR, saat aplikasi berjalan secara lokal, URL balasannya adalah https://localhost:5001/sampleapp/index.html
.
Anda dapat membuat URL balasan gabungan dengan menggunakan skrip seperti berikut ini.
$replyUrl = "https://localhost:5001/sampleapp/index.html"
$fhirServerUrl = "https://MYFHIRAPI.fhir.azurewebsites.net"
$bytes = [System.Text.Encoding]::UTF8.GetBytes($ReplyUrl)
$encodedText = [Convert]::ToBase64String($bytes)
$encodedText = $encodedText.TrimEnd('=');
$encodedText = $encodedText.Replace('/','_');
$encodedText = $encodedText.Replace('+','-');
$newReplyUrl = $FhirServerUrl.TrimEnd('/') + "/AadSmartOnFhirProxy/callback/" + $encodedText
Tambahkan URL balasan ke aplikasi klien publik yang Anda buat sebelumnya untuk ID Microsoft Entra.
Langkah 3: Dapatkan pasien tes
Untuk menguji layanan FHIR dan proksi SMART on FHIR, Anda harus memiliki setidaknya satu pasien dalam database. Jika Anda belum menggunakan API, dan Anda belum memiliki data dalam database, lihat Mengakses layanan FHIR menggunakan Klien REST untuk memuat pasien. Catat ID pasien tertentu.
Langkah 4: Unduh SMART di peluncur aplikasi FHIR
Server FHIR sumber terbuka untuk repositori Azure mencakup SMART sederhana pada peluncur aplikasi FHIR dan sampel SMART di aplikasi FHIR. Dalam tutorial ini, gunakan SMART ini pada peluncur aplikasi FHIR secara lokal untuk menguji penyiapan.
Anda dapat mengkloning repositori GitHub dan membuka aplikasi dengan menggunakan perintah berikut.
git clone https://github.com/Microsoft/fhir-server
cd fhir-server/samples/apps/SmartLauncher
Aplikasi ini membutuhkan beberapa pengaturan konfigurasi, yang dapat Anda atur di appsettings.json
:
{
"FhirServerUrl": "https://MYFHIRAPI.fhir.azurehealthcareapis.com",
"ClientId": "APP-ID",
"DefaultSmartAppUrl": "/sampleapp/launch.html"
}
Kami sarankan Anda menggunakan fitur ini dotnet user-secrets
:
dotnet user-secrets set FhirServerUrl https://MYFHIRAPI.fhir.azurehealthcareapis.com
dotnet user-secrets set ClientId <APP-ID>
Gunakan perintah berikut untuk menjalankan aplikasi:
dotnet run
Langkah 5: Uji proksi SMART on FHIR
Setelah memulai SMART pada peluncur aplikasi FHIR, Anda dapat mengarahkan browser ke https://localhost:5001
, tempat Anda akan melihat hal berikut:
Saat Anda memasukkan informasi Pasien, Pertemuan, atau Praktisi, Anda melihat bahwa konteks Peluncuran diperbarui. Saat Anda menggunakan layanan FHIR, konteks peluncuran hanyalah dokumen JSON yang berisi informasi tentang pasien, praktisi, dan banyak lagi. Konteks peluncuran ini dikodekan base64 dan diteruskan ke SMART pada aplikasi FHIR sebagai launch
parameter kueri. Menurut spesifikasi SMART on FHIR, variabel ini buram ke SMART pada aplikasi FHIR dan diteruskan ke IdP.
Proksi SMART on FHIR menggunakan informasi ini untuk mengisi bidang dalam respons token. Aplikasi SMART di FHIR dapat menggunakan bidang ini untuk mengontrol pasien mana yang diminta datanya, dan bagaimana aplikasi di layar dirender. Proksi SMART di FHIR mendukung bidang berikut.
patient
encounter
practitioner
need_patient_banner
smart_style_url
Bidang ini dimaksudkan untuk memberikan panduan kepada aplikasi, tetapi tidak menyampaikan informasi keamanan apa pun. Aplikasi SMART di FHIR dapat mengabaikannya.
Perhatikan bahwa peluncur aplikasi SMART di FHIR memperbarui informasi Luncurkan URL di bagian bawah halaman. Pilih Luncurkan untuk memulai aplikasi sampel, dan Anda akan melihat sesuatu seperti berikut ini.
Periksa respons token untuk melihat bagaimana bidang konteks peluncuran diteruskan ke aplikasi.
Migrasi dari SMART pada Proksi FHIR ke SMART di FHIR (Ditingkatkan)
Penting
Smart pada proksi FHIR dihentikan pada bulan September 2026, transisi ke SMART pada FHIR (Ditingkatkan) pada tanggal tersebut. Mulai September 2026, aplikasi yang mengandalkan SMART pada proksi FHIR akan melaporkan kesalahan dalam mengakses layanan FHIR.
SMART on FHIR (Enhanced) menyediakan lebih banyak kemampuan dibandingkan dengan SMART pada proksi FHIR. SMART on FHIR(Enhanced) dapat dipertimbangkan untuk memenuhi persyaratan dengan SMART pada Panduan Implementasi FHIR (v 1.0.0) dan §170.315(g)(10) STANDARDIZED API untuk kriteria layanan pasien dan populasi. Tabel berikut mencantumkan perbedaan antara SMART pada proksi FHIR dan SMART di FHIR (Ditingkatkan).
Kemampuan | SMART di FHIR (Ditingkatkan) | SMART pada proksi FHIR |
---|---|---|
Mendukung Peluncuran Mandiri | Ya | Tidak |
Mendukung Peluncuran EHR | Ya | Ya |
Mendukung pembatasan cakupan | Ya | Tidak |
Mengandalkan produk Azure pihak pertama | Ya, produk Azure seperti Azure API Management (APIM) perlu diintegrasikan | No |
Dukungan Microsoft | Didukung untuk layanan FHIR. Dukungan sampel sumber terbuka perlu dilaporkan dan dipantau melalui GitHub | Didukung untuk layanan FHIR |
Langkah migrasi
- Langkah 1: Siapkan peran pengguna FHIR SMART Ikuti langkah-langkah yang tercantum di bawah bagian Kelola Pengguna: Tetapkan Pengguna ke Peran. Setiap pengguna yang ditambahkan ke peran pengguna SMART dapat mengakses Layanan FHIR, jika permintaan mereka mematuhi Panduan implementasi SMART on FHIR.
- Langkah 2: Menyebarkan sampel SMART on FHIR di bawah sampel Azure Health Data dan AI OSS
- Langkah 3: Perbarui titik akhir url layanan FHIR ke '{{BASEURL_FROM_APIM}}/smart.'
- Langkah 4: Hapus centang pengaturan proksi SMART on FHIR di bawah bilah Autentikasi untuk layanan FHIR.
Jika Anda memiliki pertanyaan, Anda bisa mendapatkan jawaban dari pakar komunitas di Microsoft Q&A. Untuk dukungan teknis, Anda juga dapat membuat permintaan dukungan.
Langkah berikutnya
Sekarang setelah Anda mempelajari tentang mengaktifkan fungsionalitas SMART di FHIR, lihat halaman sampel pencarian untuk detail tentang cara mencari menggunakan parameter pencarian, pengubah, dan metode pencarian FHIR lainnya.