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:
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:
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 otype
modelo arm de"SystemAssigned"
exemplo no arquivo azuredeploy.json no GitHub).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:
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.
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) otype
valor de"userAssigned"
e 2) umuserAssignedIdentities
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).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).
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.