> For the complete documentation index, see [llms.txt](https://docs.geoprismregistry.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.geoprismregistry.com/version/v2.0.0/deployment-and-setup/fhir-custom-implementation.md).

# FHIR custom implementation

{% hint style="warning" %}
This documentation covers advanced system configuration, for Java developers.
{% endhint %}

When Geoprism Registry exchanges data with a Fast Healthcare Interoperability Resources (FHIR) server through a [FHIR synchronization](/version/v2.0.0/external-system-integration/synchronize-an-external-system/fhir-synchronization.md), the data is transformed by an **implementation**:

* An **export implementation** (`FhirDataPopulator`) turns list data into FHIR resources.
* An **import implementation** (`FhirResourceProcessor`) turns FHIR resources into Geo-Objects.

Geoprism Registry includes these implementations, which you can choose in a synchronization configuration without writing any code:

| Implementation              | Type   | Class                                                       |
| --------------------------- | ------ | ----------------------------------------------------------- |
| Basic Export Implementation | Export | `net.geoprism.registry.etl.fhir.BasicFhirDataPopulator`     |
| mCSD Export Implementation  | Export | `net.geoprism.registry.etl.fhir.MCSDFhirDataPopulator`      |
| Basic Resource processor    | Import | `net.geoprism.registry.etl.fhir.BasicFhirResourceProcessor` |

If these don't fit your data, a developer can write a custom implementation. Implementations are found with the Java `ServiceLoader`, so you add one by building a JAR that registers its classes. The steps are:

1. [Maven project setup](/version/v2.0.0/deployment-and-setup/fhir-custom-implementation/maven-project-setup.md)
2. [Create a custom implementation for exporting data to FHIR](/version/v2.0.0/deployment-and-setup/fhir-custom-implementation/fhir-custom-implementation-1.md), [Create a custom implementation for importing data from FHIR to Geoprism Registry](/version/v2.0.0/deployment-and-setup/fhir-custom-implementation/fhir-custom-implementation-2.md), or both
3. [Register the implementations with the Java Services architecture](/version/v2.0.0/deployment-and-setup/fhir-custom-implementation/fhir-custom-implementation-3.md)
4. [Deploy implementation to server](/version/v2.0.0/deployment-and-setup/fhir-custom-implementation/fhir-custom-implementation-4.md)
