Sdílet prostřednictvím


SMART on FHIR

Nahraditelné zdravotnické aplikace a opakovaně použitelné technologie (SMART on FHIR) je zdravotnický standard, prostřednictvím kterého mohou aplikace přistupovat k klinickým informacím prostřednictvím úložiště dat. Přidává vrstvu zabezpečení založenou na otevřených standardech, včetně OAuth2 a OpenID Connect, do rozhraní FHIR®, která umožňují integraci se systémy EHR. Použití funkce SMART on FHIR poskytuje nejméně tři důležité výhody:

  • Aplikace mají známou metodu pro získání ověřování a autorizace pro úložiště FHIR.
  • Uživatelé, kteří přistupují k úložišti FHIR pomocí funkce SMART on FHIR, jsou omezeni na prostředky přidružené k uživateli a nemají přístup ke všem datům v úložišti.
  • Uživatelé mají možnost udělit aplikacím přístup k omezené sadě svých dat pomocí klinických oborů SMART.

V následujících kurzech najdete postup povolení funkce SMART v aplikacích FHIR se službou FHIR.

Požadavky

SMART on FHIR s využitím ukázek služeb Azure Health Data Services (SMART on FHIR (Enhanced))

Krok 1: Nastavení role uživatele FHIR SMART

Postupujte podle kroků uvedených v části Spravovat uživatele: Přiřaďte uživatele k roli. Každý uživatel přidaný do této role bude mít přístup ke službě FHIR za předpokladu, že jejich žádosti vyhovují průvodci implementací SMART on FHIR. Přístup udělený uživatelům v této roli pak omezí prostředky přidružené k jejich oddílu fhirUser a omezení v klinických oborech.

Poznámka:

Smart on FHIR Implementation Guide definuje přístup k typům prostředků FHIR s obory. Tyto obory mají vliv na přístup k prostředkům FHIR aplikace. Uživatel s rolí inteligentního uživatele má přístup k provádění interakcí rozhraní API pro čtení ve službě FHIR. Role uživatele SMART neuděluje přístup k zápisu do služby FHIR.

Krok 2: Integrace serveru FHIR s ukázkami

Kliknutím na tento odkaz přejdete do opensourcového řešení Azure Health Data a ukázky AI. Kroky uvedené v dokumentu umožňují integraci serveru FHIR s jinými službami Azure (například APIM, Azure Functions a dalšími funkcemi).

Poznámka:

Ukázky jsou opensourcový kód a před použitím byste si měli projít informace a licenční podmínky na GitHubu. Nejsou součástí služby Azure Health Data Service a nejsou podporovány podpora Microsoftu. Tyto ukázky se používají k předvedení toho, jak je možné služby Azure Health Data Services (AHDS) a další opensourcové nástroje používat společně k předvedení standardizovaného rozhraní API pro dodržování standardizovaného rozhraní API pro služby pacient a populace, a to pomocí Id Microsoft Entra jako pracovního postupu zprostředkovatele identity.

SMART na FHIR Proxy

Kliknutím rozbalte!

Poznámka:

Toto je další možnost funkce SMART v FHIR(Enhanced) s využitím ukázek AHDS, které jsme zmínili dříve. Doporučujeme, abyste na FHIR (Enhanced) přijali SMART. Smart on FHIR Proxy option je starší možnost. SMART on FHIR(Enhanced) poskytuje funkce SMART na proxy FHIR. SMART on FHIR(Enhanced) splňuje požadavky v SMART on FHIR Implementation Guide (v 1.0.0) a §170.315(g)(10) Standardizované rozhraní API pro kritérium služeb pacientů a populace.

Pokud chcete používat SMART on FHIR, musíte aplikaci nejdřív ověřit a autorizovat. Při prvním použití funkce SMART v FHIR musíte také získat souhlas správce, abyste aplikaci umožnili přístup k vašim prostředkům FHIR.

Pokud v aplikaci nemáte roli vlastnictví, obraťte se na vlastníka aplikace a požádejte ho, aby vám udělil souhlas správce v aplikaci.

Pokud máte oprávnění správce, proveďte následující kroky, abyste udělili souhlas správce přímo sobě. (Souhlas správce můžete udělit i později, když se zobrazí výzva v aplikaci.) Stejným postupem můžete přidat další uživatele jako vlastníky, aby mohli zobrazit a upravit registraci aplikace.

