Solucionar erros usando os logs de serviço MedTech

Observação

O FHIR® (Fast Healthcare Interoperability Resources) é uma especificação de serviços de saúde abertos.

Este artigo fornece etapas de solução de problemas e correções para erros encontrados nos logs de serviço MedTech.

Dica

Ter acesso aos logs de serviço MedTech é essencial para solucionar problemas e avaliar a integridade geral e o desempenho do serviço MedTech.

Para saber como acessar os logs de serviço MedTech, consulte Como habilitar as configurações de diagnóstico para o serviço MedTech.

Gravidade do erro do serviço MedTech

Esta propriedade representa a severidade do erro ocorrido. Aqui está uma lista de valores possíveis para esta propriedade:

Severidade Descrição
Sem bloqueio Existe um problema no processo de fluxo de dados, mas o processamento de mensagens do dispositivo não é interrompido.
Bloqueio Há um problema no processo de fluxo de dados e espera-se que nenhuma mensagem de dispositivo seja processada.

Operação que está sendo executada pelo serviço MedTech

Essa propriedade representa a operação que está sendo executada pelo serviço MedTech quando o erro ocorreu. Uma operação geralmente representa o estágio de fluxo de dados no qual uma mensagem de dispositivo é processada. O estágio de fluxo de dados é exibido nos logs de erros como OperationName. Aqui está uma lista de valores possíveis para esta propriedade:

OperationName Descrição
Normalização O estágio de fluxo de dados em que a mensagem do dispositivo é normalizada.
FHIRConversion O estágio de fluxo de dados em que os dados normalizados agrupados são transformados em um recurso de Observação.

Observação

Para saber mais sobre a transformação de dados de mensagens do dispositivo de serviço MedTech, confira Visão geral dos estágios de processamento de dados do dispositivo do serviço MedTech.

Exceções e correções de marcar de integridade do serviço MedTech

As verificações de integridade são executadas automaticamente e periodicamente para marcar se um serviço MedTech pode normalizar e transformar mensagens do dispositivo. Se uma marcar de integridade não for aprovada, uma HealthCheckException ocorrerá e será registrada.

Nos logs do serviço MedTech, uma falha de marcar de integridade é registrada com um LogType de HealthCheckException e o nome do marcar de integridade com falha é registrado na Mensagem.

Os nomes das verificações de integridade são listados na tabela a seguir e as correções de qualquer uma das falhas são descritas abaixo da tabela:

HealthCheck
CredentialStore:IsCustomerFacingMiCredentialBundlePresent
ExternalEventHub:IsAuthenticated
FhirService:IsAuthenticated

Observação

Embora um HealthCheckException seja um problema de bloqueio, ele pode ser transitório e pode se resolve sem intervenção.

CredentialStore:IsCustomerFacingMiCredentialBundlePresent

Descrição: verifica se a identidade gerenciada atribuída pelo sistema de um serviço MedTech foi habilitada ou se uma identidade gerenciada atribuída pelo usuário está configurada.

Severidade: Bloqueio

Correção: siga a correção descrita em ManagedIdentityCredentialNotFound.

ExternalEventHub:IsAuthenticated

Descrição: verifica se o hub de eventos é válido e se o serviço MedTech tem acesso a ele.

Severidade: Bloqueio

Correção: verifique se o hub de eventos é válido seguindo a correção descrita em InvalidEventHubException. Em seguida, verifique se o serviço MedTech tem acesso ao hub de eventos seguindo a correção descrita em UnauthorizedAccessEventHubException.

FhirService:IsAuthenticated

Descrição: verifica se o destino FHIR é válido e se o serviço MedTech tem acesso de gravação a ele.

Severidade: Bloqueio

Correção: verifique se o destino FHIR é válido seguindo a correção descrita em InvalidFhirServiceException. Em seguida, verifique se o serviço MedTech tem acesso de gravação ao seu destino FHIR seguindo a correção descrita em UnauthorizedAccessFhirServiceException.

Erros e correções do serviço MedTech

