每个路径定义一次 DataElements 的切片(每个唯一路径只有一组鉴别器)。这适用于内置元素,但扩展名(并且必须)仅按 url 切片。结果,似乎不可能对扩展进行进一步(更详细)的切片。
例如,考虑对 Patient 进行研究授权的扩展,ext url “ http://example.com/DataElement/researchAuth ”。
它有一个代码类型的扩展子元素“authorizationType”(http://example.com/DataElement/researchAuth.type)。这是此扩展的两个实例(一种是“本地”,一种是“国家”)。
<extension url="http://example.com/DataElement/researchAuth">
<extension url="http://example.com/DataElement/researchAuth.type">
<valueCode value="local" />
</extension>
<extension url="http://example.com/DataElement/researchAuth.flag>
<valueBoolean value="true" />
</extension>
</extension>
<extension url="http://example.com/DataElement/researchAuth">
<extension url="http://example.com/DataElement/researchAuth.type">
<valueCode value="national" />
</extension>
<extension url="http://example.com/DataElement/researchAuth.flag>
<valueBoolean value="false" />
</extension>
</extension>
对此的 StructureDefinition 将包括(来自 Patient):
...snip...
<element>
<path value="Patient.extension" />
<slicing>
<discriminator value="url" />
</slicing>
</element>
我可以通过使用 type.Profile 来为 researchAuthorization 添加一个元素来定义扩展 URL,但是我可以添加一个如图所示的切片吗?
<element>
<path value="Patient.extension" />
<slicing>
<discriminator value="url" />
</slicing>
</element>
<element>
<path value="Patient.extension" />
<name value="researchAuthorization" />
<slicing>
<discriminator value="url" />
<discriminator value="extension["http://example.com/DataElement/researchAuth.type"].code" />
</slicing>
<type>
<profile value="http://example.com/DataElement/researchAuth" />
</type>
</element>
第二个现在是合法的,因为它“满足”了通过 type.profile.@value 修复的第一个切片?