Přidání sebe nebo jiného uživatele jako vlastníka aplikace:

  1. Na webu Azure Portal přejděte na Microsoft Entra ID.
  2. V nabídce vlevo vyberte Registrace aplikace.
  3. Vyhledejte registraci aplikace, kterou jste vytvořili, a vyberte ji.
  4. V nabídce vlevo v části Spravovat vyberte Vlastníci.
  5. Vyberte Přidat vlastníky a pak přidejte sami sebe nebo uživatele, kterého chcete mít souhlas správce.
  6. Zvolte Uložit.

Krok 2: Povolení SMART na proxy serveru FHIR

SMART on FHIR vyžaduje, aby Audience identifikátor URI byl roven identifikátoru URI služby FHIR. Standardní konfigurace služby FHIR používá Audience hodnotu https://fhir.azurehealthcareapis.com. Můžete ale také nastavit hodnotu odpovídající konkrétní adrese URL vaší služby FHIR (například https://MYFHIRAPI.fhir.azurehealthcareapis.com). To se vyžaduje při práci s smart na proxy serveru FHIR.

Chcete-li povolit SMART on FHIR proxy v nastavení ověřování pro vaši instanci FHIR, zaškrtněte políčko SMART on FHIR proxy .

Smart on FHIR proxy funguje jako zprostředkovatel mezi aplikací SMART on FHIR a Microsoft Entra ID. Ověřovací odpověď (ověřovací kód) musí místo samotné aplikace přejít na smart na proxy serveru FHIR. Proxy server pak přesměruje odpověď na aplikaci.

Vzhledem k tomu, že tento dvoustupňový přenos ověřovacího kódu je potřeba nastavit adresu URL odpovědi (zpětné volání) klientské aplikace Microsoft Entra na adresu URL, která je kombinací adresy URL odpovědi pro SMART na proxy serveru FHIR a adresy URL odpovědi pro aplikaci SMART v FHIR. Kombinovaná adresa URL odpovědi má následující formulář.

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

V odpovědi aHR0cHM6Ly9sb2NhbGhvc3Q6NTAwMS9zYW1wbGVhcHAvaW5kZXguaHRtbA je verze adresy URL s kódováním base64 zakódovaná v adrese URL odpovědi pro aplikaci SMART on FHIR. Pro spouštěč aplikací SMART na FHIR, když je aplikace spuštěná místně, adresa URL odpovědi je https://localhost:5001/sampleapp/index.html.

Kombinovanou adresu URL odpovědi můžete vygenerovat pomocí skriptu podobného následujícímu.

$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

Přidejte adresu URL odpovědi do veřejné klientské aplikace, kterou jste vytvořili dříve pro ID Microsoft Entra.

Krok 3: Získání testovacího pacienta

Pokud chcete otestovat službu FHIR a SMART na proxy serveru FHIR, musíte mít v databázi aspoň jednoho pacienta. Pokud jste rozhraní API ještě nepoužívali a v databázi nemáte data, přečtěte si článek o přístupu ke službě FHIR pomocí nástroje Postman k načtení pacienta. Poznamenejte si ID konkrétního pacienta.

Krok 4: Stažení inteligentního spouštěče aplikací FHIR na FHIR

Opensourcový server FHIR pro úložiště Azure obsahuje jednoduchý smart na spouštěči aplikací FHIR a ukázkovou aplikaci SMART v FHIR. V tomto kurzu pomocí tohoto inteligentního spouštěče aplikací FHIR místně otestujte nastavení.

Úložiště GitHub můžete naklonovat a přejít do aplikace pomocí následujících příkazů.

git clone https://github.com/Microsoft/fhir-server
cd fhir-server/samples/apps/SmartLauncher

Aplikace potřebuje několik nastavení konfigurace, ve kterých můžete nastavit appsettings.json:

{
    "FhirServerUrl": "https://MYFHIRAPI.fhir.azurehealthcareapis.com",
    "ClientId": "APP-ID",
    "DefaultSmartAppUrl": "/sampleapp/launch.html"
}

Doporučujeme použít dotnet user-secrets tuto funkci:

dotnet user-secrets set FhirServerUrl https://MYFHIRAPI.fhir.azurehealthcareapis.com
dotnet user-secrets set ClientId <APP-ID>

Ke spuštění aplikace použijte následující příkaz:

dotnet run

Krok 5: Otestování smart na proxy serveru FHIR

