第 101 章 FHIR 组件
从 Camel 版本 2.23 开始提供
FHIR 组件与 HAPI-FHIR 库集成,它是 Java 中 FHIR (Fast Healthcare Interoperability Resources)规范的开源实现。
Maven 用户需要将以下依赖项添加到此组件的 pom.xml 中:
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-fhir</artifactId>
<version>${camel-version}</version>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-fhir</artifactId>
<version>${camel-version}</version>
</dependency>
101.1. URI 格式 复制链接链接已复制到粘贴板!
FHIR 组件使用以下 URI 格式:
fhir://endpoint-prefix/endpoint?[options]
fhir://endpoint-prefix/endpoint?[options]
端点前缀可以是以下之一:
- 功能
- create
- delete
- history
- load-page
- meta
- operation
- patch
- 读取
- search
- Transactions
- update
- validate
FHIR 组件支持 2 个选项,如下所列。
| 名称 | 描述 | 默认值 | 类型 |
|---|---|---|---|
| configuration (common) | 使用共享配置 | FhirConfiguration | |
| resolveProperty Placeholders (advanced) | 启动时组件是否应解析自身上的属性占位符。只有属于 String 类型的属性才能使用属性占位符。 | true | 布尔值 |
FHIR 端点使用 URI 语法进行配置:
fhir:apiName/methodName
fhir:apiName/methodName
使用以下路径和查询参数:
101.1.1. 路径参数(2 参数): 复制链接链接已复制到粘贴板!
| 名称 | 描述 | 默认值 | 类型 |
|---|---|---|---|
| apiName | 需要 执行什么操作 | FhirApiName | |
| methodName | 需要对 所选操作使用哪些子操作 | 字符串 |
101.1.2. 查询参数(26 参数): 复制链接链接已复制到粘贴板!
| 名称 | 描述 | 默认值 | 类型 |
|---|---|---|---|
| 编码 (common) | 用于所有请求的编码 | 字符串 | |
| fhirVersion (common) | 要使用的 FHIR 版本 | DSTU3 | 字符串 |
| inBody (common) | 设置要在交换中传递的参数名称 | 字符串 | |
| log (common) | 将记录每个请求和响应 | false | 布尔值 |
| prettyPrint (common) | pretty 打印所有请求 | false | 布尔值 |
| serverUrl (common) | FHIR 服务器基本 URL | 字符串 | |
| bridgeErrorHandler (consumer) | 允许将消费者桥接到 Camel 路由错误处理程序,这意味着当消费者试图选择传入消息或类似信息时发生异常,现在将作为消息处理并由路由 Error Handler 处理。默认情况下,使用者将使用 org.apache.camel.spi.ExceptionHandler 来处理例外情况,该处理程序将被记录在 WARN 或 ERROR 级别,并忽略。 | false | 布尔值 |
| exceptionHandler (consumer) | 要让使用者使用自定义例外处理程序:请注意,如果启用了 bridgeErrorHandler 选项,则此选项不使用。默认情况下,消费者将处理异常,其记录在 WARN 或 ERROR 级别中,并忽略。 | ExceptionHandler | |
| exchangePattern (consumer) | 在消费者创建交换时设置交换模式。 | ExchangePattern | |
| compress (advanced) | 将传出(POST/PUT)内容压缩到 GZIP 格式 | false | 布尔值 |
| connectionTimeout (advanced) | 尝试和建立初始 TCP 连接(毫秒) | 10000 | 整数 |
| deferModelScanning (advanced) | 当设定此选项时,不会为子对象扫描模型类,直到实际访问给定类型的子列表为止。 | false | 布尔值 |
| fhirContext (advanced) | FhirContext 是要创建的昂贵的对象。为避免创建多个实例,可以直接设置它。 | FhirContext | |
| forceConformanceCheck (advanced) | 强制检查 | false | 布尔值 |
| sessionCookie (advanced) | 要添加到每个请求的 HTTP 会话 Cookie | 字符串 | |
| socketTimeout (advanced) | 阻止单个读/写操作的时长(单位为 ms) | 10000 | 整数 |
| Summary (advanced) | 请求服务器使用 _summary 参数修改响应 | 字符串 | |
| 同步 (advanced) | 设置是否应严格使用同步处理,或者 Camel 允许使用异步处理(如果受支持)。 | false | 布尔值 |
| validationMode (advanced) | 当 Camel 验证 FHIR 服务器的合规声明时 | ONCE | 字符串 |
| proxyHost (proxy) | 代理主机 | 字符串 | |
| proxyPassword (proxy) | 代理密码 | 字符串 | |
| proxyPort (proxy) | 代理端口 | 整数 | |
| proxyUser (proxy) | 代理用户名 | 字符串 | |
| accessToken (security) | OAuth 访问令牌 | 字符串 | |
| password (security) | 用于基本身份验证的用户名 | 字符串 | |
| 用户名 (安全性) | 用于基本身份验证的用户名 | 字符串 |