配置文件入门

Getting started with Profiles

在构建示例 FHIR 服务器的过程中,我谈到了配置文件的主题。我仍然 learning/working 了解规格,请耐心等待。

在阅读了关于分析的规范文档后,我不确定在 FHIR 服务器上提供分析的起点是哪里。仅供参考 - 我正在使用 DSTU 2 C# 参考实现。

首先,一个高级问题 - 规范讨论了差异与快照。我的理解是,仅显示基础资源的更改(如 FHIR 规范所允许的那样)将构成差异。如果 FHIR 服务器的资源对其基础资源进行了一些更改,则该资源的 StuctureDefinition 应该同时具有差异和快照。差异仅显示基本资源的更改,而快照显示有关资源的所有内容(包括基本资源的更改)——两者都以两种不同的方式反映同一组更改?

其次,规范规定 - "StructureDefinition resources used in operational systems should always have the snapshot view populated"。如何最好地填充快照是我的困惑所在。

参考实现确实提供了 StructureDefinition class 并且似乎具有手动编写 StructureDefinition 所需的一切。然后它可以像任何其他 FHIR 资源一样通过 json 或 xml 返回。 should/needs 是这样吗?参考实现中是否有任何可用的东西可以自动为给定资源生成与您可以从 FHIR 规范网站下载的 StructureDefinition 相同的 StructureDefinition?或者,实施者是否打算从 FHIR 规范网站下载所有核心 StructureDefinition 文件,并将它们用作起点,为其服务器上的每个核心 FHIR 资源创建本地 StructureDefinitions?

如果 FHIR 服务器仅提供具有差异的 StructureDefinitions,没有快照,那么查看 StructureDefinition 的 xml/json 的人将需要通过 "base" 值和FHIR 服务器上资源的差异,以全面了解资源在服务器上的实际情况。我猜这就是快照应该在 FHIR 服务器上可用的原因,因此不需要检查多个来源。这也是为什么我想知道是否每个 FHIR 服务器都应该为每个核心资源都有一个 FHIR 规范 StructureDefinitions 的本地副本,或者服务器是否应该通过 FHIR 规范网站(核心 FHIR StructureDefinitions 与中央存储库)引用 StructureDefinitions 。 分散式)。如果 FHIR 服务器上可用的 StructureDefinitions 应该引用 FHIR 规范网站的核心资源,FHIR 服务器的工作是通过某种基于 "base" 值的网络调用在幕后构建快照吗?每个 StructureDefinition?

这里有很多问题。任何指导表示赞赏。谢谢。

快照显示了与基本结构定义的差异。基础可以是资源或数据类型定义或其他配置文件。它们确实是同一信息的两种不同表达方式。仅给出快照或仅给出差异,只要您有可用的基本结构定义的快照副本,就可以推导出另一个。

差异主要对人类有用 - "How is this profile different from the base?" 通常对审阅者很重要,但从软件的角度来看,您只关心 "what's allowed",这就是快照的完整描述。

服务器是否选择在本地托管资源结构定义取决于它。如果您希望定期检索它们,拥有一份本地副本将是明智之举。 (HL7 的副本不一定 "fast" 可以检索,而且该网站肯定不是为处理高负载而设计的。)

请注意,计算快照或差异的工作通常是创作过程的一个问题。它不会对实际托管在服务器上的内容施加任何限制。

根据规范 "Servers SHALL provide a conformance statement that specifies which interactions and resources are supported.",您的第一个 follow-up 问题是肯定的。配置文件的使用不是必需的。如果您只想使用核心资源而不需要更改它们,您的资源将遵循核心 StructureDefinitions。您可以在 resource.profile 中指定。但是如果你只使用核心规范,你不需要制作配置文件。 如果你想制作自己的 StructureDefinitions,你可以手动完成,但你也可以使用 Furore 的工具 Forge。 Forge 将允许您保存快照并将其放入您的服务器,这样您的服务器就可以(在 xml 或 json 中)将其提供给任何需要它的人。