Skip to main content

Capability Statement

The CapabilityStatement describes what the Ignixa FHIR server can do. Access it at:

GET /metadata

Server Information

{
"resourceType": "CapabilityStatement",
"status": "active",
"kind": "instance",
"fhirVersion": "4.0.1",
"format": ["json"],
"software": {
"name": "Ignixa FHIR Server",
"version": "1.0.0"
}
}

Supported Interactions

Instance Level

InteractionSupportNotes
readRetrieve by ID
vreadRetrieve specific version
updateFull resource replacement
patchFHIRPath Patch, JSON Patch
deleteSoft delete
history-instanceVersion history

Type Level

InteractionSupportNotes
createServer-assigned ID
search-typeSearch with parameters
history-typeType history

System Level

InteractionSupportNotes
transactionACID bundles
batchIndependent operations
history-systemFull history
search-systemCross-resource search

REST Capabilities

{
"rest": [{
"mode": "server",
"security": {
"cors": true,
"service": [{
"coding": [{
"system": "http://terminology.hl7.org/CodeSystem/restful-security-service",
"code": "SMART-on-FHIR"
}]
}]
},
"resource": [
// Per-resource capabilities
]
}]
}

Operations

OperationLevelDescription
$validateType, InstanceValidate resource against specs/profiles
$everythingInstanceRetrieve all patient data
$member-matchTypeMatch patients across payer systems
$exportSystem, GroupAsync bulk data export
$importSystemAsync bulk data import
$summaryInstanceGenerate International Patient Summary
$expandType, InstanceExpand ValueSet to codes
$translateTypeTranslate codes via ConceptMap
$subsumesTypeTest code subsumption
$transformType, InstanceTransform data via StructureMap

See Operations for detailed usage and examples.

Versioning

Ignixa supports resource versioning:

  • versionId auto-increments on each update
  • lastUpdated timestamp on every modification
  • Full version history accessible via /_history

Version-Aware Updates

Use If-Match header for optimistic concurrency:

PUT /Patient/123
If-Match: W/"5"
Content-Type: application/fhir+json

{ ... }

Conditional Operations

Conditional Create

POST /Patient
If-None-Exist: identifier=12345

{ ... }

Conditional Update

PUT /Patient?identifier=12345

{ ... }

Conditional Delete

DELETE /Patient?identifier=12345

Formats

FormatMIME TypeSupport
JSONapplication/fhir+json✅ Primary
NDJSONapplication/fhir+ndjson✅ Bulk operations
JSON Only

Ignixa supports JSON format only. XML is not supported.

HTTP Headers

Request Headers

Prefer (RFC 7240)

Controls response behavior and validation level:

# Return full resource in response
Prefer: return=representation

# Return minimal response (headers only)
Prefer: return=minimal

# Return OperationOutcome
Prefer: return=OperationOutcome

# Control validation level (used with $validate operations)
Prefer: mode=minimal # Structure only (fastest)
Prefer: mode=spec # FHIR specification compliance (default)
Prefer: mode=full # Full profile validation with terminology

# Combine preferences
Prefer: return=representation, mode=spec
PreferenceValuesDescription
returnrepresentation, minimal, OperationOutcomeResponse body content
modeminimal, spec, fullValidation depth (for $validate operations)

X-Provenance

Submit provenance alongside create/update operations:

POST /Patient
Content-Type: application/fhir+json
X-Provenance: {"resourceType":"Provenance","recorded":"2024-01-15T10:30:00Z","agent":[{"who":{"reference":"Practitioner/123"}}]}

{ "resourceType": "Patient", ... }

The X-Provenance header:

  • MUST contain a valid Provenance resource
  • MUST NOT include target (server auto-fills with created resource)
  • Maximum size: 16KB

Conditional Headers

HeaderPurposeExample
If-MatchOptimistic concurrencyIf-Match: W/"5"
If-None-MatchConditional read (304)If-None-Match: W/"3"
If-Modified-SinceDate-based conditionalIf-Modified-Since: Wed, 17 Oct 2025 14:30:00 GMT
If-None-ExistConditional createIf-None-Exist: identifier=12345

Content Negotiation

HeaderSupported Values
Acceptapplication/fhir+json, application/json, */*
Content-Typeapplication/fhir+json, application/json

Response Headers

HeaderDescriptionExample
ETagWeak ETag for versioningW/"5"
Last-ModifiedResource modification timeWed, 17 Oct 2025 14:30:00 GMT
LocationCreated/updated resource URL/Patient/123/_history/1
Preference-AppliedPreferences honoredreturn=representation, validation=spec

Query Parameters

_pretty

Pretty-print JSON output for debugging:

GET /Patient/123?_pretty=true

# Presence implies true
GET /Patient/123?_pretty

_format

Specify response format (JSON only supported):

GET /Patient/123?_format=json
GET /Patient/123?_format=application/fhir+json