次の方法で共有


Azure API for FHIR にプロファイルを格納する

重要

Azure API for FHIR は、2026 年 9 月 30 日に廃止されます。 移行戦略に従ってその日付までにAzure Health Data Services FHIR® サービスに移行します。 Azure API for FHIR が廃止されたため、2025 年 4 月 1 日以降、新しいデプロイは許可されません。 Azure Health Data Services FHIR サービス は、お客様が他の Azure サービスへの統合を使用して、FHIR、DICOM、および MedTech サービスを管理できるようにする、進化したバージョンの Azure API for FHIR です。

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

Azure API for 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 要素内で指定されます。 次に、プロファイルを持つ "Patient" リソースの始まり http://hl7.org/fhir/us/carin-bb/StructureDefinition/C4BB-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"
    ]
  },

Note

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

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

Note

Azure API for FHIR では、既定では実装ガイドのプロファイルは格納されません。 それらを Azure API for FHIR に読み込む必要があります。

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

プロファイルの格納

Azure API for FHIR にプロファイルを格納するには、要求の本文にプロファイルコンテンツを含むStructureDefinitionPUTできます。 更新プログラムまたは条件付き更新プログラムは、どちらも FHIR サービスにプロファイルを格納するための適切な方法です。 使用する条件が不明な場合は、条件付き更新を使用します。

Standard PUT: PUT http://<your Azure API for FHIR base URL>/StructureDefinition/profile-id

or

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

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

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

PUT https://myAzureAPIforFHIR.azurehealthcareapis.com/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 サンプル REST ファイルを参照してくださいUS Core プロファイルの格納について説明するオープンソース サイトを参照してください。 最新のプロファイルを取得するには、HL7 から直接プロファイルを取得し、それらを定義する実装ガイドを取得する必要があります。

プロファイルの表示

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

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

GET https://myworkspace-myfhirserver.fhir.azurehealthcareapis.com/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

Azure API for FHIR に読み込んだプロファイルのみが表示されます。

Azure API for FHIR では、基本プロファイルの StructureDefinition インスタンスは返されませんが、HL7 Web サイトには次のような場所があります。

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

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

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

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

たとえば、US Core Patient プロファイルを保存すると、次のように始まります。

{
  "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 Azure API for FHIR base URL>/metadata

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

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

プロファイルのバインド

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

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

次のステップ

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

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