Se ocorrer um erro ao normalizar ou transformar mensagens do dispositivo, ele será registrado.

Nos logs de serviço MedTech, o nome do erro é registrado no LogType.

Os nomes dos erros são listados na tabela a seguir e as correções para eles são fornecidas abaixo da tabela:

LogType
CorrelationIdNotDefinedException
FhirDataMappingException
FhirResourceNotFoundException
IncompatibleDataException
InvalidDataFormatException
InvalidEventHubException
InvalidFhirServiceException
InvalidQuantityFhirValueException
InvalidTemplateException
ManagedIdentityCredentialNotFound
MultipleResourceFoundException
NormalizationDataMappingException
PatientDeviceMismatchException
ResourceIdentityNotDefinedException
TemplateExpressionException
TemplateNotFoundException
UnauthorizedAccessEventHubException
UnauthorizedAccessFhirServiceException

CorrelationIdNotDefinedException

Descrição: se um CorrelationIdExpression (que é a expressão para analisar o identificador de correlação da mensagem do dispositivo) for especificado no mapeamento do dispositivo, esse erro ocorrerá quando o identificador de correlação não estiver presente em uma mensagem de dispositivo ou quando CorrelationIdExpression não estiver configurado corretamente no mapeamento do dispositivo. Observação: CorrelationIdExpression é opcional. Esse erro ocorre ao agrupar medidas que compartilham o mesmo dispositivo, tipo e identificador de correlação em um único recurso de Observação FHIR.

Severidade: Bloqueio

Correção:

  • Se a CorrelationIdExpression for necessária: verifique se as mensagens do dispositivo contêm o identificador de correlação. Além disso, no portal do Azure, vá para a folha Mapeamento de dispositivo do serviço MedTech e verifique se o correlationIdExpression valor no mapeamento de dispositivo existe e referencia corretamente a chave do identificador de correlação nas mensagens do dispositivo.

  • Se a CorrelationIdExpression não for necessária: no portal do Azure, vá para a folha Mapeamento de dispositivo do serviço MedTech e remova a linha que contém correlationIdExpression no mapeamento do dispositivo.

FhirDataMappingException

Descrição: ocorreu um erro ao transformar dados normalizados com o mapeamento de destino FHIR. Esse erro ocorre quando um modelo que corresponde aos dados normalizados não é definido no mapeamento de destino FHIR.

Severidade: Bloqueio

Correção: no portal do Azure, vá para a folha Mapeamento de dispositivo e a folha Destino do serviço MedTech e verifique se, para cada modelo no mapeamento de dispositivo, há um modelo com o mesmo typeName valor no mapeamento de destino FHIR. Além disso, corrija os erros de validação mostrados ao editar e salvar o mapeamento de destino FHIR na folha Destino .

FhirResourceNotFoundException

Descrição: esse erro ocorre quando um recurso FHIR com o identificador fornecido na mensagem do dispositivo não pode ser encontrado no destino FHIR. Se o tipo do recurso FHIR for Paciente, o erro poderá ser que o recurso FHIR do Dispositivo com o identificador do dispositivo fornecido na mensagem do dispositivo não faça referência a um recurso FHIR do Paciente. O tipo do recurso FHIR (por exemplo, Dispositivo, Paciente, Encontro ou Observação) é especificado na mensagem de erro. Observação: esse erro só pode ocorrer quando o tipo de resolução do serviço MedTech estiver definido como Pesquisa.

Gravidade: não bloqueio

Correção: verifique se as mensagens do dispositivo contêm o identificador do recurso FHIR que tem o tipo especificado na mensagem de erro. Além disso, no portal do Azure, vá para a folha Mapeamento de dispositivo do serviço MedTech e verifique se o {FHIR resource’s type specified in the error message}IdExpression valor (por exemplo, deviceIdExpression) no mapeamento de dispositivo existe e referencia corretamente a chave do identificador nas mensagens do dispositivo.

IncompatibleDataException

Descrição: há uma incompatibilidade entre a mensagem do dispositivo e o mapeamento do dispositivo (por exemplo, uma propriedade necessária pode estar ausente ou em branco na mensagem do dispositivo e/ou no mapeamento do dispositivo). A propriedade de mapeamento de dispositivo com o erro é especificada na mensagem de erro.

Gravidade: não bloqueio

Correção: verifique se as mensagens do dispositivo contêm:

  • A chave referenciada pela propriedade de mapeamento de dispositivo especificada na mensagem de erro.

  • Um valor não em branco para a chave.

Além disso, no portal do Azure, vá para a folha Mapeamento de dispositivo do serviço MedTech e verifique se a propriedade de mapeamento de dispositivo especificada na mensagem de erro tem um valor que faz referência correta à chave correspondente nas mensagens do dispositivo.

InvalidDataFormatException

Descrição: uma mensagem de dispositivo não está em um formato que pode ser analisado em um objeto JSON.

Gravidade: não bloqueio

Correção: verifique se as mensagens do dispositivo estão no formato JSON. Uma maneira de confirmar o formato JSON é usar um validador JSON online.

InvalidEventHubException

Descrição: o hub de eventos é inválido por um destes motivos:

  • Pelo menos um dos detalhes do hub de eventos (namespace dos Hubs de Eventos, nome do hub de eventos ou grupo de consumidores) está formatado incorretamente ou não existe. O namespace dos Hubs de Eventos deve conter o hub de eventos e o hub de eventos deve conter o grupo de consumidores.

  • Mais de um serviço está lendo do grupo de consumidores do hub de eventos.

Severidade: Bloqueio

Correção: no portal do Azure, vá para a folha Hubs de Eventos do serviço MedTech e verifique se todos os campos para os detalhes do hub de eventos estão preenchidos. Para garantir que somente o serviço MedTech leia do grupo de consumidores:

  • Examine seus serviços e verifique se o serviço MedTech é o único serviço que acessa o grupo de consumidores.

  • Vá para o hub de eventos no portal do Azure, crie um novo grupo de consumidores que somente o serviço MedTech acessa, acesse a folha Hubs de Eventos do serviço MedTech e selecione seu novo grupo de consumidores no campo Grupo de consumidores.

InvalidFhirServiceException

Descrição: o destino FHIR é inválido porque está formatado incorretamente, não existe ou não é um serviço FHIR nos Serviços de Dados de Integridade do Azure.

Severidade: Bloqueio

Correção: no portal do Azure, vá para a folha Destino do serviço MedTech e verifique se o campo servidor FHIR está preenchido corretamente.

InvalidQuantityFhirValueException

Descrição: o valor com um tipo de dados de recurso Quantity é inválido (por exemplo, ele pode estar em um formato que não tem suporte). O valor com o erro é especificado na mensagem de erro.

Gravidade: não bloqueio

Correção: verifique se os valores nas mensagens do dispositivo estão em tipos de dados com suporte de acordo com as especificações de quantidade.valor do FHIR.

InvalidTemplateException

Descrição: há um erro com um modelo no mapeamento de dispositivo ou no mapeamento de destino FHIR. Os erros incluem:

  • O tipo de modelo de um modelo (representado pela templateType propriedade) está ausente ou tem um valor em branco.

  • Um modelo (representado pela template propriedade) no modelo de coleção raiz não tem um objeto JSON, que é identificado por chaves {}, como seu valor.

  • O tipo de um modelo (representado pela typeName propriedade) está ausente ou tem um valor em branco.

  • Mais de um modelo em um mapeamento tem o mesmo tipo (tem o mesmo valor para sua typeName propriedade).

O tipo e a linha do modelo com o erro são especificados na mensagem de erro.

Severidade: Bloqueio

Correção: no portal do Azure, vá para a folha Mapeamento de dispositivo (se o erro estiver no mapeamento do dispositivo) ou a folha Destino (se o erro estiver no mapeamento de destino FHIR) do serviço MedTech e corrija o modelo especificado na mensagem de erro.

ManagedIdentityCredentialNotFound

Descrição: quando o serviço MedTech está se conectando ao hub de eventos, a identidade gerenciada atribuída pelo sistema do serviço MedTech é desabilitada ou não existe ou uma identidade gerenciada atribuída pelo usuário não está configurada para o serviço MedTech. Observação: esse erro poderá ocorrer se o serviço MedTech tiver sido implantado usando um modelo do ARM (Azure Resource Manager) configurado incorretamente.

Severidade: Bloqueio

Correção: a correção depende do tipo de identidade gerenciada que você gostaria de usar. A diferença entre uma identidade gerenciada atribuída pelo sistema e uma identidade gerenciada atribuída pelo usuário pode ser revisada em Tipos de identidade gerenciados. Observação: o serviço MedTech dá suporte a apenas uma identidade: uma identidade gerenciada atribuída pelo sistema ou uma única identidade gerenciada atribuída pelo usuário.  

Se você quiser usar uma identidade gerenciada atribuída pelo sistema:

  1. Se você estiver implantando um serviço MedTech usando um modelo do ARM, verifique se o recurso de serviço MedTech no modelo do ARM tem uma identity propriedade que contém o valor de (consulte o type modelo arm de "SystemAssigned" exemplo no arquivo azuredeploy.json no GitHub).

  2. No portal do Azure, vá para a folha Identidade do serviço MedTech, acesse a guia Sistema atribuído e verifique o seguinte:

    • O Status está definido como Ativado.
    • As atribuições de função do Azure mostram que o hub de eventos tem uma função Hubs de Eventos do Azure Receptor de Dados atribuída à identidade gerenciada atribuída pelo sistema do serviço MedTech. Caso contrário, siga estas instruções

Se você quiser usar uma identidade gerenciada atribuída pelo usuário:

  1. Verifique se você tem uma identidade gerenciada atribuída pelo usuário. Caso contrário, crie um usando o portal do Azure ou um modelo do ARM.

  2. Se você estiver implantando um serviço MedTech usando um modelo do ARM, verifique se o recurso de serviço MedTech no modelo do ARM tem uma identity propriedade que contém 1) o type valor de "userAssigned" e 2) um userAssignedIdentities valor que inclui o nome da identidade gerenciada atribuída pelo usuário (confira o exemplo em Atribuir uma identidade gerenciada atribuída pelo usuário a uma VM do Azure).

  3. No portal do Azure, vá para a folha Identidade do serviço MedTech, acesse a guia Atribuído pelo usuário e verifique se a identidade gerenciada atribuída pelo usuário é mostrada. Caso contrário, adicione sua identidade gerenciada atribuída pelo usuário (confira o exemplo em Atribuir uma identidade gerenciada atribuída pelo usuário a uma VM existente).

  4. No portal do Azure, vá para o hub de eventos e atribua a função Hubs de Eventos do Azure Receptor de Dados à identidade gerenciada atribuída pelo usuário do serviço MedTech (confira instruções, mas use a identidade gerenciada atribuída pelo usuário em vez da identidade gerenciada atribuída pelo sistema).

MultipleResourceFoundException

Descrição: vários recursos FHIR com o mesmo identificador, que é obtido da mensagem do dispositivo, são encontrados no destino FHIR, mas apenas um recurso FHIR deveria ter sido encontrado. O tipo do recurso FHIR (por exemplo, Dispositivo, Paciente, Encontro ou Observação) é especificado na mensagem de erro.

Gravidade: não bloqueio

Correção: verifique se um identificador não está atribuído a mais de um recurso FHIR que tenha o tipo especificado na mensagem de erro.

NormalizationDataMappingException

Descrição: ocorreu um erro ao normalizar uma mensagem de dispositivo com o mapeamento do dispositivo.

Severidade: Bloqueio

Correção: no portal do Azure, vá para a folha Mapeamento de dispositivo do serviço MedTech e corrija os erros de validação mostrados ao editar e salvar o mapeamento do dispositivo.

PatientDeviceMismatchException

Descrição: um recurso de dispositivo no destino FHIR faz referência a um recurso FHIR do Paciente com um identificador que não corresponde ao identificador do paciente fornecido na mensagem do dispositivo (ou seja, o dispositivo está vinculado a outro paciente).

Gravidade: não bloqueio

Correção: verifique se um identificador de paciente não está atribuído a mais de um dispositivo.

ResourceIdentityNotDefinedException

Descrição: esse erro ocorre quando o identificador do recurso FHIR não está presente em uma mensagem de dispositivo ou quando a expressão para analisar o identificador do recurso FHIR da mensagem do dispositivo não está configurada no mapeamento do dispositivo. O tipo do recurso FHIR (por exemplo, Dispositivo, Paciente, Encontro ou Observação) é especificado na mensagem de erro. Observação: esse erro só pode ocorrer quando o tipo de resolução do serviço MedTech estiver definido como Criar.

Gravidade: não bloqueio

Correção: verifique se as mensagens do dispositivo contêm o identificador do recurso FHIR que tem o tipo especificado na mensagem de erro. Além disso, no portal do Azure, vá para a folha Mapeamento de dispositivo do serviço MedTech e verifique se o {FHIR resource’s type specified in the error message}IdExpression valor (por exemplo, deviceIdExpression) no mapeamento de dispositivo existe e referencia corretamente a chave do identificador nas mensagens do dispositivo.

TemplateExpressionException

Descrição: há um erro com uma expressão em um modelo dentro do mapeamento do dispositivo. Os erros incluem:

  • Uma expressão necessária está ausente.

  • Não há suporte para a linguagem de uma expressão (representada pela language propriedade). Todos os tipos de modelo dão suporte a expressões no JSONPath; somente o tipo de modelo CalculatedContent dá suporte a expressões no JMESPath.

  • O valor de uma expressão (representado pela value propriedade) é formatado incorretamente de acordo com a sintaxe da linguagem da expressão.

A expressão e a linha com o erro são especificadas na mensagem de erro.

Severidade: Bloqueio

Correção: no portal do Azure, vá para a folha Mapeamento de dispositivo do serviço MedTech e corrija a expressão especificada na mensagem de erro dentro do mapeamento do dispositivo.

TemplateNotFoundException

Descrição: um modelo no mapeamento de dispositivo não tem um modelo correspondente com o mesmo tipo no mapeamento de destino FHIR. O tipo do modelo é especificado na mensagem de erro.

Gravidade: não bloqueio

Correção: no portal do Azure, vá para a folha Mapeamento de dispositivo e a folha Destino do serviço MedTech e verifique se, para cada modelo no mapeamento de dispositivo, há um modelo com o mesmo typeName valor dentro do mapeamento de destino FHIR.

UnauthorizedAccessEventHubException

Descrição: o serviço MedTech não está recebendo acesso ao hub de eventos.

Severidade: Bloqueio

Correção: no portal do Azure, vá para o hub de eventos e atribua a função Hubs de Eventos do Azure Receptor de Dados ao serviço MedTech (confira as instruções).

UnauthorizedAccessFhirServiceException

Descrição: o serviço MedTech não tem acesso de gravação ao destino FHIR.

Severidade: Bloqueio

Correção: no portal do Azure, vá para o serviço FHIR e atribua a função gravador de dados FHIR ao serviço MedTech (confira as instruções).

Observação

Se você não conseguir corrigir o problema do serviço MedTech usando este guia de solução de problemas, poderá abrir um tíquete de Suporte Técnico do Azure anexando cópias dos mapeamentos de destino de mensagem e dispositivo e FHIR do dispositivo à sua solicitação para ajudar melhor na determinação do problema.

Próximas etapas

Neste artigo, você aprendeu a solucionar problemas e corrigir erros usando os logs de serviço MedTech.

Para saber mais sobre as perguntas frequentes (perguntas frequentes) do serviço MedTech, confira

O FHIR® é uma marca registrada da Health Level Seven International, registrada no Escritório de Marcas Registradas dos EUA e é usada com a respectiva permissão.