Share via


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 Bağlan gibi açık standartlara dayalı bir güvenlik katmanı ekler. FHIR üzerinde SMART kullanmak en az üç önemli avantaj sağlar:

  • Uygulamaların FHIR deposunda kimlik doğrulaması/yetkilendirme almak için bilinen bir yöntemi vardır.
  • FHIR üzerinde SMART ile bir FHIR deposuna erişen kullanıcılar, depodaki tüm verilere erişmek yerine kullanıcıyla ilişkili kaynaklarla sınırlıdır.
  • 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

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önet: 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 kullanıcının FHIR hizmetinde okuma API'leri 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 Open source çözümüne gitmek için bağlantıya tıklayın. Belgede listelenen bu adım, 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, 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 Azure Health Veri Hizmetleri ve diğer açık kaynak araçların birlikte nasıl kullanılabileceğini göstermek için kullanılabilir.

FHIR Proxy'de SMART

Genişletmek için tıklayın!

Not

Bu, yukarıda 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 seçenektir. FHIR üzerinde SMART (Gelişmiş), FHIR proxy'sinde SMART'a göre 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.

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.) Diğer kullanıcıları sahip olarak eklemek için aynı adımları tamamlayabilirsiniz, böylece bu uygulama kaydını görüntüleyebilir ve düzenleyebilirler.

Kendinizi veya başka bir kullanıcıyı uygulamanın sahibi olarak eklemek için:

  1. Azure Portal'da Microsoft Entra Kimlik'e gidin.
  2. Soldaki menüde Uygulama Kaydı'nı seçin.
  3. Oluşturduğunuz uygulama kaydını arayın ve seçin.
  4. Soldaki menüde, Yönet'in altında Sahipler'i seçin.
  5. Sahip ekle'yi seçin ve ardından kendinizi veya yönetici onayı almak istediğiniz kullanıcıyı ekleyin.
  6. 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.comkullanı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 adımlı geçişi nedeniyle, Microsoft Entra istemci uygulamanızın yanıt URL'sini (geri çağırma) FHIR üzerinde SMART proxy'si için yanıt URL'si ile 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 şu formu alır:

https://MYFHIRAPI.azurehealthcareapis.com/AadSmartOnFhirProxy/callback/aHR0cHM6Ly9sb2NhbGhvc3Q6NTAwMS9zYW1wbGVhcHAvaW5kZXguaHRtbA

Bu 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.

Birleştirilmiş yanıt URL'sini aşağıdaki gibi bir betik kullanarak 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 ile henüz etkileşim kurmadıysanız ve veritabanında veriniz yoksa bkz . Hasta yüklemek için Postman 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 başlatıcısını yerel olarak kullanın.

Şu 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.jsonbirkaç 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 şu 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, aşağıdaki ekranı görmeniz gereken tarayıcınızı konumuna https://localhost:5001işaret edebilirsiniz:

Screenshot showing SMART on FHIR app launcher.

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ğıdaki örneğe benzer bir şey görmeniz gerekir:

Screenshot showing SMART on FHIR app.

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.

FHIR®, HL7'nin tescilli ticari markasıdır ve HL7'nin izniyle kullanılır.