Přehled funkce SMART on FHIR

Substitutable Medical Applications and Reusable Technologies (SMART on FHIR) je zdravotnický standard, jehož prostřednictvím mohou aplikace přistupovat ke 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žňuje integraci se systémy EHR. Používání funkce SMART na FHIR přináší alespoň tři důležité výhody:

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

Následující kurzy popisují kroky pro povolení funkce SMART v aplikacích FHIR se službou FHIR.

Požadavky

SMART on FHIR using AHDS Samples OSS (SMART on FHIR(Enhanced))

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živatel FHIR SMART" bude mít přístup ke službě FHIR, pokud jeho požadavky vyhovují průvodci implementací SMART on FHIR, například žádost o přístupový token, který zahrnuje deklaraci fhirUser a deklaraci klinických oborů. Přístup udělený uživatelům v této roli pak bude omezen prostředky přidruženými k jejich oddílu fhirUser a omezeními v klinických oborech.

Krok 2: Integrace serveru FHIR s ukázkami

Postupujte podle kroků v části Azure Health Data Service Samples OSS. To umožní integraci serveru FHIR s dalšími službami Azure (jako jsou APIM, Azure Functions a další).

Poznámka

Ukázky jsou opensourcový kód a před jeho 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 podpora Microsoftu je nepodporuje. Tyto ukázky můžete použít k předvedení toho, jak je možné společně použít azure Health Data Services a další opensourcové nástroje k demonstraci dodržování předpisů ONC (g)(10) s využitím Azure Active Directory jako pracovního postupu zprostředkovatele identity.

SMART on FHIR proxy

Kliknutím rozbalíte!

Poznámka

Toto je další možnost funkce SMART na FHIR(Enhanced) uvedená výše. Možnost SMART on FHIR Proxy povoluje pouze sekvenci spuštění EHR.

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

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

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

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

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

Krok 2: Povolení proxy serveru SMART na FHIR

FUNKCE SMART na FHIR vyžaduje identifikátor URI, který Audience se rovná identifikátoru URI služby FHIR. Standardní konfigurace rozhraní Azure API for FHIR používá Audience hodnotu https://azurehealthcareapis.com. Můžete ale také nastavit hodnotu odpovídající konkrétní adrese URL vaší služby FHIR (například https://MYFHIRAPI.azurehealthcareapis.com). To se vyžaduje při práci s aplikací SMART na proxy serveru FHIR.

Pokud chcete povolit proxy server SMART on FHIR v nastavení ověřování pro vaši instanci Azure API for FHIR, zaškrtněte políčko smart on FHIR proxy server:

Snímek obrazovky znázorňuje povolení smartu na proxy serveru FHIR.

Proxy server SMART on FHIR funguje jako prostředník mezi aplikací SMART on FHIR a Azure AD. Ověřovací odpověď (ověřovací kód) musí místo samotné aplikace přejít na proxy server SMART na FHIR. Proxy server pak předá odpověď aplikaci.

Z důvodu tohoto dvoustupňového předávání ověřovacího kódu musíte nastavit adresu URL odpovědi (zpětné volání) pro Azure AD klientskou aplikaci na adresu URL, která je kombinací adresy URL odpovědi pro proxy server SMART on FHIR a adresy URL odpovědi pro aplikaci SMART on FHIR. Kombinovaná adresa URL odpovědi má tento tvar:

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

V této odpovědi aHR0cHM6Ly9sb2NhbGhvc3Q6NTAwMS9zYW1wbGVhcHAvaW5kZXguaHRtbA je verze adresy URL pro aplikaci SMART on FHIR s kódováním base64. Pro spouštěč aplikací SMART on FHIR platí, že 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, jako je tento:

$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

Přidejte adresu URL odpovědi do veřejné klientské aplikace, kterou jste vytvořili dříve pro Azure AD:

Snímek obrazovky znázorňuje, jak je možné nakonfigurovat adresu URL odpovědi pro veřejného klienta.

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

Pokud chcete otestovat rozhraní Azure API for FHIR a smart on FHIR proxy, musíte mít v databázi aspoň jednoho pacienta. Pokud jste s rozhraním API ještě neinteraktivovali a v databázi nemáte data, přečtěte si článek Přístup ke službě FHIR pomocí Nástroje Postman k načtení pacienta. Poznamenejte si ID konkrétního pacienta.

Krok 4: Stažení spouštěče aplikací SMART on FHIR

Opensourcový server FHIR pro úložiště Azure obsahuje jednoduchý spouštěč aplikací SMART on FHIR a ukázkovou aplikaci SMART on FHIR. V tomto kurzu použijte tento spouštěč SMART na FHIR místně k otestování nastavení.

Úložiště GitHub můžete naklonovat a přejít do aplikace pomocí těchto příkazů:

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

Aplikace potřebuje několik konfiguračních nastavení, která můžete nastavit v appsettings.json:

{
    "FhirServerUrl": "https://MYFHIRAPI.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.azurehealthcareapis.com
dotnet user-secrets set ClientId <APP-ID>

Pomocí tohoto příkazu spusťte aplikaci:

dotnet run

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

Po spuštění spouštěče aplikací SMART on FHIR můžete prohlížeč nasměrovat na https://localhost:5001adresu , kde by se měla zobrazit následující obrazovka:

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

Když zadáte informace o pacientovi, setkání nebo praktikovi , uvidíte, že se aktualizuje kontext Spuštění . Když používáte rozhraní Azure API for FHIR, kontext spuštění je jednoduše dokument JSON, který obsahuje informace o pacientech, praktickém lékaři a dalších informacích. Tento kontext spuštění je kódovaný jako base64 a předává se do aplikace SMART on FHIR jako launch parametr dotazu. Podle specifikace SMART on FHIR je tato proměnná neprůhlhlá pro aplikaci SMART on FHIR a předává se zprostředkovateli identity.

Proxy server SMART on FHIR tyto informace používá k naplnění polí v odpovědi na token. Aplikace SMART on FHIR může pomocí těchto polí řídit, pro kterého pacienta požaduje data a jak vykreslí aplikaci na obrazovce. Proxy server SMART on FHIR podporuje následující pole:

  • patient
  • encounter
  • practitioner
  • need_patient_banner
  • smart_style_url

Tato pole mají poskytovat pokyny k aplikaci, ale nesdělují žádné informace o zabezpečení. Aplikace SMART on FHIR je může ignorovat.

Všimněte si, že spouštěč aplikací SMART on FHIR aktualizuje informace o spouštěcí adrese URL v dolní části stránky. Výběrem možnosti Spustit spusťte ukázkovou aplikaci.

## Další kroky

Teď, když jste se dozvěděli o povolení funkce SMART on FHIR, podívejte se na stránku s ukázkami vyhledávání, kde najdete podrobnosti o tom, jak hledat pomocí parametrů hledání, modifikátorů a dalších metod vyhledávání FHIR.

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