Öğretici: Azure Active Directory SMART on FHIR proxy
SMART on FHIR, iş ortağı uygulamalarını FHIR sunucuları ve FHIR arabirimi olan elektronik tıbbi kayıt sistemleriyle tümleştirmeye yönelik bir dizi açık belirtimdir. Belirtimlerin ana amaçlarından biri, bir uygulamanın FHIR sunucusu için kimlik doğrulama uç noktalarını nasıl bulması ve bir kimlik doğrulama dizisi başlatması gerektiğini açıklamaktır.
Kimlik doğrulaması OAuth2'ye dayalıdır. Ancak, FHIR'de SMART hemen Azure Active Directory (Azure AD) ile uyumlu olmayan parametre adlandırma kuralları kullandığı için, FHIR için Azure API FHIR'de SMART'ın bir alt kümesini FHIR başlatma dizileri üzerinde sağlayan yerleşik bir Azure AD SMART ara sunucusuna sahip olur. Özellikle, ara sunucu EHR başlatma dizisini sağlar.
Bu öğreticide, FHIR uygulamalarında akıllı hizmeti etkinleştirmek için proxy'nin nasıl FHIR için Azure API.
Önkoşullar
- Uygulamanın bir FHIR için Azure API
- .NET Core 2.2
Azure AD kayıtlarını yapılandırma
FHIR'de SMART, Audience FHIR hizmetinin URI'sinde eşit bir tanımlayıcı URI'sı gerektirir. Uygulamanın standart yapılandırması FHIR için Azure API değerini Audience https://azurehealthcareapis.com kullanır. Bununla birlikte, FHIR hizmetinizin belirli URL'sini eşleşen bir değer de (örneğin, ) https://MYFHIRAPI.azurehealthcareapis.com oluşturabilirsiniz. Bu, FHIR proxy'sinde SMART ile çalışırken gereklidir.
Ayrıca bir istemci uygulama kaydı da gerekir. FHIR uygulamaları üzerinde SMART'ın çoğu tek sayfalı JavaScript uygulamalarıdır. Bu nedenle, Azure AD'de bir genel istemci uygulaması yapılandırma yönergelerini izlemeniz gerekir.
Bu adımları tamamlandıktan sonra şunların olması gerekir:
- Hedef kitlenin olarak ayar bulunduğu bir FHIR
https://MYFHIRAPI.azurehealthcareapis.comsunucusu; burada, FHIR için Azure APIMYFHIRAPIadıdır. - Genel istemci uygulama kaydı. Bu istemci uygulaması için uygulama kimliğini not etmek.
Uygulamanıza yönetici onayı ayarlama
FHIR'de SMART kullanmak için önce uygulamanın kimliğini doğrulamalı ve uygulamayı yetkilendirmelisiniz. FHIR'de SMART'i ilk kez kullanıyorsanız, uygulamanın FHIR kaynaklarınıza erişmesine izin vermenin yönetici onayını da alasınız.
Uygulamada sahiplik rolünüz yoksa uygulama sahibine başvurarak uygulamada size yönetici onayı verilmesini iste.
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 veabilirsiniz.) Diğer kullanıcıları sahip olarak eklemek için aynı adımları tamamlar, böylece bu uygulama kaydını görüntüleyemez ve düzenleyebilirler.
Kendinizi veya başka bir kullanıcıyı uygulamanın sahibi olarak eklemek için:
- Azure portalında Azure Active Directory’e gidin.
- Sol menüde Uygulama Kaydı'ı seçin.
- Oluşturduğunuz uygulama kaydını arayın ve seçin.
- Sol 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.
FHIR proxy'sinde SMART'i etkinleştirme
FHIR proxy'sinde SMART onay kutusunu seçerek FHIR için Azure API örneğinin Kimlik doğrulama ayarlarında SMART on FHIR ara sunucusunu etkinleştirin:

CORS'yi etkinleştirme
FHIR uygulamalarında smart uygulamalarının çoğu tek sayfalı JavaScript uygulamaları olduğundan kaynak kaynakları için çıkış noktası arası kaynak paylaşımını (CORS) FHIR için Azure API:

