Getting Started with Device Data FHIR Service

Prepare your tenancy, create a DDFS instance, verify the FHIR capability statement, and test the supported FHIR interactions for your deployment.

Before You Begin

Before client applications can use the FHIR API, an administrator must set up the OCI resources, security controls, and service endpoint for the DDFS deployment.

  1. Choose the compartment, region, and environment for the DDFS instance. Keep development, test, and production resources separated when your governance model requires it.
  2. Create the IAM groups and scopes and policies that grant the required access to DDFS instances, work requests, metrics, logs, networking resources, and Vault secrets. See Policies.
  3. Create the DDFS instance and record the FHIR endpoint. See Creating an Instance.
  4. Configure client authentication and authorization for the applications that call the FHIR endpoints.
  5. If you use R6 Subscriptions with authenticated notification delivery, create the OCI Vault secret that stores the outbound authorization value. See FHIR R6 Subscription OCI Vault Secret Extension.
  6. Use the live capability statement endpoint for the FHIR version you plan to call, then confirm supported resources, interactions, operations, formats, and search parameters.

Verify Server Capabilities

DDFS publishes version-specific FHIR capability statement endpoints. Use the endpoint that matches the FHIR version used by your integration.

GET /api/fhir/r4/metadata
GET /api/fhir/r6-ballot4/metadata
Accept: application/fhir+json

The response is a FHIR CapabilityStatement resource for the deployed server. Use it to confirm the resources, interactions, operations, and formats available in the environment that you are testing. For published files and usage examples, see FHIR Capability Statements.

Search support is version-specific. Before using a search parameter, modifier, chained search, or control parameter, see Supported search and control parameters.

Common FHIR Interactions

The local DDFS capability statements advertise these common REST interactions for supported R4 and R6 resources: create, read, vread, search-type, update, and delete. Administrative delete operations are advertised separately as $hardDelete and $purgeDeleted. R6 Subscription also includes the $status operation.


FHIR client calls the DDFS FHIR API for search, create, read, update, delete, versioned read, and validation responses.
Interaction Endpoint pattern Use
Search GET /api/fhir/{r4|r6-ballot4}/{Resource} Find resources using supported search parameters.
Create POST /api/fhir/{r4|r6-ballot4}/{Resource} Create one resource instance.
Read GET /api/fhir/{r4|r6-ballot4}/{Resource}/{rid} Retrieve one resource instance by logical id.
Versioned read GET /api/fhir/{r4|r6-ballot4}/{Resource}/{rid}/_history/{vid} Retrieve a specific resource version.
Update PUT /api/fhir/{r4|r6-ballot4}/{Resource}/{rid} Replace one resource instance.
Delete DELETE /api/fhir/{r4|r6-ballot4}/{Resource}/{rid} Logically delete one resource instance.

Resource Lifecycle

Use create and update interactions to store resource versions. Use read, versioned read, and search interactions to retrieve resources. Delete performs a logical delete. Use administrative delete operations only when permanent removal is required and authorized for your workflow.


FHIR resource lifecycle from create to current resource, update, version history, logical delete, hard delete, and purge deleted operations.

For administrative delete details, see FHIR conformance statement and Data deletion and purge operations.

Validation Checklist

  • Confirm the DDFS instance endpoint resolves and uses the expected FHIR version path.
  • Fetch the live /metadata response and compare it to the published capability statement file for the same FHIR version.
  • Confirm the application token has the scopes and IAM access required for the intended resource interactions.
  • Run a read-only request first, such as metadata, read, or search, before testing create, update, delete, or administrative delete operations.
  • Validate request and response media types by using application/fhir+json.