Skip to content

Commit c10a53a

Browse files
authored
Merge pull request #250962 from EXPEkesheth/patch-106
Create smartonfhirproxyMigration
2 parents d6d607c + 94bcc71 commit c10a53a

File tree

3 files changed

+45
-11
lines changed

3 files changed

+45
-11
lines changed

articles/healthcare-apis/azure-api-for-fhir/smart-on-fhir.md

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,13 +28,13 @@ Below tutorials describe steps to enable SMART on FHIR applications with FHIR Se
2828
- After registering the application, make note of the applicationId for client application.
2929
- Ensure you have access to Azure Subscription of FHIR service, to create resources and add role assignments.
3030

31-
## SMART on FHIR using AHDS Samples OSS (SMART on FHIR(Enhanced))
31+
## SMART on FHIR using Samples OSS (SMART on FHIR(Enhanced))
3232

3333
### Step 1: Set up FHIR SMART user role
34-
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 role - "FHIR SMART User" will be able to access the FHIR Service if their requests comply with the SMART on FHIR implementation Guide, such as request having access token, which includes a fhirUser claim and a clinical scopes claim. The access granted to the users in this role will then be limited by the resources associated to their fhirUser compartment and the restrictions in the clinical scopes.
34+
Follow the steps listed under section [Manage Users: Assign Users to Role](../../role-based-access-control/role-assignments-portal.md). Any user added to role - "FHIR SMART User" will be able to access the FHIR Service if their requests comply with the SMART on FHIR implementation Guide, such as request having access token, which includes a fhirUser claim and a clinical scopes claim. The access granted to the users in this role will then be limited by the resources associated to their fhirUser compartment and the restrictions in the clinical scopes.
3535

3636
### Step 2: FHIR server integration with samples
37-
[Follow the steps](https://aka.ms/azure-health-data-services-smart-on-fhir-sample) under Azure Health Data Service Samples OSS. This will enable integration of FHIR server with other Azure Services (such as APIM, Azure functions and more).
37+
[Follow the steps](https://aka.ms/azure-health-data-services-smart-on-fhir-sample) under Azure Health Data and AI Samples OSS. This will enable integration of FHIR server with other Azure Services (such as APIM, Azure functions and more).
3838

3939
> [!NOTE]
4040
> 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 can be used to demonstrate how Azure Health Data Services and other open-source tools can be used together to demonstrate ONC (g)(10) compliance, using Azure Active Directory as the identity provider workflow.
@@ -45,7 +45,7 @@ Follow the steps listed under section [Manage Users: Assign Users to Role](/azur
4545
<summary> Click to expand! </summary>
4646

4747
> [!NOTE]
48-
> This is another option to SMART on FHIR(Enhanced) mentioned above. SMART on FHIR Proxy option only enables EHR launch sequence.
48+
> This is another option to SMART on FHIR (Enhanced) mentioned above. SMART on FHIR Proxy option only enables EHR launch sequence.
4949
### Step 1: Set admin consent for your client application
5050

5151
To use SMART on FHIR, you must first authenticate and authorize the app. The first time you use SMART on FHIR, you also must get administrative consent to let the app access your FHIR resources.
@@ -158,6 +158,9 @@ These fields are meant to provide guidance to the app, but they don't convey any
158158
Notice that the SMART on FHIR app launcher updates the **Launch URL** information at the bottom of the page. Select **Launch** to start the sample app.
159159
</details>
160160
161+
## Migrate from SMART on FHIR Proxy to SMART on FHIR (Enhanced)
162+
[!INCLUDE [Migrate from SMART on FHIR Proxy to Enhanced](../includes/smart-on-fhir-proxy-migration.md)]
163+
161164
## Next steps
162165

163166
Now that you've learned about enabling SMART on FHIR functionality, see the search samples page for details about how to search using search parameters, modifiers, and other FHIR search methods.

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

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ ms.date: 11/10/2022
1212

1313
# SMART on FHIR
1414

15-
Substitutable Medical Applications and Reusable Technologies([SMART on FHIR](https://docs.smarthealthit.org/)) is a healthcare standard through which applications can access clinical information through a data store. It adds a security layer based on open standards including OAuth2 and OpenID Connect, to FHIR interfaces to enable integration with EHR systems. Using SMART on FHIR provides at least three important benefits:
15+
Substitutable Medical Applications and Reusable Technologies ([SMART on FHIR](https://docs.smarthealthit.org/)) is a healthcare standard through which applications can access clinical information through a data store. It adds a security layer based on open standards including OAuth2 and OpenID Connect, to FHIR interfaces to enable integration with EHR systems. Using SMART on FHIR provides at least three important benefits:
1616
- Applications have a known method for obtaining authentication/authorization to a FHIR repository.
1717
- Users accessing a FHIR repository with SMART on FHIR are restricted to resources associated with the user, rather than having access to all data in the repository.
1818
- Users have the ability to grant applications access to a limited set of their data by using SMART clinical scopes.
@@ -31,12 +31,10 @@ Below tutorials provide steps to enable SMART on FHIR applications with FHIR Ser
3131
## SMART on FHIR using Azure Health Data Services Samples (SMART on FHIR (Enhanced))
3232

3333
### Step 1: Set up FHIR SMART user role
34-
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 this role will be able to access the FHIR Service if their requests comply with the SMART on FHIR implementation Guide, such as request having access token which includes a fhirUser claim and a clinical scopes claim. The access granted to the users in this role will then be limited by the resources associated to their fhirUser compartment and the restrictions in the clinical scopes.
34+
Follow the steps listed under section [Manage Users: Assign Users to Role](../../role-based-access-control/role-assignments-portal.md). Any user added to this role would be able to access the FHIR Service, provided their requests comply with the SMART on FHIR implementation Guide. The access granted to the users in this role will then be limited by the resources associated to their fhirUser compartment and the restrictions in the clinical scopes.
3535

3636
### Step 2: FHIR server integration with samples
37-
For integration with Azure Health Data Services samples, you would need to follow the steps in samples open source solution.
38-
39-
**[Click on the link](https://aka.ms/azure-health-data-services-smart-on-fhir-sample)** to navigate to Azure Health Data Service Samples OSS. This step listed in the document will enable integration of FHIR server with other Azure Services (such as APIM, Azure functions and more).
37+
**[Click on the 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. This step listed in the document enables integration of FHIR server with other Azure Services (such as APIM, Azure functions and more).
4038

4139
> [!NOTE]
4240
> 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 can be used to demonstrate how Azure Health Data Services 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 Azure Active Directory as the identity provider workflow.
@@ -104,7 +102,7 @@ Add the reply URL to the public client application that you created earlier for
104102

105103
### Step 3: Get a test patient
106104

107-
To test the FHIR service and the SMART on FHIR proxy, you'll need to have at least one patient in the database. If you've not interacted with the API yet, and you don't have data in the database, see [Access the FHIR service using Postman](./../fhir/use-postman.md) to load a patient. Make a note of the ID of a specific patient.
105+
To test the FHIR service and the SMART on FHIR proxy, you need to have at least one patient in the database. If you've not interacted with the API yet, and you don't have data in the database, see [Access the FHIR service using Postman](./../fhir/use-postman.md) to load a patient. Make a note of the ID of a specific patient.
108106

109107
### Step 4: Download the SMART on FHIR app launcher
110108

@@ -146,7 +144,7 @@ After you start the SMART on FHIR app launcher, you can point your browser to `h
146144

147145
![Screenshot showing SMART on FHIR app launcher.](media/smart-on-fhir/smart-on-fhir-app-launcher.png)
148146

149-
When you enter **Patient**, **Encounter**, or **Practitioner** information, you'll notice that the **Launch context** is updated. When you're using the FHIR service, the launch context is simply a JSON document that contains information about patient, practitioner, and more. This launch context is base64 encoded and passed to the SMART on FHIR app as the `launch` query parameter. According to the SMART on FHIR specification, this variable is opaque to the SMART on FHIR app and passed on to the identity provider.
147+
When you enter **Patient**, **Encounter**, or **Practitioner** information, you notice that the **Launch context** is updated. When you're using the FHIR service, the launch context is simply a JSON document that contains information about patient, practitioner, and more. This launch context is base64 encoded and passed to the SMART on FHIR app as the `launch` query parameter. According to the SMART on FHIR specification, this variable is opaque to the SMART on FHIR app and passed on to the identity provider.
150148

151149
The SMART on FHIR proxy uses this information to populate fields in the token response. The SMART on FHIR app *can* use these fields to control which patient it requests data for and how it renders the application on the screen. The SMART on FHIR proxy supports the following fields:
152150

@@ -165,6 +163,9 @@ Notice that the SMART on FHIR app launcher updates the **Launch URL** informatio
165163
Inspect the token response to see how the launch context fields are passed on to the app.
166164
</details>
167165

166+
## Migrate from SMART on FHIR Proxy to SMART on FHIR (Enhanced)
167+
[!INCLUDE [Migrate from SMART on FHIR Proxy to Enhanced](../includes/smart-on-fhir-proxy-migration.md)]
168+
168169
## Next steps
169170

170171
Now that you've learned about enabling SMART on FHIR functionality, see the search samples page for details about how to search using search parameters, modifiers, and other FHIR search methods.
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
---
2+
title: "include file"
3+
description: "include file"
4+
services: healthcare-apis
5+
ms.service: fhir
6+
ms.topic: "include"
7+
ms.date: 09/11/2023
8+
ms.author: kesheth
9+
ms.custom: "include file"
10+
---
11+
12+
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)
13+
The following table lists the difference between SMART on FHIR proxy and SMART on FHIR (Enhanced).
14+
15+
|Capability|SMART on FHIR (Enhanced)|SMART on FHIR proxy|
16+
|---|---|---|
17+
|Supports Standalone Launch|Yes|No|
18+
|Supports EHR Launch|Yes|Yes|
19+
|Supports scope restrictions|Yes|No|
20+
|Relies on first party Azure products|Yes, Azure products such as Azure API Management (APIM) need to be integrated|No|
21+
|Microsoft Support|Supported for FHIR service.Open-source sample support needs to be reported and monitored via [GitHub](https://github.com/Azure-Samples/azure-health-data-and-ai-samples/issues)|Supported for FHIR service|
22+
23+
### Migration Steps from SMART on FHIR Proxy to SMART on FHIR (Enhanced)
24+
* Step 1: Set up FHIR SMART user role
25+
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.
26+
* 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)
27+
* Step 3: Update endpoint of the FHIR service url to '{{BASEURL_FROM_APIM}}/smart.'
28+
* Step 4: Uncheck the SMART on FHIR proxy setting under Authentication blade for the FHIR service.
29+
30+
If you have questions, you can get answers from community experts in [Microsoft Q&A](https://aka.ms/SMARTonFHIRproxydeprecation). For technical support, you can also create a [support request](https://portal.azure.com/#blade/Microsoft_Azure_Support/HelpAndSupportBlade/newsupportrequest).

0 commit comments

Comments
 (0)