SMART on FHIR
Substitutable Medical Applications and Reusable Technologies (SMART on FHIR), uygulamaların bir veri deposu aracılığıyla klinik bilgilere erişebildiği bir sağlık standardıdır. EHR sistemleriyle tümleştirmeyi etkinleştirmek için FHIR® arabirimlerine OAuth2 ve OpenID Connect gibi açık standartlara dayalı bir güvenlik katmanı ekler. SMART on FHIR kullanmak en az üç önemli avantaj sağlar:
- Uygulamaların FHIR deposunda kimlik doğrulaması/yetkilendirme almak için bilinen bir yöntemi vardır.
- SMART on FHIR ile bir FHIR deposuna erişen kullanıcılar, depodaki tüm verilere erişmek yerine yalnızca kullanıcıyla ilişkili kaynaklara erişebilir.
- Kullanıcılar, SMART klinik kapsamlarını kullanarak uygulamalara sınırlı bir veri kümesine erişim izni verme olanağına sahiptir.
Aşağıdaki öğreticiler, FHIR Hizmeti ile FHIR uygulamalarında SMART özelliğini etkinleştirme adımlarını sağlar.
Önkoşullar
- FHIR Hizmetinin bir örneği
- .NET SDK 6.0
- Çıkış noktaları arası kaynak paylaşımını (CORS) etkinleştirme
-
Genel istemci uygulamasını Microsoft Entra Id'ye kaydetme
- Uygulamayı kaydettikten sonra istemci uygulaması için değerini
applicationId
not edin.
- Uygulamayı kaydettikten sonra istemci uygulaması için değerini
- Kaynak oluşturmak ve rol atamaları eklemek için bir FHIR Azure Aboneliği hizmetine erişiminiz olduğundan emin olun.
Azure Health Data Services Örneklerini kullanarak FHIR üzerinde SMART (FHIR üzerinde SMART (Gelişmiş))
1. Adım: FHIR SMART kullanıcı rolünü ayarlama
Kullanıcıları Yönetme: Kullanıcıları Role Atama bölümünde listelenen adımları izleyin. Bu role eklenen tüm kullanıcılar, istekleri FHIR üzerinde SMART uygulama Kılavuzu ile uyumlu olması koşuluyla FHIR Hizmetine erişebilir. Bu roldeki kullanıcılara verilen erişim, fhirUser bölmeleriyle ilişkili kaynaklarla ve klinik kapsamlardaki kısıtlamalarla sınırlandırılır.
Not
FHIR üzerinde SMART Uygulama Kılavuzu, kapsamları olan FHIR kaynak türlerine erişimi tanımlar. Bu kapsamlar, bir uygulamanın FHIR kaynaklarına sahip olabileceği erişimi etkiler. SMART kullanıcı rolüne sahip bir kullanıcının FHIR hizmetinde okuma API'si etkileşimleri gerçekleştirme erişimi vardır. SMART kullanıcı rolü FHIR hizmetine yazma erişimi vermez.
2. Adım: Örneklerle FHIR sunucu tümleştirmesi
Azure Health Data ve AI Samples açık kaynak çözümüne gitmek için bu bağlantıya tıklayın. Belgede listelenen adımlar, FHIR sunucusunun diğer Azure Hizmetleri (APIM, Azure işlevleri ve daha fazlası gibi) ile tümleştirilmesini sağlar.
Not
Örnekler açık kaynak kodlardır ve kullanmadan önce GitHub'da bilgileri ve lisanslama koşullarını gözden geçirmeniz gerekir. Bunlar Azure Health Veri Hizmeti'nin bir parçası değildir ve Microsoft Desteği tarafından desteklenmez. Bu örnekler Azure Health Data Services (AHDS) ve diğer açık kaynak araçların kimlik sağlayıcısı iş akışı olarak Microsoft Entra ID kullanılarak hasta ve nüfus hizmetleri ölçüt uyumluluğu için standartlaştırılmış API'yi göstermek üzere birlikte nasıl kullanılabileceğini göstermek için kullanılır.
FHIR Proxy'de SMART
Genişletmek için tıklayın!
Not
Bu, daha önce bahsedilen AHDS Örneklerini kullanarak FHIR(Gelişmiş) üzerinde SMART özelliğinin başka bir seçeneğidir. FHIR(Gelişmiş) üzerinde SMART özelliğini benimsemenizi öneririz. FHIR Proxy'de SMART seçeneği eski bir seçenektir. FHIR üzerinde SMART (Gelişmiş), FHIR proxy'sinde SMART'a ek özellikler sağlar. FHIR üzerinde SMART (Gelişmiş), hasta ve nüfus hizmetleri ölçütleri için SMART on FHIR Uygulama Kılavuzu (v 1.0.0) ve §170.315(g)(10) Standartlaştırılmış API'deki gereksinimleri karşılar.
1. Adım: İstemci uygulamanız için yönetici onayı ayarlama
FHIR'de SMART kullanmak için önce uygulamanın kimliğini doğrulamanız ve yetkilendirmeniz gerekir. FHIR'de SMART'ı ilk kez kullandığınızda, uygulamanın FHIR kaynaklarınıza erişmesine izin vermek için yönetici onayı da almanız gerekir.
Uygulamada sahiplik rolünüz yoksa uygulama sahibine başvurun ve uygulamadan sizin için yönetici onayı vermesini isteyin.
Yönetici ayrıcalıklarınız varsa, doğrudan kendinize yönetici onayı vermek için aşağıdaki adımları tamamlayın. (Daha sonra uygulamada istendiğinde kendinize yönetici onayı da vekleyebilirsiniz.) Uygulama kaydını görüntüleyebilmeleri ve düzenleyebilmeleri için diğer kullanıcıları sahip olarak eklemek için aynı adımları kullanabilirsiniz.
Kendinizi veya başka bir kullanıcıyı uygulamanın sahibi olarak eklemek için:
- Azure Portal'da Microsoft Entra Kimlik'e gidin.
- Soldaki menüde Uygulama Kaydı'nı seçin.
- Oluşturduğunuz uygulama kaydını arayın ve seçin.
- Soldaki menüde, Yönet'in altında Sahipler'i seçin.
- Sahip ekle'yi seçin ve ardından kendinizi veya yönetici onayı almak istediğiniz kullanıcıyı ekleyin.
- Kaydet'i seçin.
2. Adım: FHIR proxy'sinde SMART'ı etkinleştirme
FHIR üzerinde SMART, FHIR hizmetinin URI'sine eşit bir tanımlayıcı URI'sine sahip olmasını gerektirir Audience
. FHIR hizmetinin standart yapılandırması değerini https://fhir.azurehealthcareapis.com
kullanırAudience
. Ancak, FHIR hizmetinizin belirli URL'si ile eşleşen bir değer de ayarlayabilirsiniz (örneğin https://MYFHIRAPI.fhir.azurehealthcareapis.com
). Bu, FHIR proxy'sinde SMART ile çalışırken gereklidir.
FHIR örneğinizin Kimlik doğrulama ayarlarında FHIR'de SMART proxy'sini etkinleştirmek için FHIR proxy'sinde SMART onay kutusunu seçin.
FHIR üzerinde SMART proxy'si, FHIR üzerinde SMART uygulaması ile Microsoft Entra Id arasında bir aracı görevi görür. Kimlik doğrulama yanıtının (kimlik doğrulama kodu) uygulamanın kendisi yerine FHIR proxy'sinde SMART'a gitmesi gerekir. Proxy daha sonra yanıtı uygulamaya iletir.
Kimlik doğrulama kodunun bu iki aşamalı geçişi nedeniyle, Microsoft Entra istemci uygulamanızın yanıt URL'sini (geri çağırma) FHIR proxy'sinde SMART için yanıt URL'sinin ve FHIR üzerinde SMART uygulamasının yanıt URL'sinin bir bileşimi olan bir URL'ye ayarlamanız gerekir. Birleştirilmiş yanıt URL'si aşağıdaki formu alır.
https://MYFHIRAPI.azurehealthcareapis.com/AadSmartOnFhirProxy/callback/aHR0cHM6Ly9sb2NhbGhvc3Q6NTAwMS9zYW1wbGVhcHAvaW5kZXguaHRtbA
Yanıtta, aHR0cHM6Ly9sb2NhbGhvc3Q6NTAwMS9zYW1wbGVhcHAvaW5kZXguaHRtbA
FHIR üzerinde SMART uygulaması için yanıt URL'sinin URL güvenli, base64 kodlu bir sürümüdür. FHIR üzerinde SMART uygulama başlatıcısı için, uygulama yerel olarak çalışırken yanıt URL'si şeklindedir https://localhost:5001/sampleapp/index.html
.
Aşağıdaki gibi bir betik kullanarak birleşik yanıt URL'sini oluşturabilirsiniz.
$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
Daha önce Microsoft Entra Id için oluşturduğunuz genel istemci uygulamasına yanıt URL'sini ekleyin.
3. Adım: Test hastası alma
FHIR hizmetini ve SMART'ı FHIR proxy'sinde test etmek için veritabanında en az bir hastanız olmalıdır. API'yi henüz kullanmadıysanız ve veritabanında veriniz yoksa bkz . Hasta yüklemek için REST İstemcisi'ni kullanarak FHIR hizmetine erişme. Belirli bir hastanın kimliğini not edin.
4. Adım: SMART on FHIR uygulama başlatıcısını indirme
Azure deposu için açık kaynak FHIR Sunucusu, basit bir FHIR üzerinde SMART uygulama başlatıcısı ve FHIR üzerinde SMART uygulaması içerir. Bu öğreticide, kurulumu test etmek için bu SMART on FHIR uygulama başlatıcısını yerel olarak kullanın.
Aşağıdaki komutları kullanarak GitHub deposunu kopyalayabilir ve uygulamaya gidebilirsiniz.
git clone https://github.com/Microsoft/fhir-server
cd fhir-server/samples/apps/SmartLauncher
Uygulamanın içinde ayarlayabileceğiniz appsettings.json
birkaç yapılandırma ayarına ihtiyacı vardır:
{
"FhirServerUrl": "https://MYFHIRAPI.fhir.azurehealthcareapis.com",
"ClientId": "APP-ID",
"DefaultSmartAppUrl": "/sampleapp/launch.html"
}
Şu özelliği kullanmanızı dotnet user-secrets
öneririz:
dotnet user-secrets set FhirServerUrl https://MYFHIRAPI.fhir.azurehealthcareapis.com
dotnet user-secrets set ClientId <APP-ID>
Uygulamayı çalıştırmak için aşağıdaki komutu kullanın:
dotnet run
5. Adım: FHIR proxy'sinde SMART'ı test edin
FHIR uygulama başlatıcıda SMART'yi başlattıktan sonra tarayıcınızı https://localhost:5001
adresine işaret edebilirsiniz; burada aşağıdakileri görmeniz gerekir:
Patient, Encounter veya Practitioner bilgilerini girdiğinizde, Başlatma bağlamıngüncelleştirildiğini fark edeceksiniz. FHIR hizmetini kullanırken başlatma bağlamı hasta, uygulayıcı ve daha fazlası hakkında bilgi içeren bir JSON belgesidir. Bu başlatma bağlamı base64 kodlanır ve sorgu parametresi olarak FHIR üzerinde SMART uygulamasına launch
geçirilir. SMART on FHIR belirtimine göre, bu değişken FHIR üzerinde SMART uygulamasına göre opaktır ve kimlik sağlayıcısına geçirilir.
FHIR üzerinde SMART proxy'si, belirteç yanıtında alanları doldurmak için bu bilgileri kullanır. FHIR üzerinde SMART uygulaması, hangi hasta için veri isteğinde bulunduğu ve uygulamayı ekranda nasıl işlediği denetlemek için bu alanları kullanabilir. FHIR üzerinde SMART proxy'si aşağıdaki alanları destekler.
patient
encounter
practitioner
need_patient_banner
smart_style_url
Bu alanlar uygulamaya rehberlik sağlamaya yöneliktir, ancak herhangi bir güvenlik bilgisi iletmez. FHIR üzerinde SMART uygulaması bunları yoksayabilir.
FHIR üzerinde SMART uygulama başlatıcısının sayfanın en altındaki Başlatma URL'si bilgilerini güncelleştirdiğini unutmayın. Örnek uygulamayı başlatmak için Başlat'ı seçtiğinizde aşağıdakine benzer bir şey görmeniz gerekir.
Başlatma bağlamı alanlarının uygulamaya nasıl geçirildiğini görmek için belirteç yanıtını inceleyin.
FHIR Proxy'de SMART'tan FHIR üzerinde SMART'a geçiş (Gelişmiş)
Önemli
FHIR proxy'sinde SMART, Eylül 2026'da kullanımdan kaldırılıyor ve bu tarihe kadar FHIR üzerinde SMART (Gelişmiş) öğesine geçiliyor. Eylül 2026'da, FHIR proxy'sinde SMART kullanan uygulamalar FHIR hizmetine erişirken hatalar bildirecektir.
FHIR üzerinde SMART (Gelişmiş), FHIR proxy'de SMART ile karşılaştırıldığında daha fazla özellik sağlar. FHIR üzerinde SMART (Gelişmiş), hasta ve nüfus hizmetleri ölçütü için SMART on FHIR Uygulama Kılavuzu (v 1.0.0) ve §170.315(g)(10) Standartlaştırılmış API ile gereksinimleri karşılamak üzere düşünülebilir. Aşağıdaki tabloda, FHIR proxy'sinde SMART ile FHIR üzerinde SMART (Gelişmiş) arasındaki fark listelenir.
Özellik | FHIR üzerinde SMART (Gelişmiş) | FHIR proxy'sinde SMART |
---|---|---|
Tek Başına Başlatmayı Destekler | Yes | Hayır |
EHR Başlatmayı Destekler | Yes | Yes |
Kapsam kısıtlamalarını destekler | Yes | Hayır |
Birinci taraf Azure ürünlerine dayanır | Evet, Azure API Management (APIM) gibi Azure ürünlerinin tümleştirilmesi gerekir | Hayır |
Microsoft Desteği | FHIR hizmeti için desteklenir. GitHub aracılığıyla açık kaynak örnek desteğinin raporlanması ve izlenmesi gerekiyor | FHIR hizmeti için desteklenir |
Geçiş Adımları
- 1. Adım: FHIR SMART kullanıcı rolünü ayarlama Kullanıcıları Yönet: Kullanıcıları Role Ata bölümünde listelenen adımları izleyin. SMART kullanıcı rolüne eklenen tüm kullanıcılar, istekleri FHIR üzerinde SMART uygulama Kılavuzu ile uyumluysa FHIR Hizmetine erişebilir.
- 2. Adım: Azure Sistem Durumu Verileri ve AI OSS örnekleri altında FHIR örneğinde SMART dağıtma
- 3. Adım: FHIR hizmet URL'sinin uç noktasını '{{BASEURL_FROM_APIM}}/smart' olarak güncelleştirin.
- 4. Adım: FHIR hizmetinin Kimlik doğrulaması dikey penceresinin altındaki FHIR üzerinde SMART proxy ayarının işaretini kaldırın.
Sorularınız varsa Microsoft Q&A’deki topluluk uzmanlarından yanıt alabilirsiniz. Teknik destek için bir destek isteği de oluşturabilirsiniz.
Sonraki adımlar
ARTıK FHIR üzerinde SMART işlevini etkinleştirmeyi öğrendiğinize göre, arama parametrelerini, değiştiricileri ve diğer FHIR arama yöntemlerini kullanarak arama hakkında ayrıntılı bilgi için arama örnekleri sayfasına bakın.