FHIR üzerinde SMART'a genel bakış

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 standartları temel alan bir güvenlik katmanı ekler. FHIR üzerinde SMART kullanmak en az üç önemli avantaj sağlar:

  • Uygulamaların bir FHIR deposuna 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 verilerinin daha sınırlı bir kümesine erişim izni verme olanağına sahiptir.

Aşağıdaki öğreticilerde FHIR Hizmeti ile FHIR uygulamalarında SMART özelliğini etkinleştirme adımları açıklanmaktadır.

Önkoşullar

AHDS Örnekleri OSS 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. Role eklenen herhangi bir kullanıcı - "FHIR SMART User", istekleri FHIR üzerinde SMART uygulama Kılavuzu ile uyumluysa FHIR Hizmetine erişebilir. Örneğin, erişim belirtecine sahip istek, bir fhirUser talebi ve klinik kapsamlar talebi içerir. 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.

2. Adım: Örneklerle FHIR sunucu tümleştirmesi

Azure Health Veri Hizmeti Örnekleri OSS altındaki adımları izleyin. Bu, 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 lisans 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 Azure Active Directory kullanılarak ONC (g)(10) uyumluluğunu göstermek için Azure Health Veri Hizmetleri ve diğer açık kaynak araçlarının nasıl birlikte 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 FHIR üzerinde SMART(Enhanced) için başka bir seçenektir. FHIR Proxy'de SMART seçeneği yalnızca EHR başlatma sırasını etkinleştirir.

FHIR üzerinde 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 de yönetici onayı almanız gerekir.

Uygulamada sahiplik rolünüz yoksa uygulama sahibine başvurun ve uygulamadan sizin için uygulama 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 sorulduğunda kendinize yönetici onayı da vekleyebilirsiniz.) Bu 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ı tamamlayabilirsiniz.

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

  1. Azure portaldaAzure Active Directory’ye 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'yi etkinleştirme

FHIR üzerinde SMART, FHIR hizmetinin URI'sine eşit bir tanımlayıcı URI'sine sahip olmasını gerektirir Audience . FHIR için Azure API'sinin standart yapılandırmasında https://azurehealthcareapis.comdeğeri Audience kullanılır. Ancak, FHIR hizmetinizin belirli URL'si ile eşleşen bir değer de ayarlayabilirsiniz (örneğin https://MYFHIRAPI.azurehealthcareapis.com). Bu, FHIR proxy üzerinde SMART ile çalışırken gereklidir.

FHIR için Azure API örneğinizin kimlik doğrulama ayarlarında FHIR'de SMART ara sunucusunu etkinleştirmek için FHIR proxy'de SMART onay kutusunu seçin:

FHIR proxy'sinde SMART'yi etkinleştirmeyi gösteren ekran görüntüsü.

FHIR üzerinde SMART ara sunucusu, FHIR üzerinde SMART uygulaması ile Azure AD 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, Azure AD istemci uygulamanızın yanıt URL'sini (geri çağırma) FHIR'de SMART proxy'sinin yanıt URL'si ile FHIR üzerinde SMART uygulamasının yanıt URL'sinin birleş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 ile kodlanmış 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ğıdakine benzer bir betik kullanarak birleştirilmiş yanıt URL'sini oluşturabilirsiniz:

$replyUrl = "https://localhost:5001/sampleapp/index.html"
$fhirServerUrl = "https://MYFHIRAPI.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 Azure AD için oluşturduğunuz genel istemci uygulamasına yanıt URL'sini ekleyin:

Genel istemci için yanıt URL'sinin nasıl yapılandırılabildiğini gösteren ekran görüntüsü.

3. Adım: Test hastası alma

FHIR için Azure API'sini ve FHIR proxy'de SMART'ı 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: FHIR üzerinde SMART 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 örnek bir FHIR üzerinde SMART uygulaması içerir. Bu öğreticide, kurulumu test etmek için FHIR üzerinde SMART 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.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.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'yi test etme

FHIR'de SMART uygulama başlatıcısını başlattıktan sonra, aşağıdaki ekranı görmeniz gereken tarayıcınızı https://localhost:5001konumuna işaret edebilirsiniz:

FHIR uygulama başlatıcıda SMART'ın ekran görüntüsü.

Patient, Encounter veya Practitioner bilgilerini girdiğinizde Başlatma bağlamı güncelleştirildiğini fark edersiniz. FHIR için Azure API'sini 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 belirsizdir 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ı bu alanları kullanarak hangi hasta için veri talep ettiği ve uygulamayı ekranda nasıl işlediği kontrol edebilir . FHIR proxy'sinde SMART 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çin.

## 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 izniyle kullanılır.