

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

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

 As operações FHIR\$1 (também chamadas de “operações em dólares”) são funções especiais do lado do servidor que se estendem além das operações CRUD padrão (`Create`,, `Read``Update`,`Delete`) na especificação FHIR. Essas operações são identificadas pelo prefixo “\$1” e permitem processamento complexo, transformação de dados e operações em massa que seriam difíceis ou ineficientes de realizar usando chamadas de API REST padrão. \$1 As operações podem ser invocadas no nível do sistema, no nível do tipo de recurso ou em instâncias de recursos específicas, fornecendo maneiras flexíveis de interagir com os dados do FHIR. AWS HealthLake suporta vários FHIR`$operations`. Consulte cada página individual abaixo para obter detalhes adicionais.

**Topics**
+ [Operação FHIR R4 para `$attribution-status` HealthLake](reference-fhir-operations-attribution-status.md)
+ [Excluindo tipos de recursos com `$bulk-delete`](reference-fhir-operations-bulk-delete.md)
+ [`$bulk-member-match`operação para HealthLake](reference-fhir-operations-bulk-member-match.md)
+ [Operação FHIR R4 para `$confirm-attribution-list` HealthLake](reference-fhir-operations-confirm-attribution-list.md)
+ [Operação FHIR R4 para `$davinci-data-export` HealthLake](reference-fhir-operations-davinci-data-export.md)
+ [Gerando documentos clínicos com `$document`](reference-fhir-operations-document.md)
+ [Removendo recursos permanentemente com `$erase`](reference-fhir-operations-erase.md)
+ [Obtendo dados do paciente com `Patient/$everything`](reference-fhir-operations-everything.md)
+ [Recuperando ValueSet códigos com `$expand`](reference-fhir-operations-expand.md)
+ [Exportação de HealthLake dados com o FHIR `$export`](reference-fhir-operations-export.md)
+ [Operação FHIR para `$inquire` HealthLake](reference-fhir-operations-inquire.md)
+ [Recuperando detalhes do conceito com `$lookup`](reference-fhir-operations-lookup.md)
+ [`$member-add`operação para HealthLake](reference-fhir-operations-member-add.md)
+ [`$member-match`operação para HealthLake](reference-fhir-operations-member-match.md)
+ [`$member-remove`operação para HealthLake](reference-fhir-operations-member-remove.md)
+ [Removendo recursos do compartimento do paciente com `$purge`](reference-fhir-operations-purge.md)
+ [Operação FHIR para `$questionnaire-package` HealthLake](reference-fhir-operations-questionnaire-package.md)
+ [Operação FHIR para `$submit` HealthLake](reference-fhir-operations-submit.md)
+ [Validando recursos do FHIR com `$validate`](reference-fhir-operations-validate.md)

# Operação FHIR R4 para `$attribution-status` HealthLake
<a name="reference-fhir-operations-attribution-status"></a>

Recupera o status de atribuição de um membro específico, devolvendo um pacote contendo todos os recursos de atribuição relacionados ao paciente. Essa operação faz parte da implementação da Lista IG 2.1.0 da Lista de [Atribuição de Membros (ATR) da FHIR](https://build.fhir.org/ig/HL7/davinci-atr/spec.html).

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

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

## Parâmetros da solicitação
<a name="attribution-status-parameters"></a>

A operação aceita os seguintes parâmetros opcionais:


| Parâmetro | Tipo | Description | 
| --- | --- | --- | 
| memberId | Identificador | O MemberId do membro para quem o status de atribuição é solicitado | 
| Referência do paciente | Referência | Referência ao recurso do paciente no sistema do produtor | 

**nota**  
Um `memberId` ou `patientReference` pode ser fornecido, ou ambos para fins de validação.

## Exemplo de solicitação
<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"
      }
    }
  ]
}
```

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

Retorna um pacote contendo recursos de atribuição relacionados ao paciente:


| Recurso | Cardinalidade | Local | 
| --- | --- | --- | 
| Paciente | 1..1 | grupo.membro.entidade | 
| Cobertura | 0,1 | group.member.extension: referência de cobertura | 
| Organization/Practitioner/PractitionerRole | 0,1 | group.member.extension: AttributedProvider | 
| Qualquer recurso | 0,1 | group.member.extension: dados associados | 

### Resposta da amostra
<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
      }
    }
  ]
}
```

## Tratamento de erros
<a name="attribution-status-error-handling"></a>

A operação trata das seguintes condições de erro:


| Erro | Status HTTP | Description | 
| --- | --- | --- | 
| Solicitação de operação inválida | 400 | Parâmetros ou estrutura de solicitação não conformes | 
| Recurso de grupo não encontrado | 404 | O ID de grupo especificado não existe | 
| Recurso do paciente não encontrado | 404 | A referência de paciente especificada não existe | 

## Autorização e segurança
<a name="attribution-status-authorization"></a>

Requisitos do SMART Scope  
Os clientes devem ter privilégios apropriados para ler os recursos do Grupo e os recursos de atribuição relacionados  
Os mecanismos de autorização padrão do FHIR se aplicam a todas as operações

# Excluindo tipos de recursos com `$bulk-delete`
<a name="reference-fhir-operations-bulk-delete"></a>

AWS HealthLake dá suporte à `$bulk-delete` operação, permitindo a exclusão de todos os recursos de um tipo específico em um armazenamento de dados. Essa operação é particularmente útil quando você precisa:
+ Realize auditorias e limpezas sazonais
+ Gerencie o ciclo de vida dos dados em grande escala
+ Remover tipos de recursos específicos
+ Cumpra as políticas de retenção de dados

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

A `$bulk-delete` operação pode ser invocada usando métodos POST:

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

## Parâmetros
<a name="bulk-delete-parameters"></a>


| Parâmetro | Tipo | Obrigatório | Padrão | Description | 
| --- | --- | --- | --- | --- | 
| isHardDelete | booliano | Não | false | Quando verdadeiro, remove permanentemente os recursos do armazenamento | 
| deleteAuditEvent | booleano | Não | true | Quando verdadeiro, exclui os eventos de auditoria associados | 
| \$1since | string | Não | Hora de criação do armazenamento de dados | Quando inserido, seleciona a hora limite inicial para encontrar recursos com base na hora da Última Modificação. Não pode ser usado com início ou fim | 
| start | string | Não | Hora de criação do armazenamento de dados | Quando inserido, seleciona o horário limite para encontrar recursos com base no horário da Última Modificação. Pode ser usado com extremidade | 
| end | string | Não | Horário de envio do trabalho | Quando inserido, seleciona a hora limite final para encontrar recursos com base na hora da Última Modificação | 

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

**Exemplo de solicitação**  


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

**Exemplo de resposta**  


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

## Status do trabalho
<a name="bulk-delete-job-status"></a>

Para verificar o status de uma tarefa de exclusão em massa:

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

A operação retorna informações sobre o status do trabalho:

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

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

A `$bulk-delete` operação:

1. Processa de forma assíncrona para lidar com grandes volumes de recursos

1. Mantém as transações ACID para a integridade dos dados

1. Fornece rastreamento do status do trabalho com contagens de exclusões de recursos

1. Suporta os modos de exclusão temporária e definitiva

1. Inclui registro abrangente de auditoria das atividades de exclusão

1. Permite a exclusão seletiva de versões históricas e eventos de auditoria

## Registro de auditoria
<a name="bulk-delete-audit-logging"></a>

A `$bulk-delete` operação é registrada como Iniciar FHIRBulk DeleteJob e Descrever FHIRBulk DeleteJob com informações detalhadas da operação.

## Limitações
<a name="bulk-delete-limitations"></a>
+ Quando `isHardDelete` definido como verdadeiro, os recursos excluídos permanentemente não aparecerão nos resultados da pesquisa ou `_history` nas consultas.
+ Os recursos que estão sendo excluídos por meio dessa operação podem ficar temporariamente inacessíveis durante o processamento.
+ A medição de armazenamento é ajustada somente nas versões históricas - deleteVersionHistory =false não ajusta o armazenamento do armazenamento de dados

# `$bulk-member-match`operação para HealthLake
<a name="reference-fhir-operations-bulk-member-match"></a>

AWS HealthLake suporta a `$bulk-member-match` operação de processamento de solicitações de correspondência de vários membros de forma assíncrona. Essa operação permite que as organizações de saúde combinem com eficiência centenas de identificadores exclusivos de membros em diferentes sistemas de saúde usando informações demográficas e de cobertura em uma única solicitação em massa. [Esse recurso é essencial para troca de payer-to-payer dados em grande escala, transições de membros e requisitos de conformidade do CMS e segue a especificação FHIR.](https://build.fhir.org/ig/HL7/davinci-epdx/OperationDefinition-BulkMemberMatch.html)

**nota**  
A `$bulk-member-match` operação é baseada em uma especificação FHIR subjacente que atualmente é experimental e está sujeita a alterações. Conforme a especificação evolui, o comportamento e a interface dessa API serão atualizados adequadamente. Recomenda-se que os desenvolvedores monitorem as notas de HealthLake lançamento da AWS e as atualizações relevantes da especificação FHIR para se manterem informados sobre quaisquer alterações que possam afetar suas integrações.

Essa operação é particularmente útil quando você precisa:
+ Processe a correspondência de membros em grande escala durante os períodos de inscrição aberta
+ Facilite as transições de membros em massa entre pagadores
+ Support os requisitos de troca de dados de conformidade do CMS em grande escala
+ Combine eficientemente grupos de membros em todas as redes de saúde
+ Minimize as chamadas de API e melhore a eficiência operacional para cenários de correspondência de alto volume

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

A `$bulk-member-match` operação é uma operação assíncrona invocada em recursos do Grupo usando o método POST:

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

Depois de enviar uma solicitação de correspondência em massa, você pode pesquisar o status do trabalho usando:

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

## Parâmetros compatíveis
<a name="bulk-member-match-parameters"></a>

HealthLake suporta os seguintes parâmetros FHIR: `$bulk-member-match`


| Parâmetro | Tipo | Obrigatório | Description | 
| --- | --- | --- | --- | 
| `MemberPatient` | Paciente | Sim | Recurso para pacientes contendo informações demográficas para o membro a ser combinado. | 
| `CoverageToMatch` | Cobertura | Sim | Recurso de cobertura que será usado para comparar com os registros existentes. | 
| `CoverageToLink` | Cobertura | Não | Recurso de cobertura a ser vinculado durante o processo de correspondência. | 
| `Consent` | Consentimento | Sim | O recurso de consentimento para fins de autorização também é armazenado. Isso é diferente da `$member-match` operação individual em que o consentimento *não* é necessário. | 

## Solicitação POST para enviar uma vaga de correspondência de membros em massa
<a name="bulk-member-match-request-example"></a>

O exemplo a seguir mostra uma solicitação POST para enviar um trabalho por correspondência de membros em massa. Cada membro é encapsulado em um `MemberBundle` parâmetro contendo os `Consent` recursos e os recursos necessários `MemberPatient``CoverageToMatch`, além de um opcional`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"
              }
            ]
          }
        }
      ]
    }
  ]
}
```

## Resposta de trabalho concluída com saída
<a name="bulk-member-match-response-example"></a>

Quando o trabalho é concluído, a resposta inclui metadados do trabalho e um recurso de parâmetros FHIR contendo três recursos de grupo que categorizam os resultados da correspondência.

```
{
  "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"
              }
            }
          ]
        }
      }
    ]
  }
}
```

## Recursos do Grupo de Saída
<a name="bulk-member-match-output-groups"></a>

O trabalho concluído retorna um recurso de Parâmetros contendo três recursos do Grupo:

**MatchedMembers Group (Grupo)**  
Contém referências de pacientes para todos os membros combinados com sucesso e não é categorizado como restrição de consentimento.

O `Group.quantity` campo contém a contagem total de membros em cada um de seus respectivos grupos.

**NonMatchedMembers Group (Grupo)**  
Contém referências a membros em que nenhuma correspondência foi encontrada ou várias correspondências foram identificadas.

**ConsentConstrainedMembers Group (Grupo)**  
Contém referências de pacientes para todos os membros combinados com sucesso, onde restrições de consentimento impedem o compartilhamento de dados. Um recurso de consentimento é considerado restrito quando as duas condições a seguir estão presentes:  
+ **O URI da política termina em `#sensitive`** — Esse é o sinal mais claro e direto. O pagador responsável pelo envio está explicitamente dizendo: “Os dados deste membro são confidenciais — manuseie-os com cuidado”.

  ```
  "policy": [{ "uri": "...hrex-consent.html#sensitive" }]
  ```
+ **O tipo de provisão de nível superior é `deny`** — O membro recusou amplamente o compartilhamento de dados.

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

## Integração com \$1 davinci-data-export
<a name="bulk-member-match-davinci-integration"></a>

O recurso de MatchedMembers grupo retornado por `$bulk-member-match` pode ser usado diretamente com a `$davinci-data-export` operação para recuperar dados de membros em massa:

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

Essa integração permite fluxos de trabalho eficientes em que você primeiro identifica os membros correspondentes em massa e depois exporta seus registros de saúde completos usando o recurso de grupo resultante.

## Características de desempenho
<a name="bulk-member-match-performance"></a>

A `$bulk-member-match` operação foi projetada para processamento de alto volume e é executada de forma assíncrona:
+ **Concorrência**: máximo de 5 operações simultâneas por armazenamento de dados.
+ **Escalabilidade**: lida com até 500 membros por solicitação (limite de carga útil de 5 MB).
+ **Operações paralelas**: Compatível com operações simultâneas de importação, exportação ou exclusão em massa.

## Autorização
<a name="bulk-member-match-authorization"></a>

A API usa SMART no protocolo de autorização FHIR com os seguintes escopos obrigatórios:
+ `system/Patient.read`— Necessário para pesquisar e combinar os recursos do paciente.
+ `system/Coverage.read`— Necessário para validar as informações de cobertura.
+ `system/Group.write`— Necessário para criar recursos do Grupo de resultados.
+ `system/Organization.read`— Condicional, obrigatório se a cobertura fizer referência a organizações.
+ `system/Practitioner.read`— Condicional, exigido se a cobertura fizer referência a profissionais.
+ `system/PractitionerRole.read`— Condicional, exigido se a cobertura fizer referência às funções dos profissionais.
+ `system/Consent.write`— Condicional, exigido se os recursos de consentimento forem fornecidos.

A operação também oferece suporte à autorização AWS do IAM Signature Version 4 (SigV4) para acesso programático.

## Tratamento de erros
<a name="bulk-member-match-errors"></a>

A operação trata das seguintes condições de erro:
+ **400 Solicitação inválida**: formato de solicitação inválido, parâmetros obrigatórios ausentes ou a carga excede os limites de tamanho (500 membros ou 5 MB).
+ **422 Entidade não processável**: erros de processamento durante a execução do trabalho.
+ **Erros individuais de membros**: quando um membro específico não consegue processar, a operação continua com os membros restantes e inclui detalhes do erro no NonMatchedMembers Grupo com códigos de motivo apropriados. Por exemplo, um `MemberBundle` paciente sem o `birthDate` parâmetro retornará o seguinte erro:

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

Os detalhes do erro estão disponíveis por meio do endpoint da pesquisa de status e incluem:
+ `numberOfMembersWithCustomerError`: Contagem de membros com erros de validação ou entrada.
+ `numberOfMembersWithServerError`: contagem de membros com erros de processamento no servidor.

## Operações do relacionadas
<a name="bulk-member-match-related"></a>
+ [`$member-match`operação para HealthLake](reference-fhir-operations-member-match.md)— Operação de correspondência de membros individuais.
+ [Operação FHIR R4 para `$davinci-data-export` HealthLake](reference-fhir-operations-davinci-data-export.md)— Exportação de dados em massa usando recursos do Grupo.
+ [FHIR R4 para `$operations` HealthLake](reference-fhir-operations.md)— Lista completa das operações suportadas.

# Operação FHIR R4 para `$confirm-attribution-list` HealthLake
<a name="reference-fhir-operations-confirm-attribution-list"></a>

Indica ao produtor que o consumidor não tem mais alterações a fazer na Lista de atribuição. Essa operação finaliza a lista de atribuição removendo membros inativos da lista, alterando o status para “final” e confirmando a operação. Essa operação faz parte da implementação da [FHIR Member Attribution (ATR)](https://build.fhir.org/ig/HL7/davinci-atr/spec.html) List IG 2.1.0.

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

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

## Solicitação
<a name="confirm-attribution-list-request"></a>

Não são necessários parâmetros.

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

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

Retorna HTTP 201 com uma mensagem de confirmação.

### Resposta da amostra
<a name="confirm-attribution-list-response-example"></a>

```
HTTP Status Code: 201

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

## Status do grupo após a confirmação
<a name="confirm-attribution-list-group-status"></a>

Após a confirmação bem-sucedida, o recurso do Grupo terá o status da lista de atribuições definido como “final”:

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

## Tratamento de erros
<a name="confirm-attribution-list-error-handling"></a>

A operação trata das seguintes condições de erro:


| Erro | Status HTTP | Description | 
| --- | --- | --- | 
| Solicitação de operação inválida | 400 | Parâmetros ou estrutura de solicitação não conformes | 
| Recurso de grupo não encontrado | 404 | O ID de grupo especificado não existe | 

## Autorização e segurança
<a name="confirm-attribution-list-authorization"></a>

Requisitos do SMART Scope  
Os clientes devem ter privilégios apropriados para ler os recursos do Grupo e os recursos de atribuição relacionados  
Pois`$confirm-attribution-list`, os clientes também devem ter privilégios de gravação para modificar os recursos do Grupo  
Os mecanismos de autorização padrão do FHIR se aplicam a todas as operações

# Operação FHIR R4 para `$davinci-data-export` HealthLake
<a name="reference-fhir-operations-davinci-data-export"></a>

A `$davinci-data-export` operação é uma operação FHIR assíncrona que você pode usar para exportar dados de saúde. AWS HealthLake Essa operação oferece suporte a vários tipos de exportação, incluindo Atribuição de Membro (ATR) Payer-to-Payer, Acesso ao PDex Provedor e Acesso ao Membro. APIs É uma versão especializada da `$export` operação padrão do FHIR, projetada para atender aos requisitos dos guias de DaVinci implementação.

## Recursos principais
<a name="davinci-data-export-features"></a>
+ *Processamento assíncrono*: segue o padrão de solicitação assíncrona FHIR
+ *Exportação em nível de grupo*: exporta dados para membros em um recurso de grupo específico
+ *Vários tipos de exportação*: suporta ATR (atribuição de membros), acesso de PDex provedor e acesso de membros Payer-to-Payer APIs
+ *Suporte abrangente de perfis*: inclui US Core, CARIN Blue Button e PDex perfis
+ *Filtragem flexível*: suporta a filtragem por pacientes, tipos de recursos e intervalos de tempo
+ *Saída NDJSON*: fornece dados no formato JSON delimitado por nova linha

## Ponto final da operação
<a name="davinci-data-export-endpoint"></a>

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

## Parâmetros da solicitação
<a name="davinci-data-export-parameters"></a>


| Parâmetro | Cardinalidade | Description | 
| --- | --- | --- | 
| patient | 0.. \$1 | Membros específicos cujos dados devem ser exportados. Quando omitidos, todos os membros do Grupo são exportados. | 
| \$1type | 0,1 | Lista delimitada por vírgula dos tipos de recursos FHIR a serem exportados. | 
| \$1since | 0,1 | Inclua somente recursos atualizados após essa data e hora. | 
| \$1until | 0,1 | Inclua somente recursos atualizados antes dessa data e hora. | 
| exportType | 0,1 | Tipo de exportação a ser executada. Valores válidos: hl7.fhir.us.davinci-atr, hl7.fhir.us.davinci-pdex, hl7.fhir.us.davinci-pdex.p2p, hl7.fhir.us.davinci-pdex.member. Padrão: hl7.fhir.us.davinci-atr. | 
| \$1includeEOB2xWoFinancial | 0,1 | Especifica se os recursos do CARIN BB 2.x devem ser incluídos com ExplanationOfBenefit os dados financeiros removidos. Padrão: false. | 

### Tipos de recursos compatíveis
<a name="davinci-data-export-supported-resources"></a>

Os tipos de recursos suportados dependem do tipo de exportação que você especificar. Para exportações de ATR, os seguintes tipos de recursos são suportados:
+ `Group`
+ `Patient`
+ `Coverage`
+ `RelatedPerson`
+ `Practitioner`
+ `PractitionerRole`
+ `Organization`
+ `Location`

Para PDex exportações (Provider Access e Member Access), todos os tipos de recursos clínicos e de sinistros são suportados, além dos tipos anteriores. Payer-to-Payer Para obter uma lista completa dos tipos de recursos suportados, consulte o [US Core Implementation Guide (STU 6.1)](https://hl7.org/fhir/us/core/STU6.1/), o [CARIN Blue Button Implementation Guide](https://hl7.org/fhir/us/carin-bb/) e o [Da Vinci Prior Authorization Support Implementation](https://hl7.org/fhir/us/davinci-pas/) Guide.

## Tipos de exportação
<a name="davinci-data-export-types"></a>

A `$davinci-data-export` operação suporta os seguintes tipos de exportação. Você especifica o tipo de exportação usando o `exportType` parâmetro.


| Tipo de exportação | Finalidade | Escopo de dados | Limite temporal | 
| --- | --- | --- | --- | 
| hl7.fhir.us.davinci-atr | Lista de atribuição de membros | Recursos relacionados à atribuição | Nenhum | 
| hl7.fhir.us.davinci-pdex | API de acesso do provedor | Dados clínicos e de reclamações de pacientes atribuídos | 5 anos | 
| hl7.fhir.us.davinci-pdex.p2p | Payer-to-Payer Troca | Dados históricos de associados para transições de seguros | 5 anos | 
| hl7.fhir.us.davinci-pdex.member | API de acesso de membros | Dados de saúde do próprio membro | 5 anos | 

**nota**  
Para PDex exportações, o limite temporal de 5 anos não se aplica aos tipos de recursos ATR (`Group`,,`Patient`,`Coverage`,`RelatedPerson`,, `Practitioner` `PractitionerRole``Organization`,`Location`). Esses recursos estão sempre incluídos, independentemente da idade.

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

Com o tipo de exportação ATR, você pode exportar dados da Lista de Atribuição de Membros. Use esse tipo de exportação para recuperar recursos relacionados à atribuição para membros de um grupo. Para obter mais informações, consulte a Operação de [exportação de ATR Da Vinci](https://build.fhir.org/ig/HL7/davinci-atr/OperationDefinition-davinci-data-export.html).

Tipos de recursos compatíveis  
`Group`, `Patient`, `Coverage`, `RelatedPerson`, `Practitioner`, `PractitionerRole`, `Organization`, `Location`

Filtragem temporal  
Nenhuma filtragem temporal é aplicada. Todos os recursos correspondentes são exportados independentemente da data.

### PDex Tipos de exportação
<a name="davinci-data-export-type-pdex"></a>

Todos os tipos de PDex exportação compartilham os mesmos perfis suportados e a mesma lógica de filtragem. Para obter mais informações, consulte a [API Da Vinci PDex Provider Access](https://build.fhir.org/ig/HL7/davinci-epdx/provider-access-api.html). Os seguintes perfis são compatíveis:
+ US Core 3.1.1, 6.1.0 e 7.0.0
+ PDex Autorização prévia (não suportada para acesso de membros)
+ Perfis básicos do CARIN BB 2.x: Institucional de Internação, Institucional Ambulatorial, Profissional, Oral, Farmácia NonClinician

Acesso do provedor (`hl7.fhir.us.davinci-pdex`)  
Permite que os provedores da rede recuperem dados de pacientes atribuídos.

Payer-to-Payer (`hl7.fhir.us.davinci-pdex.p2p`)  
Permite a troca de dados entre pagadores quando um paciente muda de seguro.

Acesso de membro (`hl7.fhir.us.davinci-pdex.member`)  
Permite que os membros acessem seus próprios dados de saúde. Esse tipo de exportação pode incluir dados financeiros nos recursos de sinistros.

## Suporte de perfil e lógica de inclusão
<a name="davinci-data-export-profile-support"></a>

Para PDex exportações, a `$davinci-data-export` operação usa declarações de perfil no `meta.profile` elemento para determinar quais recursos incluir na exportação.

### ExplanationOfBenefit Tratamento de recursos
<a name="davinci-data-export-carin-handling"></a>

`ExplanationOfBenefit`Os recursos (EOB) são incluídos ou excluídos PDex das exportações com base em suas `meta.profile` declarações:
+ ExplanationOfBenefit recursos com um perfil CARIN BB 1.x são excluídos da exportação.
+ ExplanationOfBenefit recursos sem `meta.profile` conjunto são excluídos da exportação.
+ ExplanationOfBenefit recursos com um perfil CARIN BB 2.x Basis estão sempre incluídos.
+ ExplanationOfBenefit recursos com um perfil CARIN BB 2.x que contém dados financeiros são excluídos por padrão. Quando `_includeEOB2xWoFinancial=true` definido, eles são incluídos com os dados financeiros retirados e o recurso é transformado no perfil Basis correspondente.
+ ExplanationOfBenefit recursos com um perfil de autorização PDex prévia estão sempre incluídos.

### Transformação de dados financeiros
<a name="davinci-data-export-financial-transformation"></a>

Quando você configura`_includeEOB2xWoFinancial=true`, a operação transforma os ExplanationOfBenefit recursos do [CARIN BB 2.x](https://hl7.org/fhir/us/carin-bb/) em seus perfis Basis correspondentes, removendo dados financeiros. Por exemplo, um `C4BB ExplanationOfBenefit Oral` recurso é transformado em`C4BB ExplanationOfBenefit Oral Basis`, o que retira os dados financeiros do registro de acordo com a especificação FHIR.

Os seguintes elementos de dados financeiros são removidos durante a transformação:
+ Todos os elementos são cortados `total`
+ Todos os `adjudication` elementos com `amounttype` fatia
+ Todos os `item.adjudication` elementos com informações de quantidade

A operação também atualiza os metadados do perfil durante a transformação:
+ `meta.profile`é atualizado para o URL canônico do perfil básico
+ A versão é atualizada para a versão base do CARIN BB 2.x
+ Os recursos existentes no armazenamento de dados não são modificados
+ Os recursos exportados não são mantidos de volta ao armazenamento de dados

### Regras de detecção de perfil
<a name="davinci-data-export-profile-detection"></a>

A operação usa as seguintes regras para detectar e validar perfis:
+ A detecção de versão é baseada no código `meta.profile` canônico URLs
+ Um recurso é incluído se QUALQUER um de seus perfis declarados corresponder aos critérios de exportação.
+ A validação do perfil ocorre durante o processamento da exportação

## Filtragem temporal de cinco anos para exportações PDex
<a name="davinci-data-export-temporal-filtering"></a>

Para todos os tipos de PDex exportação, HealthLake aplica um filtro temporal de 5 anos com base na última atualização do recurso. O filtro temporal se aplica a todos os recursos, exceto aos seguintes tipos principais de recursos de atribuição, que são sempre exportados independentemente da idade:
+ `Patient`
+ `Coverage`
+ `Organization`
+ `Practitioner`
+ `PractitionerRole`
+ `RelatedPerson`
+ `Location`
+ `Group`

Esses recursos administrativos e demográficos são isentos porque fornecem contexto essencial para os dados exportados. As exportações de ATR não estão sujeitas a nenhuma filtragem temporal.

## Solicitações de amostra
<a name="davinci-data-export-examples"></a>

Os exemplos a seguir mostram como iniciar trabalhos de exportação para diferentes tipos de exportação.

*Exportação 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"
    }
  }
}
```

*Exportação do Provider Access com remoção de dados ExplanationOfBenefit financeiros*

```
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 exportar*

```
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
```

*Exportação de acesso de membro para um paciente específico*

```
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
```

## Resposta da amostra
<a name="davinci-data-export-sample-response"></a>

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

## Relações de recursos
<a name="davinci-data-export-resource-relationships"></a>

A operação exporta recursos com base em seus relacionamentos na Lista de atribuição de membros:

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

### Fontes de recursos
<a name="davinci-data-export-resource-sources"></a>


| Recurso | Localização da fonte | Description | 
| --- | --- | --- | 
| Patient | Group.member.entity | Os pacientes que são membros da lista de atribuição | 
| Coverage | Group.member.extension:coverageReference | Cobertura que resultou na adesão do paciente | 
| Organization | Group.member.extension:attributedProvider | Organizações às quais os pacientes são atribuídos | 
| Practitioner | Group.member.extension:attributedProvider | Profissionais individuais aos quais os pacientes são atribuídos | 
| PractitionerRole | Group.member.extension:attributedProvider | Funções profissionais às quais os pacientes são atribuídos | 
| RelatedPerson | Coverage.subscriber | Assinantes da cobertura | 
| Location | PractitionerRole.location | Locais associados às funções dos profissionais | 
| Group | Ponto final de entrada | A própria lista de atribuições | 

## Gestão de Job
<a name="davinci-data-export-job-management"></a>

Verifique o status do trabalho  
`GET [base]/export/[job-id]`

Cancelar trabalho  
`DELETE [base]/export/[job-id]`

### Ciclo de vida da tarefa
<a name="davinci-data-export-job-lifecycle"></a>
+ `SUBMITTED`- Job foi recebido e colocado na fila
+ `IN_PROGRESS`- O trabalho está sendo processado ativamente
+ `COMPLETED`- Job concluído com sucesso, arquivos disponíveis para download
+ `FAILED`- Job encontrou um erro

## Output Format
<a name="davinci-data-export-output-format"></a>
+ *Formato de arquivo*: NDJSON (JSON delimitado por nova linha)
+ *Organização de arquivos*: arquivos separados para cada tipo de recurso
+ *Extensão do arquivo*: .ndjson
+ *Localização*: bucket e caminho do S3 especificados

## Tratamento de erros
<a name="davinci-data-export-error-handling"></a>

A operação retorna HTTP 400 Bad Request com uma OperationOutcome das seguintes condições:

Erros de autorização  
A função do IAM especificada em `DataAccessRoleArn` não tem permissões suficientes para realizar a operação de exportação. Para obter a lista completa das permissões necessárias do S3 e do KMS, consulte [Configuração de permissões para trabalhos de exportação](getting-started-setting-up.md#setting-up-export-permissions).

Erros de validação de parâmetros  
+ O `patient` parâmetro não está formatado como `Patient/id,Patient/id,...`
+ Uma ou mais referências de pacientes são inválidas ou não pertencem ao Grupo especificado
+ O valor do `exportType` parâmetro não é um tipo de exportação compatível
+ O `_type` parâmetro contém tipos de recursos que não são compatíveis com o tipo de exportação especificado.
+ O `_type` parâmetro não contém os tipos de recursos necessários (`Group`,`Patient`,`Coverage`) para o tipo de `hl7.fhir.us.davinci-atr` exportação
+ O valor do `_includeEOB2xWoFinancial` parâmetro não é um booleano válido

Erros de validação de recursos  
+ O recurso de grupo especificado não existe no armazenamento de dados
+ O recurso de grupo especificado não tem membros
+ Um ou mais membros do Grupo fazem referência a recursos do paciente que não existem no armazenamento de dados

## Segurança e autorização
<a name="davinci-data-export-security"></a>
+ Os mecanismos de autorização padrão do FHIR se aplicam
+ A função de acesso a dados deve ter as permissões necessárias do IAM para operações do S3 e do KMS. Para ver a lista completa das permissões necessárias, consulte [Configuração de permissões para trabalhos de exportação](getting-started-setting-up.md#setting-up-export-permissions).

## Práticas recomendadas
<a name="davinci-data-export-best-practices"></a>
+ *Seleção do tipo de recurso*: solicite somente os tipos de recursos necessários para minimizar o tamanho da exportação e o tempo de processamento
+ *Filtragem baseada em tempo*: use o `_since` parâmetro para exportações incrementais
+ *Filtragem de pacientes*: use o `patient` parâmetro quando precisar apenas de dados de membros específicos
+ *Monitoramento de trabalhos*: verifique regularmente o status do trabalho para grandes exportações
+ *Tratamento de erros*: implemente a lógica de repetição adequada para trabalhos com falha
+ *Reconhecimento do filtro temporal*: para PDex exportações, considere o filtro temporal de 5 anos ao selecionar os tipos de recursos
+ *Remoção de dados financeiros*: use `_includeEOB2xWoFinancial=true` quando precisar de dados de sinistros sem informações financeiras
+ *Gerenciamento de perfil*: garanta que os recursos tenham declarações de perfil apropriadas, valide os perfis de destino antes da ingestão e use o controle de versão do perfil para controlar o comportamento de exportação

## Limitações
<a name="davinci-data-export-limitations"></a>
+ Máximo de 500 pacientes pode ser especificado no `patient` parâmetro
+ A exportação é limitada somente às operações em nível de grupo
+ Suporta apenas o conjunto predefinido de tipos de recursos para cada tipo de exportação
+ A saída está sempre no formato NDJSON
+ PDex as exportações são limitadas a 5 anos de dados clínicos e de sinistros
+ A transformação de dados financeiros só se aplica aos perfis CARIN BB 2.x ExplanationOfBenefit 

## Recursos adicionais
<a name="davinci-data-export-additional-resources"></a>
+ [Lista de atribuição de membros da Da Vinci IG](https://build.fhir.org/ig/HL7/davinci-atr/)
+ [Intercâmbio de Dados do Jogador Da Vinci (IG)](https://hl7.org/fhir/us/davinci-pdex/)
+ [CARIN Consumer Directed Player Data Exchange IG](https://build.fhir.org/ig/HL7/carin-bb/)
+ [Guia de implementação principal dos EUA](https://www.hl7.org/fhir/us/core/)
+ [Especificação de acesso a dados em massa do FHIR](https://hl7.org/fhir/uv/bulkdata/)

# Gerando documentos clínicos com `$document`
<a name="reference-fhir-operations-document"></a>

AWS HealthLake agora suporta a `$document` operação de recursos de composição, permitindo gerar um documento clínico completo agrupando a composição com todos os recursos referenciados em um único pacote coeso. Essa operação é essencial para aplicativos de saúde que precisam:
+ Crie documentos clínicos padronizados
+ Troque registros completos de pacientes
+ Armazene documentação clínica abrangente
+ Gere relatórios que incluam todo o contexto relevante

## Usage
<a name="document-usage"></a>

A `$document` operação pode ser invocada em recursos de composição usando os métodos GET e POST:

**Operações com Suporte**  


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

## Parâmetros compatíveis
<a name="document-parameters"></a>

HealthLake suporta o seguinte parâmetro FHIR: `$document`


| Parâmetro | Tipo | Obrigatório | Padrão | Description | 
| --- | --- | --- | --- | --- | 
| persist | booliano | Não | false | Booleano indicando se o servidor deve armazenar o pacote de documentos gerado | 

## Exemplos
<a name="document-examples"></a>

**Solicitação GET**  


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

**Solicitação POST com parâmetros**  


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

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

**Resposta da amostra**  
A operação retorna um recurso Bundle do tipo “documento” contendo a composição e todos os recursos referenciados:

```
{
  "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"
            }
          ]
        }
      }
    }
  ]
}
```

## Comportamento
<a name="document-behavior"></a>

A `$document` operação:

1. Usa o recurso de composição especificado como base para o documento

1. Identifica e recupera todos os recursos diretamente referenciados pela Composição

1. Empacota a composição e todos os recursos referenciados em um pacote do tipo “documento”

1. Armazena o pacote de documentos gerado no armazenamento de dados quando o parâmetro persist é definido como verdadeiro

1. Identifica e recupera recursos referenciados indiretamente pela Composição para geração abrangente de documentos

Atualmente, a `$document` operação oferece suporte à recuperação de referências de recursos no seguinte formato:

1. 

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

1. Recurso/ID

As referências de recursos não suportadas no recurso de composição serão filtradas do documento gerado.

## Tratamento de erros
<a name="document-error-handling"></a>

A operação trata das seguintes condições de erro:
+ 400 Solicitação inválida: `$document` operação inválida (solicitação não conforme) ou se o documento resultante falhar na validação do FHIR devido a referências filtradas quando persistir é definido como verdadeiro
+ 404 Não encontrado: recurso de composição não encontrado

Para obter mais informações sobre a especificação da `$document` operação, consulte a documentação da composição do [FHIR R4](https://www.hl7.org/fhir/R4/composition-operation-document.html). `$document`

# Removendo recursos permanentemente com `$erase`
<a name="reference-fhir-operations-erase"></a>

AWS HealthLake suporta a `$erase` operação, permitindo a exclusão permanente de um recurso específico e de suas versões históricas. Essa operação é particularmente útil quando você precisa:
+ Remova permanentemente recursos individuais
+ Excluir históricos de versões específicos
+ Gerencie ciclos de vida de recursos individuais
+ Cumpra os requisitos específicos de remoção de dados

## Usage
<a name="erase-usage"></a>

A `$erase` operação pode ser invocada em dois níveis:

**Nível de instância do recurso**  


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

**Nível específico da versão**  


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

## Parâmetros
<a name="erase-parameters"></a>


| Parâmetro | Tipo | Obrigatório | Padrão | Description | 
| --- | --- | --- | --- | --- | 
| deleteAuditEvent | booliano | Não | false | Quando verdadeiro, exclui os eventos de auditoria associados | 

## Exemplos
<a name="erase-examples"></a>

**Exemplo de solicitação**  


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

**Exemplo de resposta**  


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

## Status do trabalho
<a name="erase-job-status"></a>

Para verificar o status de uma tarefa de exclusão:

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

A operação retorna informações sobre o status do trabalho:

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

## Comportamento
<a name="erase-behavior"></a>

A `$erase` operação:

1. Processa de forma assíncrona para garantir a integridade dos dados

1. Mantém transações ACID

1. Fornece rastreamento do status do trabalho

1. Remove permanentemente o recurso especificado e suas versões

1. Inclui registro abrangente de auditoria das atividades de exclusão

1. Oferece suporte à exclusão seletiva de eventos de auditoria

## Registro de auditoria
<a name="erase-audit-logging"></a>

A `$erase` operação é registrada DeleteResource com o ID do usuário, o carimbo de data/hora e os detalhes do recurso.

## Limitações
<a name="erase-limitations"></a>
+ `$erased`o recurso não aparecerá nos resultados da pesquisa ou `_history` nas consultas.
+ Os recursos que estão sendo apagados podem ficar temporariamente inacessíveis durante o processamento
+ A medição de armazenamento é ajustada imediatamente à medida que os recursos são removidos permanentemente

# Obtendo dados do paciente com `Patient/$everything`
<a name="reference-fhir-operations-everything"></a>

 A `Patient/$everything` operação é usada para consultar um `Patient` recurso FHIR, junto com quaisquer outros recursos relacionados a ele. `Patient` A operação pode ser usada para fornecer ao paciente acesso a todo o prontuário ou para que um provedor realize um download em massa de dados relacionados a um paciente. HealthLakesuportes `Patient/$everything` para um paciente específico`id`.

`Patient/$everything`é uma operação da API FHIR REST que pode ser invocada conforme mostrado nos exemplos abaixo.

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

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

------

**nota**  
Os recursos em resposta são classificados por tipo de recurso e recurso`id`.  
A resposta é sempre preenchida com`Bundle.total`. 

## Parâmetros do `Patient/$everything`
<a name="patient-everything-query-params"></a>

HealthLake suporta os seguintes parâmetros de consulta


| Parâmetro | Detalhes | 
| --- | --- | 
|  rápido  |  Obtenha todos os `Patient` dados após uma data de início especificada.  | 
|  end  |  Obtenha todos os `Patient` dados antes de uma data de término especificada.  | 
|  since  |  Atualize todos os `Patient` dados após uma data especificada.  | 
|  \$1tipo  |  Obtenha `Patient` dados para tipos de recursos específicos.  | 
|  \$1contar  |  Obtenha `Patient` dados e especifique o tamanho da página.  | 

**Example - Obtenha todos os dados do paciente após uma data de início especificada**  
`Patient/$everything`pode usar o `start` filtro para consultar somente dados após uma data específica.   

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

**Example - Obtenha todos os `Patient` dados antes de uma data de término especificada**  
O paciente \$1everything pode usar o `end` filtro para consultar apenas dados antes de uma data específica.   

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

**Example - Obtenha todos os `Patient` dados atualizados após uma data especificada**  
`Patient/$everything`pode usar o `since` filtro para consultar somente dados atualizados após uma data específica.  

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

**Example - Obtenha `Patient` dados para tipos de recursos específicos**  
O paciente \$1everything pode usar o `_type` filtro para especificar tipos de recursos específicos a serem incluídos na resposta. Vários tipos de recursos podem ser especificados em uma lista separada por vírgulas.   

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

**Example - Obtenha `Patient` dados e especifique o tamanho da página**  
O paciente \$1everything pode usar o `_count` para definir o tamanho da página.   

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

## `Patient/$everything``start`e `end` atributos
<a name="reference-patient-everything-start-end-attributes"></a>

HealthLake oferece suporte aos seguintes atributos de recursos para `Patient/ $everything` `start` os parâmetros de `end` consulta e.


| Recurso | Elemento de recursos | 
| --- | --- | 
| Conta | conta.período de serviço. Início | 
| AdverseEvent | AdverseEvent.data | 
| AllergyIntolerance | AllergyIntolerance.Data de gravação | 
| Nomeação | Marcação. Início | 
| AppointmentResponse | AppointmentResponse.iniciar | 
| AuditEvent | AuditEvent.periodo.start | 
| Básico | Básico. Criado | 
| BodyStructure | SEM DATA | 
| CarePlan | CarePlan.periodo.start | 
| CareTeam | CareTeam.periodo.start | 
| ChargeItem | ChargeItem. occurrenceDateTime, ChargeItem .OccurrencePeriod.start, .OccurrenceTiming.Event ChargeItem | 
| Reivindicar | Reivindicação. Período faturável. Início | 
| ClaimResponse | ClaimResponse.criado | 
| ClinicalImpression | ClinicalImpression.data | 
| Comunicação | Comunicação. Enviada | 
| CommunicationRequest | CommunicationRequest. occurrenceDateTime, .Período de CommunicationRequest ocorrência.Início | 
| Composição | Composição.Data | 
| Condição | Condição.Data de gravação | 
| Consentimento | Consentimento.Data/hora | 
| Cobertura | Cobertura.Período.Início | 
| CoverageEligibilityRequest | CoverageEligibilityRequest.criado | 
| CoverageEligibilityResponse | CoverageEligibilityResponse.criado | 
| DetectedIssue | DetectedIssue.identificado | 
| DeviceRequest | DeviceRequest.Autor Edon | 
| DeviceUseStatement | DeviceUseStatement. Gravado em | 
| DiagnosticReport | DiagnosticReport.eficaz | 
| DocumentManifest | DocumentManifest.criado | 
| DocumentReference | DocumentReference.contexto.period.start | 
| Encontro | Encounter.period.start | 
| EnrollmentRequest | EnrollmentRequest.criado | 
| EpisodeOfCare | EpisodeOfCare.periodo.start | 
| ExplanationOfBenefit | ExplanationOfBenefit.Período faturável. Início | 
| FamilyMemberHistory | SEM DATA | 
| Sinalizador | FLAG.PERIOD.START | 
| Objetivo | Objetivo.StatusData | 
| Group (Grupo) | SEM DATA | 
| ImagingStudy | ImagingStudy.iniciado | 
| Imunização | Imunização. Registrada | 
| ImmunizationEvaluation | ImmunizationEvaluation.data | 
| ImmunizationRecommendation | ImmunizationRecommendation.data | 
| Fatura | Data da fatura | 
| Lista | Data da lista | 
| MeasureReport | MeasureReport.periodo.start | 
| Mídia | Mídia. Emitido | 
| MedicationAdministration | MedicationAdministration.eficaz | 
| MedicationDispense | MedicationDispense. Quando preparado | 
| MedicationRequest | MedicationRequest.Autor Edon | 
| MedicationStatement | MedicationStatement.Data declarada | 
| MolecularSequence | SEM DATA | 
| NutritionOrder | NutritionOrder.Data/hora | 
| Observação | Observação. Eficaz | 
| Paciente | SEM DATA | 
| Pessoa | SEM DATA | 
| Procedimento | Procedimento. Executado | 
| Proveniência | Proveniência. Período ocorrido. Início, Proveniência. occurredDateTime | 
| QuestionnaireResponse | QuestionnaireResponse.de autoria | 
| RelatedPerson | SEM DATA | 
| RequestGroup | RequestGroup.Autor Edon | 
| ResearchSubject | ResearchSubject.período | 
| RiskAssessment | RiskAssessment. occurrenceDateTime, .Período de RiskAssessment ocorrência.Início | 
| Agendamento | Cronograma. Horizonte de planejamento | 
| ServiceRequest | ServiceRequest.Autor Edon | 
| Espécime | Espécime. Hora recebida | 
| SupplyDelivery | SupplyDelivery. occurrenceDateTime, SupplyDelivery .OccurrencePeriod.start, .OccurrenceTiming.Event SupplyDelivery | 
| SupplyRequest | SupplyRequest.Autor Edon | 
| VisionPrescription | VisionPrescription.Data escrita | 

# Recuperando ValueSet códigos com `$expand`
<a name="reference-fhir-operations-expand"></a>

AWS HealthLake agora suporta a `$expand` operação ValueSets que foi ingerida por você como cliente, permitindo que você recupere a lista completa de códigos contidos nesses ValueSet recursos. Essa operação é particularmente útil quando você precisa:
+ Recupere todos os códigos possíveis para fins de validação
+ Exibir as opções disponíveis nas interfaces de usuário
+ Realize pesquisas abrangentes de código dentro de um contexto terminológico específico

## Usage
<a name="expand-usage"></a>

A `$expand` operação pode ser invocada em ValueSet recursos usando os métodos GET e POST:

**Operações com Suporte**  


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

## Parâmetros compatíveis
<a name="expand-parameters"></a>

HealthLake suporta um subconjunto de parâmetros FHIR R4: `$expand`


| Parâmetro | Tipo | Obrigatório | Description | 
| --- | --- | --- | --- | 
| url | uri | Não | URL canônico do para expandir ValueSet  | 
| id | id | Não | ValueSet ID do recurso a ser expandido (para operações GET ou POST) | 
| filter | string | Não | Filtrar o resultado da expansão do código | 
| count | integer | Não | Número de códigos a serem devolvidos | 
| offset | integer | Não | Número de códigos correspondentes a serem ignorados antes de devolver. Aplica-se após a filtragem e somente aos códigos correspondentes, não ao conteúdo completo e não filtrado do original ValueSet | 

## Exemplos
<a name="expand-examples"></a>

**Solicitação GET por ID**  


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

**Solicitação GET por URL com filtro**  


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

**Solicitação POST com parâmetros (por ID)**  


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

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

**Solicitação POST com parâmetros (por 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
    }
  ]
}
```

**Resposta da amostra**  
A operação retorna um ValueSet recurso com um `expansion` elemento contendo os códigos expandidos:

```
{
  "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"
      }
    ]
  }
}
```

A resposta inclui:
+ expansion.total: número total de códigos no expandido ValueSet
+ expansion.contains: matriz de códigos expandidos com seus valores de sistema, código e exibição
+ expansion.parameter: parâmetros usados na solicitação de expansão

Para obter mais informações sobre a especificação da `$expand` operação, consulte a documentação do [FHIR ValueSet `$expand` R4](https://build.fhir.org/valueset-operation-expand.html).

# Exportação de HealthLake dados com o FHIR `$export`
<a name="reference-fhir-operations-export"></a>

Você pode exportar dados em massa do seu armazenamento de HealthLake dados usando a operação FHIR \$1export. HealthLake suporta o `$export` uso `POST` e as solicitações do FHIR. `GET` Para fazer uma solicitação de exportação com`POST`, você precisa ter um usuário, grupo ou função do IAM com as permissões necessárias, especificar `$export` como parte da solicitação e incluir os parâmetros desejados no corpo da solicitação.

**nota**  
Todas as solicitações de HealthLake exportação feitas usando o FHIR `$export` são retornadas em `ndjson` formato e exportadas para um bucket do Amazon S3, onde cada objeto do Amazon S3 contém somente um único tipo de recurso do FHIR.  
Você pode enfileirar solicitações de exportação de acordo com as AWS cotas de serviço da conta. Para obter mais informações, consulte [Cotas de serviço](reference-healthlake-endpoints-quotas.md#reference-healthlake-quotas).

HealthLake suporta os três tipos de solicitações de endpoint de exportação em massa a seguir.


**HealthLake `$export`tipos a granel**  

| Tipo de exportação | Description | Sintaxe | 
| --- | --- | --- | 
| Sistema | Exporte todos os dados do servidor HealthLake FHIR. | `POST https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/$export`  | 
| Todos os pacientes | Exporte todos os dados relacionados a todos os pacientes, incluindo os tipos de recursos associados ao tipo de recurso do paciente. | `POST https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/Patient/$export` `GET https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/Patient/$export` | 
| Grupo de pacientes | Exporte todos os dados relacionados a um grupo de pacientes especificado com uma ID de grupo. | `POST https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/Group/id/$export` `GET https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/Group/id/$export` | 

## Antes de começar
<a name="export-rest-before-you-begin"></a>

Atenda aos requisitos a seguir para fazer uma solicitação de exportação usando a API FHIR REST para. HealthLake
+ Você deve ter configurado um usuário, grupo ou função que tenha as permissões necessárias para fazer a solicitação de exportação. Para saber mais, consulte [Autorizando uma solicitação `$export`](#export-rest-auth).
+ Você deve ter criado uma função de serviço que conceda HealthLake acesso ao bucket do Amazon S3 para o qual você deseja que seus dados sejam exportados. A função de serviço também deve ser especificada HealthLake como principal do serviço. Para obter mais informações sobre a configuração de permissões, consulte[Configurando permissões para trabalhos de exportação](getting-started-setting-up.md#setting-up-export-permissions).

## Autorizando uma solicitação `$export`
<a name="export-rest-auth"></a>

Para fazer uma solicitação de exportação bem-sucedida usando a API REST FHIR, autorize seu usuário, grupo ou função usando IAM ou .0. OAuth2 Você também deve ter uma função de serviço.

**Autorizar uma solicitação usando o IAM**  
Quando você faz uma `$export` solicitação, o usuário, o grupo ou a função devem ter ações do IAM incluídas na política. Para obter mais informações, consulte [Configurando permissões para trabalhos de exportação](getting-started-setting-up.md#setting-up-export-permissions).

**Autorizando uma solicitação usando SMART no FHIR (2.0) OAuth**  
Ao fazer uma `$export` solicitação em um SMART no armazenamento de HealthLake dados habilitado para FHIR, você deve ter os escopos apropriados atribuídos. Para obter mais informações, consulte [SMART nos escopos de recursos do FHIR para HealthLake](reference-smart-on-fhir-oauth-scopes.md#smart-on-fhir-scopes-rest).

**nota**  
O FHIR `$export` com `GET` solicitações exige o mesmo método de autenticação ou token do portador (no caso do SMART no FHIR) para solicitar a exportação e a recuperação de arquivos. Os arquivos exportados usando o FHIR `$export` com `GET` estão disponíveis para download por 48 horas.

## Fazendo uma `$export` solicitação
<a name="export-rest-request"></a>

Esta seção descreve as etapas necessárias que você deve seguir ao fazer uma solicitação de exportação usando a API FHIR REST.

Para evitar cobranças acidentais em sua AWS conta, recomendamos testar suas solicitações fazendo uma `POST` solicitação sem fornecer a `$export` sintaxe.

Para fazer a solicitação, você deve fazer o seguinte:

1. Especifique `$export` no URL da `POST` solicitação para um endpoint compatível.

1. Especifique os parâmetros de cabeçalho necessários.

1. Especifique um corpo de solicitação que defina os parâmetros necessários.

### Etapa 1: especifique `$export` no URL da `POST` solicitação para um [endpoint](reference-healthlake-endpoints-quotas.md#reference-healthlake-endpoints) compatível.
<a name="export-rest-request-step-1"></a>

HealthLake oferece suporte a três tipos de solicitações de endpoint de exportação em massa. Para fazer uma solicitação de exportação em massa, você deve fazer uma solicitação `POST` com base em um dos três endpoints compatíveis. Os exemplos a seguir demonstram onde especificar `$export` na URL da solicitação.
+ `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`

Você pode usar os seguintes parâmetros de pesquisa compatíveis na string de `POST` solicitação.

#### Parâmetros de pesquisa compatíveis
<a name="export-rest-query-parameters"></a>

HealthLake suporta os seguintes modificadores de pesquisa em solicitações de exportação em massa.

Os exemplos a seguir incluem caracteres especiais que devem ser codificados antes de enviar sua solicitação.


| Nome | Obrigatório? | Description | Exemplo | 
| --- | --- | --- | --- | 
| \$1outputFormat | Não | O formato dos arquivos de dados em massa solicitados a serem gerados. Os valores aceitos sãoapplication/fhir\$1ndjson,application/ndjson,ndjson. |  | 
| \$1type | Não | Uma sequência de tipos de recursos FHIR delimitados por vírgula que você deseja incluir em seu trabalho de exportação. Recomendamos incluir \$1type porque isso pode ter uma implicação de custo quando todos os recursos são exportados. | &\$1type=MedicationStatement, Observation | 
| \$1since | Não | Tipos de recursos modificados em ou após o carimbo de data e hora. Se um tipo de recurso não tiver um horário de última atualização, ele será incluído na sua resposta. | &\$1since=2024-05-09T00%3A00%3A00Z | 
| \$1until | Não | Tipos de recursos modificados em ou antes do carimbo de data e hora. Usado em combinação com \$1since para definir um intervalo de tempo específico para exportação. Se um tipo de recurso não tiver um horário de última atualização, ele será excluído da sua resposta. | &\$1until=2024-12-31T23%3A59%3A59Z | 

### Etapa 2: especificar os parâmetros de cabeçalho necessários
<a name="export-rest-request-step-2"></a>

Para fazer uma solicitação de exportação usando a API REST FHIR, você deve especificar os seguintes parâmetros de cabeçalho.
+ Content-Type: `application/fhir+json`
+ Prefiro: `respond-async`

Em seguida, você deve especificar os elementos necessários no corpo da solicitação.

### Etapa 3: especifique um corpo de solicitação que defina os parâmetros necessários.
<a name="export-rest-request-step-3"></a>

A solicitação de exportação também exige um corpo em `JSON` formato. O corpo pode incluir os seguintes parâmetros.


| Chave | Obrigatório? | Description | Valor | 
| --- | --- | --- | --- | 
| DataAccessRoleArn | Sim | Um ARN de uma função de HealthLake serviço. A função de serviço usada deve ser especificada HealthLake como principal do serviço. | arn:aws:iam::444455556666:role/your-healthlake-service-role | 
| JobName | Não | O nome da solicitação de exportação. | your-export-job-name | 
| S3Uri | Sim | Parte de uma OutputDataConfig chave. O URI do S3 do bucket de destino em que seus dados exportados serão baixados. | s3://amzn-s3-demo-bucket/EXPORT-JOB/ | 
| KmsKeyId | Sim | Parte de uma OutputDataConfig chave. O ARN da AWS KMS chave usada para proteger o bucket do Amazon S3. | arn:aws:kms:region-of-bucket:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab | 

**Example Corpo de uma solicitação de exportação feita usando a API FHIR REST**  
Para fazer uma solicitação de exportação usando a API REST FHIR, você deve especificar um corpo, conforme mostrado a seguir.  

```
{
  "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"
    }
  }
}
```

Quando sua solicitação for bem-sucedida, você receberá a seguinte resposta.

*cabeçalho de resposta*

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

*Corpo de resposta*

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

## Gerenciando sua solicitação de exportação
<a name="export-rest-management"></a>

Depois de fazer uma solicitação de exportação bem-sucedida, você pode gerenciar a solicitação usando `$export` para descrever o status de uma solicitação de exportação atual e `$export` cancelar uma solicitação de exportação atual.

Ao cancelar uma solicitação de exportação usando a API REST, você só é cobrado pela parte dos dados que foram exportados até o momento em que você enviou a solicitação de cancelamento.

Os tópicos a seguir descrevem como você pode obter o status de uma solicitação de exportação atual ou cancelá-la.

### Cancelamento de uma solicitação de exportação
<a name="export-rest-management-describe"></a>

Para cancelar uma solicitação de exportação, faça uma `DELETE` solicitação e forneça o ID do trabalho na URL da solicitação.

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

Quando sua solicitação for bem-sucedida, você receberá o seguinte.

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

Quando sua solicitação não for bem-sucedida, você receberá o seguinte.

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

### Descrever uma solicitação de exportação
<a name="export-rest-management-describe"></a>

Para obter o status de uma solicitação de exportação, faça uma `GET` solicitação usando `export` e seu`export-request-job-id`.

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

A resposta JSON conterá um `ExportJobProperties` objeto. Ele pode conter os seguintes pares chave-valor.


| Nome | Obrigatório? | Description | Valor | 
| --- | --- | --- | --- | 
| DataAccessRoleArn | Não | Um ARN de uma função de HealthLake serviço. A função de serviço usada deve ser especificada HealthLake como principal do serviço. | arn:aws:iam::444455556666:role/your-healthlake-service-role | 
| SubmitTime | Não | A data e hora em que um trabalho de exportação foi enviado. | Apr 21, 2023 5:58:02 | 
| EndTime | Não | A hora em que um trabalho de exportação foi concluído. | Apr 21, 2023 6:00:08 PM | 
| JobName | Não | O nome da solicitação de exportação. | your-export-job-name | 
| JobStatus | Não |  | Os valores válidos são:<pre>SUBMITTED | IN_PROGRESS | COMPLETED_WITH_ERRORS | COMPLETED |<br />      FAILED</pre> | 
| S3Uri | Sim | Parte de um [OutputDataConfig](https://docs.aws.amazon.com/healthlake/latest/APIReference/API_OutputDataConfig.html)objeto. O URI do Amazon S3 do bucket de destino em que seus dados exportados serão baixados. | s3://amzn-s3-demo-bucket/EXPORT-JOB/ | 
| KmsKeyId | Sim | Parte de um [OutputDataConfig](https://docs.aws.amazon.com/healthlake/latest/APIReference/API_OutputDataConfig.html)objeto. O ARN da AWS KMS chave usada para proteger o bucket do Amazon S3. | arn:aws:kms:region-of-bucket:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab | 

**Example : Corpo de uma solicitação de descrição de exportação feita usando a API REST FHIR**  
Quando for bem-sucedido, você receberá a seguinte resposta 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",
  }
}
```

# Operação FHIR para `$inquire` HealthLake
<a name="reference-fhir-operations-inquire"></a>

A `$inquire` operação permite que você verifique o status de uma solicitação de autorização prévia enviada anteriormente. Essa operação implementa o [Guia de Implementação do Da Vinci Prior Authorization Support (PAS)](https://hl7.org/fhir/us/davinci-pas/), fornecendo um fluxo de trabalho padronizado baseado em FHIR para recuperar a decisão de autorização atual.

## Como funciona
<a name="inquire-how-it-works"></a>
+ **Enviar consulta**: Você envia um pacote FHIR contendo a reclamação que deseja verificar e informações de apoio
+ **Pesquisa**: HealthLake pesquisa o correspondente ClaimResponse em seu armazenamento de dados
+ **Recuperar**: o status de autorização mais recente foi recuperado
+ **Responder**: você recebe uma resposta imediata com o status atual da autorização (em fila, aprovada, negada etc.)

**nota**  
`$inquire`é uma **operação somente de leitura** que recupera o status de autorização existente. Ele não modifica nem atualiza nenhum recurso em seu armazenamento de dados.

## Ponto final da API
<a name="inquire-api-endpoint"></a>

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

## Estrutura de solicitações
<a name="inquire-request-structure"></a>

### Requisitos do pacote
<a name="inquire-bundle-requirements"></a>

Sua solicitação deve ser um recurso do FHIR Bundle com:
+ **Bundle.type**: Deve ser `"collection"`
+ **Bundle.entry**: deve conter exatamente **um** recurso de reivindicação com:
  + `use = "preauthorization"`
  + `status = "active"`
+ **Recursos referenciados**: todos os recursos referenciados pela reivindicação devem ser incluídos no pacote

**Consulta por exemplo**  
Os recursos em seu pacote de entrada servem como um modelo de pesquisa. HealthLake usa as informações fornecidas para localizar o correspondente ClaimResponse.

### Recursos necessários
<a name="inquire-required-resources"></a>


| Recurso | Cardinalidade | Perfil | Description | 
| --- | --- | --- | --- | 
| Reclamação | 1 | Consulta de reclamação do PAS | A autorização prévia sobre a qual você está perguntando | 
| Paciente | 1 | Paciente beneficiário do PAS | Informações demográficas do paciente | 
| Organização (Seguradora) | 1 | Organização seguradora PAS | Companhia de seguros | 
| Organização (Provedor) | 1 | Organização solicitante do PAS | Profissional de saúde que enviou a solicitação | 

### Critérios de pesquisa importantes
<a name="inquire-search-criteria"></a>

HealthLake pesquisa o ClaimResponse uso de:
+ **Referência do paciente** a partir da reclamação
+ **Referência da seguradora** a partir da reclamação
+ **Referência do provedor** a partir da reclamação
+ **Data de criação** a partir da reclamação (como filtro de tempo)

**Somente consultas específicas do paciente**  
Todas as consultas devem estar vinculadas a um paciente específico. Consultas em todo o sistema sem identificação do paciente não são permitidas.

## Exemplo de solicitação
<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"  
      }  
    }  
  ]  
}
```

## Formato de resposta
<a name="inquire-response-format"></a>

### Resposta de sucesso (200 OK)
<a name="inquire-success-response"></a>

Você receberá um pacote de respostas de consulta do PAS contendo:
+ **ClaimResponse**com o status de autorização atual; múltiplo **ClaimResponse**se corresponder aos critérios de pesquisa
+ Todos os recursos originais de sua solicitação (repetidos de volta)
+ Registro de data e hora de quando a resposta foi montada

**Possíveis ClaimResponse resultados**  



| Outcome | Description | 
| --- | --- | 
| queued | A solicitação de autorização ainda está pendente de análise | 
| complete | A decisão de autorização foi tomada (verifique se foi disposition aprovada/negada) | 
| error | Ocorreu um erro durante o processamento | 
| partial | Autorização parcial concedida | 

```
{  
  "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"  
      }  
    }  
  ]  
}
```

## Respostas de erro
<a name="inquire-error-responses"></a>

### 400 solicitação inválida
<a name="inquire-400-error"></a>

Retornado quando o formato da solicitação é inválido ou a validação falha.

```
{  
    "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 Não autorizado
<a name="inquire-401-error"></a>

Retornado quando as credenciais de autenticação estão ausentes ou são inválidas.

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

### 403 proibido
<a name="inquire-403-error"></a>

Retornado quando o usuário autenticado não tem permissão para acessar o recurso solicitado.

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

### 400 Quando nenhum foi encontrado
<a name="inquire-400-none-found"></a>

Retornado quando nenhuma correspondência ClaimResponse foi encontrada para a consulta.

```
{  
  "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 Tipo de mídia não suportado
<a name="inquire-415-error"></a>

Retornado quando o cabeçalho Content-Type não é application/fhir\$1json.

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

### 429, muitas solicitações
<a name="inquire-429-error"></a>

Retornado quando os limites de taxa são excedidos.

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

## Regras de validação
<a name="inquire-validation-rules"></a>

HealthLake realiza uma validação abrangente em sua consulta:

### Validação do pacote
<a name="inquire-bundle-validation"></a>
+ Deve estar em conformidade com o perfil do PAS Inquiry Request Bundle
+ `Bundle.type`deve ser `"collection"`
+ Deve conter exatamente um recurso de reclamação
+ Todos os recursos referenciados devem ser incluídos no pacote

### Validação da solicitação
<a name="inquire-claim-validation"></a>
+ Deve estar em conformidade com o perfil PAS Claim Inquiry
+ `Claim.use`deve ser `"preauthorization"`
+ `Claim.status`deve ser `"active"`
+ Campos obrigatórios:`patient`,`insurer`,`provider`, `created`

### Validação de recursos
<a name="inquire-resource-validation"></a>
+ Todos os recursos devem estar em conformidade com seus respectivos perfis de consulta do PAS
+ Os recursos de apoio necessários devem estar presentes (paciente, seguradora, organização prestadora)
+ As referências cruzadas devem ser válidas e solucionáveis dentro do pacote

## Especificações de performance
<a name="inquire-performance-specs"></a>


| Métrica | Especificação | 
| --- | --- | 
| Limite de contagem de recursos | 500 recursos por pacote | 
| Limite de tamanho do pacote | Máximo de 5 MB | 

## Permissões obrigatórias
<a name="inquire-required-permissions"></a>

Para usar a `$inquire` operação, certifique-se de que sua função do IAM tenha:
+ `healthlake:InquirePreAuthClaim`- Para chamar a operação

**SMART em escopos FHIR**  
**Escopos mínimos exigidos:**
+ **SMART v1:** `user/ClaimResponse.read`
+ **SMART v2:** `user/ClaimResponse.s`

## Notas de implementação importantes
<a name="inquire-implementation-notes"></a>

### Comportamento de pesquisa
<a name="inquire-search-behavior"></a>

Quando você envia uma consulta, HealthLake pesquisa ClaimResponse usando:
+ **Referência do paciente** a partir da reivindicação de entrada
+ **Referência da seguradora** a partir da reclamação de entrada
+ **Referência do provedor** a partir da reivindicação de entrada
+ **Data de criação** a partir da declaração de entrada (como um filtro de tempo)

**Várias correspondências**: se várias ClaimResponses corresponderem aos seus critérios de pesquisa, HealthLake retornará todos os resultados correspondentes. Você deve usar o `ClaimResponse.created` carimbo de data/hora mais recente para identificar o status mais recente.

### Reivindicações atualizadas
<a name="inquire-updated-claims"></a>

Se você enviou várias atualizações para a mesma autorização anterior (por exemplo, Claim v1.1, v1.2, v1.3), a `$inquire` operação recuperará a versão ClaimResponse associada à **versão mais recente** com base nos critérios de pesquisa fornecidos.

### Operação somente de leitura
<a name="inquire-read-only"></a>

A `$inquire` operação:
+ **Recupera o** status de autorização existente
+ **Retorna o mais recente** ClaimResponse
+ **Não** modifica nem atualiza nenhum recurso
+ **Não** cria novos recursos
+ **Não** aciona o processamento de novas autorizações

## Exemplo de fluxo de trabalho
<a name="inquire-workflow-example"></a>

**Fluxo de trabalho típico de consulta de autorização prévia**  


```
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"
```

## Operações do relacionadas
<a name="inquire-related-operations"></a>
+ `Claim/$submit`- Envie uma nova solicitação de autorização prévia ou atualize uma existente
+ `Patient/$everything`- Recupere dados abrangentes do paciente para contexto de autorização prévia

# Recuperando detalhes do conceito com `$lookup`
<a name="reference-fhir-operations-lookup"></a>

AWS HealthLake agora suporta a `$lookup` operação de CodeSystem recursos, permitindo que você recupere detalhes sobre um conceito específico em um sistema de código fornecendo informações de identificação, como seu código. Essa operação é particularmente útil quando você precisa:
+ Recupere informações detalhadas sobre códigos médicos específicos
+ Valide os significados e propriedades do código
+ Acesse definições e relacionamentos de conceitos
+ Support a tomada de decisões clínicas com dados terminológicos precisos

## Usage
<a name="lookup-usage"></a>

A `$lookup` operação pode ser invocada em CodeSystem recursos usando os métodos GET e POST:

**Operações com Suporte**  


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

## Parâmetros compatíveis
<a name="lookup-parameters"></a>

HealthLake suporta um subconjunto de parâmetros FHIR R4: `$lookup`


| Parâmetro | Tipo | Obrigatório | Description | 
| --- | --- | --- | --- | 
| code | código | Sim | O código conceitual que você está procurando (por exemplo, “71620000" no SNOMED CT) | 
| system | uri | Sim | O URL canônico do sistema de código (por exemplo, "[http://snomed.info/sct](http://snomed.info/sct) “) | 
| version | string | Não | Versão específica do sistema de código | 

## Exemplos
<a name="lookup-examples"></a>

**Solicitação GET**  


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

**Solicitação 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"
    }
  ]
}
```

**Resposta da amostra**  
A operação retorna um recurso de Parâmetros contendo os detalhes do conceito:

```
{
    "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"
                }
            ]
        }
    ]
}
```

## Parâmetros de resposta
<a name="lookup-response-parameters"></a>

A resposta inclui os seguintes parâmetros, quando disponíveis:


| Parâmetro | Tipo | Description | 
| --- | --- | --- | 
| name | string | Nome do sistema de código | 
| version | string | Versão do sistema de código | 
| display | string | Nome de exibição do conceito | 
| designation | BackboneElement | Representações adicionais para esse conceito. | 
| property | BackboneElement | Propriedades adicionais do conceito (definição, relacionamentos, etc.) | 

## Comportamento
<a name="lookup-behavior"></a>

A `$lookup` operação:

1. Valida os parâmetros necessários (`code`e`system`)

1. Pesquisa o conceito dentro do sistema de código especificado armazenado no armazenamento de dados

1. Retorna informações detalhadas do conceito, incluindo nome de exibição, designações e propriedades.

1. Suporta pesquisas específicas da versão quando o parâmetro é fornecido `version`

1. Opera somente em sistemas de código armazenados explicitamente no armazenamento de HealthLake dados

## Tratamento de erros
<a name="lookup-error-handling"></a>

A operação trata das seguintes condições de erro:
+ 400 Solicitação inválida: `$lookup` operação inválida (solicitação não conforme ou ausência de parâmetros obrigatórios)
+ 404 Não encontrado: sistema de código não encontrado ou código não encontrado no sistema de código especificado

## Advertências
<a name="lookup-caveats"></a>

Para esta versão, não há suporte para o seguinte:
+ `$lookup`operação chamando servidores de terminologia externos
+ `$lookup`operação CodeSystems gerenciada por HealthLake , mas não armazenada explicitamente no armazenamento de dados

Para obter mais informações sobre a especificação da `$lookup` operação, consulte a documentação do [FHIR CodeSystem `$lookup` R4](https://www.hl7.org/fhir/R4/codesystem-operation-lookup.html).

# `$member-add`operação para HealthLake
<a name="reference-fhir-operations-member-add"></a>

A `$member-add` operação FHIR adiciona um membro (paciente) a um recurso do Grupo, especificamente uma Lista de Atribuição de Membros. Essa operação faz parte do Guia de Implementação de Atribuição de DaVinci Membros e apoia o processo de reconciliação para gerenciar as atribuições de membros.

## Ponto final da operação
<a name="member-add-endpoint"></a>

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

## Parâmetros
<a name="member-add-parameters"></a>

A operação aceita um recurso de parâmetros FHIR com as seguintes combinações de parâmetros:

### Opções de parâmetros
<a name="member-add-parameter-options"></a>

Você pode usar uma das seguintes combinações de parâmetros:

Opção 1: ID de membro \$1 NPI do provedor  
`memberId` \$1 `providerNpi`  
`memberId` \$1 `providerNpi` \$1 `attributionPeriod`

Opção 2: Referência do paciente \$1 Referência do provedor  
`patientReference` \$1 `providerReference`  
`patientReference` \$1 `providerReference` \$1 `attributionPeriod`

### Detalhes do parâmetro
<a name="member-add-parameter-details"></a>

ID do membro (opcional)  
O identificador do membro a ser adicionado ao Grupo.  
Tipo: Identificador  
Sistema: Sistema de identificação de pacientes  

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

ProviderNPI (opcional)  
O Identificador Nacional do Provedor (NPI) do provedor atribuído.  
Tipo: Identificador  
Sistema: http://terminology.hl7. org/CodeSystem/NPI  

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

Referência do paciente (opcional)  
Referência direta ao recurso do paciente a ser adicionado.  
Tipo: Referência  

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

Referência do provedor (opcional)  
Referência direta ao recurso do provedor.  
Tipo: Referência  

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

Período de atribuição (opcional)  
O período de tempo durante o qual o paciente é atribuído ao provedor.  
Tipo: Período  

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

## Exemplos de solicitações
<a name="member-add-examples"></a>

### Usando ID de membro e NPI do provedor
<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"
      }
    }
  ]
}
```

### Usando referências de pacientes e provedores
<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"
      }
    }
  ]
}
```

## Formato de resposta
<a name="member-add-response"></a>

### Resposta de adição bem-sucedida
<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."
      }
    }
  ]
}
```

### Respostas de erro
<a name="member-add-error-responses"></a>

Sintaxe de solicitação inválida  
Status HTTP: 400 Solicitação inválida  

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

Recurso não encontrado  
Status HTTP: 404 não encontrado  

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

Conflito de versão  
Status HTTP: 409 Conflito  

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

Status de atribuição inválido  
Status HTTP: 422 Entidade não processável  

```
{
  "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'."
      }
    }
  ]
}
```

## Regras de negócios
<a name="member-add-business-rules"></a>

Validação do status de atribuição  
A operação só pode ser realizada quando o Status de Atribuição do Grupo é:  
+ `draft`
+ `open`
As operações não são permitidas quando o status é`final`.

Prevenção de membros duplicados  
O sistema evita a adição de membros duplicados com base na combinação exclusiva de:  
+ Identificador de membro
+ Identificador do pagador
+ Identificador de cobertura

Validação do período de cobertura  
Quando um `attributionPeriod` é fornecido, ele deve estar dentro dos limites do período de cobertura do membro. O sistema vai:  
+ Pesquise o recurso de cobertura do membro
+ Use a cobertura mais recente (versionID mais alta) se existirem várias
+ Valide que o período de atribuição não exceda o período de cobertura

Validação de referência  
Quando a ID e a referência são fornecidas para o mesmo recurso (paciente ou profissional), o sistema valida que elas correspondem ao mesmo recurso.  
Quando os campos ID e reference.identifier são fornecidos para o mesmo recurso (paciente ou provedor), ocorre um erro.

## Autenticação e autorização
<a name="member-add-auth"></a>

A operação requer autorização SMART on FHIR para:
+ Permissões de leitura - Para validar recursos de pacientes, provedores e grupos
+ Permissões de pesquisa - Para encontrar recursos por identificador
+ Atualizar permissões - Para modificar o recurso do Grupo

## Comportamento operacional
<a name="member-add-behavior"></a>

Atualizações de recursos  
+ Atualiza o ID da versão do recurso do grupo
+ Cria uma entrada de histórico com o estado original do recurso antes da operação
+ Adiciona informações do membro à matriz group.Member com:
  + Referência do paciente em entity.reference
  + Período de atribuição em período
  + Cobertura e informações do provedor em campos de extensão

Passos de validação  
+ Validação de parâmetros - Garante combinações de parâmetros válidas
+ Existência de recursos - Valida a existência de recursos para pacientes, provedores e grupos
+ Status de atribuição - Confirma que o status do grupo permite modificações
+ Verificação duplicada - Impede a adição de membros existentes
+ Validação da cobertura - Garante que o período de atribuição esteja dentro dos limites da cobertura

## Limitações
<a name="member-add-limitations"></a>
+ Todos os recursos referenciados devem existir no mesmo armazenamento de dados
+ A operação só funciona com recursos do Grupo de Lista de Atribuição de Membros
+ Os períodos de atribuição devem estar dentro dos limites de cobertura
+ Não é possível modificar grupos com status “final”

# `$member-match`operação para HealthLake
<a name="reference-fhir-operations-member-match"></a>

AWS HealthLake agora oferece suporte à `$member-match` operação de recursos para pacientes, permitindo que as organizações de saúde encontrem o identificador exclusivo de um membro em diferentes sistemas de saúde usando informações demográficas e de cobertura. Essa operação é essencial para alcançar a conformidade com o CMS e facilitar a troca segura de payer-to-payer dados, mantendo a privacidade do paciente.

Essa operação é particularmente útil quando você precisa:
+ Permita a troca segura de dados de saúde entre organizações
+ Mantenha a continuidade do atendimento ao paciente em diferentes sistemas
+ Support os requisitos de conformidade do CMS
+ Facilite a identificação precisa dos membros em todas as redes de saúde

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

A `$member-match` operação pode ser invocada nos recursos do paciente usando o método POST:

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

## Parâmetros compatíveis
<a name="member-match-parameters"></a>

HealthLake suporta os seguintes parâmetros FHIR: `$member-match`


| Parâmetro | Tipo | Obrigatório | Padrão | Description | 
| --- | --- | --- | --- | --- | 
| MemberPatient | Paciente | Sim | — | Recurso para pacientes contendo informações demográficas para o membro a ser combinado | 
| CoverageToMatch | Cobertura | Sim | — | Recurso de cobertura que será usado para comparar com os registros existentes | 
| CoverageToLink | Cobertura | Não | — | Recurso de cobertura a ser vinculado durante o processo de correspondência | 
| Consentimento | Consentimento | Não | — | Recurso de consentimento para fins de autorização | 

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

### Solicitação POST com parâmetros
<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"
          }
        ]
      }
    }
  ]
}
```

### Resposta da amostra
<a name="member-match-response-example"></a>

A operação retorna um recurso de Parâmetros contendo os resultados correspondentes:

```
{
  "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"
    }
  ]
}
```

## Parâmetros de resposta
<a name="member-match-response-parameters"></a>

A resposta inclui os seguintes parâmetros quando uma correspondência é encontrada:


| Parâmetro | Tipo | Description | 
| --- | --- | --- | 
| MemberIdentifier | Identificador | O identificador exclusivo do membro correspondente | 
| MemberId | Referência | Referência ao recurso do paciente | 
| algoritmo de correspondência | String | Tipo de algoritmo de correspondência usado (EXACT\$1MATCH, STRONG\$1MATCH ou DEMOGRAPHIC\$1MATCH) | 
| Detalhes da partida | String | Informações detalhadas sobre o processo de correspondência | 
| Campos correspondentes | String | Lista de campos específicos que foram combinados com sucesso | 

## Algoritmos correspondentes
<a name="member-match-algorithms"></a>

A `$member-match` API emprega uma abordagem de correspondência em vários níveis para garantir a identificação precisa dos membros:

COINCIDÊNCIA EXATA  
Usa o identificador do paciente combinado com a cobertura SubscriberId  
Fornece o mais alto nível de confiança para correspondência de membros

STRONG\$1MATCH  
Usa o Patient Identifier com informações mínimas de cobertura  
Oferece alta confiança quando os critérios de correspondência exata não são atendidos

CORRESPONDÊNCIA DEMOGRÁFICA  
Baseia-se em informações demográficas básicas  
Usado quando a correspondência baseada em identificador não é possível

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

A `$member-match` operação:
+ Aceita dados demográficos do paciente, detalhes da cobertura e informações de consentimento opcionais como entrada
+ Retorna um identificador de membro exclusivo que pode ser usado para interações subsequentes
+ Implementa a correspondência em vários níveis (exata, forte, demográfica) para garantir a identificação precisa dos membros em diferentes sistemas de saúde
+ Salva todas as informações de consentimento fornecidas para fins de autorização futura
+ Oferece suporte à troca segura de payer-to-payer dados enquanto mantém a privacidade do paciente
+ Cumpre os requisitos do CMS para troca de dados de saúde

## Autorização
<a name="member-match-authorization"></a>

A API usa SMART no protocolo de autorização FHIR com os seguintes escopos obrigatórios:
+ `system/Patient.read`
+ `system/Coverage.read`
+ `system/Organization.read`(condicional)
+ `system/Practitioner.read`(condicional)
+ `system/PractitionerRole.read`(condicional)
+ `system/Consent.write`(condicional)

## Tratamento de erros
<a name="member-match-error-handling"></a>

A operação trata das seguintes condições de erro:
+ `400 Bad Request`: `$member-match` operação inválida (solicitação não conforme ou ausência de parâmetros obrigatórios)
+ `422 Unprocessable Entity`: Nenhuma correspondência ou várias correspondências encontradas

# `$member-remove`operação para HealthLake
<a name="reference-fhir-operations-member-remove"></a>

A `$member-remove` operação permite que você remova membros de uma Lista de Atribuição de Membros do FHIR (recurso de grupo) em. AWS HealthLake Essa operação faz parte do Guia de Implementação de Atribuição de DaVinci Membros e apoia o processo de reconciliação para gerenciar as atribuições de membros.

## Pré-requisitos
<a name="member-remove-prerequisites"></a>
+ AWS HealthLake Armazenamento de dados FHIR
+ Permissões apropriadas do IAM para HealthLake operações
+ Lista de atribuição de membros (recurso do grupo) em status de rascunho ou aberto

## Detalhes da operação
<a name="member-remove-endpoint"></a>

Endpoint  
`POST /Group/{id}/$member-remove`

Tipo de conteúdo  
`application/fhir+json`

## Parâmetros
<a name="member-remove-parameters"></a>

A operação aceita um recurso de parâmetros FHIR com os seguintes parâmetros opcionais:


| Parâmetro | Cardinalidade | Tipo | Description | 
| --- | --- | --- | --- | 
| memberId | 0,1 | Identificador | Identificador comercial do membro a ser removido | 
| NPI do provedor | 0,1 | Identificador | NPI do provedor atribuído | 
| Referência do paciente | 0,1 | Referência | Referência direta ao recurso do paciente | 
| Referência do provedor | 0,1 | Referência | Referência direta ao recurso do provedor (profissional ou organização) PractitionerRole | 
| Referência de cobertura | 0,1 | Referência | Referência ao recurso de cobertura | 

### Combinações de parâmetros suportadas
<a name="member-remove-parameter-combinations"></a>

As seguintes combinações de parâmetros são suportadas:
+ `memberId`somente - Remove todas as atribuições do membro especificado
+ `memberId`\$1 `providerNpi` - Remove as atribuições da combinação específica de membro-provedor
+ `patientReference`somente - Remove todas as atribuições do paciente especificado
+ `patientReference`\$1 `providerReference` - Remove as atribuições da combinação específica paciente-provedor
+ `patientReference`\$1 `providerReference` \$1 `coverageReference` - Remove a atribuição específica com base no paciente, no provedor e na cobertura

## Exemplo de solicitação
<a name="member-remove-examples"></a>

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

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

### Resposta bem-sucedida
<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"
    }
  ]
}
```

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

Requisitos de status  
A operação só funciona em listas de atribuição com status ou `draft` `open`  
Listas com `final` status rejeitarão a operação com um erro 422

Processo de remoção de membros  
*Listas de status preliminares*: os membros são marcados como inativos (`inactive: true`) e sua `changeType` extensão é atualizada para `changed`  
*Listas de status abertas*: comportamento semelhante ao status de rascunho  
*Listas de status finais*: A operação foi rejeitada

Validação  
As referências são validadas para garantir que existam no armazenamento de dados HealthLake   
Se o identificador e a referência forem fornecidos para o mesmo tipo de recurso, eles deverão corresponder ao mesmo recurso  
As combinações de parâmetros são validadas de acordo com os padrões suportados

## Tratamento de erros
<a name="member-remove-error-handling"></a>

### Respostas de erro comuns
<a name="member-remove-common-errors"></a>

Recurso não encontrado (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"]
    }
  ]
}
```

Status final da lista de atribuições (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"]
    }
  ]
}
```

Operação inválida (400)  
Retornado quando as combinações de parâmetros são inválidas ou malformadas.

Várias correspondências encontradas (412)  
Retornado quando os parâmetros fornecidos correspondem a vários membros na lista de atribuição.  

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

## Práticas recomendadas
<a name="member-remove-best-practices"></a>
+ *Use parâmetros específicos*: quando possível, use a combinação de parâmetros mais específica para evitar remoções não intencionais
+ *Status da lista de verificação*: verifique o status da lista de atribuição antes de tentar remoções
+ *Lide com erros normalmente: implemente* o tratamento adequado de erros para todas as condições de erro possíveis
+ *Validar referências*: certifique-se de que todos os recursos referenciados existam antes de fazer a solicitação

# Removendo recursos do compartimento do paciente com `$purge`
<a name="reference-fhir-operations-purge"></a>

AWS HealthLake suporta a `$purge` operação, permitindo a exclusão permanente de todos os recursos dentro do compartimento do paciente. Essa operação é particularmente útil quando você precisa:
+ Remova todos os dados associados a um paciente
+ Cumpra as solicitações de remoção de dados do paciente
+ Gerencie o ciclo de vida dos dados do paciente
+ Execute uma limpeza abrangente do prontuário do paciente

## Usage
<a name="purge-usage"></a>

A `$purge` operação pode ser invocada nos recursos do paciente:

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

## Parâmetros
<a name="purge-parameters"></a>


| Parâmetro | Tipo | Obrigatório | Padrão | Description | 
| --- | --- | --- | --- | --- | 
| deleteAuditEvent | booliano | Não | false | Quando verdadeiro, exclui os eventos de auditoria associados | 
| \$1since | string | Não | Horário de criação do armazenamento de dados | Quando inserido, seleciona a hora limite inicial para encontrar recursos com base na hora da Última Modificação. Não pode ser usado com início ou fim | 
| start | string | Não | Horário de criação do armazenamento de dados | Quando inserido, seleciona o horário limite para encontrar recursos com base no horário da Última Modificação. Pode ser usado com extremidade | 
| end | string | Não | Horário de envio do trabalho | Quando inserido, seleciona a hora limite final para encontrar recursos com base na hora da Última Modificação | 

## Exemplos
<a name="purge-examples"></a>

**Exemplo de solicitação**  


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

**Exemplo de resposta**  


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

## Status do trabalho
<a name="purge-job-status"></a>

Para verificar o status de uma tarefa de expurgação:

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

A operação retorna informações sobre o status do trabalho:

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

## Comportamento
<a name="purge-behavior"></a>

A `$purge` operação:

1. Processa de forma assíncrona para lidar com vários recursos

1. Mantém as transações ACID para a integridade dos dados

1. Fornece rastreamento do status do trabalho com contagens de exclusões de recursos

1. Remove permanentemente todos os recursos no compartimento do paciente

1. Inclui registro abrangente de auditoria das atividades de exclusão

1. Oferece suporte à exclusão seletiva de eventos de auditoria

## Registro de auditoria
<a name="purge-audit-logging"></a>

A `$purge` operação é registrada como Iniciar FHIRBulk DeleteJob e Descrever FHIRBulk DeleteJob com informações detalhadas da operação.

## Limitações
<a name="purge-limitations"></a>
+ Os recursos eliminados não aparecerão nas respostas de pesquisa
+ Os recursos que estão sendo eliminados podem ficar temporariamente inacessíveis durante o processamento
+ Todos os recursos no compartimento do paciente são removidos permanentemente

# Operação FHIR para `$questionnaire-package` HealthLake
<a name="reference-fhir-operations-questionnaire-package"></a>

A `$questionnaire-package` operação recupera um pacote abrangente contendo um questionário FHIR e todas as dependências necessárias para renderizar e processar o questionário. Essa operação implementa o [Guia de Implementação de Modelos e Regras de Documentação Da Vinci (DTR)](https://hl7.org/fhir/us/davinci-dtr/OperationDefinition-questionnaire-package.html), permitindo a renderização dinâmica de formulários para requisitos de documentação em fluxos de trabalho de saúde.

## Como funciona
<a name="questionnaire-package-how-it-works"></a>
+ **Solicitação**: você envia parâmetros identificando o (s) questionário (s) necessário (s), juntamente com a cobertura e o contexto do pedido
+ **Recuperar**: HealthLake reúne o questionário e todas as dependências (bibliotecas CQLValueSets, etc.)
+ **Package**: Todos os recursos são agrupados em um formato padronizado
+ **Responder**: Você recebe um pacote completo pronto para renderização e coleta de dados

**Casos de uso**  

+ **Documentação de autorização prévia**: colete as informações clínicas necessárias para solicitações de autorização prévia
+ **Requisitos de cobertura**: reúna a documentação necessária para satisfazer os requisitos de cobertura do pagador
+ **Clinical Data Exchange**: Estruture os dados clínicos para envio aos pagadores
+ **Formulários dinâmicos**: renderize questionários com dados pré-preenchidos do paciente e lógica condicional

## Ponto final da API
<a name="questionnaire-package-api-endpoint"></a>

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

## Parâmetros de solicitação
<a name="questionnaire-package-request-parameters"></a>

### Parâmetros de entrada
<a name="questionnaire-package-input-parameters"></a>

O corpo da solicitação deve conter um recurso de parâmetros FHIR com os seguintes parâmetros:


| Parâmetro | Tipo | Cardinalidade | Description | 
| --- | --- | --- | --- | 
| coverage | Cobertura | 1.. \$1 (Obrigatório) | Recurso (s) de cobertura para estabelecer o membro e cobertura para documentação | 
| questionnaire | canônico | 0.. \$1 | URL (s) canônica (s) para que questionários específicos retornem (podem incluir a versão) | 
| order | Recurso | 0.. \$1 | Solicite recursos (DeviceRequest,, ServiceRequest MedicationRequest, Encontro, Nomeação) para estabelecer o contexto | 
| changedSince | dateTime | 0,1 | Se estiver presente, retorne somente os recursos alterados após esse registro de data e hora | 

### Regras de validação de parâmetros
<a name="questionnaire-package-parameter-validation"></a>

**Pelo menos UM dos seguintes itens deve ser fornecido** (além do obrigatório`coverage`):
+ Um ou mais `questionnaire` canônicos URLs
+ Um ou mais `order` recursos

**Combinações de solicitações válidas:**  

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

## Exemplo de solicitação
<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"  
    }  
  ]  
}
```

## Formato de resposta
<a name="questionnaire-package-response-format"></a>

### Resposta de sucesso (200 OK)
<a name="questionnaire-package-success-response"></a>

A operação retorna um recurso FHIR Parameters contendo um ou mais **Package** Bundles. Cada pacote Package inclui:


| Tipo de entrada | Cardinalidade | Description | 
| --- | --- | --- | 
| Questionário | 1 | O questionário a ser entregue | 
| QuestionnaireResponse | 0,1 | Resposta pré-preenchida ou parcialmente preenchida (se aplicável) | 
| Ferramentas | 0.. \$1 | Bibliotecas CQL contendo pré-população e lógica condicional | 
| ValueSet | 0.. \$1 | Expandido ValueSets (para opções de resposta com menos de 40 expansões) | 

**Example Exemplo de resposta**  

```
{  
  "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"  
          }  
        }]  
      }  
    }  
  ]  
}
```

## Fluxo de trabalho operacional
<a name="questionnaire-package-operation-workflow"></a>

**Como HealthLake processa sua solicitação**  
Quando você liga`$questionnaire-package`, HealthLake executa as seguintes etapas:

1. **Identifique o paciente e o pagador**: extrai o paciente e a organização de seguros do seu `coverage` parâmetro.

1. **Encontre o questionário certo**:
   + **Com `questionnaire`** **parâmetro**: usa o URL canônico que você forneceu
   + **Com `order`** **parâmetro**: combina o código do pedido (CPT/HCPCS/LOINC) e o pagador para encontrar o questionário apropriado

1. **Coletar dependências**: recupera automaticamente tudo o que é necessário para renderizar o questionário:
   + **Bibliotecas CQL** - Lógica para questões pré-populacionais e condicionais
   + **ValueSets**- Opções de resposta (expandidas automaticamente se <40 opções)
   + **QuestionnaireResponse**- Qualquer resposta existente em andamento ou concluída

1. **Package tudo junto**:
   + Agrupa todos os recursos (cada recurso incluído apenas uma vez)
   + Filtra por `changedSince` data e hora, se fornecido
   + Adiciona avisos `Outcome` se algum recurso estiver faltando

**Resultado**: um pacote completo e independente pronto para renderização.

## Respostas de erro
<a name="questionnaire-package-error-responses"></a>

### 400 solicitação inválida
<a name="questionnaire-package-400-error"></a>

Retornado quando a validação da solicitação falha.

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

### 424 Dependência falhada
<a name="questionnaire-package-424-error"></a>

Retornado quando um recurso dependente não pode ser recuperado.

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

### 401 Não autorizado
<a name="questionnaire-package-401-error"></a>

Retornado quando as credenciais de autenticação estão ausentes ou são inválidas.

### 403 proibido
<a name="questionnaire-package-403-error"></a>

Retornado quando o usuário autenticado não tem permissão para acessar os recursos solicitados.

### 406 Não aceitável
<a name="questionnaire-package-406-error"></a>

Retornado quando o tipo de conteúdo solicitado não pode ser fornecido.

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

Retornado quando há um conflito de versão ou simultaneidade.

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

Retornado quando o recurso solicitado foi excluído permanentemente.

### 429, muitas solicitações
<a name="questionnaire-package-429-error"></a>

Retornado quando os limites de taxa são excedidos.

### 500 Internal Server Error
<a name="questionnaire-package-500-error"></a>

Retornado quando ocorre um erro inesperado no servidor.

### 501 Não implementado
<a name="questionnaire-package-501-error"></a>

Retornado quando a operação solicitada ainda não foi implementada.

## Regras de validação
<a name="questionnaire-package-validation-rules"></a>

### Validação de entrada
<a name="questionnaire-package-input-validation"></a>
+ `coverage`parâmetro é **obrigatório** (1.. \$1 cardinalidade)
+ Pelo menos um dos `questionnaire` ou `order` deve ser fornecido
+ Todos os recursos de cobertura devem ser recursos FHIR válidos
+ Todos os recursos do Pedido devem ser recursos FHIR válidos
+ O canônico URLs deve ser formatado corretamente
+ `changedSince`deve ser um ISO 8601 DateTime válido

### QuestionnaireResponse validação
<a name="questionnaire-package-response-validation"></a>
+ `status`deve ser apropriado (`in-progress`,`completed`,`amended`)
+ A estrutura deve corresponder ao questionário referenciado
+ `basedOn`deve fazer referência a recursos válidos do Pedido
+ `subject`deve referenciar recursos válidos para pacientes

### Desduplicação de recursos
<a name="questionnaire-package-resource-dedup"></a>
+ Cada recurso aparece somente uma vez no pacote
+ Exceção: versões diferentes do mesmo recurso podem ser incluídas
+ Os recursos são identificados por seu URL e versão canônicos

## Especificações de performance
<a name="questionnaire-package-performance-specs"></a>


| Métrica | Especificação | 
| --- | --- | 
| Limite de contagem de recursos | 500 recursos por pacote | 
| Limite de tamanho do pacote | Máximo de 5 MB | 

## Permissões obrigatórias
<a name="questionnaire-package-required-permissions"></a>

Para usar a `$questionnaire-package` operação, certifique-se de que sua função do IAM tenha:
+ `healthlake:QuestionnairePackage`- Para chamar a operação
+ `healthlake:ReadResource`- Para recuperar o questionário e os recursos dependentes
+ `healthlake:SearchWithPost`- Para pesquisar QuestionnaireResponse e recursos relacionados

**SMART em escopos FHIR**  
**Escopos mínimos exigidos:**
+ **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`

## Notas de implementação importantes
<a name="questionnaire-package-implementation-notes"></a>

### Estratégia de recuperação de recursos
<a name="questionnaire-package-retrieval-strategy"></a>

**Prioridade de identificação do questionário:**  

+ **URL canônica** (se o `questionnaire` parâmetro for fornecido) - Prioridade mais alta
+ **Análise do pedido** (se o `order` parâmetro for fornecido):
  + Combine os códigos de pedido (CPT, HCPCS, LOINC) com as políticas médicas do pagador
  + Use o pagador de cobertura para filtrar questionários específicos do pagador
  + Considere os códigos de motivo para um contexto adicional

### Resolução de dependências
<a name="questionnaire-package-dependency-resolution"></a>

**Bibliotecas CQL:**  

+ Recuperado por meio da `cqf-library` extensão nos recursos do questionário
+ Busca recursivamente bibliotecas dependentes por meio de tipo `Library.relatedArtifact` `depends-on`
+ Todas as dependências da biblioteca estão incluídas no pacote

**ValueSets:**  

+ Expandido automaticamente se eles contiverem menos de 40 conceitos
+ Maiores ValueSets estão incluídos sem expansão
+ ValueSets referenciados no questionário e nos recursos da biblioteca estão incluídos

### QuestionnaireResponse pré-população
<a name="questionnaire-package-prepopulation"></a>

A operação pode retornar um QuestionnaireResponse com dados pré-preenchidos quando:
+ Uma resposta existente em andamento ou concluída foi encontrada
+ A lógica CQL nas bibliotecas associadas pode extrair dados dos registros dos pacientes
+ A resposta está vinculada ao pedido e à cobertura relevantes

**Critérios de pesquisa para QuestionnaireResponse:**  



| Parâmetro de pesquisa | Caminho FHIR | Description | 
| --- | --- | --- | 
| based-on | QuestionnaireResponse.basedOn | Links para ServiceRequest ou CarePlan | 
| patient | QuestionnaireResponse.subject | O paciente que é o sujeito | 
| questionnaire | QuestionnaireResponse.questionnaire | O questionário que está sendo respondido | 

### Filtragem de recursos alterada
<a name="questionnaire-package-changed-filtering"></a>

Quando o `changedSince` parâmetro é fornecido:
+ Somente os recursos modificados **após** o registro de data e hora especificado são incluídos
+ Se nenhum recurso tiver sido alterado, retorna `200 OK` com um pacote vazio
+ Útil para atualizações incrementais e estratégias de armazenamento em cache
+ A comparação de timestamp usa o campo de recurso `meta.lastUpdated`

### Vários pacotes
<a name="questionnaire-package-multiple-bundles"></a>

A operação pode retornar **vários Package Bundles** quando:
+ Vários questionários são solicitados via canonical URLs
+ Vários pedidos exigem questionários diferentes
+ Versões diferentes do mesmo questionário são aplicáveis

Cada Package Bundle é independente com todas as dependências necessárias.

## Casos de uso comuns
<a name="questionnaire-package-common-use-cases"></a>

### Caso de uso 1: documentação de autorização prévia
<a name="questionnaire-package-use-case-1"></a>

**Cenário**: Um provedor precisa coletar a documentação para uma autorização prévia de oxigenoterapia domiciliar.

```
{  
  "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"  
          }]  
        }  
      }  
    }  
  ]  
}
```

**Resultado**: Retorna um pacote com o questionário de oxigenoterapia, pré-preenchido com os sinais vitais do paciente e os códigos de diagnóstico do EHR.

### Caso de uso 2: Recuperar a versão específica do questionário
<a name="questionnaire-package-use-case-2"></a>

**Cenário**: um provedor precisa de uma versão específica de um questionário para fins de conformidade.

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

**Resultado**: retorna exatamente a versão 3.1.0 do questionário de solicitação do DME com todas as dependências.

### Caso de uso 3: verifique se há atualizações
<a name="questionnaire-package-use-case-3"></a>

**Cenário**: um provedor deseja verificar se algum recurso do questionário foi atualizado desde a última recuperação.

```
{  
  "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"  
    }  
  ]  
}
```

**Resultado**: retorna somente recursos que foram modificados após 1º de março de 2024 ou um pacote vazio se nada tiver sido alterado.

### Caso de uso 4: vários pedidos
<a name="questionnaire-package-use-case-4"></a>

**Cenário**: um provedor envia várias solicitações de serviço que podem exigir questionários diferentes.

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

**Resultado**: retorna vários Package Bundles, um para cada questionário aplicável.

## Integração com outros Da Vinci IGs
<a name="questionnaire-package-integration"></a>

### Descoberta de requisitos de cobertura (CRD)
<a name="questionnaire-package-crd-integration"></a>

**Integração do fluxo de trabalho:**  

+ O provedor solicita um serviço em seu EHR
+ O gancho do CRD dispara, verificando os requisitos de cobertura
+ O pagador responde indicando que a documentação é necessária
+ O provedor liga `$questionnaire-package` para recuperar o formulário de documentação
+ O provedor preenche o questionário
+ A documentação é enviada via PAS ou CDex

### Suporte de autorização prévia (PAS)
<a name="questionnaire-package-pas-integration"></a>

**Integração do fluxo de trabalho:**  

+ Use `$questionnaire-package` para recuperar os requisitos de documentação
+ Preencha o QuestionnaireResponse com os dados clínicos necessários
+ Envie a autorização prévia usando `Claim/$submit` com o preenchido QuestionnaireResponse
+ Verifique o status usando `Claim/$inquire`

### Troca de dados clínicos (CDex)
<a name="questionnaire-package-cdex-integration"></a>

**Integração do fluxo de trabalho:**  

+ O pagador solicita documentação adicional para uma reclamação
+ O provedor usa `$questionnaire-package` para recuperar o formulário estruturado de coleta de dados
+ O provedor conclui o QuestionnaireResponse
+ A documentação é enviada ao pagador por meio do fluxo de trabalho de CDex anexos