Jakmile spustíte spouštěč aplikací SMART na FHIR, můžete v prohlížeči nasměrovat na https://localhost:5001místo, kde byste měli vidět následující:

Snímek obrazovky se spouštěčem aplikací SMART na FHIR

Když zadáte informace o pacientech, setkáních nebo specialistách , všimnete si, že se kontext spuštění aktualizuje. Když používáte službu FHIR, kontext spuštění je jednoduše dokument JSON, který obsahuje informace o pacientech, specialistovi a dalších. Tento kontext spuštění je kódovaný v base64 a předán do aplikace SMART v FHIR jako launch parametr dotazu. Podle specifikace SMART on FHIR je tato proměnná neprůhlášená pro aplikaci SMART on FHIR a předána zprostředkovateli identity.

Smart on FHIR proxy používá tyto informace k naplnění polí v odpovědi tokenu. Aplikace SMART on FHIR může tato pole použít k řízení toho, pro kterého pacienta požaduje data, a způsobu vykreslení aplikace na obrazovce. Smart on FHIR proxy podporuje následující pole.

  • patient
  • encounter
  • practitioner
  • need_patient_banner
  • smart_style_url

Tato pole jsou určená k poskytování pokynů k aplikaci, ale neobsahují žádné bezpečnostní informace. Aplikace SMART v FHIR je může ignorovat.

Všimněte si, že spouštěč aplikací SMART on FHIR aktualizuje informace o adrese URL spuštění v dolní části stránky. Výběrem možnosti Spustit spusťte ukázkovou aplikaci a měli byste vidět něco podobného jako v následujícím příkladu.

Snímek obrazovky s aplikací SMART on FHIR

Zkontrolujte odpověď tokenu a podívejte se, jak se do aplikace předávají kontextová pole pro spuštění.

Migrace z SMART na proxy FHIR na SMART v FHIR (rozšířené)

Důležité

SMART on FHIR proxy odchází v září 2026, přechod na SMART on FHIR (Enhanced) do tohoto data. Od září 2026 budou aplikace závislé na smart on FHIR proxy hlásit chyby při přístupu ke službě FHIR.

SMART on FHIR (Enhanced) poskytuje v porovnání s funkcí SMART na proxy FHIR více funkcí. SMART on FHIR(Enhanced) lze považovat za splnění požadavků s využitím standardizovaného rozhraní API pro kritéria služeb pacientů a obyvatel v FHIR (v. 1.0.0) a §170.315(g)(10). Následující tabulka uvádí rozdíl mezi funkcí SMART on FHIR proxy a SMART on FHIR (Enhanced).

Schopnost SMART na FHIR (rozšířená) SMART on FHIR proxy
Podporuje samostatné spuštění. Yes No
Podporuje spuštění EHR. Ano Yes
Podporuje omezení rozsahu. Yes No
Spoléhá na produkty Azure první strany. Ano, je potřeba integrovat produkty Azure, jako je Azure API Management (APIM). No
Podpora společnosti Microsoft Podporováno pro službu FHIR. Je potřeba hlásit a monitorovat podporu opensourcových ukázek prostřednictvím GitHubu. Podporováno pro službu FHIR

Kroky migrace

  • Krok 1: Nastavení role uživatele FHIR SMART Postupujte podle kroků uvedených v části Správa uživatelů: Přiřazení uživatelů k roli. Každý uživatel přidaný do role uživatele SMART má přístup ke službě FHIR, pokud jejich požadavky vyhovují průvodci implementací SMART on FHIR.
  • Krok 2: Nasazení ukázky SMART v FHIR v rámci ukázek dat azure Health a AI OSS
  • Krok 3: Aktualizace koncového bodu adresy URL služby FHIR na {{BASEURL_FROM_APIM}}/smart
  • Krok 4: Zrušte zaškrtnutí nastavení SMART na proxy serveru FHIR v okně Ověřování pro službu FHIR.

Pokud máte nějaké dotazy, můžete získat odpovědi od komunitních specialistů na webu Microsoft Q&A. Pro technickou podporu můžete také vytvořit žádost o podporu.

Další kroky

Teď, když jste se seznámili s povolením funkce SMART on FHIR, najdete na stránce s ukázkami vyhledávání podrobnosti o tom, jak hledat pomocí parametrů hledání, modifikátorů a dalších metod hledání FHIR.

Poznámka:

FHIR® je registrovaná ochranná známka HL7 a používá se s povolením HL7.