1

因此,我一直在使用 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 是为 Microsoft 云设计的新兴 HL7 快速医疗保健互操作性资源 (FHIR) 规范的开源实现。FHIR 规范定义了如何使临床健康数据跨系统互操作,而用于 Azure 的 FHIR 服务器有助于促进云中的互操作性。此 Microsoft Healthcare 项目的目标是使开发人员能够快速部署 FHIR 服务。

借助 FHIR 格式的数据,用于 Azure 的 FHIR 服务器使开发人员能够快速摄取和管理云中的 FHIR 数据集,跟踪和管理数据访问以及规范机器学习工作负载的数据。FHIR Server for Azure 针对 Azure 生态系统进行了优化:

4

2 回答 2

1

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

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

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

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

于 2019-05-07T18:32:35.583 回答
0

您可以使用 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

于 2021-04-15T13:56:34.540 回答