2014-02-05 86 views
0

對於給定的實施方案,限制資源配置文件未描述的方式在系統內使用資源的方式是可以接受的。限制使用FHIR中的資源

許多場景:

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

驗證系統上可以清楚地實施以上,但有遠廣告上說的「實現一致性輪廓」這個限制?

+0

更新了問題,因爲它在格式化過程中丟失了部分內容。 –

回答

0

我相信你會這樣

+0

也許,但我無法看到一致性資源定義中的內容。 –

+0

你能完成一個場景嗎?什麼是系統?你正在收發文件嗎? –

1

規範不說任何關於其資源用於一般情況下,添加到您的conformance文檔作爲「這資源是由FHIR端點或客戶端支持」,因爲這將是爲該服務器或客戶端決定。他們在一致性聲明中報告了這些功能。

配置文件可以限制在合作伙伴之間傳遞數據時涉及的資源:例如,Observation通常可以在其「主題」屬性中引用Patient,Group,Device或Location。您可以將這些限制爲一個子集,並且通過在資源中一致地執行此操作,您將有效地限制交換合作伙伴的資源集合需要「知道」他們何時使用該配置文件(以及僅限該配置文件)。

我覺得你的第二個子彈忽略了一些文字,所以我不能評論那一個。

該規範說,關於敘事:

資源應該總是包含敘述支持人類消費作爲後備。然而,在嚴格管理交易系統,所有系統都有一個共同的數據模型和附加文本是不必要的,甚至是臨牀安全風險,敘述可以省略。」

如果你看的基本輪廓定義例如,給定的資源(請看http://www.hl7.org/implement/standards/fhir/observation.profile.xml.html),您會看到在那裏定義了Observation.text,其基數爲0..1,您可以將其設置爲0..0,以便在您的配置文件中對此進行明確表示。下面是一個示例,顯示了這些工具的配置文件,其中包括勞埃德使用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限制爲僅引用患者(因此您可以避免在交易所中使用Device等),並指定這些患者只能被引用或捆綁(在消息,文檔或交易中),但不能包括使用。

很明顯,我在這裏所做的可以用Observation.text和Observation.contained來完成。您有結構(基數)和可執行(xpath)兩種方式來限制您可以使用的內容。

+0

我已經更新了這個問題來填補空白。就FHIR而言,我想禁止的所有領域都是可選的。我的問題是我如何明確表示不應該使用它們。 –

+0

因此,對於您想要禁止敘述的每個資源,您將ResourceX.text約束爲maxcardinality爲0.同樣適用於ResourceX.modifierExtension。你可以對ResourceX.contained使用相同的原則,但是在約束ResourceReferences時可以有更多的控制。首先,你需要認識到,包含的資源可能只有在它們被ResourceReference引用時纔會發生,它們不能成爲孤兒。其次,你可以限制一個ResourceReference,所以它可能不會引用一個包含的資源。如果以這種方式約束所有的資源引用,則包含的資源不會發生。 –

0

在配置文件中,還可以通過使用Profile/structure/element/definition/constraint約束這些元素中的任何一個。例如,要禁止對患者進行敘述,您需要定義一個類型爲「Patient」的結構的Profile,並在根「Patient」元素上包含xpath約束「not(f:text)」

儘管如此,仍然需要在每個資源的基礎上完成。

另一種選擇是在Conformance資源上定義isModifier擴展,該擴展聲明您不支持isModifier或文本或任何資源上的任何內容。儘管在實踐中,這只是意味着大多數系統不會知道如何閱讀您的一致性資源,因此根本不知道如何與您交談。

幾點建議: 請記住,任何這種限制極大地會限制你與社會各界的廣泛互操作能力,雖然他們可能是非常有限的環境適宜。

使用isModifier,普遍認識到大多數系統會拒絕包含isModifier的實例,因爲如果您不識別任何修飾符擴展,則拒絕包含它們的實例不需要任何特殊聲明 - 這是正常行爲。

至於文字,最好放置一個約束條件,說明必須生成敘述,而不是完全禁止它。生成的敘述可以被安全地忽略,而且你更加符合FHIR一致性的精神,而不是完全拒絕具有任何敘述的實例。