作者

InterSystems中国
文章 Claire Zheng · 七月 28 2m read

2026.2 FHIR 亮点——跳过资源结构验证的选项

作为我们致力于提升 FHIR 有效载荷导入速度工作的一部分,在 v2026.2 版本(目前已作为开发者预览版发布)中,我们引入了一项可选功能,用于跳过资源的结构验证。 例如,此举可节省 25% 的时间,在大规模数据导入场景中,这一时间节省将十分可观。

 

其设计思路是,大型 ETL 项目、数据迁移流程(甚至可能是实时数据管道)可以自行保证结构验证的正确性 ——可能是作为流程本身的一部分(这种情况下重复进行验证并不合理),或者源数据已经是经过验证的FHIR数据,且结构正确性可以预先得到保证。

FHIR 端点新增了一项设置——“运行结构验证”(又称“资源验证”)——该设置有三种选项:

  1. 始终

    在创建/更新/修补操作期间始终执行资源结构验证

  2. 基于 HTTP 头(也称为“如果头”)

    如果请求携带 'X-ISCFHIR-SkipValidation' = true 标头,服务器将跳过创建/更新/修补操作的结构验证

  3. 从不(也称为“skip”)

    服务器在创建/更新/修补操作期间绝不会执行资源结构验证

默认值为“始终”。

 

如何配置

您可以通过 FHIR 管理界面进行设置:

如果您将其设置为“基于标头”或“从不”,则会看到如下警告:

您也可以通过控制台设置进行配置:

 

控制台设置代码片段

MYFHIR>do ##class(HS.FHIRServer.ConsoleSetup).Setup()
...
What do you want to do?
 0)  Quit
 1)  Create a FHIRServer Endpoint
...
 6)  Configure a FHIRServer Endpoint
 ...
Choose your Option[1] (0-12): 6
Which Endpoint do you want to configure?
 1) /csp/healthshare/myfhir/fhir/r4 [enabled] (...)
Choose the Endpoint[1] (1-1): 1
Endpoint enabled[yes] (y/n): yes
-- Edit CSP Application Configuration --
...
-- Edit FHIRService Configuration --
RequiredResource[-]:
...
ResourceValidation[if header]: if header
 

安全注意事项

如果您想使用“基于 HTTP 头”选项,系统还会对执行此操作的权限进行安全检查。

如果使用基本认证,用户必须对 %HS_FHIRServer_SkipValidation 安全资源拥有 USE 权限。

若使用 OAuth 身份验证,则令牌需包含 iscfhir_skipvalidation: true 声明,或将 iscfhir_skipvalidation 设为作用域。

Postman 带标头的示例

假设您将值设置为:“基于 HTTP 头”(如上所述),以下是在 Postman 中为您的调用设置相关头信息的示例: