FHIR
Поддерживаются как производитель, так и потребитель
Компонент FHIR интегрируется с библиотекой HAPI-FHIR , которая представляет собой реализацию спецификации FHIR (Fast Healthcare Interoperability Resources) с открытым исходным кодом на языке Java.
Пользователям Maven необходимо добавить следующую зависимость в свой pom.xml для этого компонента:
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-fhir</artifactId>
<version>${camel-version}</version>
</dependency>Формат URI
Компонент FHIR использует следующий формат URI:
fhir://endpoint-prefix/endpoint?[options]
Префикс endpoint может быть одним из:
-
capabilities
-
create
-
delete
-
history
-
load-page
-
meta
-
operation
-
patch
-
read
-
search
-
transaction
-
update
-
validate
Configuring Options
Компоненты настраиваются на двух отдельных уровнях:
-
component level
-
edpoint level
Configuring Component Options
На уровне компонента задаются основные и общие настройки, которые впоследствии наследуются endpoints. Это самый высокий уровень конфигурации.
Например, компонент может иметь настройки безопасности, учетные данные для аутентификации, URL-адреса для сетевых подключений и т. д.
Некоторые компоненты имеют всего несколько параметров, в то время как у других их может быть много. Поскольку компоненты обычно имеют предварительно настроенные значения по умолчанию, которые используются в большинстве случаев, вам может понадобиться настроить только несколько параметров компонента или вообще ничего не настраивать.
Компоненты можно настроить с использованием:
-
Component DSL.
-
Конфигурационного файла (application.properties, *.yaml files, etc).
-
Напрямую в Java code.
Configuring Endpoint Options
Обычно больше времени уходит на настройку endpoints, так как они обладают множеством параметров. Эти параметры позволяют настроить поведение endpoint в соответствии с вашими потребностями. Кроме того, параметры делятся на категории в зависимости от того, используется ли endpoint как потребитель (from), как производитель (to) или в обеих ролях.
Настройка endpoints чаще всего выполняется непосредственно в URI endpoint в виде параметров пути и запроса. Также вы можете использовать Endpoint DSL и DataFormat DSL как типобезопасный способ настройки endpoints и форматов данных в Java.
Хорошей практикой при настройке параметров является использование Property Placeholders.
Property placeholders предоставляют несколько преимуществ:
-
Помогают избежать использования жестко закодированных URL-адресов, номеров портов, конфиденциальной информации и других настроек.
-
Позволяют вынести конфигурацию за пределы кода.
-
Делают код более гибким и удобным для повторного использования.
Component properties
Api Name
-
Необходимо указать, какую операцию выполнить.
Возможные значения:
-
CAPABILITIES
-
CREATE
-
DELETE
-
HISTORY
-
LOAD_PAGE
-
META
-
OPERATION
-
PATCH
-
READ
-
SEARCH
-
TRANSACTION
-
UPDATE
-
VALIDATE
-
-
По умолчанию:
-
Тип: FhirApiName
Encoding
-
Кодировка, которую следует использовать для всех запросов.
Возможные значения:
-
JSON
-
XML
-
-
По умолчанию:
-
Тип: String
Fhir Version
-
Тип: Версия FHIR, которую следует использовать.
Возможные значения:
-
DSTU2
-
DSTU2_HL7ORG
-
DSTU2_1
-
DSTU3
-
R4
-
R4B
-
R5
-
-
По умолчанию: R4
-
Тип: String
In Body
-
Устанавливает имя параметра, который будет передан в теле.
-
По умолчанию:
-
Тип: String
Log
-
Будет логировать каждый запрос и ответ.
-
По умолчанию: false
-
Тип: boolean
Method Name
-
Необходимо указать, какую подоперацию использовать для выбранной операции.
-
По умолчанию:
-
Тип: String
Pretty Print
-
Форматирует все запросы для удобства чтения.
-
По умолчанию: false
-
Тип: boolean
Proxy Host
-
Хост прокси-сервера.
-
По умолчанию:
-
Тип: String
Proxy Password
-
Пароль прокси-сервера
-
По умолчанию:
-
Тип: String
Proxy Port
-
Тип: Порт прокси-сервера.
-
По умолчанию:
-
Тип: Integer
Proxy User
-
Название прокси-сервера.
-
По умолчанию:
-
Тип: String
Send Empty Message When Idle
-
Тип: Если потребитель с опросом не опросил файлы, вы можете включить эту опцию, чтобы вместо этого отправить пустое сообщение (без тела).
-
По умолчанию: false
-
Тип: boolean
Server Url
-
Основной URL сервера FHIR.
-
По умолчанию:
-
Тип: String
Component scheduler properties
Backoff Error Threshold
-
Количество последующих неудачных опросов (ошибок из-за какой-либо проблемы), после которых должен вступить в силу backoffMultiplier.
-
По умолчанию:
-
Тип: int
Backoff Idle Threshold
-
Тип: Количество последующих бездействующих опросов, после которых должен вступить в силу backoffMultiplier.
-
По умолчанию:
-
Тип: int
Backoff Multiplier
-
Позволяет scheduled polling consumer приостановить опрос, если произошло определённое количество последовательных простоев или ошибок. Множитель указывает количество опросов, которые будут пропущены перед следующей попыткой. При использовании этой опции также должны быть настроены параметры backoffIdleThreshold и/или backoffErrorThreshold.
-
По умолчанию:
-
Тип: int
Delay
-
Тип: Миллисекунды до следующего опроса.
-
По умолчанию: 500
-
Тип: long
Greedy
-
Если включена опция "greedy", то ScheduledPollConsumer будет немедленно выполняться снова, если предыдущий опрос забрал 1 или более сообщений.
-
По умолчанию: false
-
Тип: boolean
Initial Delay
-
Миллисекунды до начала первого опроса.
-
По умолчанию: 1000
-
Тип: long
Repeat Count
-
Указывает максимальный предел числа срабатываний. Например, если установить значение в 1, scheduler сработает только один раз. Если установить значение в 5, он сработает только пять раз. Значение ноль или отрицательное означает, что срабатывания будут происходить бесконечно.
-
По умолчанию: 0
-
Тип: long
Run Logging Level
-
Потребитель записывает строку в журнал при запуске/завершении опроса. Эта опция позволяет настроить уровень логирования для этого.
Возможные значения:
-
TRACE
-
DEBUG
-
INFO
-
WARN
-
ERROR
-
OFF
-
-
По умолчанию: TRACE
-
Тип: LoggingLevel
Scheduled Executor Service
-
Позволяет настроить собственный/общий пул потоков для использования потребителем. По умолчанию у каждого потребителя есть собственный однонитевой пул потоков.
-
По умолчанию:
-
Тип: ScheduledExecutorService
Scheduler
-
Для использования cron scheduler из компонентов camel-spring или camel-quartz. Используйте значения spring или quartz для встроенного scheduler.
-
По умолчанию: none
-
Тип: Object
Scheduler Properties
-
Используется для настройки дополнительных свойств при использовании пользовательского scheduler или любого из scheduler на базе Quartz или Spring.
-
По умолчанию:
-
Тип: Map
Start Scheduler
-
Определяет должен ли планировщик запускаться автоматически.
-
По умолчанию: true
-
Тип: boolean
Time Unit
-
Time Unit для опций initialDelay и delay.
Возможные значения:
-
NANOSECONDS
-
MICROSECONDS
-
MILLISECONDS
-
SECONDS
-
MINUTES
-
HOURS
-
DAYS
-
-
По умолчанию: MILLISECONDS
-
Тип: TimeUnit
Use Fixed Delay
-
Управляет тем, используется ли фиксированная задержка или фиксированная частота.
-
По умолчанию: true
-
Тип: boolean
Component security properties
Access Token
-
OAuth токен доступа.
-
По умолчанию:
-
Тип: String
Password
-
Пароль для использования базовой аутентификации.
-
По умолчанию:
-
Тип: String
User Name
-
Тип: Имя пользователя для использования базовой аутентификации.
-
По умолчанию:
-
Тип: String
Component advanced properties
Bridge Error Handler
-
Предоставляет возможность связать потребителя с маршрутизатором Error Handler Camel. Это позволяет обрабатывать исключения (если возможно), возникающие при получении входящих сообщений потребителем Camel, в виде сообщений, передаваемых в маршрутизатор Error Handler.
Важно: Это возможно только в том случае, если сторонний компонент позволяет Camel получать уведомления о возникших исключениях. Некоторые компоненты обрабатывают исключения только внутренне, из-за чего использование bridgeErrorHandler становится невозможным. В некоторых случаях мы можем доработать компонент Camel, чтобы интегрировать его со сторонним компонентом и сделать такую возможность доступной в будущих выпусках. По умолчанию потребитель использует org.apache.camel.spi.ExceptionHandler для обработки исключений, которые логируются с уровнем WARN или ERROR и игнорируются.
-
По умолчанию: false
-
Тип: boolean
Client
-
Для использования пользовательского клиента.
-
По умолчанию:
-
Тип: IGenericClient
Client Factory
-
Для использования пользовательской client factory.
-
По умолчанию:
-
Тип: IRestfulClientFactory
Compress
-
Тип: Сжимает исходящее содержимое (POST/PUT) в формат GZIP.
-
По умолчанию: false
-
Тип: boolean
Connection Timeout
-
Определяет как долго пытаться установить первоначальное TCP-соединение (в миллисекундах).
-
По умолчанию: 10000
-
Тип: Integer
Defer Model Scanning
-
Когда эта опция включена, классы моделей не будут сканироваться на наличие дочерних элементов до тех пор, пока список дочерних элементов для данного типа не будет фактически запрошен.
-
По умолчанию: false
-
Тип: boolean
Exception Handler
-
Позволяет потребителю использовать собственный ExceptionHandler.
Обратите внимание, что если включена опция bridgeErrorHandler, то эта настройка не используется. По умолчанию потребитель обрабатывает исключения, которые логируются с уровнем WARN или ERROR и игнорируются.
-
По умолчанию:
-
Тип: ExceptionHandler
Exchange Pattern
-
Определяет шаблон взаимодействия, который применяется, когда потребитель создает новый обмен (exchange).
Возможные значения:
-
InOnly
-
InOut
-
-
По умолчанию:
-
Тип: ExchangePattern
Fhir Context
-
Тип: FhirContext -- это ресурсозатратный объект для создания. Чтобы избежать создания нескольких экземпляров, его можно задать напрямую.
-
По умолчанию:
-
Тип: FhirContext
Force Conformance Check
-
Принудительная проверка соответствия.
-
По умолчанию: false
-
Тип: boolean
Poll Strategy
-
Плагинная стратегия org.apache.camel.PollingConsumerPollingStrategy, позволяющая предоставить собственную реализацию для управления обработкой ошибок, которые обычно возникают во время операции опроса до создания Exchange и его маршрутизации в Camel.
-
По умолчанию:
-
Тип: PollingConsumerPollStrategy
Session Cookie
-
HTTP session cookie, который будет добавляться к каждому запросу.
-
По умолчанию:
-
Тип: String
Socket Timeout
-
Тип: Определяет как долго блокировать для отдельных операций чтения/записи (в миллисекундах).
-
По умолчанию: 10000
-
Тип: Integer
Summary
-
Запрашивает у сервера модификацию ответа с использованием параметра _summary.
Возможные значения:
-
COUNT
-
TEXT
-
DATA
-
TRUE
-
FALSE
-
-
По умолчанию:
-
Тип: String
Validation Mode
-
Определяет когда Camel должен проверять заявление о соответствии сервера FHIR.
Возможные значения:
-
NEVER
-
ONCE
-
-
По умолчанию: ONCE
-
Тип: String