【问题标题】:hapi fhir server full turn key implementationhapi fhir 服务器完整的交钥匙实施
【发布时间】:2019-05-06 20:16:15
【问题描述】:

所以我一直在使用 Hapi Fhir Server(几年来)作为在我的公司中公开专有数据的一种方式......也就是为多个资源实现 IResourceProvider。 想想这个世界上的“只读”。

现在我正在考虑接受写入。

Hapi Fhir 服务器有这个作用:

JPA 服务器

HAPI FHIR RestfulServer 模块可用于创建 FHIR 服务器 针对任意数据源(可能是数据库)的端点 您自己的设计、现有的临床系统、一组文件或 你想出的任何其他东西。

HAPI 还提供了一个持久性模块,可用于提供一个 完整的 RESTful 服务器实现,由您的数据库支持 选择。该模块使用 JPA 2.0 API 将数据存储在数据库中 不依赖于任何特定的数据库技术。

重要提示:这个实现使用了一个相当简单的表格设计, 使用单个表来保存资源主体(它们是 存储为 CLOB,可选 GZipped 以节省空间)和一组表 保存搜索索引、标签、历史详细信息等。这种设计是 只是设计 FHIR 服务器的众多可能方法中的一种,因此它是 值得考虑是否适合你的问题 试图解决。

http://hapifhir.io/doc_jpa.html

所以我做了这个下载(jpa 服务器的)并让它在一个真正的 db 引擎上工作(覆盖默认的 jpa 定义)......我观察到“相当简单的表设计”。所以我很感谢这个简单的演示。但是从简单的角度来看,它确实让我担心完整的生产设置。

如果我想设置一个 Fhir 服务器,是否有任何“非平凡的”(上面说“相当简单的表格设计”)......来实现一个强大的 fhir 服务器...... 支持资源的版本控制(历史),“参考”的验证(例如,如果有人上传了一个 Encounter,它会检查 Encounter 有效负载中的 Patient(reference)和 Practitioner(reference)......等等?
那是在使用健壮的 nosql 数据库吗?

或者我是否正在实施一个重要的 nosql 数据库? 还是我在 JPA 上走错了路?

我可以从“scratch”(我的 fhir 服务器的一个空数据存储)开始......如果我必须导入任何数据,我明白这会带来什么。

谢谢。

问这个问题的另一种方式......是......是否有模仿这个库的 hapi-fhir 方式:(请不要回归到 java 和 dotnet 之间的圣战问题)

但下面更多的是我认为的“完整交钥匙”解决方案。使用 NoSql (CosmoDB)。

https://github.com/Microsoft/fhir-server

FHIR 标准的 .NET Core 实现。

FHIR Server for Azure 是 新兴HL7 快速医疗保健互操作性资源 (FHIR) 为 Microsoft 云设计的规范。 FHIR 规范 定义了如何使临床健康数据可以跨平台互操作 系统,而用于 Azure 的 FHIR 服务器有助于促进这一点 云中的互操作性。此 Microsoft Healthcare 的目标 该项目旨在使开发人员能够快速部署 FHIR 服务。

使用 FHIR 格式的数据,FHIR Server for Azure 启用 开发人员在云中快速摄取和管理 FHIR 数据集, 跟踪和管理数据访问并规范化机器学习数据 工作量。 FHIR Server for Azure 针对 Azure 生态系统进行了优化:

【问题讨论】:

    标签: hapi-fhir fhir-server-for-azure


    【解决方案1】:

    我不知道任何支持 NoSQL 中的完整持久层的 HAPI 服务器实现。

    HAPI 已经存在了一段时间,持久层已经发展了很多,并且似乎适用于许多生产场景,尤其是在有高性能关系数据库支持的情况下。

    维护 HAPI 的团队也将其用作商业产品 Smile CDR 的基础。许多使 Smile CDR 生产就绪的增强功能都融入了 HAPI 开源项目。 scaling the JPA implementation也有一些讨论。

    如果您认真考虑在生产中使用 HAPI,我建议您在您设置的演示服务器上进行一些基准测试,以模拟您的一些生产用例,看看它是否能满足您的需求,您可能会惊讶。您还可以联系 Smile CDR 的人员进行咨询,他们可能会更具体地告诉您如何调整实例以适应您的生产优先级。

    【讨论】:

    • 感谢您的信息。将其标记为答案,因为它已经闲逛了一段时间。你的线索帮助我更好地理解。谢谢 cmike。
    【解决方案2】:

    您可以使用 Firely 的 FHIR 实现。最常用的 repo 是 FHIR SDK;

    https://github.com/FirelyTeam/firely-net-sdk

    但是,如果您想开箱即用地为您完成更多工作,您可以使用他们的 Spark 存储库。这使用了下面的 SDK,并最终为您提供了一个 IAsyncFhirService,您可以将其用于 CRUD 操作;

    https://github.com/FirelyTeam/spark

    关于你的问题; Spark 目前仅支持 Mongo DB 作为数据持久层,即没有像映射这样的实体来在关系数据库中创建 db 模式。我认为 NoSQL 在这种情况下是有意义的。

    或者,查看由 HL7 自己维护的其他语言的 FHIR 实现列表;

    https://wiki.hl7.org/Open_Source_FHIR_implementations

    【讨论】:

      猜你喜欢
      • 2020-12-29
      • 1970-01-01
      • 2014-08-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多