工作组: FHIR Infrastructure 标准状态: Informative

符合性组件用于表示FHIR规范中数据类型、资源和API功能的元数据,并且可以通过继承原规范来创建扩展规范。

FHIR核心规范描述了在多种不同卫生健康场景使用的一系列资源、框架和API。然而,贯穿于整个卫生健康生态系统中的实践、需求、法规、教育以及可行性、效益等在不同的国家和地区都存在很大差异。

由此看来,FHIR规范是一个“平台规范”——它创建了一个通用平台或基础框架,并在该平台框架上实现了各种不同的解决方案。 因此,为了适应特定的使用场景境,通常需要对本规范作进一步适应性配置。

通常,这些配置将指定::

  • 关于元素的规则:使用或不使用哪些资源元素以及添加哪些不属于基本规范的附加元素。
  • 关于交互的规则:使用何种交互方式(RESTful API、消息、文档交换)以及如何使用。
  • 关于术语的规则:在特定元素中使用什么术语。
  • 关于映射的说明:描述资源元素和API功能如何映射到本地需求与实现

请注意,由于卫生健康生态系统的特性,从不同角度来配置符合性可能存在多个重叠的配置集合:卫生健康领域、国家、机构、实施厂商。

FHIR提供了一组资源,以计算机能理解的方式来表示和共享上述适应性配置。 这些资源统称为符合性资源。尽管这些符合性资源可以单独使用,但用于实施指南能力声明的上下文中更为常见:

  • 实施指南Implementation Guides是由一个域、机构或供应商发布的文档,它描述了FHIR如何支持特定用例(或一组用例)。 实施指南将一组符合性资源和支持性叙述结合到文档中,以供实施者使用。
  • 能力声明capability statements使用符合性资源来说明客户端或服务器如何实现FHIR,即实现了规范和API的哪些方面,以及如何实现的。

实施指南的内容是用 ImplementationGuide 资源来说明的, 而 CapabilityStatement 资源则用于表示能力声明。 这两种资源利用完整的符合性资源集可以完整的表示它们所采用的标准。 请注意,实施指南资源ImplementationGuide只是描述系统的功能,而能力声明资源CapabilityStatement作为符合性资源,是所有符合性资源的集合,它包含了:

符合性资源可以独立使用,而不仅仅是用于实施指南资源或能力声明资源的上下文中。 有关此类使用的示例,请参见常见用例小节。

符合性资源及其相互关系见下图:

Image showing the conformance resources

虚线框中的资源将在本规范的其它章节介绍: 值集概念映射结构映射图 属于术语组件, 测试脚本 属于 实施支持组件.

The conformance resources do not represent patient-related data, and as such are less susceptible to data breaching. Some caution is required however:

  • StructureDefinitions may contain invariants formulated as structured expressions that are evaluated by external engines (i.e. xpath), which -if improperly sandboxed- could provide low-level access to the system
  • A server may be implemented in such a way that it will automatically support additional search parameters or compartments definitions uploaded to that system. This may result in searches that use large amounts of processing power, expose sensitive patient data, or both.
  • If a server acts as a repository of conformance resources, it should tightly control modifications to its data: updates to conformance resources are usually managed by a review process to ensure backwards compatibility and stability. Worst case, changes to these resources may result in dependent systems running the risk of being misconfigured.

Conformance resources are commonly used as part of an Implementation Guide or CapabilityStatement resource. There are many ways to use the resources independently however, including:

  • An instance of a resource may reference one or more StructureDefinitions to claim conformance to the rules laid out in those StructureDefinitions
  • A server may serve CapabilityStatement resources, effectively functioning as a discovery endpoint for services within an organization
  • A code-generation tool may use StructureDefinitions and OperationDefinitions to generate code that represents the structures as classes and operations as remotely callable functions to provide an easier programming model to a software developer.
  • A server may act as a repository of NamingSystem resources, so vendors and implementers can quickly look up the URLs or oids for a given terminology or identifier system.

A subset of the conformance resources has been tested and used in production tooling and are now normative. These include StructureDefinition and ValueSet. Others, like CapabilityStatement, have been used widely, but not across all elements. As a consequence, these resource have a considerable number of elements marked for "trial use", while other parts are normative and will no longer change in a substantive way.

Other resources are still under development:

  • ImplementationGuide: used in the HL7 production tooling but has not received much use outside of these tools yet.
  • CompartmentDefinition: was new in STU3, and as such has not undergone much production use

These resources have been mainly used in the tools used to build the FHIR publication, early-adopter implementation guides and the FHIR Foundation conformance resource registry. In future, we expect to see more widespread use of these resources in validation tooling, code-generators and more extensive model-based guide authoring tools.