Chapter 101. FHIR Component Available as of Camel version 2.23 The FHIR component integrates with the HAPI-FHIR library which is an open-source implementation of the FHIR (Fast Healthcare Interoperability Resources) specification in Java. Maven users will need to add the following dependency to their pom.xml for this component: <dependency> <groupId>org.apache.camel</groupId> <artifactId>camel-fhir</artifactId> <version>USD{camel-version}</version> </dependency> 101.1. URI Format The FHIR Component uses the following URI format: fhir://endpoint-prefix/endpoint?[options] Endpoint prefix can be one of: capabilities create delete history load-page meta operation patch read search transaction update validate The FHIR component supports 2 options, which are listed below. Name Description Default Type configuration (common) To use the shared configuration FhirConfiguration resolveProperty Placeholders (advanced) Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. true boolean The FHIR endpoint is configured using URI syntax: with the following path and query parameters: 101.1.1. Path Parameters (2 parameters): Name Description Default Type apiName Required What kind of operation to perform FhirApiName methodName Required What sub operation to use for the selected operation String 101.1.2. Query Parameters (26 parameters): Name Description Default Type encoding (common) Encoding to use for all request String fhirVersion (common) The FHIR Version to use DSTU3 String inBody (common) Sets the name of a parameter to be passed in the exchange In Body String log (common) Will log every requests and responses false boolean prettyPrint (common) Pretty print all request false boolean serverUrl (common) The FHIR server base URL String bridgeErrorHandler (consumer) Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored. false boolean exceptionHandler (consumer) To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the consumer will deal with exceptions, that will be logged at WARN or ERROR level and ignored. ExceptionHandler exchangePattern (consumer) Sets the exchange pattern when the consumer creates an exchange. ExchangePattern compress (advanced) Compresses outgoing (POST/PUT) contents to the GZIP format false boolean connectionTimeout (advanced) How long to try and establish the initial TCP connection (in ms) 10000 Integer deferModelScanning (advanced) When this option is set, model classes will not be scanned for children until the child list for the given type is actually accessed. false boolean fhirContext (advanced) FhirContext is an expensive object to create. To avoid creating multiple instances, it can be set directly. FhirContext forceConformanceCheck (advanced) Force conformance check false boolean sessionCookie (advanced) HTTP session cookie to add to every request String socketTimeout (advanced) How long to block for individual read/write operations (in ms) 10000 Integer summary (advanced) Request that the server modify the response using the _summary param String synchronous (advanced) Sets whether synchronous processing should be strictly used, or Camel is allowed to use asynchronous processing (if supported). false boolean validationMode (advanced) When should Camel validate the FHIR Server's conformance statement ONCE String proxyHost (proxy) The proxy host String proxyPassword (proxy) The proxy password String proxyPort (proxy) The proxy port Integer proxyUser (proxy) The proxy username String accessToken (security) OAuth access token String password (security) Username to use for basic authentication String username (security) Username to use for basic authentication String 101.2. Spring Boot Auto-Configuration The component supports 23 options, which are listed below. Name Description Default Type camel.component.fhir.configuration.access-token OAuth access token String camel.component.fhir.configuration.api-name What kind of operation to perform FhirApiName camel.component.fhir.configuration.client To use the custom client IGenericClient camel.component.fhir.configuration.client-factory To use the custom client factory IRestfulClientFactory camel.component.fhir.configuration.compress Compresses outgoing (POST/PUT) contents to the GZIP format false Boolean camel.component.fhir.configuration.connection-timeout How long to try and establish the initial TCP connection (in ms) 10000 Integer camel.component.fhir.configuration.defer-model-scanning When this option is set, model classes will not be scanned for children until the child list for the given type is actually accessed. false Boolean camel.component.fhir.configuration.fhir-context FhirContext is an expensive object to create. To avoid creating multiple instances, it can be set directly. FhirContext camel.component.fhir.configuration.force-conformance-check Force conformance check false Boolean camel.component.fhir.configuration.log Will log every requests and responses false Boolean camel.component.fhir.configuration.method-name What sub operation to use for the selected operation String camel.component.fhir.configuration.password Username to use for basic authentication String camel.component.fhir.configuration.pretty-print Pretty print all request false Boolean camel.component.fhir.configuration.proxy-host The proxy host String camel.component.fhir.configuration.proxy-password The proxy password String camel.component.fhir.configuration.proxy-port The proxy port Integer camel.component.fhir.configuration.proxy-user The proxy username String camel.component.fhir.configuration.server-url The FHIR server base URL String camel.component.fhir.configuration.session-cookie HTTP session cookie to add to every request String camel.component.fhir.configuration.socket-timeout How long to block for individual read/write operations (in ms) 10000 Integer camel.component.fhir.configuration.username Username to use for basic authentication String camel.component.fhir.enabled Whether to enable auto configuration of the fhir component. This is enabled by default. Boolean camel.component.fhir.resolve-property-placeholders Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. true Boolean

Commands:
<dependency> <groupId>org.apache.camel</groupId> <artifactId>camel-fhir</artifactId> <version>USD{camel-version}</version> </dependency>
fhir://endpoint-prefix/endpoint?[options]
fhir:apiName/methodName