

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

# FHIR R4 适用于 `$operations` HealthLake
<a name="reference-fhir-operations"></a>

 FHIR \$1 操作（也称为 “美元操作”）是特殊的服务器端函数，其扩展范围超出了 FHIR 规范中的标准 CRUD（`Create``Read``Update`、、、`Delete`）操作。这些操作由 “\$1” 前缀标识，支持使用标准 REST API 调用难以执行或效率低下的复杂处理、数据转换和批量操作。\$1 Operations 可以在系统级别、资源类型级别或特定资源实例上调用，从而提供了与 FHIR 数据交互的灵活方式。 AWS HealthLake 支持多个 FHIR `$operations`。有关更多详细信息，请参阅下面的各个页面。

**Topics**
+ [FHIR R4 操作适用于 `$attribution-status` HealthLake](reference-fhir-operations-attribution-status.md)
+ [使用删除资源类型 `$bulk-delete`](reference-fhir-operations-bulk-delete.md)
+ [`$bulk-member-match`操作为 HealthLake](reference-fhir-operations-bulk-member-match.md)
+ [FHIR R4 操作适用于 `$confirm-attribution-list` HealthLake](reference-fhir-operations-confirm-attribution-list.md)
+ [FHIR R4 操作适用于 `$davinci-data-export` HealthLake](reference-fhir-operations-davinci-data-export.md)
+ [使用生成临床文档 `$document`](reference-fhir-operations-document.md)
+ [使用永久删除资源 `$erase`](reference-fhir-operations-erase.md)
+ [使用获取患者数据 `Patient/$everything`](reference-fhir-operations-everything.md)
+ [使用检索 ValueSet 验证码 `$expand`](reference-fhir-operations-expand.md)
+ [使用 FHI HealthLake R 导出数据 `$export`](reference-fhir-operations-export.md)
+ [FHIR 的`$inquire`手术 HealthLake](reference-fhir-operations-inquire.md)
+ [使用检索概念细节 `$lookup`](reference-fhir-operations-lookup.md)
+ [`$member-add`操作用于 HealthLake](reference-fhir-operations-member-add.md)
+ [`$member-match`操作为 HealthLake](reference-fhir-operations-member-match.md)
+ [`$member-remove`操作用于 HealthLake](reference-fhir-operations-member-remove.md)
+ [使用移除患者隔间资源 `$purge`](reference-fhir-operations-purge.md)
+ [FHIR 的`$questionnaire-package`手术 HealthLake](reference-fhir-operations-questionnaire-package.md)
+ [FHIR 的`$submit`手术 HealthLake](reference-fhir-operations-submit.md)
+ [使用验证 FHIR 资源 `$validate`](reference-fhir-operations-validate.md)

# FHIR R4 操作适用于 `$attribution-status` HealthLake
<a name="reference-fhir-operations-attribution-status"></a>

