

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á.

# `$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”