次の方法で共有


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 指定されます。 次に、プロファイルを含 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 とその中で定義されているプロファイルの詳細を確認してください。

注意

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

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

プロファイルの格納

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

標準 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 する場合は、US Core アレルギー不耐性プロファイルを本文で使用して、次の rest コマンドを使用します。 この例には、このプロファイルのスニペットが含まれています。

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

プロファイルの表示

要求 GET http://<your Azure API for FHIR base URL>/StructureDefinition?url={canonicalUrl}を使用してGET既存のカスタム プロファイルにアクセスできます。ここで{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).",

}

注意

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 にアップロードした CapabilityStatement US Core Patient プロファイルに関する次の情報を含む が返されます。

...
{
    "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で使用するためにシステムによって利用されます。

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

次のステップ

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

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