检索特定成员的归因状态，返回包含与患者相关的所有归因资源的捆绑包。此操作是 [FHIR 成员归因 (ATR) 名单 IG 2.1.0](https://build.fhir.org/ig/HL7/davinci-atr/spec.html) 实施的一部分。

## 端点
<a name="attribution-status-endpoint"></a>

```
POST [base]/Group/[id]/$attribution-status
```

## 请求参数
<a name="attribution-status-parameters"></a>

该操作接受以下可选参数：


| 参数 | 类型 | 说明 | 
| --- | --- | --- | 
| memberId | 标识符 | 申请归因状态的成员的 MemberId  | 
| 患者参考 | 参考 | 引用制作人系统中的患者资源 | 

**注意**  
`patientReference`可以提供`memberId`或之一，或者两者兼而有之，用于验证目的。

## 示例请求
<a name="attribution-status-request-example"></a>

```
{
  "resourceType": "Parameters",
  "parameter": [
    {
      "name": "memberId",
      "valueIdentifier": {
        "system": "http://example.org",
        "value": "MBR123456789"
      }
    },
    {
      "name": "patientReference",
      "valueReference": {
        "reference": "Patient/patient-123",
        "display": "John Doe"
      }
    }
  ]
}
```

## 响应
<a name="attribution-status-response"></a>

返回包含与患者相关的归因资源的捆绑包：


| 资源 | 基数 | 位置 | 
| --- | --- | --- | 
| 病人 | 1..1 | 群组成员实体 | 
| 涵盖 | 0.. 1 | Group.member.extension: co | 
| Organization/Practitioner/PractitionerRole | 0.. 1 | Group.member.extensions: | 
| 任何资源 | 0.. 1 | Group.member. 扩展：关联数据 | 

### 示例响应
<a name="attribution-status-response-example"></a>

```
{
  "resourceType": "Bundle",
  "id": "bundle-response",
  "meta": {
    "lastUpdated": "2014-08-18T01:43:33Z"
  },
  "type": "collection",
  "entry": [
    {
      "fullUrl": "http://example.org/fhir/Patient/12423",
      "resource": {
        "resourceType": "Patient",
        "id": "12423",
        "meta": {
          "versionId": "1",
          "lastUpdated": "2014-08-18T01:43:31Z"
        },
        "active": true,
        "name": [
          {
            "use": "official",
            "family": "Chalmers",
            "given": ["Peter", "James"]
          }
        ],
        "gender": "male",
        "birthDate": "1974-12-25"
      }
    },
    {
      "fullUrl": "http://example.org/fhir/Coverage/123456",
      "resource": {
        "resourceType": "Coverage",
        "id": "1"
        // ... additional Coverage resource details
      }
    },
    {
      "fullUrl": "http://example.org/fhir/Organization/666666",
      "resource": {
        "resourceType": "Organization",
        "id": "2"
        // ... additional Organization resource details
      }
    }
  ]
}
```

## 错误处理
<a name="attribution-status-error-handling"></a>

该操作处理以下错误情况：


| 错误 | HTTP 状态 | 说明 | 
| --- | --- | --- | 
| 操作请求无效 | 400 | 不符合要求的请求参数或结构 | 
| 未找到群组资源 | 404 | 指定的群组 ID 不存在 | 
| 未找到患者资源 | 404 | 指定的患者参考文献不存在 | 

## 授权和安全
<a name="attribution-status-authorization"></a>

智能瞄准镜要求  
客户必须具有相应的权限才能读取群组资源和相关归因资源  
标准的 FHIR 授权机制适用于所有操作

# 使用删除资源类型 `$bulk-delete`
<a name="reference-fhir-operations-bulk-delete"></a>

AWS HealthLake 支持该`$bulk-delete`操作，允许删除数据存储中特定类型的所有资源。当您需要执行以下操作时，此操作特别有用：
+ 进行季节性审计和清理
+ 大规模管理数据生命周期
+ 移除特定的资源类型
+ 遵守数据保留政策

## 用法
<a name="bulk-delete-usage"></a>

可以使用 POST 方法调用该`$bulk-delete`操作：

```
POST [base]/[ResourceType]/$bulk-delete?isHardDelete=false&deleteAuditEvent=true
```

## 参数
<a name="bulk-delete-parameters"></a>


| 参数 | Type | 必需 | 默认值 | 说明 | 
| --- | --- | --- | --- | --- | 
| isHardDelete | 布尔值 | 否 | false | 如果为 true，则从存储中永久删除资源 | 
| deleteAuditEvent | 布尔值 | 否 | true | 如果为 true，则删除关联的审计事件 | 
| \$1since | 字符串 | 否 | 数据存储创建时间 | 输入后，选择开始截止时间，根据资源的上次修改时间来查找资源。不能与开头或结尾一起使用 | 
| start | 字符串 | 否 | 数据存储创建时间 | 输入后，根据资源的上次修改时间选择查找资源的截止时间。可以与 end 一起使用 | 
| end | 字符串 | 否 | Job 提交时间 | 输入后，选择结束截止时间，根据资源的上次修改时间来查找资源 | 

## 示例
<a name="bulk-delete-examples"></a>

**请求示例**  


```
POST [base]/Observation/$bulk-delete?isHardDelete=false
```

**响应示例**  


```
{
      "jobId": "jobId",
      "jobStatus": "SUBMITTED"
    }
```

## 作业状态
<a name="bulk-delete-job-status"></a>

要检查批量删除任务的状态，请执行以下操作：

```
GET [base]/$bulk-delete/[jobId]
```

该操作返回任务状态信息：

```
{
      "datastoreId": "datastoreId",
      "jobId": "jobId",
      "status": "COMPLETED",
      "submittedTime": "2025-10-09T15:09:51.336Z"
    }
```

## 行为
<a name="bulk-delete-behavior"></a>

该`$bulk-delete`操作：

1. 异步处理以处理大量资源

1. 维护 ACID 事务以保证数据完整性

1. 提供任务状态跟踪，包括资源删除次数

1. 支持软删除和硬删除模式

1. 包括删除活动的全面审核记录

1. 允许有选择地删除历史版本和审计事件

## 审核日志
<a name="bulk-delete-audit-logging"></a>

`$bulk-delete`操作记录为 “开始” FHIRBulk DeleteJob 和 “描述” FHIRBulkDeleteJob ，其中包含详细的操作信息。

## 限制
<a name="bulk-delete-limitations"></a>
+ 如果设置`isHardDelete`为 true，则硬删除的资源将不会出现在搜索结果或`_history`查询中。
+ 通过此操作删除的资源在处理过程中可能暂时无法访问
+ 存储计量仅针对历史版本进行调整- deleteVersionHistory =false 不会调整数据存储存储

# `$bulk-member-match`操作为 HealthLake
<a name="reference-fhir-operations-bulk-member-match"></a>

AWS HealthLake 支持异步处理多个成员匹配请求的`$bulk-member-match`操作。该操作使医疗保健组织能够在单个批量请求中使用人口统计和保险信息，有效地匹配不同医疗保健系统中的数百个成员的唯一标识符。此功能对于大规模 payer-to-payer数据交换、成员转换和 CMS 合规性要求至关重要，并且符合 FHIR [规范](https://build.fhir.org/ig/HL7/davinci-epdx/OperationDefinition-BulkMemberMatch.html)。

**注意**  
该`$bulk-member-match`操作基于FHIR的基本规范，该规范目前处于实验阶段，可能会发生变化。随着规范的发展，此 API 的行为和接口将相应更新。建议开发人员监视 AWS HealthLake 发行说明和相关的 FHIR 规范更新，以随时了解可能影响其集成的任何更改。

当您需要执行以下操作时，此操作特别有用：
+ 在开放注册期间大规模处理成员匹配
+ 促进付款人之间的批量成员过渡
+ 支持大规模 CMS 合规数据交换要求
+ 在医疗保健网络中高效匹配成员群组
+ 最大限度地减少 API 调用并提高大批量匹配场景的运营效率

## 用法
<a name="bulk-member-match-usage"></a>

该`$bulk-member-match`操作是使用 POST 方法对组资源调用的异步操作：

```
POST [base]/Group/$bulk-member-match
```

提交批量匹配请求后，您可以使用以下方式轮询任务状态：

```
GET [base]/$bulk-member-match-status/{jobId}
```

## 支持的参数
<a name="bulk-member-match-parameters"></a>

HealthLake 支持以下 FHIR `$bulk-member-match` 参数：


| 参数 | Type | 必需 | 说明 | 
| --- | --- | --- | --- | 
| `MemberPatient` | 病人 | 是 | 包含要匹配的成员的人口统计信息的患者资源。 | 
| `CoverageToMatch` | 涵盖 | 是 | 覆盖范围资源，将用于与现有记录进行匹配。 | 
| `CoverageToLink` | 涵盖 | 否 | 在匹配过程中要链接的覆盖范围资源。 | 
| `Consent` | 同意 | 是 | 还会存储用于授权目的的同意资源。这与*不需要*征得同意的个人`$member-match`操作不同。 | 

## POST 请求提交批量成员匹配任务
<a name="bulk-member-match-request-example"></a>

以下示例显示了提交批量成员匹配作业的 POST 请求。每个成员都封装在包含必需的`MemberPatient``CoverageToMatch`、和`Consent`资源以及可选`MemberBundle`参数的参数中`CoverageToLink`。

```
POST [base]/Group/$bulk-member-match
Content-Type: application/fhir+json
{
  "resourceType": "Parameters",
  "parameter": [
    {
      "name": "MemberBundle",
      "part": [
        {
          "name": "MemberPatient",
          "resource": {
            "resourceType": "Patient",
            "identifier": [
              {
                "system": "http://example.org/patient-id",
                "value": "patient-0"
              }
            ],
            "name": [
              {
                "family": "Smith",
                "given": ["James"]
              }
            ],
            "gender": "male",
            "birthDate": "1950-01-01"
          }
        },
        {
          "name": "CoverageToMatch",
          "resource": {
            "resourceType": "Coverage",
            "status": "active",
            "identifier": [
              {
                "system": "http://example.org/coverage-id",
                "value": "cov-0"
              }
            ],
            "subscriberId": "sub-0",
            "beneficiary": {
              "reference": "Patient/patient123"
            },
            "relationship": {
              "coding": [
                {
                  "system": "http://terminology.hl7.org/CodeSystem/subscriber-relationship",
                  "code": "self"
                }
              ]
            },
            "payor": [
              {
                "reference": "Organization/org123"
              }
            ]
          }
        },
        {
          "name": "Consent",
          "resource": {
            "resourceType": "Consent",
            "status": "active",
            "scope": {
              "coding": [
                {
                  "system": "http://terminology.hl7.org/CodeSystem/consentscope",
                  "code": "patient-privacy"
                }
              ]
            },
            "category": [
              {
                "coding": [
                  {
                    "system": "http://terminology.hl7.org/CodeSystem/v3-ActCode",
                    "code": "IDSCL"
                  }
                ]
              }
            ],
            "patient": {
              "reference": "Patient/patient123"
            },
            "performer": [
              {
                "reference": "Patient/patient123"
              }
            ],
            "sourceReference": {
              "reference": "http://example.org/DocumentReference/consent-source"
            },
            "policy": [
              {
                "uri": "http://hl7.org/fhir/us/davinci-hrex/StructureDefinition-hrex-consent.html#regular"
              }
            ],
            "provision": {
              "type": "permit",
              "period": {
                "start": "2024-01-01",
                "end": "2025-12-31"
              },
              "actor": [
                {
                  "role": {
                    "coding": [
                      {
                        "system": "http://terminology.hl7.org/CodeSystem/provenance-participant-type",
                        "code": "performer"
                      }
                    ]
                  },
                  "reference": {
                    "identifier": {
                      "system": "http://hl7.org/fhir/sid/us-npi",
                      "value": "9876543210"
                    },
                    "display": "Old Health Plan"
                  }
                },
                {
                  "role": {
                    "coding": [
                      {
                        "system": "http://terminology.hl7.org/CodeSystem/v3-ParticipationType",
                        "code": "IRCP"
                      }
                    ]
                  },
                  "reference": {
                    "identifier": {
                      "system": "http://hl7.org/fhir/sid/us-npi",
                      "value": "0123456789"
                    },
                    "display": "New Health Plan"
                  }
                }
              ],
              "action": [
                {
                  "coding": [
                    {
                      "system": "http://terminology.hl7.org/CodeSystem/consentaction",
                      "code": "disclose"
                    }
                  ]
                }
              ]
            }
          }
        },
        {
          "name": "CoverageToLink",
          "resource": {
            "resourceType": "Coverage",
            "status": "active",
            "identifier": [
              {
                "system": "http://example.org/coverage-link-id",
                "value": "cov-link-0"
              }
            ],
            "subscriberId": "new-sub-0",
            "beneficiary": {
              "reference": "Patient/patient123"
            },
            "relationship": {
              "coding": [
                {
                  "system": "http://terminology.hl7.org/CodeSystem/subscriber-relationship",
                  "code": "self"
                }
              ]
            },
            "payor": [
              {
                "identifier": {
                  "system": "http://hl7.org/fhir/sid/us-npi",
                  "value": "0123456789"
                },
                "display": "New Health Plan"
              }
            ]
          }
        }
      ]
    }
  ]
}
```

## 已完成任务响应并附有输出
<a name="bulk-member-match-response-example"></a>

任务完成后，响应将包括任务元数据和一个 FHIR Parameters 资源，其中包含三个对匹配结果进行分类的组资源。

```
{
  "datastoreId": "datastoreId",
  "jobId": "jobId",
  "status": "COMPLETED",
  "submittedTime": "2026-03-20T18:45:26.321Z",
  "numberOfMembers": 3,
  "numberOfMembersProcessedSuccessfully": 3,
  "numberOfMembersWithCustomerError": 0,
  "numberOfMembersWithServerError": 0,
  "output": {
    "resourceType": "Parameters",
    "meta": {
      "profile": [
        "http://hl7.org/fhir/us/davinci-pdex/StructureDefinition/pdex-parameters-multi-member-match-bundle-out"
      ]
    },
    "parameter": [
      {
        "name": "MatchedMembers",
        "resource": {
          "resourceType": "Group",
          "id": "group1",
          "text": {
            "status": "generated",
            "div": "<div xmlns=\"http://www.w3.org/1999/xhtml\">Matched members group</div>"
          },
          "contained": [
            {
              "resourceType": "Patient",
              "id": "1",
              "identifier": [
                {
                  "system": "http://example.org/patient-id",
                  "value": "patient-0"
                }
              ],
              "name": [
                {
                  "family": "Smith",
                  "given": ["James"]
                }
              ],
              "gender": "male",
              "birthDate": "1950-01-01"
            }
          ],
          "type": "person",
          "actual": true,
          "code": {
            "coding": [
              {
                "system": "http://hl7.org/fhir/us/davinci-pdex/CodeSystem/PdexMultiMemberMatchResultCS",
                "code": "match",
                "display": "Matched"
              }
            ]
          },
          "quantity": 1,
          "member": [
            {
              "entity": {
                "extension": [
                  {
                    "url": "http://hl7.org/fhir/us/davinci-pdex/StructureDefinition/base-ext-match-parameters",
                    "valueReference": {
                      "reference": "#1"
                    }
                  }
                ],
                "reference": "Patient/patient123"
              }
            }
          ]
        }
      },
      {
        "name": "NonMatchedMembers",
        "resource": {
          "resourceType": "Group",
          "id": "Group2",
          "text": {
            "status": "generated",
            "div": "<div xmlns=\"http://www.w3.org/1999/xhtml\">Non-matched members group</div>"
          },
          "contained": [
            {
              "resourceType": "Patient",
              "id": "1",
              "identifier": [
                {
                  "system": "http://example.org/patient-id",
                  "value": "patient-501"
                }
              ],
              "name": [
                {
                  "family": "Carter",
                  "given": ["Emily"]
                }
              ],
              "gender": "female",
              "birthDate": "1985-06-15"
            }
          ],
          "type": "person",
          "actual": true,
          "code": {
            "coding": [
              {
                "system": "http://hl7.org/fhir/us/davinci-pdex/CodeSystem/PdexMultiMemberMatchResultCS",
                "code": "nomatch",
                "display": "Not Matched"
              }
            ]
          },
          "quantity": 1,
          "member": [
            {
              "entity": {
                "extension": [
                  {
                    "url": "http://hl7.org/fhir/us/davinci-pdex/StructureDefinition/base-ext-match-parameters",
                    "valueReference": {
                      "reference": "#1"
                    }
                  }
                ],
                "reference": "Patient/patient123"
              }
            }
          ]
        }
      },
      {
        "name": "ConsentConstrainedMembers",
        "resource": {
          "resourceType": "Group",
          "id": "group3",
          "text": {
            "status": "generated",
            "div": "<div xmlns=\"http://www.w3.org/1999/xhtml\">Consent constrained members group</div>"
          },
          "contained": [
            {
              "resourceType": "Patient",
              "id": "1",
              "identifier": [
                {
                  "system": "http://example.org/patient-id",
                  "value": "patient-502"
                }
              ],
              "name": [
                {
                  "family": "Nguyen",
                  "given": ["David"]
                }
              ],
              "gender": "male",
              "birthDate": "1972-11-22"
            }
          ],
          "type": "person",
          "actual": true,
          "code": {
            "coding": [
              {
                "system": "http://hl7.org/fhir/us/davinci-pdex/CodeSystem/PdexMultiMemberMatchResultCS",
                "code": "consentconstraint",
                "display": "Consent Constraint"
              }
            ]
          },
          "quantity": 1,
          "member": [
            {
              "entity": {
                "extension": [
                  {
                    "url": "http://hl7.org/fhir/us/davinci-pdex/StructureDefinition/base-ext-match-parameters",
                    "valueReference": {
                      "reference": "#1"
                    }
                  }
                ],
                "reference": "Patient/123"
              }
            }
          ]
        }
      }
    ]
  }
}
```

## 输出组资源
<a name="bulk-member-match-output-groups"></a>

完成的任务将返回一个包含三个组资源的参数资源：

**MatchedMembers Group**  
包含所有成功匹配成员的患者推荐信息，且未被归类为同意限制。

该`Group.quantity`字段包含其各自组中的成员总数。

**NonMatchedMembers Group**  
包含对未找到匹配项或发现多个匹配项的成员的引用。

**ConsentConstrainedMembers Group**  
包含所有成功匹配成员的患者推荐信息，这些成员的同意限制会阻止数据共享。当同时满足以下两个条件时，同意资源被视为受限：  
+ **策略 URI 的结尾**是 `#sensitive` — 这是最清晰、最直接的信号。提交申请的付款人明确表示：“该成员的数据很敏感，请谨慎处理。”

  ```
  "policy": [{ "uri": "...hrex-consent.html#sensitive" }]
  ```
+ **顶级条款类型是 `deny`** — 成员广泛拒绝数据共享。

  ```
  "provision": { "type": "deny" }
  ```

## 与 \$1 集成 davinci-data-export
<a name="bulk-member-match-davinci-integration"></a>

返回的 MatchedMembers 组资源`$bulk-member-match`可以直接用于检索批量成员数据的`$davinci-data-export`操作：

```
POST [base]/Group/{matched-group-id}/$davinci-data-export
GET [base]/Group/{matched-group-id}
```

这种集成可实现高效的工作流程，您可以首先批量识别匹配的成员，然后使用生成的群组资源导出他们的完整健康记录。

## 性能特征
<a name="bulk-member-match-performance"></a>

该`$bulk-member-match`操作专为大容量处理而设计，并且是异步运行的：
+ 并@@ **发**：每个数据存储最多 5 个并发操作。
+ **可扩展性**：每个请求最多可处理 500 个成员（有效载荷限制 5 MB）。
+ **并行操作**：与并行导入、导出或批量删除操作兼容。

## Authorization
<a name="bulk-member-match-authorization"></a>

API 在 FHIR 上使用 SMART 授权协议，其所需范围如下：
+ `system/Patient.read`— 搜索和匹配患者资源所必需的。
+ `system/Coverage.read`— 验证覆盖范围信息所必需的。
+ `system/Group.write`— 创建结果组资源所必需的。
+ `system/Organization.read`— 视情况而定，如果承保范围涉及组织，则为必填项。
+ `system/Practitioner.read`— 有条件，如果承保范围涉及从业人员，则为必填项。
+ `system/PractitionerRole.read`— 视情况而定，如果保险范围涉及从业者的角色，则为必填项。
+ `system/Consent.write`— 有条件，如果提供了同意资源，则为必填项。

该操作还支持用于编程 AWS 访问的 IAM 签名版本 4 (Sigv4) 授权。

## 错误处理
<a name="bulk-member-match-errors"></a>

该操作处理以下错误情况：
+ **400 错误请求**：请求格式无效、缺少必填参数或有效负载超过大小限制（500 个成员或 5 MB）。
+ **422 无法处理的实体：任务**执行期间的处理错误。
+ **个人成员错误**：当特定成员未能处理时，将继续对剩余成员进行操作，并在 NonMatchedMembers 群组中包含错误详细信息以及相应的原因代码。例如，`MemberBundle`如果患者缺少该`birthDate`参数，则会返回以下错误：

  ```
  "errors": [
    {
      "memberIndex": 1,
      "jsonBlob": {
        "resourceType": "OperationOutcome",
        "issue": [
          {
            "severity": "error",
            "code": "invalid",
            "diagnostics": "MemberPatient.birthDate is required"
          }
        ],
        "statusCode": 400
      }
    }
  ]
  ```

错误详情可通过状态轮询端点获得，包括：
+ `numberOfMembersWithCustomerError`：存在验证或输入错误的成员数量。
+ `numberOfMembersWithServerError`：出现服务器端处理错误的成员数。

## 相关 操作
<a name="bulk-member-match-related"></a>
+ [`$member-match`操作为 HealthLake](reference-fhir-operations-member-match.md)— 个人成员匹配操作。
+ [FHIR R4 操作适用于 `$davinci-data-export` HealthLake](reference-fhir-operations-davinci-data-export.md)— 使用群组资源批量导出数据。
+ [FHIR R4 适用于 `$operations` HealthLake](reference-fhir-operations.md)— 支持的操作的完整列表。

# FHIR R4 操作适用于 `$confirm-attribution-list` HealthLake
<a name="reference-fhir-operations-confirm-attribution-list"></a>

向制作人表明，消费者无需对归因列表进行任何更改。此操作通过从列表中移除不活跃的成员、将状态更改为 “最终” 并确认操作来最终确定归因列表。此操作是 [FHIR 成员归因 (ATR) 名单 IG 2.1.0](https://build.fhir.org/ig/HL7/davinci-atr/spec.html) 实施的一部分。

## 端点
<a name="confirm-attribution-list-endpoint"></a>

```
POST [base]/Group/[id]/$confirm-attribution-list
```

## 请求
<a name="confirm-attribution-list-request"></a>

无需任何参数。

```
POST [base]/Group/[id]/$confirm-attribution-list
```

## 响应
<a name="confirm-attribution-list-response"></a>

返回带有确认消息的 HTTP 201。

### 示例响应
<a name="confirm-attribution-list-response-example"></a>

```
HTTP Status Code: 201

{
  "resourceType": "Parameters",
  "parameter": [
    {
      "name": "message",
      "valueString": "Accepted."
    }
  ]
}
```

## 确认后的群组状态
<a name="confirm-attribution-list-group-status"></a>

成功确认后，群组资源的归因列表状态将设置为 “最终”：

```
{
  "resourceType": "Group",
  "id": "fullexample",
  "extension": [
    {
      "url": "http://hl7.org/fhir/us/davinci-atr/StructureDefinition/ext-attributionListStatus",
      "valueCode": "final"
    }
  ]
  // ... other Group properties
}
```

## 错误处理
<a name="confirm-attribution-list-error-handling"></a>

该操作处理以下错误情况：


| 错误 | HTTP 状态 | 说明 | 
| --- | --- | --- | 
| 无效的操作请求 | 400 | 不符合要求的请求参数或结构 | 
| 未找到群组资源 | 404 | 指定的群组 ID 不存在 | 

## 授权和安全
<a name="confirm-attribution-list-authorization"></a>

智能瞄准镜要求  
客户必须具有相应的权限才能读取群组资源和相关归因资源  
对于`$confirm-attribution-list`，客户机还必须具有写入权限才能修改组资源  
标准的 FHIR 授权机制适用于所有操作

# FHIR R4 操作适用于 `$davinci-data-export` HealthLake
<a name="reference-fhir-operations-davinci-data-export"></a>

该`$davinci-data-export`操作是一种异步 FHIR 操作，可用于从中 AWS HealthLake导出医疗保健数据。此操作支持多种导出类型，包括成员归因 (ATR)、 PDex 提供商访问和成员访问权限 APIs。 Payer-to-Payer它是标准 FHIR `$export` 操作的专用版本，旨在满足 DaVinci 实施指南的要求。

## 主要功能
<a name="davinci-data-export-features"></a>
+ *异步处理*：遵循标准的 FHIR 异步请求模式
+ *组级导出：导*出特定群组资源内成员的数据
+ *多种导出类型*：支持 ATR（成员归因）、 PDex 提供商访问和成员访问权限 Payer-to-Payer APIs
+ *全面的配置文件支持*：包括美国核心、CARIN Blue Button 和 PDex 配置文件
+ *灵活筛选*：支持按患者、资源类型和时间范围进行筛选
+ *NDJSON 输出*：以换行符分隔的 JSON 格式提供数据

## 操作终端节点
<a name="davinci-data-export-endpoint"></a>

```
GET [base]/Group/[id]/$davinci-data-export
POST [base]/Group/[id]/$davinci-data-export
```

## 请求参数
<a name="davinci-data-export-parameters"></a>


| 参数 | 基数 | 说明 | 
| --- | --- | --- | 
| patient | 0。。 \$1 | 要导出其数据的特定成员。如果省略，则导出组中的所有成员。 | 
| \$1type | 0.. 1 | 要导出的 FHIR 资源类型列表，以逗号分隔。 | 
| \$1since | 0.. 1 | 仅包括在此日期和时间之后更新的资源。 | 
| \$1until | 0.. 1 | 仅包括在此日期和时间之前更新的资源。 | 
| exportType | 0.. 1 | 要执行的导出类型。有效值：hl7.fhir.us.davinci-atr、hl7.fhir.us.davinci-pdex、hl7.fhir.us.davinci-pdex.p2p、hl7.fhir.us.davinci-pdex.member。默认值：hl7.fhir.us.davinci-atr。 | 
| \$1includeEOB2xWoFinancial | 0.. 1 | 指定是否包含已删除财务数据的 CARIN BB 2.x ExplanationOfBenefit 资源。默认值：false。 | 

### 支持的资源类型
<a name="davinci-data-export-supported-resources"></a>

支持的资源类型取决于您指定的导出类型。对于 ATR 导出，支持以下资源类型：
+ `Group`
+ `Patient`
+ `Coverage`
+ `RelatedPerson`
+ `Practitioner`
+ `PractitionerRole`
+ `Organization`
+ `Location`

对于 PDex 导出（提供者访问权限和成员访问权限），除了上述类型外，还支持所有临床和索赔资源类型。 Payer-to-Payer有关支持的资源类型的完整列表，请参阅《[美国核心实施指南》(STU 6.1)](https://hl7.org/fhir/us/core/STU6.1/)、《C [ARIN Blue Button 实施指南》](https://hl7.org/fhir/us/carin-bb/)和《[达芬奇事先授权支持](https://hl7.org/fhir/us/davinci-pas/)实施指南》。

## 导出类型
<a name="davinci-data-export-types"></a>

该`$davinci-data-export`操作支持以下导出类型。您可以使用`exportType`参数指定导出类型。


| 导出类型 | 用途 | 数据范围 | 时间限制 | 
| --- | --- | --- | --- | 
| hl7.fhir.us.davinci-atr | 成员归因列表 | 与归因相关的资源 | 无 | 
| hl7.fhir.us.davinci-pdex | 提供商访问权限 API | 归因患者的临床和索赔数据 | 5 年 | 
| hl7.fhir.us.davinci-pdex.p2p | Payer-to-Payer 交易所 | 保险过渡的成员历史数据 | 5 年 | 
| hl7.fhir.us.davinci-pdex.member | 成员访问权限 API | 会员自己的健康数据 | 5 年 | 

**注意**  
对于 PDex 出口，5 年期限不适用于 ATR 资源类型（`Group`、、`Patient`、、`Coverage`、`RelatedPerson`、`Practitioner`、`PractitionerRole``Organization`、`Location`）。无论年龄大小，这些资源始终包括在内。

### ATR (hl7.fhir.us.davinci-atr)
<a name="davinci-data-export-type-atr"></a>

使用 ATR 导出类型，您可以导出成员归因列表数据。使用此导出类型为群组中的成员检索与归因相关的资源。欲了解更多信息，请参阅[达芬奇 ATR 出口业务](https://build.fhir.org/ig/HL7/davinci-atr/OperationDefinition-davinci-data-export.html)。

支持的资源类型  
`Group`, `Patient`, `Coverage`, `RelatedPerson`, `Practitioner`, `PractitionerRole`, `Organization`, `Location`

时间过滤  
不应用任何时间过滤。无论日期如何，都会导出所有匹配的资源。

### PDex 导出类型
<a name="davinci-data-export-type-pdex"></a>

所有 PDex 导出类型都使用相同的支持的配置文件和筛选逻辑。有关更多信息，请参阅 [Da Vinci PDex 提供商访问权限 API](https://build.fhir.org/ig/HL7/davinci-epdx/provider-access-api.html)。支持以下配置文件：
+ 美国核心 3.1.1、6.1.0 和 7.0.0
+ PDex 事先授权（不支持会员访问）
+ CARIN BB 2.x 基本概况：住院机构、门诊机构、专业、口腔 NonClinician、药房

提供商访问权限 (`hl7.fhir.us.davinci-pdex`)  
使网络内提供者能够检索归因患者的患者数据。

Payer-to-Payer (`hl7.fhir.us.davinci-pdex.p2p`)  
当患者更换保险时，允许付款人之间进行数据交换。

成员访问权限 (`hl7.fhir.us.davinci-pdex.member`)  
允许成员访问自己的健康数据。这种导出类型可能包括索赔资源中的财务数据。

## 个人资料 Support 和包含逻辑
<a name="davinci-data-export-profile-support"></a>

对于 PDex 导出，该`$davinci-data-export`操作使用`meta.profile`元素中的配置文件声明来确定要在导出中包含哪些资源。

### ExplanationOfBenefit 资源处理
<a name="davinci-data-export-carin-handling"></a>

`ExplanationOfBenefit`(EOB) 资源根据其`meta.profile`申报被纳入或排除在 PDex 出口之外：
+ ExplanationOfBenefit 带有 CARIN BB 1.x 配置文件的资源不包括在导出范围内。
+ ExplanationOfBenefit 未`meta.profile`设置的资源将从导出中排除。
+ ExplanationOfBenefit 始终包含具有 CARIN BB 2.x Basis 配置文件的资源。
+ ExplanationOfBenefit 默认情况下，不包括包含财务数据的 CARIN BB 2.x 配置文件的资源。设置后`_includeEOB2xWoFinancial=true`，它们将包含在去除的财务数据中，并将资源转换为相应的 Basis 配置文件。
+ ExplanationOfBenefit 带有 “ PDex 事先授权” 配置文件的资源始终包括在内。

### 财务数据转换
<a name="davinci-data-export-financial-transformation"></a>

设置后`_includeEOB2xWoFinancial=true`，操作会通过删除财务数据将 [CARIN BB 2.x](https://hl7.org/fhir/us/carin-bb/) ExplanationOfBenefit 资源转换为相应的 Basis 配置文件。例如，将`C4BB ExplanationOfBenefit Oral`资源转换为`C4BB ExplanationOfBenefit Oral Basis`，这会根据 FHIR 规范从记录中删除财务数据。

转换期间会移除以下财务数据元素：
+ 对元素进行所有切片 `total`
+ 所有带`amounttype`切片的`adjudication`元素
+ 所有`item.adjudication`包含金额信息的元素

该操作还会在转换过程中更新配置文件元数据：
+ `meta.profile`已更新为 Basis 配置文件规范 URL
+ 版本已更新至 CARIN BB 2.x Basis 版本
+ 数据存储中的现有资源未被修改
+ 导出的资源不会保留回数据存储中

### 配置文件检测规则
<a name="davinci-data-export-profile-detection"></a>

该操作使用以下规则来检测和验证配置文件：
+ 版本检测基于规`meta.profile`范 URLs
+ 如果资源声明的任何配置文件符合导出标准，则包含该资源
+ 配置文件验证是在导出处理过程中进行的

## 为期五年的 PDex 出口时间过滤
<a name="davinci-data-export-temporal-filtering"></a>

对于所有 PDex 导出类型，根据资源上次更新时间 HealthLake 应用 5 年时间过滤器。时间过滤器适用于除以下核心归因资源类型之外的所有资源，这些资源无论使用年限如何，都将始终导出：
+ `Patient`
+ `Coverage`
+ `Organization`
+ `Practitioner`
+ `PractitionerRole`
+ `RelatedPerson`
+ `Location`
+ `Group`

这些管理和人口资源是免税的，因为它们为导出的数据提供了基本的背景信息。ATR 导出不受任何时间筛选。

## 示例请求
<a name="davinci-data-export-examples"></a>

以下示例说明如何启动不同导出类型的导出任务。

*ATR 导出*

```
GET https://healthlake.{region}.amazonaws.com/datastore/{datastoreId}/r4/Group/example-group/$davinci-data-export?_type=Group,Patient,Coverage,Practitioner,Organization&exportType=hl7.fhir.us.davinci-atr

POST https://healthlake.{region}.amazonaws.com/datastore/{datastoreId}/r4/Group/example-group/$davinci-data-export?_type=Group,Patient,Coverage,Practitioner,Organization&exportType=hl7.fhir.us.davinci-atr
Content-Type: application/json

{
  "DataAccessRoleArn": "arn:aws:iam::444455556666:role/your-healthlake-service-role",
  "JobName": "attribution-export-job",
  "OutputDataConfig": {
    "S3Configuration": {
      "S3Uri": "s3://your-export-bucket/EXPORT-JOB",
      "KmsKeyId": "arn:aws:kms:region:444455556666:key/1234abcd-12ab-34cd-56ef-1234567890ab"
    }
  }
}
```

*提供商访问导出并删除 ExplanationOfBenefit 财务数据*

```
GET https://healthlake.{region}.amazonaws.com/datastore/{datastoreId}/r4/Group/example-group/$davinci-data-export?_type=Patient,Observation,Condition,MedicationRequest,ExplanationOfBenefit&exportType=hl7.fhir.us.davinci-pdex&_includeEOB2xWoFinancial=true
```

*Payer-to-Payer 出口*

```
GET https://healthlake.{region}.amazonaws.com/datastore/{datastoreId}/r4/Group/example-group/$davinci-data-export?_type=Patient,Coverage,ExplanationOfBenefit,Condition,Procedure&exportType=hl7.fhir.us.davinci-pdex.p2p&_includeEOB2xWoFinancial=true
```

*导出特定患者的成员访问权限*

```
GET https://healthlake.{region}.amazonaws.com/datastore/{datastoreId}/r4/Group/example-group/$davinci-data-export?_type=Patient,Observation,Condition,ExplanationOfBenefit,MedicationRequest&exportType=hl7.fhir.us.davinci-pdex.member&patient=Patient/example-patient-id
```

## 示例响应
<a name="davinci-data-export-sample-response"></a>

```
{
  "datastoreId": "eaee622d8406b41eb86c0f4741201ff9",
  "jobStatus": "SUBMITTED",
  "jobId": "48d7b91dae4a64d00d54b70862f33f61"
}
```

## 资源关系
<a name="davinci-data-export-resource-relationships"></a>

该操作根据资源在成员归因列表中的关系导出资源：

```
Group (Attribution List)
├── Patient (Members)
├── Coverage → RelatedPerson (Subscribers)
├── Practitioner (Attributed Providers)
├── PractitionerRole → Location
└── Organization (Attributed Providers)
```

### 资源来源
<a name="davinci-data-export-resource-sources"></a>


| 资源 | 来源位置 | 说明 | 
| --- | --- | --- | 
| Patient | Group.member.entity | 属于归因列表成员的患者 | 
| Coverage | Group.member.extension:coverageReference | 导致患者会员资格的承保范围 | 
| Organization | Group.member.extension:attributedProvider | 患者归因于的组织 | 
| Practitioner | Group.member.extension:attributedProvider | 患者归因于的个人从业者 | 
| PractitionerRole | Group.member.extension:attributedProvider | 患者所扮演的从业者角色 | 
| RelatedPerson | Coverage.subscriber | 报道的订阅者 | 
| Location | PractitionerRole.location | 与从业者角色相关的地点 | 
| Group | 输入端点 | 归因列表本身 | 

## Job 管理
<a name="davinci-data-export-job-management"></a>

查看 Job 状态  
`GET [base]/export/[job-id]`

取消作业  
`DELETE [base]/export/[job-id]`

### 作业生命周期
<a name="davinci-data-export-job-lifecycle"></a>
+ `SUBMITTED`-已接收 Job 并已排队
+ `IN_PROGRESS`-Job 正在处理中
+ `COMPLETED`-Job 成功完成，文件可供下载
+ `FAILED`-Job 遇到了错误

## 输出格式
<a name="davinci-data-export-output-format"></a>
+ *文件格式*：NDJSON（以换行符分隔的 JSON）
+ *文件组织*：每种资源类型都有单独的文件
+ *文件扩展名*：.ndjson
+ *位置*：指定的 S3 存储桶和路径

## 错误处理
<a name="davinci-data-export-error-handling"></a>

如果出现以下情况，该操作会返回 HTTP 400 错误请求： OperationOutcome 

授权错误  
中指定的 IAM 角色`DataAccessRoleArn`没有足够的权限来执行导出操作。有关所需的 S3 和 KMS 权限的完整列表，请参阅[为导出任务设置权限](getting-started-setting-up.md#setting-up-export-permissions)。

参数验证错误  
+ 该`patient`参数的格式未设置为 `Patient/id,Patient/id,...`
+ 一个或多个患者推荐无效或不属于指定群体
+ `exportType`参数值不是支持的导出类型
+ 该`_type`参数包含指定导出类型不支持的资源类型
+ `_type`参数缺少`hl7.fhir.us.davinci-atr`导出类型所需的资源类型 (`Group``Patient`、、`Coverage`)
+ `_includeEOB2xWoFinancial`参数值不是有效的布尔值

资源验证错误  
+ 数据存储中不存在指定的组资源
+ 指定的群组资源没有成员
+ 一个或多个小组成员引用数据存储中不存在的患者资源

## 安全和授权
<a name="davinci-data-export-security"></a>
+ 适用标准的 FHIR 授权机制
+ 数据访问角色必须具有 S3 和 KMS 操作所需的 IAM 权限。有关所需权限的完整列表，请参阅[为导出任务设置权限](getting-started-setting-up.md#setting-up-export-permissions)。

## 最佳实践
<a name="davinci-data-export-best-practices"></a>
+ *资源类型选择*：仅请求所需的资源类型，以最大限度地减少导出大小和处理时间
+ *基于时间的筛选*：使用`_since`参数进行增量导出
+ *患者筛选*：当您只需要特定成员的数据时，请使用该`patient`参数
+ *Job 监控*：定期检查大宗出口的任务状态
+ *错误处理*：为失败的作业实现正确的重试逻辑
+ *时间过滤器感知*：对于 PDex 导出，在选择资源类型时，请考虑使用 5 年时间过滤器
+ *删除财务数据*：`_includeEOB2xWoFinancial=true`当您需要不包含财务信息的索赔数据时使用
+ *配置文件管理*：确保资源具有适当的配置文件声明，在摄取之前根据目标配置文件进行验证，并使用配置文件版本控制导出行为

## 限制
<a name="davinci-data-export-limitations"></a>
+ `patient`参数中最多可以指定 500 名患者
+ 导出仅限于组级操作
+ 仅支持每种导出类型的预定义资源类型集
+ 输出始终采用 NDJSON 格式
+ PDex 出口仅限于 5 年的临床和索赔数据
+ 财务数据转换仅适用于 CARIN BB 2.x 配置文件 ExplanationOfBenefit 

## 其他资源
<a name="davinci-data-export-additional-resources"></a>
+ [达芬奇会员归因列表 IG](https://build.fhir.org/ig/HL7/davinci-atr/)
+ [Da Vinci Payer Data Exchange IG](https://hl7.org/fhir/us/davinci-pdex/)
+ [CARIN 消费者导向付款人 Data Exchange IG](https://build.fhir.org/ig/HL7/carin-bb/)
+ [美国核心实施指南](https://www.hl7.org/fhir/us/core/)
+ [FHIR 批量数据访问规范](https://hl7.org/fhir/uv/bulkdata/)

# 使用生成临床文档 `$document`
<a name="reference-fhir-operations-document"></a>

AWS HealthLake 现在支持组合资源的`$document`操作，使您能够通过将组合及其所有引用资源捆绑到一个统一的包中来生成完整的临床文档。此操作对于需要满足以下要求的医疗保健应用程序至关重要：
+ 创建标准化临床文档
+ 交换完整的患者记录
+ 存储全面的临床文档
+ 生成包含所有相关背景的报告

## 用法
<a name="document-usage"></a>

可以使用 GET 和 POST 方法在组合资源上调用该`$document`操作：

**支持的操作**  


```
GET/POST [base]/Composition/[id]/$document
```

## 支持的参数
<a name="document-parameters"></a>

HealthLake 支持以下 FHIR `$document` 参数：


| 参数 | Type | 必需 | 默认值 | 说明 | 
| --- | --- | --- | --- | --- | 
| persist | 布尔值 | 否 | false | 表示服务器是否应存储生成的文档包的布尔值 | 

## 示例
<a name="document-examples"></a>

**获取请求**  


```
GET [base]/Composition/180f219f-97a8-486d-99d9-ed631fe4fc57/$document?persist=true
```

**带参数的 POST 请求**  


```
POST [base]/Composition/180f219f-97a8-486d-99d9-ed631fe4fc57/$document
Content-Type: application/fhir+json

{
  "resourceType": "Parameters",
  "parameter": [
    {
      "name": "persist",
      "valueBoolean": true
    }
  ]
}
```

**示例响应**  
该操作返回一个 “文档” 类型的 Bundle 资源，其中包含构图和所有引用的资源：

```
{
  "resourceType": "Bundle",
  "id": "180f219f-97a8-486d-99d9-ed631fe4fc57",
  "type": "document",
  "identifier": {
    "system": "urn:ietf:rfc:3986",
    "value": "urn:uuid:0c3151bd-1cbf-4d64-b04d-cd9187a4c6e0"
  },
  "timestamp": "2024-06-21T15:30:00Z",
  "entry": [
    {
      "fullUrl": "http://example.org/fhir/Composition/180f219f-97a8-486d-99d9-ed631fe4fc57",
      "resource": {
        "resourceType": "Composition",
        "id": "180f219f-97a8-486d-99d9-ed631fe4fc57",
        "status": "final",
        "type": {
          "coding": [
            {
              "system": "http://loinc.org",
              "code": "34133-9",
              "display": "Summary of Episode Note"
            }
          ]
        },
        "subject": {
          "reference": "Patient/example"
        },
        "section": [
          {
            "title": "Allergies",
            "entry": [
              {
                "reference": "AllergyIntolerance/123"
              }
            ]
          }
        ]
      }
    },
    {
      "fullUrl": "http://example.org/fhir/Patient/example",
      "resource": {
        "resourceType": "Patient",
        "id": "example",
        "name": [
          {
            "family": "Smith",
            "given": ["John"]
          }
        ]
      }
    },
    {
      "fullUrl": "http://example.org/fhir/AllergyIntolerance/123",
      "resource": {
        "resourceType": "AllergyIntolerance",
        "id": "123",
        "patient": {
          "reference": "Patient/example"
        },
        "code": {
          "coding": [
            {
              "system": "http://snomed.info/sct",
              "code": "418689008",
              "display": "Allergy to penicillin"
            }
          ]
        }
      }
    }
  ]
}
```

## 行为
<a name="document-behavior"></a>

该`$document`操作：

1. 将指定的合成资源作为文档的基础

1. 识别并检索组合直接引用的所有资源

1. 将构图和所有引用的资源打包成一个 “文档” 类型的捆绑包

1. 当 persist 参数设置为 true 时，将生成的文档包存储在数据存储中

1. 识别和检索合成间接引用的资源，以生成全面的文档

该`$document`操作目前支持按以下格式检索资源引用：

1. 

   ```
   GET https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/Resource/id
   ```

1. 资源/ID

合成资源中不支持的资源引用将从生成的文档中过滤掉。

## 错误处理
<a name="document-error-handling"></a>

该操作处理以下错误情况：
+ 400 错误请求：`$document`操作无效（请求不一致），或者如果在 persist 设置为 true 时由于筛选出引用而导致生成的文档未通过 FHIR 验证
+ 404 未找到：未找到合成资源

有关`$document`操作规范的更多信息，请参阅 [FHIR R4 组合`$document`文档](https://www.hl7.org/fhir/R4/composition-operation-document.html)。

# 使用永久删除资源 `$erase`
<a name="reference-fhir-operations-erase"></a>

AWS HealthLake 支持该`$erase`操作，允许永久删除特定资源及其历史版本。当您需要执行以下操作时，此操作特别有用：
+ 永久移除个别资源
+ 删除特定的版本历史记录
+ 管理单个资源生命周期
+ 遵守特定的数据删除要求

## 用法
<a name="erase-usage"></a>

可以在两个级别上调用该`$erase`操作：

**资源实例级别**  


```
POST [base]/[ResourceType]/[ID]/$erase?deleteAuditEvent=true
```

**特定版本级别**  


```
POST [base]/[ResourceType]/[ID]/_history/[VersionID]/$erase
```

## 参数
<a name="erase-parameters"></a>


| 参数 | Type | 必需 | 默认值 | 说明 | 
| --- | --- | --- | --- | --- | 
| deleteAuditEvent | 布尔值 | 否 | false | 如果为 true，则删除关联的审计事件 | 

## 示例
<a name="erase-examples"></a>

**请求示例**  


```
POST [base]/Patient/example-patient/$erase
```

**响应示例**  


```
{
      "jobId": "5df47e2f51ff3c731847678cb8cad48e",
      "jobStatus": "SUBMITTED"
    }
```

## 作业状态
<a name="erase-job-status"></a>

要检查擦除作业的状态，请执行以下操作：

```
GET [base]/$erase/[jobId]
```

该操作返回任务状态信息：

```
{
      "datastoreId": "36622996b1fcecb7e12ee2ee085308d3",
      "jobId": "5df47e2f51ff3c731847678cb8cad48e",
      "status": "COMPLETED",
      "submittedTime": "2025-10-30T16:39:24.160Z"
    }
```

## 行为
<a name="erase-behavior"></a>

该`$erase`操作：

1. 异步处理以确保数据完整性

1. 维护 ACID 交易

1. 提供作业状态跟踪

1. 永久移除指定资源及其版本

1. 包括删除活动的全面审核记录

1. 支持选择性删除审计事件

## 审核日志
<a name="erase-audit-logging"></a>

`$erase`操作记录 DeleteResource 与用户 ID、时间戳和资源详细信息相同。

## 限制
<a name="erase-limitations"></a>
+ `$erased`资源不会出现在搜索结果或`_history`查询中。
+ 正在删除的资源在处理过程中可能暂时无法访问
+ 资源被永久删除后，存储计量会立即调整

# 使用获取患者数据 `Patient/$everything`
<a name="reference-fhir-operations-everything"></a>

 该`Patient/$everything`操作用于查询 FHIR `Patient` 资源以及与之相关的任何其他资源。`Patient`该手术可用于为患者提供访问其全部记录的权限，也可以让提供者执行与患者相关的批量数据下载。 HealthLake`Patient/$everything`为特定患者提供支持`id`。

`Patient/$everything`是一个 FHIR REST API 操作，可以调用该操作，如以下示例所示。

------
#### [ GET request ]

```
GET https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/Patient/id/$everything
```

------

**注意**  
响应中的资源按资源类型和资源排序`id`。  
响应中总是填充有`Bundle.total`。

## `Patient/$everything` 参数
<a name="patient-everything-query-params"></a>

HealthLake 支持以下查询参数


| 参数 | Details | 
| --- | --- | 
|  开启  |  获取指定开始日期之后的所有`Patient`数据。  | 
|  最终  |  获取指定结束日期之前的所有`Patient`数据。  | 
|  since  |  获取指定日期之后更新的所有`Patient`数据。  | 
|  \$1type  |  获取特定资源类型的`Patient`数据。  | 
|  \$1count  |  获取`Patient`数据并指定页面大小。  | 

**Example -获取指定开始日期之后的所有患者数据**  
`Patient/$everything`可以使用`start`筛选器仅查询特定日期之后的数据。  

```
GET https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/Patient/id/$everything?start=2024-03-15T00:00:00.000Z
```

**Example -获取指定结束日期之前的所有`Patient`数据**  
patient \$1every `end` thing 只能使用过滤器来查询特定日期之前的数据。  

```
GET https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/Patient/id/$everything?end=2024-03-15T00:00:00.000Z
```

**Example -获取在指定日期之后更新所有`Patient`数据**  
`Patient/$everything`可以使用`since`筛选器仅查询在特定日期之后更新的数据。  

```
GET https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/Patient/id/$everything?since=2024-03-15T00:00:00.000Z
```

**Example -获取特定资源类型的`Patient`数据**  
patient \$1everything 可以使用`_type`过滤器来指定要包含在响应中的特定资源类型。可以在逗号分隔的列表中指定多种资源类型。  

```
GET https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/Patient/id/$everything?_type=Observation,Condition
```

**Example -获取`Patient`数据并指定页面大小**  
病人 \$1everything 都可以使用`_count`来设置页面大小。  

```
GET https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/Patient/id/$everything?_count=15
```

## `Patient/$everything``start`和`end`属性
<a name="reference-patient-everything-start-end-attributes"></a>

HealthLake 支持`Patient/ $everything``start`和`end`查询参数的以下资源属性。


| 资源 | 资源元素 | 
| --- | --- | 
| Account | 账户。服务周期。开始 | 
| AdverseEvent | AdverseEvent. 日期 | 
| AllergyIntolerance | AllergyIntolerance. RecordedDate | 
| 预约 | 预约. 开始 | 
| AppointmentResponse | AppointmentResponse.start | 
| AuditEvent | AuditEvent.period.start | 
| Basic | basic.created | 
| BodyStructure | NO\$1DATE | 
| CarePlan | CarePlan.period.start | 
| CareTeam | CareTeam.period.start | 
| ChargeItem | ChargeItem。 occurrenceDateTime， ChargeItem.occurrencePeriod.start，.occurrenceTiming.event ChargeItem | 
| 声明 | Claim.billablePeriod.star | 
| ClaimResponse | ClaimResponse. 已创建 | 
| ClinicalImpression | ClinicalImpression. 日期 | 
| Communication | 通信. 已发送 | 
| CommunicationRequest | CommunicationRequest。 occurrenceDateTime， CommunicationRequest.occurrencePeriod.start | 
| 合成 | 作文. 日期 | 
| 条件 | 条件. 录制日期 | 
| 同意 | 同意。dateTime | 
| 涵盖 | Coverage.period.Start | 
| CoverageEligibilityRequest | CoverageEligibilityRequest. 已创建 | 
| CoverageEligibilityResponse | CoverageEligibilityResponse. 已创建 | 
| DetectedIssue | DetectedIssue. 已识别 | 
| DeviceRequest | DeviceRequest.authoredon | 
| DeviceUseStatement | DeviceUseStatement.recordedOn | 
| DiagnosticReport | DiagnosticReport。有效 | 
| DocumentManifest | DocumentManifest. 已创建 | 
| DocumentReference | DocumentReference.context.period.start | 
| 遭遇 | Encounter.period.Start | 
| EnrollmentRequest | EnrollmentRequest. 已创建 | 
| EpisodeOfCare | EpisodeOfCare.period.start | 
| ExplanationOfBenefit | ExplanationOfBenefit.billablePeriod.start | 
| FamilyMemberHistory | NO\$1DATE | 
| 标记 | flag.period.start | 
| Goal | goal.statusDate | 
| Group | NO\$1DATE | 
| ImagingStudy | ImagingStudy。已开始 | 
| 免疫接种 | 免疫接种。已记录 | 
| ImmunizationEvaluation | ImmunizationEvaluation. 日期 | 
| ImmunizationRecommendation | ImmunizationRecommendation. 日期 | 
| Invoice | 发票日期 | 
| 列表 | List.date | 
| MeasureReport | MeasureReport.period.start | 
| 媒体 | Media. 已发布 | 
| MedicationAdministration | MedicationAdministration。有效 | 
| MedicationDispense | MedicationDispense. 准备好时 | 
| MedicationRequest | MedicationRequest.authoredon | 
| MedicationStatement | MedicationStatement.dateAss | 
| MolecularSequence | NO\$1DATE | 
| NutritionOrder | NutritionOrder.dateTime | 
| 观察 | 观察。有效 | 
| 病人 | NO\$1DATE | 
| 人员 | NO\$1DATE | 
| 过程 | 程序. 已执行 | 
| 出处 | 出处。发生时期。开始，出处。 occurredDateTime | 
| QuestionnaireResponse | QuestionnaireResponse. 创作 | 
| RelatedPerson | NO\$1DATE | 
| RequestGroup | RequestGroup.authoredon | 
| ResearchSubject | ResearchSubject. 句点 | 
| RiskAssessment | RiskAssessment。 occurrenceDateTime， RiskAssessment.occurrencePeriod.start | 
| Schedule | Schedule.PlanningHorizon | 
| ServiceRequest | ServiceRequest.authoredon | 
| 标本 | 标本。接收时间 | 
| SupplyDelivery | SupplyDelivery。 occurrenceDateTime， SupplyDelivery.occurrencePeriod.start，.occurrenceTiming.event SupplyDelivery | 
| SupplyRequest | SupplyRequest.authoredon | 
| VisionPrescription | VisionPrescription.dateWrit | 

# 使用检索 ValueSet 验证码 `$expand`
<a name="reference-fhir-operations-expand"></a>

AWS HealthLake 现在支持您作为客户提取的 ValueSets 内容的`$expand`操作，使您能够检索这些 ValueSet 资源中包含的完整代码列表。当您需要执行以下操作时，此操作特别有用：
+ 检索所有可能的代码以进行验证
+ 在用户界面中显示可用选项
+ 在特定的术语上下文中执行全面的代码查找

## 用法
<a name="expand-usage"></a>

可以使用 GET 和 POST 方法对 ValueSet 资源调用该`$expand`操作：

**支持的操作**  


```
GET/POST [base]/ValueSet/[id]/$expand
GET [base]/ValueSet/$expand?url=http://example.com
POST [base]/ValueSet/$expand
```

## 支持的参数
<a name="expand-parameters"></a>

HealthLake 支持 FHIR R4 `$expand` 参数的子集：


| 参数 | Type | 必需 | 说明 | 
| --- | --- | --- | --- | 
| url | uri | 否 | 待扩展的权威网址 ValueSet  | 
| id | id | 否 | ValueSet 要扩展的资源 ID（用于 GET 或 POST 操作） | 
| filter | 字符串 | 否 | 筛选代码扩展结果 | 
| count | 整数 | 否 | 要返回的代码数量 | 
| offset | 整数 | 否 | 返回之前要跳过的匹配代码的数量。过滤后仅适用于匹配的代码，不适用于原始代码中未经过滤的完整内容 ValueSet | 

## 示例
<a name="expand-examples"></a>

**通过 ID 获取请求**  


```
GET [base]/ValueSet/example-valueset/$expand
```

**使用过滤器通过 URL 获取请求**  


```
GET [base]/ValueSet/$expand?url=http://example.com/ValueSet/my-valueset&filter=male&count=5
```

**带参数的 POST 请求（按 ID）**  


```
POST [base]/ValueSet/example-valueset/$expand
Content-Type: application/fhir+json

{
  "resourceType": "Parameters",
  "parameter": [
    {
      "name": "count",
      "valueInteger": 10
    },
    {
      "name": "filter",
      "valueString": "admin"
    }
  ]
}
```

**带参数的 POST 请求（通过 URL）**  


```
POST [base]/ValueSet/$expand
Content-Type: application/fhir+json

{
  "resourceType": "Parameters",
  "parameter": [
    {
      "name": "url",
      "valueUri": "http://hl7.org/fhir/ValueSet/administrative-gender"
    },
    {
      "name": "count",
      "valueInteger": 10
    }
  ]
}
```

**示例响应**  
该操作返回一个 ValueSet 资源，其`expansion`元素包含扩展代码：

```
{
  "resourceType": "ValueSet",
  "id": "administrative-gender",
  "status": "active",
  "expansion": {
    "identifier": "urn:uuid:12345678-1234-1234-1234-123456789abc",
    "timestamp": "2024-01-15T10:30:00Z",
    "total": 4,
    "parameter": [
      {
        "name": "count",
        "valueInteger": 10
      }
    ],
    "contains": [
      {
        "system": "http://hl7.org/fhir/administrative-gender",
        "code": "male",
        "display": "Male"
      },
      {
        "system": "http://hl7.org/fhir/administrative-gender",
        "code": "female",
        "display": "Female"
      },
      {
        "system": "http://hl7.org/fhir/administrative-gender",
        "code": "other",
        "display": "Other"
      },
      {
        "system": "http://hl7.org/fhir/administrative-gender",
        "code": "unknown",
        "display": "Unknown"
      }
    ]
  }
}
```

响应包括以下内容：
+ expansion.total：扩展版中的代码总数 ValueSet
+ expansion.contains：扩展代码数组及其系统、代码和显示值
+ expansion.parameter：扩展请求中使用的参数

有关`$expand`操作规范的更多信息，请参阅 [FHIR R4 文档 ValueSet `$expand`](https://build.fhir.org/valueset-operation-expand.html)。

# 使用 FHI HealthLake R 导出数据 `$export`
<a name="reference-fhir-operations-export"></a>

您可以使用 FHIR \$1export 操作从 HealthLake 数据存储中批量导出数据。 HealthLake 支持 FHIR `$export` 使用`POST`和`GET`请求。要向发出导出请求`POST`，您必须拥有具有所需权限的 IAM 用户、群组或角色，在请求中指定`$export`，并在请求正文中包含所需的参数。

**注意**  
使用 FHIR 发出的所有 HealthLake 导出请求`$export`都将以`ndjson`格式返回并导出到 Amazon S3 存储桶，其中每个 Amazon S3 对象仅包含一个 FHIR 资源类型。  
您可以根据 AWS 账户服务配额对导出请求进行排队。有关更多信息，请参阅 [服务限额](reference-healthlake-endpoints-quotas.md#reference-healthlake-quotas)。

HealthLake 支持以下三种类型的批量导出端点请求。


**HealthLake 批量`$export`类型**  

| 导出类型 | 说明 | 语法 | 
| --- | --- | --- | 
| 系统 | 从 HealthLake FHIR 服务器导出所有数据。 | `POST https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/$export`  | 
| 所有患者 | 导出与所有患者相关的所有数据，包括与患者资源类型相关的资源类型。 | `POST https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/Patient/$export` `GET https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/Patient/$export` | 
| 患者群体 | 导出与使用群组 ID 指定的一组患者相关的所有数据。 | `POST https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/Group/id/$export` `GET https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/Group/id/$export` | 

## 开始前的准备工作
<a name="export-rest-before-you-begin"></a>

要使用适用 HealthLake的 FHIR REST API 提出导出请求，请满足以下要求。
+ 您必须已设置具有必要权限的用户、组或角色才能发出导出请求。要了解更多信息，请参阅[对请求进行授`$export`权](#export-rest-auth)。
+ 您必须已创建服务角色来授予 HealthLake 访问要将数据导出到的 Amazon S3 存储桶的权限。服务角色还必须指定 HealthLake 为服务主体。有关设置权限的更多信息，请参阅[为导出任务设置权限](getting-started-setting-up.md#setting-up-export-permissions)。

## 对请求进行授`$export`权
<a name="export-rest-auth"></a>

要使用 FHIR REST API 成功发出导出请求，请使用 IAM 或 OAuth2 .0 对您的用户、群组或角色进行授权。您还必须具有服务角色。

**使用 IAM 对请求进行授权**  
当您提出`$export`请求时，用户、群组或角色的策略中必须包含 IAM 操作。有关更多信息，请参阅 [为导出任务设置权限](getting-started-setting-up.md#setting-up-export-permissions)。

**在 FHIR 上使用 SMART 授权请求 (2.0) OAuth**  
在支持 FHIR 的 SMART HealthLake 数据存储上`$export`发出请求时，必须分配相应的范围。有关更多信息，请参阅 [SMART 对 FHIR 的资源范围适用于 HealthLake](reference-smart-on-fhir-oauth-scopes.md#smart-on-fhir-scopes-rest)。

**注意**  
`$export`带有`GET`请求的 FHIR 需要相同的身份验证方法或持有者令牌（对于 FHIR 上的 SMART 而言）才能请求导出和检索文件。使用 FHIR 导出的文件`$export``GET`可在 48 小时内下载。

## 提出`$export`请求
<a name="export-rest-request"></a>

本节介绍使用 FHIR REST API 发出导出请求时必须采取的必要步骤。

为避免意外向您的 AWS 账户收费，我们建议您在不提供`$export`语法的情况下通过提出`POST`请求来测试您的请求。

要提出请求，您必须执行以下操作：

1. `$export`在`POST`请求网址中指定支持的终端节点。

1. 指定所需的标题参数。

1. 指定用于定义所需参数的请求正文。

### 步骤 1：`$export`在`POST`请求网址中指定支持的[终端节点](reference-healthlake-endpoints-quotas.md#reference-healthlake-endpoints)。
<a name="export-rest-request-step-1"></a>

HealthLake 支持三种类型的批量导出端点请求。要发出批量导出请求，您必须在三个支持的终端节点之一上发出`POST`基于请求的请求。以下示例演示了在请求网址`$export`中指定何处。
+ `POST https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/$export`
+ `POST https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/Patient/$export`
+ `POST https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/Group/id/$export`

您可以在`POST`请求字符串中使用以下支持的搜索参数。

#### 支持的搜索参数
<a name="export-rest-query-parameters"></a>

HealthLake 在批量导出请求中支持以下搜索修饰符。

以下示例包括特殊字符，在提交请求之前必须对其进行编码。


| Name | 必填？ | 说明 | 示例 | 
| --- | --- | --- | --- | 
| \$1outputFormat | 否 | 要生成的请求的批量数据文件的格式。可接受的值为application/fhir\$1ndjson、application/ndjson、ndjson。 |  | 
| \$1type | 否 | 要包含在导出任务中的以逗号分隔的 FHIR 资源类型字符串。我们建议将其包括在内，\$1type因为在导出所有资源时，这可能会影响成本。 | &\$1type=MedicationStatement, Observation | 
| \$1since | 否 | 在日期时间戳当天或之后修改的资源类型。如果某个资源类型没有上次更新时间，则会将其包含在您的响应中。 | &\$1since=2024-05-09T00%3A00%3A00Z | 
| \$1until | 否 | 在日期时间戳当天或之前修改的资源类型。与结合使用\$1since以定义特定的导出时间范围。如果某个资源类型没有上次更新时间，则它们将被排除在您的响应之外。 | &\$1until=2024-12-31T23%3A59%3A59Z | 

### 步骤 2：指定所需的标题参数
<a name="export-rest-request-step-2"></a>

要使用 FHIR REST API 发出导出请求，必须指定以下标头参数。
+ Content-Type：`application/fhir+json`
+ 更喜欢：`respond-async`

接下来，您必须在请求正文中指定所需的元素。

### 步骤 3：指定用于定义所需参数的请求正文。
<a name="export-rest-request-step-3"></a>

导出请求还需要`JSON`格式化的正文。正文可以包含以下参数。


| Key | 必填？ | 说明 | 值 | 
| --- | --- | --- | --- | 
| DataAccessRoleArn | 是 |  HealthLake 服务角色的 ARN。使用的服务角色必须指定 HealthLake 为服务主体。 | arn:aws:iam::444455556666:role/your-healthlake-service-role | 
| JobName | 否 | 导出请求的名称。 | your-export-job-name | 
| S3Uri | 是 |  OutputDataConfig 钥匙的一部分。将下载导出数据的目标存储桶的 S3 URI。 | s3://amzn-s3-demo-bucket/EXPORT-JOB/ | 
| KmsKeyId | 是 |  OutputDataConfig 钥匙的一部分。用于保护 Amazon S3 存储桶的 AWS KMS 密钥的 ARN。 | arn:aws:kms:region-of-bucket:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab | 

**Example 使用 FHIR REST API 发出的导出请求的正文**  
要使用 FHIR REST API 发出导出请求，必须指定正文，如下所示。  

```
{
  "DataAccessRoleArn": "arn:aws:iam::444455556666:role/your-healthlake-service-role",
  "JobName": "your-export-job",
  "OutputDataConfig": {
    "S3Configuration": {
      "S3Uri": "s3://amzn-s3-demo-bucket/EXPORT-JOB",
      "KmsKeyId": "arn:aws:kms:region-of-bucket:444455556666:key/1234abcd-12ab-34cd-56ef-1234567890ab"
    }
  }
}
```

请求成功后，您将收到以下回复。

*响应标头*

```
content-location: https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/export/your-export-request-job-id
```

*响应正文*

```
{
  "datastoreId": "your-data-store-id",
  "jobStatus": "SUBMITTED",
  "jobId": "your-export-request-job-id"
}
```

## 管理您的导出请求
<a name="export-rest-management"></a>

成功发出导出请求后，您可以使用描述当前导`$export`出请求的状态和取消当前导出请求`$export`来管理请求。

使用 REST API 取消导出请求时，您只需为提交取消请求之前导出的部分数据付费。

以下主题介绍如何获取当前导出请求的状态或取消当前导出请求。

### 取消导出请求
<a name="export-rest-management-describe"></a>

要取消导出请求，`DELETE`请提出请求并在请求网址中提供任务 ID。

```
DELETE https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/export/your-export-request-job-id
```

请求成功后，您将收到以下信息。

```
{
  "exportJobProperties": {
    "jobId": "your-original-export-request-job-id",
    "jobStatus": "CANCEL_SUBMITTED",
    "datastoreId": "your-data-store-id"
  }
}
```

当您的请求失败时，您会收到以下信息。

```
{
  "resourceType": "OperationOutcome",
  "issue": [
    {
      "severity": "error",
      "code": "not-supported",
      "diagnostics": "Interaction not supported."
    }
  ]
}
```

### 描述导出请求
<a name="export-rest-management-describe"></a>

要获取导出请求的状态，`GET`请使用`export`和您的`export-request-job-id`。

```
GET https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/export/your-export-request-id
```

JSON 响应将包含一个`ExportJobProperties`对象。它可能包含以下键:值对。


| Name | 必填？ | 说明 | 值 | 
| --- | --- | --- | --- | 
| DataAccessRoleArn | 否 |  HealthLake 服务角色的 ARN。使用的服务角色必须指定 HealthLake 为服务主体。 | arn:aws:iam::444455556666:role/your-healthlake-service-role | 
| SubmitTime | 否 | 提交导出任务的日期。 | Apr 21, 2023 5:58:02 | 
| EndTime | 否 | 导出任务完成的时间。 | Apr 21, 2023 6:00:08 PM | 
| JobName | 否 | 导出请求的名称。 | your-export-job-name | 
| JobStatus | 否 |  | 有效值为：<pre>SUBMITTED | IN_PROGRESS | COMPLETED_WITH_ERRORS | COMPLETED |<br />      FAILED</pre> | 
| S3Uri | 是 | [OutputDataConfig](https://docs.aws.amazon.com/healthlake/latest/APIReference/API_OutputDataConfig.html)物体的一部分。将下载导出数据的目标存储桶的 Amazon S3 URI。 | s3://amzn-s3-demo-bucket/EXPORT-JOB/ | 
| KmsKeyId | 是 | [OutputDataConfig](https://docs.aws.amazon.com/healthlake/latest/APIReference/API_OutputDataConfig.html)物体的一部分。用于保护 Amazon S3 存储桶的 AWS KMS 密钥的 ARN。 | arn:aws:kms:region-of-bucket:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab | 

**Example : 使用 FHIR REST API 发出的描述导出请求的正文**  
成功后，您将收到以下 JSON 响应。  

```
{
  "exportJobProperties": {
    "jobId": "your-export-request-id",
    "JobName": "your-export-job",
    "jobStatus": "SUBMITTED",
    "submitTime": "Apr 21, 2023 5:58:02 PM",
    "endTime": "Apr 21, 2023 6:00:08 PM",
    "datastoreId": "your-data-store-id",
    "outputDataConfig": {
      "s3Configuration": {
        "S3Uri": "s3://amzn-s3-demo-bucket/EXPORT-JOB",
        "KmsKeyId": "arn:aws:kms:region-of-bucket:444455556666:key/1234abcd-12ab-34cd-56ef-1234567890ab""
      }
    },
    "DataAccessRoleArn": "arn:aws:iam::444455556666:role/your-healthlake-service-role",
  }
}
```

# FHIR 的`$inquire`手术 HealthLake
<a name="reference-fhir-operations-inquire"></a>

该`$inquire`操作使您可以检查先前提交的先前授权请求的状态。该操作实施了《[达芬奇事先授权支持 (PAS) 实施指南》](https://hl7.org/fhir/us/davinci-pas/)，提供了一个基于 FHIR 的标准化工作流程来检索当前的授权决策。

## 工作原理
<a name="inquire-how-it-works"></a>
+ **提交查询**：您发送了一份 FHIR 捆绑包，其中包含您要查看的索赔和支持信息
+ ** HealthLake 搜索**： ClaimResponse 在您的数据存储中搜索相应的内容
+ **检索**：已检索到最新的授权状态
+ **回应**：您会立即收到包含当前授权状态（已排队、已批准、已拒绝等）的回复

**注意**  
`$inquire`是一个**只读操作**，用于检索现有授权状态。它不会修改或更新您的数据存储中的任何资源。

## API 端点
<a name="inquire-api-endpoint"></a>

```
POST /datastore/{datastoreId}/r4/Claim/$inquire  
Content-Type: application/fhir+json
```

## 请求结构
<a name="inquire-request-structure"></a>

### 捆绑包要求
<a name="inquire-bundle-requirements"></a>

您的请求必须是 FHIR 捆绑包资源，其中包含以下内容：
+ **Bundle.type：必须是** `"collection"`
+ **Bundle.entry**：必须恰好包含**一个索赔资源，其中**包含：
  + `use = "preauthorization"`
  + `status = "active"`
+ **参考资源**：声明中引用的所有资源都必须包含在捆绑包中

**按示例查询**  
您的输入 Bundle 中的资源可用作搜索模板。 HealthLake 使用提供的信息来查找相应的 ClaimResponse。

### 所需的资源
<a name="inquire-required-resources"></a>


| 资源 | 基数 | 配置文件 | 说明 | 
| --- | --- | --- | --- | 
| 索赔 | 1 | PAS 索赔查询 | 您要询问的事先授权 | 
| 病人 | 1 | PAS 受益患者 | 患者人口统计信息 | 
| 组织（保险公司） | 1 | PAS 保险公司组织 | 保险公司 | 
| 组织（提供商） | 1 | PAS 申请组织 | 提交申请的医疗保健提供者 | 

### 重要的搜索条件
<a name="inquire-search-criteria"></a>

HealthLake 搜索 ClaimResponse 使用：
+ 索赔中的@@ **患者推荐**信
+ 索赔中的@@ **保险公司推荐**信
+ 索赔中的@@ **提供者参考**信息
+ 索赔的@@ **创建日期**（作为时间筛选器）

**仅针对患者的查询**  
所有查询都必须针对特定的患者。不允许在没有患者身份的情况下进行全系统查询。

## 示例请求
<a name="inquire-example-request"></a>

```
POST /datastore/example-datastore/r4/Claim/$inquire  
Content-Type: application/fhir+json  
Authorization: Bearer <your-token>  
  
{  
  "resourceType": "Bundle",  
  "id": "PASClaimInquiryBundleExample",  
  "meta": {  
    "profile": ["http://hl7.org/fhir/us/davinci-pas/StructureDefinition/profile-pas-inquiry-request-bundle"]  
  },  
  "identifier": {  
    "system": "http://example.org/SUBMITTER_TRANSACTION_IDENTIFIER",  
    "value": "5269368"  
  },  
  "type": "collection",  
  "timestamp": "2005-05-02T14:30:00+05:00",  
  "entry": [  
    {  
      "fullUrl": "http://example.org/fhir/Claim/MedicalServicesAuthorizationExample",  
      "resource": {  
        "resourceType": "Claim",  
        "id": "MedicalServicesAuthorizationExample",  
        "meta": {  
          "profile": ["http://hl7.org/fhir/us/davinci-pas/StructureDefinition/profile-claim-inquiry"]  
        },  
        "status": "active",  
        "type": {  
          "coding": [{  
            "system": "http://terminology.hl7.org/CodeSystem/claim-type",  
            "code": "professional"  
          }]  
        },  
        "use": "preauthorization",  
        "patient": {  
          "reference": "Patient/SubscriberExample"  
        },  
        "created": "2005-05-02T11:01:00+05:00",  
        "insurer": {  
          "reference": "Organization/InsurerExample"  
        },  
        "provider": {  
          "reference": "Organization/UMOExample"  
        }  
      }  
    },  
    {  
      "fullUrl": "http://example.org/fhir/Patient/SubscriberExample",  
      "resource": {  
        "resourceType": "Patient",  
        "id": "SubscriberExample",  
        "meta": {  
          "profile": ["http://hl7.org/fhir/us/davinci-pas/StructureDefinition/profile-beneficiary"]  
        },  
        "name": [{  
          "family": "SMITH",  
          "given": ["JOE"]  
        }],  
        "gender": "male"  
      }  
    },  
    {  
      "fullUrl": "http://example.org/fhir/Organization/UMOExample",  
      "resource": {  
        "resourceType": "Organization",  
        "id": "UMOExample",  
        "meta": {  
          "profile": ["http://hl7.org/fhir/us/davinci-pas/StructureDefinition/profile-requestor"]  
        },  
        "name": "Provider Organization"  
      }  
    },  
    {  
      "fullUrl": "http://example.org/fhir/Organization/InsurerExample",  
      "resource": {  
        "resourceType": "Organization",  
        "id": "InsurerExample",  
        "meta": {  
          "profile": ["http://hl7.org/fhir/us/davinci-pas/StructureDefinition/profile-insurer"]  
        },  
        "name": "Insurance Company"  
      }  
    }  
  ]  
}
```

## 响应格式
<a name="inquire-response-format"></a>

### 成功响应 (200 OK)
<a name="inquire-success-response"></a>

您将收到一个 PAS 查询回复包，其中包含：
+ **ClaimResponse**当前授权状态；**ClaimResponse**如果符合搜索条件，则为多个
+ 您请求中的所有原始资源（回显）
+ 收集响应的时间戳

**可能的 ClaimResponse 结果**  



| 结果 | 说明 | 
| --- | --- | 
| queued | 授权请求仍在等待审核 | 
| complete | 已做出授权决定（检查是否已批准 disposition /拒绝） | 
| error | 处理过程中出错 | 
| partial | 已授予部分授权 | 

```
{  
  "resourceType": "Bundle",  
  "identifier": {  
        "system": "http://example.org/SUBMITTER_TRANSACTION_IDENTIFIER",  
        "value": "5269367"  
  },  
  "type": "collection",  
  "timestamp": "2005-05-02T14:30:15+05:00",  
  "entry": [  
    {  
      "fullUrl": "http://example.org/fhir/ClaimResponse/InquiryResponseExample",  
      "resource": {  
        "resourceType": "ClaimResponse",  
        "id": "InquiryResponseExample",  
        "meta": {  
          "profile": ["http://hl7.org/fhir/us/davinci-pas/StructureDefinition/profile-claimresponse-inquiry"]  
        },  
        "status": "active",  
        "type": {  
          "coding": [{  
            "system": "http://terminology.hl7.org/CodeSystem/claim-type",  
            "code": "professional"  
          }]  
        },  
        "use": "preauthorization",  
        "patient": {  
          "reference": "Patient/SubscriberExample"  
        },  
        "created": "2005-05-02T11:05:00+05:00",  
        "insurer": {  
          "reference": "Organization/InsurerExample"  
        },  
        "request": {  
          "reference": "Claim/MedicalServicesAuthorizationExample"  
        },  
        "outcome": "complete",  
        "disposition": "Approved",  
        "preAuthRef": "AUTH12345"  
      }  
    },  
    {  
      "fullUrl": "http://example.org/fhir/Claim/MedicalServicesAuthorizationExample",  
      "resource": {  
        "resourceType": "Claim",  
        "id": "MedicalServicesAuthorizationExample",  
        "meta": {  
          "profile": ["http://hl7.org/fhir/us/davinci-pas/StructureDefinition/profile-claim-inquiry"]  
        },  
        "status": "active",  
        "type": {  
          "coding": [{  
            "system": "http://terminology.hl7.org/CodeSystem/claim-type",  
            "code": "professional"  
          }]  
        },  
        "use": "preauthorization",  
        "patient": {  
          "reference": "Patient/SubscriberExample"  
        },  
        "created": "2005-05-02T11:01:00+05:00",  
        "insurer": {  
          "reference": "Organization/InsurerExample"  
        },  
        "provider": {  
          "reference": "Organization/UMOExample"  
        }  
      }  
    },  
    {  
      "fullUrl": "http://example.org/fhir/Patient/SubscriberExample",  
      "resource": {  
        "resourceType": "Patient",  
        "id": "SubscriberExample",  
        "meta": {  
          "profile": ["http://hl7.org/fhir/us/davinci-pas/StructureDefinition/profile-beneficiary"]  
        },  
        "name": [{  
          "family": "SMITH",  
          "given": ["JOE"]  
        }],  
        "gender": "male"  
      }  
    },  
    {  
      "fullUrl": "http://example.org/fhir/Organization/UMOExample",  
      "resource": {  
        "resourceType": "Organization",  
        "id": "UMOExample",  
        "meta": {  
          "profile": ["http://hl7.org/fhir/us/davinci-pas/StructureDefinition/profile-requestor"]  
        },  
        "name": "Provider Organization"  
      }  
    },  
    {  
      "fullUrl": "http://example.org/fhir/Organization/InsurerExample",  
      "resource": {  
        "resourceType": "Organization",  
        "id": "InsurerExample",  
        "meta": {  
          "profile": ["http://hl7.org/fhir/us/davinci-pas/StructureDefinition/profile-insurer"]  
        },  
        "name": "Insurance Company"  
      }  
    }  
  ]  
}
```

## 错误响应
<a name="inquire-error-responses"></a>

### 400 错误请求
<a name="inquire-400-error"></a>

当请求格式无效或验证失败时返回。

```
{  
    "resourceType": "OperationOutcome",  
    "issue": [  
        {  
            "severity": "error",  
            "code": "required",  
            "diagnostics": "Reference 'Patient/SubscriberExample' at path 'patient' for 'CLAIM' resource not found(at Bundle.entry[0].resource)"  
        }  
    ]  
}
```

### 401 未经授权
<a name="inquire-401-error"></a>

当身份验证凭证缺失或无效时返回。

```
{  
    "resourceType": "OperationOutcome",  
    "issue": [  
        {  
            "severity": "error",  
            "code": "forbidden",  
            "diagnostics": "Invalid authorization header"  
        }  
    ]  
}
```

### 403 禁止访问
<a name="inquire-403-error"></a>

当经过身份验证的用户无权访问所请求的资源时返回。

```
{  
    "resourceType": "OperationOutcome",  
    "issue": [  
        {  
            "severity": "error",  
            "code": "exception",  
            "diagnostics": "Insufficient SMART scope permissions."  
        }  
    ]  
}
```

### 400 当没有找到时
<a name="inquire-400-none-found"></a>

未找到与查询 ClaimResponse 相匹配的内容时返回。

```
{  
  "resourceType": "OperationOutcome",
  "issue": [{
    "severity": "error",
    "code": "not-found",
    "diagnostics": "Resource not found. No ClaimResponse found from the input Claim that matches the specified Claim properties patient, insurer, provider, and created(at Bundle.entry[0].resource)"
  }]
}
```

### 415 不支持的媒体类型
<a name="inquire-415-error"></a>

当内容类型标头不是 application/fhir\$1json 时返回。

```
{  
  "resourceType": "OperationOutcome",  
  "issue": [{  
    "severity": "error",  
    "code": "value",  
    "diagnostics": "Incorrect MIME-type. Update request Content-Type header."  
  }]  
}
```

### 429 请求过多
<a name="inquire-429-error"></a>

超过速率限制时返回。

```
{  
  "resourceType": "OperationOutcome",  
  "issue": [{  
    "severity": "error",  
    "code": "throttled",  
    "diagnostics": "Rate limit exceeded. Please retry after some time."  
  }]  
}
```

## 验证规则
<a name="inquire-validation-rules"></a>

HealthLake 对您的询问进行全面验证：

### 捆绑包验证
<a name="inquire-bundle-validation"></a>
+ 必须符合 PAS 查询请求捆绑包配置文件
+ `Bundle.type`必须是 `"collection"`
+ 必须恰好包含一个 Claim 资源
+ 所有引用的资源都必须包含在捆绑包中

### 索赔验证
<a name="inquire-claim-validation"></a>
+ 必须符合 PAS 索赔查询资料
+ `Claim.use`必须是 `"preauthorization"`
+ `Claim.status`必须是 `"active"`
+ 必填字段：`patient`、`insurer`、`provider`、`created`

### 资源验证
<a name="inquire-resource-validation"></a>
+ 所有资源都必须符合各自的 PAS 查询资料
+ 必须有所需的支持资源（患者、保险公司组织、提供者组织）
+ 交叉引用必须有效且可在 Bundle 中解析

## 性能规格
<a name="inquire-performance-specs"></a>


| 指标 |  规范 | 
| --- | --- | 
| 资源数量限制 | 每个捆绑包 500 个资源 | 
| 捆绑包大小限制 | 最大 5 MB | 

## 所需的权限
<a name="inquire-required-permissions"></a>

要使用该`$inquire`操作，请确保您的 IAM 角色具有：
+ `healthlake:InquirePreAuthClaim`-调用该操作

**在 FHIR 瞄准镜上使用 S**  
**所需的最低范围：**
+ **SMART v1：**`user/ClaimResponse.read`
+ **SMART v2：**`user/ClaimResponse.s`

## 重要的实施说明
<a name="inquire-implementation-notes"></a>

### 搜索行为
<a name="inquire-search-behavior"></a>

当您提交查询时， ClaimResponse 使用以下方式进行 HealthLake 搜索：
+ 输入索赔中的@@ **患者参考**信息
+ 输入索赔中的@@ **保险公司参考**信息
+ 来自输入索赔的@@ **提供者参考**
+ 根据输入的 Claim **创建日期**（作为时间筛选器）

**多个匹配项**：如果多个 ClaimResponses 匹配您的搜索条件，则 HealthLake 返回所有匹配的结果。您应该使用最新的`ClaimResponse.created`时间戳来识别最新状态。

### 更新的索赔
<a name="inquire-updated-claims"></a>

如果您已向相同的先前授权（例如，Claim v1.1、v1.2、v1.3）提交了多个更新，则该`$inquire`操作将根据提供的搜索条件检索与**最新版本 ClaimResponse **关联的更新。

### 只读操作
<a name="inquire-read-only"></a>

该`$inquire`操作：
+ **是否**检索现有的授权状态
+ **是否会**返回最新的 ClaimResponse
+ **不**修改或更新任何资源
+ **不**创建新资源
+ **不会**触发新的授权处理

## 工作流程示例
<a name="inquire-workflow-example"></a>

**典型的事先授权查询工作流程**  


```
1. Provider submits PA request  
   POST /Claim/$submit  
   → Returns ClaimResponse with outcome="queued"  
  
2. Payer reviews request (asynchronous)  
   → Updates ClaimResponse status internally  
  
3. Provider checks status  
   POST /Claim/$inquire  
   → Returns ClaimResponse with outcome="queued" (still pending)  
  
4. Provider checks status again later  
   POST /Claim/$inquire  
   → Returns ClaimResponse with outcome="complete", disposition="Approved"
```

## 相关 操作
<a name="inquire-related-operations"></a>
+ `Claim/$submit`-提交新的事先授权请求或更新现有的事先授权申请
+ `Patient/$everything`-检索全面的患者数据以获取事先授权的上下文

# 使用检索概念细节 `$lookup`
<a name="reference-fhir-operations-lookup"></a>

AWS HealthLake 现在支持 CodeSystem 资源`$lookup`操作，使您能够通过提供代码等识别信息来检索有关代码系统中特定概念的详细信息。当您需要执行以下操作时，此操作特别有用：
+ 检索有关特定医疗法规的详细信息
+ 验证代码含义和属性
+ 访问概念定义和关系
+ 利用准确的术语数据支持临床决策

## 用法
<a name="lookup-usage"></a>

可以使用 GET 和 POST 方法对 CodeSystem 资源调用该`$lookup`操作：

**支持的操作**  


```
GET [base]/CodeSystem/$lookup?system=http://snomed.info/sct&code=73211009&version=20230901
POST [base]/CodeSystem/$lookup
```

## 支持的参数
<a name="lookup-parameters"></a>

HealthLake 支持 FHIR R4 `$lookup` 参数的子集：


| 参数 | Type | 必需 | 说明 | 
| --- | --- | --- | --- | 
| code | 代码 | 是 | 你正在查找的概念代码（例如，康涅狄格州 SNOMED 中的 “716200000”） | 
| system | uri | 是 | 代码系统的权威网址（例如，“[http://snomed.info/sct](http://snomed.info/sct)”） | 
| version | 字符串 | 否 | 代码系统的特定版本 | 

## 示例
<a name="lookup-examples"></a>

**获取请求**  


```
GET [base]/CodeSystem/$lookup?system=http://snomed.info/sct&code=71620000&version=2023-09
```

**POST 请求**  


```
POST [base]/CodeSystem/$lookup
Content-Type: application/fhir+json

{
  "resourceType": "Parameters",
  "parameter": [
    {
      "name": "system",
      "valueUri": "http://snomed.info/sct"
    },
    {
      "name": "code",
      "valueCode": "71620000"
    },
    {
      "name": "version",
      "valueString": "2023-09"
    }
  ]
}
```

**示例响应**  
该操作返回一个包含概念详细信息的参数资源：

```
{
    "resourceType": "Parameters",
    "parameter": [{
            "name": "name",
            "valueString": "SNOMED CT Fractures"
        },
        {
            "name": "version",
            "valueString": "2023-09"
        },
        {
            "name": "display",
            "valueString": "Fracture of femur"
        },
        {
            "name": "property",
            "part": [{
                    "name": "code",
                    "valueCode": "child"
                },
                {
                    "name": "value",
                    "valueCode": "263225007"
                },
                {
                    "name": "description",
                    "valueString": "Fracture of neck of femur"
                }
            ]
        },
        {
            "name": "property",
            "part": [{
                    "name": "code",
                    "valueCode": "child"
                },
                {
                    "name": "value",
                    "valueCode": "263227004"
                },
                {
                    "name": "description",
                    "valueString": "Fracture of shaft of femur"
                }
            ]
        }
    ]
}
```

## 响应参数
<a name="lookup-response-parameters"></a>

响应包括以下参数（如果有）：


| 参数 | 类型 | 说明 | 
| --- | --- | --- | 
| name | 字符串 | 代码系统的名称 | 
| version | 字符串 | 代码系统的版本 | 
| display | 字符串 | 概念的显示名称 | 
| designation | BackboneElement | 此概念的其他表述。 | 
| property | BackboneElement | 概念的其他属性（定义、关系等） | 

## 行为
<a name="lookup-behavior"></a>

该`$lookup`操作：

1. 验证所需的参数（`code`和`system`）

1. 在存储在数据存储中的指定代码系统中搜索概念

1. 返回详细的概念信息，包括显示名称、名称和属性。

1. 提供参数时支持特定版本的`version`查找

1. 仅在显式存储在 HealthLake 数据存储中的代码系统上运行

## 错误处理
<a name="lookup-error-handling"></a>

该操作处理以下错误情况：
+ 400 错误请求：`$lookup`操作无效（请求不符合要求或缺少必填参数）
+ 404 未找到：未找到代码系统或在指定的代码系统中找不到代码

## 警告
<a name="lookup-caveats"></a>

此版本不支持以下内容：
+ `$lookup`通过调用外部术语服务器进行操作
+ `$lookup`操作由 CodeSystems 管理 HealthLake 但未显式存储在数据存储中

有关`$lookup`操作规范的更多信息，请参阅 [FHIR R4 文档 CodeSystem `$lookup`](https://www.hl7.org/fhir/R4/codesystem-operation-lookup.html)。

# `$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>
+ 所有引用的资源必须存在于同一个数据存储中
+ 操作仅适用于成员归因列表组资源
+ 归因期限必须在覆盖范围内
+ 无法修改处于 “最终” 状态的群组

# `$member-match`操作为 HealthLake
<a name="reference-fhir-operations-member-match"></a>

AWS HealthLake 现在支持患者资源`$member-match`运营，使医疗保健组织能够使用人口统计和保险信息在不同的医疗保健系统中查找成员的唯一标识符。该操作对于实现CMS合规性以及在维护患者隐私的同时促进安全 payer-to-payer的数据交换至关重要。

当您需要执行以下操作时，此操作特别有用：
+ 在组织之间实现安全的医疗保健数据交换
+ 在不同系统中保持患者护理的连续性
+ 支持 CMS 合规性要求
+ 促进跨医疗保健网络的准确成员识别

## 用法
<a name="member-match-usage"></a>

可以使用 POST 方法在患者资源上调用该`$member-match`操作：

```
POST [base]/Patient/$member-match
```

## 支持的参数
<a name="member-match-parameters"></a>

HealthLake 支持以下 FHIR `$member-match` 参数：


| 参数 | Type | 必需 | 默认值 | 说明 | 
| --- | --- | --- | --- | --- | 
| MemberPatient | 病人 | 是 | — | 包含要匹配的成员的人口统计信息的患者资源 | 
| CoverageToMatch | 涵盖 | 是 | — | 将用于与现有记录进行匹配的覆盖率资源 | 
| CoverageToLink | 涵盖 | 否 | — | 在匹配过程中要链接的覆盖范围资源 | 
| 同意 | 同意 | 否 | — | 用于授权目的的同意资源 | 

## 示例
<a name="member-match-examples"></a>

### 带参数的 POST 请求
<a name="member-match-request-example"></a>

```
POST [base]/Patient/$member-match
Content-Type: application/fhir+json

{
  "resourceType": "Parameters",
  "parameter": [
    {
      "name": "MemberPatient",
      "resource": {
        "resourceType": "Patient",
        "name": [
          {
            "family": "Jones",
            "given": ["Sarah"]
          }
        ],
        "gender": "female",
        "birthDate": "1985-05-15"
      }
    },
    {
      "name": "CoverageToMatch",
      "resource": {
        "resourceType": "Coverage",
        "status": "active",
        "beneficiary": {
          "reference": "Patient/1"
        },
        "relationship": {
          "coding": [
            {
              "system": "http://terminology.hl7.org/CodeSystem/subscriber-relationship",
              "code": "self",
              "display": "Self"
            }
          ]
        },
        "payor": [
          {
            "reference": "Organization/payer456"
          }
        ]
      }
    },
    {
      "name": "Consent",
      "resource": {
        "resourceType": "Consent",
        "status": "active",
        "scope": {
          "coding": [
            {
              "system": "http://terminology.hl7.org/CodeSystem/consentscope",
              "code": "patient-privacy"
            }
          ]
        },
        "category": [
          {
            "coding": [
              {
                "system": "http://terminology.hl7.org/CodeSystem/v3-ActCode",
                "code": "IDSCL"
              }
            ]
          }
        ],
        "patient": {
          "reference": "Patient/1"
        },
        "performer": [
          {
            "reference": "Patient/patient123"
          }
        ],
        "sourceReference": {
          "reference": "Document/someconsent"
        },
        "policy": [
          {
            "uri": "http://hl7.org/fhir/us/davinci-hrex/StructureDefinition-hrex-consent.html#regular"
          }
        ]
      }
    }
  ]
}
```

### 示例响应
<a name="member-match-response-example"></a>

该操作返回一个包含匹配结果的参数资源：

```
{
  "resourceType": "Parameters",
  "parameter": [
    {
      "name": "MemberIdentifier",
      "valueIdentifier": {
        "system": "http://hospital.org/medical-record-number",
        "value": "MRN-123456"
      }
    },
    {
      "name": "MemberId",
      "valueReference": {
        "reference": "Patient/patient123"
      }
    },
    {
      "name": "matchAlgorithm",
      "valueString": "DEMOGRAPHIC_MATCH"
    },
    {
      "name": "matchDetails",
      "valueString": "Demographic match: DOB + Name"
    },
    {
      "name": "matchedFields",
      "valueString": "given,birthdate,gender,family"
    }
  ]
}
```

## 响应参数
<a name="member-match-response-parameters"></a>

找到匹配项时，响应包含以下参数：


| 参数 | 类型 | 说明 | 
| --- | --- | --- | 
| MemberIdentifier | 标识符 | 匹配成员的唯一标识符 | 
| MemberId | 参考 | 参考患者资源 | 
| 匹配算法 | 字符串 | 使用的匹配算法类型（EXACT\$1MATCH、STRONG\$1MATCH 或 DEMOGRAPHIC\$1MATCH） | 
| 比赛详情 | 字符串 | 有关匹配过程的详细信息 | 
| 匹配字段 | 字符串 | 成功匹配的特定字段列表 | 

## 匹配算法
<a name="member-match-algorithms"></a>

`$member-match`API 采用多层匹配方法来确保准确识别成员：

EXACT\$1MATCH  
结合使用患者识别码和承保范围 SubscriberId  
为成员匹配提供最高的置信度

强匹配  
使用包含最少覆盖信息的患者标识符  
当不符合完全匹配标准时，可信度很高

人口统计学匹配  
依赖基本的人口统计信息  
在无法进行基于标识符的匹配时使用

## 行为
<a name="member-match-behavior"></a>

该`$member-match`操作：
+ 接受患者人口统计、承保范围详细信息和可选同意信息作为输入
+ 返回可用于后续交互的唯一成员标识符
+ 实施多层匹配（精确、强烈、人口统计），确保不同医疗保健系统中的成员身份准确识别
+ 保存所提供的任何同意信息，以备将来授权之用
+ 支持安全 payer-to-payer的数据交换，同时保护患者隐私
+ 符合 CMS 对医疗保健数据交换的要求

## Authorization
<a name="member-match-authorization"></a>

API 在 FHIR 上使用 SMART 授权协议，其所需范围如下：
+ `system/Patient.read`
+ `system/Coverage.read`
+ `system/Organization.read`（有条件的）
+ `system/Practitioner.read`（有条件的）
+ `system/PractitionerRole.read`（有条件的）
+ `system/Consent.write`（有条件的）

## 错误处理
<a name="member-match-error-handling"></a>

该操作处理以下错误情况：
+ `400 Bad Request`: `$member-match` 操作无效（请求不符合要求或缺少必填参数）
+ `422 Unprocessable Entity`: 未找到匹配项或多个匹配项

# `$member-remove`操作用于 HealthLake
<a name="reference-fhir-operations-member-remove"></a>

该`$member-remove`操作允许您从中的 FHIR 成员归因列表（群组资源）中 AWS HealthLake移除成员。此操作是《 DaVinci 成员归因实施指南》的一部分，支持用于管理成员归因的协调流程。

## 先决条件
<a name="member-remove-prerequisites"></a>
+ AWS HealthLake FHIR 数据存储库
+ 相应的 IAM HealthLake 操作权限
+ 处于草稿或开放状态的成员归因列表（群组资源）

## 操作详情
<a name="member-remove-endpoint"></a>

端点  
`POST /Group/{id}/$member-remove`

内容类型  
`application/fhir+json`

## 参数
<a name="member-remove-parameters"></a>

该操作接受带有以下可选参数的 FHIR 参数资源：


| 参数 | 基数 | Type | 说明 | 
| --- | --- | --- | --- | 
| memberId | 0.. 1 | 标识符 | 要移除的成员的企业标识符 | 
| ProviderNPI | 0.. 1 | 标识符 | 归因提供商的 NPI | 
| 患者参考 | 0.. 1 | 参考 | 直接参考患者资源 | 
| 提供者参考 | 0.. 1 | 参考 | 直接引用提供者资源（从 PractitionerRole业者或组织） | 
| 保险范围参考 | 0.. 1 | 参考 | 对覆盖范围资源的引用 | 

### 支持的参数组合
<a name="member-remove-parameter-combinations"></a>

支持以下参数组合：
+ `memberId`only-删除指定成员的所有属性
+ `memberId`\$1 `providerNpi`-移除特定成员-提供者组合的归因
+ `patientReference`only-移除指定患者的所有归因
+ `patientReference`\$1 `providerReference`-移除特定患者-提供者组合的归因
+ `patientReference`\$1 `providerReference` \$1 `coverageReference`-删除基于患者、提供者和承保范围的特定归因

## 请求示例
<a name="member-remove-examples"></a>

```
{
  "resourceType": "Parameters",
  "parameter": [
    {
      "name": "patientReference",
      "valueReference": {
        "reference": "Patient/12345"
      }
    },
    {
      "name": "providerReference",
      "valueReference": {
        "reference": "Practitioner/67890"
      }
    }
  ]
}
```

## 响应
<a name="member-remove-response"></a>

### 成功响应
<a name="member-remove-success-response"></a>

```
{
  "resourceType": "Parameters",
  "parameter": [
    {
      "name": "result",
      "valueBoolean": true
    },
    {
      "name": "effectiveDate",
      "valueDate": "2024-06-30"
    },
    {
      "name": "status",
      "valueCode": "inactive"
    },
    {
      "name": "message",
      "valueString": "Member successfully removed from attribution list"
    }
  ]
}
```

## 行为
<a name="member-remove-behavior"></a>

身份要求  
该操作仅适用于状态为`draft`或的归因列表 `open`  
带有`final`状态的列表将拒绝该操作，错误为 422

成员移除流程  
*草稿状态列表*：成员被标记为不活跃 (`inactive: true`)，其`changeType`扩展名更新为 `changed`  
*打开状态列表*：行为与草稿状态类似  
*最终状态列表*：操作被拒绝

验证  
对引用进行验证以确保它们存在于 HealthLake 数据存储中  
如果为相同的资源类型同时提供了标识符和引用，则它们必须对应于相同的资源  
参数组合根据支持的模式进行验证

## 错误处理
<a name="member-remove-error-handling"></a>

### 常见错误响应
<a name="member-remove-common-errors"></a>

未找到资源 (404)  

```
{
  "resourceType": "OperationOutcome",
  "issue": [
    {
      "severity": "error",
      "code": "not-found",
      "details": {
        "text": "Patient with identifier 'http://example.org/fhir/identifiers|99999' not found in system"
      },
      "diagnostics": "Cannot remove member from attribution list. Verify patient identifier and try again.",
      "expression": ["memberId"]
    }
  ]
}
```

归因列表最终状态 (422)  

```
{
  "resourceType": "OperationOutcome",
  "issue": [
    {
      "severity": "error",
      "code": "business-rule",
      "details": {
        "coding": [
          {
            "system": "http://hl7.org/fhir/us/davinci-atr/CodeSystem/atr-error-codes",
            "code": "list-final",
            "display": "Attribution list is final and cannot be modified"
          }
        ]
      },
      "diagnostics": "Cannot modify attribution list with status 'final'. List modifications are not permitted after finalization.",
      "expression": ["Group.status"]
    }
  ]
}
```

无效的操作 (400)  
当参数组合无效或格式错误时返回。

找到多个匹配项 (412)  
当提供的参数与归因列表中的多个成员匹配时返回。  

```
{
  "resourceType": "OperationOutcome",
  "issue": [
    {
      "severity": "error",
      "code": "processing",
      "diagnostics": "Multiple members found matching the criteria"
    }
  ]
}
```

## 最佳实践
<a name="member-remove-best-practices"></a>
+ *使用特定参数*：如果可能，请使用最具体的参数组合，以避免意外删除
+ *检查列表状态*：在尝试移除之前验证归因列表状态
+ *优雅地处理错误*：对所有可能的错误情况实施适当的错误处理
+ *验证引用*：在提出请求之前，请确保所有引用的资源都存在

# 使用移除患者隔间资源 `$purge`
<a name="reference-fhir-operations-purge"></a>

AWS HealthLake 支持`$purge`手术，允许永久删除患者隔间内的所有资源。当您需要执行以下操作时，此操作特别有用：
+ 删除与患者相关的所有数据
+ 遵守患者数据删除请求
+ 管理患者数据生命周期
+ 执行全面的患者记录清理

## 用法
<a name="purge-usage"></a>

可以在患者资源上调用该`$purge`操作：

```
POST [base]/Patient/[ID]/$purge?deleteAuditEvent=true
```

## 参数
<a name="purge-parameters"></a>


| 参数 | Type | 必需 | 默认值 | 说明 | 
| --- | --- | --- | --- | --- | 
| deleteAuditEvent | 布尔值 | 否 | false | 如果为 true，则删除关联的审计事件 | 
| \$1since | 字符串 | 否 | 数据存储创建时间 | 输入后，选择开始截止时间，根据资源的上次修改时间来查找资源。不能与开头或结尾一起使用 | 
| start | 字符串 | 否 | 数据存储创建时间 | 输入后，根据资源的上次修改时间选择查找资源的截止时间。可以与 end 一起使用 | 
| end | 字符串 | 否 | Job 提交时间 | 输入后，选择结束截止时间，根据资源的上次修改时间来查找资源 | 

## 示例
<a name="purge-examples"></a>

**请求示例**  


```
POST [base]/Patient/example-patient/$purge?deleteAuditEvent=true
```

**响应示例**  


```
{
  "resourceType": "OperationOutcome",
  "id": "purge-job",
  "issue": [
    {
      "severity": "information",
      "code": "informational",
      "diagnostics": "Purge job started successfully. Job ID: 12345678-1234-1234-1234-123456789012"
    }
  ]
}
```

## 作业状态
<a name="purge-job-status"></a>

要检查清除任务的状态，请执行以下操作：

```
GET [base]/$purge/[jobId]
```

该操作返回任务状态信息：

```
{
      "datastoreId": "36622996b1fcecb7e12ee2ee085308d3",
      "jobId": "3dd1c7a5b6c0ef8c110f566eb87e2ef9",
      "status": "COMPLETED",
      "submittedTime": "2025-10-31T18:43:21.822Z"
    }
```

## 行为
<a name="purge-behavior"></a>

该`$purge`操作：

1. 异步处理以处理多个资源

1. 维护 ACID 事务以确保数据完整性

1. 提供任务状态跟踪，包括资源删除次数

1. 永久移除患者隔间内的所有资源

1. 包括删除活动的全面审核记录

1. 支持选择性删除审计事件

## 审核日志
<a name="purge-audit-logging"></a>

`$purge`操作记录为 “开始” FHIRBulk DeleteJob 和 “描述” FHIRBulkDeleteJob ，其中包含详细的操作信息。

## 限制
<a name="purge-limitations"></a>
+ 已清除的资源不会出现在搜索响应中
+ 正在清除的资源在处理过程中可能暂时无法访问
+ 患者隔间的所有资源都将被永久移除

# FHIR 的`$questionnaire-package`手术 HealthLake
<a name="reference-fhir-operations-questionnaire-package"></a>

该`$questionnaire-package`操作会检索一个包含FHIR调查问卷及其呈现和处理问卷所需的所有依赖项的综合包。该操作实现了《[达芬奇文档模板和规则 (DTR) 实施指南》](https://hl7.org/fhir/us/davinci-dtr/OperationDefinition-questionnaire-package.html)，从而实现了医疗工作流程中文档要求的动态表单呈现。

## 工作原理
<a name="questionnaire-package-how-it-works"></a>
+ **请求**：您发送标识所需调查问卷的参数，以及覆盖范围和订单上下文
+ **检索**： HealthLake 收集调查问卷和所有依赖项（ValueSets、CQL 库等）
+ P@@ **ac** kage：所有资源都以标准格式捆绑在一起
+ **回复**：您会收到一个完整的软件包，可以进行渲染和数据收集

**应用场景**  

+ **事先授权文件**：收集事先授权请求所需的临床信息
+ **保险要求**：收集满足付款人保险要求所需的文件
+ Cl@@ **inical Data Exchange**：整理临床数据以提交给付款人
+ **动态表单**：使用预先填充的患者数据和条件逻辑呈现问卷

## API 端点
<a name="questionnaire-package-api-endpoint"></a>

```
POST /datastore/{datastoreId}/r4/Questionnaire/$questionnaire-package  
Content-Type: application/fhir+json
```

## 请求参数
<a name="questionnaire-package-request-parameters"></a>

### 输入参数
<a name="questionnaire-package-input-parameters"></a>

请求正文必须包含带有以下参数的 FHIR 参数资源：


| 参数 | Type | 基数 | 说明 | 
| --- | --- | --- | --- | 
| coverage | 涵盖 | 1.. \$1（必填） | 用于确定文件成员和覆盖范围的覆盖范围的覆盖资源 | 
| questionnaire | 权威性的 | 0。。 \$1 | 要返回的特定问卷的权威网址（可能包括版本） | 
| order | 资源 | 0。。 \$1 | 订购资源（DeviceRequest、 ServiceRequest、 MedicationRequest、遭遇、约会）以建立上下文 | 
| changedSince | dateTime | 0.. 1 | 如果存在，则仅返回在此时间戳之后更改的资源 | 

### 参数验证规则
<a name="questionnaire-package-parameter-validation"></a>

**必须提供以下至少一**项（除必填项外`coverage`）：
+ 一个或多个规`questionnaire`范 URLs
+ 一个或多个`order`资源

**有效的请求组合：**  

+ `coverage` \$1 `questionnaire`
+ `coverage` \$1 `order`
+ `coverage` \$1 `questionnaire` \$1 `order`

## 示例请求
<a name="questionnaire-package-example-request"></a>

```
POST /datastore/example-datastore/r4/Questionnaire/$questionnaire-package  
Content-Type: application/fhir+json  
Authorization: Bearer <your-token>  
  
{  
  "resourceType": "Parameters",  
  "parameter": [  
    {  
      "name": "coverage",  
      "resource": {  
        "resourceType": "Coverage",  
        "id": "example-coverage",  
        "status": "active",  
        "beneficiary": {  
          "reference": "Patient/example-patient"  
        },  
        "payor": [{  
          "reference": "Organization/example-payer"  
        }],  
        "class": [{  
          "type": {  
            "coding": [{  
              "system": "http://terminology.hl7.org/CodeSystem/coverage-class",  
              "code": "group"  
            }]  
          },  
          "value": "12345"  
        }]  
      }  
    },  
    {  
      "name": "questionnaire",  
      "valueCanonical": "http://example.org/fhir/Questionnaire/home-oxygen-therapy|2.0"  
    },  
    {  
      "name": "order",  
      "resource": {  
        "resourceType": "ServiceRequest",  
        "id": "example-service-request",  
        "status": "active",  
        "intent": "order",  
        "code": {  
          "coding": [{  
            "system": "http://www.ama-assn.org/go/cpt",  
            "code": "94660",  
            "display": "Continuous positive airway pressure ventilation (CPAP)"  
          }]  
        },  
        "subject": {  
          "reference": "Patient/example-patient"  
        }  
      }  
    },  
    {  
      "name": "changedSince",  
      "valueDateTime": "2024-01-01T00:00:00Z"  
    }  
  ]  
}
```

## 响应格式
<a name="questionnaire-package-response-format"></a>

### 成功响应 (200 OK)
<a name="questionnaire-package-success-response"></a>

该操作返回包含一个或多个 Pack **age Bund** le 的 FHIR 参数资源。每个 Package 套装包括：


| 参赛类型 | 基数 | 说明 | 
| --- | --- | --- | 
| 问卷 | 1 | 要填写的问卷 | 
| QuestionnaireResponse | 0.. 1 | 预填充或部分完成的回复（如果适用） | 
| Library | 0。。 \$1 | 包含预填充和条件逻辑的 CQL 库 | 
| ValueSet | 0。。 \$1 | 已扩展 ValueSets （适用于扩展范围小于 40 的答案选项） | 

**Example 响应示例**  

```
{  
  "resourceType": "Parameters",  
  "parameter": [  
    {  
      "name": "PackageBundle",  
      "resource": {  
        "resourceType": "Bundle",  
        "id": "questionnaire-package-example",  
        "meta": {  
          "profile": ["http://hl7.org/fhir/us/davinci-dtr/StructureDefinition/DTR-QPackageBundle"]  
        },  
        "type": "collection",  
        "timestamp": "2024-03-15T10:30:00Z",  
        "entry": [  
          {  
            "fullUrl": "http://example.org/fhir/Questionnaire/home-oxygen-therapy",  
            "resource": {  
              "resourceType": "Questionnaire",  
              "id": "home-oxygen-therapy",  
              "url": "http://example.org/fhir/Questionnaire/home-oxygen-therapy",  
              "version": "2.0",  
              "status": "active",  
              "title": "Home Oxygen Therapy Documentation",  
              "item": [  
                {  
                  "linkId": "1",  
                  "text": "Patient diagnosis",  
                  "type": "choice",  
                  "answerValueSet": "http://example.org/fhir/ValueSet/oxygen-diagnoses"  
                }  
              ]  
            }  
          },  
          {  
            "fullUrl": "http://example.org/fhir/Library/oxygen-prepopulation",  
            "resource": {  
              "resourceType": "Library",  
              "id": "oxygen-prepopulation",  
              "url": "http://example.org/fhir/Library/oxygen-prepopulation",  
              "version": "1.0",  
              "type": {  
                "coding": [{  
                  "system": "http://terminology.hl7.org/CodeSystem/library-type",  
                  "code": "logic-library"  
                }]  
              },  
              "content": [{  
                "contentType": "text/cql",  
                "data": "bGlicmFyeSBPeHlnZW5QcmVwb3B1bGF0aW9u..."  
              }]  
            }  
          },  
          {  
            "fullUrl": "http://example.org/fhir/ValueSet/oxygen-diagnoses",  
            "resource": {  
              "resourceType": "ValueSet",  
              "id": "oxygen-diagnoses",  
              "url": "http://example.org/fhir/ValueSet/oxygen-diagnoses",  
              "status": "active",  
              "expansion": {  
                "timestamp": "2024-03-15T10:30:00Z",  
                "contains": [  
                  {  
                    "system": "http://hl7.org/fhir/sid/icd-10",  
                    "code": "J44.0",  
                    "display": "COPD with acute lower respiratory infection"  
                  },  
                  {  
                    "system": "http://hl7.org/fhir/sid/icd-10",  
                    "code": "J96.01",  
                    "display": "Acute respiratory failure with hypoxia"  
                  }  
                ]  
              }  
            }  
          },  
          {  
            "fullUrl": "http://example.org/fhir/QuestionnaireResponse/example-prepopulated",  
            "resource": {  
              "resourceType": "QuestionnaireResponse",  
              "id": "example-prepopulated",  
              "questionnaire": "http://example.org/fhir/Questionnaire/home-oxygen-therapy|2.0",  
              "status": "in-progress",  
              "subject": {  
                "reference": "Patient/example-patient"  
              },  
              "basedOn": [{  
                "reference": "ServiceRequest/example-service-request"  
              }],  
              "item": [  
                {  
                  "linkId": "1",  
                  "text": "Patient diagnosis",  
                  "answer": [{  
                    "valueCoding": {  
                      "system": "http://hl7.org/fhir/sid/icd-10",  
                      "code": "J44.0",  
                      "display": "COPD with acute lower respiratory infection"  
                    }  
                  }]  
                }  
              ]  
            }  
          }  
        ]  
      }  
    },  
    {  
      "name": "Outcome",  
      "resource": {  
        "resourceType": "OperationOutcome",  
        "issue": [{  
          "severity": "information",  
          "code": "informational",  
          "details": {  
            "text": "Successfully retrieved questionnaire package"  
          }  
        }]  
      }  
    }  
  ]  
}
```

## 操作工作流程
<a name="questionnaire-package-operation-workflow"></a>

**如何 HealthLake 处理您的请求**  
拨打电话时`$questionnaire-package`， HealthLake 执行以下步骤：

1. **识别患者和付款人**：从您的`coverage`参数中提取患者和保险组织。

1. **找到合适的问卷**：
   + **带`questionnaire`****参数**：使用您提供的权威网址
   + **带`order`****参数**：匹配订单代码 (CPT/HCPCS/LOINC) 和付款人以找到相应的问卷

1. **收集依赖关系**：自动检索呈现调查问卷所需的所有内容：
   + **CQL 库**-填充前问题和条件问题的逻辑
   + **ValueSets**-答案选项（如果选项小于 40 个，则自动扩展）
   + **QuestionnaireResponse**-任何现有正在处理或已完成的回复

1. P@@ **ackage 把所有东西放在一起**：
   + 捆绑所有资源（每种资源仅包含一次）
   + 按`changedSince`时间戳过滤（如果提供）
   + 在`Outcome`缺少任何资源时添加警告

**结果**：一个完整、独立的软件包可以渲染了。

## 错误响应
<a name="questionnaire-package-error-responses"></a>

### 400 错误请求
<a name="questionnaire-package-400-error"></a>

请求验证失败时返回。

```
{  
  "resourceType": "OperationOutcome",  
  "issue": [{  
    "severity": "error",  
    "code": "required",  
    "details": {  
      "text": "At least one of 'questionnaire' or 'order' must be provided along with 'coverage'"  
    }  
  }]  
}
```

### 424 失败的依赖关系
<a name="questionnaire-package-424-error"></a>

当无法检索依赖资源时返回。

```
{  
  "resourceType": "OperationOutcome",  
  "issue": [{  
    "severity": "warning",  
    "code": "not-found",  
    "details": {  
      "text": "Referenced Library 'http://example.org/fhir/Library/missing-library' could not be retrieved"  
    }  
  }]  
}
```

### 401 未经授权
<a name="questionnaire-package-401-error"></a>

当身份验证凭证缺失或无效时返回。

### 403 禁止访问
<a name="questionnaire-package-403-error"></a>

当经过身份验证的用户无权访问所请求的资源时返回。

### 406 不可接受
<a name="questionnaire-package-406-error"></a>

当无法提供请求的内容类型时返回。

### 409 冲突
<a name="questionnaire-package-409-error"></a>

存在版本或并发冲突时返回。

### 410 Gone
<a name="questionnaire-package-410-error"></a>

当请求的资源已被永久删除时返回。

### 429 请求过多
<a name="questionnaire-package-429-error"></a>

超过速率限制时返回。

### 500 内部服务器错误
<a name="questionnaire-package-500-error"></a>

服务器发生意外错误时返回。

### 501 未实施
<a name="questionnaire-package-501-error"></a>

当请求的操作尚未实现时返回。

## 验证规则
<a name="questionnaire-package-validation-rules"></a>

### 输入验证
<a name="questionnaire-package-input-validation"></a>
+ `coverage`参数为**必填项**（1.. \$1 基数）
+ `order`必须至少提供其中一个`questionnaire`或一个
+ 所有覆盖范围资源都必须是有效的 FHIR 资源
+ 所有订单资源都必须是有效的 FHIR 资源
+ 规范的格式 URLs 必须正确
+ `changedSince`必须是有效的 ISO 8601 日期时间

### QuestionnaireResponse 验证
<a name="questionnaire-package-response-validation"></a>
+ `status`必须合适 (`in-progress`、`completed`、`amended`)
+ 结构必须与引用的问卷相匹配
+ `basedOn`必须引用有效的订单资源
+ `subject`必须引用有效的患者资源

### 资源重复数据删除
<a name="questionnaire-package-resource-dedup"></a>
+ 每个资源在捆绑包中仅出现一次
+ 例外：可能同时包含同一资源的不同版本
+ 资源由其规范 URL 和版本标识

## 性能规格
<a name="questionnaire-package-performance-specs"></a>


| 指标 |  规范 | 
| --- | --- | 
| 资源数量限制 | 每个捆绑包 500 个资源 | 
| 捆绑包大小限制 | 最大 5 MB | 

## 所需的权限
<a name="questionnaire-package-required-permissions"></a>

要使用该`$questionnaire-package`操作，请确保您的 IAM 角色具有：
+ `healthlake:QuestionnairePackage`-调用该操作
+ `healthlake:ReadResource`-检索问卷和相关资源
+ `healthlake:SearchWithPost`-搜索 QuestionnaireResponse 和相关资源

**FHIR 瞄准镜上的智能**  
**所需的最低范围：**
+ **SMART v1：**`user/Questionnaire.read user/Library.read user/ValueSet.read user/QuestionnaireResponse.read`
+ **SMART v2：**`user/Questionnaire.rs user/Library.rs user/ValueSet.rs user/QuestionnaireResponse.rs`

## 重要的实施说明
<a name="questionnaire-package-implementation-notes"></a>

### 资源检索策略
<a name="questionnaire-package-retrieval-strategy"></a>

**问卷识别优先级：**  

+ **规范网址**（如果提供了`questionnaire`参数）-最高优先级
+ **订单分析**（如果提供了`order`参数）：
  + 将订单代码（CPT、HCPCS、LOINC）与付款人的医疗保单相匹配
  + 使用保险付款人筛选特定于付款人的问卷
  + 考虑原因代码以获取更多上下文

### 依赖关系解决方案
<a name="questionnaire-package-dependency-resolution"></a>

**CQL 库：**  

+ 通过问卷资源上的`cqf-library`扩展程序检索
+ 使用类型递归获取依赖库 `Library.relatedArtifact` `depends-on`
+ 所有库依赖项都包含在软件包中

**ValueSets:**  

+ 如果包含的概念少于 40 个，则会自动展开
+ 包括 ValueSets 较大的不带扩展功能
+ ValueSets 包括问卷和图书馆资源中引用的内容

### QuestionnaireResponse 种群前
<a name="questionnaire-package-prepopulation"></a>

在以下情况下，该操作可能会返回 QuestionnaireResponse 带有预填充数据的a：
+ 已找到现有正在处理或已完成的响应
+ 关联库中的 CQL 逻辑可以从患者记录中提取数据
+ 回复与相关的订单和覆盖范围相关

**搜索标准 QuestionnaireResponse：**  



| 搜索参数 | FHIR 路径 | 说明 | 
| --- | --- | --- | 
| based-on | QuestionnaireResponse.basedOn | 链接到 ServiceRequest 或 CarePlan | 
| patient | QuestionnaireResponse.subject | 作为受试者的患者 | 
| questionnaire | QuestionnaireResponse.questionnaire | 正在回答的问卷 | 

### 已更改的资源筛选
<a name="questionnaire-package-changed-filtering"></a>

提供`changedSince`参数时：
+ 仅包含在指定时间戳**之后**修改的资源
+ 如果未更改任何资源，则返回`200 OK`一个空包
+ 对于增量更新和缓存策略很有用
+ 时间戳比较使用资源`meta.lastUpdated`字段

### 多个套餐捆绑包
<a name="questionnaire-package-multiple-bundles"></a>

在以下情况下，该操作可能会返回**多个 Package Bundle**：
+ 通过 canonical 申请了多份问卷 URLs
+ 多个订单需要不同的问卷
+ 同一份问卷的不同版本适用

每个 Package Bundle 都是独立的，具有所有必要的依赖关系。

## 常见使用案例
<a name="questionnaire-package-common-use-cases"></a>

### 用例 1：事先授权文档
<a name="questionnaire-package-use-case-1"></a>

**场景**：提供者需要收集家庭氧气疗法的文件，事先获得授权。

```
{  
  "resourceType": "Parameters",  
  "parameter": [  
    {  
      "name": "coverage",  
      "resource": { /* Patient's insurance coverage */ }  
    },  
    {  
      "name": "order",  
      "resource": {  
        "resourceType": "ServiceRequest",  
        "code": {  
          "coding": [{  
            "system": "http://www.ama-assn.org/go/cpt",  
            "code": "94660"  
          }]  
        }  
      }  
    }  
  ]  
}
```

**结果**：返回包含氧气治疗问卷的包裹，其中预先填充了电子病历中的患者生命体征和诊断代码。

### 用例 2：检索特定的调查问卷版本
<a name="questionnaire-package-use-case-2"></a>

**场景**：提供者需要特定版本的问卷以保证合规性。

```
{  
  "resourceType": "Parameters",  
  "parameter": [  
    {  
      "name": "coverage",  
      "resource": { /* Coverage resource */ }  
    },  
    {  
      "name": "questionnaire",  
      "valueCanonical": "http://example.org/fhir/Questionnaire/dme-request|3.1.0"  
    }  
  ]  
}
```

**结果**：精确返回包含所有依赖项的 DME 请求调查问卷的 3.1.0 版本。

### 用例 3：检查更新
<a name="questionnaire-package-use-case-3"></a>

**场景**：提供者想要检查自上次检索以来是否有任何问卷资源已更新。

```
{  
  "resourceType": "Parameters",  
  "parameter": [  
    {  
      "name": "coverage",  
      "resource": { /* Coverage resource */ }  
    },  
    {  
      "name": "questionnaire",  
      "valueCanonical": "http://example.org/fhir/Questionnaire/medication-request"  
    },  
    {  
      "name": "changedSince",  
      "valueDateTime": "2024-03-01T00:00:00Z"  
    }  
  ]  
}
```

**结果**：仅返回 2024 年 3 月 1 日之后修改过的资源，如果没有任何更改，则返回空包。

### 用例 4：多个订单
<a name="questionnaire-package-use-case-4"></a>

**场景**：提供商提交多个服务请求，可能需要不同的调查表。

```
{  
  "resourceType": "Parameters",  
  "parameter": [  
    {  
      "name": "coverage",  
      "resource": { /* Coverage resource */ }  
    },  
    {  
      "name": "order",  
      "resource": { /* ServiceRequest for imaging */ }  
    },  
    {  
      "name": "order",  
      "resource": { /* ServiceRequest for DME */ }  
    }  
  ]  
}
```

**结果**：返回多个 Package Bundle，每个适用的问卷对应一个。

## 与其他达芬奇集成 IGs
<a name="questionnaire-package-integration"></a>

### 保险需求发现 (CRD)
<a name="questionnaire-package-crd-integration"></a>

**工作流程集成：**  

+ 提供者在其 EHR 中订购服务
+ CRD 挂钩开火，正在检查覆盖要求
+ 付款人回复表示需要文件
+ 提供者`$questionnaire-package`致电检索文档表单
+ 提供者填写问卷
+ 文件通过 PAS 提交或 CDex

### 事先授权支持 (PAS)
<a name="questionnaire-package-pas-integration"></a>

**工作流程集成：**  

+ `$questionnaire-package`用于检索文档要求
+ 填写所需的临床数据 QuestionnaireResponse 
+ 使用`Claim/$submit`填写完毕后提交事先授权 QuestionnaireResponse
+ 使用检查状态 `Claim/$inquire`

### 临床数据交换 (CDex)
<a name="questionnaire-package-cdex-integration"></a>

**工作流程集成：**  

+ 付款人要求为索赔提供其他文件
+ 提供者`$questionnaire-package`用于检索结构化数据收集表单
+ 提供商完成 QuestionnaireResponse
+ 文件通过 CDex 附件工作流程提交给付款人

## 故障排除指南
<a name="questionnaire-package-troubleshooting"></a>

### 问题：未返回问卷
<a name="questionnaire-package-no-questionnaire"></a>

**可能的原因：**  

+ 权威网址与数据存储中的任何调查问卷都不匹配
+ 订单代码未映射到付款人医疗政策中的任何问卷
+ 保险付款人没有相关的问卷

**解决方案：**  

+ 验证规范 URL 是否正确且问卷是否存在
+ 检查订单代码 (CPT/HCPCS) 的指定是否正确
+ 确认付款人组织已配置调查表

### 问题：Package 中缺少依赖关系
<a name="questionnaire-package-missing-dependencies"></a>

**可能的原因：**  

+ 引用的库或者数据存储中 ValueSet 不存在
+ 图书馆参考文献已损坏或不正确
+ ValueSet 扩展失败

**解决方案：**  

+ 检查`Outcome`参数中是否有关于资源缺失的警告
+ 验证您的数据存储中是否存在所有引用的资源
+ 确保正确 ValueSet URLs 且可解决

### 问题：带有 changedSince 的空包
<a name="questionnaire-package-empty-package"></a>

**可能的原因：**  

+ 这是预期行为-自指定时间戳以来未修改任何资源

**解决方案：**  

+ 使用软件包的缓存版本
+ 移除`changedSince`参数以检索完整软件包

### 问题： QuestionnaireResponse 未预先填充
<a name="questionnaire-package-not-prepopulated"></a>

**可能的原因：**  

+ 未 QuestionnaireResponse 找到现有的
+ CQL 库逻辑无法提取所需数据
+ 患者数据缺失或不完整

**解决方案：**  

+ 这可能是预料之中的——并非所有问卷都有人口前的逻辑
+ 检查数据存储中是否存在患者数据
+ 查看 CQL 库逻辑以了解数据提取要求

## 最佳实践
<a name="questionnaire-package-best-practices"></a>

### 1. 将 Canonical 与版本一起 URLs 使用
<a name="questionnaire-package-bp-versions"></a>

在申请特定问卷时，请务必指定版本号：

```
{  
  "name": "questionnaire",  
  "valueCanonical": "http://example.org/fhir/Questionnaire/dme|2.1.0"  
}
```

**原因**：确保问卷更新时的一致性并防止意外更改。

### 2. 为了提高性能，杠杆率已改变
<a name="questionnaire-package-bp-changed-since"></a>

对于经常访问的调查表，请使用`changedSince`以最大限度地减少数据传输：

```
{  
  "name": "changedSince",  
  "valueDateTime": "2024-03-10T15:30:00Z"  
}
```

**原因**：通过仅检索更新的资源来减少延迟和带宽使用量。

### 3. 包括完整的承保范围信息
<a name="questionnaire-package-bp-coverage"></a>

提供全面的覆盖范围详情，以确保正确选择问卷：

```
{  
  "name": "coverage",  
  "resource": {  
    "resourceType": "Coverage",  
    "beneficiary": { "reference": "Patient/123" },  
    "payor": [{ "reference": "Organization/payer-abc" }],  
    "class": [{ /* Group/plan information */ }]  
  }  
}
```

**原因**：帮助 HealthLake 确定付款人特定的调查问卷和要求。

## 相关 操作
<a name="questionnaire-package-related-operations"></a>
+ `Claim/$submit`-提交事先授权申请并附上完整的文件
+ `Claim/$inquire`-查看已提交的先前授权的状态
+ `ValueSet/$expand`-展开 ValueSets 答案选择

# FHIR 的`$submit`手术 HealthLake
<a name="reference-fhir-operations-submit"></a>

该`$submit`操作使您能够以电子方式向付款人提交事先授权请求以供批准。该操作实施了《[达芬奇事先授权支持（PAS）实施指南》](https://hl7.org/fhir/us/davinci-pas/)，为事先授权提交提供了基于FHIR的标准化工作流程。

## 工作原理
<a name="submit-how-it-works"></a>
+ **提交**：您发送一份 FHIR 捆绑包，其中包含您先前的授权申请和辅助临床数据
+ **验证**：根据 PAS 要求 HealthLake 验证提交的内容
+ **保留**：所有资源都存储在您的 HealthLake 数据存储中
+ **回复**：您会立即收到状态为 “已排队” 的回复
+ **流程**：授权决策由付款人异步处理

## API 端点
<a name="submit-api-endpoint"></a>

```
POST /datastore/{datastoreId}/r4/Claim/$submit  
Content-Type: application/fhir+json
```

## 请求结构
<a name="submit-request-structure"></a>

### 捆绑包要求
<a name="submit-bundle-requirements"></a>

您的请求必须是 FHIR 捆绑包资源，其中包含以下内容：
+ **Bundle.type：必须是** `"collection"`
+ b@@ **undle.entr** y：必须恰好包含**一个索赔资源** `use = "preauthorization"`
+ **参考资源**：声明中引用的所有资源都必须包含在捆绑包中

### 所需的资源
<a name="submit-required-resources"></a>


| 资源 | 基数 | 配置文件 | 说明 | 
| --- | --- | --- | --- | 
| 索赔 | 1 | PAS 索赔 | 事先授权请求 | 
| 病人 | 1 | PAS 患者 | 患者人口统计信息 | 
| 组织（保险公司） | 1 | PAS 保险公司 | 保险公司 | 
| 组织（提供商） | 1 | PAS 请求者 | 医疗保健提供者提交申请 | 
| 覆盖范围 | 1 或更多 | PAS 覆盖范围 | 保险范围详情 | 

### 可选资源
<a name="submit-optional-resources"></a>


| 资源 | 基数 | 配置文件 | 说明 | 
| --- | --- | --- | --- | 
| 从业者 | 0 或更多 | PAS从业人员 | 医疗保健从业人员 | 
| PractitionerRole | 0 或更多 | PAS PractitionerRole | 从业者角色 | 
| ServiceRequest | 0 或更多 | PAS ServiceRequest | 要求的医疗服务 | 
| DeviceRequest | 0 或更多 | PAS DeviceRequest | 要求的医疗设备 | 
| MedicationRequest | 0 或更多 | PAS MedicationRequest | 要求的药物 | 
| DocumentReference | 0 或更多 | PAS DocumentReference | 支持临床文档 | 

## 示例请求
<a name="submit-example-request"></a>

```
POST /datastore/example-datastore/r4/Claim/$submit  
Content-Type: application/fhir+json  
Authorization: Bearer <your-token>  
  
{  
  "resourceType" : "Bundle",  
  "id" : "MedicalServicesAuthorizationBundleExample",  
  "meta" : {  
    "profile" : ["http://hl7.org/fhir/us/davinci-pas/StructureDefinition/profile-pas-request-bundle"]  
  },  
  "identifier" : {  
    "system" : "http://example.org/SUBMITTER_TRANSACTION_IDENTIFIER",  
    "value" : "5269367"  
  },  
  "type" : "collection",  
  "timestamp" : "2005-05-02T11:01:00+05:00",  
  "entry" : [{  
    "fullUrl" : "http://example.org/fhir/Claim/MedicalServicesAuthorizationExample",  
    "resource" : {  
      "resourceType" : "Claim",  
      "id" : "MedicalServicesAuthorizationExample",  
      "meta" : {  
        "profile" : ["http://hl7.org/fhir/us/davinci-pas/StructureDefinition/profile-claim"]  
      },  
      "identifier" : [{  
        "system" : "http://example.org/PATIENT_EVENT_TRACE_NUMBER",  
        "value" : "111099"   
      }],  
      "status" : "active",  
      "type" : {  
        "coding" : [{  
          "system" : "http://terminology.hl7.org/CodeSystem/claim-type",  
          "code" : "professional"  
        }]  
      },  
      "use" : "preauthorization",  
      "patient" : {  
        "reference" : "Patient/SubscriberExample"  
      },  
      "created" : "2005-05-02T11:01:00+05:00",  
      "insurer" : {  
        "reference" : "Organization/InsurerExample"  
      },  
      "provider" : {  
        "reference" : "Organization/UMOExample"  
      },  
      "priority" : {  
        "coding" : [{  
          "system" : "http://terminology.hl7.org/CodeSystem/processpriority",  
          "code" : "normal"  
        }]  
      },  
      "insurance" : [{  
        "sequence" : 1,  
        "focal" : true,  
        "coverage" : {  
          "reference" : "Coverage/InsuranceExample"  
        }  
      }],  
      "item" : [{  
        "extension" : [{  
          "url" : "http://hl7.org/fhir/us/davinci-pas/StructureDefinition/extension-serviceItemRequestType",  
          "valueCodeableConcept" : {  
            "coding" : [{  
              "system" : "https://codesystem.x12.org/005010/1525",  
              "code" : "IN",  
              "display" : "Initial Medical Services Reservation"  
            }]  
          }  
        },  
        {  
          "url" : "http://hl7.org/fhir/us/davinci-pas/StructureDefinition/extension-certificationType",  
          "valueCodeableConcept" : {  
            "coding" : [{  
              "system" : "https://codesystem.x12.org/005010/1322",  
              "code" : "I",  
              "display" : "Initial"  
            }]  
          }  
        },  
        {  
          "url" : "http://hl7.org/fhir/us/davinci-pas/StructureDefinition/extension-authorizationNumber",  
          "valueString" : "1122344"  
        },  
        {  
          "url" : "http://hl7.org/fhir/us/davinci-pas/StructureDefinition/extension-administrationReferenceNumber",  
          "valueString" : "33441122"  
        }],  
        "sequence" : 1,  
        "category" : {  
          "coding" : [{  
            "system" : "https://codesystem.x12.org/005010/1365",  
            "code" : "1",  
            "display" : "Medical Care"  
          }]  
        },  
        "productOrService" : {  
          "coding" : [{  
            "system" : "http://www.cms.gov/Medicare/Coding/HCPCS​ReleaseCodeSets",  
            "code" : "99212",  
            "display" : "Established Office Visit"  
          }]  
        },  
        "servicedDate" : "2005-05-10",  
        "locationCodeableConcept" : {  
          "coding" : [{  
            "system" : "https://www.cms.gov/Medicare/Coding/place-of-service-codes/Place_of_Service_Code_Set",  
            "code" : "11"  
          }]  
        }  
      }]  
    }  
  },  
  {  
    "fullUrl" : "http://example.org/fhir/Organization/UMOExample",  
    "resource" : {  
      "resourceType" : "Organization",  
      "id" : "UMOExample",  
      "meta" : {  
        "profile" : ["http://hl7.org/fhir/us/davinci-pas/StructureDefinition/profile-requestor"]  
      },  
      "identifier" : [{  
        "system" : "http://hl7.org/fhir/sid/us-npi",  
        "value" : "8189991234"  
      }],  
      "active" : true,  
      "type" : [{  
        "coding" : [{  
          "system" : "https://codesystem.x12.org/005010/98",  
          "code" : "X3"  
        }]  
      }],  
      "name" : "DR. JOE SMITH CORPORATION",  
      "address" : [{  
        "line" : ["111 1ST STREET"],  
        "city" : "SAN DIEGO",  
        "state" : "CA",  
        "postalCode" : "92101",  
        "country" : "US"  
      }]  
    }  
  },  
  {  
    "fullUrl" : "http://example.org/fhir/Organization/InsurerExample",  
    "resource" : {  
      "resourceType" : "Organization",  
      "id" : "InsurerExample",  
      "meta" : {  
        "profile" : ["http://hl7.org/fhir/us/davinci-pas/StructureDefinition/profile-insurer"]  
      },  
      "identifier" : [{  
        "system" : "http://hl7.org/fhir/sid/us-npi",  
        "value" : "1234567893"  
      }],  
      "active" : true,  
      "type" : [{  
        "coding" : [{  
          "system" : "https://codesystem.x12.org/005010/98",  
          "code" : "PR"  
        }]  
      }],  
      "name" : "MARYLAND CAPITAL INSURANCE COMPANY"  
    }  
  },  
  {  
    "fullUrl" : "http://example.org/fhir/Coverage/InsuranceExample",  
    "resource" : {  
      "resourceType" : "Coverage",  
      "id" : "InsuranceExample",  
      "meta" : {  
        "profile" : ["http://hl7.org/fhir/us/davinci-pas/StructureDefinition/profile-coverage"]  
      },  
      "status" : "active",  
      "subscriberId" : "1122334455",  
      "beneficiary" : {  
        "reference" : "Patient/SubscriberExample"  
      },  
      "relationship" : {  
        "coding" : [{  
          "system" : "http://terminology.hl7.org/CodeSystem/subscriber-relationship",  
          "code" : "self"  
        },  
        {  
          "system" : "https://codesystem.x12.org/005010/1069",  
          "code" : "18"  
        }]  
      },  
      "payor" : [{  
        "reference" : "Organization/InsurerExample"  
      }]  
    }  
  },  
  {  
    "fullUrl" : "http://example.org/fhir/Patient/SubscriberExample",  
    "resource" : {  
      "resourceType" : "Patient",  
      "id" : "SubscriberExample",  
      "meta" : {  
        "profile" : ["http://hl7.org/fhir/us/davinci-pas/StructureDefinition/profile-subscriber"]  
      },  
      "extension" : [{  
        "url" : "http://hl7.org/fhir/us/davinci-pas/StructureDefinition/extension-militaryStatus",  
        "valueCodeableConcept" : {  
          "coding" : [{  
            "system" : "https://codesystem.x12.org/005010/584",  
            "code" : "RU"  
          }]  
        }  
      }],  
      "identifier" : [{  
        "type" : {  
          "coding" : [{  
            "system" : "http://terminology.hl7.org/CodeSystem/v2-0203",  
            "code" : "MB"  
          }]  
        },  
        "system" : "http://example.org/MIN",  
        "value" : "12345678901"  
      }],  
      "name" : [{  
        "family" : "SMITH",  
        "given" : ["JOE"]  
      }],  
      "gender" : "male"  
    }  
  }]  
}
```

## 响应格式
<a name="submit-response-format"></a>

### 成功响应 (200 OK)
<a name="submit-success-response"></a>

您将收到一个 PAS 响应包，其中包含：
+ **ClaimResponse**使用`outcome: "queued"`和 `status: "active"`
+ 您请求中的所有原始资源
+ 确认收货的时间戳

```
{  
  "resourceType" : "Bundle",  
  "identifier": {  
        "system": "http://example.org/SUBMITTER_TRANSACTION_IDENTIFIER",  
        "value": "5269367"  
  },  
  "type" : "collection",  
  "timestamp" : "2005-05-02T11:02:00+05:00",  
  "entry" : [{  
    "fullUrl" : "http://example.org/fhir/ClaimResponse/PractitionerRequestorPendingResponseExample",  
    "resource" : {  
      "resourceType" : "ClaimResponse",  
      "id" : "PractitionerRequestorPendingResponseExample",  
      "meta" : {  
        "profile" : ["http://hl7.org/fhir/us/davinci-pas/StructureDefinition/profile-claimresponse"]  
      },  
      "identifier" : [{  
        "system" : "http://example.org/PATIENT_EVENT_TRACE_NUMBER",  
        "value" : "111099"  
      }],  
      "status" : "active",  
      "type" : {  
        "coding" : [{  
          "system" : "http://terminology.hl7.org/CodeSystem/claim-type",  
          "code" : "professional"  
        }]  
      },  
      "use" : "preauthorization",  
      "patient" : {  
        "reference" : "Patient/SubscriberExample"  
      },  
      "created" : "2005-05-02T11:02:00+05:00",  
      "insurer" : {  
        "reference" : "Organization/InsurerExample"  
      },  
      "requestor" : {  
        "reference" : "PractitionerRole/ReferralPractitionerRoleExample"  
      },  
      "request" : {  
        "reference" : "Claim/MedicalServicesAuthorizationExample"  
      },  
      "outcome" : "queued"  
    }  
  },  
  {  
    "fullUrl" : "http://example.org/fhir/Claim/MedicalServicesAuthorizationExample",  
    "resource" : {  
      "resourceType" : "Claim",  
      "id" : "MedicalServicesAuthorizationExample",  
      "meta" : {  
        "profile": [  
            "http://hl7.org/fhir/us/davinci-pas/StructureDefinition/profile-claim",  
            "http://hl7.org/fhir/us/davinci-pas/StructureDefinition/profile-claim|2.1.0"  
        ]  
      },  
      "identifier" : [{  
        "system" : "http://example.org/PATIENT_EVENT_TRACE_NUMBER",  
        "value" : "111099"  
        }  
      }],  
      "status" : "active",  
      "type" : {  
        "coding" : [{  
          "system" : "http://terminology.hl7.org/CodeSystem/claim-type",  
          "code" : "professional"  
        }]  
      },  
      "use" : "preauthorization",  
      "patient" : {  
        "reference" : "Patient/SubscriberExample"  
      },  
      "created" : "2005-05-02T11:01:00+05:00",  
      "insurer" : {  
        "reference" : "Organization/InsurerExample"  
      },  
      "provider" : {  
        "reference" : "Organization/UMOExample"  
      },  
      "priority" : {  
        "coding" : [{  
          "system" : "http://terminology.hl7.org/CodeSystem/processpriority",  
          "code" : "normal"  
        }]  
      },  
      "insurance" : [{  
        "sequence" : 1,  
        "focal" : true,  
        "coverage" : {  
          "reference" : "Coverage/InsuranceExample"  
        }  
      }],  
      "item" : [{  
        "extension" : [{  
          "url" : "http://hl7.org/fhir/us/davinci-pas/StructureDefinition/extension-serviceItemRequestType",  
          "valueCodeableConcept" : {  
            "coding" : [{  
              "system" : "https://codesystem.x12.org/005010/1525",  
              "code" : "IN",  
              "display" : "Initial Medical Services Reservation"  
            }]  
          }  
        },  
        {  
          "url" : "http://hl7.org/fhir/us/davinci-pas/StructureDefinition/extension-certificationType",  
          "valueCodeableConcept" : {  
            "coding" : [{  
              "system" : "https://codesystem.x12.org/005010/1322",  
              "code" : "I",  
              "display" : "Initial"  
            }]  
          }  
        },  
        {  
          "url" : "http://hl7.org/fhir/us/davinci-pas/StructureDefinition/extension-authorizationNumber",  
          "valueString" : "1122344"  
        },  
        {  
          "url" : "http://hl7.org/fhir/us/davinci-pas/StructureDefinition/extension-administrationReferenceNumber",  
          "valueString" : "33441122"  
        }],  
        "sequence" : 1,  
        "category" : {  
          "coding" : [{  
            "system" : "https://codesystem.x12.org/005010/1365",  
            "code" : "1",  
            "display" : "Medical Care"  
          }]  
        },  
        "productOrService" : {  
          "coding" : [{  
            "system" : "http://www.cms.gov/Medicare/Coding/HCPCS​ReleaseCodeSets",  
            "code" : "99212",  
            "display" : "Established Office Visit"  
          }]  
        },  
        "servicedDate" : "2005-05-10",  
        "locationCodeableConcept" : {  
          "coding" : [{  
            "system" : "https://www.cms.gov/Medicare/Coding/place-of-service-codes/Place_of_Service_Code_Set",  
            "code" : "11"  
          }]  
        }  
      }]  
    }  
  },  
  {  
    "fullUrl" : "http://example.org/fhir/Organization/UMOExample",  
    "resource" : {  
      "resourceType" : "Organization",  
      "id" : "UMOExample",  
      "meta" : {  
        "profile": [  
            "http://hl7.org/fhir/us/davinci-pas/StructureDefinition/profile-requestor",  
            "http://hl7.org/fhir/us/davinci-pas/StructureDefinition/profile-requestor|2.1.0"  
        ]  
      },  
      "identifier" : [{  
        "system" : "http://hl7.org/fhir/sid/us-npi",  
        "value" : "8189991234"  
      }],  
      "active" : true,  
      "type" : [{  
        "coding" : [{  
          "system" : "https://codesystem.x12.org/005010/98",  
          "code" : "X3"  
        }]  
      }],  
      "name" : "DR. JOE SMITH CORPORATION",  
      "address" : [{  
        "line" : ["111 1ST STREET"],  
        "city" : "SAN DIEGO",  
        "state" : "CA",  
        "postalCode" : "92101",  
        "country" : "US"  
      }]  
    }  
  },  
  {  
    "fullUrl" : "http://example.org/fhir/Organization/InsurerExample",  
    "resource" : {  
      "resourceType" : "Organization",  
      "id" : "InsurerExample",  
      "meta" : {  
           "profile": [  
                "http://hl7.org/fhir/us/davinci-pas/StructureDefinition/profile-insurer",  
                "http://hl7.org/fhir/us/davinci-pas/StructureDefinition/profile-insurer|2.1.0"  
            ]  
      },  
      "identifier" : [{  
        "system" : "http://hl7.org/fhir/sid/us-npi",  
        "value" : "1234567893"  
      }],  
      "active" : true,  
      "type" : [{  
        "coding" : [{  
          "system" : "https://codesystem.x12.org/005010/98",  
          "code" : "PR"  
        }]  
      }],  
      "name" : "MARYLAND CAPITAL INSURANCE COMPANY"  
    }  
  },  
  {  
    "fullUrl" : "http://example.org/fhir/Coverage/InsuranceExample",  
    "resource" : {  
      "resourceType" : "Coverage",  
      "id" : "InsuranceExample",  
      "meta": {  
            "profile": [  
                "http://hl7.org/fhir/us/davinci-pas/StructureDefinition/profile-coverage",  
                "http://hl7.org/fhir/us/davinci-pas/StructureDefinition/profile-coverage|2.1.0"  
            ]  
        },  
      "status" : "active",  
      "subscriberId" : "1122334455",  
      "beneficiary" : {  
        "reference" : "Patient/SubscriberExample"  
      },  
      "relationship" : {  
        "coding" : [{  
          "system" : "http://terminology.hl7.org/CodeSystem/subscriber-relationship",  
          "code" : "self"  
        },  
        {  
          "system" : "https://codesystem.x12.org/005010/1069",  
          "code" : "18"  
        }]  
      },  
      "payor" : [{  
        "reference" : "Organization/InsurerExample"  
      }]  
    }  
  },  
  {  
    "fullUrl" : "http://example.org/fhir/Patient/SubscriberExample",  
    "resource" : {  
      "resourceType" : "Patient",  
      "id" : "SubscriberExample",  
      "meta": {  
            "profile": [  
                "http://hl7.org/fhir/us/davinci-pas/StructureDefinition/profile-subscriber",  
                "http://hl7.org/fhir/us/davinci-pas/StructureDefinition/profile-beneficiary",  
                "http://hl7.org/fhir/us/davinci-pas/StructureDefinition/profile-beneficiary|2.1.0"  
            ]  
        },  
      "extension" : [{  
        "url" : "http://hl7.org/fhir/us/davinci-pas/StructureDefinition/extension-militaryStatus",  
        "valueCodeableConcept" : {  
          "coding" : [{  
            "system" : "https://codesystem.x12.org/005010/584",  
            "code" : "RU"  
          }]  
        }  
      }],  
      "identifier" : [{  
        "type" : {  
          "coding" : [{  
            "system" : "http://terminology.hl7.org/CodeSystem/v2-0203",  
            "code" : "MB"  
          }]  
        },  
        "system" : "http://example.org/MIN",  
        "value" : "12345678901"  
      }],  
      "name" : [{  
        "family" : "SMITH",  
        "given" : ["JOE"]  
      }],  
      "gender" : "male"  
    }  
  }]  
}
```

## 错误响应
<a name="submit-error-responses"></a>

### 400 错误请求
<a name="submit-400-error"></a>

当请求格式无效或格式错误时返回。

```
{  
  "resourceType": "OperationOutcome",  
  "issue": [{  
    "severity": "error",  
    "code": "invalid",  
    "diagnostics": "The provided payload was invalid and could not be parsed correctly."  
  }]  
}
```

### 412 前提条件失败
<a name="submit-412-error"></a>

当已提交相同的事先授权请求（检测到重复提交）时返回。

```
{  
  "resourceType": "OperationOutcome",  
  "issue": [{  
    "severity": "error",  
    "code": "processing",  
    "diagnostics": "PreAuth Claim already exists"  
  }]  
}
```

**幂等性**  
该`$submit`操作是等效的。多次提交同一个请求不会创建重复的事先授权请求。相反，你会收到一个 412 错误，指示你使用`$inquire`来检查原始提交的状态。

### 422 无法处理的实体
<a name="submit-422-error"></a>

当 FHIR 验证失败时返回。

```
{  
  "resourceType": "OperationOutcome",  
  "issue": [{  
    "severity": "error",  
    "code": "required",  
    "diagnostics": "Bundle contains more than one preauthorization claim"  
  }]  
}
```

## 验证规则
<a name="submit-validation-rules"></a>

HealthLake 对您提交的内容进行全面验证：

### 捆绑包验证
<a name="submit-bundle-validation"></a>
+ 必须符合 PAS 请求捆绑包配置文件
+ `Bundle.type`必须是 `"collection"`
+ 可以包含多个 Claim 资源
+ 但是，必须仅包含一个可使用预授权的 Claim 资源
  + 而且这个 Claim 资源必须是捆绑包中的第一个条目
+ 所有引用的资源都必须包含在捆绑包中

### 索赔验证
<a name="submit-claim-validation"></a>
+ 必须符合 PAS 索赔档案
+ `Claim.use`必须是 `"preauthorization"`
+ 必填字段：`patient``insurer`、、`provider`、`created`、`priority`
+ 企业标识符必须存在且有效

### 资源验证
<a name="submit-resource-validation"></a>
+ 所有资源都必须符合各自的 PAS 配置文件
+ 必须有所需的支持资源（患者、承保范围、组织）
+ 交叉引用必须有效且可在 Bundle 中解析

## 性能规格
<a name="submit-performance-specs"></a>


| 指标 |  规范 | 
| --- | --- | 
| 捆绑包大小限制 | 最大 5 MB | 
| 资源数量限制 | 每个捆绑包 500 个资源 | 

## 所需的权限
<a name="submit-required-permissions"></a>

要使用该`$submit`操作，可以在 FHIR 上使用 AWS Sigv4 或 SMART：
+ 确保您的 IAM 角色具有：`healthlake:SubmitPreAuthClaim`-调用操作

**在 FHIR 瞄准镜上使用 S**  
**所需的最低范围：**
+ **SMART v1：**`user/Claim.write & <all_resourceTypes_in_Bundle>.write`
+ **SMART v2：**`user/Claim.c & <all_resourceTypes_in_Bundle>.c or system/*.*`

## 重要的实施说明
<a name="submit-implementation-notes"></a>

### 资源持久性
<a name="submit-resource-persistence"></a>
+ 所有 Bundle 条目都作为单独的 FHIR 资源保留在您的数据存储中
+ 客户提供的信息在提供时 IDs 会被保留
+ 维护版本历史记录以供审计
+ 重复检测可防止资源冲突

### 处理行为
<a name="submit-processing-behavior"></a>
+ 每份有效的提交结果恰好是一份 ClaimResponse ，其中包含`"queued"`结果
+ 无效的提交会返回 400 或 422 状态码以及详细的错误信息
+ 系统错误会返回相应的 5xx 状态码
+ 所有成功提交的内容都会返回 200 状态，且状态为待处理 ClaimResponse

### 捆绑包要求
<a name="submit-bundle-requirements-impl"></a>
+ `Bundle.entry.fullUrl`值必须是 REST URLs 或`"urn:uuid:[guid]"`格式
+ 所有提交内容都 GUIDs 必须是唯一的（相同的资源实例除外）
+ 引用的资源必须存在于捆绑包中或者可以解析

## 相关 操作
<a name="submit-related-operations"></a>
+ `Claim/$inquire`-查询已提交的事先授权请求的状态
+ `Patient/$everything`-检索全面的患者数据以了解事先授权的情况

# 使用验证 FHIR 资源 `$validate`
<a name="reference-fhir-operations-validate"></a>

AWS HealthLake 现在支持 FHIR 资源的`$validate`操作，使您无需执行任何存储操作即可根据 FHIR 规范验证资源并检查其是否符合指定的配置文件或基本资源定义。当您需要执行以下操作时，此操作特别有用：
+ 验证 FHIR CMS 合规性要求
+ 在生产环境中使用资源之前对其进行测试
+ 在用户编辑临床数据时提供实时验证反馈
+ 减少要创建和更新的无效数据提交 APIs

## 用法
<a name="validate-usage"></a>

可以使用 POST 方法在 FHIR 资源上调用该`$validate`操作：

**支持的操作**  


```
POST [base]/[type]/[id]/$validate
POST [base]/[type]/$validate
```

## 支持的负载
<a name="validate-payloads"></a>

**参数资源**  


HealthLake 支持以下 FHIR `$validate` 参数：


| 参数 | Type | 必需 | 说明 | 
| --- | --- | --- | --- | 
| resource | 资源 | 是 | 要验证的资源 | 
| profile | 权威性的 | 否 | 要验证的个人资料的规范网址 | 
| mode | 代码 | 否 | 验证模式：create，或 update | 

**带有查询参数的直接资源**  



| 参数 | Type | 必需 | 说明 | 
| --- | --- | --- | --- | 
| profile | 权威性的 | 否 | 要验证的个人资料的规范网址 | 
| mode | 代码 | 否 | 验证模式：create，或 update | 

## 示例
<a name="validate-examples"></a>

**带有 ID 和参数负载的 POST 资源请求**  


```
POST [base]/Patient/example-patient/$validate
Content-Type: application/fhir+json

{
  "resourceType": "Parameters",
  "parameter": [
    {
      "name": "resource",
      "resource": {
        "resourceType": "Patient",
        "id": "example-patient",
        "name": [
          {
            "family": "Smith",
            "given": ["John"]
          }
        ],
        "gender": "male",
        "birthDate": "1990-01-01"
      }
    },
    {
      "name": "profile",
      "valueCanonical": "http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient"
    },
    {
      "name": "mode",
      "valueString": "create"
    }
  ]
}
```

**资源类型和参数负载的 POST 请求**  


```
POST [base]/Patient/$validate
Content-Type: application/fhir+json

{
  "resourceType": "Parameters",
  "parameter": [
    {
      "name": "resource",
      "resource": {
        "resourceType": "Patient",
        "name": [
          {
            "family": "Doe",
            "given": ["Jane"]
          }
        ],
        "gender": "female",
        "birthDate": "1985-05-15"
      }
    },
    {
      "name": "profile",
      "valueCanonical": "http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient"
    },
    {
      "name": "mode",
      "valueString": "update"
    }
  ]
}
```

**POST 请求带有 ID 和直接资源负载的资源**  


```
POST [base]/Patient/example-patient/$validate?profile=http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient&mode=create
Content-Type: application/fhir+json

{
    "resourceType": "Patient",
    "id": "example-patient",
    "name": [
        {
        "family": "Smith",
        "given": ["John"]
        }
    ],
    "gender": "male",
    "birthDate": "1990-01-01"
}
```

**资源类型和直接资源负载的 POST 请求**  


```
POST [base]/Patient/$validate?profile=http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient&mode=create
Content-Type: application/fhir+json

{
    "resourceType": "Patient",
    "id": "example-patient",
    "name": [
        {
        "family": "Smith",
        "given": ["John"]
        }
    ],
    "gender": "male",
    "birthDate": "1990-01-01"
}
```

**示例响应**  
该操作返回一个包含验证结果的 OperationOutcome 资源：

```
{
  "resourceType": "OperationOutcome",
  "issue": [
    {
      "severity": "information",
      "code": "informational",
      "diagnostics": "Validation successful"
    }
  ]
}
```

**包含验证错误的示例响应**  


```
{
  "resourceType": "OperationOutcome",
  "issue": [
    {
      "severity": "error",
      "code": "required",
      "details": {
        "text": "Missing required element"
      },
      "diagnostics": "Patient.identifier is required by the US Core Patient profile",
      "location": [
        "Patient.identifier"
      ]
    },
    {
      "severity": "warning",
      "code": "code-invalid",
      "details": {
        "text": "Invalid code value"
      },
      "diagnostics": "The provided gender code is not from the required value set",
      "location": [
        "Patient.gender"
      ]
    }
  ]
}
```

## 行为
<a name="validate-behavior"></a>

该`$validate`操作：

1. 根据 FHIR 规范和基础资源定义验证资源

1. 提供`profile`参数时检查与指定配置文件的一致性

1. 根据指定的模式（`create`或）进行`update`验证

1. 返回详细的验证结果，包括错误、警告和信息性消息

1. 不执行任何存储操作-仅限验证

1. 无论是否发现验证问题，当可以执行验证时，都返回 HTTP 200 OK

## 验证模式
<a name="validate-modes"></a>
+ **创建**：像创建资源一样验证资源（新资源）
+ **更新**：像更新一样验证资源（现有资源）

## 错误处理
<a name="validate-error-handling"></a>

该操作返回：
+ 200 OK：验证已成功执行（无论验证结果如何）
+ 400 错误请求：请求格式或参数无效
+ 404 未找到：未找到资源类型或配置文件

有关`$validate`操作规范的更多信息，请参阅 [FHIR R4 资源`$validate`文档](https://www.hl7.org/fhir/R4/operation-resource-validate.html)。