对于给定的实现方案,可以以资源配置文件未描述的方式限制系统内资源的使用方式。
许多场景:
- explicitly prohibit the use of <contained> resources
- explicitly prohibit the use of <modifierExtensions>
- explicitly prohibit the use of the narrative <text>
对系统的验证可以清楚地实现上述内容,但是,如果说“实施一致性配置文件”,是否就此限制做广告?
答案 0 :(得分:1)
配置文件没有说明一般使用哪些资源,例如“FHIR端点或客户端支持哪种资源”,因为这将由该服务器或客户端决定。他们在一致性声明中报告了这些功能。
配置文件可以限制在合作伙伴之间传递数据时所涉及的资源:例如,观察通常可以在其“主题”属性中引用患者,组,设备或位置。您可以将这些限制为子集,并且通过在资源上一致地执行此操作,您实际上限制了交换贸易伙伴的资源集需要“知道”他们何时使用该配置文件(并且仅使用该配置文件)。
我认为你的第二个子弹错过了一些文字,所以我不能评论那个。
该规范讲述了叙事:
资源应该总是包含叙述,以支持人类消费作为后备。但是,在严格管理的交易系统中,所有系统共享一个共同的数据模型,并且不需要额外的文本或甚至是临床安全风险,可以省略叙述。“
例如,如果查看给定资源的基本配置文件定义(请查看http://www.hl7.org/implement/standards/fhir/observation.profile.xml.html),您会看到在其中使用基数0..1定义了Observation.text,您可以将其分析为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)意味着限制你可以使用的内容。
答案 1 :(得分:0)
我相信您会将此添加到您的conformance文档
答案 2 :(得分:0)
在配置文件中,还可以通过使用Profile / structure / element / definition / constraint来约束任何这些元素。例如,要禁止对Patient进行叙述,您可以定义一个类型为“Patient”的结构的Profile,并在根“Patient”元素上包含一个带有xpath“not(f:text)”的约束
但仍需要在每个资源的基础上完成。
另一种选择是在Conformance资源上定义isModifier扩展,声明您不支持isModifier或text或任何资源上的任何内容。虽然在实践中,这只是意味着大多数系统都不会知道如何阅读您的一致性资源,因此根本不知道如何与您交谈。
一些建议: 请记住,任何此类限制都会极大地限制您与广泛社区互操作的能力,尽管它们可能适用于非常有限的环境。
使用isModifier,人们普遍认识到大多数系统都会拒绝包含他们无法识别的isModifier的实例,因此如果您不识别任何修饰符扩展,拒绝包含它们的实例则不需要任何特殊声明 - 这是正常的行为。
至于文本,最好放置一个约束,说明必须生成叙述而不是完全禁止它。生成的叙事可以被安全地忽略,你更多地遵循FHIR一致性的精神,而不是拒绝任何叙述的实例。