FHIR サービスにプロファイルを格納する

HL7 Fast Healthcare Interoperability Resources (FHIR®) は、医療データを格納および交換するための標準的で相互運用可能な方法を定義します。 基本 FHIR 仕様内でも、FHIR が使用されているコンテキストに基づいて他のルールや拡張機能を定義すると役立ちます。 このようなコンテキスト固有の FHIR 使用法には、仕様の追加レイヤーとして FHIR プロファイルが使用されます。 FHIR プロファイル を使用すると、制約と拡張機能を使用してリソース定義を絞り込んでカスタマイズできます。

Azure Health Data Services の FHIR サービス (ここでは FHIR サービスと呼ばれます) を使用すると、プロファイルに対してリソースを検証して、リソースがプロファイルに準拠しているかどうかを確認できます。 この記事では、FHIR プロファイルの基本とその格納方法について説明します。 この記事以外の FHIR プロファイルの詳細については、「 HL7.org」を参照してください。

FHIR プロファイル: 基本

プロファイルは、リソースとして表されるリソースに追加のコンテキストを StructureDefinition 設定します。 は StructureDefinition 、リソースのコンテンツまたはデータ型に関する一連のルールを定義します。たとえば、リソースに含まれる要素や、これらの要素が受け取ることができる値などです。

プロファイルで基本リソースを変更する方法の例を次に示します。

  • カーディナリティを制限する: たとえば、要素の最大カーディナリティを 0 に設定できます。つまり、要素は特定のコンテキストで除外されます。
  • 要素の内容を 1 つの固定値に制限します。
  • リソースに必要な拡張機能を定義します。

StructureDefinitionは正規 URL によって識別されます。http://hl7.org/fhir/StructureDefinition/{profile}

次に例を示します。

  • http://hl7.org/fhir/StructureDefinition/patient-birthPlace は、患者の出生地を表す登録済み住所の情報を必要とする基本プロファイルです。
  • http://hl7.org/fhir/StructureDefinition/bmi は、肥満度指数 (BMI) の観測値を表す方法を定義するもう 1 つの基本プロファイルです。
  • http://hl7.org/fhir/us/core/StructureDefinition/us-core-allergyintolerance は、患者に関連付けられているリソースの AllergyIntolerance 最小期待値を設定する US Core プロファイルであり、拡張機能や値セットなどの必須フィールドを識別します。

リソースがプロファイルに準拠している場合、そのプロファイルはリソースの 要素内で profile 指定されます。 次に、プロファイルを含 http://hl7.org/fhir/us/carin-bb/StructureDefinition/C4BB-Patient む "Patient" リソースの始まりの例を示します。

{
  "resourceType" : "Patient",
  "id" : "ExamplePatient1",
  "meta" : {
    "lastUpdated" : "2020-10-30T09:48:01.8512764-04:00",
    "source" : "Organization/PayerOrganizationExample1",
    "profile" : [
      "http://hl7.org/fhir/us/carin-bb/StructureDefinition/C4BB-Patient"
    ]
  },

注意

プロファイルは基本リソースの上に構築する必要があり、基本リソースと競合することはできません。 たとえば、要素のカーディナリティが 1..1 の場合、プロファイルで省略可能にすることはできません。

プロファイルは、さまざまな実装ガイド (NSG) でも指定されます。 一般的な NSG をいくつか以下に示します。 詳細については、特定の IG サイトを参照して、IG とその中で定義されているプロファイルの詳細を確認してください。

注意

FHIR サービスでは、既定では実装ガイドのプロファイルは格納されません。 FHIR サービスに読み込む必要があります。

プロファイルへのアクセスとプロファイルの格納

プロファイルの格納

FHIR サービスにプロファイルを格納するには、要求の本文にプロファイルコンテンツを含む を指定できますPUTStructureDefinition。 標準 PUT 更新または条件付き更新は、どちらも FHIR サービスにプロファイルを格納するための優れた方法です。 どちらを使用すればよいかわからない場合は、条件付き更新プログラムを使用します。

標準 PUT: PUT http://<your FHIR service base URL>/StructureDefinition/profile-id

or

条件付き更新: PUT http://<your FHIR service base URL>/StructureDefinition?url=http://sample-profile-url

{ 
"resourceType" : "StructureDefinition",
"id" : "profile-id",
"url": "http://sample-profile-url"
	…
}

たとえば、プロファイルを格納 us-core-allergyintolerance する場合は、US Core アレルギー不耐性プロファイルを本文で使用して、次の rest コマンドを使用します。 この例には、このプロファイルのスニペットが含まれています。

PUT https://<your FHIR service base URL>/StructureDefinition?url=http://hl7.org/fhir/us/core/StructureDefinition/us-core-allergyintolerance
{
    "resourceType" : "StructureDefinition",
    "id" : "us-core-allergyintolerance",
    "text" : {
        "status" : "extensions"
    },
    "url" : "http://hl7.org/fhir/us/core/StructureDefinition/us-core-allergyintolerance",
    "version" : "3.1.1",
    "name" : "USCoreAllergyIntolerance",
    "title" : "US  Core AllergyIntolerance Profile",
    "status" : "active",
    "experimental" : false,
    "date" : "2020-06-29",
        "publisher" : "HL7 US Realm Steering Committee",
    "contact" : [
    {
      "telecom" : [
        {
          "system" : "url",
          "value" : "http://www.healthit.gov"
        }
      ]
    }
  ],
    "description" : "Defines constraints and extensions on the AllergyIntolerance resource for the minimal set of data to query and retrieve allergy information.",

その他の例については、US Core プロファイルの格納について説明するオープンソース サイトの US Core サンプル REST ファイル を参照してください。 最新のプロファイルを取得するには、HL7 から直接プロファイルを取得し、それらを定義する実装ガイドを入手する必要があります。

プロファイルの表示

要求 GET http://<your FHIR service base URL>/StructureDefinition?url={canonicalUrl}を使用してGET既存のカスタム プロファイルにアクセスできます。ここで{canonicalUrl}、 はプロファイルの正規 URL です。

たとえば、US Core Goal リソース プロファイルを表示する場合は、次のようにします。

GET https://<your FHIR service base URL>/StructureDefinition?url=http://hl7.org/fhir/us/core/StructureDefinition/us-core-goal

これにより、US Core Goal プロファイルの StructureDefinition リソースが返されます。これは次のように始まります。

{
  "resourceType" : "StructureDefinition",
  "id" : "us-core-goal",
  "url" : "http://hl7.org/fhir/us/core/StructureDefinition/us-core-goal",
  "version" : "3.1.1",
  "name" : "USCoreGoalProfile",
  "title" : "US Core Goal Profile",
  "status" : "active",
  "experimental" : false,
  "date" : "2020-07-21",
  "publisher" : "HL7 US Realm Steering Committee",
  "contact" : [
    {
      "telecom" : [
        {
          "system" : "url",
          "value" : "http://www.healthit.gov"
        }
      ]
    }
  ],
  "description" : "Defines constraints and extensions on the Goal resource for the minimal set of data to query and retrieve a patient's goal(s).",

}

Note

FHIR サービスに読み込んだプロファイルのみが表示されます。

FHIR サービスは基本プロファイルのインスタンスを返 StructureDefinition しませんが、HL7 Web サイトで次のような簡単に見つけることができます。

  • http://hl7.org/fhir/Observation.profile.json.html
  • http://hl7.org/fhir/Patient.profile.json.html

機能ステートメントのプロファイル

には、 Capability Statement FHIR サービスで考えられるすべての動作が一覧表示されます。 FHIR サービスは、格納されているプロファイルの詳細を次の形式で capability ステートメントに更新します。

  • CapabilityStatement.rest.resource.profile
  • CapabilityStatement.rest.resource.supportedProfile

たとえば、US Core Patient プロファイルの POST を行う場合は、次のように始まります。

{
  "resourceType": "StructureDefinition",
  "id": "us-core-patient",
  "url": "http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient",
  "version": "3.1.1",
  "name": "USCorePatientProfile",
  "title": "US Core Patient Profile",
  "status": "active",
  "experimental": false,
  "date": "2020-06-27",
  "publisher": "HL7 US Realm Steering Committee",

metadataGET 要求を送信します。

GET http://<your FHIR service base URL>/metadata

FHIR サーバーにアップロードした CapabilityStatement US Core Patient プロファイルに関する次の情報を含む が返されます。

...
{
    "type": "Patient",
    "profile": "http://hl7.org/fhir/StructureDefinition/Patient",
    "supportedProfile":[
        "http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient"
    ],

プロファイル内のバインド

用語サービスは、コードの検証、コードの変換、値セットの拡張など、医療上の "用語" に対して操作を実行できる一連の関数です。FHIR サービスでは、用語サービスはサポートされていません。 サポートされている操作 ($)、リソースの種類、操作に関する情報は、サービスの CapabilityStatement で確認できます。 リソースの種類 ValueSet、StructureDefinition、CodeSystem は、基本的な CRUD 操作と検索 (CapabilityStatement で定義されている) でサポートされるだけでなく、$validateで使用するためにシステムによって利用されます。

ValueSets には、ルールと外部参照の複雑なセットを含めることができます。 現在、サービスでは、事前に拡張されたインライン コードのみが考慮されます。 $validate操作を利用する前に、サポートされている ValueSet を FHIR サーバーにアップロードする必要があります。 上記の「プロファイルの格納」セクションで説明したように、PUT または条件付き更新を使用して、ValueSet リソースを FHIR サーバーにアップロードする必要があります。

次のステップ

この記事では、FHIR プロファイルについて学習しました。 次に、$validateを使用して、リソースがこれらのプロファイルに準拠していることを確認する方法について説明します。

FHIR® は HL7 の登録商標であり、HL7 の許可を得て使用しています。