Modificando recursos com a operação PATCH - AWS HealthLake

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 de acordo com a RFC 6902:

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:

  1. Valida a sintaxe do JSON Patch de acordo com RFC 6902 e RFC 6901

  2. Aplica operações atomicamente - todas as operações são bem-sucedidas ou todas falham

  3. Atualiza o ID da versão do recurso e cria uma nova entrada no histórico

  4. Preserva o recurso original no histórico antes de aplicar as alterações

  5. Valida as restrições de recursos do FHIR após a aplicação de patches

  6. 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+json o 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 PATCH.