Yanıt URL'sini yapılandırma
FHIR'de SMART proxy'si, FHIR uygulamasında SMART ile Azure AD arasında bir aracı olarak hareket ediyor. Kimlik doğrulama yanıtının (kimlik doğrulama kodu), uygulamanın kendisi yerine FHIR proxy'sinde SMART'a gitmeli. Ara sunucu daha sonra yanıtı uygulamaya iletir.
Kimlik doğrulama kodunun bu iki adımlı geçişi nedeniyle, Azure AD istemci uygulamanıza yönelik yanıt URL'sini (geri çağırma) FHIR proxy'sinde SMART için yanıt URL'sinin ve FHIR'de SMART uygulamasının yanıt URL'sinin birleşimi olan bir URL'ye ayarlamanız gerekir. Birleşik yanıt URL'si şu formu alır:
https://MYFHIRAPI.azurehealthcareapis.com/AadSmartOnFhirProxy/callback/aHR0cHM6Ly9sb2NhbGhvc3Q6NTAwMS9zYW1wbGVhcHAvaW5kZXguaHRtbA
Bu yanıtta, FHIR üzerinde SMART uygulamasının yanıt URL'sinin aHR0cHM6Ly9sb2NhbGhvc3Q6NTAwMS9zYW1wbGVhcHAvaW5kZXguaHRtbA URL'si güvenli, base64 kodlanmış bir sürümüdür. FHIR'de SMART uygulama başlatıcısı için, uygulama yerel olarak çalıştırılı olduğunda yanıt URL'si olarak ifade https://localhost:5001/sampleapp/index.html edin.
Aşağıdakine benzer bir betik kullanarak birleşik 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
Yanıt URL'sini daha önce Azure AD için oluşturduğunuz genel istemci uygulamasına ekleyin:

Test hastası al
FHIR proxy'FHIR için Azure API SMART ile 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. Bir hasta yüklemek için Postman kullanarak FHIR hizmetine erişme. Belirli bir hastanın kimliğini not etmek.
FHIR uygulama başlatıcıda SMART'i indirme
Azure için açık kaynak FHIR Sunucusu, FHIR uygulama başlatıcısı üzerinde basit bir SMART ve FHIR uygulamasında örnek bir SMART içerir. Bu öğreticide, kurulumu test etmek için bu SMART on FHIR başlatıcısını yerel olarak kullanın.
Aşağıdaki komutları kullanarak GitHub depoyu kopya yükleyebilir ve uygulamaya gidebilirsiniz:
git clone https://github.com/Microsoft/fhir-server
cd fhir-server/samples/apps/SmartLauncher
Uygulamanın içinde ayarlandırarak birkaç yapılandırma ayarına ihtiyacı appsettings.json vardır:
{
"FhirServerUrl": "https://MYFHIRAPI.azurehealthcareapis.com",
"ClientId": "APP-ID",
"DefaultSmartAppUrl": "/sampleapp/launch.html"
}
Bu özelliği kullanmalarını 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
FHIR proxy'sinde SMART'i test etmek
FHIR uygulama başlatıcısında SMART'a başladıktan sonra tarayıcınızı aşağıdaki ekranı https://localhost:5001 göreceğiniz yere işaretleyebilirsiniz:

Patient, Encounter veya Practitioner bilgilerini girerken Başlatma bağlamının güncelleştirilmiş olduğunu fark edin. Uygulamayı kullanırken başlatma bağlamı FHIR için Azure API hasta, uygulayıcı ve daha fazlası hakkında bilgi içeren bir JSON belgesidir. Bu başlatma bağlamı base64 kodlanmış ve sorgu parametresi olarak FHIR üzerinde SMART uygulamasına launch geçirildi. FHIR üzerinde SMART belirtimleri için bu değişken FHIR üzerinde SMART uygulamasına opaktır ve kimlik sağlayıcısına geçirilebilir.
FHIR'de SMART proxy'si, belirteç yanıtını alan alanları doldurmak için bu bilgileri kullanır. FHIR'de SMART uygulaması bu alanları kullanarak hangi hasta için veri isteğinda olduğunu ve uygulamayı ekranda nasıl işleyeni kontrol etmek için kullanabilir. FHIR üzerinde SMART proxy'si aşağıdaki alanları destekler:
patientencounterpractitionerneed_patient_bannersmart_style_url
Bu alanların uygulamaya rehberlik sağlamaları gerekir, ancak herhangi bir güvenlik bilgisi iletmezler. FHIR'de SMART uygulaması bunları yoksayabilirsiniz.
FHIR'de SMART uygulama başlatıcısı, sayfanın alt kısmında Bulunan URL'yi başlat bilgilerini günceller. Başlat'ı seçerek örnek uygulamayı başlatabilirsiniz. Bu örnekteki gibi bir şey görüyorsanız:

Başlatma bağlam alanlarının uygulamaya nasıl geçirildiklerini görmek için belirteç yanıtını inceler.
Sonraki adımlar
Bu öğreticide, FHIR proxy'sinde Azure Active Directory SMART'yi yapılandırmış oldunız. FHIR için Azure API ve Azure için açık kaynak FHIR Sunucusu ile FHIR uygulamalarında SMART kullanımını keşfetmek için aşağıdaki dosyalarda FHIR sunucu örnekleri deposuna GitHub: