因此,我一直在使用Hapi Fhir Server(作为几年来)来公开我公司中的专有数据的方式。...aka,为多个资源实现IResourceProvider。 想想这个世界上的“只读”。
现在我正在考虑接受写信。
Hapi Fhir服务器具有以下作用:
JPA服务器
HAPI FHIR RestfulServer模块可用于创建FHIR服务器 终结于任意数据源(可以是数据库)的端点 您自己的设计,现有的临床系统,一组文件或 你想出的其他任何东西。
HAPI还提供了一个持久性模块,可用于提供 完整的RESTful服务器实施,由您的数据库支持 选择。该模块使用JPA 2.0 API将数据存储在数据库中 无需依赖任何特定的数据库技术。
重要提示:此实现使用相当简单的表格设计, 使用一个表来保存资源主体( 存储为CLOB,可以选择将其压缩以节省空间)和一组表 用于保存搜索索引,标签,历史记录详细信息等。此设计是 设计FHIR服务器的许多可能方式中只有一种 值得考虑是否适合您的问题 试图解决。
http://hapifhir.io/doc_jpa.html
因此,我做了下载(从jpa服务器下载),并使其与真正的数据库引擎(覆盖默认的jpa定义)一起工作。.....我观察到“非常简单的表设计”。因此,我感谢这个简单的演示。但是从简单的角度来看,它确实关系到我的整个生产设置。
如果我想设置Fhir Server,是否有任何“非平凡的”(上面说的是“非常简单的表设计”)...来实现强大的Fhir Server ...
支持资源的版本(历史),“引用”的验证(例如,如果有人上载了Encounter,它将检查Encounter负载中的Patient(引用)和Practitioner(引用)……等等,等等?
那使用的是健壮的nosql数据库?
或者我是否打算实现一个非平凡的nosql数据库? 还是我用JPA走错了路?
我可以从“ scratch”(fhir-server的空数据存储)开始。...如果我必须导入任何数据,我知道会带来什么。
谢谢。
问这个问题的另一种方法是...有一种模仿该库的hapr-fhir方法:(请不要陷入java和dotnet之间的圣战问题)>
但是下面是我认为的“全包钥匙”解决方案。使用NoSql(CosmoDB)。
https://github.com/Microsoft/fhir-server
FHIR标准的.NET Core实现。
FHIR Server for Azure是以下产品的开源实现: 新兴的HL7快速医疗保健互操作性资源(FHIR) 规范专为Microsoft云设计。 FHIR规范 定义如何使临床健康数据在各个领域之间具有互操作性 系统,而适用于Azure的FHIR Server有助于实现这一目标 云中的互操作性。此Microsoft Healthcare的目标 该项目旨在使开发人员能够快速部署FHIR服务。
使用FHIR格式的数据,用于Azure的FHIR服务器启用 开发人员可以快速提取和管理云中的FHIR数据集, 跟踪和管理数据访问并标准化数据以进行机器学习 工作量。 FHIR Server for Azure针对Azure生态系统进行了优化:
答案 0 :(得分:1)
我不知道HAPI服务器的任何实现都支持NoSQL中的完整持久层。
HAPI已经存在了一段时间,持久层已经发展了很多,似乎适用于许多生产场景,尤其是在具有高性能关系数据库支持的情况下。
维护HAPI的团队也将其用作商业产品Smile CDR的基础。准备就绪微笑CDR产生的许多增强功能都包含在HAPI开源项目中。在scaling the JPA implementation上也进行了一些讨论。
如果您认真考虑在生产中使用HAPI,建议您在您设置的演示服务器上进行一些基准测试,以模拟您的一些生产用例,以查看是否可以满足您的需求,您可能会惊讶您也可以在Smile CDR进行咨询时与他们联系,并可能会更具体地告诉您如何调整实例以根据您的生产优先级进行扩展。
答案 1 :(得分:0)
您可以使用 Firely 的 FHIR 实现。最常用的repo是FHIR SDK;
https://github.com/FirelyTeam/firely-net-sdk
但是,如果您想开箱即用地为您完成更多工作,您可以使用他们的 Spark 存储库。这将使用下面的 SDK,并最终为您提供可用于 CRUD 操作的 IAsyncFhirService;
https://github.com/FirelyTeam/spark
还有你的问题; Spark 目前仅支持 Mongo DB 作为数据持久层,即没有像映射那样的实体在关系数据库中创建 db 模式。我认为 NoSQL 在这种情况下是有意义的。
或者,查看由 HL7 自己维护的其他语言的 FHIR 实现列表;