Skip to main content
This guide gets you running TLQ FHIR Server (TLQ FHIR) locally.

Docker

The simplest way to get started is to use Docker. Make sure you have Docker and Docker Compose installed. You can download the latest release bundle and run it with the following command:
curl -fsSL https://get.yourfhir.dev | sh
This will create a directory called tlq-fhir-server in your current working directory. When it finishes, four containers will be running:
  • tlq-fhir-server-db: The PostgreSQL database exposed on port 5432
  • tlq-fhir-server-fhir-server: The FHIR API exposed on port 8080
  • tlq-fhir-server-fhir-worker: The FHIR worker
  • tlq-fhir-server-ui: The Admin UI exposed on port 3000
You can access the Admin UI at http://localhost:3000. You can access the FHIR API at http://localhost:8080/fhir.

Working with FHIR Resources

TLQ FHIR supports all standard FHIR REST operations. Let’s start by creating a patient.

Create a Resource

Create a new Patient resource with a known ID using PUT:
curl -X PUT http://localhost:8080/fhir/Patient/example-patient \
  -H "Content-Type: application/fhir+json" \
  -d '{
    "resourceType": "Patient",
    "id": "example-patient",
    "name": [{"family": "Smith", "given": ["John"]}],
    "gender": "male",
    "birthDate": "1974-12-25"
  }'
The server will create the resource and return it with version and metadata:
{
  "resourceType": "Patient",
  "id": "example-patient",
  "name": [{ "family": "Smith", "given": ["John"] }],
  "gender": "male",
  "birthDate": "1974-12-25",
  "meta": {
    "versionId": "1",
    "lastUpdated": "2026-01-11T18:15:25.865119+00:00"
  }
}

Read a Resource

Retrieve the patient you just created:
curl http://localhost:8080/fhir/Patient/example-patient

Search for Resources

Search for all patients in the system:
curl http://localhost:8080/fhir/Patient
This returns a FHIR Bundle containing matching resources. You can also use search parameters:
# Search by family name
curl http://localhost:8080/fhir/Patient?family=Smith

# Search by birthdate
curl http://localhost:8080/fhir/Patient?birthdate=1974-12-25

Update a Resource

Update the patient by adding contact information:
curl -X PUT http://localhost:8080/fhir/Patient/example-patient \
  -H "Content-Type: application/fhir+json" \
  -d '{
    "resourceType": "Patient",
    "id": "example-patient",
    "name": [{"family": "Smith", "given": ["John", "William"]}],
    "gender": "male",
    "birthDate": "1974-12-25",
    "telecom": [{
      "system": "email",
      "value": "[email protected]"
    }]
  }'
The server will return the updated resource with an incremented version number (versionId: "2").

Delete a Resource

Delete the patient resource:
curl -X DELETE http://localhost:8080/fhir/Patient/example-patient
The server returns a 204 No Content response on successful deletion.

Configuration

You can configure the FHIR Server by editing the config.yaml file in the tlq-fhir-server directory. See the Configuration page for more details.

Next steps

Continue with Configuration to customize the server for your environment.