Skip to main content
Previous sectionNext section

Resource Repository

The Resource Repository is the default InteractionsStrategy for InterSystems IRIS for Health, allowing you to install a fully functioning FHIR® server without further development tasks. It automatically stores FHIR data received by the server as dynamic objects that encapsulate the JSON data structures of the FHIR data. Of course, you can extend the Resource Repository’s classes, HS.FHIRServer.Storage.Json.Interactions and HS.FHIRServer.Storage.Json.InteractionsStrategy, to refine how the FHIR server handles the FHIR data. The Resource Repository also comes with default FHIR operations in the HS.FHIRServer.Storage package.


The Resource Repository is not supported in Health Connect. Though you can create custom Interactions and InteractionsStrategy classes for a FHIR server in Health Connect, in most cases you are accepting FHIR into an interoperability production for other purposes. For more information, see Interoperability Productions .

What is Supported?

When using the Resource Repository strategy provided with InterSystems IRIS for Health, the FHIR server supports the following interactions and operations. If your custom FHIR server extends the Resource Repository, it also supports these interactions and operations.


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 the Resource Repository, or a custom FHIR server that has extended the Resource Repository. If an interaction is not listed, it is not supported.

Interaction Limitations/Notes
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.
batch Fully supported
transaction Circular references within the bundle are not supported.
search Supported with some limitations. For details, see Search Interaction.


For InterSystems IRIS for Health using or extending the default Resource Repository, the following operations are supported:

Operation Limitations/Notes
$everything Fully supported
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

Migrating from Legacy Resource Repository

For FHIR servers developed using InterSystems IRIS for Health 2019.4 or earlier, the data in the legacy Resource Repository must be migrated before using the new FHIR server architecture. To migrate your FHIR data:

  1. In the Management Portal, switch to the namespace of your legacy FHIR server, and then create a STU3 endpoint.

  2. Open the InterSystems Terminal and navigate to the namespace of your legacy FHIR server.

  3. Run:

    do ##class(HS.FHIRServer.ConsoleSetup).Migrate()
    Copy code to clipboard
  4. Select the STU3 endpoint and confirm the migration.