

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# `$member-add` HealthLake の オペレーション
<a name="reference-fhir-operations-member-add"></a>

FHIR `$member-add`オペレーションは、メンバー (患者) をグループリソース、特にメンバー属性リストに追加します。このオペレーションは DaVinci メンバー属性実装ガイドの一部であり、メンバー属性を管理するための調整プロセスをサポートしています。

## オペレーションエンドポイント
<a name="member-add-endpoint"></a>

```
POST [base]/datastore/{datastoreId}/r4/Group/{groupId}/$member-add
Content-Type: application/json
```

## パラメータ
<a name="member-add-parameters"></a>

オペレーションは、次のパラメータの組み合わせを持つ FHIR Parameters リソースを受け入れます。

### パラメータオプション
<a name="member-add-parameter-options"></a>

次のいずれかのパラメータの組み合わせを使用できます。

オプション 1: メンバー ID \$1 プロバイダー NPI  
`memberId` \$1 `providerNpi`  
`memberId` \$1 `providerNpi` \$1 `attributionPeriod`

オプション 2: 患者リファレンス \$1 プロバイダーリファレンス  
`patientReference` \$1 `providerReference`  
`patientReference` \$1 `providerReference` \$1 `attributionPeriod`

### パラメータの詳細
<a name="member-add-parameter-details"></a>

memberId (オプション)  
グループに追加するメンバーの識別子。  
タイプ: Identifier  
システム: 患者識別子システム  

```
{
  "name": "memberId",
  "valueIdentifier": {
    "system": "http://example.org/patient-id",
    "value": "patient-new"
  }
}
```

providerNpi (オプション)  
属性プロバイダーの国民プロバイダー識別子 (NPI)。  
タイプ: Identifier  
システム: http://terminology.hl7.org/CodeSystem/NPI  

```
{
  "name": "providerNpi",
  "valueIdentifier": {
    "system": "http://terminology.hl7.org/CodeSystem/NPI",
    "value": "1234567890"
  }
}
```

patientReference (オプション)  
追加する患者リソースへの直接参照。  
タイプ: リファレンス  

```
{
  "name": "patientReference",
  "valueReference": {
    "reference": "Patient/patient-123"
  }
}
```

providerReference (オプション)  
プロバイダーリソースへの直接参照。  
タイプ: リファレンス  

```
{
  "name": "providerReference",
  "valueReference": {
    "reference": "Practitioner/provider-456"
  }
}
```

attributionPeriod (オプション)  
患者がプロバイダーに属している期間。  
タイプ: Period  

```
{
  "name": "attributionPeriod",
  "valuePeriod": {
    "start": "2024-07-15",
    "end": "2025-07-14"
  }
}
```

## リクエストの例
<a name="member-add-examples"></a>

### メンバー ID とプロバイダー NPI の使用
<a name="member-add-example-id-npi"></a>

```
{
  "resourceType": "Parameters",
  "parameter": [
    {
      "name": "memberId",
      "valueIdentifier": {
        "system": "http://example.org/patient-id",
        "value": "patient-new"
      }
    },
    {
      "name": "providerNpi",
      "valueIdentifier": {
        "system": "http://terminology.hl7.org/CodeSystem/NPI",
        "value": "1234567890"
      }
    },
    {
      "name": "attributionPeriod",
      "valuePeriod": {
        "start": "2024-07-15",
        "end": "2025-07-14"
      }
    }
  ]
}
```

### 患者とプロバイダーのリファレンスの使用
<a name="member-add-example-references"></a>

```
{
  "resourceType": "Parameters",
  "parameter": [
    {
      "name": "patientReference",
      "valueReference": {
        "reference": "Patient/patient-123"
      }
    },
    {
      "name": "providerReference",
      "valueReference": {
        "reference": "Practitioner/provider-456"
      }
    },
    {
      "name": "attributionPeriod",
      "valuePeriod": {
        "start": "2024-07-15",
        "end": "2025-07-14"
      }
    }
  ]
}
```

## レスポンスの形式
<a name="member-add-response"></a>

### 追加応答の成功
<a name="member-add-success-response"></a>

