プロファイルは、「どのリソースが FHIR エンドポイントまたはクライアントによってサポートされているか」のように、どのリソースが一般的に使用されるかについては何も述べていません。これは、そのサーバーまたはクライアントが決定するためです。そして、彼らは適合宣言でそのような機能を報告しています。
プロファイルは、パートナー間でデータを通信する際に関係するリソースを制限できます。たとえば、観察は通常、「サブジェクト」プロパティで患者、グループ、デバイス、または場所を参照できます。これらをサブセットに制限することができ、これをリソース全体で一貫して行うことにより、トレーディング パートナーがいつそのプロファイル (およびそのプロファイルのみ) を使用するかについて「知る」必要がある一連のリソースを効果的に制限できます。
あなたの 2 番目の箇条書きにはいくつかのテキストが抜けていると思うので、その点についてコメントすることはできません。
仕様では、物語について次のように述べています。
リソースには、フォールバックとして人間の消費をサポートするための物語が常に含まれている必要があります。しかし、すべてのシステムが共通のデータモデルを共有し、追加のテキストが不要であるか、臨床上の安全上のリスクでさえある厳密に管理された取引システムでは、説明が省略される場合があります。」
たとえば、特定のリソースの基本プロファイル定義 ( http://www.hl7.org/implement/standards/fhir/observation.profile.xml.htmlを参照) を見ると、Observation.text が表示されます。がカーディナリティ 0..1 で定義されている場合、これを 0..0 にプロファイリングして、プロファイルで明示的にすることができます。
XPath を使用するという Lloyd の提案を含む、存在するツールを示すプロファイルの例を次に示します。
<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) の両方の手段があります。