Smile CDR v2022.08.PRE
On this page:

5.2FHIR Endpoint Module


The FHIR Endpoint module is an HTTP Server (i.e. a web server) that allows external clients to interact with the FHIR Storage module.

5.2.1Creating the Module


When creating a FHIR Endpoint module, you must first choose which version of FHIR it will support. There are multiple types of FHIR Endpoint modules, and each one supports a specific version of FHIR. The version of FHIR must match the version of FHIR supported by the FHIR Storage module.

Server Configuration

There are only a few settings that absolutely must be set when creating this module:

  • Port – The port that the server will listen on (e.g. 8000).
  • Fixed Value for Endpoint Base URL – Tells the server what it should advertise as the FHIR base URL (e.g.
  • Dependency FHIR Persistence: This is a reference to the FHIR Storage module that backs this endpoint.

5.2.2Capturing Source Information


When processing incoming resources (i.e. for create, update, etc.) some basic details about the resource provenance are captured in Resource.meta.source. Smile CDR stores both the Source System URI (typically the identity of the system that was used to create the data) as well as the Transaction ID (typically a unique identifier for the specific HTTP request involved).

When Smile CDR is storing FHIR data (using a FHIR Storage module) these two fields are automatically combined using a hash symbol. For example, given a Source System URI of and a Transaction ID of 000001 the system might capture the following value:

  "resourceType": "Patient",
  "meta": {
    "source": ""

It is possible to supply both of these properties using HTTP Request Headers in environments where it is easier to capture/inject this data using network infrastructure. The following two headers may be used:


See Storing Source Information for information on how this information is stored and how it can be used for searching.



You can configure a FHIR endpoint to validate resources as they enter or leave the system (i.e. request and response payloads). See Endpoint Validation for information.




A complete reference of configuration items follows: