Supported Interactions and Operations
The InterSystems IRIS FHIR Accelerator Service (FHIRaaS) supports the following FHIR interactions and operations through its REST API.
FHIR interactions 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 FHIRaaS. If an interaction is not listed, it is not supported.
|create||Fully supported, including conditional create.|
|read||The _elementsparameter is not supported.
Conditional read is not supported.
|vread||The _elementsparameter is not supported.
Conditional read is not supported.
|update||Fully supported, including conditional update.|
|patch||Only JSON Patch documents are supported.|
|delete||Supported, but conditional delete is not supported.|
|history||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.
|transaction||Circular references within the bundle are not supported.|
|search||Supported with some limitations. For details, see Search Interaction.|
FHIR clients use the search interaction to retrieve resources from FHIRaaS. For full details about the search interaction, refer to FHIR specification. This section summarizes the searches that clients can perform on FHIRaaS.
Keep in mind that FHIRaaS 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 type 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.
The following standard search parameters are supported when retrieving resources from FHIRaaS. If a parameter is not listed, it is not supported.
|_id||Fully supported as described in the FHIR specification|
|_lastUpdated||Fully supported as described in the FHIR specification|
|_tag||Fully supported as described in the FHIR specification|
|_profile||Fully supported as described in the FHIR specification|
|_security||Fully supported as described in the FHIR specification|
|_has||Fully supported as described in the FHIR specification|
Modifiers can be added to the end of a parameter to affect the results of the search. The following modifiers are supported.
|:exact||Supported for strings|
|:contains||Supported for strings|
|:above||Supported for uri|
|:below||Supported for uri|
|:type||Supported for references|
When using search parameters of type number, date, and quantity, you can add a prefix 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.
Search Result Parameters
Search result parameters 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 specification|
|_count||Fully supported as described in the FHIR specification|
|_summary||Supports _summary=count only. For details, see the FHIR specification.|
|_include||Fully supported as described in the FHIR specification|
|_revinclude||Fully supported as described in the FHIR specification|
FHIRaaS supports the following operations:
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.