0

对于给定的实施方案,以资源配置文件未描述的方式限制系统内如何使用资源是可以接受的。

多种场景:

 -  explicitly prohibit the use of <contained> resources
 -  explicitly prohibit the use of <modifierExtensions>
 -  explicitly prohibit the use of the narrative <text>

系统上的验证可以清楚地实现上述内容,但是是否有广告这种限制说“实现一致性配置文件”?

4

3 回答 3

1

配置文件没有说明一般使用哪些资源,例如“FHIR 端点或客户端支持哪些资源”,因为这将由该服务器或客户端决定。他们在一致性声明中报告了这些功能。

配置文件可以限制合作伙伴之间传输数据时所涉及的资源:例如,观察通常可以在其“主题”属性中引用患者、组、设备或位置。您可以将这些限制为一个子集,并且通过跨资源一致地执行此操作,您有效地限制了交换贸易伙伴需要“知道”他们何时使用该配置文件(并且仅该配置文件)的资源集。

我认为你的第二个子弹错过了一些文字,所以我不能评论那个。

规范中提到了 Narrative:

资源应该始终包含支持人类消费的叙述作为后备。然而,在一个严格管理的交易系统中,所有系统共享一个共同的数据模型并且额外的文本是不必要的,甚至是临床安全风险,叙述可能会被省略。”

例如,如果您查看给定资源的基本配置文件定义(查看http://www.hl7.org/implement/standards/fhir/observation.profile.xml.html),您会看到 Observation.text在那里定义了基数 0..1,您可以将其配置为 0..0 以在您的配置文件中明确说明。

这是一个示例配置文件,显示了那里的工具,包括 Lloyd 使用 XPath 的建议:

<Profile xmlns="http://hl7.org/fhir" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://hl7.org/fhir ../../schema/profile.xsd">  
  <!-- stuff removed -->
  <structure>
    <type value="Observation"/>
    <name value="MyConstrainedObservation"/>
    <publish value="true"/>
    <!-- again, elements left out -->
    <element>
      <path value="Observation" />
      <constraint>
        <key value="shorttext" />
        <severity value="error" />
        <human value="Must be short text" />
        <xpath value="string-length(f:text) < 100" />
      </constraint>              
    </element>
    <element>
      <path value="Observation.modifierExtension"/>
      <definition>
        <min value="0" />
        <max value="0" />
      </definition>
    </element>
    <element>
      <path value="Observation.text"/>
      <definition>
        <short></short>
        <formal></formal>
        <min value="0" />
        <max value="1" />
        <condition value="shorttext" />
      </definition>
    </element>
    <!-- elements left out -->
    <element>
      <path value="Observation.subject"/>
      <definition>
        <type>
          <code value="Resource(Patient)"/>
          <aggregation value="bundled" />
          <aggregation value="referenced"/>
        </type>       
      </definition>
    </element>
    <!-- more stuff -->
  </structure>
</Profile>

该配置文件首先定义了一个限制文本长度的 XPath 约束(仅作为示例),然后将 Observation.modifierExtension 的基数限制为 0..0,从而有效地禁止了它的使用。此外,它将 Observation.subject 限制为仅引用患者(因此您可能会避免在交流中使用设备等)并指定这些患者只能被引用或捆绑(在消息、文档或交易中),但不能使用 .

显然,我在这里所做的也可以使用 Observation.text 和 Observation.contained 来完成。您有结构(基数)和可执行(xpath)手段来限制您可以使用的内容。

于 2014-02-05T16:33:21.863 回答
0

在配置文件中,也可以通过使用配置文件/结构/元素/定义/约束来约束任何这些元素。例如,要禁止对 Patient 进行叙述,您将定义一个具有“Patient”类型结构的 Profile,并在根“Patient”元素上包含一个带有 xpath “not(f:text)”的约束

不过,这仍然需要在每个资源的基础上完成。

另一种选择是在您的 Conformance 资源上定义一个 isModifier 扩展,该扩展声明您不支持任何资源上的 isModifier 或 text 或任何内容。尽管在实践中,这只是意味着大多数系统不知道如何读取您的一致性资源,因此根本不知道如何与您交谈。

一些建议: 请记住,任何此类限制都会极大地限制您与广泛社区进行互操作的能力,尽管它们可能适用于非常有限的环境。

使用 isModifier,人们普遍认为大多数系统将拒绝包含他们无法识别的 isModifier 的实例,因此如果您不识别任何修饰符扩展,拒绝包含它们的实例不需要任何特殊声明 - 这是正常行为。

至于文本,最好设置一个约束,说明必须生成叙述,而不是完全禁止它。生成的叙述可以安全地忽略,并且您更本着 FHIR 一致性的精神这样做,而不是完全拒绝任何叙述的实例。

于 2014-02-06T04:56:41.053 回答
0

我相信您会将其添加到您的一致性文档中

于 2014-02-05T15:51:30.330 回答