SMART på FHIR

Azure Health Data Services (AHDS) FHIR-tjänst stödjer Substitutable Medical Applications and Reusable Technologies (SMART on FHIR) genom att implementera de viktigaste server-side-beteenden som krävs för att SMART-klienter ska kunna få säker åtkomst till FHIR-data med hjälp av OAuth 2.0 och OpenID Connect. SMART på FHIR är en implementeringsguide genom vilken applikationer kan få tillgång till klinisk information via en datalagring. Det lägger till ett säkerhetslager baserat på öppna standarder, inklusive OAuth2 och OpenID Connect, till FHIR-gränssnitt® för att möjliggöra integrering med EHR-system. Att använda SMART på FHIR ger minst tre viktiga fördelar:

  • Applikationer har en känd metod för att erhålla autentisering och auktorisation till ett FHIR-arkiv.
  • Användare som har åtkomst till en FHIR-lagringsplats med SMART på FHIR är begränsade till resurser som är associerade med användaren, i stället för att ha åtkomst till alla data på lagringsplatsen.
  • Användare kan ge applikationer åtkomst till en begränsad mängd av sina uppgifter genom att använda SMART clinical scopes.

Förutsättningar

Innan du kan börja bör du kontrollera att du har:

  1. En AHDS FHIR-tjänstinstans.
  2. Behörigheter för att konfigurera FHIR-autentiseringsinställningar.
  3. En identitetsleverantörsstrategi: Microsoft Entra ID plus ett orkestreringslager, eller en SMART-medveten tredjepartsidentitetsleverantör.
  4. En testpatient i din FHIR-butik.
  5. En SMART-klientapplikation (eller SmartLauncher-exemplet för validering).

Flöde från slutpunkt till slutpunkt

En SMART-klient utför vanligtvis dessa steg:

  1. Upptäck: Anropa /.well-known/smart-configuration på FHIR-servern för att hitta slutpunkter och funktioner som stöds.
  2. Auktorisera: Omdirigera användaren till auktorisationsändpunkten med efterfrågade SMART-omfattningar.
  3. Token: Exchange auktorisationskod för en accesstoken, anropa sedan FHIR-API:er med bärartoken.
  4. Anropa FHIR-API:er: Skicka bärartoken till FHIR-endpointen. Tillgången begränsas av omfattning och kontext.

Konfigurera åtkomst för slutanvändare

Tilldela användare till FHIR SMART-användarrollen genom att använda Azure-rollfördelningsguiden: Tilldela användare till roll. Användare i denna roll kan få tillgång till FHIR-tjänsten när förfrågningar uppfyller SMART-kraven.

Kommentar

SMART-användarrollen i sig ger inte tillgång till data. Varje begäran begränsas dessutom av fhirUser-kontexten och SMART-kliniska behörigheter i åtkomsttoken. Se SMART-användarrollsfunktioner.

SMART-användarrollsfunktioner

SMART-användarrollen stödjer läs- och sökinteraktioner. Scopen i access-token avgör vilka resurstyper en begäran kan nå, och kravet fhirUser avgör vems data som är inom räckhåll.

Stödda FHIR-interaktioner

SMART v2-verb SMART v1-ekvivalent Tillåten interaktion
r (läs) read Läs en resurs med ID (GET [type]/[id]).
s (sökning) read Sök (GET [type]?[params]), och $export där ett systemomfång gäller.

Kommentar

I SMART v2 beviljar r endast läsning via ID. En kund som behöver söka måste också begära s. Till exempel patient/Observation.r kan man inte köra en sökning. Använd patient/Observation.rs i stället.

Interaktioner som inte är tillgängliga för SMART-användarrollen

Följande interaktioner och åtgärder är inte tillgängliga för en användare med endast den här rollen, även när behörigheterna i tokenet medger den underliggande interaktionen.

Interaktion eller funktion Reason
$export med patient/- eller user/-omfattningar, eller med omfattningar som har begränsningar för sökparametrar $export kräver system/ omfattningar utan sökparameterbegränsningar.
$member-match Inte tillgängligt för SMART-användare när SMART-medlemmatchningsbegränsningen är aktiverad. Systemet avvisar begäran som oauktoriserad.
_include, _revinclude, kedjesökningar (till exempel subject.name), och omvändkedjesökningar (_has) som når en oupptäckt resurstyp Systemet avvisar sökningen när det skulle returnera en resurstyp som omfattningarna i tokenen inte täcker.
Skapa, uppdatera, patcha eller ta bort en resurs (POST, PUT, PATCH, ) DELETE Skrivinteraktioner stöds inte.

Viktigt!

En principal som innehar FHIR SMART-användarrollen och presenterar en token utan SMART-kliniska scopes får ingen dataåtkomst alls, inklusive läsning.

Stöd för identitetsprovider

