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á.
Modificando recursos com a operação PATCH
AWS HealthLake agora suporta a operação PATCH para recursos do FHIR, permitindo que você modifique recursos direcionando elementos específicos para adicionar, substituir ou excluir sem atualizar o recurso inteiro. Essa operação é particularmente útil para clientes remotos ou com largura de banda limitada que desejam reduzir o uso da rede. Essa operação é particularmente útil quando você precisa:
-
Faça atualizações direcionadas para grandes recursos
-
Reduzir o uso da largura de banda da rede
-
Execute modificações atômicas em elementos de recursos específicos
-
Minimize o risco de sobrescrever alterações simultâneas
Uso
A operação PATCH pode ser invocada em recursos FHIR usando o método PATCH HTTP:
Operações com Suporte
PATCH [base]/[resource-type]/[id]{?_format=[mime-type]}
Operações PATCH suportadas
HealthLake suporta as seguintes operações de patch JSON
| Operação | Descrição |
|---|---|
add |
Adicione um novo valor ao recurso |
remove |
Remover um valor do recurso |
replace |
Substituir um valor existente no recurso |
move |
Funcionalmente idêntica a uma operação de “remoção” no local “de”, seguida imediatamente por uma operação de “adição” no local de destino com o valor que acabou de ser removido |
copy |
Copiar o valor em um local especificado para o local de destino |
test |
Teste se um valor no local de destino é igual a um valor especificado |
Cabeçalhos de solicitação
| Cabeçalho | Obrigatório | Descrição |
|---|---|---|
Content-Type |
Sim | Deve ser application/json-patch+json |
If-Match |
Não | Atualização condicional específica da versão usando ETag |
Exemplos
Solicitação de PATCH com várias operações
PATCH [base]/Patient/example
Content-Type: application/json-patch+json
If-Match: W/"1"
[
{
"op": "replace",
"path": "/name/0/family",
"value": "Smith"
},
{
"op": "add",
"path": "/telecom/-",
"value": {
"system": "phone",
"value": "************",
"use": "home"
}
},
{
"op": "remove",
"path": "/address/0"
},
{
"op": "move",
"from": "/name/0/family",
"path": "/name/1/family"
},
{
"op": "test",
"path": "/gender",
"value": "male"
},
{
"op": "copy",
"from": "/name/0",
"path": "/name/1"
}
]
Solicitação de PATCH com operação única
PATCH [base]/Patient/example
Content-Type: application/json-patch+json
[
{
"op": "replace",
"path": "/active",
"value": false
}
]
Resposta da amostra
A operação retorna o recurso atualizado com as informações da nova versão:
HTTP/1.1 200 OK
Content-Type: application/fhir+json
ETag: W/"2"
Last-Modified: Mon, 05 May 2025 10:10:10 GMT
{
"resourceType": "Patient",
"id": "example",
"active": true,
"name": [
{
"family": "Smith",
"given": ["John"]
}
],
"telecom": [
{
"system": "phone",
"value": "************",
"use": "home"
}
],
"meta": {
"versionId": "2",
"lastUpdated": "2025-05-05T10:10:10Z"
}
}
Sintaxe do caminho de patch JSON
O parâmetro path usa a sintaxe JSON Pointer (RFC 6901):
| Exemplo de caminho | Descrição |
|---|---|
/name/0/family |
Elemento familiar do primeiro nome |
/telecom/- |
Anexar à matriz de telecomunicações |
/active |
Elemento ativo no nível da raiz |
/address/0/line/1 |
Segunda linha do primeiro endereço |
Comportamento
A operação PATCH:
-
Valida a sintaxe do JSON Patch de acordo com RFC 6902 e RFC 6901
-
Aplica operações atomicamente - todas as operações são bem-sucedidas ou todas falham
-
Atualiza o ID da versão do recurso e cria uma nova entrada no histórico
-
Preserva o recurso original no histórico antes de aplicar as alterações
-
Valida as restrições de recursos do FHIR após a aplicação de patches
-
Suporta atualizações condicionais usando o cabeçalho If-Match com ETag
Tratamento de erros
A operação trata das seguintes condições de erro:
-
400 Solicitação incorreta: sintaxe de patch inválida (solicitação não conforme ou patch JSON malformado)
-
404 Não encontrado: recurso não encontrado (o ID especificado não existe)
-
409 Conflito: conflito de versão (atualizações simultâneas ou ID de versão não atual fornecida)
-
422 Entidade não processável: as operações de patch não podem ser aplicadas aos elementos de recursos especificados
Advertências
-
Somente
application/json-patch+jsono tipo de conteúdo é suportado -
Operações PATCH condicionais usando condições de pesquisa não são suportadas
Para obter mais informações sobre as operações PATCH, consulte a documentação do FHIR R4