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 作为条目?
所以如果我尝试总结一下,可能的方式是:
创建方法 createMyMethodName(ServiceRequest serviceRequest, RelatedPerson relatedPerson)
- 这个方法的创建和曝光是不是FHIR标准?
- 如果第一个问题的答案是肯定的,在我的平台上我会有很多自定义方法,但我对输入信息有非常严格的控制
使用 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
我想创建一个符合复杂业务逻辑的互操作平台 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 作为条目?
所以如果我尝试总结一下,可能的方式是:
创建方法 createMyMethodName(ServiceRequest serviceRequest, RelatedPerson relatedPerson)
- 这个方法的创建和曝光是不是FHIR标准?
- 如果第一个问题的答案是肯定的,在我的平台上我会有很多自定义方法,但我对输入信息有非常严格的控制
使用 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