【问题标题】:Map a non-standard JSON data from a REST API into FHIR将非标准 JSON 数据从 REST API 映射到 FHIR
【发布时间】:2020-07-09 10:47:35
【问题描述】:

我目前正在构建一个没有附加数据库的 REST API“桥”,我想从另一个 API 转换 JSON 响应,将其转换为 FHIR,然后将其传递给请求它的客户端。

因为 FHIR 本身的详细实现要求,我想用node-fhir-server-core 来做这件事。在哪里实现非 FHIR 到 FHIR 映射功能?是否可以使用node-fhir-server-core?如果不是,如何使用普通的express 应用程序实现 FHIR 验证/支持?

【问题讨论】:

    标签: node.js express node-fhir-server-core hl7-fhir


    【解决方案1】:

    短版:

    你需要弄清楚“https://github.com/Asymmetrik/node-fhir-server-core”是否支持什么

    Hapi Fhir 服务器调用“普通服务器” :: https://hapifhir.io/hapi-fhir/docs/server_plain/introduction.html

    Vonk 称其为“门面” :: https://fire.ly/products/vonk/vonk-fhir-facade/

    在他们的图表中(下......向右下方)我看到“资源提供者”,但我不确定这是“您的自定义资源提供者”还是“我们的(不对称的)内置资源提供者”。

    我查看了他们的一些文档,但没有看到任何关于“如何实现您自己的自定义资源提供程序”的内容。 (我从这里开始并做了一些挖掘)。 https://github.com/Asymmetrik/node-fhir-server-core/blob/master/docs/GettingStarted.md

    但希望这些其他人称之为此类设置的面包屑.. 将有助于您的搜索。

    如果你发现了什么具体的东西,那么请回来报告,我自己也很好奇。

    但是使用 hapi 或 vonk,您将拥有一个 fhir 服务器设置,它会接收请求(通常是 GET),将请求转换为您的(其他)内部 REST 服务器...取回数据,将其转换为fhir(此时通常为 r4)资源........这将被发送到最终客户端。简而言之,就是“适配器”设计模式。

    加长版:

    如果您将数据“收集”到您的专有数据库中,那很好。 然后,您将设置一个 fhir 服务器来公开该数据。 Hapi Fhir “普通服务器”或 Vonk(付费产品)外观模式将是将这些数据暴露给外界的路径。您将获取您的专有信息并将其转换为 fhir 对象并公开。

    选项 2。 由于您有新代码,您可以尝试将数据作为 FHIR 对象存储到您的数据存储(db 或 nosql)中。然后将这些对象暴露给外部世界。

    FHIR 是.......一种常见的众所周知的对象模型。医疗保健聊天的“语言”。

    我个人的比喻是……“就像每个人都开始互相说英语,但更多的是有人说美式英语,有人说英式英语”。我的意思是……它并不总是完美的。在少数情况下,闲聊并不完美。但它很接近。而且比所有事情都必须有翻译要好得多。

    如果您阅读了这篇(下文)关于“普通服务器”(普通 fhir 服务器)的文章(这是关于将您现有的专有数据转换为 fhir 资源)

    https://hapifhir.io/hapi-fhir/docs/server_plain/introduction.html

    vs(hapi 称之为“jpa”,但通常是“全能”fhir 服务器

    https://hapifhir.io/hapi-fhir/docs/server_jpa/introduction.html

    ......

    您将开始看到设置 fhir 服务器的不同选择。

    如果您有一个空白数据存储(数据库、nosql 等),则有几个选项可用于设置 fhir 服务器。

    Hapi Fhir + JPA 支持的数据存储。

    使用 CosmoDB 或 Sql Server 的 MS Fhir Server(开源)。

    (付费产品)Vonk“全进”服务器。

    “Spark”是一个较旧(但开源)的 fhir 服务器。

    ........

    但是,大多数人无法从空白数据存储开始。

    那么你有几个选择。

    Hapi Fhir,您可以在其中为 IResourceProvider 编写实现(您将在其中编写 PatientResourceProvider,(任何/大多数其他 Fhir 资源)......等等。

    Vonk(一种付费产品)的概念与他们称之为 Facade Pattern 的概念相同。

    .......

    目前,我不知道混合动力车。您必须选择其中一个(空白数据存储或适配器/iresourceprovider/facade 模式。

    ........

    好的,如果你想创建一个fhir服务器。

    ........

    您可能只想使用其他人的 fhir 服务器。然后,您想查看“fhir 客户端”以与其他人的 fhir 服务器一起工作。

    hapi 有一个客户

    https://hapifhir.io/hapi-fhir/docs/client/introduction.html

    可能还有其他人。

    …………

    现在,针对您的具体选择。

    您可能不想维护对象模型。您希望重用创建对象模型的其他人的工作。

    https://www.nuget.org/packages/Hl7.Fhir.R4/2.0.0-beta1

    Firely(Vonk 背后的公司)提供了一个开源的 dotnet 对象库。 hapi 有一个 java 对象库。

    您应该选择一种可以使用这些可重用对象库的语言。 如果python有一个,那么我想你可以使用python。就个人而言,我不会。我会继续使用 dotnet-core(开源)或 java。可能有一个 python fhir 对象模型库,但如果没有......我不会选择 python。模仿所有图书馆的东西太难了。
    .........

    这里是一些一般性的文档起点。

    https://hapifhir.io/hapi-fhir/docs/model/working_with_resources.html

    (在链接中获取以下信息......有点盐,有些信息已经过时了)

    https://wiki.hl7.org/Open_Source_FHIR_implementations

    https://wiki.hl7.org/Publicly_Available_FHIR_Servers_for_testing

    https://en.wikipedia.org/wiki/Fast_Healthcare_Interoperability_Resources

    .......

    个人想法。

    我会为 fhir 项目选择 dotnet-core 或 java。再次,在 fhir 中找到更成熟的语言(现在,不希望未来的东西)。

    不是每个人都在谈论的东西:

    当您公开特定于患者的数据(也就是以非汇总方式)时,您必须考虑患者匹配问题。您不能只说“这是观察结果”。您必须能够说“这是患者 ''John Smith'' 的观察结果,我 99.9999% 确信我正在为您提供(正确)John Smith 的数据。做不要小看这个问题。

    【讨论】:

    • 我将我的问题陈述限制为仅使用node-fhir-server-core 提供的有效资源,即US Core FHIR Implementation Guide。所以你可以放心地假设我使用的是 Asymmetrik 事先提供的。
    猜你喜欢
    • 1970-01-01
    • 2015-02-14
    • 1970-01-01
    • 1970-01-01
    • 2020-03-08
    • 1970-01-01
    • 2013-07-08
    • 1970-01-01
    • 2017-07-13
    相关资源
    最近更新 更多