FHIR 互操作平台选择

FHIR interoperability platform choice

我想创建一个符合复杂业务逻辑的互操作平台 FHIR。

我们的客户可以将FHIR资源发送到平台。

最佳实践文档中的最佳架构是一个 ibrid 系统 FHIR + SOA,如此 link 所说。

现在我写两个我必须管理的场景示例:

第一个:

我想创建一个 ServiceRequest 资源,其主题是我只知道财务代码作为标识符。如果我需要有关该主题的其他信息,我可以查询外部数据库,例如,了解姓名等。

我可以这样做,只向我的互操作平台发送如下服务请求吗?

"resourceType" : "ServiceRequest",
"subject" : {
     "reference" : "Patient?identifier=FISCALCODE"
 }

等等

第二个:

我想创建一个 ServiceRequest 资源,其中 RelatedPerson linked 在请求者标签中。

RelatedPerson 不是完整的注册表,我只知道名字和姓氏以及 link 患者。

我必须创建一个 SOA 方法 createServiceRequest 我必须在其中传递两个参数 ServiceRequest 和 RelatedPerson?或者我可以对 Bundle 资源使用 CRUD 方法,我将我的 ServiceRequest 和我的 RelatedPerson 作为条目?

所以如果我尝试总结一下,可能的方式是:

  1. 创建方法 createMyMethodName(ServiceRequest serviceRequest, RelatedPerson relatedPerson)

    • 这个方法的创建和曝光是不是FHIR标准?
    • 如果第一个问题的答案是肯定的,在我的平台上我会有很多自定义方法,但我对输入信息有非常严格的控制
  2. 使用 CRUD Bundle 方法,我将以下条目传递到 Bundle 资源中:ServiceRequest、RelatedPerson

    • 通过这种方式,我只公开了一种在我的平台上编写的方法,但我必须实现大量代码来管理具有多个不同条目的所有输入包(我想是一个大型开关,然后为我应用的每个分支业务逻辑控制来完成我的业务逻辑规则)

此回复并非对您问题的完整回复,而是从美国的角度出发;但是,您可能会发现该透视图很有用。

标识符查询问题

"reference" : "Patient?identifier=FISCALCODE"

正如所写,您的 ?identifier=FISCALCODE 将针对所有代码系统查询 FISCALCODE 密钥。我想你想要的是指定一个代码系统,例如?identifier=<CodeSystem>|<FiscalCode> 这是一个隐藏在 FHIR search documentation.

中的常见陷阱

您要么必须参考现有的代码系统,例如类似于美国核心的意大利特定实施指南,其中包含 FiscalCodes 列表,或者编写您自己的指南。

您使用的是哪种 FHIR 集成范例?

在深入探讨 createMethod 与 Bundle 问题之前,我认为退一步选择整体 FHIR 集成方法会很有用。

在我看来,主要有以下三种做法:

  • 将数据加载到现有的独立 FHIR 服务器中
    • 挑战:FHIR 服务器和其他数据仓库中加载的数据之间存在差异
  • FHIR 服务器查询非 FHIR API
    • 挑战:FHIR API 和非 FHIR API
    • 之间的重复
    • 注意:在极限情况下,FHIR 服务器本身没有存储数据。更令人困惑的是,有些人会将此实现称为“FHIR 网关”而不是“FHIR 服务器”。
  • FHIR 服务器查询暂存数据库以获取 FHIR 数据
    • 挑战:必须为每个 FHIR 资源和每个数据元素编写数据访问。

将来可能会有第四种方法,即使用 FHIR 实时映射语言从中间源模型到多个目标。

您的“CRUD Bundle 方法”更符合将数据发布到独立 FHIR 服务器,而您的“createMyMethodName”更符合将 DAO(数据访问对象)写入外部数据库。

在不需要保持 FHIR 服务器和源数据系统之间同步的限制下,将数据导入独立的 FHIR 服务器的工作量要少得多。

在您已经映射到中间数据模型的限制下(在美国,许多大型服务提供商将映射到 USCDI 或通用临床数据集),您将更容易编写 CRUD在 FHIR 服务器中针对现有数据库。

要进行更深入的讨论,请在 2018 年 FHIR 开发日 starting at Slide 21 上进行 FHIR 集成模式讨论。请注意,作者假定熟悉外观模式等架构模式。

Select 独立服务器或库

除非您有迫切的要求或者是一家大公司,否则建议使用现有的开源独立服务器或库实现。三个最受欢迎的是:

  • HAPI-FHIR (Java)
  • 微软 (.NET)
  • IBM (Java)

如果选择独立选项,流行的商业 FHIR 服务器

  • Microsoft(托管在 Azure 中)
  • 微笑CDR(HAPI-FHIR商业版)
  • Firely Vonk