You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: articles/healthcare-apis/fhir/overview.md
+6-6Lines changed: 6 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -34,11 +34,11 @@ The healthcare industry is rapidly adopting [FHIR®](https://hl7.org/fhir) as th
34
34
35
35
### Securely manage health data in the cloud
36
36
37
-
The FHIR service in Azure Health Data Services makes FHIR data available to clients through a RESTful API. This API is an implementation of the HL7 FHIR API specification. As a managed PaaS offering in Azure, the FHIR service gives organizations a scalable and secure environment for the storage and exchange of Protected Health Information (PHI) in the native FHIR format.
37
+
The FHIR service in Azure Health Data Services makes FHIR data available to clients through a RESTful API. This API is an implementation of the HL7 FHIR API specification. As a managed PaaS offering in Azure, the FHIR service gives organizations a scalable and secure environment for the storage and exchange of PHI in the native FHIR format.
38
38
39
39
### Free up resources to innovate
40
40
41
-
Although you can build and maintain your own FHIR server, with the FHIR service in Azure Health Data Services Microsoft handles setting up server components, ensuring all compliance requirements are met so you can focus on building innovative solutions.
41
+
You can build and maintain your own FHIR server. However, with the FHIR service in Azure Health Data Services, Microsoft handles setting up server components, and ensuring all compliance requirements are met, so you can focus on building innovative solutions.
42
42
43
43
### Enable interoperability
44
44
@@ -54,19 +54,19 @@ Because it belongs to the Azure family of services, the FHIR service protects yo
54
54
55
55
## Use cases for the FHIR service
56
56
57
-
FHIR servers are essential for interoperability of health data. The FHIR service is designed as a managed FHIR server with a RESTful API for connecting to a broad range of client systems and applications. Some of the key use cases for the FHIR service are:
57
+
FHIR servers are essential for interoperability of health data. The FHIR service is designed as a managed FHIR server with a RESTful API for connecting to a broad range of client systems and applications. Some of the key use cases for the FHIR service are as follows.
58
58
59
59
-**Startup app development:** Customers developing a patient- or provider-centric app (mobile or web) can use the FHIR service as a fully managed backend for health data transactions. The FHIR service enables secure transfer of PHI. With SMART on FHIR, app developers can take advantage of the robust identities management in Microsoft Entra ID for authorization of FHIR RESTful API actions.
60
60
61
-
-**Healthcare ecosystems:** Although EHRs are the primary source of truth in many clinical settings, it's common for providers to have multiple databases that aren’t connected to each other (often because the data is stored in different formats). By using the FHIR service as a conversion layer between these systems, organizations can standardize data in the FHIR format. Ingesting and persisting in FHIR format enables health data querying and exchange across multiple disparate systems.
61
+
-**Healthcare ecosystems:** Although EHRs are the primary source of truth in many clinical settings, it's common for providers to have multiple databases that aren’t connected to each other (often because the data is stored in different formats). Using the FHIR service as a conversion layer between these systems, organizations can standardize data in the FHIR format. Ingesting and persisting in FHIR format enables health data querying and exchange across multiple disparate systems.
62
62
63
-
-**Research:** Health researchers use the FHIR standard because it gives the community a shared data model and removes barriers to assembling large datasets for machine learning and analytics. With the data conversion and PHI deidentification capabilities in the FHIR service, researchers can prepare HIPAA-compliant data for secondary use before sending the data to Azure Machine Learning and analytics pipelines. The FHIR service's audit logging and alert mechanisms also play an important role in research workflows.
63
+
-**Research:** Health researchers use the FHIR standard because it gives the community a shared data model and removes barriers to assembling large datasets for machine learning and analytics. With the data conversion and PHI de-identification capabilities in the FHIR service, researchers can prepare HIPAA-compliant data for secondary use before sending the data to Azure Machine Learning and analytics pipelines. The FHIR service's audit logging and alert mechanisms also play an important role in research workflows.
64
64
65
65
## FHIR platforms from Microsoft
66
66
67
67
FHIR capabilities from Microsoft are available in three configurations:
68
68
69
-
- The **FHIR service** is a managed platform as a service (PaaS) that operates as part of Azure Health Data Services. In addition to the FHIR service, Azure Health Data Services includes managed services for other types of health data, such as the DICOM service for medical imaging data and the MedTech service for medical IoT data. All services (FHIR service, DICOM service, and MedTech service) can be connected and administered within an Azure Health Data Services workspace.
69
+
- The **FHIR service** is a managed PaaS that operates as part of Azure Health Data Services. In addition to the FHIR service, Azure Health Data Services includes managed services for other types of health data, such as the DICOM service for medical imaging data, and the MedTech service for medical IoT data. All services (FHIR service, DICOM service, and MedTech service) can be connected and administered within an Azure Health Data Services workspace.
70
70
71
71
-**Azure API for FHIR** is a managed FHIR server offered as a PaaS in Azure and is easily deployed in the Azure portal. Azure API for FHIR isn't part of Azure Health Data Services and lacks some of the features of the FHIR service.
Copy file name to clipboardExpand all lines: articles/healthcare-apis/fhir/patient-everything.md
+20-19Lines changed: 20 additions & 19 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -12,7 +12,7 @@ ms.author: kesheth
12
12
13
13
# Using Patient-everything in FHIR service
14
14
15
-
The [Patient-everything](https://www.hl7.org/fhir/patient-operation-everything.html) operation is used to provide a view of all resources related to a patient. This operation can be useful to give patients' access to their entire record or for a provider or other user to perform a bulk data download related to a patient. According to the Fast Healthcare Interoperability Resources (FHIR®) specification, Patient-everything returns all the information related to one or more patients described in the resource or context on which this operation is invoked. In the FHIR service in Azure Health Data Services(hereby called FHIR service), Patient-everything is available to pull data related to a specific patient.
15
+
The [Patient-everything](https://www.hl7.org/fhir/patient-operation-everything.html) operation is used to provide a view of all resources related to a patient. This operation can be useful to give patients' access to their entire record, or for a provider or other user to perform a bulk data download related to a patient. According to the Fast Healthcare Interoperability Resources (FHIR®) specification, Patient-everything returns all the information related to one or more patients described in the resource or context on which this operation is invoked. In the FHIR® service in Azure Health Data Services, Patient-everything is available to pull data related to a specific patient.
16
16
17
17
## Use Patient-everything
18
18
To call Patient-everything, use the following command:
@@ -24,27 +24,27 @@ GET {FHIRURL}/Patient/{ID}/$everything
24
24
> [!Note]
25
25
> You must specify an ID for a specific patient. If you need all data for all patients, see [$export](../data-transformation/export-data.md).
26
26
27
-
FHIR service validates that it can find the patient matching the provided patient ID. If a result is found, the response will be a bundle of type `searchset` with the following information:
27
+
FHIR service validates that it can find the patient matching the provided patient ID. If a result is found, the response is a bundle of type `searchset` with the following information:
* Resources that are directly referenced by the patient resource, except [link](https://www.hl7.org/fhir/patient-definitions.html#Patient.link) references that aren't of [see also](https://www.hl7.org/fhir/codesystem-link-type.html#content) or if the `seealso` link references a `RelatedPerson`.
31
-
* If there are `seealso` link reference(s) to other patient(s), the results will include Patient-everything operation against the `seealso`patient(s) listed.
31
+
* If there are `seealso` link references to other patients, the results include Patient-everything operation against the `seealso`patients listed.
32
32
* Resources in the [Patient Compartment](https://www.hl7.org/fhir/compartmentdefinition-patient.html).
33
33
*[Device resources](https://www.hl7.org/fhir/device.html) that reference the patient resource.
34
34
35
35
> [!Note]
36
-
> If the patient has more than 100 devices linked to them, only 100 will be returned.
36
+
> Up to the first 100 devices linked to a patient will be returned.
37
37
38
38
39
39
## Patient-everything parameters
40
-
FHIR service supports the following query parameters. All of these parameters are optional:
40
+
FHIR service supports the following query parameters. All of these parameters are optional.
41
41
42
42
|Query parameter | Description|
43
43
|-----------------------|------------|
44
44
|\_type | Allows you to specify which types of resources will be included in the response. For example, \_type=Encounter would return only `Encounter` resources associated with the patient. |
45
45
|\_since | Will return only resources that have been modified since the time provided. |
46
46
| start | Specifying the start date will pull in resources where their clinical date is after the specified start date. If no start date is provided, all records before the end date are in scope. |
47
-
| end | Specifying the end date will pull in resources where their clinical date is before the specified end date. If no end date is provided, all records after the start date are in scope. |
47
+
| end | Specifying the end date pulls in resources where their clinical date is before the specified end date. If no end date is provided, all records after the start date are in scope. |
48
48
49
49
> [!Note]
50
50
> This implementation of Patient-everything does not support the _count parameter.
@@ -53,7 +53,7 @@ FHIR service supports the following query parameters. All of these parameters ar
53
53
54
54
On a patient resource, there's an element called link, which links a patient to other patients or related persons. These linked patients help give a holistic view of the original patient. The link reference can be used when a patient is replacing another patient or when two patient resources have complementary information. One use case for links is when an ADT 38 or 39 HL7v2 message comes. It describes an update to a patient. This update can be stored as a reference between two patients in the link element.
55
55
56
-
The FHIR specification has a detailed overview of the different types of [patient links](https://www.hl7.org/fhir/valueset-link-type.html#expansion), but we've include a high-level summary:
56
+
The FHIR specification has a detailed overview of the different types of [patient links](https://www.hl7.org/fhir/valueset-link-type.html#expansion), but here we include a high-level summary:
57
57
58
58
*[replaces](https://www.hl7.org/fhir/codesystem-link-type.html#link-type-replaces) - The Patient resource replaces a different Patient.
59
59
*[refer](https://www.hl7.org/fhir/codesystem-link-type.html#link-type-refer) - Patient is valid, but it's not considered the main source of information. Points to another patient to retrieve additional information.
@@ -69,16 +69,16 @@ The Patient-everything operation in the FHIR service processes patient links in
69
69
70
70
Right now, [replaces](https://www.hl7.org/fhir/codesystem-link-type.html#link-type-replaces) and [refer](https://www.hl7.org/fhir/codesystem-link-type.html#link-type-refer) links are ignored by the Patient-everything operation, and the linked patient isn't returned in the bundle.
71
71
72
-
As described, [seealso](https://www.hl7.org/fhir/codesystem-link-type.html#link-type-seealso) links reference another patient that's considered equally valid to the original. After the Patient-everything operation is run, if the patient has `seealso` links to other patients, the operation runs Patient-everything on each `seealso` link. This means if a patient links to five other patients with a type `seealso` link, we'll run Patient-everything on each of those five patients.
72
+
As described, [seealso](https://www.hl7.org/fhir/codesystem-link-type.html#link-type-seealso) links reference another patient that's considered equally valid to the original. After the Patient-everything operation is run, if the patient has `seealso` links to other patients, the operation runs Patient-everything on each `seealso` link. This means if a patient links to five other patients with a type `seealso` link, we run Patient-everything on each of those five patients.
73
73
74
74
> [!Note]
75
75
> This is set up to only follow `seealso` links one layer deep. It doesn't process a `seealso` link's `seealso` links.
76
76
77
77
[](media/patient-everything/see-also-flow.png#lightbox)
78
78
79
-
The final link type is [replaced-by](https://www.hl7.org/fhir/codesystem-link-type.html#link-type-replaced-by). In this case, the original patient resource is no longer being used and the `replaced-by` link points to the patient that should be used. This implementation of `Patient-everything`will include by default an operation outcome at the start of the bundle with a warning that the patient is no longer valid. This will also be the behavior when the `Prefer` header is set to `handling=lenient`.
79
+
The final link type is [replaced-by](https://www.hl7.org/fhir/codesystem-link-type.html#link-type-replaced-by). In this case, the original patient resource is no longer being used and the `replaced-by` link points to the patient that should be used. This implementation of `Patient-everything` by default includes an operation outcome at the start of the bundle with a warning that the patient is no longer valid. This will also be the behavior when the `Prefer` header is set to `handling=lenient`.
80
80
81
-
In addition, you can set the `Prefer` header to `handling=strict` to throw an error instead. In this case, a return of error code 301 `MovedPermanently` indicates that the current patient is out of date and returns the ID for the correct patient that's included in the link. The `ContentLocation` header of the returned error will point to the correct and up-to-date request.
81
+
In addition, you can set the `Prefer` header to `handling=strict` to throw an error instead. In this case, a return of error code 301 `MovedPermanently` indicates that the current patient is out of date and returns the ID for the correct patient that's included in the link. The `ContentLocation` header of the returned error points to the correct and up-to-date request.
82
82
83
83
> [!Note]
84
84
> If a `replaced-by` link is present, `Prefer: handling=lenient` and results are returned asynchronously in multiple bundles, only an operation outcome is returned in one bundle.
@@ -87,36 +87,37 @@ In addition, you can set the `Prefer` header to `handling=strict` to throw an er
87
87
88
88
The Patient-everything operation returns results in phases:
89
89
90
-
1. Phase 1 returns the `Patient` resource itself in addition to any `generalPractitioner` and `managingOrganization` resources ir references.
90
+
1. Phase 1 returns the `Patient` resource itself in addition to any `generalPractitioner` and `managingOrganization` resources it references.
91
91
1. Phase 2 and 3 both return resources in the patient compartment. If the `start` or `end` query parameters are specified, Phase 2 returns resources from the compartment that can be filtered by their clinical date, and Phase 3 returns resources from the compartment that can't be filtered by their clinical date. If neither of these parameters are specified, Phase 2 is skipped and Phase 3 returns all patient-compartment resources.
92
-
1. Phase 4 will return any devices that reference the patient.
92
+
1. Phase 4 returns any devices that reference the patient.
93
93
94
-
Each phase will return results in a bundle. If the results span multiple pages, the next link in the bundle will point to the next page of results for that phase. After all results from a phase are returned, the next link in the bundle will point to the call to initiate the next phase.
94
+
Each phase returns results in a bundle. If the results span multiple pages, the next link in the bundle will point to the next page of results for that phase. After all results from a phase are returned, the next link in the bundle will point to the call to initiate the next phase.
95
95
96
96
If the original patient has any `seealso` links, phases 1 through 4 will be repeated for each of those patients.
97
97
98
98
## Examples of Patient-everything
99
99
100
-
Here are some examples of using the Patient-everything operation. In addition to these examples, we have a [sample REST file](https://github.com/microsoft/fhir-server/blob/main/docs/rest/PatientEverythingLinks.http) that illustrates how the `seealso` and `replaced-by` behavior works.
100
+
Following are some examples of using the Patient-everything operation. In addition to these examples, we have a [sample REST file](https://github.com/microsoft/fhir-server/blob/main/docs/rest/PatientEverythingLinks.http) that illustrates how the `seealso` and `replaced-by` behavior works.
101
101
102
-
To use Patient-everything to query a patient's "everything" between 2010 and 2020, use the following call:
102
+
To use Patient-everything to query a patient's "everything" between 2010 and 2020, use the following call.
103
103
104
104
```json
105
105
GET {FHIRURL}/Patient/{ID}/$everything?start=2010&end=2020
106
106
```
107
107
108
-
To use Patient-everything to query a patient's Observation and Encounter, use the following call:
108
+
To use Patient-everything to query a patient's Observation and Encounter, use the following call.
109
+
109
110
```json
110
111
GET {FHIRURL}/Patient/{ID}/$everything?_type=Observation,Encounter
111
112
```
112
113
113
-
To use Patient-everything to query a patient's "everything" since 2021-05-27T05:00:00Z, use the following call:
114
+
To use Patient-everything to query a patient's "everything" since 2021-05-27T05:00:00Z, use the following call.
114
115
115
116
```json
116
117
GET {FHIRURL}/Patient/{ID}/$everything?_since=2021-05-27T05:00:00Z
117
118
```
118
119
119
-
If a patient is found for each of these calls, you'll get back a 200 response with a `Bundle` of the corresponding resources.
120
+
If a patient is found for each of these calls, you'll get a 200 response with a `Bundle` of the corresponding resources.
120
121
121
122
## Next steps
122
123
@@ -125,4 +126,4 @@ Now that you know how to use the Patient-everything operation, you can learn abo
125
126
>[!div class="nextstepaction"]
126
127
>[Overview of FHIR search](overview-of-search.md)
127
128
128
-
FHIR® is a registered trademark of [HL7](https://hl7.org/fhir/) and is used with the permission of HL7.
0 commit comments