

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# `$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 参数资源：

### 参数选项
<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>

会员 ID（可选）  
要添加到群组的成员的标识符。  
类型：标识符  
系统：患者识别系统  

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

ProviderNPI（可选）  
归因提供商的国家提供商标识符 (NPI)。  
类型：标识符  
系统：http://terminology.hl7。 org/CodeSystem/NPI  

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

患者参考（可选）  
直接引用待添加的患者资源。  
类型：参考  

```
{
  "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-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 错误请求  

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

未找到资源  
HTTP 状态：404 未找到  

```
{
  "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 无法处理的实体  

```
{
  "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`时，它必须在成员的保险期限范围内。系统将：  
+ 搜索会员的承保范围资源
+ 如果存在多个覆盖率，则使用最新的覆盖率（最高版本 ID）
+ 确认归因期限未超过保险期限

参考文献验证  
当为同一个资源（患者或提供者）同时提供身份证和参考资料时，系统会验证它们是否对应于相同的资源。  
如果为同一资源（患者或提供者）同时提供 ID 和 reference.identifier 字段，则会引发错误。

## 身份验证和授权
<a name="member-add-auth"></a>

该操作需要 FHIR 上的 SMART 授权，以便：
+ 读取权限-用于验证患者、提供者和小组资源
+ 搜索权限-按标识符查找资源
+ 更新权限-修改群组资源

## 操作行为
<a name="member-add-behavior"></a>

资源更新  
+ 更新群组资源版本 ID
+ 使用操作前的原始资源状态创建历史条目
+ 使用以下命令将成员信息添加到 Group.member 数组：
  + entity.reference 中的患者参考资料
  + 期间内的归因周期
  + 扩展字段中的覆盖范围和提供者信息

验证步骤  
+ 参数验证-确保有效的参数组合
+ 资源存在-验证患者、提供者和小组资源的存在
+ 归因状态-确认群组状态允许修改
+ 重复检查-防止添加现有成员
+ 覆盖范围验证-确保归因期在覆盖范围内

## 限制
<a name="member-add-limitations"></a>
+ 所有引用的资源必须存在于同一个数据存储中
+ 操作仅适用于成员归因列表组资源
+ 归因期限必须在覆盖范围内
+ 无法修改处于 “最终” 状态的群组