```
HTTP Status: 200 OK
Content-Type: application/fhir+json

{
  "resourceType": "OperationOutcome",
  "issue": [
    {
      "severity": "success",
      "code": "informational",
      "details": {
        "text": "Member Patient/patient-new successfully added to the Member Attribution List."
      }
    }
  ]
}
```

### エラーレスポンス
<a name="member-add-error-responses"></a>

無効なリクエスト構文  
HTTP ステータス: 400 Bad Request  

```
{
  "resourceType": "OperationOutcome",
  "issue": [
    {
      "severity": "error",
      "code": "invalid",
      "details": {
        "text": "Invalid parameter combination provided"
      }
    }
  ]
}
```

リソースが見つかりません  
HTTP ステータス: 404 Not Found  

```
{
  "resourceType": "OperationOutcome",
  "issue": [
    {
      "severity": "error",
      "code": "not-found",
      "details": {
        "text": "Resource not found."
      }
    }
  ]
}
```

バージョンの競合  
HTTP ステータス: 409 競合  

```
{
  "resourceType": "OperationOutcome",
  "issue": [
    {
      "severity": "error",
      "code": "conflict",
      "details": {
        "text": "Resource version conflict detected"
      }
    }
  ]
}
```

無効な属性ステータス  
HTTP ステータス: 422 Unprocessable Entity  

```
{
  "resourceType": "OperationOutcome",
  "issue": [
    {
      "severity": "error",
      "code": "business-rule",
      "details": {
        "text": "Cannot add member to Attribution List with status 'final'. Status must be 'draft' or 'open'."
      }
    }
  ]
}
```

## ビジネスルール
<a name="member-add-business-rules"></a>

属性ステータスの検証  
オペレーションは、グループの属性ステータスが次の場合にのみ実行できます。  
+ `draft`
+ `open`
ステータスが の場合、オペレーションは許可されません`final`。

重複メンバーの防止  
システムは、次の一意の組み合わせに基づいて重複したメンバーを追加することを防ぎます。  
+ メンバー識別子
+ 支払者識別子
+ カバレッジ識別子

カバレッジ期間の検証  
`attributionPeriod` を指定する場合、メンバーのカバレッジ期間の範囲内にある必要があります。システムは以下を行います。  
+ メンバーのカバレッジリソースを検索する
+ 複数の が存在する場合は、最新のカバレッジ (最高の versionId) を使用する
+ 属性期間がカバレッジ期間を超えないことを確認する

リファレンスの検証  
ID と参照の両方が同じリソース (患者またはプロバイダー) に提供されると、システムはそれらが同じリソースに対応していることを検証します。  
ID フィールドと reference.identifier フィールドの両方が同じリソース (患者またはプロバイダー) に提供されると、エラーがスローされます。

## 認証と認可
<a name="member-add-auth"></a>

オペレーションでは、以下に対して SMART on FHIR 認可が必要です。
+ 読み取りアクセス許可 - 患者、プロバイダー、およびグループのリソースを検証するには
+ 検索アクセス許可 - 識別子でリソースを検索するには
+ アクセス許可を更新する - グループリソースを変更するには

## 運用上の動作
<a name="member-add-behavior"></a>

リソースの更新  
+ グループリソースバージョン ID を更新します。
+ オペレーションの前に、元のリソース状態の履歴エントリを作成します。
+ 以下を使用して Group.member 配列にメンバー情報を追加します。
  + entity.reference での患者リファレンス
  + 期間の属性期間
  + 拡張フィールドのカバレッジとプロバイダー情報

検証ステップ  
+ パラメータの検証 - 有効なパラメータの組み合わせを確認します
+ リソースの存在 - 患者、プロバイダー、グループリソースが存在することを検証します
+ 属性ステータス - グループステータスが変更を許可することを確認します
+ 重複チェック - 既存のメンバーの追加を防止
+ カバレッジ検証 - アトリビューション期間がカバレッジ範囲内であることを確認します

## 制限事項
<a name="member-add-limitations"></a>
+ 参照されるすべてのリソースは、同じデータストア内に存在する必要があります
+ オペレーションはメンバー属性リストグループのリソースでのみ機能します
+ アトリビューション期間はカバレッジ範囲内である必要があります
+ 「最終」ステータスのグループは変更できません