

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

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