InterSystems FHIR Server Supported Interactions and Operations
FHIR Server supports the following FHIR® interactions and operations through its REST API.
Interactions
FHIR interactionsOpens in a new tab are the set of actions that a FHIR client can take on resources. These interactions can be grouped according to whether they act upon an instance, a type, or the whole system. An instance is a specific instance of a resource, for example, Patient/1 refers to an instance of a Patient resource with an id of 1. A type refers to a particular FHIR resource, for example, a Patient or Observation.
The following table summarizes the support for FHIR interactions in FHIR Server. If an interaction is not listed, it is not supported.
Interaction | Limitations/Notes |
---|---|
createOpens in a new tab | Fully supported, including conditional create. |
readOpens in a new tab | The _elementsparameter is not supported.
Conditional read is not supported. |
vreadOpens in a new tab | The _elementsparameter is not supported.
Conditional read is not supported. |
updateOpens in a new tab | Fully supported, including conditional update. |
patchOpens in a new tab | Only JSON Patch documents are supported. |
deleteOpens in a new tab | Supported, but conditional delete is not supported. |
historyOpens in a new tab | Supported for instance interactions only, not type or system. For example, GET [baseURL]/Patient/1/_history is supported, but not GET [baseURL]/Patient/_history or GET [baseURL]/_history.
The _count and _at parameters are not supported. Paging is not supported. |
transactionOpens in a new tab | Circular references within the bundle are not supported. |
search | Supported with some limitations. For details, see Search Interaction. |
Search Interaction
FHIR clients use the search interaction to retrieve resources from FHIR Server. For full details about the search interaction, refer to FHIR specificationOpens in a new tab. This section summarizes the searches that clients can perform on FHIR Server.
General Limitations
Keep in mind that FHIR Server has the following search limitations:
-
Does not support searching across multiple resource types. For example GET [base]?_id=1 is not supported.
-
You cannot perform a search on all resource types within a compartment. For example, you cannot search for [base]/Patient/10000001/?_id=008. Therefore, searches within the context of a compartment must specify a resource type in that compartment. For example, you can use [base]/Patient/100000001/Observation to return all Observations in the specific patient’s compartment or [base]/Patient/100000001/Observation?status=final to search for a subset of Observations within the compartment. If you want to retrieve a Patient’s entire compartment, use the $everything operation (for example, [base]/Patient/100000001/$everything).
Search Parameter Types
Each search parameter has a search parameter typeOpens in a new tab that determines how the parameter behaves. The following search parameter types are supported. If a search parameter type is not listed, it is not supported.
Parameter Type | Limitations/Notes |
---|---|
numberOpens in a new tab | Fully supported |
dateOpens in a new tab | Fully supported |
stringOpens in a new tab | Fully supported |
tokenOpens in a new tab | Does not support a token parameter with system value only ([parameter]=[system]|) |
referenceOpens in a new tab | Fully supported |
quantityOpens in a new tab | Fully supported |
uriOpens in a new tab | Fully supported |
Parameters
The following standard search parametersOpens in a new tab are supported when retrieving resources from FHIR Server. If a parameter is not listed, it is not supported.
Parameter | Limitations/Notes |
---|---|
_id | Fully supported as described in the FHIR specificationOpens in a new tab |
_lastUpdated | Fully supported as described in the FHIR specificationOpens in a new tab |
_tag | Fully supported as described in the FHIR specificationOpens in a new tab |
_profile | Fully supported as described in the FHIR specificationOpens in a new tab |
_security | Fully supported as described in the FHIR specificationOpens in a new tab |
_source | Fully supported. |
_has | Fully supported as described in the FHIR specificationOpens in a new tab |
Modifiers
ModifiersOpens in a new tab can be added to the end of a parameter to affect the results of the search. The following modifiers are supported.
Modifier | Limitations/Notes |
---|---|
:exact | Supported for strings |
:contains | Supported for strings |
:above | Supported for uri |
:below | Supported for uri |
:type | Supported for references |
Prefixes
When using search parameters of type number, date, and quantity, you can add a prefixOpens in a new tab to the parameter’s value to affect what resources match the search. For example, [parameter]=le100 returns values that are less than exactly 100. The following prefixes are supported.
Prefix | Limitations/Notes |
---|---|
eq | Fully supported |
ne | Fully supported |
gt | Fully supported |
lt | Fully supported |
ge | Fully supported |
le | Fully supported |
Search Result Parameters
Search result parametersOpens in a new tab help manage the resources returned by a search. The following search result parameters are supported. If a parameter is not listed, it is not supported.
Search result parameter | Limitations/Notes |
---|---|
_sort | Fully supported as described in the FHIR specificationOpens in a new tab |
_count | Fully supported as described in the FHIR specificationOpens in a new tab |
_summary | Supports _summary=count only. For details, see the FHIR specificationOpens in a new tab. |
_include | Fully supported as described in the FHIR specificationOpens in a new tab |
_revinclude | Fully supported as described in the FHIR specificationOpens in a new tab |
Operations
FHIR Server supports the following operations:
Operation | Limitations/Notes |
---|---|
$everything | Fully supported |
$validate |
The validation modes (create, update, delete) are supported. Validation by profile is not supported. When a FHIR $validate request includes a resource payload, the resource may be enclosed in a Parameters resource. |
$lastn | Fully supported |