HL7 PT FHIR Implementation Guide: Visita do Utente
1.0.0 - STU1 Portugal flag

HL7 PT FHIR Implementation Guide: Visita do Utente, published by HL7 Portugal. This guide is not an authorized publication; it is the continuous build for version 1.0.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/hl7-pt/workflow-ep-ig/tree/master and changes regularly. See the Directory of published versions

Erros

Introdução

Um pedido que falha normalmente retorna um OperationOutcome .

No entanto, há muitas situações atípicas em que a resposta pode conter outros tipos de informações. Nem sempre é possivel detectar e descrever todas as situações de erro que podem ocorrer, mas os métodos de tratamento de erros mencionados mais abaixo, tentam resumir como podemos processar as informações dos erro retornados de uma forma simples e adequada.

Informações retornadas

O impacto na gestão de erros depende da informação retornada pelo servidor onde ocorreu o erro. Desta forma, devemos ter em atenção o seguinte:

  1. Verificar a resposta HTTP, por exemplo, HTTP/1.0 503 Service Unavailable é a informação mais importante sobre o resultado de um pedido feito pelo utilizador. Caso a resposta do pedido receba algo semelhante a 2XX indica sucesso, caso contrário, indica insucesso. Na tabela mais abaixo, há mais informações sobre os códigos HTTP possiveis e mais comuns.

  2. Identificar o tipo de dados no headers, verificando o campo Content-Type. Por exemplo, Content-Type: "text/html" indica que ocorreu um erro na camada de transporte, porque normalmente numa resposta FHIR está marcada com application/fhir, como por exemplo Content-Type: "application/fhir+json; charset=UTF-8". Respostas que nãpo sejam do tipo FHIR devem ser tratadas como erros de sistema. Cabe ao responsável do serviço decidir a mensagem de erro apropriada para o utilizador em caso de erros de sistema.

  3. Identificar o tipo de recurso FHIR no corpo da resposta. Na maioria dos casos, será uma das opções: vazio, um OperationOutcome, um Bundle ou o recurso solicitado. O conteúdo depende do que o sistema definiu como preferência no cabeçalho Prefer. Se não estiver especificada, deverá ser validado com o sistema qual o Prefer. No entanto, um erro deverá retornar sempre um OperationOutcome, independentemente do resultado.

  4. Analisar o que o OperationOutcome diz sobre o erro.

Códigos HTTP

Os códigos na tabela em baixo são os mais comuns nos sistemas:

Código Definição Comentário
200 OK Pedido bem sucedido
201 Created Pedido bem sucedido. Um ou mais recursos foram criados
304 Not Modified GET condicional recebido, mas as pré-condições foram avaliadas como falsas
400 Bad Request Erro no cliente, por exemplo falha na estrutura do pedido
401 Unauthorized Credenciais inválidas ou falha na autorização
403 Forbidden Operação não autorizada
404 Not Found Recurso/Elemento não encontrado
409 Conflict Conflito, geralmente devido ao estado inesperado do recurso
422 Unprocessable Entity Estrutura válida, mas não está em conformidade com a definição do recurso
500 Internal Server Error Erro inesperado no servidor
503 Service Unavailable Servidor temporariamente indisponível