> ## Documentation Index
> Fetch the complete documentation index at: https://docs.olira.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Absorbers

> Absorbers map external data formats like FHIR R4 into Olira event types automatically, so you send standard payloads instead of building Olira-shaped logs.

An **absorber** is a schema mapper that converts an external data format into Olira event types. On the [standard logging path](/send-data/how-logs-work) you choose a `log_type` and build an Olira-shaped payload yourself. With an absorber, you hand over data in its native format and it produces the right events for you.

Absorbers sit in front of the same ingestion pipeline as regular logs: whatever they emit is validated against the event catalog, written as logs, and compiled into [patient state](/read-data/patient-state) like any other submission.

One input may produce **zero events** (unsupported or unmappable content), **one event**, or **several**. A FHIR `CarePlan`, for example, can yield both `clinical_plan_item` and `treatment_phase`.

## FHIR absorber

The FHIR absorber accepts **FHIR R4 resources** and is the mapper behind every FHIR entry point on the platform:

* **EMR integrations**: Epic and Cerner [integrations](/send-data/integrations) stream resources through it automatically.
* **SDK and REST**: [`log_fhir()`](/reference/sdk/logs/log-fhir) (`POST /v1/fhir/resource`) submits a single resource from your codebase.
* **Console upload**: FHIR files uploaded through the Console.
* **Historical ingestion**: FHIR-formatted [backfill jobs](/send-data/historical-backfill).

It covers 17 resource families, including `Observation`, `Condition`, `MedicationRequest`, `DiagnosticReport`, `DocumentReference`, and `CarePlan`. `Observation` resources are routed by category and LOINC code to the appropriate event type (vitals, labs, genomics, functional class, and so on).

The full `resourceType` → event type matrix, per-resource examples, and error cases live in the [`log_fhir` reference](/reference/sdk/logs/log-fhir#supported-fhir-resources).

### Single resources vs bundles

Reference resolution depends on the entry point:

* **Bundles** (integrations, historical ingestion): linked resources are resolved together. Panel `DiagnosticReport` results reference their `Observation` entries, vital-signs Observations at the same timestamp merge into one `vitals_measurement`, and medication resources see their sibling `Medication` entries.
* **Single resources** (`log_fhir`): each call is processed alone; cross-resource references are not resolved. Use historical ingestion or an EMR integration for multi-resource imports.

## More absorbers

The FHIR absorber is the first of several planned mappers for common healthcare formats. If you have a format you'd like Olira to absorb natively, [contact us](mailto:support@olira.ai).
