Skip to content

Commit 9757220

Browse files
Merge pull request #308720 from evachen96/smartv2docs
Update docs for smart v2
2 parents 0c05d31 + 1f4e621 commit 9757220

2 files changed

Lines changed: 57 additions & 7 deletions

File tree

articles/healthcare-apis/fhir/smart-on-fhir.md

Lines changed: 54 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
title: SMART on FHIR - Azure Health Data Services
3-
description: This tutorial describes how to use a proxy to enable SMART on FHIR applications with the FHIR service.
3+
description: This tutorial describes how to enable SMART on FHIR applications with the FHIR service.
44
services: healthcare-apis
55
ms.service: azure-health-data-services
66
ms.subservice: fhir
@@ -23,7 +23,7 @@ The following tutorials provide steps to enable SMART on FHIR applications with
2323
## Prerequisites
2424

2525
- An instance of the FHIR Service
26-
- .NET SDK 6.0
26+
- .NET SDK 8.0
2727
- [Enable cross-origin resource sharing (CORS)](configure-cross-origin-resource-sharing.md)
2828
- [Register public client application in Microsoft Entra ID](/azure/healthcare-apis/azure-api-for-fhir/register-public-azure-ad-client-app)
2929
- After registering the application, make note of the `applicationId` for client application.
@@ -38,18 +38,68 @@ Follow the steps listed in section [Manage Users: Assign Users to Role](/azure/r
3838
> SMART on FHIR Implementation Guide defines access to FHIR resource types with scopes. These scopes impact the access an application may have to FHIR resources. A user with the SMART user role has access to perform read API interactions on FHIR service. SMART user role does not grant write access to FHIR service.
3939
4040
### Step 2: FHIR server integration with samples
41-
**[Click on this link](https://github.com/Azure-Samples/azure-health-data-and-ai-samples/tree/main/samples/smartonfhir)** to navigate to Azure Health Data and AI Samples open source solution. The steps listed in the document enable integration of FHIR server with other Azure Services (such as APIM, Azure functions and more).
41+
Azure Health Data and AI Samples open source repo provides samples for [SMART on FHIR v1.0.0](https://github.com/Azure-Samples/azure-health-data-and-ai-samples/tree/main/samples/smartonfhir) and [SMART on FHIR v2.0.0](https://github.com/Azure-Samples/azure-health-data-and-ai-samples/tree/main/samples/smartonfhir-smart-v2). The steps listed in the document enable integration of FHIR server with other Azure Services (such as APIM, Azure functions and more).
4242

4343
> [!NOTE]
4444
> Samples are open-source code, and you should review the information and licensing terms on GitHub before using it. They are not part of the Azure Health Data Service and are not supported by Microsoft Support. These samples are used to demonstrate how Azure Health Data Services (AHDS) and other open-source tools can be used together to demonstrate [§170.315(g)(10) Standardized API for patient and population services criterion](https://www.healthit.gov/test-method/standardized-api-patient-and-population-services#ccg) compliance, using Microsoft Entra ID as the identity provider workflow.
4545
46+
47+
48+
The following lists the different scopes supported in SMART v1.0.0 and SMART v2.0.0. Please note that you cannot mix and match SMART v1.0.0 and SMART v.2.0.0 scopes in the same client app registration; you must choose one or the other.
49+
50+
#### SMART v1:
51+
[SMART on FHIR v1.0.0 sample](https://github.com/Azure-Samples/azure-health-data-and-ai-samples/tree/main/samples/smartonfhir)
52+
53+
54+
Scopes:
55+
56+
- patient/Observation.read
57+
58+
- user/Encounter.*
59+
60+
- patient/*.*
61+
62+
- system/Patient.read (commonly used for $export)
63+
64+
65+
66+
#### SMART v2:
67+
[SMART on FHIR v2.0.0 sample](https://github.com/Azure-Samples/azure-health-data-and-ai-samples/tree/main/samples/smartonfhir-smart-v2)
68+
- Granular scopes:
69+
70+
- r = read only
71+
72+
- s = search
73+
74+
- rs = read+search
75+
76+
- NOTE: rs scopes allow both direct reads and search operations; r alone does not allow any search or _include on direct record lookup.
77+
78+
79+
- To map from SMART v1 scopes to SMART v2 scopes, use the following table:
80+
81+
| SMART v1 Scope | SMART v2 Scope |
82+
|------------------------|-----------------------|
83+
| patient/Observation.read | Patient/Observation.rs |
84+
| patient/*.read | Patient/*.rs |
85+
| system/Patient.read | System/Patient.rs |
86+
87+
- Parameter-constrained scopes:
88+
- SMART v2 expands on standard scopes by introducing parameter-constrained scopes, allowing clients to access only the subset of resources matching specific query parameters.
89+
- Example: `Condition.rs?category=http//terminology.hl7.org/CodeSystem/condition-category|encounter-diagnosis`
90+
- This scope grants read/search access only to Condition resources with that specific category.
91+
- Note: Chained, `_include`, and `_revinclude` are only supported in the normal search query, they are not supported in the granular scope query string.
92+
93+
94+
4695
## SMART on FHIR Proxy
4796
<details>
4897
<summary> Click to expand! </summary>
4998

5099
> [!NOTE]
51100
> This is another option to SMART on FHIR(Enhanced) using the AHDS Samples previously mentioned. We suggest you to adopt SMART on FHIR(Enhanced). SMART on FHIR Proxy option is a legacy option.
52-
> SMART on FHIR(Enhanced) provides added capabilities to SMART on FHIR proxy. SMART on FHIR(Enhanced) meets requirements in [SMART on FHIR Implementation Guide (v 1.0.0)](https://hl7.org/fhir/smart-app-launch/1.0.0/) and [§170.315(g)(10) Standardized API for patient and population services criterion](https://www.healthit.gov/test-method/standardized-api-patient-and-population-services#ccg).
101+
> SMART on FHIR(Enhanced) provides added capabilities to SMART on FHIR proxy. SMART on FHIR(Enhanced) meets requirements in [SMART on FHIR Implementation Guide (v 1.0.0)](https://hl7.org/fhir/smart-app-launch/1.0.0/), [SMART on FHIR Implementation Guide (v 2.0.0)](https://hl7.org/fhir/smart-app-launch/STU2/), and [§170.315(g)(10) Standardized API for patient and population services criterion](https://www.healthit.gov/test-method/standardized-api-patient-and-population-services#ccg).
102+
53103

54104
### Step 1: Set admin consent for your client application
55105

articles/healthcare-apis/includes/smart-on-fhir-proxy-migration.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@ ms.custom: "include file"
1212
> [!IMPORTANT]
1313
> **SMART on FHIR proxy is retiring in September 2026**, transition to the SMART on FHIR (Enhanced) by that date. Beginning September 2026, applications relying on SMART on FHIR proxy will report errors in accessing the FHIR service.
1414
15-
SMART on FHIR (Enhanced) provides more capabilities compared to SMART on FHIR proxy. SMART on FHIR(Enhanced) can be considered to meet requirements with [SMART on FHIR Implementation Guide (v 1.0.0)](https://hl7.org/fhir/smart-app-launch/1.0.0/) and [§170.315(g)(10) Standardized API for patient and population services criterion.](https://www.healthit.gov/test-method/standardized-api-patient-and-population-services#ccg)
16-
The following table lists the difference between SMART on FHIR proxy and SMART on FHIR (Enhanced).
15+
SMART on FHIR (Enhanced) provides more capabilities compared to SMART on FHIR proxy. SMART on FHIR(Enhanced) can be considered to meet requirements with [SMART on FHIR Implementation Guide (v 1.0.0)](https://hl7.org/fhir/smart-app-launch/1.0.0/), [SMART on FHIR Implementation Guide (v 2.0.0)](https://hl7.org/fhir/smart-app-launch/STU2/), and [§170.315(g)(10) Standardized API for patient and population services criterion.](https://www.healthit.gov/test-method/standardized-api-patient-and-population-services#ccg)
16+
The following table lists the difference between SMART on FHIR proxy and SMART on FHIR (Enhanced). SMART on FHIR Implementation Guide (v2.0.0) is only supported in SMART on FHIR (Enhanced) sample.
1717

1818
|Capability|SMART on FHIR (Enhanced)|SMART on FHIR proxy|
1919
|---|---|---|
@@ -26,7 +26,7 @@ The following table lists the difference between SMART on FHIR proxy and SMART o
2626
### Migration Steps
2727
* Step 1: Set up FHIR SMART user role
2828
Follow the steps listed under section [Manage Users: Assign Users to Role](/azure/active-directory/fundamentals/active-directory-users-assign-role-azure-portal). Any user added to SMART user role is able to access the FHIR Service, if their requests comply with the SMART on FHIR implementation Guide.
29-
* Step 2: Deploy SMART on FHIR sample under [Azure Health Data and AI OSS samples](https://github.com/Azure-Samples/azure-health-data-and-ai-samples/tree/main/samples/smartonfhir)
29+
* Step 2: Deploy SMART on FHIR sample under Azure Health Data and AI OSS samples - [SMART v1](https://github.com/Azure-Samples/azure-health-data-and-ai-samples/tree/main/samples/smartonfhir) or [SMART v2](https://github.com/Azure-Samples/azure-health-data-and-ai-samples/tree/main/samples/smartonfhir-smart-v2).
3030
* Step 3: Update endpoint of the FHIR service url to '{{BASEURL_FROM_APIM}}/smart.'
3131
* Step 4: Uncheck the SMART on FHIR proxy setting under Authentication blade for the FHIR service.
3232

0 commit comments

Comments
 (0)