FHIR-tjänsten erbjuder integration med Microsoft Entra ID eller tredjepartsleverantörer av identitet (IDP) som förstår SMART-startkontext och SMART-scope-semantik.

SMART on FHIR-specifikationen definierar startkontext som en uppsättning parametrar som förmedlas under auktorisationsflödet och returneras som en del av tokensvaret. Dessa parametrar inkluderar vanligtvis identifierare som patient-ID, mötes-ID och FHIR-användaren (till exempel en utövare eller patient), tillsammans med valfria fält. Tekniskt sett skickas denna kontext in i SMART-arbetsflödet via en parameter som kallas launch, som är avsiktligt ogenomskinlig för applikationen. Applikationen tar helt enkelt emot och vidarebefordrar detta värde under auktoriseringsprocessen. Denna launch parameter mappas till en lagrad kontextpost, som innehåller de faktiska patient- och mötesidentifierarna. Under tokenbytessteget löses denna kontext och returneras tillsammans med åtkomsttoken så att applikationen kan göra korrekt avgränsade API-anrop. Denna mekanism säkerställer att när en app får tillgång till FHIR-data verkar den inom en tydligt definierad klinisk gräns.

Identitetsleverantörer ansvarar för att autentisera användare och utfärda tokens, men de har ingen insyn i kliniska arbetsflöden. Applikationen måste fastställa en lämplig patientkontext, antingen genom att uppmana användaren, välja en patient från en lista eller hämta den från ett annat system. Oavsett hur denna kontext etableras måste applikationen inkludera den i tokenen som används för att anropa FHIR-tjänsten.

Denna arkitektur tillhandahåller ett orkestreringslager som fungerar som en brygga mellan identitetsleverantören, det kliniska systemet (såsom en EHR) och FHIR-tjänsten.

Exempelintegration

Använd Azure Health Data och AI Samples open-source-repo för att sätta upp SMART on FHIR-upplevelsen. Arkivet tillhandahåller exempel-SMART på FHIR v2 — Native IdP-Agnostic Sample.

Detta exempel visar skapandet av ett orkestreringslager som fungerar som en bro mellan identitetsleverantören, det kliniska systemet (såsom en EHR) och FHIR-tjänsten. Den stöder både Microsoft Entra ID eller en extern identitetsleverantör (till exempel Okta). Se exempelarkivet för detaljerade instruktioner om hur du konfigurerar och kör provet.

Kommentar

Exempel är öppen källkod, och du bör granska informationen och licensvillkoren på GitHub innan du använder dem. De ingår inte i Azure Health Data Service, och Microsoft Support tillhandahåller inte heller support för dem. Dessa exempel visar hur Azure Health Data Services (AHDS) och andra öppna verktyg kan användas tillsammans för att demonstrera §170.315(g)(10) Standardiserat API för kriteriumsefterlevnad av patient- och populationstjänster, med Microsoft Entra ID som identitetsleverantörens arbetsflöde.

Microsoft Entra ID-integrering

Microsoft Entra ID är en fullfjädrad OAuth 2.0- och OpenID Connect-identitetsleverantör. För att integrera Microsoft Entra ID som identitetsleverantör behöver du extra komponenter för att slutföra den kompletta SMART on FHIR-upplevelsen. Detta krav finns eftersom SMART på FHIR introducerar beteenden som företagsidentitetsleverantörer som Entra ID inte stöder nativt. För att överbrygga detta gap tillhandahåller Microsoft referenslösningar (exempel). Exemplet tillhandahåller ett orkestreringslager mellan SMART-klienter och Entra ID.

Exemplet stöder följande scenarier för Microsoft Entra ID:

  1. Ett scope-värde som till exempel patient/Patient.rs är inte en registrerad Entra ID-behörighet, så Entra ID avvisar auktorisationsförfrågan.
  2. Det erbjuder inte någon omfångsväljare för varje begäran för resursverb i SMART. Entras samtyckesskärm speglar förregistrerade applikationsbehörigheter, inte den dynamik patient/<Resource>.<verbs> som SMART-appen skickar vid varje lansering.
  3. Det marknadsför inte ett SMART-upptäcktsdokument — smart-konfiguration är FHIR-serverterritorium, inte IdP-territorium.

SMART-stöd för FHIR v1/v2

AHDS FHIR-tjänsten stöder SMART v1.0.0 och SMART v2.0.0. Du kan inte blanda SMART v1.0.0- och SMART v2.0.0-behörigheter i registreringen av samma klientapp. Du måste välja det ena eller det andra.

Nästa steg

Nu när du förstår hur du aktiverar SMART på FHIR-funktionalitet, se sidan för sökprover för detaljer om hur du söker med hjälp av sökparametrar, modifierare och andra FHIR-sökmetoder.

Kommentar

FHIR® är ett registrerat varumärke som tillhör HL7 och används med tillstånd av HL7.