## Guia de solução de problemas
<a name="questionnaire-package-troubleshooting"></a>

### Problema: Nenhum questionário foi devolvido
<a name="questionnaire-package-no-questionnaire"></a>

**Causas possíveis:**  

+ O URL canônico não corresponde a nenhum questionário no armazenamento de dados
+ O código do pedido não é mapeado para nenhum questionário na política médica do pagador
+ O pagador da cobertura não tem questionários associados

**Soluções:**  

+ Verifique se o URL canônico está correto e se o questionário existe
+ Verifique se os códigos de pedido (CPT/HCPCS) estão especificados corretamente
+ Confirme se a organização pagadora tem questionários configurados

### Problema: dependências ausentes no Package
<a name="questionnaire-package-missing-dependencies"></a>

**Causas possíveis:**  

+ Biblioteca referenciada ou ValueSet não existe no armazenamento de dados
+ As referências da biblioteca estão quebradas ou incorretas
+ ValueSet a expansão falhou

**Soluções:**  

+ Verifique o `Outcome` parâmetro para ver se há avisos sobre recursos ausentes
+ Verifique se todos os recursos referenciados existem em seu armazenamento de dados
+ Certifique-se de que ValueSet URLs estão corretos e solucionáveis

### Problema: Empty Package com ChangedSince
<a name="questionnaire-package-empty-package"></a>

**Causas possíveis:**  

+ Esse é o comportamento esperado - nenhum recurso foi modificado desde o timestamp especificado

**Soluções:**  

+ Use a versão em cache do pacote
+ Remova o `changedSince` parâmetro para recuperar o pacote completo

### Problema: QuestionnaireResponse Não pré-preenchido
<a name="questionnaire-package-not-prepopulated"></a>

**Causas possíveis:**  

+ Não foi QuestionnaireResponse encontrado nenhum existente
+ A lógica da biblioteca CQL não conseguiu extrair os dados necessários
+ Os dados do paciente estão ausentes ou incompletos

**Soluções:**  

+ Isso pode ser esperado - nem todos os questionários têm lógica pré-populacional
+ Verifique se os dados do paciente existem no armazenamento de dados
+ Revise a lógica da Biblioteca CQL para requisitos de extração de dados

## Práticas recomendadas
<a name="questionnaire-package-best-practices"></a>

### 1. Use Canonical com versões URLs
<a name="questionnaire-package-bp-versions"></a>

Sempre especifique os números das versões ao solicitar questionários específicos:

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

**Por quê**: Garante a consistência e evita alterações inesperadas quando os questionários são atualizados.

### 2. Aproveite o ChangedSince para desempenho
<a name="questionnaire-package-bp-changed-since"></a>

Para questionários acessados com frequência, use `changedSince` para minimizar a transferência de dados:

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

**Por quê**: Reduz a latência e o uso da largura de banda recuperando somente recursos atualizados.

### 3. Inclua informações completas de cobertura
<a name="questionnaire-package-bp-coverage"></a>

Forneça detalhes abrangentes da cobertura para garantir a seleção correta do questionário:

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

**Por quê**: Ajuda a HealthLake identificar questionários e requisitos específicos do pagador.

## Operações do relacionadas
<a name="questionnaire-package-related-operations"></a>
+ `Claim/$submit`- Envie solicitações de autorização prévia com a documentação completa
+ `Claim/$inquire`- Verifique o status das autorizações anteriores enviadas
+ `ValueSet/$expand`- Expandir ValueSets para opções de resposta

# Operação FHIR para `$submit` HealthLake
<a name="reference-fhir-operations-submit"></a>

A `$submit` operação permite que você envie eletronicamente solicitações de autorização prévia aos pagadores para aprovação. Essa operação implementa o [Guia de Implementação do Da Vinci Prior Authorization Support (PAS)](https://hl7.org/fhir/us/davinci-pas/), fornecendo um fluxo de trabalho padronizado baseado em FHIR para envios de autorização prévia.

## Como funciona
<a name="submit-how-it-works"></a>
+ **Enviar**: Você envia um pacote FHIR contendo sua solicitação de autorização prévia e dados clínicos de apoio
+ **Validar**: HealthLake valida o envio de acordo com os requisitos do PAS
+ **Persistir**: todos os recursos são armazenados em seu armazenamento HealthLake de dados
+ **Responder**: você recebe uma resposta imediata com o status “em fila”
+ **Processo**: A decisão de autorização é processada de forma assíncrona pelo pagador

## Ponto final da API
<a name="submit-api-endpoint"></a>

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

## Estrutura de solicitações
<a name="submit-request-structure"></a>

### Requisitos do pacote
<a name="submit-bundle-requirements"></a>

Sua solicitação deve ser um recurso do FHIR Bundle com:
+ **Bundle.type**: Deve ser `"collection"`
+ **Bundle.entry**: deve conter exatamente **um** recurso de reivindicação com `use = "preauthorization"`
+ **Recursos referenciados**: todos os recursos referenciados pela reivindicação devem ser incluídos no pacote

### Recursos necessários
<a name="submit-required-resources"></a>


| Recurso | Cardinalidade | Perfil | Description | 
| --- | --- | --- | --- | 
| Reclamação | 1 | Reivindicação do PAS | A solicitação de autorização prévia | 
| Paciente | 1 | Paciente PAS | Informações demográficas do paciente | 
| Organização (Seguradora) | 1 | Seguradora PAS | Companhia de seguros | 
| Organização (Provedor) | 1 | Solicitante do PAS | Provedor de serviços de saúde enviando a solicitação | 
| Cobertura | 1 ou mais | Cobertura do PAS | Detalhes da cobertura do seguro | 

### Recursos opcionais
<a name="submit-optional-resources"></a>


| Recurso | Cardinalidade | Perfil | Description | 
| --- | --- | --- | --- | 
| Praticante | 0 ou mais | Praticante do PAS | Profissionais de saúde | 
| PractitionerRole | 0 ou mais | PAS PractitionerRole | Funções do profissional | 
| ServiceRequest | 0 ou mais | PAS ServiceRequest | Serviços médicos solicitados | 
| DeviceRequest | 0 ou mais | PAS DeviceRequest | Dispositivos médicos solicitados | 
| MedicationRequest | 0 ou mais | PAS MedicationRequest | Medicamentos solicitados | 
| DocumentReference | 0 ou mais | PAS DocumentReference | Documentação clínica de apoio | 

## Exemplo de solicitação
<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"  
    }  
  }]  
}
```

## Formato de resposta
<a name="submit-response-format"></a>

### Resposta de sucesso (200 OK)
<a name="submit-success-response"></a>

Você receberá um pacote de respostas do PAS contendo:
+ **ClaimResponse**com `outcome: "queued"` e `status: "active"`
+ Todos os recursos originais de sua solicitação
+ Carimbo de data e hora confirmando o recebimento

```
{  
  "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"  
    }  
  }]  
}
```

## Respostas de erro
<a name="submit-error-responses"></a>

### 400 solicitação inválida
<a name="submit-400-error"></a>

Retornado quando o formato da solicitação é inválido ou está incorreto.

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

### 412 Falha na pré-condição
<a name="submit-412-error"></a>

Retornado quando a mesma solicitação de autorização prévia já foi enviada (envio duplicado detectado).

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

**Idempotência**  
A `$submit` operação é idempotente. Enviar a mesma solicitação várias vezes não criará solicitações de autorização prévia duplicadas. Em vez disso, você receberá um erro 412 solicitando que você use `$inquire` para verificar o status do seu envio original.

### 422 Entidade não processável
<a name="submit-422-error"></a>

Retornado quando a validação do FHIR falha.

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

## Regras de validação
<a name="submit-validation-rules"></a>

HealthLake realiza uma validação abrangente em seu envio:

### Validação do pacote
<a name="submit-bundle-validation"></a>
+ Deve estar em conformidade com o perfil do PAS Request Bundle
+ `Bundle.type`deve ser `"collection"`
+ Pode conter vários recursos de reivindicação
+ No entanto, deve conter exatamente um recurso de reclamação com uso pré-autorizado
  + E esse recurso de reivindicação deve ser a primeira entrada no pacote
+ Todos os recursos referenciados devem ser incluídos no pacote

### Validação da solicitação
<a name="submit-claim-validation"></a>
+ Deve estar em conformidade com o perfil de reclamação do PAS
+ `Claim.use`deve ser `"preauthorization"`
+ Campos obrigatórios: `patient``insurer`,,`provider`,`created`, `priority`
+ Os identificadores comerciais devem estar presentes e válidos

### Validação de recursos
<a name="submit-resource-validation"></a>
+ Todos os recursos devem estar em conformidade com seus respectivos perfis PAS
+ Os recursos de apoio necessários devem estar presentes (paciente, cobertura, organização)
+ As referências cruzadas devem ser válidas e solucionáveis dentro do pacote

## Especificações de performance
<a name="submit-performance-specs"></a>


| Métrica | Especificação | 
| --- | --- | 
| Limite de tamanho do pacote | Máximo de 5 MB | 
| Limite de contagem de recursos | 500 recursos por pacote | 

## Permissões obrigatórias
<a name="submit-required-permissions"></a>

Para usar a `$submit` operação, é possível usar o AWS Sigv4 ou o SMART no FHIR:
+ Certifique-se de que sua função do IAM tenha: `healthlake:SubmitPreAuthClaim` - Para chamar a operação

**SMART em escopos FHIR**  
**Escopos mínimos exigidos:**
+ **SMART v1:** `user/Claim.write & <all_resourceTypes_in_Bundle>.write`
+ **SMART v2:** `user/Claim.c & <all_resourceTypes_in_Bundle>.c or system/*.*`

## Notas de implementação importantes
<a name="submit-implementation-notes"></a>

### Persistência de recursos
<a name="submit-resource-persistence"></a>
+ Todas as entradas do pacote são mantidas como recursos individuais do FHIR em seu armazenamento de dados
+ Os fornecidos pelo cliente IDs são preservados quando fornecidos
+ O histórico de versões é mantido para fins de auditoria
+ A detecção de duplicatas evita conflitos de recursos

### Comportamento de processamento
<a name="submit-processing-behavior"></a>
+ Cada envio válido resulta em exatamente um ClaimResponse com `"queued"` resultado
+ Envios inválidos retornam códigos de status 400 ou 422 com informações detalhadas de erro
+ Os erros do sistema retornam os códigos de status 5xx apropriados
+ Todos os envios bem-sucedidos retornam o status 200 com um valor pendente ClaimResponse

### Requisitos do pacote
<a name="submit-bundle-requirements-impl"></a>
+ `Bundle.entry.fullUrl`os valores devem ser REST URLs ou `"urn:uuid:[guid]"` formatados
+ Todos GUIDs devem ser exclusivos em todos os envios (exceto nas mesmas instâncias de recursos)
+ Os recursos referenciados devem existir dentro do pacote ou ser solucionáveis

## Operações do relacionadas
<a name="submit-related-operations"></a>
+ `Claim/$inquire`- Consulte o status de uma solicitação de autorização prévia enviada
+ `Patient/$everything`- Recupere dados abrangentes do paciente para contexto de autorização prévia

# Validando recursos do FHIR com `$validate`
<a name="reference-fhir-operations-validate"></a>

AWS HealthLake agora suporta a `$validate` operação de recursos FHIR, permitindo que você valide um recurso de acordo com a especificação FHIR e verifique sua conformidade com um perfil específico ou definição de recurso básico sem realizar nenhuma operação de armazenamento. Essa operação é particularmente útil quando você precisa:
+ Valide os requisitos de conformidade do FHIR CMS
+ Teste os recursos antes de usá-los na produção
+ Forneça feedback de validação em tempo real à medida que os usuários editam dados clínicos
+ Reduza os envios de dados inválidos para criar e atualizar APIs

## Usage
<a name="validate-usage"></a>

A `$validate` operação pode ser invocada em recursos FHIR usando métodos POST:

**Operações com Suporte**  


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

## Cargas úteis suportadas
<a name="validate-payloads"></a>

**Recurso de parâmetros**  


HealthLake suporta os seguintes parâmetros FHIR: `$validate`


| Parâmetro | Tipo | Obrigatório | Description | 
| --- | --- | --- | --- | 
| resource | Recurso | Sim | O recurso a ser validado | 
| profile | canônico | Não | URL canônico do perfil a ser validado | 
| mode | código | Não | Modo de validação:create, ou update | 

**Recurso direto com parâmetros de consulta**  



| Parâmetro | Tipo | Obrigatório | Description | 
| --- | --- | --- | --- | 
| profile | canônico | Não | URL canônico do perfil a ser validado | 
| mode | código | Não | Modo de validação:create, ou update | 

## Exemplos
<a name="validate-examples"></a>

**Solicitação POST de recurso com ID e carga útil de parâmetros**  


```
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"
    }
  ]
}
```

**Solicitação POST para tipo de recurso e carga útil de parâmetros**  


```
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"
    }
  ]
}
```

**Solicitação POST de recurso com ID e carga direta de recursos**  


```
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"
}
```

**Solicitação POST para tipo de recurso e carga direta do recurso**  


```
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"
}
```

**Resposta da amostra**  
A operação retorna um OperationOutcome recurso com resultados de validação:

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

**Exemplo de resposta com erros de validação**  


```
{
  "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"
      ]
    }
  ]
}
```

## Comportamento
<a name="validate-behavior"></a>

A `$validate` operação:

1. Valida o recurso em relação à especificação FHIR e à definição do recurso básico

1. Verifica a conformidade com os perfis especificados quando o `profile` parâmetro é fornecido

1. Valida com base no modo especificado (`create`ou`update`)

1. Retorna resultados detalhados da validação, incluindo erros, avisos e mensagens informativas

1. Não executa nenhuma operação de armazenamento - somente validação

1. Retorna HTTP 200 OK quando a validação pode ser realizada, independentemente de problemas de validação terem sido encontrados

## Modos de validação
<a name="validate-modes"></a>
+ **criar**: valida o recurso como se estivesse sendo criado (novo recurso)
+ **atualização**: valida o recurso como se estivesse sendo atualizado (recurso existente)

## Tratamento de erros
<a name="validate-error-handling"></a>

A operação retorna:
+ 200 OK: A validação foi realizada com sucesso (independentemente do resultado da validação)
+ 400 Solicitação inválida: formato ou parâmetros de solicitação inválidos
+ 404 Não encontrado: tipo de recurso ou perfil não encontrado

Para obter mais informações sobre a especificação da `$validate` operação, consulte a documentação do [recurso FHIR R4](https://www.hl7.org/fhir/R4/operation-resource-validate.html). `$validate`