FHIR StructureDefinition - 差异定义

FHIR StructureDefinition - differential definitions

DSTU2 5 月投票版本具有允许 "differential" 结构定义的 StructureDefintion 资源(替换 Profile)。

使用它向现有结构添加元素非常简单 - 差分中的所有元素都是 "adds" 到基础。

但是,如何修改或减少现有配置文件?更具体地说:

基础结构中的元素如何与差分结构中的元素可靠地匹配,以便差分可以修改基础?

我可以看到两种可能性:

  1. 使用路径。适用于非切片元素但不适用于切片的必需元素(扩展总是切片)。
  2. 使用姓名。除了它是可选的,所以如果 base 没有命名他们的元素,这将不起作用。

还有其他方法吗?

这里的工作示例:http://hl7.org/fhir/2015May/extensibility-examples.html#1.16.2.1.2

在此示例中,按路径匹配将替换任何其他扩展名,并且名称匹配将不起作用,因为这两个元素都未命名。唯一的选择是将其视为附加(幸运的是这里的意图)。但是如果我想使用这个作为基础进一步修改这个结构(可能设置 max="1"),我将无法做到。

实际上,添加不是添加。任何添加都必须是扩展的一部分——您不能在配置文件中添加新元素。因此(除非您正在定义资源——只有 HL7 可以这样做),您在约束 StructureDefinition 中指定的每个元素都必须指定一个 "path" 对应于基础资源中的现有路径。要约束现有元素,只需确定该路径并断言您的约束即可。如果您想要约束的内容不能仅通过路径来识别(即您想要约束在父配置文件中定义的切片),那么您需要重新声明切片并断言相关切片的附加约束.名称用于唯一标识配置文件中的切片,但(目前)不跨配置文件使用。