1.12.6.0 FHIR 仕様の拡張方法

logo fhir

HomeDocumentationResource DefinitionsExtensibility [extensibility]

FHIR DSTU (v0.80-2279)

1.12.6.0 Extensibility 「エクステンションの規定」

See also Extensibility Examples as well.

エクステンションの参考例も参照してください。

This exchange specification is based on generally agreed common requirements across healthcare - covering many jurisdictions, domains, and different functional approaches. As such, it is common for specific implementations to have valid requirements that will not be directly included in this specification. Incorporating all of these requirements would make this specification very cumbersome and difficult to implement. Instead, this specification expects that these additional distinct requirements will be implemented as extensions.

この情報交換標準は、大筋で合意された医療分野における共通要件に基づくもので、多くの行政管轄、業務分野および実現手法を対象に含みます。そのため、個々の実装にあたっては、まったく正当な要求事項にも関わらず、この仕様に直接含まれていないものが出てくることは普通にあり得ることです。そのような要求仕様を全て含めることは、この仕様を非常に複雑で実装の困難なものにしてしまうでしょう。その代わりに、この仕様では、このような特異的な要求事項はエクステンションとして実装することを想定しています。

As such, extensibility is a fundamental part of the design of this specification. Every element in a resource may have extension child elements to represent additional information that is not part of the basic definition of the resource. Applications should not reject resources merely because they contain extensions, though they may need to reject resources because of the specific contents of the extensions.

そのため、エクステンションの規定はこの仕様の設計に当たっての最も重要な部分のひとつです。リソースのすべてのエレメントは、下位エレメントとしてエクステンションを持つことができ、リソースの標準の定義には含まれていない追加の情報を表現することができます。アプリケーションは、エクステンションが存在するという理由だけではリソースを拒絶することはできませんが、エクステンションの特定のコンテンツの条件によっては拒絶することがありえます。

Note that, unlike in many other specifications, there can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core simplicity for everyone.

注意すべきことは、他の標準仕様とは異なり、エクステンションの使用に関して、どんなアプリケーション、プロジェクトあるいは派生標準においても、またエクステンションを使用したり定義したりする組織や行政機関のいかんに関わらず、一切の悪印象は存在しないということです。エクステンションを積極的に利用することによって FHIR 仕様は、すべての人にとっての共通部分の簡潔性を保っているのです。

In order to make the use of extensions safe and manageable, there is a strict governance applied to the definition and use of extensions. Though any implementer is allowed to define and use extensions, there is a set of requirements that must be met as part of their use and definition.

エクステンションの利用を安全かつ管理可能なものにするために、エクステンションの定義と使用については厳格な統制が適応されます。どんな実装者もエクステンションを定義し使用することが許されていますが、その使用と定義にあたっては、必ず適合しなければいけない一連の要求事項が付いて回ります。

1.12.6.0.1 Extension Element 「エクステンション・エレメント」

Every element in a resource or data type includes an optional "extension" child element that may be present any number of times. The extension elements appear as the first set of children, prior to any other defined child elements. This is the content model of the extension as it appears in each resource:

リソースやデータタイプのすべてのエレメントは、下位エレメント "extension" を必要に応じて任意の数だけ持つことができます。エクステンション・エレメントは、ほかの定義に含まれるすべての下位エレメントに先立って、最初の下位エレメントとして現れます。以下はそれぞれのリソースに現れるエクステンションのコンテンツモデルです:

<[name] xmlns="http://hl7.org/fhir" url="identifies the meaning of the extension (uri)">

doco

<!-- from Element: extension --> <value[x]><!-- 0..1 * Value of extension --></value[x]> </[name]>

Notes: 注意:

  • The url is a mandatory attribute / property and identifies an extension definition in a resource profile that defines the content and meaning of the extension.
    • url は必須のアトリビュート/プロパティで、エクステンションのコンテンツや意味を定義するリソースプロファイル中のリソース定義を指定します。
  • The actual content of the extension consists of either a single value in the value[x] element, or it can contain additional extensions, each with their own defining url and content
    • エクステンションの実際のコンテンツは、value[x] エレメントひとつの値であるほかに、それ自身の定義の URL とコンテンツをそれぞれもつ複数のエクステンションを含むこともできます。
  • An extension SHALL have either a value (i.e. a value[x] element) or child extensions. The value[x] element SHALL have content and/or an id attribute that is the target of a reference from the Narrative
    • エクステンションは値(つまり value[x] エレメント)か下位エレメントを持つ必要があります。value[x] エレメントはコンテンツを持つか Narrative からのリファレンスのリンク先となる id アトリビュートを持つか、その両方である必要があります
  • When an extension is the target of an internal reference, the reference is always to the value of the extension. An extension is only allowed to be the target of a reference when it has no value[x]
    • エクステンションが内部リファレンスのリンク先になる時には、リファレンスは常にエクステンションの値に対して行われます。エクステンション自身がリファレンスのリンク先になることが許されるのは value[x] エレメントがひとつもない時のみです。
  • For most extensions, it must be safe for an application processing the content of the resource to ignore an extension. Specifically, this should be understood to mean that the content of the extension does not alter the meaning of the element that contains it. See below for further discussion
    • ほとんどのエクステンションについては、リソースのコンテンツを処理するアプリケーションがエクステンションを無視しても問題ありません。具体的には、このことは、エクステンションのコンテンツは、そのエクステンションが含まれるエレメントの意味を変更しないと理解すべきです。後述の詳細な議論を参照してください。

The value[x] element has the [x] replaced with the title-cased name of one of the defined types and the contents as defined for that type. The value type may be one of the following:

value[x] エレメントの x には、表題形式での大文字小文字の組み合わせの FHIR で定義されたデータタイプ名が入り、エレメントのコンテンツは、そのデータタイプのコンテンツとなります。x に入るデータタイプは以下の通りです:

An extension would contain other extensions instead of a value where the original definition of the extension defines complex content (i.e. the extension has multiple parts rather than a simple data type). If the value of the extension itself needs extending, those extensions go in the content of the value[x] element.

エクステンションが複雑なコンテンツ(エクステンションがひとつの単純なデータタイプでなく、複数の部分で構成される)として定義される場合には、エクステンションには、データ値の代わりに別のエクステンションを格納することになります。エクステンションのデータ値にエクテンションを適用する時には value[x] エレメントのコンテンツの中にエクステンションが入ります。

Here is an example of a name with a simple extension for a tribal name:

名前のデータに対して、部族における伝統名用の単純なエクステンションを定義する例:

<name> <extension url="http://hl7.org/fhir/Profileiso-21090#name-use" > <valueCode value="I" /> </extension> <text value="Chief Red Cloud"/> </name>

or in JSON:

同じものを JSON 表記したもの:

"name" : { "extension: [ { "url" : "http://hl7.org/fhir/Profileiso-21090#name-use", "valueCode" : "I" }] "text": "Chief Red Cloud"/> }

The proper use of the URL value is discussed below.

URL 値の正しい使い方については後述します。

Extending a patient with an opt-in status for a clinical trial, with 3 fields: status, date of recording, and person who recorded:

患者のデータに、治験への参加状態を表す、参加状態、記録日時、記録者の 3 つのフィールドを持つエクステンションを施す:

<Patient> <extension url="http://acme.org/fhir/Profile/main#trial-status" > <extension url="http://acme.org/fhir/Profile/main#trial-status-code" > <valueCode value="unsure" /> </extension> <extension url="http://acme.org/fhir/Profile/main#trial-status-date" > <valueDate value="2009-03-14" /> </extension> <extension url="http://acme.org/fhir/Profile/main#trial-status-who" > <valueResource> <reference value="Practitioner/example" /> </valueResource> </extension> </extension> <!-- other data for patient --> </Patient>

or in JSON:

同じデータを JSON 表記で:

{ "resource-type" : "Patient", "extension" : [ { "url" : "http://acme.org/fhir/Profile/main#trial-status", "extension" : [ { "url" : "http://acme.org/fhir/Profile/main#trial-status-code", "valueCode" : "unsure" }, { "url" : "http://acme.org/fhir/Profile/main#trial-status-date", "valueDate" : "2009-03-14" }, { "url" : "http://acme.org/fhir/Profile/main#trial-status-who", "valueResource" : { "reference" : "Practitioner/example" } } ] } ], ... other data for patient... }

1.12.6.0.2 Modifier Extensions モディファイア・エクステンション

There are some cases where the information provided in extensions modifies the meaning of the element that contains it. Typically, this means information that qualifies or negates the primary meaning of the element that contains it. Some examples:

エクステンションで提供される情報が、元のエレメントの意味を変更してしまう場合があります。よくあるのは、エクステンションの情報が、元のエレメントの本来の意味を制限したり否定する場合です。例えば:

  • Adding a certainty extension to an Adverse Reaction that includes a value "highly doubtful"
    • 可能な値として「非常に疑わしい」を含む、副作用を表すデータに対する情報確度についてのエクステンションの追加
  • Asserting an additional subsumption relationship on a concept in a value set
    • 値の集合に含まれる概念に、追加で包含的な関係を追加する場合
  • An anti-prescription: recording an instruction not to take a medication
    • 逆処方:ある薬剤を服用しない指示を記録する場合
  • Using the Condition resource to record an assertion that a patient doesn't have a particular diagnosis
    • Condition リソースを、患者が特定の診断名をもっていないことを記録するために使用
  • Asserting that a performer was not actually involved in a Procedure
    • Procedure にある行為者が実際には関わっていないことを示す場合
  • Recording that a Supply was not provided (i.e. refusal to fill)
    • Suppy についてそれが提供されていない(すなわち、調剤が拒否された)ことを記録する場合

Implementers should avoid the use of modifier extensions where possible. Any use should be carefully considered against its possible downstream consequences. However, implementers are often forced into these situations by the business arrangements around the use of resources, so this specification creates a framework for handling these.

実装者は可能な限りモディファイア・エクステンションの使用を避けるべきです。使用するときは必ず注意深くシステム下流における影響について検討するべきです。しかしながら、実装者はリソースの仕様に際してしばしば上記のような状況に直面するので、FHIR 仕様ではそのような状況に対処するフレームワークが用意されています。

If modifier extensions are present, an application cannot safely process the resource unless it knows what the extension means for its own use of the data. This specification allows for such modifier elements to be included at the base of a resource or in any elements that do not have a data type (e.g. the elements that correspond to classes in the resource UML diagrams), using an element named "modifierExtension", which has same content as the extension element documented above.

モディファイア・エクステンションが存在する時には、アプリケーションは、自分自身のデータ処理におけるエクステンションの意味が分からない場合には、そのリソースを安全に処理できないことになります。FHIR 仕様では、リソースの最下層や、データタイプを持たないすべてのエレメント(例えば、リソースの UML 図の各クラスに対応するエレメント)にも、"modifierExtension" という名前のエレメントを使うことで、上記の extension エレメントによるコンテンツと同様のコンテンツを持つモディファイア・エクステンションを含めることができるようになっています。

Implementations processing the data in resources SHALL understand the impact of the extension when using the data. If an application processing the content of a resource does not recognise a modifierExtension and the data from the element it extends is processed by the application, the application SHALL either refuse to process the data or carry a warning concerning the data along with any action or output that results from processing the data to inform users that it has not fully understood the source information.

リソースのデータを処理する実装システムは、データを使用する際にエクステンションの影響を理解していなければなりません。リソースのコンテンツを処理するアプリケーションが modifierExtention や、それがエクステンションするエレメントからのデータを認識できない場合は、アプリケーションはそのデータの処理を拒否するか、すべての動作にデータに関する警告を付与するか、データの処理結果を出力する時に元の情報を完全には理解していないことをユーザに知らせるかのいずれかをおこなわなければなりません

Implementations are not required to "support" the extension in any meaningful way - they may achieve this understanding by rejecting instances that contain this extension. Alternatively, implementations may be able to be sure, due to their implementation environment, that such extensions will never occur. However applications SHOULD always check for extensions irrespective of this.

実装システムは、エクステンションの「サポート」を意味のあるやり方で行う必要はありません。単純にエクステンションを含むデータ・インスタンスを拒否することでも、FHIR 仕様で想定される「サポート」を達成したことになります。あるいは、実装システムは、その実装環境ではそのようなエクテンションが決して起こらないよう保証することで「サポート」を実現することができます。しかしながら、アプリケーションは上記に関わらず、エクステンションを常に検査しなければなりません

Note that processing the data of a resource typically means copying or filtering data out of a resource for use in another context (display to a human, decision support, exchange in another format where not all information is included, or storing it for this kind of use). Servers and background processes that simply move whole resources around unchanged are not "processing the data of the resource", and therefore these applications are not required to check for unknown extensions.

リソースのデータの処理は、通常、リソースから取り出したデータを、他のコンテキスト(人間に対して表示する、診療支援、抜粋されたデータを別のフォーマットで交換する、コレラの目的のためにデータを保存する)ために、コピーしたりフィルターを掛けたりすることであるということに注意してください。全てのリソースを変更しないまま動かすだけのサーバやバックグラウンド処理は「リソースのデータを処理」しているわけではなく、これらのアプリケーションでは未知のエクステンションを検査する必要はありません。

1.12.6.0.2.1 Summary: Conformance Rules for Modifier Extensions まとめ:モディファイア・エクステンションに対するコンフォーマンス・ルール

  • A modifierExtension SHALL only modify the element which it contains and/or its children
    • modifierExtension は、それ自身、またはその下位要素が含むエレメントのみをモディファイするのでなければならない
  • It SHALL always be safe to show the narrative to humans; any modifier extension SHALL be represented in the narrative.
    • ナラティブは常に人間が読んで安全でなければならない。モディファイア・エクステンションの内容はナラティブに表現されなければならない
  • Applications SHALL always check for modifierExtensions when processing the data from any element that may carry one. If a modifierExtension they do not understand is found, the application SHALL either refuse to process the resource or affected element, or provide an appropriate warning to its users
    • アプリケーションは、modifierExtension を含む可能性のあるどんなエレメントからのデータを処理するときでも modifierExtension の検査をしなければならない。自分の理解できない modifierElement を発見した時には、アプリケーションは、処理を拒否するか、ユーザに適切な警告を示さなければならない

1.12.6.0.2.2 Example 例

Example: Because of a lack of clinical consensus, there's no element on Procedure for any expression of certainty around the expression of the Allergy/Intolerance. Some systems mark their entries as "unlikely" or "probable". Applications are allowed to extend a resource with data like this:

例:医療者によるコンセンサスが成立していないので、Procedure リソースには Allergy/Intolerance についての情報の確実性に関するエレメントは存在しません。システムによっては、情報エントリを "unlikely" と示したり、"probable" と示したりします。アプリケーションは次のデータを使ってリソースをエクステンションすることができます:

<AllergyIntolerance> <modifierExtension> <url value="http://example.org/fhir/extensions#certainty" /> <valueCoding> <system value="http://example.org/codes/certainty"/> <code value="2"/> <display value="Unlikely"/> </valueCoding> </modifierExtension> <!-- .. text etc... --> </AllergyIntolerance>

When an application understands this extension, it means that some developer has provided appropriate instructions for what to do with the data contained in it. Note that there is no obligation that the application do anything at all with the data - it can ignore it if that is safe in its own context, though this would not usually be the case.

アプリケーションがこのエクテンションを理解できるというのは、このエクステンションが含まれるデータの取り扱いに関する適切な指示を提供した開発者がいるということです。アプリケーションはこのデータに何かをしなければならないという義務は全くないということに注意してください。アプリケーションは、その処理のコンテキストで安全であるならば、エクステンションを全く無視することも可能です。もっとも普通はそのようなことはありませんが。

When an application that doesn't understand this extension tries to process this resource, it is required to either refuse to process the resource (or containing element), or provide an appropriate warning to its users. Either of these courses of action is potentially difficult. One option is to download the profile that defines the extension (from the given URL), find the name of the extension, and then use the name to display the extension to the user. An error message could look something like this:

このエクステンションを理解できないアプリケーションがこのリソースを処理しようとする時は、このリソース(あるいはエクステンションを含むエレメント)を処理することを拒否するか、ユーザに適切な警告を示す必要があります。このいずれもが実際に実行するのは簡単ではないかもしれません。ひとつのやり方としては、エクステンションを定義しているプロファイルを(示された URL から)ダウンロードして、エクステンションの名前を見つけ、その名前をエクステンションをユーザに示す時に使います。エラーメッセージは例えば下図のようになります:

Note that the narrative of the resource SHALL contain this qualifying information, so it is safe to show this to the user as an expression of the resource's content. A warning dialog box could be extended to offer the user the choice to see the original narrative.

リソースのナラティブは、この意味を限定する情報を含まなければならないので、リソースのコンテンツの表現にこのナラティブを使うのは安全だということに注意してください。警告のダイアログボックスにさらに機能を追加して、オリジナルのナラティブを見るかどうかの選択肢を追加することもできます。

Here is an example showing a statement that a particular surgeon did not perform an operation:

特定の外科医が手術を行わなかったことを示す例です:

<Procedure xmlns="http://hl7.org/fhir"> <text> <status value="generated"/> <div xmlns="http://www.w3.org/1999/xhtml">Routine appendicectomy for Fred Smith performed By Susan Taylor. Note: This operation was not performed by Dr Lakin</div> </text> <!-- ...data... --> <performer> <modifierExtension> <url value="http://example.org/fhir/extensions#didNotPerform"/> <valueBoolean value="true"/> </modifierExtension> <person> <reference value="Practitioner/example"/> <display value="Dr Lakin"/> </person> </performer> <!-- ...data... --> </Procedure>

In this case, if an application is not reading the performers of the operation at all, the fact that one of the performers has a modifierExtension is irrelevant and the application is free to ignore it.

この場合は、アプリケーションが手術の実施者を全く読んでいなかった場合には、実施者のひとりが modifierExtension を持っている事実は、処理対象に含まれないので無視してよいです。

1.12.6.0.2.3 Special Case: Missing data 特別の場合:データの欠落

In some cases, implementers may find that they do not have appropriate data for an element with minimum cardinality = 1. In this case, the element must be present, but unless the resource or a profile on it has made the actual value of the primitive data type mandatory, it is possible to provide an extension that explains why the primitive value is not present:

システムを実装する時に、ある最小のカーディナリティが 1 のエレメントに対応するデータがない場合があります。このような場合は、エレメントは存在しなければなりませんが、リソースやそのリソースのプロファイルでプリミティブデータタイプの実際の値が必須になっていない限りにおいて、プリミティブデータタイプの値がなぜ存在しないかを説明するエクステンションを置くことができます。

<uri> <extension url="http://hl7.org/fhir/Profile/general-extensions#data-absent-reason"> <valueCode="unknown"/> </extension> </uri>

In this example, instead of a value, a data missing code is provided. Note that it is not required that this particular extension be used. This extension is not a modifier extension, because the primitive data type has no value.

この例では、データの値の代わりに、データの欠落理由を示すコードが置かれています。この特定のエクステンションを使う必要はないことに注意してください。プリミティブ・データタイプが値を持たないので、このエクステンションはモディファイア・エクステンションではありません

It is not valid to create a fictional piece of data for the primitive value, and then to add an extension indicating that the data has been constructed to meet the data rules. This would be both a bad idea, and also a modifier extension, which is not allowed on data types.

プリミティブ・データタイプの値に仮の値を置くことや、そのためにデータの構成規則に合わせるためにデータが作られたことを示すエクステンションを追加することは正当ではありません。これは、感心できない考えであるとともに、データタイプについて許されていないモディファイア・エクステンションになります。

1.12.6.0.3 Exchanging Extensions エクステンションの流通

Extensions are a way of allowing local requirements to be reflected in a resource using a common information based approach so that all systems can confidently process them using the same tools. However, when it comes to processing the information, applications will be constrained in their ability to handle extensions by the degree to which they are informed about them.

エクステンションは、ローカルな要求事項を共有の情報を元にした手法を使ってリソースに反映し、すべてのシステムが同じツールを使ってそのようなリソースを確信を持って処理できるようにしたものです。しかしながら、情報を処理する段階では、アプリケーションは、エクステンションについてどの程度の情報を与えられているかによって、エクステンションを処理する能力が制約を受けます。

While the structured definition of an extension should always be available (see below for details), the mere availability of a definition does not automatically mean that applications know how to handle them correctly - generally, human decisions are required to made around how the data extensions contain should be handled, along with the implicit obligations that around the information.

エクステンションの構造的定義は常に入手可能である(詳細については後述)一方で、定義が入手可能であることは必ずしも自動的にアプリケーションがエクステンションを正確に取り扱いできることを意味しません。一般的に、リソースに含まれるデータをどのように取り扱うべきかについては、その情報の周囲の暗黙的な責任にそって人間の判断が必要です。

For this reason, local requirements that manifest as extensions are an obstacle to integration. The more the requirements are shared (i.e. regional or national scale), the less impact they will have. The consistent representation, definition and registration of extensions that this specification defines cannot resolve that problem - it only provides a framework within which such local variations can be handled more easily.

この理由から、エクステンションとして表されたローカルの要求事項は、システム統合の障害となります。この影響は要求事項が広く共有(すなわち地域または国単位で)されていればされているほど、この影響は小さくなります。FHIR 仕様で定義されている、エクステンションの一環した表現、定義および登録システムでは、この問題は解決できません。FHIR 仕様は、このようなローカルの差異をより簡単に取り扱うためのフレームワークを提供しているだけです。

When it comes to deploying applications that support local requirements, situations will very likely arise where different applications exchanging information with each other are supporting different sets of extensions. This specification makes some basic rules that are intended to make management of these situations easier, but they cannot resolve them.

ローカルの要求事項をサポートしたアプリケーションを配布する時には、お互いに情報交換する複数のアプリケーションが、違う組み合わせのエクステンションをサポートしている状況は非常によく起こります。FHIR 仕様では、このような状況をより簡単に管理するための基本ルールをいくつか決めてありますが、そのようなルールではこのような状況そのものを解決することはできません。

  • When exchanging resources, systems SHOULD retain unknown extensions when they are capable of doing so (just as they SHOULD retain core elements when they are capable of doing so)
    • リソースを交換する時には、システムは可能であるならば未知のリソースもそのまま保持しなければならない
  • If a system modifies a resource it SHOULD remove any extensions that it does not understand from the modified element and its descendants, because it cannot know whether the modifications it has made might invalidate the value of the unknown extension
    • システムがリソースをモディファイした場合には、モディファイされたエレメントやその下位要素について、そのシステムが理解できないエクステンションをすべて削除しなければならない。それはシステムが行ったモディフィケーションが未知のエクステンションの値を無効にしたかどうかはんだんできないからです。
  • Systems that drop existing elements are considered to be "processing the resource"
    • 存在するエレメントの取捨選択をするシステムは「リソースを処理している」と見なされます
  • A system SHALL not modify a resource or element that contains "modifier" extensions it doesn't understand
    • システムは、自分が理解しない "modifier" エクステンションを含むリソースやエレメントを変更してはなりません
  • Applications SHOULD ignore extensions that they do not recognise if they are not "modifier" extensions
    • アプリケーションは、自分の認識しないモディファイアでないエクステンションは、無視しなければならない
  • Systems that do not accept unknown extensions SHALL declare so in their Conformance resource instances
    • 未知のエクステンションを受け付けないシステムは、その旨コンフォーマンスリソースの実体にそう宣言しなければならない

The degree to which a system can retain unknown extensions is a function of the type of system it is: a general purpose FHIR server, or a middleware engine would be expected to retain all extensions, while an application that manages patient registration through a user interface can only retain extensions to the degree that the information in them is part of the set managed by the user. Other applications will fall somewhere between these two extremes.

あるシステムが未知のエクステンションをどの程度保持できるかは、システムのタイプによります。つまり、汎用 FHIR サーバやミドルウェアエンジンはすべてのエクステンションを保持することが求められますし、ユーザインタフェースを通じて患者台帳を管理するアプリケーションでは、ユーザが管理している情報セットに含まれる情報を持っているエクステンションに限って保持します。他のアプリケーションは、この両極端のどこかに位置します。

1.12.6.0.3.1 Summary: Handling extensions まとめ:エクステンションの取り扱い

Use the following rules as a guideline for handling resources:

リソースの取り扱いについては以下のガイドラインに従ってください:

  • When writing extensions, make sure they are defined and published
    • エクステンションを記述する時には、事前に定義ずみで公開されているか確認すること
  • When reading, navigating through or searching on elements that can have modifier extensions, check whether there are any
    • モディファイア・エクステンションを含む可能性があるエレメントを、読み込んだり構造を辿ったり検索を行う時には、モディファイア・エクステンションが存在しないか確認すること
  • When reading elements, ignore other extensions, unless you want to read a particular extension
    • エレメントを読み込む時には、特定のエクステンションを読み込むつもりでなければ、その他のエクステンションは無視すること。
  • Retain extensions whenever you can
    • 可能な限り、エクステンションをそのまま保持すること

1.12.6.0.4 Defining Extensions エクステンションの定義

Extensions may be defined by any project or jurisdiction, up to and including international standards organizations such as HL7 itself. Extensions are defined and published as part of a Resource Profile. Extensions are always defined against some particular context - the type of element that they may be used to extend. The following are possible contexts for an extension:

エクステンションは、プロジェクト単位から、行政単位、大きくは HL7 自身のような国際標準化団体まで、リソース・プロファイルの一部として自由に定義して公開することができます。エクステンションは常に特定のコンテキスト、つまりエクステンションの対象となるある種類のエレメントに対して定義されます。以下にエクステンションのコンテキストとして考えられるものを挙げます:

In addition, an extension definition might apply additional constraints with regards to particular element values of the target that make its use appropriate. Extensions SHALL only be used on a target for which they are defined.

以上に加えて、エクステンションの定義では、エクステンションを適切に使うために、対象のエレメントの値に特別の制限を課していることがあります。エクステンションは定義した通りの対象だけに用いなければなりません

Each extension is defined using the following fields:

どのエクステンションも以下のフィールドで定義されます:

Notes:

注意点

  • Mappings are not required to be computable (i.e. executable logic). Mappings to other specifications can also be provided.
    • マッピングは、計算機処理可能(実行可能な論理式)である必要はありません。他の仕様に対するマッピングを提供することも可能です。

Whenever resources containing extensions are exchanged, the definitions of the extensions SHALL be available to all the parties that share the resources. Each extension contains a URI that references the source of the definitions as a Resource Profile. The source SHOULD be a literal reference, such as an http: url that refers to an end-point that responds with the contents of the definitions - preferably a FHIR RESTful server supporting the Resources Profile, or a logical reference (e.g. using a urn:) - for instance, to a national published standard.

エクステンションを含んでいるリソースがやり取りされるときは常に、リソースを共有するすべての当事者にエクステンションの定義が参照可能になっていなければなりません。それぞれのエクステンションは、リソース・プロファイルの形でのリソース定義のソースを示す URL を保持しています。定義のソースは http:URL 形式で定義のコンテンツに対応する最終アドレスのようなリテラル形式でのリファレンスでで示されなければなりません。リソース・プロファイルをサポートしている FHIR の RESTful サーバか(例えば urn: を使う)論理的リファレンスが望ましく、例えば国で公開している標準規格のインスタンスを指します。

1.12.6.0.5 Control of extensions エクステンションの制御

As well as defining the base element structure for resources, HL7 also publishes extensions. HL7 publishes data definitions as extensions rather than as part of the base resource structure in order to keep the base resource structure simple and concise, and to allow implementers not to engage with an entire world's worth of functionality up front. Note that HL7 does not define "modifier" extensions - if HL7 publishes an element that modifies the meaning of other elements, it will be part of the resource content itself, since everyone has to understand the extension anyway.

リソースの基本エレメント構造を定義するとともに、HL7 はエクステンションも公開します。基本リソース構造を単純で簡潔に保ち、実装者が全世界に対応するほどの機能を正面切って対応しなくて済むように、Hl7 はデータ定義を基本リソース構造の一部としてではなくエクステンションとして公開します。HL7 は「モディファイア」エクステンションを定義しないことに注意してください。HL7 が他のエレメントの意味を変更するエレメントを公開するとすれば、結局すべての人がそのエクステンションを理解する必要があるので、そのようなエレメントはリソースのコンテンツそのものとして公開します。

Before extensions can be used in instances, they SHALL be published. HL7 maintains two extension registries and users are encouraged to register their extensions there. But this is not required. All that is required is that the extension is published in a context that is available for users of the extension. So, for example, if a particular extension is used within a single institution, the definition of the extension can be placed on the institution's intranet. However since, by their nature, resources tend to travel well, it's always better to use the HL7 or other publicly accessible extension registries.

エクステンションをインスタンスとして利用可能になるためには、その前に公開されなければなりません。HL7 は 2 つのエクステンションの登録システムを運営していますので、ユーザはそこに自分のエクステンションを登録することが推奨されています。しかしながら、それは義務ではありません。したがって、特定のエクステンションが単一の施設の中で用いられているならば、そのエクステンションは、その施設のイントラネットに保持しておくことが可能です。しかしながら、リソースは元々の性質として、広く流通するものなので、HL7 やその他の広くアクセスできるエクステンション登録システムを利用するのが常に望ましいことです。

HL7 provides two extension registries. The first is for HL7 approved extensions. These have been approved by an appropriate part of the HL7 community following a review process, and have formal standing. The other registry is provided as a service to the community, and anyone can register an extension on it.

HL7 は 2 つのエクステンション登録システムを提供します。ひとつは HL7 が承認したエクステンション用です。これらのエクステンションは、検証プロセスを経て HL7 のコミュニティの適切な一分野によって承認されたもので、公式な位置づけを持っています。もうひとつの登録システムはコミュニティへの公開サービスで、誰もがそこにエクステンションを登録できます。

HL7 profiles defining extensions may be balloted alongside resource content as part of the FHIR specification or may be published as part of separate specifications. When HL7 publishes extensions as part of the FHIR specification, these extensions SHALL be used for this data whenever the data is represented in instances. Applications SHOULD use other HL7-defined extensions published to represent equivalent data in the interest of maximum interoperability. If referencing a profile that defines extensions, implementations declaring conformance with the profile SHALL use the profile-defined and imported extensions when conveying equivalent data elements.

HL7 によるエクステンションを定義するプロファイルは、FHIR 仕様に含まれるリソース・コンテンツとともにバロットされたり、別の仕様として公開される可能性があります。HL7 が FHIR 仕様の一部としてエクステンションを公開したときは、該当のデータがインスタンスに表現される場合には、これらのエクステンションを必ず使用しなければなりません。それ以外の HL7 定義のエクステンションについても、アプリケーションは、該当するデータを表現する時には相互運用性を最大限に高める目的で使用しなればなりません。エクステンションを定義するプロファイルをリファレンスする時には、そのプロファイルにコンフォーマンスを宣言する実装者は、該当するデータエレメントを伝達する時にはそのプロファイルで定義されている、またはインポートされているエクステンションを使用しなければなりません

To minimise complexity for implementers, HL7 will not elevate content defined in an HL7-approved extension to be content defined in a core resource in future versions of the resource once that resource is normative.

実装者にとって、できるだけ複雑でないようにするために、HL7 は、いったんリソースが公式になった後では、 HL7 公認のエクステンションを、リソースの将来のバージョンで共通定義に取り込むことはありません。

In some cases, an HL7 work group or other body may publish a profile whose sole purpose is to define extensions expected to be needed by implementers in a particular context. E.g. extensions needed to map a particular set of v2 segments or a v3 model.

時には、HL7 のワークグループやその他の団体が、特定のコンテキストの実装者のためだけのエクステンションを定義する目的でプロファイルを公開することはあり得ます。例えば、特定の v2 セグメントや v3 モデルの集合をマッピングするために必要なエクステンションなどです。

Implementations are encouraged to share their extensions with HL7 and register them with the HL7 extension registry. The domain committees will work to elevate the extensions into HL7 published extensions or, if adopted by a broad enough portion of the implementer community, the into the base resource structure itself.

実装者は自分の作ったエクステンションを HL7 と共有し、HL7 のエクステンション登録システムに登録することが推奨されています。各ドメインの委員会は、そういったエクステンションを HL7 が公開するエクステンションや、実装者コミュニティで十二分に広く受け入れられた場合は、基本のリソース構造そのものに取り入れるよう働きかけます。

To avoid interoperability issues, extensions SHALL NOT change their definition once published. (Small clarifications to descriptions that do not affect interoperability are permitted.) Rather than modifying an existing extension, a new extension should be introduced. Revisions to an extension may extend the set of contexts in which the extension apply but may not remove or constrain any context previously listed

相互運用性の問題になることを防ぐために、エクステンションは一旦公開された場合にはその定義を変えてはいけません。(相互運用性に影響しない、小規模な説明記述の明確化は許されています。)既存のエクステンションを変更するのではなく、新しいエクステンションを導入しなければなりません。エクステンションの手直しでは、そのエクステンションの適用コンテキストの拡大は許されていますが、すでに列挙されているコンテキストを削除したり狭めたりすることはできません。

© HL7.org 2011 - 2014. FHIR DSTU (v0.80-2279) generated on Sun, Feb 2, 2014 15:38+1100 を元に翻訳しました。