0

DSTU2 May 投票版本有一个 StructureDefintion 资源(替换 Profile),允许对结构进行“差异化”定义。

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

但是,如何修改或减少现有配置文件?进一步来说:

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

我可以看到两种可能性:

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

还有其他方法吗?

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

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

4

1 回答 1

1

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

于 2015-05-09T22:27:27.087 回答